mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Sync to trunk.
This commit is contained in:
commit
d50c5b4f41
@ -4,6 +4,73 @@
|
||||
# for important features/bug fixes.
|
||||
# Also, each release can have new and improved recipes.
|
||||
|
||||
- version: 0.6.25
|
||||
date: 2009-12-04
|
||||
|
||||
new features:
|
||||
|
||||
- title: "Adroid devices: Allow user to customize the directory for sending books"
|
||||
description: >
|
||||
Now the user can choose what directory on the device calibre will send
|
||||
books to. This allows calibre to support different reading software on Android devices
|
||||
apart from just WordPlayer.
|
||||
tickets: [3392]
|
||||
|
||||
- title: "LIT Input: Handle LIT files that are really TXT files"
|
||||
description: >
|
||||
Some poorly created LIT files are really just one big block of text. Now calibre
|
||||
will automatically convert that TXT into paragraphs based on blank lines. This
|
||||
will prevent errors when trying to convert the LIT files to EPUB.
|
||||
|
||||
- title: Device support for Motorola Droid (windows and linux)
|
||||
|
||||
- title: Various improvements to metadata reading for eReader and PML books
|
||||
|
||||
- title: Allow adding of multiple empty books at once
|
||||
|
||||
- title: "Device drivers: Allow one driver to handle devices from multiple vendors. Also allow device interface plugins to override the USB device detection code"
|
||||
|
||||
- title: "calibre-debug: Remove --develop-from option as it is no longer needed"
|
||||
|
||||
bug fixes:
|
||||
- title: "Content server: Fix password protected access from Adroid devices"
|
||||
tickets: [3952]
|
||||
|
||||
- title: "calibredb with output format stanza once again escapes URLs"
|
||||
tickets: [4084]
|
||||
|
||||
- title: Implement work around for a CSS bug in Adobe Digital Editions that causes it to crash
|
||||
description: >
|
||||
If the CSS contains the declaration font-size: medium instead of font-size: normal
|
||||
Adobe Digital Editions will crash. calibre will now automatically replace medium with
|
||||
normal.
|
||||
|
||||
- title: "PML Output: Only create \\a and \\U tags for supported characters."
|
||||
|
||||
- title: "PML Input: Allow for images in top-level bookname_image and images directories"
|
||||
|
||||
- title: Allow sending of MOBI files to the PocketBook 360
|
||||
tickets: [4118]
|
||||
|
||||
- title: "JetBook driver: Don't incorrectly nest folders when uploading books by the same author"
|
||||
tickets: [4120]
|
||||
|
||||
- title: Speed up download of the free Economist recipe
|
||||
|
||||
- title: "FB2 Input: Workaround for unescaped amerpsands"
|
||||
|
||||
new recipes:
|
||||
- title: Money Control
|
||||
author: kwetal
|
||||
|
||||
- title: Vrij Nederland
|
||||
author: kwetal
|
||||
|
||||
improved recipes:
|
||||
- Times Online
|
||||
- Endgadget
|
||||
- Business Week
|
||||
|
||||
- version: 0.6.25
|
||||
date: 2009-11-30
|
||||
|
||||
|
@ -11,7 +11,7 @@ from calibre.ebooks.BeautifulSoup import Tag
|
||||
|
||||
class Timesonline(BasicNewsRecipe):
|
||||
title = 'The Times Online'
|
||||
__author__ = 'Darko Miletic'
|
||||
__author__ = 'Darko Miletic and Sujata Raman'
|
||||
description = 'UK news'
|
||||
publisher = 'timesonline.co.uk'
|
||||
category = 'news, politics, UK'
|
||||
@ -20,21 +20,43 @@ class Timesonline(BasicNewsRecipe):
|
||||
no_stylesheets = True
|
||||
use_embedded_content = False
|
||||
simultaneous_downloads = 1
|
||||
encoding = 'cp1252'
|
||||
encoding = 'ISO-8859-1'
|
||||
lang = 'en-UK'
|
||||
remove_javascript = True
|
||||
language = 'en'
|
||||
recursions = 9
|
||||
match_regexps = [r'http://www.timesonline.co.uk/.*page=[2-9]']
|
||||
|
||||
|
||||
html2lrf_options = [
|
||||
'--comment', description
|
||||
, '--category', category
|
||||
, '--publisher', publisher
|
||||
keep_only_tags = [
|
||||
dict(name='div', attrs= {'id':['region-column1and2-layout2']}),
|
||||
{'class' : ['subheading']},
|
||||
dict(name='div', attrs= {'id':['dynamic-image-holder']}),
|
||||
dict(name='div', attrs= {'class':['article-author']}),
|
||||
dict(name='div', attrs= {'id':['related-article-links']}),
|
||||
]
|
||||
|
||||
html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"'
|
||||
remove_tags = [
|
||||
dict(name=['embed','object','form','iframe']),
|
||||
dict(name='span', attrs = {'class':'float-left padding-left-8 padding-top-2'}),
|
||||
dict(name='div', attrs= {'id':['region-footer','region-column2-layout2','grid-column4','login-status','comment-sort-order']}),
|
||||
dict(name='div', attrs= {'class': ['debate-quote-container','clear','your-comment','float-left related-attachements-container','float-left padding-bottom-5 padding-top-8','puff-top']}),
|
||||
dict(name='span', attrs = {'id': ['comment-count']}),
|
||||
dict(name='ul',attrs = {'id': 'read-all-comments'}),
|
||||
dict(name='a', attrs = {'class':'reg-bold'}),
|
||||
]
|
||||
|
||||
remove_tags = [dict(name=['embed','object'])]
|
||||
remove_tags_after = dict(name='div', attrs={'class':'bg-666'})
|
||||
|
||||
extra_css = '''
|
||||
.small{font-family :Arial,Helvetica,sans-serif; font-size:x-small;}
|
||||
.byline{font-family :Arial,Helvetica,sans-serif; font-size:x-small; background:#F8F1D8;}
|
||||
.color-666{font-family :Arial,Helvetica,sans-serif; font-size:x-small; color:#666666; }
|
||||
h1{font-family:Georgia,Times New Roman,Times,serif;font-size:large; }
|
||||
.color-999 {color:#999999;}
|
||||
.x-small {font-size:x-small;}
|
||||
#related-article-links{font-family :Arial,Helvetica,sans-serif; font-size:small;}
|
||||
h2{color:#333333;font-family :Georgia,Times New Roman,Times,serif; font-size:small;}
|
||||
p{font-family :Arial,Helvetica,sans-serif; font-size:small;}
|
||||
'''
|
||||
|
||||
feeds = [
|
||||
(u'Top stories from Times Online', u'http://www.timesonline.co.uk/tol/feeds/rss/topstories.xml' ),
|
||||
@ -49,18 +71,32 @@ class Timesonline(BasicNewsRecipe):
|
||||
('Literary Supplement', 'http://www.timesonline.co.uk/tol/feeds/rss/thetls.xml'),
|
||||
]
|
||||
|
||||
def print_version(self, url):
|
||||
return url + '?print=yes'
|
||||
def get_cover_url(self):
|
||||
cover_url = None
|
||||
index = 'http://www.timesonline.co.uk/tol/newspapers/'
|
||||
soup = self.index_to_soup(index)
|
||||
link_item = soup.find(name = 'div',attrs ={'class': "float-left margin-right-15"})
|
||||
if link_item:
|
||||
cover_url = 'http://www.timesonline.co.uk' + link_item.img['src']
|
||||
print cover_url
|
||||
return cover_url
|
||||
|
||||
def get_article_url(self, article):
|
||||
return article.get('guid', None)
|
||||
|
||||
|
||||
def preprocess_html(self, soup):
|
||||
soup.html['xml:lang'] = self.lang
|
||||
soup.html['lang'] = self.lang
|
||||
mlang = Tag(soup,'meta',[("http-equiv","Content-Language"),("content",self.lang)])
|
||||
mcharset = Tag(soup,'meta',[("http-equiv","Content-Type"),("content","text/html; charset=UTF-8")])
|
||||
mcharset = Tag(soup,'meta',[("http-equiv","Content-Type"),("content","text/html; charset=ISO-8859-1")])
|
||||
soup.head.insert(0,mlang)
|
||||
soup.head.insert(1,mcharset)
|
||||
return self.adeify_images(soup)
|
||||
|
||||
def postprocess_html(self,soup,first):
|
||||
for tag in soup.findAll(text = ['Previous Page','Next Page']):
|
||||
tag.extract()
|
||||
return soup
|
||||
|
||||
|
||||
|
@ -2,7 +2,7 @@ __license__ = 'GPL v3'
|
||||
__copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net'
|
||||
__docformat__ = 'restructuredtext en'
|
||||
__appname__ = 'calibre'
|
||||
__version__ = '0.6.25'
|
||||
__version__ = '0.6.26'
|
||||
__author__ = "Kovid Goyal <kovid@kovidgoyal.net>"
|
||||
|
||||
import re
|
||||
|
@ -54,11 +54,11 @@ class PML2PMLZ(FileTypePlugin):
|
||||
name = 'PML to PMLZ'
|
||||
author = 'John Schember'
|
||||
description = textwrap.dedent(_('''\
|
||||
Create a PMLZ archive containging the PML file \
|
||||
and all images in the directory pmlname_img or images \
|
||||
file containing all linked files. This plugin is run \
|
||||
every time you add an PML file to the library.\
|
||||
'''))
|
||||
Create a PMLZ archive containing the PML file \
|
||||
and all images in the directory pmlname_img or images \
|
||||
file containing all linked files. This plugin is run \
|
||||
every time you add an PML file to the library.\
|
||||
'''))
|
||||
version = numeric_version
|
||||
file_types = set(['pml'])
|
||||
supported_platforms = ['windows', 'osx', 'linux']
|
||||
@ -66,18 +66,20 @@ every time you add an PML file to the library.\
|
||||
|
||||
def run(self, pmlfile):
|
||||
import zipfile
|
||||
from calibre.ptempfile import PersistentTemporaryFile
|
||||
from calibre.ptempfile import TemporaryDirectory
|
||||
|
||||
name = os.path.join(tdir, '_plugin_pml2pmlz.pmlz')
|
||||
pmlz = zipfile.ZipFile(name, 'w')
|
||||
pmlz.write(pmlfile)
|
||||
with TemporaryDirectory('_plugin_pml2pmlz') as tdir:
|
||||
name = os.path.join(tdir, '_plugin_pml2pmlz.pmlz')
|
||||
pmlz = zipfile.ZipFile(name, 'w')
|
||||
pmlz.write(pmlfile)
|
||||
|
||||
pml_img = os.path.basename(pmlfile)[0] + '_img'
|
||||
img_dir = pml_img if os.path.exists(pml_img) else 'images' if os.path.exists(images) else ''
|
||||
if img_dir:
|
||||
for image in glob.glob(os.path.join(img_dir, '*.png')):
|
||||
pmlz.write(image)
|
||||
pmlz.close()
|
||||
pml_img = os.path.basename(pmlfile)[0] + '_img'
|
||||
img_dir = pml_img if os.path.exists(pml_img) else 'images' if \
|
||||
os.path.exists('images') else ''
|
||||
if img_dir:
|
||||
for image in glob.glob(os.path.join(img_dir, '*.png')):
|
||||
pmlz.write(image)
|
||||
pmlz.close()
|
||||
|
||||
return name
|
||||
|
||||
|
@ -780,6 +780,8 @@ class Manifest(object):
|
||||
# In particular, it causes tostring to insert xmlns
|
||||
# declarations, which messes up the coercing logic
|
||||
idx = data.find('<html')
|
||||
if idx == -1:
|
||||
idx = data.find('<HTML')
|
||||
if idx > -1:
|
||||
pre = data[:idx]
|
||||
data = data[idx:]
|
||||
|
@ -229,6 +229,8 @@ class CSSFlattener(object):
|
||||
if 'bgcolor' in node.attrib:
|
||||
cssdict['background-color'] = node.attrib['bgcolor']
|
||||
del node.attrib['bgcolor']
|
||||
if cssdict.get('font-weight', '').lower() == 'medium':
|
||||
cssdict['font-weight'] = 'normal' # ADE chokes on font-weight medium
|
||||
if not self.context.disable_font_rescaling:
|
||||
_sbase = self.sbase if self.sbase is not None else \
|
||||
self.context.source.fbase
|
||||
|
@ -9,10 +9,12 @@ from calibre.utils.logging import Log
|
||||
from calibre.customize.conversion import OptionRecommendation, DummyReporter
|
||||
|
||||
def gui_convert(input, output, recommendations, notification=DummyReporter(),
|
||||
abort_after_input_dump=False):
|
||||
abort_after_input_dump=False, log=None):
|
||||
recommendations = list(recommendations)
|
||||
recommendations.append(('verbose', 2, OptionRecommendation.HIGH))
|
||||
plumber = Plumber(input, output, Log(), report_progress=notification,
|
||||
if log is None:
|
||||
log = Log()
|
||||
plumber = Plumber(input, output, log, report_progress=notification,
|
||||
abort_after_input_dump=abort_after_input_dump)
|
||||
plumber.merge_ui_recommendations(recommendations)
|
||||
|
||||
|
@ -196,7 +196,15 @@ When you first run |app|, it will ask you for a folder in which to store your bo
|
||||
Why doesn't |app| let me store books in my own directory structure?
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The whole point of |app|'s library management features is that they provide a search and sort based interface for locating books that is *much* more efficient than any possible directory scheme you could come up with for your collection. Indeed, once you become comfortable using |app|'s interface to find, sort and browse your collection, you wont ever feel the need to hunt through the files on your disk to find a book again. By managing books in its own directory struture of Author -> Title -> Book files, |app| is able to achieve a high level of reliability and standardization.
|
||||
The whole point of |app|'s library management features is that they provide a search and sort based interface for locating books that is *much* more efficient than any possible directory scheme you could come up with for your collection. Indeed, once you become comfortable using |app|'s interface to find, sort and browse your collection, you wont ever feel the need to hunt through the files on your disk to find a book again. By managing books in its own directory struture of Author -> Title -> Book files, |app| is able to achieve a high level of reliability and standardization. To illustrate why a search/tagging based interface is superior to folders, consider the following. Suppose your book collection is nicely sorted into folders with the following scheme::
|
||||
|
||||
Genre -> Author -> Series -> ReadStatus
|
||||
|
||||
Now this makes it very easy to find for example all science fiction books by Isaac Asimov in the Foundation series. But suppose you want to find all unread science fiction books. There's no easy way to do this with this folder scheme, you would instead need a folder scheme that looks like::
|
||||
|
||||
ReadStatus -> Genre -> Author -> Series
|
||||
|
||||
In |app|, you would instead use tags to mark genre and read status and then just use a simple search query like ``tag:scifi and not tag:read``. |app| even has a nice graphical interface, so you don't need to learn its search language instead you can just click on tags to include or exclude them from the search.
|
||||
|
||||
Why doesn't |app| have a column for foo?
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -234,7 +242,7 @@ If you are reasonably proficient with computers, you can teach |app| to download
|
||||
Otherwise, you can register a request for a particular news site by adding a comment `here <http://bugs.calibre-ebook.com/ticket/405>`_.
|
||||
|
||||
Can I use web2disk to download an arbitrary website?
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
``web2disk http://mywebsite.com``
|
||||
|
||||
Miscellaneous
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -4,9 +4,9 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: calibre 0.6.25\n"
|
||||
"POT-Creation-Date: 2009-12-02 15:27+MST\n"
|
||||
"PO-Revision-Date: 2009-12-02 15:27+MST\n"
|
||||
"Project-Id-Version: calibre 0.6.26\n"
|
||||
"POT-Creation-Date: 2009-12-04 13:21+MST\n"
|
||||
"PO-Revision-Date: 2009-12-04 13:21+MST\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: LANGUAGE\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -39,8 +39,8 @@ msgstr ""
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:256
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:259
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:23
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:45
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62
|
||||
@ -53,8 +53,8 @@ msgstr ""
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:28
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:18
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:40
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:22
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:48
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:44
|
||||
@ -66,9 +66,9 @@ msgstr ""
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:778
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:893
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:898
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:958
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:895
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:900
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:960
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105
|
||||
@ -118,7 +118,7 @@ msgstr ""
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1003
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:211
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:282
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:281
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database.py:913
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:702
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:714
|
||||
@ -155,55 +155,63 @@ msgstr ""
|
||||
msgid "Metadata writer"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:13
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14
|
||||
msgid "Follow all local links in an HTML file and create a ZIP file containing all linked files. This plugin is run every time you add an HTML file to the library."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:48
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:49
|
||||
msgid "Character encoding for the input HTML files. Common choices include: cp1252, latin1, iso-8859-1 and utf-8."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:56
|
||||
msgid " Create a PMLZ archive containing the PML file and all images in the directory pmlname_img or images file containing all linked files. This plugin is run every time you add an PML file to the library. "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:87
|
||||
msgid "Character encoding for the input PML files. Should ways be: cp1252."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94
|
||||
msgid "Extract cover from comic files"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:77
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:89
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:99
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:109
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:120
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:130
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:140
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:150
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:160
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:170
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:181
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:192
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:204
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:225
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:236
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:246
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:256
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:115
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:127
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:137
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:147
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:158
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:168
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:178
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:188
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:198
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:208
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:219
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:230
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:242
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:263
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:274
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:284
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:294
|
||||
msgid "Read metadata from %s files"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:215
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:253
|
||||
msgid "Read metadata from ebooks in RAR archives"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:267
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:305
|
||||
msgid "Read metadata from ebooks in ZIP archives"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:278
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:288
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:298
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:320
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:331
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:316
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:326
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:336
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:358
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:369
|
||||
msgid "Set metadata in %s files"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:309
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:347
|
||||
msgid "Set metadata from %s files"
|
||||
msgstr ""
|
||||
|
||||
@ -982,7 +990,7 @@ msgid "Normally, if the input file has no cover and you don't specify one, a def
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:126
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:113
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:114
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:101
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77
|
||||
msgid "Table of Contents:"
|
||||
@ -1511,7 +1519,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1321
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1323
|
||||
msgid "Cover"
|
||||
msgstr ""
|
||||
|
||||
@ -1540,70 +1548,70 @@ msgstr ""
|
||||
msgid "All articles"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1322
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1324
|
||||
msgid "Title Page"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1323
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1325
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:51
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:168
|
||||
msgid "Table of Contents"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1324
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1326
|
||||
msgid "Index"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1325
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1327
|
||||
msgid "Glossary"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1326
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328
|
||||
msgid "Acknowledgements"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1327
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329
|
||||
msgid "Bibliography"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330
|
||||
msgid "Colophon"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331
|
||||
msgid "Copyright"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332
|
||||
msgid "Dedication"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333
|
||||
msgid "Epigraph"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334
|
||||
msgid "Foreword"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335
|
||||
msgid "List of Illustrations"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336
|
||||
msgid "List of Tables"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338
|
||||
msgid "Preface"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339
|
||||
msgid "Main Text"
|
||||
msgstr ""
|
||||
|
||||
@ -1663,11 +1671,11 @@ msgstr ""
|
||||
msgid "Generate an Adobe \"page-map\" file if pagination information is available."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:119
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:126
|
||||
msgid "Footnotes"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:128
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:135
|
||||
msgid "Sidebar"
|
||||
msgstr ""
|
||||
|
||||
@ -2753,7 +2761,7 @@ msgid "RB Output"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1416
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1420
|
||||
msgid "Choose the format to view"
|
||||
msgstr ""
|
||||
|
||||
@ -3361,7 +3369,7 @@ msgstr ""
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:468
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1090
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1094
|
||||
#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
@ -3997,7 +4005,7 @@ msgid "Choose formats for "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:921
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:925
|
||||
msgid "Books"
|
||||
msgstr ""
|
||||
|
||||
@ -4832,52 +4840,52 @@ msgstr ""
|
||||
msgid "Configure"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24
|
||||
msgid "Use the library located at the specified path."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26
|
||||
msgid "Start minimized to system tray."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28
|
||||
msgid "Log debugging information to console"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30
|
||||
msgid "Do not check for updates"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:79
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80
|
||||
msgid "If you are sure it is not running"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:81
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82
|
||||
msgid "Cannot Start "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83
|
||||
msgid "%s is already running."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86
|
||||
msgid "may be running in the system tray, in the"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:87
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88
|
||||
msgid "upper right region of the screen."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90
|
||||
msgid "lower right region of the screen."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:92
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93
|
||||
msgid "try rebooting your computer."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:94
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:106
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107
|
||||
msgid "try deleting the file"
|
||||
msgstr ""
|
||||
|
||||
@ -5185,7 +5193,7 @@ msgid "Save to disk in a single directory"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1518
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522
|
||||
msgid "Save only %s format to disk"
|
||||
msgstr ""
|
||||
|
||||
@ -5220,7 +5228,7 @@ msgid "Calibre Library"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:464
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1661
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1665
|
||||
msgid "Choose a location for your ebook library."
|
||||
msgstr ""
|
||||
|
||||
@ -5255,252 +5263,260 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:913
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:956
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:872
|
||||
msgid "How many empty books?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:873
|
||||
msgid "How many empty boks should be added?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:917
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:960
|
||||
msgid "Uploading books to device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:922
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:926
|
||||
msgid "EPUB Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:923
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:927
|
||||
msgid "LRF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:924
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:928
|
||||
msgid "HTML Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:925
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:929
|
||||
msgid "LIT Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:926
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:930
|
||||
msgid "MOBI Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:927
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:931
|
||||
msgid "Text books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:928
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:932
|
||||
msgid "PDF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:929
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:933
|
||||
msgid "Comics"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:930
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:934
|
||||
msgid "Archives"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:965
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:969
|
||||
msgid "Failed to read metadata"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:966
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:970
|
||||
msgid "Failed to read metadata from the following"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:985
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:989
|
||||
msgid "The selected books will be <b>permanently deleted</b> and the files removed from your computer. Are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1012
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1016
|
||||
msgid "Deleting books from device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1043
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1047
|
||||
msgid "Cannot download metadata"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1044
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1101
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1134
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1271
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1048
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1138
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1163
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1275
|
||||
msgid "No books selected"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1059
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1063
|
||||
msgid "social metadata"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1061
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1065
|
||||
msgid "covers"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1061
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1065
|
||||
msgid "metadata"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1063
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1067
|
||||
msgid "Downloading %s for %d book(s)"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1089
|
||||
msgid "Failed to download some metadata"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1086
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1090
|
||||
msgid "Failed to download metadata for the following:"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1089
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1093
|
||||
msgid "Failed to download metadata:"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1100
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1133
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1104
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1137
|
||||
msgid "Cannot edit metadata"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1158
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1162
|
||||
msgid "Cannot save to disk"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1161
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1165
|
||||
msgid "Choose destination directory"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1188
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1192
|
||||
msgid "Error while saving"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1189
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1193
|
||||
msgid "There was an error while saving."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1196
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1197
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201
|
||||
msgid "Could not save some books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1198
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202
|
||||
msgid "Click the show details button to see which ones."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221
|
||||
msgid "Fetching news from "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1230
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1234
|
||||
msgid " fetched."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1270
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1274
|
||||
msgid "Cannot convert"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1299
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1303
|
||||
msgid "Starting conversion of %d book(s)"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1429
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1433
|
||||
msgid "No book selected"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1460
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1464
|
||||
msgid "Cannot view"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1432
|
||||
msgid "Cannot open folder"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1445
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1449
|
||||
msgid "Multiple Books Selected"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1446
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1450
|
||||
msgid "You are attempting to open %d books. Opening too many books at once can be slow and have a negative effect on the responsiveness of your computer. Once started the process cannot be stopped until complete. Do you wish to continue?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1461
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1465
|
||||
msgid "%s has no available formats."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1502
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1506
|
||||
msgid "Cannot configure"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1503
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1507
|
||||
msgid "Cannot configure while there are running jobs."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1546
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1550
|
||||
msgid "No detailed info available"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1547
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1551
|
||||
msgid "No detailed information is available for books on the device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1599
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1603
|
||||
msgid "Error talking to device"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1600
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1604
|
||||
msgid "There was a temporary error talking to the device. Please unplug and reconnect the device and or reboot."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1623
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1641
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1627
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1645
|
||||
msgid "Conversion Error"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1624
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1628
|
||||
msgid "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must first remove the DRM using third party tools."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1642
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1646
|
||||
msgid "<b>Failed</b>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1670
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1674
|
||||
msgid "Invalid library location"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1675
|
||||
msgid "Could not access %s. Using %s as the library."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1719
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1723
|
||||
msgid "is the result of the efforts of many volunteers from all over the world. If you find it useful, please consider donating to support its development."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1744
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1748
|
||||
msgid "There are active jobs. Are you sure you want to quit?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1747
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1751
|
||||
msgid ""
|
||||
" is communicating with the device!<br>\n"
|
||||
" Quitting may cause corruption on the device.<br>\n"
|
||||
" Are you sure you want to quit?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1751
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1755
|
||||
msgid "WARNING: Active jobs"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1803
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1807
|
||||
msgid "will keep running in the system tray. To close it, choose <b>Quit</b> in the context menu of the system tray."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1822
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1826
|
||||
msgid "<span style=\"color:red; font-weight:bold\">Latest version: <a href=\"%s\">%s</a></span>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1834
|
||||
msgid "Update available"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1831
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1835
|
||||
msgid "%s has been updated to version %s. See the <a href=\"http://calibre-ebook.com/whats-new\">new features</a>. Visit the download page?"
|
||||
msgstr ""
|
||||
|
||||
@ -6153,68 +6169,68 @@ msgstr ""
|
||||
msgid "The maximum number of matches to return per OPDS query. This affects Stanza, WordPlayer, etc. integration."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:120
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:121
|
||||
msgid "Path to the calibre library. Default is to use the path stored in the settings."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:201
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:200
|
||||
msgid ""
|
||||
"%prog list [options]\n"
|
||||
"\n"
|
||||
"List the books available in the calibre database.\n"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:209
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:208
|
||||
msgid ""
|
||||
"The fields to display when listing books in the database. Should be a comma separated list of fields.\n"
|
||||
"Available fields: %s\n"
|
||||
"Default: %%default. The special field \"all\" can be used to select all fields. Only has effect in the text output format."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:211
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:210
|
||||
msgid ""
|
||||
"The field by which to sort the results.\n"
|
||||
"Available fields: %s\n"
|
||||
"Default: %%default"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:213
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:212
|
||||
msgid "Sort results in ascending order"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:215
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:214
|
||||
msgid "Filter the results by the search query. For the format of the search query, please see the search related documentation in the User Manual. Default is to do no filtering."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:216
|
||||
msgid "The maximum width of a single line in the output. Defaults to detecting screen size."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:218
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217
|
||||
msgid "The string used to separate fields. Default is a space."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:219
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:218
|
||||
msgid "The prefix for all file paths. Default is the absolute path to the library folder."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:222
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:221
|
||||
msgid "The format in which to output the data. Available choices: %s. Defaults is text."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:235
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:234
|
||||
msgid "Invalid fields. Available fields:"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:242
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:241
|
||||
msgid "Invalid sort field. Available fields:"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:313
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:312
|
||||
msgid "The following books were not added as they already exist in the database (see --duplicates option):"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:336
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:335
|
||||
msgid ""
|
||||
"%prog add [options] file1 file2 file3 ...\n"
|
||||
"\n"
|
||||
@ -6222,49 +6238,49 @@ msgid ""
|
||||
"the directory related options below.\n"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:345
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:344
|
||||
msgid "Assume that each directory has only a single logical book and that all files in it are different e-book formats of that book"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:347
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:346
|
||||
msgid "Process directories recursively"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:349
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:348
|
||||
msgid "Add books to database even if they already exist. Comparison is done based on book titles."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:359
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:358
|
||||
msgid "You must specify at least one file to add"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:375
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:374
|
||||
msgid ""
|
||||
"%prog remove ids\n"
|
||||
"\n"
|
||||
"Remove the books identified by ids from the database. ids should be a comma separated list of id numbers (you can get id numbers by using the list command). For example, 23,34,57-85\n"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:390
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:389
|
||||
msgid "You must specify at least one book to remove"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:409
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:408
|
||||
msgid ""
|
||||
"%prog add_format [options] id ebook_file\n"
|
||||
"\n"
|
||||
"Add the ebook in ebook_file to the available formats for the logical book identified by id. You can get id by using the list command. If the format already exists, it is replaced.\n"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:424
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:423
|
||||
msgid "You must specify an id and an ebook file"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:429
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:428
|
||||
msgid "ebook file must have an extension"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:437
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:436
|
||||
msgid ""
|
||||
"\n"
|
||||
"%prog remove_format [options] id fmt\n"
|
||||
@ -6272,11 +6288,11 @@ msgid ""
|
||||
"Remove the format fmt from the logical book identified by id. You can get id by using the list command. fmt should be a file extension like LRF or TXT or EPUB. If the logical book does not have fmt available, do nothing.\n"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:454
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:453
|
||||
msgid "You must specify an id and a format"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:471
|
||||
msgid ""
|
||||
"\n"
|
||||
"%prog show_metadata [options] id\n"
|
||||
@ -6285,15 +6301,15 @@ msgid ""
|
||||
"id is an id number from the list command.\n"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:480
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:479
|
||||
msgid "Print metadata in OPF form (XML)"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:489
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:488
|
||||
msgid "You must specify an id"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:502
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:501
|
||||
msgid ""
|
||||
"\n"
|
||||
"%prog set_metadata [options] id /path/to/metadata.opf\n"
|
||||
@ -6304,11 +6320,11 @@ msgid ""
|
||||
"show_metadata command.\n"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:518
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:517
|
||||
msgid "You must specify an id and a metadata file"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:538
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:537
|
||||
msgid ""
|
||||
"%prog export [options] ids\n"
|
||||
"\n"
|
||||
@ -6317,27 +6333,27 @@ msgid ""
|
||||
"an opf file). You can get id numbers from the list command.\n"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:546
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:545
|
||||
msgid "Export all books in database, ignoring the list of ids."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:548
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:547
|
||||
msgid "Export books to the specified directory. Default is"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:550
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:549
|
||||
msgid "Export all books into a single directory"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:557
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:556
|
||||
msgid "Specifying this switch will turn this behavior off."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:580
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:579
|
||||
msgid "You must specify some ids or the %s option"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:592
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:591
|
||||
msgid ""
|
||||
"%%prog command [options] [arguments]\n"
|
||||
"\n"
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -75,7 +75,7 @@ MD5_SESS = "MD5-sess"
|
||||
AUTH = "auth"
|
||||
AUTH_INT = "auth-int"
|
||||
|
||||
SUPPORTED_ALGORITHM = (MD5, MD5_SESS)
|
||||
SUPPORTED_ALGORITHM = ('md5', MD5, MD5_SESS)
|
||||
SUPPORTED_QOP = (AUTH, AUTH_INT)
|
||||
|
||||
################################################################################
|
||||
@ -225,7 +225,7 @@ def _A1(params, password):
|
||||
algorithm = params.get ("algorithm", MD5)
|
||||
H = DIGEST_AUTH_ENCODERS[algorithm]
|
||||
|
||||
if algorithm == MD5:
|
||||
if algorithm in (MD5, 'md5'):
|
||||
# If the "algorithm" directive's value is "MD5" or is
|
||||
# unspecified, then A1 is:
|
||||
# A1 = unq(username-value) ":" unq(realm-value) ":" passwd
|
||||
|
Loading…
x
Reference in New Issue
Block a user