Sync to trunk

This commit is contained in:
John Schember 2009-02-19 19:49:20 -05:00
commit fc73e6f09c
100 changed files with 8069 additions and 7835 deletions

View File

@ -28,33 +28,12 @@ for icon in ICONS:
raise Exception('No icon at '+icon) raise Exception('No icon at '+icon)
VERSION = re.sub('[a-z]\d+', '', VERSION) VERSION = re.sub('[a-z]\d+', '', VERSION)
WINVER = VERSION+'.0'
PY2EXE_DIR = os.path.join(BASE_DIR, 'build','py2exe') PY2EXE_DIR = os.path.join(BASE_DIR, 'build','py2exe')
class BuildEXE(py2exe.build_exe.py2exe): class BuildEXE(py2exe.build_exe.py2exe):
manifest_resource_id = 0
MANIFEST_TEMPLATE = '''
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="%(version)s"
processorArchitecture="x86"
name="net.kovidgoyal.%(prog)s"
type="win32"
/>
<description>Ebook management application</description>
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
'''
def run(self): def run(self):
py2exe.build_exe.py2exe.run(self) py2exe.build_exe.py2exe.run(self)
print 'Adding plugins...' print 'Adding plugins...'
@ -129,39 +108,35 @@ class BuildEXE(py2exe.build_exe.py2exe):
shutil.copyfile(f, os.path.join(PY2EXE_DIR, os.path.basename(f))) shutil.copyfile(f, os.path.join(PY2EXE_DIR, os.path.basename(f)))
@classmethod def exe_factory(dest_base, script, icon_resources=None):
def manifest(cls, prog): exe = {
cls.manifest_resource_id += 1 'dest_base' : dest_base,
return (24, cls.manifest_resource_id, 'script' : script,
cls.MANIFEST_TEMPLATE % dict(prog=prog, version=(VERSION+'.0'))) 'name' : dest_base,
'version' : WINVER,
'description' : 'calibre - E-book library management',
'author' : 'Kovid Goyal',
'copyright' : '(c) Kovid Goyal, 2008',
'company' : 'kovidgoyal.net',
}
if icon_resources is not None:
exe['icon_resources'] = icon_resources
return exe
def main(args=sys.argv): def main(args=sys.argv):
sys.argv[1:2] = ['py2exe'] sys.argv[1:2] = ['py2exe']
if os.path.exists(PY2EXE_DIR): if os.path.exists(PY2EXE_DIR):
shutil.rmtree(PY2EXE_DIR) shutil.rmtree(PY2EXE_DIR)
console = [dict(dest_base=basenames['console'][i], script=scripts['console'][i]) console = [exe_factory(basenames['console'][i], scripts['console'][i])
for i in range(len(scripts['console']))] for i in range(len(scripts['console']))]
setup( setup(
cmdclass = {'py2exe': BuildEXE}, cmdclass = {'py2exe': BuildEXE},
windows = [ windows = [
{'script' : scripts['gui'][0], exe_factory(APPNAME, scripts['gui'][0], [(1, ICONS[0])]),
'dest_base' : APPNAME, exe_factory('lrfviewer', scripts['gui'][1], [(1, ICONS[1])]),
'icon_resources' : [(1, ICONS[0])], exe_factory('ebook-viewer', scripts['gui'][2], [(1, ICONS[1])]),
#'other_resources' : [BuildEXE.manifest(APPNAME)], ],
},
{'script' : scripts['gui'][1],
'dest_base' : 'lrfviewer',
'icon_resources' : [(1, ICONS[1])],
#'other_resources' : [BuildEXE.manifest('lrfviewer')],
},
{'script' : scripts['gui'][2],
'dest_base' : 'ebook-viewer',
'icon_resources' : [(1, ICONS[1])],
#'other_resources' : [BuildEXE.manifest('ebook-viewer')],
},
],
console = console, console = console,
options = { 'py2exe' : {'compressed': 1, options = { 'py2exe' : {'compressed': 1,
'optimize' : 2, 'optimize' : 2,

372
setup.py
View File

@ -47,350 +47,15 @@ main_functions = {
if __name__ == '__main__': if __name__ == '__main__':
from setuptools import setup, find_packages from setuptools import setup, find_packages
from setuptools.command.build_py import build_py as _build_py, convert_path
from distutils.command.build import build as _build
from distutils.core import Command as _Command
from pyqtdistutils import PyQtExtension, build_ext, Extension from pyqtdistutils import PyQtExtension, build_ext, Extension
import subprocess, glob from upload import sdist, pot, build, build_py, manual, \
resources, clean, gui, translations, update, \
tag_release, upload_demo, build_linux, build_windows, \
build_osx, upload_installers, upload_user_manual, \
upload_to_pypi, stage3, stage2, stage1, upload
def newer(targets, sources): entry_points['console_scripts'].append(
''' 'calibre_postinstall = calibre.linux:post_install')
Return True is sources is newer that targets or if targets
does not exist.
'''
for f in targets:
if not os.path.exists(f):
return True
ttimes = map(lambda x: os.stat(x).st_mtime, targets)
stimes = map(lambda x: os.stat(x).st_mtime, sources)
newest_source, oldest_target = max(stimes), min(ttimes)
return newest_source > oldest_target
class build_py(_build_py):
def find_data_files(self, package, src_dir):
"""
Return filenames for package's data files in 'src_dir'
Modified to treat data file specs as paths not globs
"""
globs = (self.package_data.get('', [])
+ self.package_data.get(package, []))
files = self.manifest_files.get(package, [])[:]
for pattern in globs:
# Each pattern has to be converted to a platform-specific path
pattern = os.path.join(src_dir, convert_path(pattern))
next = glob.glob(pattern)
files.extend(next if next else [pattern])
return self.exclude_data_files(package, src_dir, files)
class Command(_Command):
user_options = []
def initialize_options(self): pass
def finalize_options(self): pass
class sdist(Command):
description = "create a source distribution using bzr"
def run(self):
name = 'dist/calibre-%s.tar.gz'%VERSION
subprocess.check_call(('bzr export '+name).split())
self.distribution.dist_files.append(('sdist', '', name))
class pot(Command):
description = '''Create the .pot template for all translatable strings'''
PATH = os.path.join('src', APPNAME, 'translations')
def source_files(self):
ans = []
for root, dirs, files in os.walk(os.path.dirname(self.PATH)):
for name in files:
if name.endswith('.py'):
ans.append(os.path.abspath(os.path.join(root, name)))
return ans
def run(self):
sys.path.insert(0, os.path.abspath(self.PATH))
try:
from pygettext import main as pygettext
files = self.source_files()
buf = cStringIO.StringIO()
print 'Creating translations template'
tempdir = tempfile.mkdtemp()
pygettext(buf, ['-k', '__', '-p', tempdir]+files)
src = buf.getvalue()
pot = os.path.join(tempdir, 'calibre.pot')
f = open(pot, 'wb')
f.write(src)
f.close()
print 'Translations template:', pot
return pot
finally:
sys.path.remove(os.path.abspath(self.PATH))
class manual(Command):
description='''Build the User Manual '''
def run(self):
cwd = os.path.abspath(os.getcwd())
os.chdir(os.path.join('src', 'calibre', 'manual'))
try:
for d in ('.build', 'cli'):
if os.path.exists(d):
shutil.rmtree(d)
os.makedirs(d)
if not os.path.exists('.build'+os.sep+'html'):
os.makedirs('.build'+os.sep+'html')
subprocess.check_call(['sphinx-build', '-b', 'custom', '-d',
'.build/doctrees', '.', '.build/html'])
finally:
os.chdir(cwd)
@classmethod
def clean(cls):
path = os.path.join('src', 'calibre', 'manual', '.build')
if os.path.exists(path):
shutil.rmtree(path)
class resources(Command):
description='''Compile various resource files used in calibre. '''
RESOURCES = dict(
opf_template = 'ebooks/metadata/opf.xml',
ncx_template = 'ebooks/metadata/ncx.xml',
fb2_xsl = 'ebooks/lrf/fb2/fb2.xsl',
metadata_sqlite = 'library/metadata_sqlite.sql',
jquery = 'gui2/viewer/jquery.js',
jquery_scrollTo = 'gui2/viewer/jquery_scrollTo.js',
html_css = 'ebooks/oeb/html.css',
)
DEST = os.path.join('src', APPNAME, 'resources.py')
def get_qt_translations(self):
data = {}
translations_found = False
for TPATH in ('/usr/share/qt4/translations', '/usr/lib/qt4/translations'):
if os.path.exists(TPATH):
files = glob.glob(TPATH + '/qt_??.qm')
for f in files:
key = os.path.basename(f).partition('.')[0]
data[key] = f
translations_found = True
break
if not translations_found:
print 'WARNING: Could not find Qt transations'
return data
def get_static_resources(self):
sdir = os.path.join('src', 'calibre', 'library', 'static')
resources, max = {}, 0
for f in os.listdir(sdir):
resources[f] = open(os.path.join(sdir, f), 'rb').read()
mtime = os.stat(os.path.join(sdir, f)).st_mtime
max = mtime if mtime > max else max
return resources, max
def get_recipes(self):
sdir = os.path.join('src', 'calibre', 'web', 'feeds', 'recipes')
resources, max = {}, 0
for f in os.listdir(sdir):
if f.endswith('.py') and f != '__init__.py':
resources[f.replace('.py', '')] = open(os.path.join(sdir, f), 'rb').read()
mtime = os.stat(os.path.join(sdir, f)).st_mtime
max = mtime if mtime > max else max
return resources, max
def run(self):
data, dest, RESOURCES = {}, self.DEST, self.RESOURCES
for key in RESOURCES:
path = RESOURCES[key]
if not os.path.isabs(path):
RESOURCES[key] = os.path.join('src', APPNAME, path)
translations = self.get_qt_translations()
RESOURCES.update(translations)
static, smax = self.get_static_resources()
recipes, rmax = self.get_recipes()
amax = max(rmax, smax)
if newer([dest], RESOURCES.values()) or os.stat(dest).st_mtime < amax:
print 'Compiling resources...'
with open(dest, 'wb') as f:
for key in RESOURCES:
data = open(RESOURCES[key], 'rb').read()
f.write(key + ' = ' + repr(data)+'\n\n')
f.write('server_resources = %s\n\n'%repr(static))
f.write('recipes = %s\n\n'%repr(recipes))
f.write('build_time = "%s"\n\n'%time.strftime('%d %m %Y %H%M%S'))
else:
print 'Resources are up to date'
@classmethod
def clean(cls):
path = cls.DEST
for path in glob.glob(path+'*'):
if os.path.exists(path):
os.remove(path)
class translations(Command):
description='''Compile the translations'''
PATH = os.path.join('src', APPNAME, 'translations')
DEST = os.path.join(PATH, 'compiled.py')
def run(self):
sys.path.insert(0, os.path.abspath(self.PATH))
try:
files = glob.glob(os.path.join(self.PATH, '*.po'))
if newer([self.DEST], files):
from msgfmt import main as msgfmt
translations = {}
print 'Compiling translations...'
for po in files:
lang = os.path.basename(po).partition('.')[0]
buf = cStringIO.StringIO()
print 'Compiling', lang
msgfmt(buf, [po])
translations[lang] = buf.getvalue()
open(self.DEST, 'wb').write('translations = '+repr(translations))
else:
print 'Translations up to date'
finally:
sys.path.remove(os.path.abspath(self.PATH))
@classmethod
def clean(cls):
path = cls.DEST
if os.path.exists(path):
os.remove(path)
class gui(Command):
description='''Compile all GUI forms and images'''
PATH = os.path.join('src', APPNAME, 'gui2')
IMAGES_DEST = os.path.join(PATH, 'images_rc.py')
QRC = os.path.join(PATH, 'images.qrc')
@classmethod
def find_forms(cls):
forms = []
for root, dirs, files in os.walk(cls.PATH):
for name in files:
if name.endswith('.ui'):
forms.append(os.path.abspath(os.path.join(root, name)))
return forms
@classmethod
def form_to_compiled_form(cls, form):
return form.rpartition('.')[0]+'_ui.py'
def run(self):
self.build_forms()
self.build_images()
def build_images(self):
cwd, images = os.getcwd(), os.path.basename(self.IMAGES_DEST)
try:
os.chdir(self.PATH)
sources, files = [], []
for root, dirs, files in os.walk('images'):
for name in files:
sources.append(os.path.join(root, name))
if newer([images], sources):
print 'Compiling images...'
for s in sources:
alias = ' alias="library"' if s.endswith('images'+os.sep+'library.png') else ''
files.append('<file%s>%s</file>'%(alias, s))
manifest = '<RCC>\n<qresource prefix="/">\n%s\n</qresource>\n</RCC>'%'\n'.join(files)
with open('images.qrc', 'wb') as f:
f.write(manifest)
subprocess.check_call(['pyrcc4', '-o', images, 'images.qrc'])
else:
print 'Images are up to date'
finally:
os.chdir(cwd)
def build_forms(self):
from PyQt4.uic import compileUi
forms = self.find_forms()
for form in forms:
compiled_form = self.form_to_compiled_form(form)
if not os.path.exists(compiled_form) or os.stat(form).st_mtime > os.stat(compiled_form).st_mtime:
print 'Compiling form', form
buf = cStringIO.StringIO()
compileUi(form, buf)
dat = buf.getvalue()
dat = dat.replace('__appname__', APPNAME)
dat = dat.replace('import images_rc', 'from calibre.gui2 import images_rc')
dat = dat.replace('from library import', 'from calibre.gui2.library import')
dat = dat.replace('from widgets import', 'from calibre.gui2.widgets import')
dat = re.compile(r'QtGui.QApplication.translate\(.+?,\s+"(.+?)(?<!\\)",.+?\)', re.DOTALL).sub(r'_("\1")', dat)
# Workaround bug in Qt 4.4 on Windows
if form.endswith('dialogs%sconfig.ui'%os.sep) or form.endswith('dialogs%slrf_single.ui'%os.sep):
print 'Implementing Workaround for buggy pyuic in form', form
dat = re.sub(r'= QtGui\.QTextEdit\(self\..*?\)', '= QtGui.QTextEdit()', dat)
dat = re.sub(r'= QtGui\.QListWidget\(self\..*?\)', '= QtGui.QListWidget()', dat)
if form.endswith('viewer%smain.ui'%os.sep):
print 'Promoting WebView'
dat = dat.replace('self.view = QtWebKit.QWebView(', 'self.view = DocumentView(')
dat += '\n\nfrom calibre.gui2.viewer.documentview import DocumentView'
open(compiled_form, 'wb').write(dat)
@classmethod
def clean(cls):
forms = cls.find_forms()
for form in forms:
c = cls.form_to_compiled_form(form)
if os.path.exists(c):
os.remove(c)
for x in (cls.IMAGES_DEST, cls.QRC):
if os.path.exists(x):
os.remove(x)
class clean(Command):
description='''Delete all computer generated files in the source tree'''
def run(self):
print 'Cleaning...'
manual.clean()
gui.clean()
translations.clean()
resources.clean()
for f in glob.glob(os.path.join('src', 'calibre', 'plugins', '*')):
os.remove(f)
for root, dirs, files in os.walk('.'):
for name in files:
for t in ('.pyc', '.pyo', '~'):
if name.endswith(t):
os.remove(os.path.join(root, name))
break
for dir in ('build', 'dist', os.path.join('src', 'calibre.egg-info')):
shutil.rmtree(dir, ignore_errors=True)
class build(_build):
sub_commands = [
('resources', lambda self : 'CALIBRE_BUILDBOT' not in os.environ.keys()),
('translations', lambda self : 'CALIBRE_BUILDBOT' not in os.environ.keys()),
('gui', lambda self : 'CALIBRE_BUILDBOT' not in os.environ.keys()),
('build_ext', lambda self: True),
('build_py', lambda self: True),
('build_clib', _build.has_c_libraries),
('build_scripts', _build.has_scripts),
]
entry_points['console_scripts'].append('calibre_postinstall = calibre.linux:post_install')
ext_modules = [ ext_modules = [
Extension('calibre.plugins.lzx', Extension('calibre.plugins.lzx',
sources=['src/calibre/utils/lzx/lzxmodule.c', sources=['src/calibre/utils/lzx/lzxmodule.c',
@ -430,7 +95,9 @@ if __name__ == '__main__':
plugins = ['plugins/%s.so'%(x.name.rpartition('.')[-1]) for x in ext_modules] plugins = ['plugins/%s.so'%(x.name.rpartition('.')[-1]) for x in ext_modules]
else: else:
plugins = ['plugins/%s.pyd'%(x.name.rpartition('.')[-1]) for x in ext_modules] + \ plugins = ['plugins/%s.pyd'%(x.name.rpartition('.')[-1]) for x in ext_modules] + \
['plugins/%s.pyd.manifest'%(x.name.rpartition('.')[-1]) for x in ext_modules if 'pictureflow' not in x.name] ['plugins/%s.pyd.manifest'%(x.name.rpartition('.')[-1]) \
for x in ext_modules if 'pictureflow' not in x.name]
setup( setup(
name = APPNAME, name = APPNAME,
@ -451,7 +118,11 @@ if __name__ == '__main__':
''', ''',
long_description = long_description =
''' '''
%s is an e-book library manager. It can view, convert and catalog e-books in most of the major e-book formats. It can also talk to a few e-book reader devices. It can go out to the internet and fetch metadata for your books. It can download newspapers and convert them into e-books for convenient reading. It is cross platform, running on Linux, Windows and OS X. %s is an e-book library manager. It can view, convert and catalog e-books \
in most of the major e-book formats. It can also talk to e-book reader \
devices. It can go out to the internet and fetch metadata for your books. \
It can download newspapers and convert them into e-books for convenient \
reading. It is cross platform, running on Linux, Windows and OS X.
For screenshots: https://%s.kovidgoyal.net/wiki/Screenshots For screenshots: https://%s.kovidgoyal.net/wiki/Screenshots
@ -490,6 +161,19 @@ if __name__ == '__main__':
'gui' : gui, 'gui' : gui,
'clean' : clean, 'clean' : clean,
'sdist' : sdist, 'sdist' : sdist,
'update' : update,
'tag_release' : tag_release,
'upload_demo' : upload_demo,
'build_linux' : build_linux,
'build_windows' : build_windows,
'build_osx' : build_osx,
'upload_installers': upload_installers,
'upload_user_manual': upload_user_manual,
'upload_to_pypi': upload_to_pypi,
'stage3' : stage3,
'stage2' : stage2,
'stage1' : stage1,
'publish' : upload,
}, },
) )

View File

@ -27,7 +27,8 @@ mimetypes.add_type('application/adobe-page-template+xml', '.xpgt')
mimetypes.add_type('application/x-font-opentype', '.otf') mimetypes.add_type('application/x-font-opentype', '.otf')
mimetypes.add_type('application/x-font-truetype', '.ttf') mimetypes.add_type('application/x-font-truetype', '.ttf')
mimetypes.add_type('application/oebps-package+xml', '.opf') mimetypes.add_type('application/oebps-package+xml', '.opf')
import cssutils
cssutils.log.setLevel(logging.WARN)
def to_unicode(raw, encoding='utf-8', errors='strict'): def to_unicode(raw, encoding='utf-8', errors='strict'):
if isinstance(raw, unicode): if isinstance(raw, unicode):

View File

@ -2,7 +2,7 @@ __license__ = 'GPL v3'
__copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' __copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net'
__docformat__ = 'restructuredtext en' __docformat__ = 'restructuredtext en'
__appname__ = 'calibre' __appname__ = 'calibre'
__version__ = '0.4.137' __version__ = '0.4.138'
__author__ = "Kovid Goyal <kovid@kovidgoyal.net>" __author__ = "Kovid Goyal <kovid@kovidgoyal.net>"
''' '''
Various run time constants. Various run time constants.

View File

@ -310,6 +310,8 @@ def create_cover_image(src, dest, screen_size, rescale_cover=True):
def process_title_page(mi, filelist, htmlfilemap, opts, tdir): def process_title_page(mi, filelist, htmlfilemap, opts, tdir):
old_title_page = None old_title_page = None
f = lambda x : os.path.normcase(os.path.normpath(x)) f = lambda x : os.path.normcase(os.path.normpath(x))
if not isinstance(mi.cover, basestring):
mi.cover = None
if mi.cover: if mi.cover:
if f(filelist[0].path) == f(mi.cover): if f(filelist[0].path) == f(mi.cover):
old_title_page = htmlfilemap[filelist[0].path] old_title_page = htmlfilemap[filelist[0].path]

View File

@ -332,6 +332,8 @@ class PreProcessor(object):
(re.compile(r'&(\S+?);'), convert_entities), (re.compile(r'&(\S+?);'), convert_entities),
# Remove the <![if/endif tags inserted by everybody's darling, MS Word # Remove the <![if/endif tags inserted by everybody's darling, MS Word
(re.compile(r'(?i)<{0,1}!\[(end){0,1}if[^>]*>'), lambda match: ''), (re.compile(r'(?i)<{0,1}!\[(end){0,1}if[^>]*>'), lambda match: ''),
# Strip all comments since Adobe DE is petrified of them
(re.compile(r'<!--[^>]*>'), lambda match : ''),
] ]
# Fix pdftohtml markup # Fix pdftohtml markup
@ -491,9 +493,25 @@ class Parser(PreProcessor, LoggingInterface):
self.root.insert(0, head) self.root.insert(0, head)
self.head = head self.head = head
self.body = self.root.body try:
self.body = self.root.body
except:
import traceback
err = traceback.format_exc()
self.root = fromstring(u'<html><head/><body><p>This page was too '
'severely malformed for calibre to handle. '
'It has been replaced by this error message.'
'</p><pre>%s</pre></body></html>'%err)
self.head = self.root.xpath('./head')[0]
self.body = self.root.body
invalid_counter = 0
for a in self.root.xpath('//a[@name]'): for a in self.root.xpath('//a[@name]'):
a.set('id', a.get('name')) try:
a.set('id', a.get('name'))
except:
invalid_counter += 1
for x in ('id', 'name'):
a.set(x, 'calibre_invalid_id_%d'%invalid_counter)
if not self.head.xpath('./title'): if not self.head.xpath('./title'):
title = etree.SubElement(self.head, 'title') title = etree.SubElement(self.head, 'title')
title.text = _('Unknown') title.text = _('Unknown')

View File

@ -780,7 +780,7 @@ class LitReader(object):
if u != 0: if u != 0:
raise LitError("Reset table entry greater than 32 bits") raise LitError("Reset table entry greater than 32 bits")
if size >= len(content): if size >= len(content):
raise LitError("Reset table entry out of bounds") self._warn("LZX reset table entry out of bounds")
if bytes_remaining >= window_bytes: if bytes_remaining >= window_bytes:
lzx.reset() lzx.reset()
try: try:

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -249,9 +249,6 @@ class MobiReader(object):
self.processed_html = '<html><p>'+self.processed_html.replace('\n\n', '<p>')+'</html>' self.processed_html = '<html><p>'+self.processed_html.replace('\n\n', '<p>')+'</html>'
self.processed_html = self.processed_html.replace('\r\n', '\n') self.processed_html = self.processed_html.replace('\r\n', '\n')
self.processed_html = self.processed_html.replace('> <', '>\n<') self.processed_html = self.processed_html.replace('> <', '>\n<')
for t, c in [('b', 'bold'), ('i', 'italic')]:
self.processed_html = re.sub(r'(?i)<%s>'%t, r'<span class="%s">'%c, self.processed_html)
self.processed_html = re.sub(r'(?i)</%s>'%t, r'</span>', self.processed_html)
def upshift_markup(self, root): def upshift_markup(self, root):
if self.verbose: if self.verbose:
@ -273,8 +270,6 @@ class MobiReader(object):
for key in tag.attrib.keys(): for key in tag.attrib.keys():
tag.attrib.pop(key) tag.attrib.pop(key)
continue continue
if tag.tag == 'pre' and not tag.text:
tag.tag = 'div'
styles, attrib = [], tag.attrib styles, attrib = [], tag.attrib
if attrib.has_key('style'): if attrib.has_key('style'):
style = attrib.pop('style').strip() style = attrib.pop('style').strip()
@ -294,35 +289,44 @@ class MobiReader(object):
align = attrib.pop('align').strip() align = attrib.pop('align').strip()
if align: if align:
styles.append('text-align: %s' % align) styles.append('text-align: %s' % align)
if mobi_version == 1 and tag.tag == 'hr': if tag.tag == 'hr':
tag.tag = 'div' if mobi_version == 1:
styles.append('page-break-before: always') tag.tag = 'div'
styles.append('display: block') styles.append('page-break-before: always')
styles.append('margin: 0') styles.append('display: block')
if styles: styles.append('margin: 0')
attrib['style'] = '; '.join(styles) elif tag.tag == 'i':
tag.tag = 'span'
if tag.tag.lower() == 'font': tag.attrib['class'] = 'italic'
elif tag.tag == 'b':
tag.tag = 'span'
tag.attrib['class'] = 'bold'
elif tag.tag == 'font':
sz = tag.get('size', '').lower() sz = tag.get('size', '').lower()
try: try:
float(sz) float(sz)
except ValueError: except ValueError:
if sz in size_map.keys(): if sz in size_map.keys():
attrib['size'] = size_map[sz] attrib['size'] = size_map[sz]
elif tag.tag == 'img':
recindex = None
for attr in self.IMAGE_ATTRS:
recindex = attrib.pop(attr, None) or recindex
if recindex is not None:
attrib['src'] = 'images/%s.jpg' % recindex
elif tag.tag == 'pre':
if not tag.text:
tag.tag = 'div'
if styles:
attrib['style'] = '; '.join(styles)
if 'filepos-id' in attrib: if 'filepos-id' in attrib:
attrib['id'] = attrib.pop('filepos-id') attrib['id'] = attrib.pop('filepos-id')
if 'filepos' in attrib: if 'filepos' in attrib:
filepos = attrib.pop('filepos') filepos = attrib.pop('filepos')
try: try:
attrib['href'] = "#filepos%d" % int(filepos) attrib['href'] = "#filepos%d" % int(filepos)
except: except ValueError:
attrib['href'] = filepos pass
if tag.tag == 'img':
recindex = None
for attr in self.IMAGE_ATTRS:
recindex = attrib.pop(attr, None) or recindex
if recindex is not None:
attrib['src'] = 'images/%s.jpg' % recindex
def create_opf(self, htmlfile, guide=None): def create_opf(self, htmlfile, guide=None):
mi = self.book_header.exth.mi mi = self.book_header.exth.mi
@ -332,7 +336,7 @@ class MobiReader(object):
manifest = [(htmlfile, 'text/x-oeb1-document')] manifest = [(htmlfile, 'text/x-oeb1-document')]
bp = os.path.dirname(htmlfile) bp = os.path.dirname(htmlfile)
for i in getattr(self, 'image_names', []): for i in getattr(self, 'image_names', []):
manifest.append((os.path.join(bp, 'images/', i), 'image/jpg')) manifest.append((os.path.join(bp, 'images/', i), 'image/jpeg'))
opf.create_manifest(manifest) opf.create_manifest(manifest)
opf.create_spine([os.path.basename(htmlfile)]) opf.create_spine([os.path.basename(htmlfile)])

View File

@ -416,7 +416,11 @@ class MobiWriter(object):
coverid = metadata.cover[0] if metadata.cover else None coverid = metadata.cover[0] if metadata.cover else None
for _, href in images: for _, href in images:
item = self._oeb.manifest.hrefs[href] item = self._oeb.manifest.hrefs[href]
data = rescale_image(item.data, self._imagemax) try:
data = rescale_image(item.data, self._imagemax)
except IOError:
self._oeb.logger.warn('Bad image file %r' % item.href)
continue
self._records.append(data) self._records.append(data)
def _generate_record0(self): def _generate_record0(self):
@ -486,9 +490,11 @@ class MobiWriter(object):
index = self._images[href] - 1 index = self._images[href] - 1
exth.write(pack('>III', 0xc9, 0x0c, index)) exth.write(pack('>III', 0xc9, 0x0c, index))
exth.write(pack('>III', 0xcb, 0x0c, 0)) exth.write(pack('>III', 0xcb, 0x0c, 0))
index = self._add_thumbnail(item) - 1 nrecs += 2
exth.write(pack('>III', 0xca, 0x0c, index)) index = self._add_thumbnail(item)
nrecs += 3 if index is not None:
exth.write(pack('>III', 0xca, 0x0c, index - 1))
nrecs += 1
exth = exth.getvalue() exth = exth.getvalue()
trail = len(exth) % 4 trail = len(exth) % 4
pad = '\0' * (4 - trail) # Always pad w/ at least 1 byte pad = '\0' * (4 - trail) # Always pad w/ at least 1 byte
@ -496,7 +502,11 @@ class MobiWriter(object):
return ''.join(exth) return ''.join(exth)
def _add_thumbnail(self, item): def _add_thumbnail(self, item):
data = rescale_image(item.data, MAX_THUMB_SIZE, MAX_THUMB_DIMEN) try:
data = rescale_image(item.data, MAX_THUMB_SIZE, MAX_THUMB_DIMEN)
except IOError:
self._oeb.logger.warn('Bad image file %r' % item.href)
return None
manifest = self._oeb.manifest manifest = self._oeb.manifest
id, href = manifest.generate('thumbnail', 'thumbnail.jpeg') id, href = manifest.generate('thumbnail', 'thumbnail.jpeg')
manifest.add(id, href, 'image/jpeg', data=data) manifest.add(id, href, 'image/jpeg', data=data)

View File

@ -8,24 +8,20 @@ from __future__ import with_statement
__license__ = 'GPL v3' __license__ = 'GPL v3'
__copyright__ = '2008, Marshall T. Vandegrift <llasram@gmail.com>' __copyright__ = '2008, Marshall T. Vandegrift <llasram@gmail.com>'
import sys
import os import os
import locale
import codecs
import itertools import itertools
import types
import re import re
import copy import copy
from itertools import izip
from weakref import WeakKeyDictionary from weakref import WeakKeyDictionary
from xml.dom import SyntaxErr as CSSSyntaxError from xml.dom import SyntaxErr as CSSSyntaxError
import cssutils import cssutils
from cssutils.css import CSSStyleRule, CSSPageRule, CSSStyleDeclaration, \ from cssutils.css import CSSStyleRule, CSSPageRule, CSSStyleDeclaration, \
CSSValueList, cssproperties CSSValueList, cssproperties
from cssutils.profiles import profiles as cssprofiles
from lxml import etree from lxml import etree
from lxml.cssselect import css_to_xpath, ExpressionError from lxml.cssselect import css_to_xpath, ExpressionError
from calibre.ebooks.oeb.base import XHTML, XHTML_NS, CSS_MIME, OEB_STYLES from calibre.ebooks.oeb.base import XHTML, XHTML_NS, CSS_MIME, OEB_STYLES
from calibre.ebooks.oeb.base import XPNSMAP, xpath, barename, urlnormalize from calibre.ebooks.oeb.base import XPNSMAP, xpath, urlnormalize
from calibre.ebooks.oeb.profile import PROFILES from calibre.ebooks.oeb.profile import PROFILES
from calibre.resources import html_css from calibre.resources import html_css
@ -163,7 +159,7 @@ class Stylizer(object):
for _, _, cssdict, text, _ in rules: for _, _, cssdict, text, _ in rules:
try: try:
selector = CSSSelector(text) selector = CSSSelector(text)
except ExpressionError, e: except ExpressionError:
continue continue
for elem in selector(tree): for elem in selector(tree):
self.style(elem)._update_cssdict(cssdict) self.style(elem)._update_cssdict(cssdict)
@ -246,7 +242,7 @@ class Stylizer(object):
primitives.reverse() primitives.reverse()
value = primitives.pop() value = primitives.pop()
for key in composition: for key in composition:
if cssproperties.cssvalues[key](value): if cssprofiles.validate(key, value):
style[key] = value style[key] = value
if not primitives: break if not primitives: break
value = primitives.pop() value = primitives.pop()

View File

@ -6,13 +6,9 @@ from __future__ import with_statement
__license__ = 'GPL v3' __license__ = 'GPL v3'
__copyright__ = '2008, Marshall T. Vandegrift <llasram@gmail.com>' __copyright__ = '2008, Marshall T. Vandegrift <llasram@gmail.com>'
import sys
import os
from itertools import chain from itertools import chain
from urlparse import urldefrag from urlparse import urldefrag
from lxml import etree from calibre.ebooks.oeb.base import CSS_MIME, OEB_DOCS
import cssutils
from calibre.ebooks.oeb.base import XPNSMAP, CSS_MIME, OEB_DOCS
from calibre.ebooks.oeb.base import LINK_SELECTORS, CSSURL_RE from calibre.ebooks.oeb.base import LINK_SELECTORS, CSSURL_RE
from calibre.ebooks.oeb.base import urlnormalize from calibre.ebooks.oeb.base import urlnormalize

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -216,12 +216,9 @@ class BooksModel(QAbstractTableModel):
def delete_books(self, indices): def delete_books(self, indices):
ids = [ self.id(i) for i in indices ] ids = map(self.id, indices)
for id in ids: for id in ids:
row = self.db.index(id) self.db.delete_book(id, notify=False)
self.beginRemoveRows(QModelIndex(), row, row)
self.db.delete_book(id)
self.endRemoveRows()
self.count_changed() self.count_changed()
self.clear_caches() self.clear_caches()
self.reset() self.reset()

View File

@ -1355,10 +1355,13 @@ class Main(MainWindow, Ui_MainWindow):
''' '''
Handle exceptions in threaded device jobs. Handle exceptions in threaded device jobs.
''' '''
if 'Could not read 32 bytes on the control bus.' in str(job.exception): try:
error_dialog(self, _('Error talking to device'), if 'Could not read 32 bytes on the control bus.' in unicode(job.exception):
_('There was a temporary error talking to the device. Please unplug and reconnect the device and or reboot.')).show() error_dialog(self, _('Error talking to device'),
return _('There was a temporary error talking to the device. Please unplug and reconnect the device and or reboot.')).show()
return
except:
pass
try: try:
print >>sys.stderr, job.console_text() print >>sys.stderr, job.console_text()
except: except:

View File

@ -729,7 +729,7 @@ class LibraryDatabase2(LibraryDatabase):
if notify: if notify:
self.notify('metadata', [id]) self.notify('metadata', [id])
def delete_book(self, id): def delete_book(self, id, notify=True):
''' '''
Removes book from the result cache and the underlying database. Removes book from the result cache and the underlying database.
''' '''
@ -744,7 +744,8 @@ class LibraryDatabase2(LibraryDatabase):
self.conn.commit() self.conn.commit()
self.clean() self.clean()
self.data.books_deleted([id]) self.data.books_deleted([id])
self.notify('delete', [id]) if notify:
self.notify('delete', [id])
def remove_format(self, index, format, index_is_id=False, notify=True): def remove_format(self, index, format, index_is_id=False, notify=True):
id = index if index_is_id else self.id(index) id = index if index_is_id else self.id(index)
@ -1217,8 +1218,7 @@ class LibraryDatabase2(LibraryDatabase):
ext = os.path.splitext(path)[1][1:].lower() ext = os.path.splitext(path)[1][1:].lower()
if ext == 'opf': if ext == 'opf':
continue continue
stream = open(path, 'rb') self.add_format_with_hooks(id, ext, path, index_is_id=True)
self.add_format(id, ext, stream, index_is_id=True)
self.conn.commit() self.conn.commit()
self.data.refresh_ids(self.conn, [id]) # Needed to update format list and size self.data.refresh_ids(self.conn, [id]) # Needed to update format list and size
if notify: if notify:

View File

@ -7,14 +7,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre\n" "Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-02-11 03:58+0000\n" "POT-Creation-Date: 2009-02-13 20:29+0000\n"
"PO-Revision-Date: 2009-02-04 10:04+0000\n" "PO-Revision-Date: 2009-02-04 10:04+0000\n"
"Last-Translator: عبد الله شلي (Abdellah Chelli) <sneetsher@gmail.com>\n" "Last-Translator: عبد الله شلي (Abdellah Chelli) <sneetsher@gmail.com>\n"
"Language-Team: Arabic <ar@li.org>\n" "Language-Team: Arabic <ar@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-02-13 19:24+0000\n" "X-Launchpad-Export-Date: 2009-02-18 20:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41
@ -57,7 +57,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:487
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574
@ -78,20 +78,21 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:894 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:894
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:933 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:940
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123
#: /home/kovid/work/calibre/src/calibre/library/cli.py:257 #: /home/kovid/work/calibre/src/calibre/library/cli.py:257
#: /home/kovid/work/calibre/src/calibre/library/database.py:916 #: /home/kovid/work/calibre/src/calibre/library/database.py:916
#: /home/kovid/work/calibre/src/calibre/library/database2.py:472 #: /home/kovid/work/calibre/src/calibre/library/database2.py:473
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484 #: /home/kovid/work/calibre/src/calibre/library/database2.py:485
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865 #: /home/kovid/work/calibre/src/calibre/library/database2.py:866
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900 #: /home/kovid/work/calibre/src/calibre/library/database2.py:901
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1408
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459
#: /home/kovid/work/calibre/src/calibre/library/server.py:315 #: /home/kovid/work/calibre/src/calibre/library/server.py:315
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51
msgid "Unknown" msgid "Unknown"
@ -606,7 +607,7 @@ msgid "%prog [options] LITFILE"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:506 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
msgid "Output directory. Defaults to current directory." msgid "Output directory. Defaults to current directory."
msgstr "" msgstr ""
@ -621,7 +622,7 @@ msgid "Useful for debugging."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:530 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:535
msgid "OEB ebook created in" msgid "OEB ebook created in"
msgstr "" msgstr ""
@ -1572,11 +1573,11 @@ msgstr ""
msgid "Creating Mobipocket file from EPUB..." msgid "Creating Mobipocket file from EPUB..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:504 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:509
msgid "%prog [options] myebook.mobi" msgid "%prog [options] myebook.mobi"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:528 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:533
msgid "Raw MOBI HTML saved in" msgid "Raw MOBI HTML saved in"
msgstr "" msgstr ""
@ -1870,7 +1871,7 @@ msgid "Adding books to database..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:694 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
msgid "Reading metadata..." msgid "Reading metadata..."
msgstr "" msgstr ""
@ -2096,7 +2097,7 @@ msgid "Access log:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:406
msgid "Failed to start content server" msgid "Failed to start content server"
msgstr "" msgstr ""
@ -2520,7 +2521,7 @@ msgid " is not a valid picture"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "Cannot convert" msgid "Cannot convert"
msgstr "" msgstr ""
@ -3195,47 +3196,52 @@ msgstr ""
msgid "A&utomatically set author sort" msgid "A&utomatically set author sort"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118
msgid "No format selected"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
msgid "Could not read metadata" msgid "Could not read metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129
msgid "Could not read metadata from %s format" msgid "Could not read metadata from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
msgid "Could not read cover" msgid "Could not read cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:138
msgid "Could not read cover from %s format" msgid "Could not read cover from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:144
msgid "The cover in the %s format is invalid" msgid "The cover in the %s format is invalid"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:323
msgid "" msgid ""
"<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you " "<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you "
"do not have one, you can <a href='http://www.librarything.com'>register</a> " "do not have one, you can <a href='http://www.librarything.com'>register</a> "
"for free!.</p>" "for free!.</p>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "<b>Could not fetch cover.</b><br/>" msgid "<b>Could not fetch cover.</b><br/>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "Could not fetch cover" msgid "Could not fetch cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "Cannot fetch cover" msgid "Cannot fetch cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "You must specify the ISBN identifier for this book." msgid "You must specify the ISBN identifier for this book."
msgstr "" msgstr ""
@ -3395,9 +3401,9 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809 #: /home/kovid/work/calibre/src/calibre/library/database2.py:810
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813 #: /home/kovid/work/calibre/src/calibre/library/database2.py:814
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
msgid "News" msgid "News"
msgstr "" msgstr ""
@ -4081,7 +4087,7 @@ msgid "Save to disk in a single directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:193 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:193
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1248 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "" msgstr ""
@ -4119,31 +4125,31 @@ msgid "Bad database location"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:290
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1388 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1395
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:440 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:445
msgid "Browse by covers" msgid "Browse by covers"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
msgid "Device: " msgid "Device: "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
msgid " detected." msgid " detected."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
msgid "Connected " msgid "Connected "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:563 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:569
msgid "Device database corrupted" msgid "Device database corrupted"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
msgid "" msgid ""
"\n" "\n"
" <p>The database of books on the reader is corrupted. Try the " " <p>The database of books on the reader is corrupted. Try the "
@ -4159,276 +4165,276 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
msgid "Books" msgid "Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
msgid "EPUB Books" msgid "EPUB Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
msgid "LRF Books" msgid "LRF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
msgid "HTML Books" msgid "HTML Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
msgid "LIT Books" msgid "LIT Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
msgid "MOBI Books" msgid "MOBI Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
msgid "Text books" msgid "Text books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
msgid "PDF Books" msgid "PDF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
msgid "Comics" msgid "Comics"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
msgid "Archives" msgid "Archives"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
msgid "Adding books..." msgid "Adding books..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:735 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:742
msgid "No space on device" msgid "No space on device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
msgid "" msgid ""
"<p>Cannot upload books to device there is no more free space available " "<p>Cannot upload books to device there is no more free space available "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "No books selected" msgid "No books selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:887 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:894
msgid "Sending news to device." msgid "Sending news to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:941 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:948
msgid "Sending books to device." msgid "Sending books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:944 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:951
msgid "No suitable formats" msgid "No suitable formats"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
msgid "" msgid ""
"Could not upload the following books to the device, as no suitable formats " "Could not upload the following books to the device, as no suitable formats "
"were found:<br><ul>%s</ul>" "were found:<br><ul>%s</ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:973
msgid "Saving to disk..." msgid "Saving to disk..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
msgid "Saved" msgid "Saved"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:977 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:984
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
msgid "" msgid ""
"<p>Could not save the following books to disk, because the %s format is not " "<p>Could not save the following books to disk, because the %s format is not "
"available for them:<ul>" "available for them:<ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:995 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1002
msgid "Could not save some ebooks" msgid "Could not save some ebooks"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1024
msgid "Fetching news from " msgid "Fetching news from "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
msgid " fetched." msgid " fetched."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
msgid "No book selected" msgid "No book selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
msgid "Cannot view" msgid "Cannot view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1201 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1208
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure" msgid "Cannot configure"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
msgid "Copying database" msgid "Copying database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1259 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1266
msgid "Copying library to " msgid "Copying library to "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
msgid "Invalid database" msgid "Invalid database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
msgid "" msgid ""
"<p>An invalid database already exists at %s, delete it before trying to move " "<p>An invalid database already exists at %s, delete it before trying to move "
"the existing database.<br>Error: %s" "the existing database.<br>Error: %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1283
msgid "Could not move database" msgid "Could not move database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1296 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1303
msgid "No detailed info available" msgid "No detailed info available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1297 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1304
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1340 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1347
msgid "Error talking to device" msgid "Error talking to device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
msgid "Conversion Error" msgid "Conversion Error"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using 3rd party tools." "first remove the DRM using 3rd party tools."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1454 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1461
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" 'Quitting may cause corruption on the device.<br>\n" " 'Quitting may cause corruption on the device.<br>\n"
" 'Are you sure you want to quit?" " 'Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "" msgid ""
"%s has been updated to version %s. See the <a " "%s has been updated to version %s. See the <a "
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
"Visit the download page?" "Visit the download page?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "Update available" msgid "Update available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1531 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1538
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1533 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1540
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1535 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1542
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "" msgstr ""
@ -5168,20 +5174,20 @@ msgid ""
"For help on an individual command: %%prog command --help\n" "For help on an individual command: %%prog command --help\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1221 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1228
msgid "<p>Copying books to %s<br><center>" msgid "<p>Copying books to %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
msgid "Copying <b>%s</b>" msgid "Copying <b>%s</b>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1314 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1321
msgid "<p>Migrating old database to ebook library in %s<br><center>" msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
msgid "Compacting database" msgid "Compacting database"
msgstr "" msgstr ""
@ -5212,39 +5218,39 @@ msgstr ""
msgid "Created by " msgid "Created by "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:531 #: /home/kovid/work/calibre/src/calibre/utils/config.py:536
msgid "Path to the database in which books are stored" msgid "Path to the database in which books are stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:533 #: /home/kovid/work/calibre/src/calibre/utils/config.py:538
msgid "Pattern to guess metadata from filenames" msgid "Pattern to guess metadata from filenames"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:535 #: /home/kovid/work/calibre/src/calibre/utils/config.py:540
msgid "Access key for isbndb.com" msgid "Access key for isbndb.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:537 #: /home/kovid/work/calibre/src/calibre/utils/config.py:542
msgid "Default timeout for network operations (seconds)" msgid "Default timeout for network operations (seconds)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:539 #: /home/kovid/work/calibre/src/calibre/utils/config.py:544
msgid "Path to directory in which your library of books is stored" msgid "Path to directory in which your library of books is stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:541 #: /home/kovid/work/calibre/src/calibre/utils/config.py:546
msgid "The language in which to display the user interface" msgid "The language in which to display the user interface"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:543 #: /home/kovid/work/calibre/src/calibre/utils/config.py:548
msgid "The default output format for ebook conversions." msgid "The default output format for ebook conversions."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:545 #: /home/kovid/work/calibre/src/calibre/utils/config.py:550
msgid "Read metadata from files" msgid "Read metadata from files"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:547 #: /home/kovid/work/calibre/src/calibre/utils/config.py:552
msgid "The priority of worker processes" msgid "The priority of worker processes"
msgstr "" msgstr ""
@ -5287,28 +5293,28 @@ msgid "Customize the download engine"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:460
msgid "" msgid ""
"Timeout in seconds to wait for a response from the server. Default: %default " "Timeout in seconds to wait for a response from the server. Default: %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
msgid "" msgid ""
"Minimum interval in seconds between consecutive fetches. Default is %default " "Minimum interval in seconds between consecutive fetches. Default is %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470
msgid "" msgid ""
"The character encoding for the websites you are trying to download. The " "The character encoding for the websites you are trying to download. The "
"default is to try and guess the encoding." "default is to try and guess the encoding."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
msgid "" msgid ""
"Only links that match this regular expression will be followed. This option " "Only links that match this regular expression will be followed. This option "
"can be specified multiple times, in which case as long as a link matches any " "can be specified multiple times, in which case as long as a link matches any "
@ -5316,7 +5322,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
msgid "" msgid ""
"Any link that matches this regular expression will be ignored. This option " "Any link that matches this regular expression will be ignored. This option "
"can be specified multiple times, in which case as long as any regexp matches " "can be specified multiple times, in which case as long as any regexp matches "
@ -5326,7 +5332,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476
msgid "Do not download CSS stylesheets." msgid "Do not download CSS stylesheets."
msgstr "" msgstr ""
@ -5513,12 +5519,12 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:63 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:21
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64
@ -5531,11 +5537,13 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:13
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chicago_breaking_news.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
@ -5609,17 +5617,17 @@ msgstr ""
msgid "English" msgid "English"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:29
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:19 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:27
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
msgid "Serbian" msgid "Serbian"
msgstr "" msgstr ""
@ -5651,33 +5659,33 @@ msgstr ""
msgid "German" msgid "German"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:23 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:22
msgid "Croatian" msgid "Croatian"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
msgid "" msgid ""
"%prog URL\n" "%prog URL\n"
"\n" "\n"
"Where URL is for example http://google.com" "Where URL is for example http://google.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:455 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:457
msgid "Base directory into which URL is saved. Default is %default" msgid "Base directory into which URL is saved. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
msgid "" msgid ""
"Maximum number of levels to recurse i.e. depth of links to follow. Default " "Maximum number of levels to recurse i.e. depth of links to follow. Default "
"%default" "%default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
msgid "" msgid ""
"The maximum number of files to download. This only applies to files from <a " "The maximum number of files to download. This only applies to files from <a "
"href> tags. Default is %default" "href> tags. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477
msgid "Show detailed output information. Useful for debugging" msgid "Show detailed output information. Useful for debugging"
msgstr "" msgstr ""

View File

@ -6,14 +6,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre 0.4.51\n" "Project-Id-Version: calibre 0.4.51\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-02-11 03:58+0000\n" "POT-Creation-Date: 2009-02-13 20:29+0000\n"
"PO-Revision-Date: 2008-05-24 06:23+0000\n" "PO-Revision-Date: 2008-05-24 06:23+0000\n"
"Last-Translator: Kovid Goyal <Unknown>\n" "Last-Translator: Kovid Goyal <Unknown>\n"
"Language-Team: bg\n" "Language-Team: bg\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-02-13 19:24+0000\n" "X-Launchpad-Export-Date: 2009-02-18 20:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
"Generated-By: pygettext.py 1.5\n" "Generated-By: pygettext.py 1.5\n"
@ -57,7 +57,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:487
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574
@ -78,20 +78,21 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:894 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:894
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:933 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:940
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123
#: /home/kovid/work/calibre/src/calibre/library/cli.py:257 #: /home/kovid/work/calibre/src/calibre/library/cli.py:257
#: /home/kovid/work/calibre/src/calibre/library/database.py:916 #: /home/kovid/work/calibre/src/calibre/library/database.py:916
#: /home/kovid/work/calibre/src/calibre/library/database2.py:472 #: /home/kovid/work/calibre/src/calibre/library/database2.py:473
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484 #: /home/kovid/work/calibre/src/calibre/library/database2.py:485
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865 #: /home/kovid/work/calibre/src/calibre/library/database2.py:866
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900 #: /home/kovid/work/calibre/src/calibre/library/database2.py:901
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1408
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459
#: /home/kovid/work/calibre/src/calibre/library/server.py:315 #: /home/kovid/work/calibre/src/calibre/library/server.py:315
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51
msgid "Unknown" msgid "Unknown"
@ -606,7 +607,7 @@ msgid "%prog [options] LITFILE"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:506 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
msgid "Output directory. Defaults to current directory." msgid "Output directory. Defaults to current directory."
msgstr "" msgstr ""
@ -621,7 +622,7 @@ msgid "Useful for debugging."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:530 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:535
msgid "OEB ebook created in" msgid "OEB ebook created in"
msgstr "" msgstr ""
@ -1572,11 +1573,11 @@ msgstr ""
msgid "Creating Mobipocket file from EPUB..." msgid "Creating Mobipocket file from EPUB..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:504 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:509
msgid "%prog [options] myebook.mobi" msgid "%prog [options] myebook.mobi"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:528 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:533
msgid "Raw MOBI HTML saved in" msgid "Raw MOBI HTML saved in"
msgstr "" msgstr ""
@ -1870,7 +1871,7 @@ msgid "Adding books to database..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:694 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
msgid "Reading metadata..." msgid "Reading metadata..."
msgstr "" msgstr ""
@ -2096,7 +2097,7 @@ msgid "Access log:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:406
msgid "Failed to start content server" msgid "Failed to start content server"
msgstr "" msgstr ""
@ -2520,7 +2521,7 @@ msgid " is not a valid picture"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "Cannot convert" msgid "Cannot convert"
msgstr "" msgstr ""
@ -3195,47 +3196,52 @@ msgstr ""
msgid "A&utomatically set author sort" msgid "A&utomatically set author sort"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118
msgid "No format selected"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
msgid "Could not read metadata" msgid "Could not read metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129
msgid "Could not read metadata from %s format" msgid "Could not read metadata from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
msgid "Could not read cover" msgid "Could not read cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:138
msgid "Could not read cover from %s format" msgid "Could not read cover from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:144
msgid "The cover in the %s format is invalid" msgid "The cover in the %s format is invalid"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:323
msgid "" msgid ""
"<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you " "<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you "
"do not have one, you can <a href='http://www.librarything.com'>register</a> " "do not have one, you can <a href='http://www.librarything.com'>register</a> "
"for free!.</p>" "for free!.</p>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "<b>Could not fetch cover.</b><br/>" msgid "<b>Could not fetch cover.</b><br/>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "Could not fetch cover" msgid "Could not fetch cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "Cannot fetch cover" msgid "Cannot fetch cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "You must specify the ISBN identifier for this book." msgid "You must specify the ISBN identifier for this book."
msgstr "" msgstr ""
@ -3395,9 +3401,9 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809 #: /home/kovid/work/calibre/src/calibre/library/database2.py:810
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813 #: /home/kovid/work/calibre/src/calibre/library/database2.py:814
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
msgid "News" msgid "News"
msgstr "" msgstr ""
@ -4081,7 +4087,7 @@ msgid "Save to disk in a single directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:193 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:193
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1248 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "" msgstr ""
@ -4119,31 +4125,31 @@ msgid "Bad database location"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:290
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1388 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1395
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:440 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:445
msgid "Browse by covers" msgid "Browse by covers"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
msgid "Device: " msgid "Device: "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
msgid " detected." msgid " detected."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
msgid "Connected " msgid "Connected "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:563 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:569
msgid "Device database corrupted" msgid "Device database corrupted"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
msgid "" msgid ""
"\n" "\n"
" <p>The database of books on the reader is corrupted. Try the " " <p>The database of books on the reader is corrupted. Try the "
@ -4159,276 +4165,276 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
msgid "Books" msgid "Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
msgid "EPUB Books" msgid "EPUB Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
msgid "LRF Books" msgid "LRF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
msgid "HTML Books" msgid "HTML Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
msgid "LIT Books" msgid "LIT Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
msgid "MOBI Books" msgid "MOBI Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
msgid "Text books" msgid "Text books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
msgid "PDF Books" msgid "PDF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
msgid "Comics" msgid "Comics"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
msgid "Archives" msgid "Archives"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
msgid "Adding books..." msgid "Adding books..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:735 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:742
msgid "No space on device" msgid "No space on device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
msgid "" msgid ""
"<p>Cannot upload books to device there is no more free space available " "<p>Cannot upload books to device there is no more free space available "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "No books selected" msgid "No books selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:887 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:894
msgid "Sending news to device." msgid "Sending news to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:941 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:948
msgid "Sending books to device." msgid "Sending books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:944 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:951
msgid "No suitable formats" msgid "No suitable formats"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
msgid "" msgid ""
"Could not upload the following books to the device, as no suitable formats " "Could not upload the following books to the device, as no suitable formats "
"were found:<br><ul>%s</ul>" "were found:<br><ul>%s</ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:973
msgid "Saving to disk..." msgid "Saving to disk..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
msgid "Saved" msgid "Saved"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:977 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:984
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
msgid "" msgid ""
"<p>Could not save the following books to disk, because the %s format is not " "<p>Could not save the following books to disk, because the %s format is not "
"available for them:<ul>" "available for them:<ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:995 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1002
msgid "Could not save some ebooks" msgid "Could not save some ebooks"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1024
msgid "Fetching news from " msgid "Fetching news from "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
msgid " fetched." msgid " fetched."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
msgid "No book selected" msgid "No book selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
msgid "Cannot view" msgid "Cannot view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1201 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1208
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure" msgid "Cannot configure"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
msgid "Copying database" msgid "Copying database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1259 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1266
msgid "Copying library to " msgid "Copying library to "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
msgid "Invalid database" msgid "Invalid database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
msgid "" msgid ""
"<p>An invalid database already exists at %s, delete it before trying to move " "<p>An invalid database already exists at %s, delete it before trying to move "
"the existing database.<br>Error: %s" "the existing database.<br>Error: %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1283
msgid "Could not move database" msgid "Could not move database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1296 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1303
msgid "No detailed info available" msgid "No detailed info available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1297 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1304
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1340 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1347
msgid "Error talking to device" msgid "Error talking to device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
msgid "Conversion Error" msgid "Conversion Error"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using 3rd party tools." "first remove the DRM using 3rd party tools."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1454 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1461
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" 'Quitting may cause corruption on the device.<br>\n" " 'Quitting may cause corruption on the device.<br>\n"
" 'Are you sure you want to quit?" " 'Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "" msgid ""
"%s has been updated to version %s. See the <a " "%s has been updated to version %s. See the <a "
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
"Visit the download page?" "Visit the download page?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "Update available" msgid "Update available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1531 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1538
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1533 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1540
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1535 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1542
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "" msgstr ""
@ -5168,20 +5174,20 @@ msgid ""
"For help on an individual command: %%prog command --help\n" "For help on an individual command: %%prog command --help\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1221 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1228
msgid "<p>Copying books to %s<br><center>" msgid "<p>Copying books to %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
msgid "Copying <b>%s</b>" msgid "Copying <b>%s</b>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1314 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1321
msgid "<p>Migrating old database to ebook library in %s<br><center>" msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
msgid "Compacting database" msgid "Compacting database"
msgstr "" msgstr ""
@ -5212,39 +5218,39 @@ msgstr ""
msgid "Created by " msgid "Created by "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:531 #: /home/kovid/work/calibre/src/calibre/utils/config.py:536
msgid "Path to the database in which books are stored" msgid "Path to the database in which books are stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:533 #: /home/kovid/work/calibre/src/calibre/utils/config.py:538
msgid "Pattern to guess metadata from filenames" msgid "Pattern to guess metadata from filenames"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:535 #: /home/kovid/work/calibre/src/calibre/utils/config.py:540
msgid "Access key for isbndb.com" msgid "Access key for isbndb.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:537 #: /home/kovid/work/calibre/src/calibre/utils/config.py:542
msgid "Default timeout for network operations (seconds)" msgid "Default timeout for network operations (seconds)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:539 #: /home/kovid/work/calibre/src/calibre/utils/config.py:544
msgid "Path to directory in which your library of books is stored" msgid "Path to directory in which your library of books is stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:541 #: /home/kovid/work/calibre/src/calibre/utils/config.py:546
msgid "The language in which to display the user interface" msgid "The language in which to display the user interface"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:543 #: /home/kovid/work/calibre/src/calibre/utils/config.py:548
msgid "The default output format for ebook conversions." msgid "The default output format for ebook conversions."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:545 #: /home/kovid/work/calibre/src/calibre/utils/config.py:550
msgid "Read metadata from files" msgid "Read metadata from files"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:547 #: /home/kovid/work/calibre/src/calibre/utils/config.py:552
msgid "The priority of worker processes" msgid "The priority of worker processes"
msgstr "" msgstr ""
@ -5287,28 +5293,28 @@ msgid "Customize the download engine"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:460
msgid "" msgid ""
"Timeout in seconds to wait for a response from the server. Default: %default " "Timeout in seconds to wait for a response from the server. Default: %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
msgid "" msgid ""
"Minimum interval in seconds between consecutive fetches. Default is %default " "Minimum interval in seconds between consecutive fetches. Default is %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470
msgid "" msgid ""
"The character encoding for the websites you are trying to download. The " "The character encoding for the websites you are trying to download. The "
"default is to try and guess the encoding." "default is to try and guess the encoding."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
msgid "" msgid ""
"Only links that match this regular expression will be followed. This option " "Only links that match this regular expression will be followed. This option "
"can be specified multiple times, in which case as long as a link matches any " "can be specified multiple times, in which case as long as a link matches any "
@ -5316,7 +5322,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
msgid "" msgid ""
"Any link that matches this regular expression will be ignored. This option " "Any link that matches this regular expression will be ignored. This option "
"can be specified multiple times, in which case as long as any regexp matches " "can be specified multiple times, in which case as long as any regexp matches "
@ -5326,7 +5332,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476
msgid "Do not download CSS stylesheets." msgid "Do not download CSS stylesheets."
msgstr "" msgstr ""
@ -5513,12 +5519,12 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:63 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:21
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64
@ -5531,11 +5537,13 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:13
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chicago_breaking_news.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
@ -5609,17 +5617,17 @@ msgstr ""
msgid "English" msgid "English"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:29
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:19 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:27
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
msgid "Serbian" msgid "Serbian"
msgstr "" msgstr ""
@ -5651,33 +5659,33 @@ msgstr ""
msgid "German" msgid "German"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:23 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:22
msgid "Croatian" msgid "Croatian"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
msgid "" msgid ""
"%prog URL\n" "%prog URL\n"
"\n" "\n"
"Where URL is for example http://google.com" "Where URL is for example http://google.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:455 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:457
msgid "Base directory into which URL is saved. Default is %default" msgid "Base directory into which URL is saved. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
msgid "" msgid ""
"Maximum number of levels to recurse i.e. depth of links to follow. Default " "Maximum number of levels to recurse i.e. depth of links to follow. Default "
"%default" "%default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
msgid "" msgid ""
"The maximum number of files to download. This only applies to files from <a " "The maximum number of files to download. This only applies to files from <a "
"href> tags. Default is %default" "href> tags. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477
msgid "Show detailed output information. Useful for debugging" msgid "Show detailed output information. Useful for debugging"
msgstr "" msgstr ""

View File

@ -10,14 +10,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ca\n" "Project-Id-Version: ca\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-02-11 03:58+0000\n" "POT-Creation-Date: 2009-02-13 20:29+0000\n"
"PO-Revision-Date: 2008-05-24 06:21+0000\n" "PO-Revision-Date: 2008-05-24 06:21+0000\n"
"Last-Translator: Kovid Goyal <Unknown>\n" "Last-Translator: Kovid Goyal <Unknown>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-02-13 19:24+0000\n" "X-Launchpad-Export-Date: 2009-02-18 20:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41
@ -60,7 +60,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:487
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574
@ -81,20 +81,21 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:894 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:894
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:933 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:940
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123
#: /home/kovid/work/calibre/src/calibre/library/cli.py:257 #: /home/kovid/work/calibre/src/calibre/library/cli.py:257
#: /home/kovid/work/calibre/src/calibre/library/database.py:916 #: /home/kovid/work/calibre/src/calibre/library/database.py:916
#: /home/kovid/work/calibre/src/calibre/library/database2.py:472 #: /home/kovid/work/calibre/src/calibre/library/database2.py:473
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484 #: /home/kovid/work/calibre/src/calibre/library/database2.py:485
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865 #: /home/kovid/work/calibre/src/calibre/library/database2.py:866
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900 #: /home/kovid/work/calibre/src/calibre/library/database2.py:901
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1408
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459
#: /home/kovid/work/calibre/src/calibre/library/server.py:315 #: /home/kovid/work/calibre/src/calibre/library/server.py:315
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51
msgid "Unknown" msgid "Unknown"
@ -609,7 +610,7 @@ msgid "%prog [options] LITFILE"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:506 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
msgid "Output directory. Defaults to current directory." msgid "Output directory. Defaults to current directory."
msgstr "" msgstr ""
@ -624,7 +625,7 @@ msgid "Useful for debugging."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:530 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:535
msgid "OEB ebook created in" msgid "OEB ebook created in"
msgstr "" msgstr ""
@ -1618,11 +1619,11 @@ msgstr ""
msgid "Creating Mobipocket file from EPUB..." msgid "Creating Mobipocket file from EPUB..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:504 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:509
msgid "%prog [options] myebook.mobi" msgid "%prog [options] myebook.mobi"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:528 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:533
msgid "Raw MOBI HTML saved in" msgid "Raw MOBI HTML saved in"
msgstr "" msgstr ""
@ -1916,7 +1917,7 @@ msgid "Adding books to database..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:694 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
msgid "Reading metadata..." msgid "Reading metadata..."
msgstr "" msgstr ""
@ -2142,7 +2143,7 @@ msgid "Access log:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:406
msgid "Failed to start content server" msgid "Failed to start content server"
msgstr "" msgstr ""
@ -2566,7 +2567,7 @@ msgid " is not a valid picture"
msgstr " no és una imatge vàlida" msgstr " no és una imatge vàlida"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "Cannot convert" msgid "Cannot convert"
msgstr "No puc convertir-lo" msgstr "No puc convertir-lo"
@ -3257,47 +3258,52 @@ msgstr ""
msgid "A&utomatically set author sort" msgid "A&utomatically set author sort"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118
msgid "No format selected"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
msgid "Could not read metadata" msgid "Could not read metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129
msgid "Could not read metadata from %s format" msgid "Could not read metadata from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
msgid "Could not read cover" msgid "Could not read cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:138
msgid "Could not read cover from %s format" msgid "Could not read cover from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:144
msgid "The cover in the %s format is invalid" msgid "The cover in the %s format is invalid"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:323
msgid "" msgid ""
"<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you " "<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you "
"do not have one, you can <a href='http://www.librarything.com'>register</a> " "do not have one, you can <a href='http://www.librarything.com'>register</a> "
"for free!.</p>" "for free!.</p>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "<b>Could not fetch cover.</b><br/>" msgid "<b>Could not fetch cover.</b><br/>"
msgstr "<b>No puc aconseguir la coberta.</b><br/>" msgstr "<b>No puc aconseguir la coberta.</b><br/>"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "Could not fetch cover" msgid "Could not fetch cover"
msgstr "No puc aconseguir la coberta" msgstr "No puc aconseguir la coberta"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "Cannot fetch cover" msgid "Cannot fetch cover"
msgstr "No puc aconseguir la coberta" msgstr "No puc aconseguir la coberta"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "You must specify the ISBN identifier for this book." msgid "You must specify the ISBN identifier for this book."
msgstr "Cal especificar un ISBN correcte per al llibre." msgstr "Cal especificar un ISBN correcte per al llibre."
@ -3458,9 +3464,9 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809 #: /home/kovid/work/calibre/src/calibre/library/database2.py:810
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813 #: /home/kovid/work/calibre/src/calibre/library/database2.py:814
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
msgid "News" msgid "News"
msgstr "" msgstr ""
@ -4144,7 +4150,7 @@ msgid "Save to disk in a single directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:193 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:193
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1248 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "" msgstr ""
@ -4182,31 +4188,31 @@ msgid "Bad database location"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:290
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1388 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1395
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:440 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:445
msgid "Browse by covers" msgid "Browse by covers"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
msgid "Device: " msgid "Device: "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
msgid " detected." msgid " detected."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
msgid "Connected " msgid "Connected "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:563 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:569
msgid "Device database corrupted" msgid "Device database corrupted"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
msgid "" msgid ""
"\n" "\n"
" <p>The database of books on the reader is corrupted. Try the " " <p>The database of books on the reader is corrupted. Try the "
@ -4222,206 +4228,206 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
msgid "Books" msgid "Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
msgid "EPUB Books" msgid "EPUB Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
msgid "LRF Books" msgid "LRF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
msgid "HTML Books" msgid "HTML Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
msgid "LIT Books" msgid "LIT Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
msgid "MOBI Books" msgid "MOBI Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
msgid "Text books" msgid "Text books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
msgid "PDF Books" msgid "PDF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
msgid "Comics" msgid "Comics"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
msgid "Archives" msgid "Archives"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
msgid "Adding books..." msgid "Adding books..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:735 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:742
msgid "No space on device" msgid "No space on device"
msgstr "Sense espai al dispositiu" msgstr "Sense espai al dispositiu"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
msgid "" msgid ""
"<p>Cannot upload books to device there is no more free space available " "<p>Cannot upload books to device there is no more free space available "
msgstr "<p>No puc desar llibres al dispositiu perquè no hi ha espai restant " msgstr "<p>No puc desar llibres al dispositiu perquè no hi ha espai restant "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "No puc editar les meta-dades" msgstr "No puc editar les meta-dades"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "No books selected" msgid "No books selected"
msgstr "Cap llibre seleccionat" msgstr "Cap llibre seleccionat"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:887 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:894
msgid "Sending news to device." msgid "Sending news to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:941 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:948
msgid "Sending books to device." msgid "Sending books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:944 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:951
msgid "No suitable formats" msgid "No suitable formats"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
msgid "" msgid ""
"Could not upload the following books to the device, as no suitable formats " "Could not upload the following books to the device, as no suitable formats "
"were found:<br><ul>%s</ul>" "were found:<br><ul>%s</ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "No puc desar al disc" msgstr "No puc desar al disc"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:973
msgid "Saving to disk..." msgid "Saving to disk..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
msgid "Saved" msgid "Saved"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:977 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:984
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
msgid "" msgid ""
"<p>Could not save the following books to disk, because the %s format is not " "<p>Could not save the following books to disk, because the %s format is not "
"available for them:<ul>" "available for them:<ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:995 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1002
msgid "Could not save some ebooks" msgid "Could not save some ebooks"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1024
msgid "Fetching news from " msgid "Fetching news from "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
msgid " fetched." msgid " fetched."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
msgid "No book selected" msgid "No book selected"
msgstr "Cap llibre seleccionat" msgstr "Cap llibre seleccionat"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
msgid "Cannot view" msgid "Cannot view"
msgstr "No puc mostrar-lo" msgstr "No puc mostrar-lo"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1201 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1208
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure" msgid "Cannot configure"
msgstr "No puc configurar-lo" msgstr "No puc configurar-lo"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "No puc configurar-lo amb treballs processant-se" msgstr "No puc configurar-lo amb treballs processant-se"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
msgid "Copying database" msgid "Copying database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1259 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1266
msgid "Copying library to " msgid "Copying library to "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
msgid "Invalid database" msgid "Invalid database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
msgid "" msgid ""
"<p>An invalid database already exists at %s, delete it before trying to move " "<p>An invalid database already exists at %s, delete it before trying to move "
"the existing database.<br>Error: %s" "the existing database.<br>Error: %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1283
msgid "Could not move database" msgid "Could not move database"
msgstr "No puc moure la base de dades" msgstr "No puc moure la base de dades"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1296 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1303
msgid "No detailed info available" msgid "No detailed info available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1297 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1304
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1340 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1347
msgid "Error talking to device" msgid "Error talking to device"
msgstr "Error comunicant amb el dispositiu" msgstr "Error comunicant amb el dispositiu"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
@ -4429,71 +4435,71 @@ msgstr ""
"Hi ha hagut un error de comunicació amb el dispositiu. Lleve, torne a " "Hi ha hagut un error de comunicació amb el dispositiu. Lleve, torne a "
"connectar el dispositiu i torne a iniciar el programa" "connectar el dispositiu i torne a iniciar el programa"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
msgid "Conversion Error" msgid "Conversion Error"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using 3rd party tools." "first remove the DRM using 3rd party tools."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1454 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1461
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" 'Quitting may cause corruption on the device.<br>\n" " 'Quitting may cause corruption on the device.<br>\n"
" 'Are you sure you want to quit?" " 'Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "" msgid ""
"%s has been updated to version %s. See the <a " "%s has been updated to version %s. See the <a "
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
"Visit the download page?" "Visit the download page?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "Update available" msgid "Update available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1531 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1538
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1533 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1540
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1535 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1542
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "" msgstr ""
@ -5237,20 +5243,20 @@ msgid ""
"For help on an individual command: %%prog command --help\n" "For help on an individual command: %%prog command --help\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1221 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1228
msgid "<p>Copying books to %s<br><center>" msgid "<p>Copying books to %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
msgid "Copying <b>%s</b>" msgid "Copying <b>%s</b>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1314 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1321
msgid "<p>Migrating old database to ebook library in %s<br><center>" msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
msgid "Compacting database" msgid "Compacting database"
msgstr "" msgstr ""
@ -5281,39 +5287,39 @@ msgstr ""
msgid "Created by " msgid "Created by "
msgstr "Creat per " msgstr "Creat per "
#: /home/kovid/work/calibre/src/calibre/utils/config.py:531 #: /home/kovid/work/calibre/src/calibre/utils/config.py:536
msgid "Path to the database in which books are stored" msgid "Path to the database in which books are stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:533 #: /home/kovid/work/calibre/src/calibre/utils/config.py:538
msgid "Pattern to guess metadata from filenames" msgid "Pattern to guess metadata from filenames"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:535 #: /home/kovid/work/calibre/src/calibre/utils/config.py:540
msgid "Access key for isbndb.com" msgid "Access key for isbndb.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:537 #: /home/kovid/work/calibre/src/calibre/utils/config.py:542
msgid "Default timeout for network operations (seconds)" msgid "Default timeout for network operations (seconds)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:539 #: /home/kovid/work/calibre/src/calibre/utils/config.py:544
msgid "Path to directory in which your library of books is stored" msgid "Path to directory in which your library of books is stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:541 #: /home/kovid/work/calibre/src/calibre/utils/config.py:546
msgid "The language in which to display the user interface" msgid "The language in which to display the user interface"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:543 #: /home/kovid/work/calibre/src/calibre/utils/config.py:548
msgid "The default output format for ebook conversions." msgid "The default output format for ebook conversions."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:545 #: /home/kovid/work/calibre/src/calibre/utils/config.py:550
msgid "Read metadata from files" msgid "Read metadata from files"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:547 #: /home/kovid/work/calibre/src/calibre/utils/config.py:552
msgid "The priority of worker processes" msgid "The priority of worker processes"
msgstr "" msgstr ""
@ -5356,28 +5362,28 @@ msgid "Customize the download engine"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:460
msgid "" msgid ""
"Timeout in seconds to wait for a response from the server. Default: %default " "Timeout in seconds to wait for a response from the server. Default: %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
msgid "" msgid ""
"Minimum interval in seconds between consecutive fetches. Default is %default " "Minimum interval in seconds between consecutive fetches. Default is %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470
msgid "" msgid ""
"The character encoding for the websites you are trying to download. The " "The character encoding for the websites you are trying to download. The "
"default is to try and guess the encoding." "default is to try and guess the encoding."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
msgid "" msgid ""
"Only links that match this regular expression will be followed. This option " "Only links that match this regular expression will be followed. This option "
"can be specified multiple times, in which case as long as a link matches any " "can be specified multiple times, in which case as long as a link matches any "
@ -5385,7 +5391,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
msgid "" msgid ""
"Any link that matches this regular expression will be ignored. This option " "Any link that matches this regular expression will be ignored. This option "
"can be specified multiple times, in which case as long as any regexp matches " "can be specified multiple times, in which case as long as any regexp matches "
@ -5395,7 +5401,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476
msgid "Do not download CSS stylesheets." msgid "Do not download CSS stylesheets."
msgstr "" msgstr ""
@ -5582,12 +5588,12 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:63 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:21
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64
@ -5600,11 +5606,13 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:13
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chicago_breaking_news.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
@ -5678,17 +5686,17 @@ msgstr ""
msgid "English" msgid "English"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:29
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:19 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:27
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
msgid "Serbian" msgid "Serbian"
msgstr "" msgstr ""
@ -5720,34 +5728,34 @@ msgstr ""
msgid "German" msgid "German"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:23 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:22
msgid "Croatian" msgid "Croatian"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
msgid "" msgid ""
"%prog URL\n" "%prog URL\n"
"\n" "\n"
"Where URL is for example http://google.com" "Where URL is for example http://google.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:455 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:457
msgid "Base directory into which URL is saved. Default is %default" msgid "Base directory into which URL is saved. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
msgid "" msgid ""
"Maximum number of levels to recurse i.e. depth of links to follow. Default " "Maximum number of levels to recurse i.e. depth of links to follow. Default "
"%default" "%default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
msgid "" msgid ""
"The maximum number of files to download. This only applies to files from <a " "The maximum number of files to download. This only applies to files from <a "
"href> tags. Default is %default" "href> tags. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477
msgid "Show detailed output information. Useful for debugging" msgid "Show detailed output information. Useful for debugging"
msgstr "" msgstr ""

View File

@ -7,14 +7,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre\n" "Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-02-11 03:58+0000\n" "POT-Creation-Date: 2009-02-13 20:29+0000\n"
"PO-Revision-Date: 2009-01-27 19:49+0000\n" "PO-Revision-Date: 2009-01-27 19:49+0000\n"
"Last-Translator: Plazec <Unknown>\n" "Last-Translator: Plazec <Unknown>\n"
"Language-Team: Czech <cs@li.org>\n" "Language-Team: Czech <cs@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-02-13 19:24+0000\n" "X-Launchpad-Export-Date: 2009-02-18 20:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41
@ -57,7 +57,7 @@ msgstr "Nedělá vůbec nic"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:487
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574
@ -78,20 +78,21 @@ msgstr "Nedělá vůbec nic"
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:894 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:894
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:933 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:940
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123
#: /home/kovid/work/calibre/src/calibre/library/cli.py:257 #: /home/kovid/work/calibre/src/calibre/library/cli.py:257
#: /home/kovid/work/calibre/src/calibre/library/database.py:916 #: /home/kovid/work/calibre/src/calibre/library/database.py:916
#: /home/kovid/work/calibre/src/calibre/library/database2.py:472 #: /home/kovid/work/calibre/src/calibre/library/database2.py:473
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484 #: /home/kovid/work/calibre/src/calibre/library/database2.py:485
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865 #: /home/kovid/work/calibre/src/calibre/library/database2.py:866
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900 #: /home/kovid/work/calibre/src/calibre/library/database2.py:901
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1408
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459
#: /home/kovid/work/calibre/src/calibre/library/server.py:315 #: /home/kovid/work/calibre/src/calibre/library/server.py:315
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51
msgid "Unknown" msgid "Unknown"
@ -694,7 +695,7 @@ msgid "%prog [options] LITFILE"
msgstr "%prog [options] LIT_soubor" msgstr "%prog [options] LIT_soubor"
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:506 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
msgid "Output directory. Defaults to current directory." msgid "Output directory. Defaults to current directory."
msgstr "Výstupní adresář. Standardně je použit aktuální adresář." msgstr "Výstupní adresář. Standardně je použit aktuální adresář."
@ -709,7 +710,7 @@ msgid "Useful for debugging."
msgstr "Užitečné pro ladění programu." msgstr "Užitečné pro ladění programu."
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:530 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:535
msgid "OEB ebook created in" msgid "OEB ebook created in"
msgstr "OEB kniha vytvořena v" msgstr "OEB kniha vytvořena v"
@ -1855,11 +1856,11 @@ msgstr "Použití: rb-meta soubor.rb"
msgid "Creating Mobipocket file from EPUB..." msgid "Creating Mobipocket file from EPUB..."
msgstr "Vytvářím Mobipocket souboru z EPUB..." msgstr "Vytvářím Mobipocket souboru z EPUB..."
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:504 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:509
msgid "%prog [options] myebook.mobi" msgid "%prog [options] myebook.mobi"
msgstr "%prog [možnosti] kniha.mobi" msgstr "%prog [možnosti] kniha.mobi"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:528 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:533
msgid "Raw MOBI HTML saved in" msgid "Raw MOBI HTML saved in"
msgstr "Nezpracované MOBI HTML uložené do" msgstr "Nezpracované MOBI HTML uložené do"
@ -2174,7 +2175,7 @@ msgid "Adding books to database..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:694 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
msgid "Reading metadata..." msgid "Reading metadata..."
msgstr "" msgstr ""
@ -2404,7 +2405,7 @@ msgid "Access log:"
msgstr "Záznam o přístupu" msgstr "Záznam o přístupu"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:406
msgid "Failed to start content server" msgid "Failed to start content server"
msgstr "Nepodařilo se spustit obdahový server" msgstr "Nepodařilo se spustit obdahový server"
@ -2843,7 +2844,7 @@ msgid " is not a valid picture"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "Cannot convert" msgid "Cannot convert"
msgstr "" msgstr ""
@ -3518,47 +3519,52 @@ msgstr ""
msgid "A&utomatically set author sort" msgid "A&utomatically set author sort"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118
msgid "No format selected"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
msgid "Could not read metadata" msgid "Could not read metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129
msgid "Could not read metadata from %s format" msgid "Could not read metadata from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
msgid "Could not read cover" msgid "Could not read cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:138
msgid "Could not read cover from %s format" msgid "Could not read cover from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:144
msgid "The cover in the %s format is invalid" msgid "The cover in the %s format is invalid"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:323
msgid "" msgid ""
"<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you " "<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you "
"do not have one, you can <a href='http://www.librarything.com'>register</a> " "do not have one, you can <a href='http://www.librarything.com'>register</a> "
"for free!.</p>" "for free!.</p>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "<b>Could not fetch cover.</b><br/>" msgid "<b>Could not fetch cover.</b><br/>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "Could not fetch cover" msgid "Could not fetch cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "Cannot fetch cover" msgid "Cannot fetch cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "You must specify the ISBN identifier for this book." msgid "You must specify the ISBN identifier for this book."
msgstr "" msgstr ""
@ -3718,9 +3724,9 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809 #: /home/kovid/work/calibre/src/calibre/library/database2.py:810
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813 #: /home/kovid/work/calibre/src/calibre/library/database2.py:814
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
msgid "News" msgid "News"
msgstr "" msgstr ""
@ -4404,7 +4410,7 @@ msgid "Save to disk in a single directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:193 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:193
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1248 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "" msgstr ""
@ -4442,31 +4448,31 @@ msgid "Bad database location"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:290
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1388 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1395
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:440 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:445
msgid "Browse by covers" msgid "Browse by covers"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
msgid "Device: " msgid "Device: "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
msgid " detected." msgid " detected."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
msgid "Connected " msgid "Connected "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:563 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:569
msgid "Device database corrupted" msgid "Device database corrupted"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
msgid "" msgid ""
"\n" "\n"
" <p>The database of books on the reader is corrupted. Try the " " <p>The database of books on the reader is corrupted. Try the "
@ -4482,276 +4488,276 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
msgid "Books" msgid "Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
msgid "EPUB Books" msgid "EPUB Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
msgid "LRF Books" msgid "LRF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
msgid "HTML Books" msgid "HTML Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
msgid "LIT Books" msgid "LIT Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
msgid "MOBI Books" msgid "MOBI Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
msgid "Text books" msgid "Text books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
msgid "PDF Books" msgid "PDF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
msgid "Comics" msgid "Comics"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
msgid "Archives" msgid "Archives"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
msgid "Adding books..." msgid "Adding books..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:735 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:742
msgid "No space on device" msgid "No space on device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
msgid "" msgid ""
"<p>Cannot upload books to device there is no more free space available " "<p>Cannot upload books to device there is no more free space available "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "No books selected" msgid "No books selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:887 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:894
msgid "Sending news to device." msgid "Sending news to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:941 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:948
msgid "Sending books to device." msgid "Sending books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:944 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:951
msgid "No suitable formats" msgid "No suitable formats"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
msgid "" msgid ""
"Could not upload the following books to the device, as no suitable formats " "Could not upload the following books to the device, as no suitable formats "
"were found:<br><ul>%s</ul>" "were found:<br><ul>%s</ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:973
msgid "Saving to disk..." msgid "Saving to disk..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
msgid "Saved" msgid "Saved"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:977 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:984
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
msgid "" msgid ""
"<p>Could not save the following books to disk, because the %s format is not " "<p>Could not save the following books to disk, because the %s format is not "
"available for them:<ul>" "available for them:<ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:995 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1002
msgid "Could not save some ebooks" msgid "Could not save some ebooks"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1024
msgid "Fetching news from " msgid "Fetching news from "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
msgid " fetched." msgid " fetched."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
msgid "No book selected" msgid "No book selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
msgid "Cannot view" msgid "Cannot view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1201 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1208
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure" msgid "Cannot configure"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
msgid "Copying database" msgid "Copying database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1259 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1266
msgid "Copying library to " msgid "Copying library to "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
msgid "Invalid database" msgid "Invalid database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
msgid "" msgid ""
"<p>An invalid database already exists at %s, delete it before trying to move " "<p>An invalid database already exists at %s, delete it before trying to move "
"the existing database.<br>Error: %s" "the existing database.<br>Error: %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1283
msgid "Could not move database" msgid "Could not move database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1296 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1303
msgid "No detailed info available" msgid "No detailed info available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1297 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1304
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1340 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1347
msgid "Error talking to device" msgid "Error talking to device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
msgid "Conversion Error" msgid "Conversion Error"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using 3rd party tools." "first remove the DRM using 3rd party tools."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1454 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1461
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" 'Quitting may cause corruption on the device.<br>\n" " 'Quitting may cause corruption on the device.<br>\n"
" 'Are you sure you want to quit?" " 'Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "" msgid ""
"%s has been updated to version %s. See the <a " "%s has been updated to version %s. See the <a "
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
"Visit the download page?" "Visit the download page?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "Update available" msgid "Update available"
msgstr "Aktualizace dostupná" msgstr "Aktualizace dostupná"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1531 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1538
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1533 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1540
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1535 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1542
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "" msgstr ""
@ -5491,20 +5497,20 @@ msgid ""
"For help on an individual command: %%prog command --help\n" "For help on an individual command: %%prog command --help\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1221 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1228
msgid "<p>Copying books to %s<br><center>" msgid "<p>Copying books to %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
msgid "Copying <b>%s</b>" msgid "Copying <b>%s</b>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1314 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1321
msgid "<p>Migrating old database to ebook library in %s<br><center>" msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
msgid "Compacting database" msgid "Compacting database"
msgstr "" msgstr ""
@ -5535,39 +5541,39 @@ msgstr ""
msgid "Created by " msgid "Created by "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:531 #: /home/kovid/work/calibre/src/calibre/utils/config.py:536
msgid "Path to the database in which books are stored" msgid "Path to the database in which books are stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:533 #: /home/kovid/work/calibre/src/calibre/utils/config.py:538
msgid "Pattern to guess metadata from filenames" msgid "Pattern to guess metadata from filenames"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:535 #: /home/kovid/work/calibre/src/calibre/utils/config.py:540
msgid "Access key for isbndb.com" msgid "Access key for isbndb.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:537 #: /home/kovid/work/calibre/src/calibre/utils/config.py:542
msgid "Default timeout for network operations (seconds)" msgid "Default timeout for network operations (seconds)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:539 #: /home/kovid/work/calibre/src/calibre/utils/config.py:544
msgid "Path to directory in which your library of books is stored" msgid "Path to directory in which your library of books is stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:541 #: /home/kovid/work/calibre/src/calibre/utils/config.py:546
msgid "The language in which to display the user interface" msgid "The language in which to display the user interface"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:543 #: /home/kovid/work/calibre/src/calibre/utils/config.py:548
msgid "The default output format for ebook conversions." msgid "The default output format for ebook conversions."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:545 #: /home/kovid/work/calibre/src/calibre/utils/config.py:550
msgid "Read metadata from files" msgid "Read metadata from files"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:547 #: /home/kovid/work/calibre/src/calibre/utils/config.py:552
msgid "The priority of worker processes" msgid "The priority of worker processes"
msgstr "" msgstr ""
@ -5610,28 +5616,28 @@ msgid "Customize the download engine"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:460
msgid "" msgid ""
"Timeout in seconds to wait for a response from the server. Default: %default " "Timeout in seconds to wait for a response from the server. Default: %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
msgid "" msgid ""
"Minimum interval in seconds between consecutive fetches. Default is %default " "Minimum interval in seconds between consecutive fetches. Default is %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470
msgid "" msgid ""
"The character encoding for the websites you are trying to download. The " "The character encoding for the websites you are trying to download. The "
"default is to try and guess the encoding." "default is to try and guess the encoding."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
msgid "" msgid ""
"Only links that match this regular expression will be followed. This option " "Only links that match this regular expression will be followed. This option "
"can be specified multiple times, in which case as long as a link matches any " "can be specified multiple times, in which case as long as a link matches any "
@ -5639,7 +5645,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
msgid "" msgid ""
"Any link that matches this regular expression will be ignored. This option " "Any link that matches this regular expression will be ignored. This option "
"can be specified multiple times, in which case as long as any regexp matches " "can be specified multiple times, in which case as long as any regexp matches "
@ -5649,7 +5655,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476
msgid "Do not download CSS stylesheets." msgid "Do not download CSS stylesheets."
msgstr "" msgstr ""
@ -5836,12 +5842,12 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:63 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:21
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64
@ -5854,11 +5860,13 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:13
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chicago_breaking_news.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
@ -5932,17 +5940,17 @@ msgstr ""
msgid "English" msgid "English"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:29
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:19 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:27
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
msgid "Serbian" msgid "Serbian"
msgstr "" msgstr ""
@ -5974,34 +5982,34 @@ msgstr ""
msgid "German" msgid "German"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:23 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:22
msgid "Croatian" msgid "Croatian"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
msgid "" msgid ""
"%prog URL\n" "%prog URL\n"
"\n" "\n"
"Where URL is for example http://google.com" "Where URL is for example http://google.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:455 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:457
msgid "Base directory into which URL is saved. Default is %default" msgid "Base directory into which URL is saved. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
msgid "" msgid ""
"Maximum number of levels to recurse i.e. depth of links to follow. Default " "Maximum number of levels to recurse i.e. depth of links to follow. Default "
"%default" "%default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
msgid "" msgid ""
"The maximum number of files to download. This only applies to files from <a " "The maximum number of files to download. This only applies to files from <a "
"href> tags. Default is %default" "href> tags. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477
msgid "Show detailed output information. Useful for debugging" msgid "Show detailed output information. Useful for debugging"
msgstr "" msgstr ""

View File

@ -7,14 +7,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: de\n" "Project-Id-Version: de\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-02-11 03:58+0000\n" "POT-Creation-Date: 2009-02-13 20:29+0000\n"
"PO-Revision-Date: 2009-01-27 09:23+0000\n" "PO-Revision-Date: 2009-01-27 09:23+0000\n"
"Last-Translator: S. Dorscht <Unknown>\n" "Last-Translator: S. Dorscht <Unknown>\n"
"Language-Team: American English <kde-i18n-doc@lists.kde.org>\n" "Language-Team: American English <kde-i18n-doc@lists.kde.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-02-13 19:24+0000\n" "X-Launchpad-Export-Date: 2009-02-18 20:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
"Generated-By: pygettext.py 1.5\n" "Generated-By: pygettext.py 1.5\n"
@ -58,7 +58,7 @@ msgstr "Macht gar nix"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:487
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574
@ -79,20 +79,21 @@ msgstr "Macht gar nix"
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:894 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:894
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:933 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:940
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123
#: /home/kovid/work/calibre/src/calibre/library/cli.py:257 #: /home/kovid/work/calibre/src/calibre/library/cli.py:257
#: /home/kovid/work/calibre/src/calibre/library/database.py:916 #: /home/kovid/work/calibre/src/calibre/library/database.py:916
#: /home/kovid/work/calibre/src/calibre/library/database2.py:472 #: /home/kovid/work/calibre/src/calibre/library/database2.py:473
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484 #: /home/kovid/work/calibre/src/calibre/library/database2.py:485
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865 #: /home/kovid/work/calibre/src/calibre/library/database2.py:866
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900 #: /home/kovid/work/calibre/src/calibre/library/database2.py:901
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1408
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459
#: /home/kovid/work/calibre/src/calibre/library/server.py:315 #: /home/kovid/work/calibre/src/calibre/library/server.py:315
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51
msgid "Unknown" msgid "Unknown"
@ -725,7 +726,7 @@ msgid "%prog [options] LITFILE"
msgstr "%prog [options] LITFILE" msgstr "%prog [options] LITFILE"
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:506 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
msgid "Output directory. Defaults to current directory." msgid "Output directory. Defaults to current directory."
msgstr "Ausgabeverzeichnis. Voreinstellung ist aktuelles Verzeichnis." msgstr "Ausgabeverzeichnis. Voreinstellung ist aktuelles Verzeichnis."
@ -742,7 +743,7 @@ msgid "Useful for debugging."
msgstr "Hilfreich bei der Fehlersuche." msgstr "Hilfreich bei der Fehlersuche."
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:530 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:535
msgid "OEB ebook created in" msgid "OEB ebook created in"
msgstr "OEB eBook erstellt in" msgstr "OEB eBook erstellt in"
@ -1905,11 +1906,11 @@ msgstr "Benutzung: rb-meta file.rb"
msgid "Creating Mobipocket file from EPUB..." msgid "Creating Mobipocket file from EPUB..."
msgstr "Erstelle Mobipocket Datei aus EPUB..." msgstr "Erstelle Mobipocket Datei aus EPUB..."
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:504 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:509
msgid "%prog [options] myebook.mobi" msgid "%prog [options] myebook.mobi"
msgstr "%prog [options] dateiname.mobi" msgstr "%prog [options] dateiname.mobi"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:528 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:533
msgid "Raw MOBI HTML saved in" msgid "Raw MOBI HTML saved in"
msgstr "Original MOBI HTML gespeichert in" msgstr "Original MOBI HTML gespeichert in"
@ -2228,7 +2229,7 @@ msgid "Adding books to database..."
msgstr "Füge Bücher zur Datenbank hinzu..." msgstr "Füge Bücher zur Datenbank hinzu..."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:694 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
msgid "Reading metadata..." msgid "Reading metadata..."
msgstr "Lese Metadaten..." msgstr "Lese Metadaten..."
@ -2459,7 +2460,7 @@ msgid "Access log:"
msgstr "Zugriffs-Protokolldatei:" msgstr "Zugriffs-Protokolldatei:"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:406
msgid "Failed to start content server" msgid "Failed to start content server"
msgstr "Content Server konnte nicht gestartet werden" msgstr "Content Server konnte nicht gestartet werden"
@ -2917,7 +2918,7 @@ msgid " is not a valid picture"
msgstr " ist kein gültiges Bild" msgstr " ist kein gültiges Bild"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "Cannot convert" msgid "Cannot convert"
msgstr "Konvertierung nicht möglich" msgstr "Konvertierung nicht möglich"
@ -3638,28 +3639,33 @@ msgstr "&Format entfernen:"
msgid "A&utomatically set author sort" msgid "A&utomatically set author sort"
msgstr "Automatisch Sortierung nach Autor setzen" msgstr "Automatisch Sortierung nach Autor setzen"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118
msgid "No format selected"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
msgid "Could not read metadata" msgid "Could not read metadata"
msgstr "Konnte Metadaten nicht lesen" msgstr "Konnte Metadaten nicht lesen"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129
msgid "Could not read metadata from %s format" msgid "Could not read metadata from %s format"
msgstr "Konnte Metadaten des Formats %s nicht lesen" msgstr "Konnte Metadaten des Formats %s nicht lesen"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
msgid "Could not read cover" msgid "Could not read cover"
msgstr "Konnte Umschlagbild nicht lesen" msgstr "Konnte Umschlagbild nicht lesen"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:138
msgid "Could not read cover from %s format" msgid "Could not read cover from %s format"
msgstr "Konnte Umschlagbild des Formats %s nicht lesen" msgstr "Konnte Umschlagbild des Formats %s nicht lesen"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:144
msgid "The cover in the %s format is invalid" msgid "The cover in the %s format is invalid"
msgstr "Das Umschlagbild im Format %s ist ungültig" msgstr "Das Umschlagbild im Format %s ist ungültig"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:323
msgid "" msgid ""
"<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you " "<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you "
"do not have one, you can <a href='http://www.librarything.com'>register</a> " "do not have one, you can <a href='http://www.librarything.com'>register</a> "
@ -3669,19 +3675,19 @@ msgstr ""
"<b>LibraryThing.com</b> an. <br/>Insofern Sie dies nicht besitzen, können " "<b>LibraryThing.com</b> an. <br/>Insofern Sie dies nicht besitzen, können "
"Sie sich kostenlos <a href='http://www.librarything.com'>anmelden</a>! </p>" "Sie sich kostenlos <a href='http://www.librarything.com'>anmelden</a>! </p>"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "<b>Could not fetch cover.</b><br/>" msgid "<b>Could not fetch cover.</b><br/>"
msgstr "<b>Konnte kein Umschlagbild abrufen.</b><br/>" msgstr "<b>Konnte kein Umschlagbild abrufen.</b><br/>"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "Could not fetch cover" msgid "Could not fetch cover"
msgstr "Konnte kein Umschlagbild abrufen" msgstr "Konnte kein Umschlagbild abrufen"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "Cannot fetch cover" msgid "Cannot fetch cover"
msgstr "Kann kein Umschlagbild abrufen" msgstr "Kann kein Umschlagbild abrufen"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "You must specify the ISBN identifier for this book." msgid "You must specify the ISBN identifier for this book."
msgstr "Sie müssen die ISBN für dieses Buch angeben." msgstr "Sie müssen die ISBN für dieses Buch angeben."
@ -3844,9 +3850,9 @@ msgstr "Neue individuelle Nachrichtenquelle hinzufügen"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809 #: /home/kovid/work/calibre/src/calibre/library/database2.py:810
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813 #: /home/kovid/work/calibre/src/calibre/library/database2.py:814
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
msgid "News" msgid "News"
msgstr "Nachrichten" msgstr "Nachrichten"
@ -4593,7 +4599,7 @@ msgid "Save to disk in a single directory"
msgstr "Auf Festplatte in ein einziges Verzeichnis speichern" msgstr "Auf Festplatte in ein einziges Verzeichnis speichern"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:193 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:193
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1248 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "Nur das %s Format auf Festplatte speichern" msgstr "Nur das %s Format auf Festplatte speichern"
@ -4631,31 +4637,31 @@ msgid "Bad database location"
msgstr "Schlechter Datenbank Standort" msgstr "Schlechter Datenbank Standort"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:290
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1388 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1395
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "Wählen Sie einen Speicherort für Ihre eBook Bibliothek." msgstr "Wählen Sie einen Speicherort für Ihre eBook Bibliothek."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:440 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:445
msgid "Browse by covers" msgid "Browse by covers"
msgstr "Umschlagbilder durchsuchen" msgstr "Umschlagbilder durchsuchen"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
msgid "Device: " msgid "Device: "
msgstr "Gerät: " msgstr "Gerät: "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
msgid " detected." msgid " detected."
msgstr " gefunden." msgstr " gefunden."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
msgid "Connected " msgid "Connected "
msgstr "Angeschlossen: " msgstr "Angeschlossen: "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:563 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:569
msgid "Device database corrupted" msgid "Device database corrupted"
msgstr "Gerätedatenbank ist beschädigt" msgstr "Gerätedatenbank ist beschädigt"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
msgid "" msgid ""
"\n" "\n"
" <p>The database of books on the reader is corrupted. Try the " " <p>The database of books on the reader is corrupted. Try the "
@ -4686,67 +4692,67 @@ msgstr ""
" </ol>\n" " </ol>\n"
" " " "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "Lade Bücher auf das Gerät." msgstr "Lade Bücher auf das Gerät."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
msgid "Books" msgid "Books"
msgstr "Bücher" msgstr "Bücher"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
msgid "EPUB Books" msgid "EPUB Books"
msgstr "EPUB Bücher" msgstr "EPUB Bücher"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
msgid "LRF Books" msgid "LRF Books"
msgstr "LRF Bücher" msgstr "LRF Bücher"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
msgid "HTML Books" msgid "HTML Books"
msgstr "HTML Bücher" msgstr "HTML Bücher"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
msgid "LIT Books" msgid "LIT Books"
msgstr "LIT Bücher" msgstr "LIT Bücher"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
msgid "MOBI Books" msgid "MOBI Books"
msgstr "MOBI Bücher" msgstr "MOBI Bücher"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
msgid "Text books" msgid "Text books"
msgstr "Text Bücher" msgstr "Text Bücher"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
msgid "PDF Books" msgid "PDF Books"
msgstr "PDF Bücher" msgstr "PDF Bücher"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
msgid "Comics" msgid "Comics"
msgstr "Comics" msgstr "Comics"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
msgid "Archives" msgid "Archives"
msgstr "Archive" msgstr "Archive"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
msgid "Adding books..." msgid "Adding books..."
msgstr "Füge Bücher hinzu..." msgstr "Füge Bücher hinzu..."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:735 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:742
msgid "No space on device" msgid "No space on device"
msgstr "Gerätespeicher voll" msgstr "Gerätespeicher voll"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
msgid "" msgid ""
"<p>Cannot upload books to device there is no more free space available " "<p>Cannot upload books to device there is no more free space available "
msgstr "" msgstr ""
"<p>Es können keine Bücher mehr auf das Gerät geladen werden, da der " "<p>Es können keine Bücher mehr auf das Gerät geladen werden, da der "
"Gerätespeicher voll ist " "Gerätespeicher voll ist "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
@ -4754,35 +4760,35 @@ msgstr ""
"Die gewählten Bücher werden <b>dauerhaft gelöscht</b> und die Dateien vom " "Die gewählten Bücher werden <b>dauerhaft gelöscht</b> und die Dateien vom "
"Computer entfernt. Sicher?" "Computer entfernt. Sicher?"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "Lösche Bücher vom Gerät." msgstr "Lösche Bücher vom Gerät."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "Kann Metadaten nicht bearbeiten" msgstr "Kann Metadaten nicht bearbeiten"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "No books selected" msgid "No books selected"
msgstr "Keine Bücher ausgewählt" msgstr "Keine Bücher ausgewählt"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:887 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:894
msgid "Sending news to device." msgid "Sending news to device."
msgstr "Sende Nachrichten an das Gerät." msgstr "Sende Nachrichten an das Gerät."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:941 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:948
msgid "Sending books to device." msgid "Sending books to device."
msgstr "Sende Bücher an das Gerät." msgstr "Sende Bücher an das Gerät."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:944 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:951
msgid "No suitable formats" msgid "No suitable formats"
msgstr "Keine geeigneten Formate" msgstr "Keine geeigneten Formate"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
msgid "" msgid ""
"Could not upload the following books to the device, as no suitable formats " "Could not upload the following books to the device, as no suitable formats "
"were found:<br><ul>%s</ul>" "were found:<br><ul>%s</ul>"
@ -4790,23 +4796,23 @@ msgstr ""
"Die folgenden Bücher konnten nicht auf das Gerät geladen werden, da keine " "Die folgenden Bücher konnten nicht auf das Gerät geladen werden, da keine "
"geeigneten Formate vorhanden sind:<br><ul>%s</ul>" "geeigneten Formate vorhanden sind:<br><ul>%s</ul>"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "Speichern auf Festplatte nicht möglich" msgstr "Speichern auf Festplatte nicht möglich"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:973
msgid "Saving to disk..." msgid "Saving to disk..."
msgstr "Speichere auf Festplatte..." msgstr "Speichere auf Festplatte..."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
msgid "Saved" msgid "Saved"
msgstr "Gespeichert" msgstr "Gespeichert"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:977 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:984
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "Zielverzeichnis auswählen" msgstr "Zielverzeichnis auswählen"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
msgid "" msgid ""
"<p>Could not save the following books to disk, because the %s format is not " "<p>Could not save the following books to disk, because the %s format is not "
"available for them:<ul>" "available for them:<ul>"
@ -4814,64 +4820,64 @@ msgstr ""
"<p>Die folgenden Bücher konnten nicht auf die Festplatte gespeichert werden, " "<p>Die folgenden Bücher konnten nicht auf die Festplatte gespeichert werden, "
"da das %s Format für sie nicht verfügbar ist:<ul>" "da das %s Format für sie nicht verfügbar ist:<ul>"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:995 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1002
msgid "Could not save some ebooks" msgid "Could not save some ebooks"
msgstr "Konnte einige eBooks nicht speichern" msgstr "Konnte einige eBooks nicht speichern"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1024
msgid "Fetching news from " msgid "Fetching news from "
msgstr "Rufe Nachrichten ab von " msgstr "Rufe Nachrichten ab von "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
msgid " fetched." msgid " fetched."
msgstr " abgerufen." msgstr " abgerufen."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
msgid "No book selected" msgid "No book selected"
msgstr "Kein Buch ausgewählt" msgstr "Kein Buch ausgewählt"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
msgid "Cannot view" msgid "Cannot view"
msgstr "Ansehen nicht möglich" msgstr "Ansehen nicht möglich"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "Format zur Vorschau wählen" msgstr "Format zur Vorschau wählen"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "Konnte Verzeichnis nicht öffnen" msgstr "Konnte Verzeichnis nicht öffnen"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1201 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1208
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "%s hat keine verfügbaren Formate." msgstr "%s hat keine verfügbaren Formate."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure" msgid "Cannot configure"
msgstr "Konfiguration nicht möglich" msgstr "Konfiguration nicht möglich"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "Konfiguration nicht möglich während Aufträge abgearbeitet werden." msgstr "Konfiguration nicht möglich während Aufträge abgearbeitet werden."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
msgid "Copying database" msgid "Copying database"
msgstr "Kopiere Datenbank" msgstr "Kopiere Datenbank"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1259 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1266
msgid "Copying library to " msgid "Copying library to "
msgstr "Kopiere Bibliothek nach " msgstr "Kopiere Bibliothek nach "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
msgid "Invalid database" msgid "Invalid database"
msgstr "Ungültige Datenbank" msgstr "Ungültige Datenbank"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
msgid "" msgid ""
"<p>An invalid database already exists at %s, delete it before trying to move " "<p>An invalid database already exists at %s, delete it before trying to move "
"the existing database.<br>Error: %s" "the existing database.<br>Error: %s"
@ -4879,24 +4885,24 @@ msgstr ""
"<p>Es existiert bereits eine ungültige Datenbank in %s, bitte löschen Sie " "<p>Es existiert bereits eine ungültige Datenbank in %s, bitte löschen Sie "
"diese, bevor sie die bestehende Datenbank verschieben.<br>Fehler: %s" "diese, bevor sie die bestehende Datenbank verschieben.<br>Fehler: %s"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1283
msgid "Could not move database" msgid "Could not move database"
msgstr "Konnte Datenbank nicht verschieben" msgstr "Konnte Datenbank nicht verschieben"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1296 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1303
msgid "No detailed info available" msgid "No detailed info available"
msgstr "Es ist keine weitere Information verfügbar" msgstr "Es ist keine weitere Information verfügbar"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1297 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1304
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
"Es sind keine weitere Informationen über Bücher auf dem Gerät verfügbar" "Es sind keine weitere Informationen über Bücher auf dem Gerät verfügbar"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1340 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1347
msgid "Error talking to device" msgid "Error talking to device"
msgstr "Fehler in der Kommunikation zum Gerät" msgstr "Fehler in der Kommunikation zum Gerät"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
@ -4904,13 +4910,13 @@ msgstr ""
"Es trat ein Fehler in der Kommunikation mit dem Gerät auf. Bitte entfernen " "Es trat ein Fehler in der Kommunikation mit dem Gerät auf. Bitte entfernen "
"und schließen Sie das Gerät wieder an und - oder starten Sie neu." "und schließen Sie das Gerät wieder an und - oder starten Sie neu."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
msgid "Conversion Error" msgid "Conversion Error"
msgstr "Konvertierungsfehler" msgstr "Konvertierungsfehler"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using 3rd party tools." "first remove the DRM using 3rd party tools."
@ -4919,7 +4925,7 @@ msgstr ""
"href=\"%s\">DRM</a> geschützt. Sie müssen zunächst das DRM mit einem anderen " "href=\"%s\">DRM</a> geschützt. Sie müssen zunächst das DRM mit einem anderen "
"Programm entfernen." "Programm entfernen."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
@ -4928,12 +4934,12 @@ msgstr ""
"Falls Sie es nützlich finden, sollten Sie eine Spende zur Unterstützung " "Falls Sie es nützlich finden, sollten Sie eine Spende zur Unterstützung "
"seiner Entwicklung in Betracht ziehen." "seiner Entwicklung in Betracht ziehen."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1454 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1461
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "" msgstr ""
"Es bestehen aktive Aufträge. Sind Sie sicher, dass sie es beenden wollen?" "Es bestehen aktive Aufträge. Sind Sie sicher, dass sie es beenden wollen?"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" 'Quitting may cause corruption on the device.<br>\n" " 'Quitting may cause corruption on the device.<br>\n"
@ -4943,11 +4949,11 @@ msgstr ""
" 'Das Beenden könnte das Gerät beschädigen.<br>\n" " 'Das Beenden könnte das Gerät beschädigen.<br>\n"
" 'Wirklich beenden?" " 'Wirklich beenden?"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "WARNUNG: Aktive Aufträge" msgstr "WARNUNG: Aktive Aufträge"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
@ -4955,7 +4961,7 @@ msgstr ""
"wird im System Tray weiter laufen. Zum Schließen wählen Sie <b>Beenden</b> " "wird im System Tray weiter laufen. Zum Schließen wählen Sie <b>Beenden</b> "
"im Kontextmenü des System Tray." "im Kontextmenü des System Tray."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
@ -4963,7 +4969,7 @@ msgstr ""
"<span style=\"color:red; font-weight:bold\">Letzte Version: <a " "<span style=\"color:red; font-weight:bold\">Letzte Version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "" msgid ""
"%s has been updated to version %s. See the <a " "%s has been updated to version %s. See the <a "
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
@ -4973,19 +4979,19 @@ msgstr ""
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">neuen Features</a> an. " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">neuen Features</a> an. "
"Möchten Sie die Download Seite besuchen?" "Möchten Sie die Download Seite besuchen?"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "Update available" msgid "Update available"
msgstr "Neue Version verfügbar" msgstr "Neue Version verfügbar"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1531 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1538
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "Die im angegebenen Pfad sich befindende Bibliothek verwenden" msgstr "Die im angegebenen Pfad sich befindende Bibliothek verwenden"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1533 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1540
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "Minimiert im Systembereich der Kontrollleiste starten." msgstr "Minimiert im Systembereich der Kontrollleiste starten."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1535 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1542
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "Informationen zur Fehlersuche in Konsole aufzeichnen" msgstr "Informationen zur Fehlersuche in Konsole aufzeichnen"
@ -5850,20 +5856,20 @@ msgstr ""
"\n" "\n"
"Sie erhalten Hilfe zu einem bestimmten Befehl mit: %%prog command --help\n" "Sie erhalten Hilfe zu einem bestimmten Befehl mit: %%prog command --help\n"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1221 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1228
msgid "<p>Copying books to %s<br><center>" msgid "<p>Copying books to %s<br><center>"
msgstr "<p>Kopiere Bücher nach %s<br><center>" msgstr "<p>Kopiere Bücher nach %s<br><center>"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
msgid "Copying <b>%s</b>" msgid "Copying <b>%s</b>"
msgstr "Kopiere <b>%s</b>" msgstr "Kopiere <b>%s</b>"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1314 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1321
msgid "<p>Migrating old database to ebook library in %s<br><center>" msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr "<p>Migriere alte Datenbank zu eBook Bibliothek in %s<br><center>" msgstr "<p>Migriere alte Datenbank zu eBook Bibliothek in %s<br><center>"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
msgid "Compacting database" msgid "Compacting database"
msgstr "Komprimiere Datenbank" msgstr "Komprimiere Datenbank"
@ -5898,40 +5904,40 @@ msgstr "%sBenutzung%s: %s\n"
msgid "Created by " msgid "Created by "
msgstr "Erstellt von " msgstr "Erstellt von "
#: /home/kovid/work/calibre/src/calibre/utils/config.py:531 #: /home/kovid/work/calibre/src/calibre/utils/config.py:536
msgid "Path to the database in which books are stored" msgid "Path to the database in which books are stored"
msgstr "Pfad zur Datenbank in der die Bücher gespeichtert sind" msgstr "Pfad zur Datenbank in der die Bücher gespeichtert sind"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:533 #: /home/kovid/work/calibre/src/calibre/utils/config.py:538
msgid "Pattern to guess metadata from filenames" msgid "Pattern to guess metadata from filenames"
msgstr "Verhaltensmuster zum Erraten der Metadaten aus den Dateinamen" msgstr "Verhaltensmuster zum Erraten der Metadaten aus den Dateinamen"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:535 #: /home/kovid/work/calibre/src/calibre/utils/config.py:540
msgid "Access key for isbndb.com" msgid "Access key for isbndb.com"
msgstr "Zugangsschlüssel für isbndb.com" msgstr "Zugangsschlüssel für isbndb.com"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:537 #: /home/kovid/work/calibre/src/calibre/utils/config.py:542
msgid "Default timeout for network operations (seconds)" msgid "Default timeout for network operations (seconds)"
msgstr "" msgstr ""
"Voreinstellung der Zeitüberschreitung bei Netzwerkverbindungen (in Sekunden)" "Voreinstellung der Zeitüberschreitung bei Netzwerkverbindungen (in Sekunden)"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:539 #: /home/kovid/work/calibre/src/calibre/utils/config.py:544
msgid "Path to directory in which your library of books is stored" msgid "Path to directory in which your library of books is stored"
msgstr "Pfad zum Verzeichnis, in dem die Bibliothek gespeichert ist" msgstr "Pfad zum Verzeichnis, in dem die Bibliothek gespeichert ist"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:541 #: /home/kovid/work/calibre/src/calibre/utils/config.py:546
msgid "The language in which to display the user interface" msgid "The language in which to display the user interface"
msgstr "Sprache, in der die Benutzer-Oberfläche dargestellt wird" msgstr "Sprache, in der die Benutzer-Oberfläche dargestellt wird"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:543 #: /home/kovid/work/calibre/src/calibre/utils/config.py:548
msgid "The default output format for ebook conversions." msgid "The default output format for ebook conversions."
msgstr "Das voreingestellte Ausgabeformat für eBook Konvertierungen." msgstr "Das voreingestellte Ausgabeformat für eBook Konvertierungen."
#: /home/kovid/work/calibre/src/calibre/utils/config.py:545 #: /home/kovid/work/calibre/src/calibre/utils/config.py:550
msgid "Read metadata from files" msgid "Read metadata from files"
msgstr "Metadaten aus Dateien lesen" msgstr "Metadaten aus Dateien lesen"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:547 #: /home/kovid/work/calibre/src/calibre/utils/config.py:552
msgid "The priority of worker processes" msgid "The priority of worker processes"
msgstr "Priorität der Arbeitsaufträge" msgstr "Priorität der Arbeitsaufträge"
@ -5976,7 +5982,7 @@ msgid "Customize the download engine"
msgstr "Download-Engine anpassen" msgstr "Download-Engine anpassen"
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:460
msgid "" msgid ""
"Timeout in seconds to wait for a response from the server. Default: %default " "Timeout in seconds to wait for a response from the server. Default: %default "
"s" "s"
@ -5985,7 +5991,7 @@ msgstr ""
"%default s" "%default s"
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
msgid "" msgid ""
"Minimum interval in seconds between consecutive fetches. Default is %default " "Minimum interval in seconds between consecutive fetches. Default is %default "
"s" "s"
@ -5994,7 +6000,7 @@ msgstr ""
"Voreinstellung ist %default s" "Voreinstellung ist %default s"
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470
msgid "" msgid ""
"The character encoding for the websites you are trying to download. The " "The character encoding for the websites you are trying to download. The "
"default is to try and guess the encoding." "default is to try and guess the encoding."
@ -6003,7 +6009,7 @@ msgstr ""
"Voreinstellung wird versucht, die Kodierung zu erraten." "Voreinstellung wird versucht, die Kodierung zu erraten."
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
msgid "" msgid ""
"Only links that match this regular expression will be followed. This option " "Only links that match this regular expression will be followed. This option "
"can be specified multiple times, in which case as long as a link matches any " "can be specified multiple times, in which case as long as a link matches any "
@ -6015,7 +6021,7 @@ msgstr ""
"Links verfolgt." "Links verfolgt."
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
msgid "" msgid ""
"Any link that matches this regular expression will be ignored. This option " "Any link that matches this regular expression will be ignored. This option "
"can be specified multiple times, in which case as long as any regexp matches " "can be specified multiple times, in which case as long as any regexp matches "
@ -6030,7 +6036,7 @@ msgstr ""
"sind, wird --filter-regexp zuerst angewendet." "sind, wird --filter-regexp zuerst angewendet."
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476
msgid "Do not download CSS stylesheets." msgid "Do not download CSS stylesheets."
msgstr "Lade CSS Stylesheets nicht herunter." msgstr "Lade CSS Stylesheets nicht herunter."
@ -6257,12 +6263,12 @@ msgstr "Rufe Feed ab"
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:63 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:21
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64
@ -6275,11 +6281,13 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:13
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chicago_breaking_news.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
@ -6353,17 +6361,17 @@ msgstr ""
msgid "English" msgid "English"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:29
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:19 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:27
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
msgid "Serbian" msgid "Serbian"
msgstr "" msgstr ""
@ -6395,11 +6403,11 @@ msgstr ""
msgid "German" msgid "German"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:23 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:22
msgid "Croatian" msgid "Croatian"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
msgid "" msgid ""
"%prog URL\n" "%prog URL\n"
"\n" "\n"
@ -6409,13 +6417,13 @@ msgstr ""
"\n" "\n"
"URL ist z.B. http://google.com" "URL ist z.B. http://google.com"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:455 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:457
msgid "Base directory into which URL is saved. Default is %default" msgid "Base directory into which URL is saved. Default is %default"
msgstr "" msgstr ""
"Grundverzeichnis, in das die URL gespeichert wird. Voreinstellung ist " "Grundverzeichnis, in das die URL gespeichert wird. Voreinstellung ist "
"%default" "%default"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
msgid "" msgid ""
"Maximum number of levels to recurse i.e. depth of links to follow. Default " "Maximum number of levels to recurse i.e. depth of links to follow. Default "
"%default" "%default"
@ -6423,7 +6431,7 @@ msgstr ""
"Maximale Zahl von einbezogenen Ebenen, z.B. Tiefe der Links, die verfolgt " "Maximale Zahl von einbezogenen Ebenen, z.B. Tiefe der Links, die verfolgt "
"werden. Voreinstellung %default" "werden. Voreinstellung %default"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
msgid "" msgid ""
"The maximum number of files to download. This only applies to files from <a " "The maximum number of files to download. This only applies to files from <a "
"href> tags. Default is %default" "href> tags. Default is %default"
@ -6431,7 +6439,7 @@ msgstr ""
"Höchstzahl der Dateien, die geladen werden. Dies trifft nur auf Dateien aus " "Höchstzahl der Dateien, die geladen werden. Dies trifft nur auf Dateien aus "
"<a href> Tags zu. Voreinstellung ist %default" "<a href> Tags zu. Voreinstellung ist %default"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477
msgid "Show detailed output information. Useful for debugging" msgid "Show detailed output information. Useful for debugging"
msgstr "Zeige detailierte Ausgabeinformation. Hilfreich zur Fehlersuche." msgstr "Zeige detailierte Ausgabeinformation. Hilfreich zur Fehlersuche."

View File

@ -7,14 +7,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre\n" "Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-02-11 03:58+0000\n" "POT-Creation-Date: 2009-02-13 20:29+0000\n"
"PO-Revision-Date: 2008-06-24 07:23+0000\n" "PO-Revision-Date: 2008-06-24 07:23+0000\n"
"Last-Translator: Thanos Petkakis <thanospet@gmail.com>\n" "Last-Translator: Thanos Petkakis <thanospet@gmail.com>\n"
"Language-Team: Greek <el@li.org>\n" "Language-Team: Greek <el@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-02-13 19:24+0000\n" "X-Launchpad-Export-Date: 2009-02-18 20:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41
@ -57,7 +57,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:487
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574
@ -78,20 +78,21 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:894 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:894
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:933 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:940
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123
#: /home/kovid/work/calibre/src/calibre/library/cli.py:257 #: /home/kovid/work/calibre/src/calibre/library/cli.py:257
#: /home/kovid/work/calibre/src/calibre/library/database.py:916 #: /home/kovid/work/calibre/src/calibre/library/database.py:916
#: /home/kovid/work/calibre/src/calibre/library/database2.py:472 #: /home/kovid/work/calibre/src/calibre/library/database2.py:473
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484 #: /home/kovid/work/calibre/src/calibre/library/database2.py:485
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865 #: /home/kovid/work/calibre/src/calibre/library/database2.py:866
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900 #: /home/kovid/work/calibre/src/calibre/library/database2.py:901
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1408
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459
#: /home/kovid/work/calibre/src/calibre/library/server.py:315 #: /home/kovid/work/calibre/src/calibre/library/server.py:315
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51
msgid "Unknown" msgid "Unknown"
@ -606,7 +607,7 @@ msgid "%prog [options] LITFILE"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:506 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
msgid "Output directory. Defaults to current directory." msgid "Output directory. Defaults to current directory."
msgstr "" msgstr ""
@ -621,7 +622,7 @@ msgid "Useful for debugging."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:530 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:535
msgid "OEB ebook created in" msgid "OEB ebook created in"
msgstr "" msgstr ""
@ -1572,11 +1573,11 @@ msgstr ""
msgid "Creating Mobipocket file from EPUB..." msgid "Creating Mobipocket file from EPUB..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:504 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:509
msgid "%prog [options] myebook.mobi" msgid "%prog [options] myebook.mobi"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:528 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:533
msgid "Raw MOBI HTML saved in" msgid "Raw MOBI HTML saved in"
msgstr "" msgstr ""
@ -1870,7 +1871,7 @@ msgid "Adding books to database..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:694 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
msgid "Reading metadata..." msgid "Reading metadata..."
msgstr "" msgstr ""
@ -2096,7 +2097,7 @@ msgid "Access log:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:406
msgid "Failed to start content server" msgid "Failed to start content server"
msgstr "" msgstr ""
@ -2520,7 +2521,7 @@ msgid " is not a valid picture"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "Cannot convert" msgid "Cannot convert"
msgstr "" msgstr ""
@ -3195,47 +3196,52 @@ msgstr ""
msgid "A&utomatically set author sort" msgid "A&utomatically set author sort"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118
msgid "No format selected"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
msgid "Could not read metadata" msgid "Could not read metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129
msgid "Could not read metadata from %s format" msgid "Could not read metadata from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
msgid "Could not read cover" msgid "Could not read cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:138
msgid "Could not read cover from %s format" msgid "Could not read cover from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:144
msgid "The cover in the %s format is invalid" msgid "The cover in the %s format is invalid"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:323
msgid "" msgid ""
"<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you " "<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you "
"do not have one, you can <a href='http://www.librarything.com'>register</a> " "do not have one, you can <a href='http://www.librarything.com'>register</a> "
"for free!.</p>" "for free!.</p>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "<b>Could not fetch cover.</b><br/>" msgid "<b>Could not fetch cover.</b><br/>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "Could not fetch cover" msgid "Could not fetch cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "Cannot fetch cover" msgid "Cannot fetch cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "You must specify the ISBN identifier for this book." msgid "You must specify the ISBN identifier for this book."
msgstr "" msgstr ""
@ -3395,9 +3401,9 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809 #: /home/kovid/work/calibre/src/calibre/library/database2.py:810
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813 #: /home/kovid/work/calibre/src/calibre/library/database2.py:814
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
msgid "News" msgid "News"
msgstr "" msgstr ""
@ -4081,7 +4087,7 @@ msgid "Save to disk in a single directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:193 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:193
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1248 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "" msgstr ""
@ -4119,31 +4125,31 @@ msgid "Bad database location"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:290
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1388 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1395
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:440 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:445
msgid "Browse by covers" msgid "Browse by covers"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
msgid "Device: " msgid "Device: "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
msgid " detected." msgid " detected."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
msgid "Connected " msgid "Connected "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:563 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:569
msgid "Device database corrupted" msgid "Device database corrupted"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
msgid "" msgid ""
"\n" "\n"
" <p>The database of books on the reader is corrupted. Try the " " <p>The database of books on the reader is corrupted. Try the "
@ -4159,276 +4165,276 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
msgid "Books" msgid "Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
msgid "EPUB Books" msgid "EPUB Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
msgid "LRF Books" msgid "LRF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
msgid "HTML Books" msgid "HTML Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
msgid "LIT Books" msgid "LIT Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
msgid "MOBI Books" msgid "MOBI Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
msgid "Text books" msgid "Text books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
msgid "PDF Books" msgid "PDF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
msgid "Comics" msgid "Comics"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
msgid "Archives" msgid "Archives"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
msgid "Adding books..." msgid "Adding books..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:735 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:742
msgid "No space on device" msgid "No space on device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
msgid "" msgid ""
"<p>Cannot upload books to device there is no more free space available " "<p>Cannot upload books to device there is no more free space available "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "No books selected" msgid "No books selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:887 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:894
msgid "Sending news to device." msgid "Sending news to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:941 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:948
msgid "Sending books to device." msgid "Sending books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:944 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:951
msgid "No suitable formats" msgid "No suitable formats"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
msgid "" msgid ""
"Could not upload the following books to the device, as no suitable formats " "Could not upload the following books to the device, as no suitable formats "
"were found:<br><ul>%s</ul>" "were found:<br><ul>%s</ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:973
msgid "Saving to disk..." msgid "Saving to disk..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
msgid "Saved" msgid "Saved"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:977 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:984
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
msgid "" msgid ""
"<p>Could not save the following books to disk, because the %s format is not " "<p>Could not save the following books to disk, because the %s format is not "
"available for them:<ul>" "available for them:<ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:995 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1002
msgid "Could not save some ebooks" msgid "Could not save some ebooks"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1024
msgid "Fetching news from " msgid "Fetching news from "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
msgid " fetched." msgid " fetched."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
msgid "No book selected" msgid "No book selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
msgid "Cannot view" msgid "Cannot view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1201 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1208
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure" msgid "Cannot configure"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
msgid "Copying database" msgid "Copying database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1259 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1266
msgid "Copying library to " msgid "Copying library to "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
msgid "Invalid database" msgid "Invalid database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
msgid "" msgid ""
"<p>An invalid database already exists at %s, delete it before trying to move " "<p>An invalid database already exists at %s, delete it before trying to move "
"the existing database.<br>Error: %s" "the existing database.<br>Error: %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1283
msgid "Could not move database" msgid "Could not move database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1296 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1303
msgid "No detailed info available" msgid "No detailed info available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1297 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1304
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1340 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1347
msgid "Error talking to device" msgid "Error talking to device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
msgid "Conversion Error" msgid "Conversion Error"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using 3rd party tools." "first remove the DRM using 3rd party tools."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1454 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1461
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" 'Quitting may cause corruption on the device.<br>\n" " 'Quitting may cause corruption on the device.<br>\n"
" 'Are you sure you want to quit?" " 'Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "" msgid ""
"%s has been updated to version %s. See the <a " "%s has been updated to version %s. See the <a "
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
"Visit the download page?" "Visit the download page?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "Update available" msgid "Update available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1531 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1538
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1533 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1540
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1535 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1542
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "" msgstr ""
@ -5168,20 +5174,20 @@ msgid ""
"For help on an individual command: %%prog command --help\n" "For help on an individual command: %%prog command --help\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1221 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1228
msgid "<p>Copying books to %s<br><center>" msgid "<p>Copying books to %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
msgid "Copying <b>%s</b>" msgid "Copying <b>%s</b>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1314 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1321
msgid "<p>Migrating old database to ebook library in %s<br><center>" msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
msgid "Compacting database" msgid "Compacting database"
msgstr "" msgstr ""
@ -5212,39 +5218,39 @@ msgstr ""
msgid "Created by " msgid "Created by "
msgstr "Δημιουργήθηκε απο τον " msgstr "Δημιουργήθηκε απο τον "
#: /home/kovid/work/calibre/src/calibre/utils/config.py:531 #: /home/kovid/work/calibre/src/calibre/utils/config.py:536
msgid "Path to the database in which books are stored" msgid "Path to the database in which books are stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:533 #: /home/kovid/work/calibre/src/calibre/utils/config.py:538
msgid "Pattern to guess metadata from filenames" msgid "Pattern to guess metadata from filenames"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:535 #: /home/kovid/work/calibre/src/calibre/utils/config.py:540
msgid "Access key for isbndb.com" msgid "Access key for isbndb.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:537 #: /home/kovid/work/calibre/src/calibre/utils/config.py:542
msgid "Default timeout for network operations (seconds)" msgid "Default timeout for network operations (seconds)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:539 #: /home/kovid/work/calibre/src/calibre/utils/config.py:544
msgid "Path to directory in which your library of books is stored" msgid "Path to directory in which your library of books is stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:541 #: /home/kovid/work/calibre/src/calibre/utils/config.py:546
msgid "The language in which to display the user interface" msgid "The language in which to display the user interface"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:543 #: /home/kovid/work/calibre/src/calibre/utils/config.py:548
msgid "The default output format for ebook conversions." msgid "The default output format for ebook conversions."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:545 #: /home/kovid/work/calibre/src/calibre/utils/config.py:550
msgid "Read metadata from files" msgid "Read metadata from files"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:547 #: /home/kovid/work/calibre/src/calibre/utils/config.py:552
msgid "The priority of worker processes" msgid "The priority of worker processes"
msgstr "" msgstr ""
@ -5287,28 +5293,28 @@ msgid "Customize the download engine"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:460
msgid "" msgid ""
"Timeout in seconds to wait for a response from the server. Default: %default " "Timeout in seconds to wait for a response from the server. Default: %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
msgid "" msgid ""
"Minimum interval in seconds between consecutive fetches. Default is %default " "Minimum interval in seconds between consecutive fetches. Default is %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470
msgid "" msgid ""
"The character encoding for the websites you are trying to download. The " "The character encoding for the websites you are trying to download. The "
"default is to try and guess the encoding." "default is to try and guess the encoding."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
msgid "" msgid ""
"Only links that match this regular expression will be followed. This option " "Only links that match this regular expression will be followed. This option "
"can be specified multiple times, in which case as long as a link matches any " "can be specified multiple times, in which case as long as a link matches any "
@ -5316,7 +5322,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
msgid "" msgid ""
"Any link that matches this regular expression will be ignored. This option " "Any link that matches this regular expression will be ignored. This option "
"can be specified multiple times, in which case as long as any regexp matches " "can be specified multiple times, in which case as long as any regexp matches "
@ -5326,7 +5332,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476
msgid "Do not download CSS stylesheets." msgid "Do not download CSS stylesheets."
msgstr "" msgstr ""
@ -5513,12 +5519,12 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:63 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:21
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64
@ -5531,11 +5537,13 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:13
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chicago_breaking_news.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
@ -5609,17 +5617,17 @@ msgstr ""
msgid "English" msgid "English"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:29
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:19 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:27
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
msgid "Serbian" msgid "Serbian"
msgstr "" msgstr ""
@ -5651,33 +5659,33 @@ msgstr ""
msgid "German" msgid "German"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:23 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:22
msgid "Croatian" msgid "Croatian"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
msgid "" msgid ""
"%prog URL\n" "%prog URL\n"
"\n" "\n"
"Where URL is for example http://google.com" "Where URL is for example http://google.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:455 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:457
msgid "Base directory into which URL is saved. Default is %default" msgid "Base directory into which URL is saved. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
msgid "" msgid ""
"Maximum number of levels to recurse i.e. depth of links to follow. Default " "Maximum number of levels to recurse i.e. depth of links to follow. Default "
"%default" "%default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
msgid "" msgid ""
"The maximum number of files to download. This only applies to files from <a " "The maximum number of files to download. This only applies to files from <a "
"href> tags. Default is %default" "href> tags. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477
msgid "Show detailed output information. Useful for debugging" msgid "Show detailed output information. Useful for debugging"
msgstr "" msgstr ""

View File

@ -10,14 +10,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: es\n" "Project-Id-Version: es\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-02-11 03:58+0000\n" "POT-Creation-Date: 2009-02-13 20:29+0000\n"
"PO-Revision-Date: 2009-02-09 04:59+0000\n" "PO-Revision-Date: 2009-02-14 10:40+0000\n"
"Last-Translator: Fernando Neubaum <introspeccion@gmail.com>\n" "Last-Translator: DiegoJ <diegojromerolopez@gmail.com>\n"
"Language-Team: Spanish\n" "Language-Team: Spanish\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-02-13 19:24+0000\n" "X-Launchpad-Export-Date: 2009-02-18 20:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41
@ -60,7 +60,7 @@ msgstr "No hace nada en absoluto"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:487
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574
@ -81,20 +81,21 @@ msgstr "No hace nada en absoluto"
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:894 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:894
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:933 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:940
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123
#: /home/kovid/work/calibre/src/calibre/library/cli.py:257 #: /home/kovid/work/calibre/src/calibre/library/cli.py:257
#: /home/kovid/work/calibre/src/calibre/library/database.py:916 #: /home/kovid/work/calibre/src/calibre/library/database.py:916
#: /home/kovid/work/calibre/src/calibre/library/database2.py:472 #: /home/kovid/work/calibre/src/calibre/library/database2.py:473
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484 #: /home/kovid/work/calibre/src/calibre/library/database2.py:485
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865 #: /home/kovid/work/calibre/src/calibre/library/database2.py:866
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900 #: /home/kovid/work/calibre/src/calibre/library/database2.py:901
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1408
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459
#: /home/kovid/work/calibre/src/calibre/library/server.py:315 #: /home/kovid/work/calibre/src/calibre/library/server.py:315
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51
msgid "Unknown" msgid "Unknown"
@ -738,7 +739,7 @@ msgid "%prog [options] LITFILE"
msgstr "%prog [options] LITFILE" msgstr "%prog [options] LITFILE"
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:506 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
msgid "Output directory. Defaults to current directory." msgid "Output directory. Defaults to current directory."
msgstr "Directorio de salida. Por defecto es el directorio actual" msgstr "Directorio de salida. Por defecto es el directorio actual"
@ -755,7 +756,7 @@ msgid "Useful for debugging."
msgstr "Útil para depuración." msgstr "Útil para depuración."
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:530 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:535
msgid "OEB ebook created in" msgid "OEB ebook created in"
msgstr "Libro-e OEB creado en" msgstr "Libro-e OEB creado en"
@ -1833,6 +1834,7 @@ msgstr "El editor del libro que busca."
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:46
msgid "LibraryThing.com timed out. Try again later." msgid "LibraryThing.com timed out. Try again later."
msgstr "" msgstr ""
"Ha vencido el tiempo de conexión a LibraryThing.com. Inténtalo de nuevo."
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:53 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:53
msgid "" msgid ""
@ -1901,11 +1903,11 @@ msgstr "Uso: rb-meta file.rb"
msgid "Creating Mobipocket file from EPUB..." msgid "Creating Mobipocket file from EPUB..."
msgstr "Creando archivo Mobipocket de un EPUB..." msgstr "Creando archivo Mobipocket de un EPUB..."
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:504 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:509
msgid "%prog [options] myebook.mobi" msgid "%prog [options] myebook.mobi"
msgstr "%prog [opciones] milibroe.mobi" msgstr "%prog [opciones] milibroe.mobi"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:528 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:533
msgid "Raw MOBI HTML saved in" msgid "Raw MOBI HTML saved in"
msgstr "HTML MOBI en bruto guardado en" msgstr "HTML MOBI en bruto guardado en"
@ -2190,7 +2192,7 @@ msgstr "Desactivar notificaciones del icono de la bandeja de sistema"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:87
msgid "Added %s to library" msgid "Added %s to library"
msgstr "" msgstr "Se ha añadido %s a la biblioteca"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:89
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:156
@ -2219,20 +2221,20 @@ msgstr "Añadiendo libros recursivamente..."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:141 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:141
msgid "Searching for books in all sub-directories..." msgid "Searching for books in all sub-directories..."
msgstr "" msgstr "Buscando libros en todos los subdirectorios..."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:170 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:170
msgid "Adding books to database..." msgid "Adding books to database..."
msgstr "Añadiendo libros a base de datos..." msgstr "Añadiendo libros a base de datos..."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:694 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
msgid "Reading metadata..." msgid "Reading metadata..."
msgstr "Leyendo metadatos..." msgstr "Leyendo metadatos..."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:186
msgid "Searching in" msgid "Searching in"
msgstr "" msgstr "Buscando en"
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:72
msgid "Device no longer connected." msgid "Device no longer connected."
@ -2456,7 +2458,7 @@ msgid "Access log:"
msgstr "Registro de accesos:" msgstr "Registro de accesos:"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:406
msgid "Failed to start content server" msgid "Failed to start content server"
msgstr "Falló al iniciar el servidor de contenidos" msgstr "Falló al iniciar el servidor de contenidos"
@ -2909,7 +2911,7 @@ msgid " is not a valid picture"
msgstr " no es una imagen válida" msgstr " no es una imagen válida"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "Cannot convert" msgid "Cannot convert"
msgstr "No se puede convertir" msgstr "No se puede convertir"
@ -3626,28 +3628,33 @@ msgstr "Eliminar &formato:"
msgid "A&utomatically set author sort" msgid "A&utomatically set author sort"
msgstr "Seleccionar a&utomáticamente el orden de autores" msgstr "Seleccionar a&utomáticamente el orden de autores"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118
msgid "No format selected"
msgstr "No se ha seleccionado el formato"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
msgid "Could not read metadata" msgid "Could not read metadata"
msgstr "No se pudieron leer los metadatos" msgstr "No se pudieron leer los metadatos"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129
msgid "Could not read metadata from %s format" msgid "Could not read metadata from %s format"
msgstr "No se puede leer metadatos del formato %s" msgstr "No se puede leer metadatos del formato %s"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
msgid "Could not read cover" msgid "Could not read cover"
msgstr "No se puede leer la portada" msgstr "No se puede leer la portada"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:138
msgid "Could not read cover from %s format" msgid "Could not read cover from %s format"
msgstr "No se puede leer la portada del formato %s" msgstr "No se puede leer la portada del formato %s"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:144
msgid "The cover in the %s format is invalid" msgid "The cover in the %s format is invalid"
msgstr "La portada en el formato %s no es válida" msgstr "La portada en el formato %s no es válida"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:323
msgid "" msgid ""
"<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you " "<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you "
"do not have one, you can <a href='http://www.librarything.com'>register</a> " "do not have one, you can <a href='http://www.librarything.com'>register</a> "
@ -3657,19 +3664,19 @@ msgstr ""
"<b>LibraryThing.com</b>. <br/>Si no dispone de una cuenta, puede <a " "<b>LibraryThing.com</b>. <br/>Si no dispone de una cuenta, puede <a "
"href='http://www.librarything.com'>regisrarse</a> de manera gratuita.</p>" "href='http://www.librarything.com'>regisrarse</a> de manera gratuita.</p>"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "<b>Could not fetch cover.</b><br/>" msgid "<b>Could not fetch cover.</b><br/>"
msgstr "<b>No se puede descargar la portada.</b><br/>" msgstr "<b>No se puede descargar la portada.</b><br/>"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "Could not fetch cover" msgid "Could not fetch cover"
msgstr "No se puede descargar la portada." msgstr "No se puede descargar la portada."
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "Cannot fetch cover" msgid "Cannot fetch cover"
msgstr "No se puede descargar la portada" msgstr "No se puede descargar la portada"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "You must specify the ISBN identifier for this book." msgid "You must specify the ISBN identifier for this book."
msgstr "Especifique primero un ISBN válido para el libro." msgstr "Especifique primero un ISBN válido para el libro."
@ -3834,9 +3841,9 @@ msgstr "Añadir nueva fuente de noticias"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809 #: /home/kovid/work/calibre/src/calibre/library/database2.py:810
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813 #: /home/kovid/work/calibre/src/calibre/library/database2.py:814
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
msgid "News" msgid "News"
msgstr "Noticias" msgstr "Noticias"
@ -4581,7 +4588,7 @@ msgid "Save to disk in a single directory"
msgstr "Guardar en el disco, en un único directorio" msgstr "Guardar en el disco, en un único directorio"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:193 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:193
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1248 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "Guardar solamente el formato %s en disco" msgstr "Guardar solamente el formato %s en disco"
@ -4619,31 +4626,31 @@ msgid "Bad database location"
msgstr "Lugar de base de datos incorrecto" msgstr "Lugar de base de datos incorrecto"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:290
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1388 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1395
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "Elige otro lugar para tu biblioteca de libros-e" msgstr "Elige otro lugar para tu biblioteca de libros-e"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:440 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:445
msgid "Browse by covers" msgid "Browse by covers"
msgstr "Navegar por portadas" msgstr "Navegar por portadas"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
msgid "Device: " msgid "Device: "
msgstr "Dispositivo: " msgstr "Dispositivo: "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
msgid " detected." msgid " detected."
msgstr " detectado." msgstr " detectado."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
msgid "Connected " msgid "Connected "
msgstr "Conectado " msgstr "Conectado "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:563 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:569
msgid "Device database corrupted" msgid "Device database corrupted"
msgstr "Base de datos del dispositivo corrupta" msgstr "Base de datos del dispositivo corrupta"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
msgid "" msgid ""
"\n" "\n"
" <p>The database of books on the reader is corrupted. Try the " " <p>The database of books on the reader is corrupted. Try the "
@ -4673,66 +4680,66 @@ msgstr ""
" </ol>\n" " </ol>\n"
" " " "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "Enviando libros al dispositivo" msgstr "Enviando libros al dispositivo"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
msgid "Books" msgid "Books"
msgstr "Libros" msgstr "Libros"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
msgid "EPUB Books" msgid "EPUB Books"
msgstr "Libros en EPUB" msgstr "Libros en EPUB"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
msgid "LRF Books" msgid "LRF Books"
msgstr "Libros en LRF" msgstr "Libros en LRF"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
msgid "HTML Books" msgid "HTML Books"
msgstr "Libros en HTML" msgstr "Libros en HTML"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
msgid "LIT Books" msgid "LIT Books"
msgstr "Libros en LIT" msgstr "Libros en LIT"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
msgid "MOBI Books" msgid "MOBI Books"
msgstr "Libros en MOBI" msgstr "Libros en MOBI"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
msgid "Text books" msgid "Text books"
msgstr "Libros en Text" msgstr "Libros en Text"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
msgid "PDF Books" msgid "PDF Books"
msgstr "Libros en PDF" msgstr "Libros en PDF"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
msgid "Comics" msgid "Comics"
msgstr "Comics" msgstr "Comics"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
msgid "Archives" msgid "Archives"
msgstr "Archivos" msgstr "Archivos"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
msgid "Adding books..." msgid "Adding books..."
msgstr "Añadiendo libros..." msgstr "Añadiendo libros..."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:735 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:742
msgid "No space on device" msgid "No space on device"
msgstr "No hay espacio en el dispositivo" msgstr "No hay espacio en el dispositivo"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
msgid "" msgid ""
"<p>Cannot upload books to device there is no more free space available " "<p>Cannot upload books to device there is no more free space available "
msgstr "" msgstr ""
"<p>No se pueden guardar los libros porque no hay espacio en el dispositivo " "<p>No se pueden guardar los libros porque no hay espacio en el dispositivo "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
@ -4740,35 +4747,35 @@ msgstr ""
"Los libros seleccionados serán <b>eliminados permanentemente</b> y los " "Los libros seleccionados serán <b>eliminados permanentemente</b> y los "
"archivos borrados de tu equipo. ¿Estás seguro?" "archivos borrados de tu equipo. ¿Estás seguro?"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "Eliminando libros del dispositivo" msgstr "Eliminando libros del dispositivo"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "No se pueden editar los metadatos" msgstr "No se pueden editar los metadatos"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "No books selected" msgid "No books selected"
msgstr "No hay libros seleccionados" msgstr "No hay libros seleccionados"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:887 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:894
msgid "Sending news to device." msgid "Sending news to device."
msgstr "Enviando noticias al dispositivo." msgstr "Enviando noticias al dispositivo."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:941 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:948
msgid "Sending books to device." msgid "Sending books to device."
msgstr "Enviando libros al dispositivo" msgstr "Enviando libros al dispositivo"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:944 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:951
msgid "No suitable formats" msgid "No suitable formats"
msgstr "No hay formatos adecuados" msgstr "No hay formatos adecuados"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
msgid "" msgid ""
"Could not upload the following books to the device, as no suitable formats " "Could not upload the following books to the device, as no suitable formats "
"were found:<br><ul>%s</ul>" "were found:<br><ul>%s</ul>"
@ -4776,23 +4783,23 @@ msgstr ""
"No se pudieron enviar los siguientes libros al dispositivo, ya que no se " "No se pudieron enviar los siguientes libros al dispositivo, ya que no se "
"hallaron formatos adecuados: <br><ul>%s</ul>" "hallaron formatos adecuados: <br><ul>%s</ul>"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "No se puede guardar en disco" msgstr "No se puede guardar en disco"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:973
msgid "Saving to disk..." msgid "Saving to disk..."
msgstr "Guardando al disco..." msgstr "Guardando al disco..."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
msgid "Saved" msgid "Saved"
msgstr "Guardado" msgstr "Guardado"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:977 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:984
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "Elegir directorio de destino" msgstr "Elegir directorio de destino"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
msgid "" msgid ""
"<p>Could not save the following books to disk, because the %s format is not " "<p>Could not save the following books to disk, because the %s format is not "
"available for them:<ul>" "available for them:<ul>"
@ -4800,64 +4807,64 @@ msgstr ""
"<p>No se pudieron guardar los siguientes libros en disco, porque el formato " "<p>No se pudieron guardar los siguientes libros en disco, porque el formato "
"%s no está disponible para ellos:<ul>" "%s no está disponible para ellos:<ul>"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:995 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1002
msgid "Could not save some ebooks" msgid "Could not save some ebooks"
msgstr "No se pudieron guardar algunos libros-e" msgstr "No se pudieron guardar algunos libros-e"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1024
msgid "Fetching news from " msgid "Fetching news from "
msgstr "Buscando noticias de " msgstr "Buscando noticias de "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
msgid " fetched." msgid " fetched."
msgstr " obtenido." msgstr " obtenido."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
msgid "No book selected" msgid "No book selected"
msgstr "Seleccione un libro" msgstr "Seleccione un libro"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
msgid "Cannot view" msgid "Cannot view"
msgstr "No se puede visualizar" msgstr "No se puede visualizar"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "Elija el formato para visualizar" msgstr "Elija el formato para visualizar"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "No se puede abrir carpeta" msgstr "No se puede abrir carpeta"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1201 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1208
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "%s no tiene formatos disponibles" msgstr "%s no tiene formatos disponibles"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure" msgid "Cannot configure"
msgstr "No se puede configurar" msgstr "No se puede configurar"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "No se puede configurar con trabajos en proceso." msgstr "No se puede configurar con trabajos en proceso."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
msgid "Copying database" msgid "Copying database"
msgstr "Copiando base de datos" msgstr "Copiando base de datos"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1259 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1266
msgid "Copying library to " msgid "Copying library to "
msgstr "Copiando biblioteca a " msgstr "Copiando biblioteca a "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
msgid "Invalid database" msgid "Invalid database"
msgstr "Base de datos no valida" msgstr "Base de datos no valida"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
msgid "" msgid ""
"<p>An invalid database already exists at %s, delete it before trying to move " "<p>An invalid database already exists at %s, delete it before trying to move "
"the existing database.<br>Error: %s" "the existing database.<br>Error: %s"
@ -4865,24 +4872,24 @@ msgstr ""
"<p>Ya existe una base de datos no valida en %s, bórrela antes de intentar " "<p>Ya existe una base de datos no valida en %s, bórrela antes de intentar "
"mover la base de datos existente. <br>Error: %s" "mover la base de datos existente. <br>Error: %s"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1283
msgid "Could not move database" msgid "Could not move database"
msgstr "No se puede mover la base de datos" msgstr "No se puede mover la base de datos"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1296 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1303
msgid "No detailed info available" msgid "No detailed info available"
msgstr "No hay información detallada disponible" msgstr "No hay información detallada disponible"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1297 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1304
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
"No hay información detallada disponible para los libros en el dispositivo" "No hay información detallada disponible para los libros en el dispositivo"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1340 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1347
msgid "Error talking to device" msgid "Error talking to device"
msgstr "Error de comunicación con el dispositivo" msgstr "Error de comunicación con el dispositivo"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
@ -4890,13 +4897,13 @@ msgstr ""
"Hubo un error de comunicación con el dispositivo. Desconecte, vuelva a " "Hubo un error de comunicación con el dispositivo. Desconecte, vuelva a "
"conectar el dispositivo y reinicie la aplicación." "conectar el dispositivo y reinicie la aplicación."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
msgid "Conversion Error" msgid "Conversion Error"
msgstr "Error de conversión" msgstr "Error de conversión"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using 3rd party tools." "first remove the DRM using 3rd party tools."
@ -4904,7 +4911,7 @@ msgstr ""
"<p>No se pudo convertir: %s<p>Es un libro con <a href=\"%s\">DRM</a>. " "<p>No se pudo convertir: %s<p>Es un libro con <a href=\"%s\">DRM</a>. "
"Primero tienes que eliminar el DRM usando herramientas de una 3ª parte." "Primero tienes que eliminar el DRM usando herramientas de una 3ª parte."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
@ -4913,11 +4920,11 @@ msgstr ""
"lo encuentras útil, por favor, considera donar dinero para soportar su " "lo encuentras útil, por favor, considera donar dinero para soportar su "
"desarrollo." "desarrollo."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1454 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1461
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "Hay tareas activas. ¿Estás seguro de que quieres salir?" msgstr "Hay tareas activas. ¿Estás seguro de que quieres salir?"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" 'Quitting may cause corruption on the device.<br>\n" " 'Quitting may cause corruption on the device.<br>\n"
@ -4928,11 +4935,11 @@ msgstr ""
"dispositivo.<br>\n" "dispositivo.<br>\n"
" '¿Estás seguro de que deseas salir?" " '¿Estás seguro de que deseas salir?"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "AVISO: tareas activas" msgstr "AVISO: tareas activas"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
@ -4940,7 +4947,7 @@ msgstr ""
"continuará ejecutándose en la bandeja del sistema. Para cerrarlo, elige " "continuará ejecutándose en la bandeja del sistema. Para cerrarlo, elige "
"<b>Salir</b> en el menú de contexto de la bandeja del sistema." "<b>Salir</b> en el menú de contexto de la bandeja del sistema."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
@ -4948,7 +4955,7 @@ msgstr ""
"<span style=\"color:red; font-weight:bold\">Última versión: <a " "<span style=\"color:red; font-weight:bold\">Última versión: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "" msgid ""
"%s has been updated to version %s. See the <a " "%s has been updated to version %s. See the <a "
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
@ -4958,19 +4965,19 @@ msgstr ""
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">nuevas " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">nuevas "
"características</a>. Visita la página de descarga?" "características</a>. Visita la página de descarga?"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "Update available" msgid "Update available"
msgstr "Actualización disponible" msgstr "Actualización disponible"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1531 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1538
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "Usar la biblioteca que está en la ruta especificada." msgstr "Usar la biblioteca que está en la ruta especificada."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1533 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1540
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "Iniciar programa minimizado en la bandeja del sistema" msgstr "Iniciar programa minimizado en la bandeja del sistema"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1535 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1542
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "Información del log de depuración a consola" msgstr "Información del log de depuración a consola"
@ -5833,21 +5840,21 @@ msgstr ""
"\n" "\n"
"Para ver la ayuda a cada orden ejecuta: %%prog orden --help\n" "Para ver la ayuda a cada orden ejecuta: %%prog orden --help\n"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1221 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1228
msgid "<p>Copying books to %s<br><center>" msgid "<p>Copying books to %s<br><center>"
msgstr "<p>Copiando libros a %s<br><center>" msgstr "<p>Copiando libros a %s<br><center>"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
msgid "Copying <b>%s</b>" msgid "Copying <b>%s</b>"
msgstr "Copiando <b>%s</b>" msgstr "Copiando <b>%s</b>"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1314 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1321
msgid "<p>Migrating old database to ebook library in %s<br><center>" msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr "" msgstr ""
"<p>Migrando base de datos antigua a biblioteca de libros-e en %s<br><center>" "<p>Migrando base de datos antigua a biblioteca de libros-e en %s<br><center>"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
msgid "Compacting database" msgid "Compacting database"
msgstr "Compactando base de datos" msgstr "Compactando base de datos"
@ -5882,39 +5889,39 @@ msgstr "%sUso%s: %s\n"
msgid "Created by " msgid "Created by "
msgstr "Creado por " msgstr "Creado por "
#: /home/kovid/work/calibre/src/calibre/utils/config.py:531 #: /home/kovid/work/calibre/src/calibre/utils/config.py:536
msgid "Path to the database in which books are stored" msgid "Path to the database in which books are stored"
msgstr "Ruta a la base de datos en la que se almacenan los libros" msgstr "Ruta a la base de datos en la que se almacenan los libros"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:533 #: /home/kovid/work/calibre/src/calibre/utils/config.py:538
msgid "Pattern to guess metadata from filenames" msgid "Pattern to guess metadata from filenames"
msgstr "Patrón para extraer metadatos de los nombres de archivo" msgstr "Patrón para extraer metadatos de los nombres de archivo"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:535 #: /home/kovid/work/calibre/src/calibre/utils/config.py:540
msgid "Access key for isbndb.com" msgid "Access key for isbndb.com"
msgstr "Tecla de acceso a isbndb.com" msgstr "Tecla de acceso a isbndb.com"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:537 #: /home/kovid/work/calibre/src/calibre/utils/config.py:542
msgid "Default timeout for network operations (seconds)" msgid "Default timeout for network operations (seconds)"
msgstr "Tiempo de vencimiento por defecto para operaciones de red (segundos)" msgstr "Tiempo de vencimiento por defecto para operaciones de red (segundos)"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:539 #: /home/kovid/work/calibre/src/calibre/utils/config.py:544
msgid "Path to directory in which your library of books is stored" msgid "Path to directory in which your library of books is stored"
msgstr "Ruta al directorio en el que la biblioteca de libros se almacena" msgstr "Ruta al directorio en el que la biblioteca de libros se almacena"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:541 #: /home/kovid/work/calibre/src/calibre/utils/config.py:546
msgid "The language in which to display the user interface" msgid "The language in which to display the user interface"
msgstr "El idioma en que se muestra la interfaz de usuario" msgstr "El idioma en que se muestra la interfaz de usuario"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:543 #: /home/kovid/work/calibre/src/calibre/utils/config.py:548
msgid "The default output format for ebook conversions." msgid "The default output format for ebook conversions."
msgstr "El formato de salida por defecto en las conversiones de libros-e." msgstr "El formato de salida por defecto en las conversiones de libros-e."
#: /home/kovid/work/calibre/src/calibre/utils/config.py:545 #: /home/kovid/work/calibre/src/calibre/utils/config.py:550
msgid "Read metadata from files" msgid "Read metadata from files"
msgstr "Leer metadatos de archivos" msgstr "Leer metadatos de archivos"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:547 #: /home/kovid/work/calibre/src/calibre/utils/config.py:552
msgid "The priority of worker processes" msgid "The priority of worker processes"
msgstr "La prioridad de los procesos en ejecución" msgstr "La prioridad de los procesos en ejecución"
@ -5958,7 +5965,7 @@ msgid "Customize the download engine"
msgstr "Personalización del motor de descarga" msgstr "Personalización del motor de descarga"
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:460
msgid "" msgid ""
"Timeout in seconds to wait for a response from the server. Default: %default " "Timeout in seconds to wait for a response from the server. Default: %default "
"s" "s"
@ -5967,7 +5974,7 @@ msgstr ""
"Por omisión es %default segundo(s)" "Por omisión es %default segundo(s)"
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
msgid "" msgid ""
"Minimum interval in seconds between consecutive fetches. Default is %default " "Minimum interval in seconds between consecutive fetches. Default is %default "
"s" "s"
@ -5976,7 +5983,7 @@ msgstr ""
"omisión %default segundos" "omisión %default segundos"
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470
msgid "" msgid ""
"The character encoding for the websites you are trying to download. The " "The character encoding for the websites you are trying to download. The "
"default is to try and guess the encoding." "default is to try and guess the encoding."
@ -5985,7 +5992,7 @@ msgstr ""
"descargar. Por omisión se intentará averiguar la codificación." "descargar. Por omisión se intentará averiguar la codificación."
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
msgid "" msgid ""
"Only links that match this regular expression will be followed. This option " "Only links that match this regular expression will be followed. This option "
"can be specified multiple times, in which case as long as a link matches any " "can be specified multiple times, in which case as long as a link matches any "
@ -5997,7 +6004,7 @@ msgstr ""
"enlaces se siguen." "enlaces se siguen."
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
msgid "" msgid ""
"Any link that matches this regular expression will be ignored. This option " "Any link that matches this regular expression will be ignored. This option "
"can be specified multiple times, in which case as long as any regexp matches " "can be specified multiple times, in which case as long as any regexp matches "
@ -6012,7 +6019,7 @@ msgstr ""
"so usadas, entonces --filter-regexp se aplica primero." "so usadas, entonces --filter-regexp se aplica primero."
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476
msgid "Do not download CSS stylesheets." msgid "Do not download CSS stylesheets."
msgstr "No descargar hojas de estilo CSS" msgstr "No descargar hojas de estilo CSS"
@ -6242,12 +6249,12 @@ msgstr "Obteniendo canales de noticias"
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:63 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:21
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64
@ -6260,11 +6267,13 @@ msgstr "Español"
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:13
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chicago_breaking_news.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
@ -6338,17 +6347,17 @@ msgstr "Español"
msgid "English" msgid "English"
msgstr "Inglés" msgstr "Inglés"
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:29
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:19 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:27
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
msgid "Serbian" msgid "Serbian"
msgstr "Serbio" msgstr "Serbio"
@ -6380,11 +6389,11 @@ msgstr "Portugués"
msgid "German" msgid "German"
msgstr "Alemán" msgstr "Alemán"
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:23 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:22
msgid "Croatian" msgid "Croatian"
msgstr "" msgstr "Croata"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
msgid "" msgid ""
"%prog URL\n" "%prog URL\n"
"\n" "\n"
@ -6394,11 +6403,11 @@ msgstr ""
"\n" "\n"
"Donde URL es por ejemplo http://google.com" "Donde URL es por ejemplo http://google.com"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:455 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:457
msgid "Base directory into which URL is saved. Default is %default" msgid "Base directory into which URL is saved. Default is %default"
msgstr "Directorio base en el cual se almacena URL. Por omisión es %default" msgstr "Directorio base en el cual se almacena URL. Por omisión es %default"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
msgid "" msgid ""
"Maximum number of levels to recurse i.e. depth of links to follow. Default " "Maximum number of levels to recurse i.e. depth of links to follow. Default "
"%default" "%default"
@ -6406,7 +6415,7 @@ msgstr ""
"Máximo número de niveles de recursión, es decir, profundidad de los enlaces " "Máximo número de niveles de recursión, es decir, profundidad de los enlaces "
"a seguir. Por omisión %default" "a seguir. Por omisión %default"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
msgid "" msgid ""
"The maximum number of files to download. This only applies to files from <a " "The maximum number of files to download. This only applies to files from <a "
"href> tags. Default is %default" "href> tags. Default is %default"
@ -6414,7 +6423,7 @@ msgstr ""
"El número máximo de archivos a descargar. Esto se aplica solamente a " "El número máximo de archivos a descargar. Esto se aplica solamente a "
"archivos procedentes de una etiqueta <a href>. Por omisión es %default" "archivos procedentes de una etiqueta <a href>. Por omisión es %default"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477
msgid "Show detailed output information. Useful for debugging" msgid "Show detailed output information. Useful for debugging"
msgstr "Mostrar información de salida detallada. Útil para la depuración" msgstr "Mostrar información de salida detallada. Útil para la depuración"

View File

@ -6,14 +6,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre 0.4.22\n" "Project-Id-Version: calibre 0.4.22\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-02-11 03:58+0000\n" "POT-Creation-Date: 2009-02-13 20:29+0000\n"
"PO-Revision-Date: 2009-01-19 04:07+0000\n" "PO-Revision-Date: 2009-01-19 04:07+0000\n"
"Last-Translator: Kovid Goyal <Unknown>\n" "Last-Translator: Kovid Goyal <Unknown>\n"
"Language-Team: fr\n" "Language-Team: fr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-02-13 19:24+0000\n" "X-Launchpad-Export-Date: 2009-02-18 20:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
"Generated-By: pygettext.py 1.5\n" "Generated-By: pygettext.py 1.5\n"
@ -57,7 +57,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:487
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574
@ -78,20 +78,21 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:894 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:894
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:933 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:940
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123
#: /home/kovid/work/calibre/src/calibre/library/cli.py:257 #: /home/kovid/work/calibre/src/calibre/library/cli.py:257
#: /home/kovid/work/calibre/src/calibre/library/database.py:916 #: /home/kovid/work/calibre/src/calibre/library/database.py:916
#: /home/kovid/work/calibre/src/calibre/library/database2.py:472 #: /home/kovid/work/calibre/src/calibre/library/database2.py:473
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484 #: /home/kovid/work/calibre/src/calibre/library/database2.py:485
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865 #: /home/kovid/work/calibre/src/calibre/library/database2.py:866
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900 #: /home/kovid/work/calibre/src/calibre/library/database2.py:901
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1408
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459
#: /home/kovid/work/calibre/src/calibre/library/server.py:315 #: /home/kovid/work/calibre/src/calibre/library/server.py:315
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51
msgid "Unknown" msgid "Unknown"
@ -608,7 +609,7 @@ msgid "%prog [options] LITFILE"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:506 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
msgid "Output directory. Defaults to current directory." msgid "Output directory. Defaults to current directory."
msgstr "" msgstr ""
@ -623,7 +624,7 @@ msgid "Useful for debugging."
msgstr "Utile pour déboguer" msgstr "Utile pour déboguer"
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:530 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:535
msgid "OEB ebook created in" msgid "OEB ebook created in"
msgstr "" msgstr ""
@ -1718,11 +1719,11 @@ msgstr ""
msgid "Creating Mobipocket file from EPUB..." msgid "Creating Mobipocket file from EPUB..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:504 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:509
msgid "%prog [options] myebook.mobi" msgid "%prog [options] myebook.mobi"
msgstr "%prog [options] myebook.mobi" msgstr "%prog [options] myebook.mobi"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:528 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:533
msgid "Raw MOBI HTML saved in" msgid "Raw MOBI HTML saved in"
msgstr "" msgstr ""
@ -2018,7 +2019,7 @@ msgid "Adding books to database..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:694 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
msgid "Reading metadata..." msgid "Reading metadata..."
msgstr "" msgstr ""
@ -2244,7 +2245,7 @@ msgid "Access log:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:406
msgid "Failed to start content server" msgid "Failed to start content server"
msgstr "" msgstr ""
@ -2669,7 +2670,7 @@ msgid " is not a valid picture"
msgstr " n'est pas une image vailde" msgstr " n'est pas une image vailde"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "Cannot convert" msgid "Cannot convert"
msgstr "Conversion impossible" msgstr "Conversion impossible"
@ -3369,28 +3370,33 @@ msgstr ""
msgid "A&utomatically set author sort" msgid "A&utomatically set author sort"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118
msgid "No format selected"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
msgid "Could not read metadata" msgid "Could not read metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129
msgid "Could not read metadata from %s format" msgid "Could not read metadata from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
msgid "Could not read cover" msgid "Could not read cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:138
msgid "Could not read cover from %s format" msgid "Could not read cover from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:144
msgid "The cover in the %s format is invalid" msgid "The cover in the %s format is invalid"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:323
msgid "" msgid ""
"<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you " "<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you "
"do not have one, you can <a href='http://www.librarything.com'>register</a> " "do not have one, you can <a href='http://www.librarything.com'>register</a> "
@ -3400,19 +3406,19 @@ msgstr ""
"<b>LibraryThing.com</b>. <br/>Si vous n'en avez pas, vous pouvez <a " "<b>LibraryThing.com</b>. <br/>Si vous n'en avez pas, vous pouvez <a "
"href='http://www.librarything.com'>y créer un compte </a> gratuitement !</p>" "href='http://www.librarything.com'>y créer un compte </a> gratuitement !</p>"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "<b>Could not fetch cover.</b><br/>" msgid "<b>Could not fetch cover.</b><br/>"
msgstr "<b>Erreur à la récupération de l'image de couverture.</b><br/>" msgstr "<b>Erreur à la récupération de l'image de couverture.</b><br/>"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "Could not fetch cover" msgid "Could not fetch cover"
msgstr "Erreur à la récupération de l'image de couverture" msgstr "Erreur à la récupération de l'image de couverture"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "Cannot fetch cover" msgid "Cannot fetch cover"
msgstr "Erreur à la récupération de l'image de couverture" msgstr "Erreur à la récupération de l'image de couverture"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "You must specify the ISBN identifier for this book." msgid "You must specify the ISBN identifier for this book."
msgstr "Vous devez fournir l'identifiant ISBN de ce livre." msgstr "Vous devez fournir l'identifiant ISBN de ce livre."
@ -3575,9 +3581,9 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809 #: /home/kovid/work/calibre/src/calibre/library/database2.py:810
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813 #: /home/kovid/work/calibre/src/calibre/library/database2.py:814
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
msgid "News" msgid "News"
msgstr "" msgstr ""
@ -4264,7 +4270,7 @@ msgid "Save to disk in a single directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:193 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:193
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1248 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "" msgstr ""
@ -4302,31 +4308,31 @@ msgid "Bad database location"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:290
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1388 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1395
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:440 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:445
msgid "Browse by covers" msgid "Browse by covers"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
msgid "Device: " msgid "Device: "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
msgid " detected." msgid " detected."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
msgid "Connected " msgid "Connected "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:563 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:569
msgid "Device database corrupted" msgid "Device database corrupted"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
msgid "" msgid ""
"\n" "\n"
" <p>The database of books on the reader is corrupted. Try the " " <p>The database of books on the reader is corrupted. Try the "
@ -4342,186 +4348,186 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
msgid "Books" msgid "Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
msgid "EPUB Books" msgid "EPUB Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
msgid "LRF Books" msgid "LRF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
msgid "HTML Books" msgid "HTML Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
msgid "LIT Books" msgid "LIT Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
msgid "MOBI Books" msgid "MOBI Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
msgid "Text books" msgid "Text books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
msgid "PDF Books" msgid "PDF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
msgid "Comics" msgid "Comics"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
msgid "Archives" msgid "Archives"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
msgid "Adding books..." msgid "Adding books..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:735 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:742
msgid "No space on device" msgid "No space on device"
msgstr "Le lecteur électronique n'a plus d'espace mémoire disponible" msgstr "Le lecteur électronique n'a plus d'espace mémoire disponible"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
msgid "" msgid ""
"<p>Cannot upload books to device there is no more free space available " "<p>Cannot upload books to device there is no more free space available "
msgstr "" msgstr ""
"<p>Impossible d'envoyer les livres sur le lecteur : il n'y a plus assez " "<p>Impossible d'envoyer les livres sur le lecteur : il n'y a plus assez "
"d'espace mémoire disponible " "d'espace mémoire disponible "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "Erreur à l'édition des metadat" msgstr "Erreur à l'édition des metadat"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "No books selected" msgid "No books selected"
msgstr "Aucun livre sélectionné" msgstr "Aucun livre sélectionné"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:887 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:894
msgid "Sending news to device." msgid "Sending news to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:941 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:948
msgid "Sending books to device." msgid "Sending books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:944 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:951
msgid "No suitable formats" msgid "No suitable formats"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
msgid "" msgid ""
"Could not upload the following books to the device, as no suitable formats " "Could not upload the following books to the device, as no suitable formats "
"were found:<br><ul>%s</ul>" "were found:<br><ul>%s</ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "Ne peut pas enregistrer sur le disque" msgstr "Ne peut pas enregistrer sur le disque"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:973
msgid "Saving to disk..." msgid "Saving to disk..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
msgid "Saved" msgid "Saved"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:977 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:984
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
msgid "" msgid ""
"<p>Could not save the following books to disk, because the %s format is not " "<p>Could not save the following books to disk, because the %s format is not "
"available for them:<ul>" "available for them:<ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:995 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1002
msgid "Could not save some ebooks" msgid "Could not save some ebooks"
msgstr "Impossible de sauvegarder des livres électroniques" msgstr "Impossible de sauvegarder des livres électroniques"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1024
msgid "Fetching news from " msgid "Fetching news from "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
msgid " fetched." msgid " fetched."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
msgid "No book selected" msgid "No book selected"
msgstr "Aucun livre sélectionné" msgstr "Aucun livre sélectionné"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
msgid "Cannot view" msgid "Cannot view"
msgstr "Impossible de visualiser" msgstr "Impossible de visualiser"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1201 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1208
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure" msgid "Cannot configure"
msgstr "Configuration impossible" msgstr "Configuration impossible"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "Impossible de configurer pendant que des travaux sont en cours." msgstr "Impossible de configurer pendant que des travaux sont en cours."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
msgid "Copying database" msgid "Copying database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1259 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1266
msgid "Copying library to " msgid "Copying library to "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
msgid "Invalid database" msgid "Invalid database"
msgstr "Base de données invalide" msgstr "Base de données invalide"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
msgid "" msgid ""
"<p>An invalid database already exists at %s, delete it before trying to move " "<p>An invalid database already exists at %s, delete it before trying to move "
"the existing database.<br>Error: %s" "the existing database.<br>Error: %s"
@ -4529,23 +4535,23 @@ msgstr ""
"<p>Une base de données invalide existe déjà ici : %s, spprimez la avant " "<p>Une base de données invalide existe déjà ici : %s, spprimez la avant "
"d'essayer de déplacer la base de données existante.<br>Erreur : %s" "d'essayer de déplacer la base de données existante.<br>Erreur : %s"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1283
msgid "Could not move database" msgid "Could not move database"
msgstr "Déplacement de la base de données impossible" msgstr "Déplacement de la base de données impossible"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1296 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1303
msgid "No detailed info available" msgid "No detailed info available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1297 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1304
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1340 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1347
msgid "Error talking to device" msgid "Error talking to device"
msgstr "Erreur pendant la communication avec le lecteur électronique" msgstr "Erreur pendant la communication avec le lecteur électronique"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
@ -4554,71 +4560,71 @@ msgstr ""
"lecteur électronique. Veuillez déconnecter et reconnecter le lecteur " "lecteur électronique. Veuillez déconnecter et reconnecter le lecteur "
"électronique et redémarrer." "électronique et redémarrer."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
msgid "Conversion Error" msgid "Conversion Error"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using 3rd party tools." "first remove the DRM using 3rd party tools."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1454 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1461
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" 'Quitting may cause corruption on the device.<br>\n" " 'Quitting may cause corruption on the device.<br>\n"
" 'Are you sure you want to quit?" " 'Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "" msgid ""
"%s has been updated to version %s. See the <a " "%s has been updated to version %s. See the <a "
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
"Visit the download page?" "Visit the download page?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "Update available" msgid "Update available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1531 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1538
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1533 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1540
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1535 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1542
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "" msgstr ""
@ -5362,20 +5368,20 @@ msgid ""
"For help on an individual command: %%prog command --help\n" "For help on an individual command: %%prog command --help\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1221 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1228
msgid "<p>Copying books to %s<br><center>" msgid "<p>Copying books to %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
msgid "Copying <b>%s</b>" msgid "Copying <b>%s</b>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1314 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1321
msgid "<p>Migrating old database to ebook library in %s<br><center>" msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
msgid "Compacting database" msgid "Compacting database"
msgstr "" msgstr ""
@ -5406,39 +5412,39 @@ msgstr "%sUsage%s: %s\n"
msgid "Created by " msgid "Created by "
msgstr "Créé par " msgstr "Créé par "
#: /home/kovid/work/calibre/src/calibre/utils/config.py:531 #: /home/kovid/work/calibre/src/calibre/utils/config.py:536
msgid "Path to the database in which books are stored" msgid "Path to the database in which books are stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:533 #: /home/kovid/work/calibre/src/calibre/utils/config.py:538
msgid "Pattern to guess metadata from filenames" msgid "Pattern to guess metadata from filenames"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:535 #: /home/kovid/work/calibre/src/calibre/utils/config.py:540
msgid "Access key for isbndb.com" msgid "Access key for isbndb.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:537 #: /home/kovid/work/calibre/src/calibre/utils/config.py:542
msgid "Default timeout for network operations (seconds)" msgid "Default timeout for network operations (seconds)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:539 #: /home/kovid/work/calibre/src/calibre/utils/config.py:544
msgid "Path to directory in which your library of books is stored" msgid "Path to directory in which your library of books is stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:541 #: /home/kovid/work/calibre/src/calibre/utils/config.py:546
msgid "The language in which to display the user interface" msgid "The language in which to display the user interface"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:543 #: /home/kovid/work/calibre/src/calibre/utils/config.py:548
msgid "The default output format for ebook conversions." msgid "The default output format for ebook conversions."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:545 #: /home/kovid/work/calibre/src/calibre/utils/config.py:550
msgid "Read metadata from files" msgid "Read metadata from files"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:547 #: /home/kovid/work/calibre/src/calibre/utils/config.py:552
msgid "The priority of worker processes" msgid "The priority of worker processes"
msgstr "" msgstr ""
@ -5481,28 +5487,28 @@ msgid "Customize the download engine"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:460
msgid "" msgid ""
"Timeout in seconds to wait for a response from the server. Default: %default " "Timeout in seconds to wait for a response from the server. Default: %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
msgid "" msgid ""
"Minimum interval in seconds between consecutive fetches. Default is %default " "Minimum interval in seconds between consecutive fetches. Default is %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470
msgid "" msgid ""
"The character encoding for the websites you are trying to download. The " "The character encoding for the websites you are trying to download. The "
"default is to try and guess the encoding." "default is to try and guess the encoding."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
msgid "" msgid ""
"Only links that match this regular expression will be followed. This option " "Only links that match this regular expression will be followed. This option "
"can be specified multiple times, in which case as long as a link matches any " "can be specified multiple times, in which case as long as a link matches any "
@ -5510,7 +5516,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
msgid "" msgid ""
"Any link that matches this regular expression will be ignored. This option " "Any link that matches this regular expression will be ignored. This option "
"can be specified multiple times, in which case as long as any regexp matches " "can be specified multiple times, in which case as long as any regexp matches "
@ -5520,7 +5526,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476
msgid "Do not download CSS stylesheets." msgid "Do not download CSS stylesheets."
msgstr "" msgstr ""
@ -5707,12 +5713,12 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:63 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:21
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64
@ -5725,11 +5731,13 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:13
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chicago_breaking_news.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
@ -5803,17 +5811,17 @@ msgstr ""
msgid "English" msgid "English"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:29
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:19 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:27
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
msgid "Serbian" msgid "Serbian"
msgstr "" msgstr ""
@ -5845,34 +5853,34 @@ msgstr ""
msgid "German" msgid "German"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:23 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:22
msgid "Croatian" msgid "Croatian"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
msgid "" msgid ""
"%prog URL\n" "%prog URL\n"
"\n" "\n"
"Where URL is for example http://google.com" "Where URL is for example http://google.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:455 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:457
msgid "Base directory into which URL is saved. Default is %default" msgid "Base directory into which URL is saved. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
msgid "" msgid ""
"Maximum number of levels to recurse i.e. depth of links to follow. Default " "Maximum number of levels to recurse i.e. depth of links to follow. Default "
"%default" "%default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
msgid "" msgid ""
"The maximum number of files to download. This only applies to files from <a " "The maximum number of files to download. This only applies to files from <a "
"href> tags. Default is %default" "href> tags. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477
msgid "Show detailed output information. Useful for debugging" msgid "Show detailed output information. Useful for debugging"
msgstr "" msgstr ""

View File

@ -7,14 +7,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre\n" "Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-02-11 03:58+0000\n" "POT-Creation-Date: 2009-02-13 20:29+0000\n"
"PO-Revision-Date: 2008-09-30 12:33+0000\n" "PO-Revision-Date: 2008-09-30 12:33+0000\n"
"Last-Translator: Calidonia <Unknown>\n" "Last-Translator: Calidonia <Unknown>\n"
"Language-Team: Galician <gl@li.org>\n" "Language-Team: Galician <gl@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-02-13 19:24+0000\n" "X-Launchpad-Export-Date: 2009-02-18 20:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41
@ -57,7 +57,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:487
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574
@ -78,20 +78,21 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:894 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:894
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:933 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:940
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123
#: /home/kovid/work/calibre/src/calibre/library/cli.py:257 #: /home/kovid/work/calibre/src/calibre/library/cli.py:257
#: /home/kovid/work/calibre/src/calibre/library/database.py:916 #: /home/kovid/work/calibre/src/calibre/library/database.py:916
#: /home/kovid/work/calibre/src/calibre/library/database2.py:472 #: /home/kovid/work/calibre/src/calibre/library/database2.py:473
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484 #: /home/kovid/work/calibre/src/calibre/library/database2.py:485
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865 #: /home/kovid/work/calibre/src/calibre/library/database2.py:866
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900 #: /home/kovid/work/calibre/src/calibre/library/database2.py:901
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1408
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459
#: /home/kovid/work/calibre/src/calibre/library/server.py:315 #: /home/kovid/work/calibre/src/calibre/library/server.py:315
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51
msgid "Unknown" msgid "Unknown"
@ -611,7 +612,7 @@ msgid "%prog [options] LITFILE"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:506 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
msgid "Output directory. Defaults to current directory." msgid "Output directory. Defaults to current directory."
msgstr "" msgstr ""
@ -626,7 +627,7 @@ msgid "Useful for debugging."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:530 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:535
msgid "OEB ebook created in" msgid "OEB ebook created in"
msgstr "" msgstr ""
@ -1577,11 +1578,11 @@ msgstr ""
msgid "Creating Mobipocket file from EPUB..." msgid "Creating Mobipocket file from EPUB..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:504 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:509
msgid "%prog [options] myebook.mobi" msgid "%prog [options] myebook.mobi"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:528 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:533
msgid "Raw MOBI HTML saved in" msgid "Raw MOBI HTML saved in"
msgstr "" msgstr ""
@ -1875,7 +1876,7 @@ msgid "Adding books to database..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:694 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
msgid "Reading metadata..." msgid "Reading metadata..."
msgstr "" msgstr ""
@ -2101,7 +2102,7 @@ msgid "Access log:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:406
msgid "Failed to start content server" msgid "Failed to start content server"
msgstr "" msgstr ""
@ -2525,7 +2526,7 @@ msgid " is not a valid picture"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "Cannot convert" msgid "Cannot convert"
msgstr "" msgstr ""
@ -3200,47 +3201,52 @@ msgstr ""
msgid "A&utomatically set author sort" msgid "A&utomatically set author sort"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118
msgid "No format selected"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
msgid "Could not read metadata" msgid "Could not read metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129
msgid "Could not read metadata from %s format" msgid "Could not read metadata from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
msgid "Could not read cover" msgid "Could not read cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:138
msgid "Could not read cover from %s format" msgid "Could not read cover from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:144
msgid "The cover in the %s format is invalid" msgid "The cover in the %s format is invalid"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:323
msgid "" msgid ""
"<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you " "<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you "
"do not have one, you can <a href='http://www.librarything.com'>register</a> " "do not have one, you can <a href='http://www.librarything.com'>register</a> "
"for free!.</p>" "for free!.</p>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "<b>Could not fetch cover.</b><br/>" msgid "<b>Could not fetch cover.</b><br/>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "Could not fetch cover" msgid "Could not fetch cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "Cannot fetch cover" msgid "Cannot fetch cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "You must specify the ISBN identifier for this book." msgid "You must specify the ISBN identifier for this book."
msgstr "" msgstr ""
@ -3400,9 +3406,9 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809 #: /home/kovid/work/calibre/src/calibre/library/database2.py:810
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813 #: /home/kovid/work/calibre/src/calibre/library/database2.py:814
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
msgid "News" msgid "News"
msgstr "" msgstr ""
@ -4086,7 +4092,7 @@ msgid "Save to disk in a single directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:193 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:193
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1248 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "" msgstr ""
@ -4124,31 +4130,31 @@ msgid "Bad database location"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:290
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1388 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1395
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:440 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:445
msgid "Browse by covers" msgid "Browse by covers"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
msgid "Device: " msgid "Device: "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
msgid " detected." msgid " detected."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
msgid "Connected " msgid "Connected "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:563 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:569
msgid "Device database corrupted" msgid "Device database corrupted"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
msgid "" msgid ""
"\n" "\n"
" <p>The database of books on the reader is corrupted. Try the " " <p>The database of books on the reader is corrupted. Try the "
@ -4164,276 +4170,276 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
msgid "Books" msgid "Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
msgid "EPUB Books" msgid "EPUB Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
msgid "LRF Books" msgid "LRF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
msgid "HTML Books" msgid "HTML Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
msgid "LIT Books" msgid "LIT Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
msgid "MOBI Books" msgid "MOBI Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
msgid "Text books" msgid "Text books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
msgid "PDF Books" msgid "PDF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
msgid "Comics" msgid "Comics"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
msgid "Archives" msgid "Archives"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
msgid "Adding books..." msgid "Adding books..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:735 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:742
msgid "No space on device" msgid "No space on device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
msgid "" msgid ""
"<p>Cannot upload books to device there is no more free space available " "<p>Cannot upload books to device there is no more free space available "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "No books selected" msgid "No books selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:887 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:894
msgid "Sending news to device." msgid "Sending news to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:941 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:948
msgid "Sending books to device." msgid "Sending books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:944 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:951
msgid "No suitable formats" msgid "No suitable formats"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
msgid "" msgid ""
"Could not upload the following books to the device, as no suitable formats " "Could not upload the following books to the device, as no suitable formats "
"were found:<br><ul>%s</ul>" "were found:<br><ul>%s</ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:973
msgid "Saving to disk..." msgid "Saving to disk..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
msgid "Saved" msgid "Saved"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:977 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:984
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
msgid "" msgid ""
"<p>Could not save the following books to disk, because the %s format is not " "<p>Could not save the following books to disk, because the %s format is not "
"available for them:<ul>" "available for them:<ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:995 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1002
msgid "Could not save some ebooks" msgid "Could not save some ebooks"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1024
msgid "Fetching news from " msgid "Fetching news from "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
msgid " fetched." msgid " fetched."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
msgid "No book selected" msgid "No book selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
msgid "Cannot view" msgid "Cannot view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1201 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1208
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure" msgid "Cannot configure"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
msgid "Copying database" msgid "Copying database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1259 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1266
msgid "Copying library to " msgid "Copying library to "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
msgid "Invalid database" msgid "Invalid database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
msgid "" msgid ""
"<p>An invalid database already exists at %s, delete it before trying to move " "<p>An invalid database already exists at %s, delete it before trying to move "
"the existing database.<br>Error: %s" "the existing database.<br>Error: %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1283
msgid "Could not move database" msgid "Could not move database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1296 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1303
msgid "No detailed info available" msgid "No detailed info available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1297 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1304
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1340 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1347
msgid "Error talking to device" msgid "Error talking to device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
msgid "Conversion Error" msgid "Conversion Error"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using 3rd party tools." "first remove the DRM using 3rd party tools."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1454 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1461
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" 'Quitting may cause corruption on the device.<br>\n" " 'Quitting may cause corruption on the device.<br>\n"
" 'Are you sure you want to quit?" " 'Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "" msgid ""
"%s has been updated to version %s. See the <a " "%s has been updated to version %s. See the <a "
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
"Visit the download page?" "Visit the download page?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "Update available" msgid "Update available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1531 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1538
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1533 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1540
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1535 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1542
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "" msgstr ""
@ -5173,20 +5179,20 @@ msgid ""
"For help on an individual command: %%prog command --help\n" "For help on an individual command: %%prog command --help\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1221 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1228
msgid "<p>Copying books to %s<br><center>" msgid "<p>Copying books to %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
msgid "Copying <b>%s</b>" msgid "Copying <b>%s</b>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1314 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1321
msgid "<p>Migrating old database to ebook library in %s<br><center>" msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
msgid "Compacting database" msgid "Compacting database"
msgstr "" msgstr ""
@ -5217,39 +5223,39 @@ msgstr ""
msgid "Created by " msgid "Created by "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:531 #: /home/kovid/work/calibre/src/calibre/utils/config.py:536
msgid "Path to the database in which books are stored" msgid "Path to the database in which books are stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:533 #: /home/kovid/work/calibre/src/calibre/utils/config.py:538
msgid "Pattern to guess metadata from filenames" msgid "Pattern to guess metadata from filenames"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:535 #: /home/kovid/work/calibre/src/calibre/utils/config.py:540
msgid "Access key for isbndb.com" msgid "Access key for isbndb.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:537 #: /home/kovid/work/calibre/src/calibre/utils/config.py:542
msgid "Default timeout for network operations (seconds)" msgid "Default timeout for network operations (seconds)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:539 #: /home/kovid/work/calibre/src/calibre/utils/config.py:544
msgid "Path to directory in which your library of books is stored" msgid "Path to directory in which your library of books is stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:541 #: /home/kovid/work/calibre/src/calibre/utils/config.py:546
msgid "The language in which to display the user interface" msgid "The language in which to display the user interface"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:543 #: /home/kovid/work/calibre/src/calibre/utils/config.py:548
msgid "The default output format for ebook conversions." msgid "The default output format for ebook conversions."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:545 #: /home/kovid/work/calibre/src/calibre/utils/config.py:550
msgid "Read metadata from files" msgid "Read metadata from files"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:547 #: /home/kovid/work/calibre/src/calibre/utils/config.py:552
msgid "The priority of worker processes" msgid "The priority of worker processes"
msgstr "" msgstr ""
@ -5292,28 +5298,28 @@ msgid "Customize the download engine"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:460
msgid "" msgid ""
"Timeout in seconds to wait for a response from the server. Default: %default " "Timeout in seconds to wait for a response from the server. Default: %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
msgid "" msgid ""
"Minimum interval in seconds between consecutive fetches. Default is %default " "Minimum interval in seconds between consecutive fetches. Default is %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470
msgid "" msgid ""
"The character encoding for the websites you are trying to download. The " "The character encoding for the websites you are trying to download. The "
"default is to try and guess the encoding." "default is to try and guess the encoding."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
msgid "" msgid ""
"Only links that match this regular expression will be followed. This option " "Only links that match this regular expression will be followed. This option "
"can be specified multiple times, in which case as long as a link matches any " "can be specified multiple times, in which case as long as a link matches any "
@ -5321,7 +5327,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
msgid "" msgid ""
"Any link that matches this regular expression will be ignored. This option " "Any link that matches this regular expression will be ignored. This option "
"can be specified multiple times, in which case as long as any regexp matches " "can be specified multiple times, in which case as long as any regexp matches "
@ -5331,7 +5337,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476
msgid "Do not download CSS stylesheets." msgid "Do not download CSS stylesheets."
msgstr "" msgstr ""
@ -5518,12 +5524,12 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:63 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:21
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64
@ -5536,11 +5542,13 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:13
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chicago_breaking_news.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
@ -5614,17 +5622,17 @@ msgstr ""
msgid "English" msgid "English"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:29
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:19 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:27
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
msgid "Serbian" msgid "Serbian"
msgstr "" msgstr ""
@ -5656,33 +5664,33 @@ msgstr ""
msgid "German" msgid "German"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:23 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:22
msgid "Croatian" msgid "Croatian"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
msgid "" msgid ""
"%prog URL\n" "%prog URL\n"
"\n" "\n"
"Where URL is for example http://google.com" "Where URL is for example http://google.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:455 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:457
msgid "Base directory into which URL is saved. Default is %default" msgid "Base directory into which URL is saved. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
msgid "" msgid ""
"Maximum number of levels to recurse i.e. depth of links to follow. Default " "Maximum number of levels to recurse i.e. depth of links to follow. Default "
"%default" "%default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
msgid "" msgid ""
"The maximum number of files to download. This only applies to files from <a " "The maximum number of files to download. This only applies to files from <a "
"href> tags. Default is %default" "href> tags. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477
msgid "Show detailed output information. Useful for debugging" msgid "Show detailed output information. Useful for debugging"
msgstr "" msgstr ""

View File

@ -7,14 +7,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre\n" "Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-02-11 03:58+0000\n" "POT-Creation-Date: 2009-02-13 20:29+0000\n"
"PO-Revision-Date: 2009-02-04 20:39+0000\n" "PO-Revision-Date: 2009-02-04 20:39+0000\n"
"Last-Translator: Kovid Goyal <Unknown>\n" "Last-Translator: Kovid Goyal <Unknown>\n"
"Language-Team: Hungarian <hu@li.org>\n" "Language-Team: Hungarian <hu@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-02-13 19:24+0000\n" "X-Launchpad-Export-Date: 2009-02-18 20:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41
@ -57,7 +57,7 @@ msgstr "Semmit nem csinál"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:487
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574
@ -78,20 +78,21 @@ msgstr "Semmit nem csinál"
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:894 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:894
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:933 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:940
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123
#: /home/kovid/work/calibre/src/calibre/library/cli.py:257 #: /home/kovid/work/calibre/src/calibre/library/cli.py:257
#: /home/kovid/work/calibre/src/calibre/library/database.py:916 #: /home/kovid/work/calibre/src/calibre/library/database.py:916
#: /home/kovid/work/calibre/src/calibre/library/database2.py:472 #: /home/kovid/work/calibre/src/calibre/library/database2.py:473
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484 #: /home/kovid/work/calibre/src/calibre/library/database2.py:485
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865 #: /home/kovid/work/calibre/src/calibre/library/database2.py:866
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900 #: /home/kovid/work/calibre/src/calibre/library/database2.py:901
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1408
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459
#: /home/kovid/work/calibre/src/calibre/library/server.py:315 #: /home/kovid/work/calibre/src/calibre/library/server.py:315
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51
msgid "Unknown" msgid "Unknown"
@ -715,7 +716,7 @@ msgid "%prog [options] LITFILE"
msgstr "%prog [beállítások] LITFILE" msgstr "%prog [beállítások] LITFILE"
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:506 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
msgid "Output directory. Defaults to current directory." msgid "Output directory. Defaults to current directory."
msgstr "Célkönyvtár. Az alapértelmezett a jelenlegi könyvtár." msgstr "Célkönyvtár. Az alapértelmezett a jelenlegi könyvtár."
@ -730,7 +731,7 @@ msgid "Useful for debugging."
msgstr "Hasznos hibakeresésnél." msgstr "Hasznos hibakeresésnél."
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:530 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:535
msgid "OEB ebook created in" msgid "OEB ebook created in"
msgstr "Az OEB e-könyvet létrehoztam ennyi idő alatt:" msgstr "Az OEB e-könyvet létrehoztam ennyi idő alatt:"
@ -1787,11 +1788,11 @@ msgstr ""
msgid "Creating Mobipocket file from EPUB..." msgid "Creating Mobipocket file from EPUB..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:504 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:509
msgid "%prog [options] myebook.mobi" msgid "%prog [options] myebook.mobi"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:528 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:533
msgid "Raw MOBI HTML saved in" msgid "Raw MOBI HTML saved in"
msgstr "" msgstr ""
@ -2085,7 +2086,7 @@ msgid "Adding books to database..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:694 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
msgid "Reading metadata..." msgid "Reading metadata..."
msgstr "" msgstr ""
@ -2311,7 +2312,7 @@ msgid "Access log:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:406
msgid "Failed to start content server" msgid "Failed to start content server"
msgstr "" msgstr ""
@ -2735,7 +2736,7 @@ msgid " is not a valid picture"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "Cannot convert" msgid "Cannot convert"
msgstr "" msgstr ""
@ -3410,47 +3411,52 @@ msgstr ""
msgid "A&utomatically set author sort" msgid "A&utomatically set author sort"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118
msgid "No format selected"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
msgid "Could not read metadata" msgid "Could not read metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129
msgid "Could not read metadata from %s format" msgid "Could not read metadata from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
msgid "Could not read cover" msgid "Could not read cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:138
msgid "Could not read cover from %s format" msgid "Could not read cover from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:144
msgid "The cover in the %s format is invalid" msgid "The cover in the %s format is invalid"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:323
msgid "" msgid ""
"<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you " "<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you "
"do not have one, you can <a href='http://www.librarything.com'>register</a> " "do not have one, you can <a href='http://www.librarything.com'>register</a> "
"for free!.</p>" "for free!.</p>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "<b>Could not fetch cover.</b><br/>" msgid "<b>Could not fetch cover.</b><br/>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "Could not fetch cover" msgid "Could not fetch cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "Cannot fetch cover" msgid "Cannot fetch cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "You must specify the ISBN identifier for this book." msgid "You must specify the ISBN identifier for this book."
msgstr "" msgstr ""
@ -3610,9 +3616,9 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809 #: /home/kovid/work/calibre/src/calibre/library/database2.py:810
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813 #: /home/kovid/work/calibre/src/calibre/library/database2.py:814
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
msgid "News" msgid "News"
msgstr "" msgstr ""
@ -4296,7 +4302,7 @@ msgid "Save to disk in a single directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:193 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:193
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1248 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "" msgstr ""
@ -4334,31 +4340,31 @@ msgid "Bad database location"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:290
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1388 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1395
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:440 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:445
msgid "Browse by covers" msgid "Browse by covers"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
msgid "Device: " msgid "Device: "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
msgid " detected." msgid " detected."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
msgid "Connected " msgid "Connected "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:563 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:569
msgid "Device database corrupted" msgid "Device database corrupted"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
msgid "" msgid ""
"\n" "\n"
" <p>The database of books on the reader is corrupted. Try the " " <p>The database of books on the reader is corrupted. Try the "
@ -4374,276 +4380,276 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
msgid "Books" msgid "Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
msgid "EPUB Books" msgid "EPUB Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
msgid "LRF Books" msgid "LRF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
msgid "HTML Books" msgid "HTML Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
msgid "LIT Books" msgid "LIT Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
msgid "MOBI Books" msgid "MOBI Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
msgid "Text books" msgid "Text books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
msgid "PDF Books" msgid "PDF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
msgid "Comics" msgid "Comics"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
msgid "Archives" msgid "Archives"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
msgid "Adding books..." msgid "Adding books..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:735 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:742
msgid "No space on device" msgid "No space on device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
msgid "" msgid ""
"<p>Cannot upload books to device there is no more free space available " "<p>Cannot upload books to device there is no more free space available "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "No books selected" msgid "No books selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:887 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:894
msgid "Sending news to device." msgid "Sending news to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:941 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:948
msgid "Sending books to device." msgid "Sending books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:944 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:951
msgid "No suitable formats" msgid "No suitable formats"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
msgid "" msgid ""
"Could not upload the following books to the device, as no suitable formats " "Could not upload the following books to the device, as no suitable formats "
"were found:<br><ul>%s</ul>" "were found:<br><ul>%s</ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:973
msgid "Saving to disk..." msgid "Saving to disk..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
msgid "Saved" msgid "Saved"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:977 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:984
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
msgid "" msgid ""
"<p>Could not save the following books to disk, because the %s format is not " "<p>Could not save the following books to disk, because the %s format is not "
"available for them:<ul>" "available for them:<ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:995 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1002
msgid "Could not save some ebooks" msgid "Could not save some ebooks"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1024
msgid "Fetching news from " msgid "Fetching news from "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
msgid " fetched." msgid " fetched."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
msgid "No book selected" msgid "No book selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
msgid "Cannot view" msgid "Cannot view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1201 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1208
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure" msgid "Cannot configure"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
msgid "Copying database" msgid "Copying database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1259 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1266
msgid "Copying library to " msgid "Copying library to "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
msgid "Invalid database" msgid "Invalid database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
msgid "" msgid ""
"<p>An invalid database already exists at %s, delete it before trying to move " "<p>An invalid database already exists at %s, delete it before trying to move "
"the existing database.<br>Error: %s" "the existing database.<br>Error: %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1283
msgid "Could not move database" msgid "Could not move database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1296 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1303
msgid "No detailed info available" msgid "No detailed info available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1297 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1304
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1340 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1347
msgid "Error talking to device" msgid "Error talking to device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
msgid "Conversion Error" msgid "Conversion Error"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using 3rd party tools." "first remove the DRM using 3rd party tools."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1454 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1461
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" 'Quitting may cause corruption on the device.<br>\n" " 'Quitting may cause corruption on the device.<br>\n"
" 'Are you sure you want to quit?" " 'Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "" msgid ""
"%s has been updated to version %s. See the <a " "%s has been updated to version %s. See the <a "
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
"Visit the download page?" "Visit the download page?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "Update available" msgid "Update available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1531 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1538
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1533 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1540
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1535 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1542
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "" msgstr ""
@ -5383,20 +5389,20 @@ msgid ""
"For help on an individual command: %%prog command --help\n" "For help on an individual command: %%prog command --help\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1221 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1228
msgid "<p>Copying books to %s<br><center>" msgid "<p>Copying books to %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
msgid "Copying <b>%s</b>" msgid "Copying <b>%s</b>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1314 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1321
msgid "<p>Migrating old database to ebook library in %s<br><center>" msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
msgid "Compacting database" msgid "Compacting database"
msgstr "" msgstr ""
@ -5427,39 +5433,39 @@ msgstr ""
msgid "Created by " msgid "Created by "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:531 #: /home/kovid/work/calibre/src/calibre/utils/config.py:536
msgid "Path to the database in which books are stored" msgid "Path to the database in which books are stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:533 #: /home/kovid/work/calibre/src/calibre/utils/config.py:538
msgid "Pattern to guess metadata from filenames" msgid "Pattern to guess metadata from filenames"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:535 #: /home/kovid/work/calibre/src/calibre/utils/config.py:540
msgid "Access key for isbndb.com" msgid "Access key for isbndb.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:537 #: /home/kovid/work/calibre/src/calibre/utils/config.py:542
msgid "Default timeout for network operations (seconds)" msgid "Default timeout for network operations (seconds)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:539 #: /home/kovid/work/calibre/src/calibre/utils/config.py:544
msgid "Path to directory in which your library of books is stored" msgid "Path to directory in which your library of books is stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:541 #: /home/kovid/work/calibre/src/calibre/utils/config.py:546
msgid "The language in which to display the user interface" msgid "The language in which to display the user interface"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:543 #: /home/kovid/work/calibre/src/calibre/utils/config.py:548
msgid "The default output format for ebook conversions." msgid "The default output format for ebook conversions."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:545 #: /home/kovid/work/calibre/src/calibre/utils/config.py:550
msgid "Read metadata from files" msgid "Read metadata from files"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:547 #: /home/kovid/work/calibre/src/calibre/utils/config.py:552
msgid "The priority of worker processes" msgid "The priority of worker processes"
msgstr "" msgstr ""
@ -5502,28 +5508,28 @@ msgid "Customize the download engine"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:460
msgid "" msgid ""
"Timeout in seconds to wait for a response from the server. Default: %default " "Timeout in seconds to wait for a response from the server. Default: %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
msgid "" msgid ""
"Minimum interval in seconds between consecutive fetches. Default is %default " "Minimum interval in seconds between consecutive fetches. Default is %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470
msgid "" msgid ""
"The character encoding for the websites you are trying to download. The " "The character encoding for the websites you are trying to download. The "
"default is to try and guess the encoding." "default is to try and guess the encoding."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
msgid "" msgid ""
"Only links that match this regular expression will be followed. This option " "Only links that match this regular expression will be followed. This option "
"can be specified multiple times, in which case as long as a link matches any " "can be specified multiple times, in which case as long as a link matches any "
@ -5531,7 +5537,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
msgid "" msgid ""
"Any link that matches this regular expression will be ignored. This option " "Any link that matches this regular expression will be ignored. This option "
"can be specified multiple times, in which case as long as any regexp matches " "can be specified multiple times, in which case as long as any regexp matches "
@ -5541,7 +5547,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476
msgid "Do not download CSS stylesheets." msgid "Do not download CSS stylesheets."
msgstr "" msgstr ""
@ -5728,12 +5734,12 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:63 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:21
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64
@ -5746,11 +5752,13 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:13
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chicago_breaking_news.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
@ -5824,17 +5832,17 @@ msgstr ""
msgid "English" msgid "English"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:29
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:19 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:27
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
msgid "Serbian" msgid "Serbian"
msgstr "" msgstr ""
@ -5866,34 +5874,34 @@ msgstr ""
msgid "German" msgid "German"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:23 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:22
msgid "Croatian" msgid "Croatian"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
msgid "" msgid ""
"%prog URL\n" "%prog URL\n"
"\n" "\n"
"Where URL is for example http://google.com" "Where URL is for example http://google.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:455 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:457
msgid "Base directory into which URL is saved. Default is %default" msgid "Base directory into which URL is saved. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
msgid "" msgid ""
"Maximum number of levels to recurse i.e. depth of links to follow. Default " "Maximum number of levels to recurse i.e. depth of links to follow. Default "
"%default" "%default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
msgid "" msgid ""
"The maximum number of files to download. This only applies to files from <a " "The maximum number of files to download. This only applies to files from <a "
"href> tags. Default is %default" "href> tags. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477
msgid "Show detailed output information. Useful for debugging" msgid "Show detailed output information. Useful for debugging"
msgstr "" msgstr ""

View File

@ -8,14 +8,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre_calibre-it\n" "Project-Id-Version: calibre_calibre-it\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-02-11 03:58+0000\n" "POT-Creation-Date: 2009-02-13 20:29+0000\n"
"PO-Revision-Date: 2009-01-07 18:21+0000\n" "PO-Revision-Date: 2009-02-17 12:58+0000\n"
"Last-Translator: Kovid Goyal <Unknown>\n" "Last-Translator: Nikopol <aegnor_isilra@hotmail.com>\n"
"Language-Team: italiano\n" "Language-Team: italiano\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-02-13 19:24+0000\n" "X-Launchpad-Export-Date: 2009-02-18 20:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
"Generated-By: pygettext.py 1.5\n" "Generated-By: pygettext.py 1.5\n"
@ -59,7 +59,7 @@ msgstr "Non fa assolutamente niente"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:487
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574
@ -80,20 +80,21 @@ msgstr "Non fa assolutamente niente"
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:894 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:894
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:933 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:940
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123
#: /home/kovid/work/calibre/src/calibre/library/cli.py:257 #: /home/kovid/work/calibre/src/calibre/library/cli.py:257
#: /home/kovid/work/calibre/src/calibre/library/database.py:916 #: /home/kovid/work/calibre/src/calibre/library/database.py:916
#: /home/kovid/work/calibre/src/calibre/library/database2.py:472 #: /home/kovid/work/calibre/src/calibre/library/database2.py:473
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484 #: /home/kovid/work/calibre/src/calibre/library/database2.py:485
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865 #: /home/kovid/work/calibre/src/calibre/library/database2.py:866
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900 #: /home/kovid/work/calibre/src/calibre/library/database2.py:901
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1408
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459
#: /home/kovid/work/calibre/src/calibre/library/server.py:315 #: /home/kovid/work/calibre/src/calibre/library/server.py:315
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51
msgid "Unknown" msgid "Unknown"
@ -121,6 +122,9 @@ msgid ""
"linked files. This plugin is run every time you add an HTML file to the " "linked files. This plugin is run every time you add an HTML file to the "
"library." "library."
msgstr "" msgstr ""
"Apri tutti i seguenti collegamenti in un file HTML e crea un file ZIP che "
"contiene tutti i file dei collegamenti. Questo plugin si avvia ogni volta "
"che aggiungi un file HTML alla libreria."
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:32 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:32
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:43 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:43
@ -144,18 +148,18 @@ msgstr "Estrae le copertine dai file dei fumetti"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:186 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:186
msgid "Read metadata from ebooks in ZIP archives" msgid "Read metadata from ebooks in ZIP archives"
msgstr "" msgstr "Leggi i metadati da un ebook nell'archivio ZIP"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:196 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:196
msgid "Read metadata from ebooks in RAR archives" msgid "Read metadata from ebooks in RAR archives"
msgstr "" msgstr "Leggi i metadati da un ebook nell'archivio RAR"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:207 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:207
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:217 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:217
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:227 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:227
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:237 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:237
msgid "Set metadata in %s files" msgid "Set metadata in %s files"
msgstr "" msgstr "Organizza i metadati in %s file"
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:28 #: /home/kovid/work/calibre/src/calibre/customize/ui.py:28
msgid "Installed plugins" msgid "Installed plugins"
@ -167,7 +171,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:30 #: /home/kovid/work/calibre/src/calibre/customize/ui.py:30
msgid "Local plugin customization" msgid "Local plugin customization"
msgstr "" msgstr "Organizzazione dei plugin locali"
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:31 #: /home/kovid/work/calibre/src/calibre/customize/ui.py:31
msgid "Disabled plugins" msgid "Disabled plugins"
@ -175,7 +179,7 @@ msgstr "Disabilita plug-in"
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:66 #: /home/kovid/work/calibre/src/calibre/customize/ui.py:66
msgid "No valid plugin found in " msgid "No valid plugin found in "
msgstr "" msgstr "Nessun valido plugin trovato in "
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:185 #: /home/kovid/work/calibre/src/calibre/customize/ui.py:185
msgid "Initialization of plugin %s failed with traceback:" msgid "Initialization of plugin %s failed with traceback:"
@ -196,6 +200,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:268 #: /home/kovid/work/calibre/src/calibre/customize/ui.py:268
msgid "Add a plugin by specifying the path to the zip file containing it." msgid "Add a plugin by specifying the path to the zip file containing it."
msgstr "" msgstr ""
"Aggiungi un plugin specificando il percorso al file zip che lo contiene."
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:270 #: /home/kovid/work/calibre/src/calibre/customize/ui.py:270
msgid "Remove a custom plugin by name. Has no effect on builtin plugins" msgid "Remove a custom plugin by name. Has no effect on builtin plugins"
@ -206,6 +211,8 @@ msgid ""
"Customize plugin. Specify name of plugin and customization string separated " "Customize plugin. Specify name of plugin and customization string separated "
"by a comma." "by a comma."
msgstr "" msgstr ""
"Personalizza un plugin. Specifica il nome del plugin e la stringa di "
"personalizzazione separati da una virgola."
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:274 #: /home/kovid/work/calibre/src/calibre/customize/ui.py:274
msgid "List all installed plugins" msgid "List all installed plugins"
@ -228,12 +235,12 @@ msgstr "Il lettore non ha una scheda di memoria connessa."
#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:60 #: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:60
#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:89 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:89
msgid "There is insufficient free space on the storage card" msgid "There is insufficient free space on the storage card"
msgstr "" msgstr "Non c'è spazio a sufficienza nella scheda di memoria"
#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:62 #: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:62
#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:91 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:91
msgid "There is insufficient free space in main memory" msgid "There is insufficient free space in main memory"
msgstr "" msgstr "Non c'è spazio a sufficienza nella memoria principale"
#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:140 #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:140
#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:168 #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:168
@ -691,7 +698,7 @@ msgid "%prog [options] LITFILE"
msgstr "%prog [opzioni] FILELIT" msgstr "%prog [opzioni] FILELIT"
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:506 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
msgid "Output directory. Defaults to current directory." msgid "Output directory. Defaults to current directory."
msgstr "Cartella in uscita. Predefinita: cartella corrente." msgstr "Cartella in uscita. Predefinita: cartella corrente."
@ -708,7 +715,7 @@ msgid "Useful for debugging."
msgstr "Utile per il debugging" msgstr "Utile per il debugging"
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:530 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:535
msgid "OEB ebook created in" msgid "OEB ebook created in"
msgstr "Libro OEB creato in" msgstr "Libro OEB creato in"
@ -1860,11 +1867,11 @@ msgstr "Uso: rb-meta file.rb"
msgid "Creating Mobipocket file from EPUB..." msgid "Creating Mobipocket file from EPUB..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:504 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:509
msgid "%prog [options] myebook.mobi" msgid "%prog [options] myebook.mobi"
msgstr "%prog [opzioni] miolibro.mobi" msgstr "%prog [opzioni] miolibro.mobi"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:528 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:533
msgid "Raw MOBI HTML saved in" msgid "Raw MOBI HTML saved in"
msgstr "MOBI HTML raw salvato in" msgstr "MOBI HTML raw salvato in"
@ -2165,7 +2172,7 @@ msgid "Adding books to database..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:694 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
msgid "Reading metadata..." msgid "Reading metadata..."
msgstr "" msgstr ""
@ -2394,7 +2401,7 @@ msgid "Access log:"
msgstr "File di log degli accessi:" msgstr "File di log degli accessi:"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:406
msgid "Failed to start content server" msgid "Failed to start content server"
msgstr "Avvio del server dei contenuti fallito" msgstr "Avvio del server dei contenuti fallito"
@ -2839,7 +2846,7 @@ msgid " is not a valid picture"
msgstr " non è un'immagine valida" msgstr " non è un'immagine valida"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "Cannot convert" msgid "Cannot convert"
msgstr "Impossibile convertire" msgstr "Impossibile convertire"
@ -3554,28 +3561,33 @@ msgstr "Rimuovi for&mato:"
msgid "A&utomatically set author sort" msgid "A&utomatically set author sort"
msgstr "Imposta a&utomaticamente la Classificazione autore" msgstr "Imposta a&utomaticamente la Classificazione autore"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118
msgid "No format selected"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
msgid "Could not read metadata" msgid "Could not read metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129
msgid "Could not read metadata from %s format" msgid "Could not read metadata from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
msgid "Could not read cover" msgid "Could not read cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:138
msgid "Could not read cover from %s format" msgid "Could not read cover from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:144
msgid "The cover in the %s format is invalid" msgid "The cover in the %s format is invalid"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:323
msgid "" msgid ""
"<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you " "<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you "
"do not have one, you can <a href='http://www.librarything.com'>register</a> " "do not have one, you can <a href='http://www.librarything.com'>register</a> "
@ -3585,19 +3597,19 @@ msgstr ""
"<br/>Se non se ne possiede uno, è possibile <a " "<br/>Se non se ne possiede uno, è possibile <a "
"href='http://www.librarything.com'>registrarsi</a> gratuitamente!</p>" "href='http://www.librarything.com'>registrarsi</a> gratuitamente!</p>"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "<b>Could not fetch cover.</b><br/>" msgid "<b>Could not fetch cover.</b><br/>"
msgstr "<b>Impossibile scaricare la copertina</b><br/>" msgstr "<b>Impossibile scaricare la copertina</b><br/>"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "Could not fetch cover" msgid "Could not fetch cover"
msgstr "Impossibile scaricare la copertina" msgstr "Impossibile scaricare la copertina"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "Cannot fetch cover" msgid "Cannot fetch cover"
msgstr "Impossibile scaricare la copertina" msgstr "Impossibile scaricare la copertina"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "You must specify the ISBN identifier for this book." msgid "You must specify the ISBN identifier for this book."
msgstr "È necessario specificare il codice ISBN di questo libro" msgstr "È necessario specificare il codice ISBN di questo libro"
@ -3760,9 +3772,9 @@ msgstr "Aggiungi una fonte di notizie personalizzata"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809 #: /home/kovid/work/calibre/src/calibre/library/database2.py:810
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813 #: /home/kovid/work/calibre/src/calibre/library/database2.py:814
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
msgid "News" msgid "News"
msgstr "Notizie" msgstr "Notizie"
@ -4045,7 +4057,7 @@ msgstr "&Rimuovi formula"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:252 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:252
msgid "&Share recipe" msgid "&Share recipe"
msgstr "Condi&vidi formula" msgstr "&Condividi formula"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:253 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:253
msgid "Customize &builtin recipe" msgid "Customize &builtin recipe"
@ -4053,7 +4065,7 @@ msgstr "Personali&zza formula incorporata"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:254 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:254
msgid "&Load recipe from file" msgid "&Load recipe from file"
msgstr "Carica formula &da file" msgstr "&Carica formula da file"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:256 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:256
msgid "" msgid ""
@ -4495,7 +4507,7 @@ msgid "Save to disk in a single directory"
msgstr "Salva su disco in una singola cartella" msgstr "Salva su disco in una singola cartella"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:193 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:193
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1248 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "Salva sul disco solo il formato %s" msgstr "Salva sul disco solo il formato %s"
@ -4533,31 +4545,31 @@ msgid "Bad database location"
msgstr "Percorso del database sbagliato" msgstr "Percorso del database sbagliato"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:290
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1388 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1395
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "Scegliere un percorso per la propria biblioteca." msgstr "Scegliere un percorso per la propria biblioteca."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:440 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:445
msgid "Browse by covers" msgid "Browse by covers"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
msgid "Device: " msgid "Device: "
msgstr "Dispositivo: " msgstr "Dispositivo: "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
msgid " detected." msgid " detected."
msgstr " individuato." msgstr " individuato."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
msgid "Connected " msgid "Connected "
msgstr "Connesso " msgstr "Connesso "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:563 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:569
msgid "Device database corrupted" msgid "Device database corrupted"
msgstr "Database del dispositivo corrotto" msgstr "Database del dispositivo corrotto"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
msgid "" msgid ""
"\n" "\n"
" <p>The database of books on the reader is corrupted. Try the " " <p>The database of books on the reader is corrupted. Try the "
@ -4586,101 +4598,101 @@ msgstr ""
" </ol>\n" " </ol>\n"
" " " "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "Caricamento libri nel dispositivo." msgstr "Caricamento libri nel dispositivo."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
msgid "Books" msgid "Books"
msgstr "Libri" msgstr "Libri"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
msgid "EPUB Books" msgid "EPUB Books"
msgstr "Libri EPUB" msgstr "Libri EPUB"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
msgid "LRF Books" msgid "LRF Books"
msgstr "Libri LRF" msgstr "Libri LRF"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
msgid "HTML Books" msgid "HTML Books"
msgstr "Libri HTML" msgstr "Libri HTML"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
msgid "LIT Books" msgid "LIT Books"
msgstr "Libri LIT" msgstr "Libri LIT"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
msgid "MOBI Books" msgid "MOBI Books"
msgstr "Libri MOBI" msgstr "Libri MOBI"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
msgid "Text books" msgid "Text books"
msgstr "Libri TXT" msgstr "Libri TXT"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
msgid "PDF Books" msgid "PDF Books"
msgstr "Libri PDF" msgstr "Libri PDF"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
msgid "Comics" msgid "Comics"
msgstr "Fumetti" msgstr "Fumetti"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
msgid "Archives" msgid "Archives"
msgstr "Archivi" msgstr "Archivi"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
msgid "Adding books..." msgid "Adding books..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:735 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:742
msgid "No space on device" msgid "No space on device"
msgstr "Spazio insufficiente sul dispositivo" msgstr "Spazio insufficiente sul dispositivo"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
msgid "" msgid ""
"<p>Cannot upload books to device there is no more free space available " "<p>Cannot upload books to device there is no more free space available "
msgstr "" msgstr ""
"<p>Impossibile salvare libri sul dispositivo perché non c'è più spazio " "<p>Impossibile salvare libri sul dispositivo perché non c'è più spazio "
"disponibile " "disponibile "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "Cancellamento libri dal dispositivo." msgstr "Cancellamento libri dal dispositivo."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "Impossibile modificare i metadati" msgstr "Impossibile modificare i metadati"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "No books selected" msgid "No books selected"
msgstr "Nessun libro selezionato" msgstr "Nessun libro selezionato"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:887 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:894
msgid "Sending news to device." msgid "Sending news to device."
msgstr "Invio notizie al dispositivo in corso." msgstr "Invio notizie al dispositivo in corso."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:941 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:948
msgid "Sending books to device." msgid "Sending books to device."
msgstr "Invio libri al dispositivo." msgstr "Invio libri al dispositivo."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:944 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:951
msgid "No suitable formats" msgid "No suitable formats"
msgstr "Nessun formato adatto" msgstr "Nessun formato adatto"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
msgid "" msgid ""
"Could not upload the following books to the device, as no suitable formats " "Could not upload the following books to the device, as no suitable formats "
"were found:<br><ul>%s</ul>" "were found:<br><ul>%s</ul>"
@ -4688,23 +4700,23 @@ msgstr ""
"Impossibile caricare i seguenti libri nel dispositivo, perché non è stato " "Impossibile caricare i seguenti libri nel dispositivo, perché non è stato "
"trovato nessun formato adatto:<br><ul>%s</ul>" "trovato nessun formato adatto:<br><ul>%s</ul>"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "Impossibile salvare sul disco" msgstr "Impossibile salvare sul disco"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:973
msgid "Saving to disk..." msgid "Saving to disk..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
msgid "Saved" msgid "Saved"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:977 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:984
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "Scegliere la cartella di destinazione" msgstr "Scegliere la cartella di destinazione"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
msgid "" msgid ""
"<p>Could not save the following books to disk, because the %s format is not " "<p>Could not save the following books to disk, because the %s format is not "
"available for them:<ul>" "available for them:<ul>"
@ -4712,64 +4724,64 @@ msgstr ""
"<p>Impossibile salvare i libri seguenti su disco, perché il formato %s non è " "<p>Impossibile salvare i libri seguenti su disco, perché il formato %s non è "
"disponibile per loro:<ul>" "disponibile per loro:<ul>"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:995 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1002
msgid "Could not save some ebooks" msgid "Could not save some ebooks"
msgstr "Impossibile salvare alcuni libri" msgstr "Impossibile salvare alcuni libri"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1024
msgid "Fetching news from " msgid "Fetching news from "
msgstr "Scaricamento notizie da " msgstr "Scaricamento notizie da "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
msgid " fetched." msgid " fetched."
msgstr " preso." msgstr " preso."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
msgid "No book selected" msgid "No book selected"
msgstr "Nessun libro selezionato" msgstr "Nessun libro selezionato"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
msgid "Cannot view" msgid "Cannot view"
msgstr "Impossibile leggere" msgstr "Impossibile leggere"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "Scegliere il formato da leggere" msgstr "Scegliere il formato da leggere"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "Impossibile aprire la cartella" msgstr "Impossibile aprire la cartella"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1201 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1208
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "%s non ha formati disponibili" msgstr "%s non ha formati disponibili"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure" msgid "Cannot configure"
msgstr "Impossibile configurare" msgstr "Impossibile configurare"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "Impossibile configurare mentre ci sono lavori in esecuzione" msgstr "Impossibile configurare mentre ci sono lavori in esecuzione"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
msgid "Copying database" msgid "Copying database"
msgstr "Sto copiando il database" msgstr "Sto copiando il database"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1259 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1266
msgid "Copying library to " msgid "Copying library to "
msgstr "Copia biblioteca in " msgstr "Copia biblioteca in "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
msgid "Invalid database" msgid "Invalid database"
msgstr "Database non valido" msgstr "Database non valido"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
msgid "" msgid ""
"<p>An invalid database already exists at %s, delete it before trying to move " "<p>An invalid database already exists at %s, delete it before trying to move "
"the existing database.<br>Error: %s" "the existing database.<br>Error: %s"
@ -4777,25 +4789,25 @@ msgstr ""
"<p>Esiste già un database non valido in %s, eliminarlo prima di provare a " "<p>Esiste già un database non valido in %s, eliminarlo prima di provare a "
"spostare il database esistente.<br>Errore: %s" "spostare il database esistente.<br>Errore: %s"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1283
msgid "Could not move database" msgid "Could not move database"
msgstr "Impossibile spostare il database" msgstr "Impossibile spostare il database"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1296 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1303
msgid "No detailed info available" msgid "No detailed info available"
msgstr "Nessuna informazione dettagliata disponibile" msgstr "Nessuna informazione dettagliata disponibile"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1297 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1304
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
"Non è disponibile alcuna informazione dettagliata per i libri nel " "Non è disponibile alcuna informazione dettagliata per i libri nel "
"dispositivo." "dispositivo."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1340 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1347
msgid "Error talking to device" msgid "Error talking to device"
msgstr "Errore di comunicazione col dispositivo" msgstr "Errore di comunicazione col dispositivo"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
@ -4803,13 +4815,13 @@ msgstr ""
"Si è verificato un errore di comunicazione temporaneo col dispositivo. " "Si è verificato un errore di comunicazione temporaneo col dispositivo. "
"Disconnettere e riconnettere il dispositivo e/o riavviare" "Disconnettere e riconnettere il dispositivo e/o riavviare"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
msgid "Conversion Error" msgid "Conversion Error"
msgstr "Errore di conversione" msgstr "Errore di conversione"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using 3rd party tools." "first remove the DRM using 3rd party tools."
@ -4818,7 +4830,7 @@ msgstr ""
"href=\"%s\">DRM</a>. È necessario rimuovere prima il DRM usando programmi di " "href=\"%s\">DRM</a>. È necessario rimuovere prima il DRM usando programmi di "
"terze parti." "terze parti."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
@ -4826,22 +4838,22 @@ msgstr ""
"è il risultato degli sforzi di tanti volontari da tutto il mondo. Se lo " "è il risultato degli sforzi di tanti volontari da tutto il mondo. Se lo "
"trovi utile, puoi fare una donazione per supportare il suo sviluppo." "trovi utile, puoi fare una donazione per supportare il suo sviluppo."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1454 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1461
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "Ci sono lavori attivi. Uscire comunque?" msgstr "Ci sono lavori attivi. Uscire comunque?"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" 'Quitting may cause corruption on the device.<br>\n" " 'Quitting may cause corruption on the device.<br>\n"
" 'Are you sure you want to quit?" " 'Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "ATTENZIONE: Lavori attivi" msgstr "ATTENZIONE: Lavori attivi"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
@ -4849,7 +4861,7 @@ msgstr ""
"continuerà a lavorare nel vassoio di sistema. Per chiuderlo, selezionare " "continuerà a lavorare nel vassoio di sistema. Per chiuderlo, selezionare "
"<b>Esci</b> nel menu contestuale del vassoio di sistema." "<b>Esci</b> nel menu contestuale del vassoio di sistema."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
@ -4857,7 +4869,7 @@ msgstr ""
"<span style=\"color:red; font-weight:bold\">Ultima versione: <a " "<span style=\"color:red; font-weight:bold\">Ultima versione: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "" msgid ""
"%s has been updated to version %s. See the <a " "%s has been updated to version %s. See the <a "
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
@ -4867,19 +4879,19 @@ msgstr ""
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">nuove " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">nuove "
"funzionalità</a>. Una visita alla pagina del download?" "funzionalità</a>. Una visita alla pagina del download?"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "Update available" msgid "Update available"
msgstr "Aggiornamento disponibile" msgstr "Aggiornamento disponibile"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1531 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1538
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "Usa la biblioteca collocata nel percorso specificato." msgstr "Usa la biblioteca collocata nel percorso specificato."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1533 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1540
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1535 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1542
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "Invia le informazioni di debug alla console" msgstr "Invia le informazioni di debug alla console"
@ -5733,21 +5745,21 @@ msgstr ""
"\n" "\n"
"Per aiuto su un comando particolare: %%prog command --help\n" "Per aiuto su un comando particolare: %%prog command --help\n"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1221 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1228
msgid "<p>Copying books to %s<br><center>" msgid "<p>Copying books to %s<br><center>"
msgstr "<p>Sto copiando i libri in %s<br><center>" msgstr "<p>Sto copiando i libri in %s<br><center>"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
msgid "Copying <b>%s</b>" msgid "Copying <b>%s</b>"
msgstr "Sto copiando <b>%s</b>" msgstr "Sto copiando <b>%s</b>"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1314 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1321
msgid "<p>Migrating old database to ebook library in %s<br><center>" msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr "" msgstr ""
"<p>Sto migrando il vecchio database nella nuova biblioteca in %s<br><center>" "<p>Sto migrando il vecchio database nella nuova biblioteca in %s<br><center>"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
msgid "Compacting database" msgid "Compacting database"
msgstr "Compattazione database" msgstr "Compattazione database"
@ -5782,39 +5794,39 @@ msgstr "%sUso%s: %s\n"
msgid "Created by " msgid "Created by "
msgstr "Creato da " msgstr "Creato da "
#: /home/kovid/work/calibre/src/calibre/utils/config.py:531 #: /home/kovid/work/calibre/src/calibre/utils/config.py:536
msgid "Path to the database in which books are stored" msgid "Path to the database in which books are stored"
msgstr "Percorso del database in cui sono salvati i libri" msgstr "Percorso del database in cui sono salvati i libri"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:533 #: /home/kovid/work/calibre/src/calibre/utils/config.py:538
msgid "Pattern to guess metadata from filenames" msgid "Pattern to guess metadata from filenames"
msgstr "Modelli per indovinare i metadati dai nomi dei file" msgstr "Modelli per indovinare i metadati dai nomi dei file"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:535 #: /home/kovid/work/calibre/src/calibre/utils/config.py:540
msgid "Access key for isbndb.com" msgid "Access key for isbndb.com"
msgstr "Chiave di accesso per isbndb.com" msgstr "Chiave di accesso per isbndb.com"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:537 #: /home/kovid/work/calibre/src/calibre/utils/config.py:542
msgid "Default timeout for network operations (seconds)" msgid "Default timeout for network operations (seconds)"
msgstr "Timeout predefinito per le operazioni di rete (secondi)" msgstr "Timeout predefinito per le operazioni di rete (secondi)"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:539 #: /home/kovid/work/calibre/src/calibre/utils/config.py:544
msgid "Path to directory in which your library of books is stored" msgid "Path to directory in which your library of books is stored"
msgstr "Percorso alla cartella in cui è salvata la biblioteca" msgstr "Percorso alla cartella in cui è salvata la biblioteca"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:541 #: /home/kovid/work/calibre/src/calibre/utils/config.py:546
msgid "The language in which to display the user interface" msgid "The language in which to display the user interface"
msgstr "La lingua in cui visualizzare l'interfaccia utente" msgstr "La lingua in cui visualizzare l'interfaccia utente"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:543 #: /home/kovid/work/calibre/src/calibre/utils/config.py:548
msgid "The default output format for ebook conversions." msgid "The default output format for ebook conversions."
msgstr "Il formato predefinito per la conversione dei libri." msgstr "Il formato predefinito per la conversione dei libri."
#: /home/kovid/work/calibre/src/calibre/utils/config.py:545 #: /home/kovid/work/calibre/src/calibre/utils/config.py:550
msgid "Read metadata from files" msgid "Read metadata from files"
msgstr "Leggi metadati dai file" msgstr "Leggi metadati dai file"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:547 #: /home/kovid/work/calibre/src/calibre/utils/config.py:552
msgid "The priority of worker processes" msgid "The priority of worker processes"
msgstr "La priorità dei processi di lavoro" msgstr "La priorità dei processi di lavoro"
@ -5858,7 +5870,7 @@ msgid "Customize the download engine"
msgstr "Personalizza il motore degli scaricamenti" msgstr "Personalizza il motore degli scaricamenti"
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:460
msgid "" msgid ""
"Timeout in seconds to wait for a response from the server. Default: %default " "Timeout in seconds to wait for a response from the server. Default: %default "
"s" "s"
@ -5867,7 +5879,7 @@ msgstr ""
"%default s" "%default s"
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
msgid "" msgid ""
"Minimum interval in seconds between consecutive fetches. Default is %default " "Minimum interval in seconds between consecutive fetches. Default is %default "
"s" "s"
@ -5876,7 +5888,7 @@ msgstr ""
"%default s" "%default s"
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470
msgid "" msgid ""
"The character encoding for the websites you are trying to download. The " "The character encoding for the websites you are trying to download. The "
"default is to try and guess the encoding." "default is to try and guess the encoding."
@ -5885,7 +5897,7 @@ msgstr ""
"L'impostazione predefinita è quella di provare a indovinare la codifica" "L'impostazione predefinita è quella di provare a indovinare la codifica"
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
msgid "" msgid ""
"Only links that match this regular expression will be followed. This option " "Only links that match this regular expression will be followed. This option "
"can be specified multiple times, in which case as long as a link matches any " "can be specified multiple times, in which case as long as a link matches any "
@ -5897,7 +5909,7 @@ msgstr ""
"impostazione predefinita i link non vengono seguiti" "impostazione predefinita i link non vengono seguiti"
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
msgid "" msgid ""
"Any link that matches this regular expression will be ignored. This option " "Any link that matches this regular expression will be ignored. This option "
"can be specified multiple times, in which case as long as any regexp matches " "can be specified multiple times, in which case as long as any regexp matches "
@ -5913,7 +5925,7 @@ msgstr ""
"prima" "prima"
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476
msgid "Do not download CSS stylesheets." msgid "Do not download CSS stylesheets."
msgstr "Non scaricare i fogli di stile CSS" msgstr "Non scaricare i fogli di stile CSS"
@ -6140,12 +6152,12 @@ msgstr "Scaricamento feed"
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:63 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:21
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64
@ -6158,11 +6170,13 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:13
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chicago_breaking_news.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
@ -6236,17 +6250,17 @@ msgstr ""
msgid "English" msgid "English"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:29
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:19 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:27
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
msgid "Serbian" msgid "Serbian"
msgstr "" msgstr ""
@ -6278,11 +6292,11 @@ msgstr ""
msgid "German" msgid "German"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:23 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:22
msgid "Croatian" msgid "Croatian"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
msgid "" msgid ""
"%prog URL\n" "%prog URL\n"
"\n" "\n"
@ -6292,11 +6306,11 @@ msgstr ""
"\n" "\n"
"Dov'è l'URL. Esempio: http://google.com" "Dov'è l'URL. Esempio: http://google.com"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:455 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:457
msgid "Base directory into which URL is saved. Default is %default" msgid "Base directory into which URL is saved. Default is %default"
msgstr "Cartella base in cui le URL sono salvate. Predefinita: %default" msgstr "Cartella base in cui le URL sono salvate. Predefinita: %default"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
msgid "" msgid ""
"Maximum number of levels to recurse i.e. depth of links to follow. Default " "Maximum number of levels to recurse i.e. depth of links to follow. Default "
"%default" "%default"
@ -6304,7 +6318,7 @@ msgstr ""
"Numero massimo di livelli ricorsivi, cioè profondità dei link da seguire. " "Numero massimo di livelli ricorsivi, cioè profondità dei link da seguire. "
"Predefinito: %default" "Predefinito: %default"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
msgid "" msgid ""
"The maximum number of files to download. This only applies to files from <a " "The maximum number of files to download. This only applies to files from <a "
"href> tags. Default is %default" "href> tags. Default is %default"
@ -6312,7 +6326,7 @@ msgstr ""
"Il numero massimo di file da scaricare. Questa si applica solo ai file dai " "Il numero massimo di file da scaricare. Questa si applica solo ai file dai "
"tag <a fref>. Predefinito: %default" "tag <a fref>. Predefinito: %default"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477
msgid "Show detailed output information. Useful for debugging" msgid "Show detailed output information. Useful for debugging"
msgstr "Mostra un output dettagliato. Utile per il debugging" msgstr "Mostra un output dettagliato. Utile per il debugging"

View File

@ -7,14 +7,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre\n" "Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-02-11 03:58+0000\n" "POT-Creation-Date: 2009-02-13 20:29+0000\n"
"PO-Revision-Date: 2009-01-07 18:22+0000\n" "PO-Revision-Date: 2009-01-07 18:22+0000\n"
"Last-Translator: Kovid Goyal <Unknown>\n" "Last-Translator: Kovid Goyal <Unknown>\n"
"Language-Team: Norwegian Bokmal <nb@li.org>\n" "Language-Team: Norwegian Bokmal <nb@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-02-13 19:24+0000\n" "X-Launchpad-Export-Date: 2009-02-18 20:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41
@ -57,7 +57,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:487
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574
@ -78,20 +78,21 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:894 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:894
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:933 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:940
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123
#: /home/kovid/work/calibre/src/calibre/library/cli.py:257 #: /home/kovid/work/calibre/src/calibre/library/cli.py:257
#: /home/kovid/work/calibre/src/calibre/library/database.py:916 #: /home/kovid/work/calibre/src/calibre/library/database.py:916
#: /home/kovid/work/calibre/src/calibre/library/database2.py:472 #: /home/kovid/work/calibre/src/calibre/library/database2.py:473
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484 #: /home/kovid/work/calibre/src/calibre/library/database2.py:485
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865 #: /home/kovid/work/calibre/src/calibre/library/database2.py:866
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900 #: /home/kovid/work/calibre/src/calibre/library/database2.py:901
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1408
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459
#: /home/kovid/work/calibre/src/calibre/library/server.py:315 #: /home/kovid/work/calibre/src/calibre/library/server.py:315
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51
msgid "Unknown" msgid "Unknown"
@ -646,7 +647,7 @@ msgid "%prog [options] LITFILE"
msgstr "%prog [opsjoner] LITFIL" msgstr "%prog [opsjoner] LITFIL"
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:506 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
msgid "Output directory. Defaults to current directory." msgid "Output directory. Defaults to current directory."
msgstr "Lagringskatalog. Standard er nåværende katalog" msgstr "Lagringskatalog. Standard er nåværende katalog"
@ -663,7 +664,7 @@ msgid "Useful for debugging."
msgstr "Praktisk for feilsøking." msgstr "Praktisk for feilsøking."
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:530 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:535
msgid "OEB ebook created in" msgid "OEB ebook created in"
msgstr "OEB bok opprettet i" msgstr "OEB bok opprettet i"
@ -1735,11 +1736,11 @@ msgstr ""
msgid "Creating Mobipocket file from EPUB..." msgid "Creating Mobipocket file from EPUB..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:504 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:509
msgid "%prog [options] myebook.mobi" msgid "%prog [options] myebook.mobi"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:528 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:533
msgid "Raw MOBI HTML saved in" msgid "Raw MOBI HTML saved in"
msgstr "" msgstr ""
@ -2033,7 +2034,7 @@ msgid "Adding books to database..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:694 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
msgid "Reading metadata..." msgid "Reading metadata..."
msgstr "" msgstr ""
@ -2259,7 +2260,7 @@ msgid "Access log:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:406
msgid "Failed to start content server" msgid "Failed to start content server"
msgstr "" msgstr ""
@ -2683,7 +2684,7 @@ msgid " is not a valid picture"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "Cannot convert" msgid "Cannot convert"
msgstr "" msgstr ""
@ -3358,47 +3359,52 @@ msgstr ""
msgid "A&utomatically set author sort" msgid "A&utomatically set author sort"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118
msgid "No format selected"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
msgid "Could not read metadata" msgid "Could not read metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129
msgid "Could not read metadata from %s format" msgid "Could not read metadata from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
msgid "Could not read cover" msgid "Could not read cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:138
msgid "Could not read cover from %s format" msgid "Could not read cover from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:144
msgid "The cover in the %s format is invalid" msgid "The cover in the %s format is invalid"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:323
msgid "" msgid ""
"<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you " "<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you "
"do not have one, you can <a href='http://www.librarything.com'>register</a> " "do not have one, you can <a href='http://www.librarything.com'>register</a> "
"for free!.</p>" "for free!.</p>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "<b>Could not fetch cover.</b><br/>" msgid "<b>Could not fetch cover.</b><br/>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "Could not fetch cover" msgid "Could not fetch cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "Cannot fetch cover" msgid "Cannot fetch cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "You must specify the ISBN identifier for this book." msgid "You must specify the ISBN identifier for this book."
msgstr "" msgstr ""
@ -3558,9 +3564,9 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809 #: /home/kovid/work/calibre/src/calibre/library/database2.py:810
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813 #: /home/kovid/work/calibre/src/calibre/library/database2.py:814
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
msgid "News" msgid "News"
msgstr "" msgstr ""
@ -4244,7 +4250,7 @@ msgid "Save to disk in a single directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:193 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:193
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1248 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "" msgstr ""
@ -4282,31 +4288,31 @@ msgid "Bad database location"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:290
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1388 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1395
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:440 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:445
msgid "Browse by covers" msgid "Browse by covers"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
msgid "Device: " msgid "Device: "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
msgid " detected." msgid " detected."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
msgid "Connected " msgid "Connected "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:563 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:569
msgid "Device database corrupted" msgid "Device database corrupted"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
msgid "" msgid ""
"\n" "\n"
" <p>The database of books on the reader is corrupted. Try the " " <p>The database of books on the reader is corrupted. Try the "
@ -4322,276 +4328,276 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
msgid "Books" msgid "Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
msgid "EPUB Books" msgid "EPUB Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
msgid "LRF Books" msgid "LRF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
msgid "HTML Books" msgid "HTML Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
msgid "LIT Books" msgid "LIT Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
msgid "MOBI Books" msgid "MOBI Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
msgid "Text books" msgid "Text books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
msgid "PDF Books" msgid "PDF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
msgid "Comics" msgid "Comics"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
msgid "Archives" msgid "Archives"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
msgid "Adding books..." msgid "Adding books..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:735 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:742
msgid "No space on device" msgid "No space on device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
msgid "" msgid ""
"<p>Cannot upload books to device there is no more free space available " "<p>Cannot upload books to device there is no more free space available "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "No books selected" msgid "No books selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:887 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:894
msgid "Sending news to device." msgid "Sending news to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:941 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:948
msgid "Sending books to device." msgid "Sending books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:944 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:951
msgid "No suitable formats" msgid "No suitable formats"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
msgid "" msgid ""
"Could not upload the following books to the device, as no suitable formats " "Could not upload the following books to the device, as no suitable formats "
"were found:<br><ul>%s</ul>" "were found:<br><ul>%s</ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:973
msgid "Saving to disk..." msgid "Saving to disk..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
msgid "Saved" msgid "Saved"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:977 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:984
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
msgid "" msgid ""
"<p>Could not save the following books to disk, because the %s format is not " "<p>Could not save the following books to disk, because the %s format is not "
"available for them:<ul>" "available for them:<ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:995 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1002
msgid "Could not save some ebooks" msgid "Could not save some ebooks"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1024
msgid "Fetching news from " msgid "Fetching news from "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
msgid " fetched." msgid " fetched."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
msgid "No book selected" msgid "No book selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
msgid "Cannot view" msgid "Cannot view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1201 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1208
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure" msgid "Cannot configure"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
msgid "Copying database" msgid "Copying database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1259 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1266
msgid "Copying library to " msgid "Copying library to "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
msgid "Invalid database" msgid "Invalid database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
msgid "" msgid ""
"<p>An invalid database already exists at %s, delete it before trying to move " "<p>An invalid database already exists at %s, delete it before trying to move "
"the existing database.<br>Error: %s" "the existing database.<br>Error: %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1283
msgid "Could not move database" msgid "Could not move database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1296 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1303
msgid "No detailed info available" msgid "No detailed info available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1297 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1304
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1340 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1347
msgid "Error talking to device" msgid "Error talking to device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
msgid "Conversion Error" msgid "Conversion Error"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using 3rd party tools." "first remove the DRM using 3rd party tools."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1454 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1461
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" 'Quitting may cause corruption on the device.<br>\n" " 'Quitting may cause corruption on the device.<br>\n"
" 'Are you sure you want to quit?" " 'Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "" msgid ""
"%s has been updated to version %s. See the <a " "%s has been updated to version %s. See the <a "
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
"Visit the download page?" "Visit the download page?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "Update available" msgid "Update available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1531 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1538
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1533 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1540
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1535 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1542
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "" msgstr ""
@ -5331,20 +5337,20 @@ msgid ""
"For help on an individual command: %%prog command --help\n" "For help on an individual command: %%prog command --help\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1221 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1228
msgid "<p>Copying books to %s<br><center>" msgid "<p>Copying books to %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
msgid "Copying <b>%s</b>" msgid "Copying <b>%s</b>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1314 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1321
msgid "<p>Migrating old database to ebook library in %s<br><center>" msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
msgid "Compacting database" msgid "Compacting database"
msgstr "" msgstr ""
@ -5375,39 +5381,39 @@ msgstr "%sBruksområde%s: %s\n"
msgid "Created by " msgid "Created by "
msgstr "Utviklet av " msgstr "Utviklet av "
#: /home/kovid/work/calibre/src/calibre/utils/config.py:531 #: /home/kovid/work/calibre/src/calibre/utils/config.py:536
msgid "Path to the database in which books are stored" msgid "Path to the database in which books are stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:533 #: /home/kovid/work/calibre/src/calibre/utils/config.py:538
msgid "Pattern to guess metadata from filenames" msgid "Pattern to guess metadata from filenames"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:535 #: /home/kovid/work/calibre/src/calibre/utils/config.py:540
msgid "Access key for isbndb.com" msgid "Access key for isbndb.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:537 #: /home/kovid/work/calibre/src/calibre/utils/config.py:542
msgid "Default timeout for network operations (seconds)" msgid "Default timeout for network operations (seconds)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:539 #: /home/kovid/work/calibre/src/calibre/utils/config.py:544
msgid "Path to directory in which your library of books is stored" msgid "Path to directory in which your library of books is stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:541 #: /home/kovid/work/calibre/src/calibre/utils/config.py:546
msgid "The language in which to display the user interface" msgid "The language in which to display the user interface"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:543 #: /home/kovid/work/calibre/src/calibre/utils/config.py:548
msgid "The default output format for ebook conversions." msgid "The default output format for ebook conversions."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:545 #: /home/kovid/work/calibre/src/calibre/utils/config.py:550
msgid "Read metadata from files" msgid "Read metadata from files"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:547 #: /home/kovid/work/calibre/src/calibre/utils/config.py:552
msgid "The priority of worker processes" msgid "The priority of worker processes"
msgstr "" msgstr ""
@ -5450,28 +5456,28 @@ msgid "Customize the download engine"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:460
msgid "" msgid ""
"Timeout in seconds to wait for a response from the server. Default: %default " "Timeout in seconds to wait for a response from the server. Default: %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
msgid "" msgid ""
"Minimum interval in seconds between consecutive fetches. Default is %default " "Minimum interval in seconds between consecutive fetches. Default is %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470
msgid "" msgid ""
"The character encoding for the websites you are trying to download. The " "The character encoding for the websites you are trying to download. The "
"default is to try and guess the encoding." "default is to try and guess the encoding."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
msgid "" msgid ""
"Only links that match this regular expression will be followed. This option " "Only links that match this regular expression will be followed. This option "
"can be specified multiple times, in which case as long as a link matches any " "can be specified multiple times, in which case as long as a link matches any "
@ -5479,7 +5485,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
msgid "" msgid ""
"Any link that matches this regular expression will be ignored. This option " "Any link that matches this regular expression will be ignored. This option "
"can be specified multiple times, in which case as long as any regexp matches " "can be specified multiple times, in which case as long as any regexp matches "
@ -5489,7 +5495,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476
msgid "Do not download CSS stylesheets." msgid "Do not download CSS stylesheets."
msgstr "" msgstr ""
@ -5676,12 +5682,12 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:63 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:21
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64
@ -5694,11 +5700,13 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:13
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chicago_breaking_news.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
@ -5772,17 +5780,17 @@ msgstr ""
msgid "English" msgid "English"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:29
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:19 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:27
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
msgid "Serbian" msgid "Serbian"
msgstr "" msgstr ""
@ -5814,34 +5822,34 @@ msgstr ""
msgid "German" msgid "German"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:23 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:22
msgid "Croatian" msgid "Croatian"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
msgid "" msgid ""
"%prog URL\n" "%prog URL\n"
"\n" "\n"
"Where URL is for example http://google.com" "Where URL is for example http://google.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:455 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:457
msgid "Base directory into which URL is saved. Default is %default" msgid "Base directory into which URL is saved. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
msgid "" msgid ""
"Maximum number of levels to recurse i.e. depth of links to follow. Default " "Maximum number of levels to recurse i.e. depth of links to follow. Default "
"%default" "%default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
msgid "" msgid ""
"The maximum number of files to download. This only applies to files from <a " "The maximum number of files to download. This only applies to files from <a "
"href> tags. Default is %default" "href> tags. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477
msgid "Show detailed output information. Useful for debugging" msgid "Show detailed output information. Useful for debugging"
msgstr "" msgstr ""

View File

@ -7,14 +7,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: de\n" "Project-Id-Version: de\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-02-11 03:58+0000\n" "POT-Creation-Date: 2009-02-13 20:29+0000\n"
"PO-Revision-Date: 2009-01-27 09:45+0000\n" "PO-Revision-Date: 2009-01-27 09:45+0000\n"
"Last-Translator: S. Dorscht <Unknown>\n" "Last-Translator: S. Dorscht <Unknown>\n"
"Language-Team: American English <kde-i18n-doc@lists.kde.org>\n" "Language-Team: American English <kde-i18n-doc@lists.kde.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-02-13 19:24+0000\n" "X-Launchpad-Export-Date: 2009-02-18 20:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
"Generated-By: pygettext.py 1.5\n" "Generated-By: pygettext.py 1.5\n"
@ -58,7 +58,7 @@ msgstr "Macht gar nix"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:487
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574
@ -79,20 +79,21 @@ msgstr "Macht gar nix"
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:894 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:894
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:933 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:940
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123
#: /home/kovid/work/calibre/src/calibre/library/cli.py:257 #: /home/kovid/work/calibre/src/calibre/library/cli.py:257
#: /home/kovid/work/calibre/src/calibre/library/database.py:916 #: /home/kovid/work/calibre/src/calibre/library/database.py:916
#: /home/kovid/work/calibre/src/calibre/library/database2.py:472 #: /home/kovid/work/calibre/src/calibre/library/database2.py:473
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484 #: /home/kovid/work/calibre/src/calibre/library/database2.py:485
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865 #: /home/kovid/work/calibre/src/calibre/library/database2.py:866
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900 #: /home/kovid/work/calibre/src/calibre/library/database2.py:901
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1408
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459
#: /home/kovid/work/calibre/src/calibre/library/server.py:315 #: /home/kovid/work/calibre/src/calibre/library/server.py:315
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51
msgid "Unknown" msgid "Unknown"
@ -725,7 +726,7 @@ msgid "%prog [options] LITFILE"
msgstr "%prog [options] LITFILE" msgstr "%prog [options] LITFILE"
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:506 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
msgid "Output directory. Defaults to current directory." msgid "Output directory. Defaults to current directory."
msgstr "Ausgabeverzeichnis. Voreinstellung ist aktuelles Verzeichnis." msgstr "Ausgabeverzeichnis. Voreinstellung ist aktuelles Verzeichnis."
@ -742,7 +743,7 @@ msgid "Useful for debugging."
msgstr "Hilfreich bei der Fehlersuche." msgstr "Hilfreich bei der Fehlersuche."
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:530 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:535
msgid "OEB ebook created in" msgid "OEB ebook created in"
msgstr "OEB eBook erstellt in" msgstr "OEB eBook erstellt in"
@ -1905,11 +1906,11 @@ msgstr "Benutzung: rb-meta file.rb"
msgid "Creating Mobipocket file from EPUB..." msgid "Creating Mobipocket file from EPUB..."
msgstr "Erstelle Mobipocket Datei aus EPUB..." msgstr "Erstelle Mobipocket Datei aus EPUB..."
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:504 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:509
msgid "%prog [options] myebook.mobi" msgid "%prog [options] myebook.mobi"
msgstr "%prog [options] dateiname.mobi" msgstr "%prog [options] dateiname.mobi"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:528 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:533
msgid "Raw MOBI HTML saved in" msgid "Raw MOBI HTML saved in"
msgstr "Original MOBI HTML gespeichert in" msgstr "Original MOBI HTML gespeichert in"
@ -2228,7 +2229,7 @@ msgid "Adding books to database..."
msgstr "Füge Bücher zur Datenbank hinzu..." msgstr "Füge Bücher zur Datenbank hinzu..."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:694 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
msgid "Reading metadata..." msgid "Reading metadata..."
msgstr "Lese Metadaten..." msgstr "Lese Metadaten..."
@ -2459,7 +2460,7 @@ msgid "Access log:"
msgstr "Zugriffs-Protokolldatei:" msgstr "Zugriffs-Protokolldatei:"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:406
msgid "Failed to start content server" msgid "Failed to start content server"
msgstr "Content Server konnte nicht gestartet werden" msgstr "Content Server konnte nicht gestartet werden"
@ -2917,7 +2918,7 @@ msgid " is not a valid picture"
msgstr " ist kein gültiges Bild" msgstr " ist kein gültiges Bild"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "Cannot convert" msgid "Cannot convert"
msgstr "Konvertierung nicht möglich" msgstr "Konvertierung nicht möglich"
@ -3638,28 +3639,33 @@ msgstr "&Format entfernen:"
msgid "A&utomatically set author sort" msgid "A&utomatically set author sort"
msgstr "Automatisch Sortierung nach Autor setzen" msgstr "Automatisch Sortierung nach Autor setzen"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118
msgid "No format selected"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
msgid "Could not read metadata" msgid "Could not read metadata"
msgstr "Konnte Metadaten nicht lesen" msgstr "Konnte Metadaten nicht lesen"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129
msgid "Could not read metadata from %s format" msgid "Could not read metadata from %s format"
msgstr "Konnte Metadaten des Formats %s nicht lesen" msgstr "Konnte Metadaten des Formats %s nicht lesen"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
msgid "Could not read cover" msgid "Could not read cover"
msgstr "Konnte Umschlagbild nicht lesen" msgstr "Konnte Umschlagbild nicht lesen"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:138
msgid "Could not read cover from %s format" msgid "Could not read cover from %s format"
msgstr "Konnte Umschlagbild des Formats %s nicht lesen" msgstr "Konnte Umschlagbild des Formats %s nicht lesen"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:144
msgid "The cover in the %s format is invalid" msgid "The cover in the %s format is invalid"
msgstr "Das Umschlagbild im Format %s ist ungültig" msgstr "Das Umschlagbild im Format %s ist ungültig"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:323
msgid "" msgid ""
"<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you " "<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you "
"do not have one, you can <a href='http://www.librarything.com'>register</a> " "do not have one, you can <a href='http://www.librarything.com'>register</a> "
@ -3669,19 +3675,19 @@ msgstr ""
"<b>LibraryThing.com</b> an. <br/>Insofern Sie dies nicht besitzen, können " "<b>LibraryThing.com</b> an. <br/>Insofern Sie dies nicht besitzen, können "
"Sie sich kostenlos <a href='http://www.librarything.com'>anmelden</a>! </p>" "Sie sich kostenlos <a href='http://www.librarything.com'>anmelden</a>! </p>"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "<b>Could not fetch cover.</b><br/>" msgid "<b>Could not fetch cover.</b><br/>"
msgstr "<b>Konnte kein Umschlagbild abrufen.</b><br/>" msgstr "<b>Konnte kein Umschlagbild abrufen.</b><br/>"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "Could not fetch cover" msgid "Could not fetch cover"
msgstr "Konnte kein Umschlagbild abrufen" msgstr "Konnte kein Umschlagbild abrufen"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "Cannot fetch cover" msgid "Cannot fetch cover"
msgstr "Kann kein Umschlagbild abrufen" msgstr "Kann kein Umschlagbild abrufen"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "You must specify the ISBN identifier for this book." msgid "You must specify the ISBN identifier for this book."
msgstr "Sie müssen die ISBN für dieses Buch angeben." msgstr "Sie müssen die ISBN für dieses Buch angeben."
@ -3844,9 +3850,9 @@ msgstr "Neue individuelle Nachrichtenquelle hinzufügen"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809 #: /home/kovid/work/calibre/src/calibre/library/database2.py:810
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813 #: /home/kovid/work/calibre/src/calibre/library/database2.py:814
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
msgid "News" msgid "News"
msgstr "Nachrichten" msgstr "Nachrichten"
@ -4593,7 +4599,7 @@ msgid "Save to disk in a single directory"
msgstr "Auf Festplatte in ein einziges Verzeichnis speichern" msgstr "Auf Festplatte in ein einziges Verzeichnis speichern"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:193 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:193
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1248 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "Nur das %s Format auf Festplatte speichern" msgstr "Nur das %s Format auf Festplatte speichern"
@ -4631,31 +4637,31 @@ msgid "Bad database location"
msgstr "Schlechter Datenbank Standort" msgstr "Schlechter Datenbank Standort"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:290
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1388 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1395
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "Wählen Sie einen Speicherort für Ihre eBook Bibliothek." msgstr "Wählen Sie einen Speicherort für Ihre eBook Bibliothek."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:440 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:445
msgid "Browse by covers" msgid "Browse by covers"
msgstr "Umschlagbilder durchsuchen" msgstr "Umschlagbilder durchsuchen"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
msgid "Device: " msgid "Device: "
msgstr "Gerät: " msgstr "Gerät: "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
msgid " detected." msgid " detected."
msgstr " gefunden." msgstr " gefunden."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
msgid "Connected " msgid "Connected "
msgstr "Angeschlossen: " msgstr "Angeschlossen: "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:563 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:569
msgid "Device database corrupted" msgid "Device database corrupted"
msgstr "Gerätedatenbank ist beschädigt" msgstr "Gerätedatenbank ist beschädigt"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
msgid "" msgid ""
"\n" "\n"
" <p>The database of books on the reader is corrupted. Try the " " <p>The database of books on the reader is corrupted. Try the "
@ -4686,67 +4692,67 @@ msgstr ""
" </ol>\n" " </ol>\n"
" " " "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "Lade Bücher auf das Gerät." msgstr "Lade Bücher auf das Gerät."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
msgid "Books" msgid "Books"
msgstr "Bücher" msgstr "Bücher"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
msgid "EPUB Books" msgid "EPUB Books"
msgstr "EPUB Bücher" msgstr "EPUB Bücher"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
msgid "LRF Books" msgid "LRF Books"
msgstr "LRF Bücher" msgstr "LRF Bücher"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
msgid "HTML Books" msgid "HTML Books"
msgstr "HTML Bücher" msgstr "HTML Bücher"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
msgid "LIT Books" msgid "LIT Books"
msgstr "LIT Bücher" msgstr "LIT Bücher"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
msgid "MOBI Books" msgid "MOBI Books"
msgstr "MOBI Bücher" msgstr "MOBI Bücher"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
msgid "Text books" msgid "Text books"
msgstr "Text Bücher" msgstr "Text Bücher"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
msgid "PDF Books" msgid "PDF Books"
msgstr "PDF Bücher" msgstr "PDF Bücher"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
msgid "Comics" msgid "Comics"
msgstr "Comics" msgstr "Comics"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
msgid "Archives" msgid "Archives"
msgstr "Archive" msgstr "Archive"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
msgid "Adding books..." msgid "Adding books..."
msgstr "Füge Bücher hinzu..." msgstr "Füge Bücher hinzu..."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:735 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:742
msgid "No space on device" msgid "No space on device"
msgstr "Gerätespeicher voll" msgstr "Gerätespeicher voll"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
msgid "" msgid ""
"<p>Cannot upload books to device there is no more free space available " "<p>Cannot upload books to device there is no more free space available "
msgstr "" msgstr ""
"<p>Es können keine Bücher mehr auf das Gerät geladen werden, da der " "<p>Es können keine Bücher mehr auf das Gerät geladen werden, da der "
"Gerätespeicher voll ist " "Gerätespeicher voll ist "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
@ -4754,35 +4760,35 @@ msgstr ""
"Die gewählten Bücher werden <b>dauerhaft gelöscht</b> und die Dateien vom " "Die gewählten Bücher werden <b>dauerhaft gelöscht</b> und die Dateien vom "
"Computer entfernt. Sicher?" "Computer entfernt. Sicher?"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "Lösche Bücher vom Gerät." msgstr "Lösche Bücher vom Gerät."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "Kann Metadaten nicht bearbeiten" msgstr "Kann Metadaten nicht bearbeiten"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "No books selected" msgid "No books selected"
msgstr "Keine Bücher ausgewählt" msgstr "Keine Bücher ausgewählt"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:887 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:894
msgid "Sending news to device." msgid "Sending news to device."
msgstr "Sende Nachrichten an das Gerät." msgstr "Sende Nachrichten an das Gerät."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:941 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:948
msgid "Sending books to device." msgid "Sending books to device."
msgstr "Sende Bücher an das Gerät." msgstr "Sende Bücher an das Gerät."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:944 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:951
msgid "No suitable formats" msgid "No suitable formats"
msgstr "Keine geeigneten Formate" msgstr "Keine geeigneten Formate"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
msgid "" msgid ""
"Could not upload the following books to the device, as no suitable formats " "Could not upload the following books to the device, as no suitable formats "
"were found:<br><ul>%s</ul>" "were found:<br><ul>%s</ul>"
@ -4790,23 +4796,23 @@ msgstr ""
"Die folgenden Bücher konnten nicht auf das Gerät geladen werden, da keine " "Die folgenden Bücher konnten nicht auf das Gerät geladen werden, da keine "
"geeigneten Formate vorhanden sind:<br><ul>%s</ul>" "geeigneten Formate vorhanden sind:<br><ul>%s</ul>"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "Speichern auf Festplatte nicht möglich" msgstr "Speichern auf Festplatte nicht möglich"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:973
msgid "Saving to disk..." msgid "Saving to disk..."
msgstr "Speichere auf Festplatte..." msgstr "Speichere auf Festplatte..."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
msgid "Saved" msgid "Saved"
msgstr "Gespeichert" msgstr "Gespeichert"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:977 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:984
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "Zielverzeichnis auswählen" msgstr "Zielverzeichnis auswählen"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
msgid "" msgid ""
"<p>Could not save the following books to disk, because the %s format is not " "<p>Could not save the following books to disk, because the %s format is not "
"available for them:<ul>" "available for them:<ul>"
@ -4814,64 +4820,64 @@ msgstr ""
"<p>Die folgenden Bücher konnten nicht auf die Festplatte gespeichert werden, " "<p>Die folgenden Bücher konnten nicht auf die Festplatte gespeichert werden, "
"da das %s Format für sie nicht verfügbar ist:<ul>" "da das %s Format für sie nicht verfügbar ist:<ul>"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:995 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1002
msgid "Could not save some ebooks" msgid "Could not save some ebooks"
msgstr "Konnte einige eBooks nicht speichern" msgstr "Konnte einige eBooks nicht speichern"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1024
msgid "Fetching news from " msgid "Fetching news from "
msgstr "Rufe Nachrichten ab von " msgstr "Rufe Nachrichten ab von "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
msgid " fetched." msgid " fetched."
msgstr " abgerufen." msgstr " abgerufen."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
msgid "No book selected" msgid "No book selected"
msgstr "Kein Buch ausgewählt" msgstr "Kein Buch ausgewählt"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
msgid "Cannot view" msgid "Cannot view"
msgstr "Ansehen nicht möglich" msgstr "Ansehen nicht möglich"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "Format zur Vorschau wählen" msgstr "Format zur Vorschau wählen"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "Konnte Verzeichnis nicht öffnen" msgstr "Konnte Verzeichnis nicht öffnen"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1201 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1208
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "%s hat keine verfügbaren Formate." msgstr "%s hat keine verfügbaren Formate."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure" msgid "Cannot configure"
msgstr "Konfiguration nicht möglich" msgstr "Konfiguration nicht möglich"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "Konfiguration nicht möglich während Aufträge abgearbeitet werden." msgstr "Konfiguration nicht möglich während Aufträge abgearbeitet werden."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
msgid "Copying database" msgid "Copying database"
msgstr "Kopiere Datenbank" msgstr "Kopiere Datenbank"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1259 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1266
msgid "Copying library to " msgid "Copying library to "
msgstr "Kopiere Bibliothek nach " msgstr "Kopiere Bibliothek nach "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
msgid "Invalid database" msgid "Invalid database"
msgstr "Ungültige Datenbank" msgstr "Ungültige Datenbank"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
msgid "" msgid ""
"<p>An invalid database already exists at %s, delete it before trying to move " "<p>An invalid database already exists at %s, delete it before trying to move "
"the existing database.<br>Error: %s" "the existing database.<br>Error: %s"
@ -4879,24 +4885,24 @@ msgstr ""
"<p>Es existiert bereits eine ungültige Datenbank in %s, bitte löschen Sie " "<p>Es existiert bereits eine ungültige Datenbank in %s, bitte löschen Sie "
"diese, bevor sie die bestehende Datenbank verschieben.<br>Fehler: %s" "diese, bevor sie die bestehende Datenbank verschieben.<br>Fehler: %s"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1283
msgid "Could not move database" msgid "Could not move database"
msgstr "Konnte Datenbank nicht verschieben" msgstr "Konnte Datenbank nicht verschieben"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1296 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1303
msgid "No detailed info available" msgid "No detailed info available"
msgstr "Es ist keine weitere Information verfügbar" msgstr "Es ist keine weitere Information verfügbar"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1297 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1304
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
"Es sind keine weitere Informationen über Bücher auf dem Gerät verfügbar" "Es sind keine weitere Informationen über Bücher auf dem Gerät verfügbar"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1340 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1347
msgid "Error talking to device" msgid "Error talking to device"
msgstr "Fehler in der Kommunikation zum Gerät" msgstr "Fehler in der Kommunikation zum Gerät"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
@ -4904,13 +4910,13 @@ msgstr ""
"Es trat ein Fehler in der Kommunikation mit dem Gerät auf. Bitte entfernen " "Es trat ein Fehler in der Kommunikation mit dem Gerät auf. Bitte entfernen "
"und schließen Sie das Gerät wieder an und - oder starten Sie neu." "und schließen Sie das Gerät wieder an und - oder starten Sie neu."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
msgid "Conversion Error" msgid "Conversion Error"
msgstr "Konvertierungsfehler" msgstr "Konvertierungsfehler"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using 3rd party tools." "first remove the DRM using 3rd party tools."
@ -4919,7 +4925,7 @@ msgstr ""
"href=\"%s\">DRM</a> geschützt. Sie müssen zunächst das DRM mit einem anderen " "href=\"%s\">DRM</a> geschützt. Sie müssen zunächst das DRM mit einem anderen "
"Programm entfernen." "Programm entfernen."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
@ -4928,12 +4934,12 @@ msgstr ""
"Falls Sie es nützlich finden, sollten Sie eine Spende zur Unterstützung " "Falls Sie es nützlich finden, sollten Sie eine Spende zur Unterstützung "
"seiner Entwicklung in Betracht ziehen." "seiner Entwicklung in Betracht ziehen."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1454 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1461
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "" msgstr ""
"Es bestehen aktive Aufträge. Sind Sie sicher, dass sie es beenden wollen?" "Es bestehen aktive Aufträge. Sind Sie sicher, dass sie es beenden wollen?"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" 'Quitting may cause corruption on the device.<br>\n" " 'Quitting may cause corruption on the device.<br>\n"
@ -4943,11 +4949,11 @@ msgstr ""
" 'Das Beenden könnte das Gerät beschädigen.<br>\n" " 'Das Beenden könnte das Gerät beschädigen.<br>\n"
" 'Wirklich beenden?" " 'Wirklich beenden?"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "WARNUNG: Aktive Aufträge" msgstr "WARNUNG: Aktive Aufträge"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
@ -4955,7 +4961,7 @@ msgstr ""
"wird im System Tray weiter laufen. Zum Schließen wählen Sie <b>Beenden</b> " "wird im System Tray weiter laufen. Zum Schließen wählen Sie <b>Beenden</b> "
"im Kontextmenü des System Tray." "im Kontextmenü des System Tray."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
@ -4963,7 +4969,7 @@ msgstr ""
"<span style=\"color:red; font-weight:bold\">Letzte Version: <a " "<span style=\"color:red; font-weight:bold\">Letzte Version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "" msgid ""
"%s has been updated to version %s. See the <a " "%s has been updated to version %s. See the <a "
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
@ -4973,19 +4979,19 @@ msgstr ""
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">neuen Features</a> an. " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">neuen Features</a> an. "
"Möchten Sie die Download Seite besuchen?" "Möchten Sie die Download Seite besuchen?"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "Update available" msgid "Update available"
msgstr "Neue Version verfügbar" msgstr "Neue Version verfügbar"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1531 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1538
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "Die im angegebenen Pfad sich befindende Bibliothek verwenden" msgstr "Die im angegebenen Pfad sich befindende Bibliothek verwenden"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1533 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1540
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "Minimiert im Systembereich der Kontrollleiste starten." msgstr "Minimiert im Systembereich der Kontrollleiste starten."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1535 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1542
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "Informationen zur Fehlersuche in Konsole aufzeichnen" msgstr "Informationen zur Fehlersuche in Konsole aufzeichnen"
@ -5850,20 +5856,20 @@ msgstr ""
"\n" "\n"
"Sie erhalten Hilfe zu einem bestimmten Befehl mit: %%prog command --help\n" "Sie erhalten Hilfe zu einem bestimmten Befehl mit: %%prog command --help\n"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1221 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1228
msgid "<p>Copying books to %s<br><center>" msgid "<p>Copying books to %s<br><center>"
msgstr "<p>Kopiere Bücher nach %s<br><center>" msgstr "<p>Kopiere Bücher nach %s<br><center>"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
msgid "Copying <b>%s</b>" msgid "Copying <b>%s</b>"
msgstr "Kopiere <b>%s</b>" msgstr "Kopiere <b>%s</b>"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1314 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1321
msgid "<p>Migrating old database to ebook library in %s<br><center>" msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr "<p>Migriere alte Datenbank zu eBook Bibliothek in %s<br><center>" msgstr "<p>Migriere alte Datenbank zu eBook Bibliothek in %s<br><center>"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
msgid "Compacting database" msgid "Compacting database"
msgstr "Komprimiere Datenbank" msgstr "Komprimiere Datenbank"
@ -5898,40 +5904,40 @@ msgstr "%sBenutzung%s: %s\n"
msgid "Created by " msgid "Created by "
msgstr "Erstellt von " msgstr "Erstellt von "
#: /home/kovid/work/calibre/src/calibre/utils/config.py:531 #: /home/kovid/work/calibre/src/calibre/utils/config.py:536
msgid "Path to the database in which books are stored" msgid "Path to the database in which books are stored"
msgstr "Pfad zur Datenbank in der die Bücher gespeichtert sind" msgstr "Pfad zur Datenbank in der die Bücher gespeichtert sind"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:533 #: /home/kovid/work/calibre/src/calibre/utils/config.py:538
msgid "Pattern to guess metadata from filenames" msgid "Pattern to guess metadata from filenames"
msgstr "Verhaltensmuster zum Erraten der Metadaten aus den Dateinamen" msgstr "Verhaltensmuster zum Erraten der Metadaten aus den Dateinamen"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:535 #: /home/kovid/work/calibre/src/calibre/utils/config.py:540
msgid "Access key for isbndb.com" msgid "Access key for isbndb.com"
msgstr "Zugangsschlüssel für isbndb.com" msgstr "Zugangsschlüssel für isbndb.com"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:537 #: /home/kovid/work/calibre/src/calibre/utils/config.py:542
msgid "Default timeout for network operations (seconds)" msgid "Default timeout for network operations (seconds)"
msgstr "" msgstr ""
"Voreinstellung der Zeitüberschreitung bei Netzwerkverbindungen (in Sekunden)" "Voreinstellung der Zeitüberschreitung bei Netzwerkverbindungen (in Sekunden)"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:539 #: /home/kovid/work/calibre/src/calibre/utils/config.py:544
msgid "Path to directory in which your library of books is stored" msgid "Path to directory in which your library of books is stored"
msgstr "Pfad zum Verzeichnis, in dem die Bibliothek gespeichert ist" msgstr "Pfad zum Verzeichnis, in dem die Bibliothek gespeichert ist"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:541 #: /home/kovid/work/calibre/src/calibre/utils/config.py:546
msgid "The language in which to display the user interface" msgid "The language in which to display the user interface"
msgstr "Sprache, in der die Benutzer-Oberfläche dargestellt wird" msgstr "Sprache, in der die Benutzer-Oberfläche dargestellt wird"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:543 #: /home/kovid/work/calibre/src/calibre/utils/config.py:548
msgid "The default output format for ebook conversions." msgid "The default output format for ebook conversions."
msgstr "Das voreingestellte Ausgabeformat für eBook Konvertierungen." msgstr "Das voreingestellte Ausgabeformat für eBook Konvertierungen."
#: /home/kovid/work/calibre/src/calibre/utils/config.py:545 #: /home/kovid/work/calibre/src/calibre/utils/config.py:550
msgid "Read metadata from files" msgid "Read metadata from files"
msgstr "Metadaten aus Dateien lesen" msgstr "Metadaten aus Dateien lesen"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:547 #: /home/kovid/work/calibre/src/calibre/utils/config.py:552
msgid "The priority of worker processes" msgid "The priority of worker processes"
msgstr "Priorität der Arbeitsaufträge" msgstr "Priorität der Arbeitsaufträge"
@ -5976,7 +5982,7 @@ msgid "Customize the download engine"
msgstr "Download-Engine anpassen" msgstr "Download-Engine anpassen"
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:460
msgid "" msgid ""
"Timeout in seconds to wait for a response from the server. Default: %default " "Timeout in seconds to wait for a response from the server. Default: %default "
"s" "s"
@ -5985,7 +5991,7 @@ msgstr ""
"%default s" "%default s"
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
msgid "" msgid ""
"Minimum interval in seconds between consecutive fetches. Default is %default " "Minimum interval in seconds between consecutive fetches. Default is %default "
"s" "s"
@ -5994,7 +6000,7 @@ msgstr ""
"Voreinstellung ist %default s" "Voreinstellung ist %default s"
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470
msgid "" msgid ""
"The character encoding for the websites you are trying to download. The " "The character encoding for the websites you are trying to download. The "
"default is to try and guess the encoding." "default is to try and guess the encoding."
@ -6003,7 +6009,7 @@ msgstr ""
"Voreinstellung wird versucht, die Kodierung zu erraten." "Voreinstellung wird versucht, die Kodierung zu erraten."
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
msgid "" msgid ""
"Only links that match this regular expression will be followed. This option " "Only links that match this regular expression will be followed. This option "
"can be specified multiple times, in which case as long as a link matches any " "can be specified multiple times, in which case as long as a link matches any "
@ -6015,7 +6021,7 @@ msgstr ""
"Links verfolgt." "Links verfolgt."
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
msgid "" msgid ""
"Any link that matches this regular expression will be ignored. This option " "Any link that matches this regular expression will be ignored. This option "
"can be specified multiple times, in which case as long as any regexp matches " "can be specified multiple times, in which case as long as any regexp matches "
@ -6030,7 +6036,7 @@ msgstr ""
"sind, wird --filter-regexp zuerst angewendet." "sind, wird --filter-regexp zuerst angewendet."
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476
msgid "Do not download CSS stylesheets." msgid "Do not download CSS stylesheets."
msgstr "Lade CSS Stylesheets nicht herunter." msgstr "Lade CSS Stylesheets nicht herunter."
@ -6257,12 +6263,12 @@ msgstr "Rufe Feed ab"
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:63 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:21
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64
@ -6275,11 +6281,13 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:13
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chicago_breaking_news.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
@ -6353,17 +6361,17 @@ msgstr ""
msgid "English" msgid "English"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:29
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:19 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:27
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
msgid "Serbian" msgid "Serbian"
msgstr "" msgstr ""
@ -6395,11 +6403,11 @@ msgstr ""
msgid "German" msgid "German"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:23 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:22
msgid "Croatian" msgid "Croatian"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
msgid "" msgid ""
"%prog URL\n" "%prog URL\n"
"\n" "\n"
@ -6409,13 +6417,13 @@ msgstr ""
"\n" "\n"
"URL ist z.B. http://google.com" "URL ist z.B. http://google.com"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:455 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:457
msgid "Base directory into which URL is saved. Default is %default" msgid "Base directory into which URL is saved. Default is %default"
msgstr "" msgstr ""
"Grundverzeichnis, in das die URL gespeichert wird. Voreinstellung ist " "Grundverzeichnis, in das die URL gespeichert wird. Voreinstellung ist "
"%default" "%default"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
msgid "" msgid ""
"Maximum number of levels to recurse i.e. depth of links to follow. Default " "Maximum number of levels to recurse i.e. depth of links to follow. Default "
"%default" "%default"
@ -6423,7 +6431,7 @@ msgstr ""
"Maximale Zahl von einbezogenen Ebenen, z.B. Tiefe der Links, die verfolgt " "Maximale Zahl von einbezogenen Ebenen, z.B. Tiefe der Links, die verfolgt "
"werden. Voreinstellung %default" "werden. Voreinstellung %default"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
msgid "" msgid ""
"The maximum number of files to download. This only applies to files from <a " "The maximum number of files to download. This only applies to files from <a "
"href> tags. Default is %default" "href> tags. Default is %default"
@ -6431,7 +6439,7 @@ msgstr ""
"Höchstzahl der Dateien, die geladen werden. Dies trifft nur auf Dateien aus " "Höchstzahl der Dateien, die geladen werden. Dies trifft nur auf Dateien aus "
"<a href> Tags zu. Voreinstellung ist %default" "<a href> Tags zu. Voreinstellung ist %default"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477
msgid "Show detailed output information. Useful for debugging" msgid "Show detailed output information. Useful for debugging"
msgstr "Zeige detailierte Ausgabeinformation. Hilfreich zur Fehlersuche." msgstr "Zeige detailierte Ausgabeinformation. Hilfreich zur Fehlersuche."

View File

@ -7,14 +7,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre\n" "Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-02-11 03:58+0000\n" "POT-Creation-Date: 2009-02-13 20:29+0000\n"
"PO-Revision-Date: 2008-09-04 01:49+0000\n" "PO-Revision-Date: 2008-09-04 01:49+0000\n"
"Last-Translator: Marc van den Dikkenberg <Unknown>\n" "Last-Translator: Marc van den Dikkenberg <Unknown>\n"
"Language-Team: Dutch <nl@li.org>\n" "Language-Team: Dutch <nl@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-02-13 19:24+0000\n" "X-Launchpad-Export-Date: 2009-02-18 20:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41
@ -57,7 +57,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:487
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574
@ -78,20 +78,21 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:894 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:894
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:933 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:940
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123
#: /home/kovid/work/calibre/src/calibre/library/cli.py:257 #: /home/kovid/work/calibre/src/calibre/library/cli.py:257
#: /home/kovid/work/calibre/src/calibre/library/database.py:916 #: /home/kovid/work/calibre/src/calibre/library/database.py:916
#: /home/kovid/work/calibre/src/calibre/library/database2.py:472 #: /home/kovid/work/calibre/src/calibre/library/database2.py:473
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484 #: /home/kovid/work/calibre/src/calibre/library/database2.py:485
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865 #: /home/kovid/work/calibre/src/calibre/library/database2.py:866
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900 #: /home/kovid/work/calibre/src/calibre/library/database2.py:901
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1408
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459
#: /home/kovid/work/calibre/src/calibre/library/server.py:315 #: /home/kovid/work/calibre/src/calibre/library/server.py:315
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51
msgid "Unknown" msgid "Unknown"
@ -618,7 +619,7 @@ msgid "%prog [options] LITFILE"
msgstr "%prog [opties] LITBESTAND" msgstr "%prog [opties] LITBESTAND"
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:506 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
msgid "Output directory. Defaults to current directory." msgid "Output directory. Defaults to current directory."
msgstr "Output folder. Standaard is dit de huidige folder." msgstr "Output folder. Standaard is dit de huidige folder."
@ -635,7 +636,7 @@ msgid "Useful for debugging."
msgstr "Handig voor Debugging" msgstr "Handig voor Debugging"
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:530 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:535
msgid "OEB ebook created in" msgid "OEB ebook created in"
msgstr "OEB boek bemaakt in" msgstr "OEB boek bemaakt in"
@ -1756,11 +1757,11 @@ msgstr ""
msgid "Creating Mobipocket file from EPUB..." msgid "Creating Mobipocket file from EPUB..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:504 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:509
msgid "%prog [options] myebook.mobi" msgid "%prog [options] myebook.mobi"
msgstr "%prog [opties] mijnboek.mobi" msgstr "%prog [opties] mijnboek.mobi"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:528 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:533
msgid "Raw MOBI HTML saved in" msgid "Raw MOBI HTML saved in"
msgstr "RAW MOBI HTML bewaard in" msgstr "RAW MOBI HTML bewaard in"
@ -2058,7 +2059,7 @@ msgid "Adding books to database..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:694 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
msgid "Reading metadata..." msgid "Reading metadata..."
msgstr "" msgstr ""
@ -2284,7 +2285,7 @@ msgid "Access log:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:406
msgid "Failed to start content server" msgid "Failed to start content server"
msgstr "" msgstr ""
@ -2712,7 +2713,7 @@ msgid " is not a valid picture"
msgstr " is geen geldige afbeelding" msgstr " is geen geldige afbeelding"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "Cannot convert" msgid "Cannot convert"
msgstr "Kan niet converteren" msgstr "Kan niet converteren"
@ -3415,28 +3416,33 @@ msgstr ""
msgid "A&utomatically set author sort" msgid "A&utomatically set author sort"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118
msgid "No format selected"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
msgid "Could not read metadata" msgid "Could not read metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129
msgid "Could not read metadata from %s format" msgid "Could not read metadata from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
msgid "Could not read cover" msgid "Could not read cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:138
msgid "Could not read cover from %s format" msgid "Could not read cover from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:144
msgid "The cover in the %s format is invalid" msgid "The cover in the %s format is invalid"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:323
msgid "" msgid ""
"<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you " "<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you "
"do not have one, you can <a href='http://www.librarything.com'>register</a> " "do not have one, you can <a href='http://www.librarything.com'>register</a> "
@ -3446,19 +3452,19 @@ msgstr ""
"<br/>Als u deze niet heeft, dan kunt u er gratis een krijgen door te <a " "<br/>Als u deze niet heeft, dan kunt u er gratis een krijgen door te <a "
"href='http://www.librarything.com'>registreren</a></p>" "href='http://www.librarything.com'>registreren</a></p>"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "<b>Could not fetch cover.</b><br/>" msgid "<b>Could not fetch cover.</b><br/>"
msgstr "<b>Omslag kon niet worden gedownload</b><br/>" msgstr "<b>Omslag kon niet worden gedownload</b><br/>"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "Could not fetch cover" msgid "Could not fetch cover"
msgstr "Omslag kon niet worden gedownload" msgstr "Omslag kon niet worden gedownload"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "Cannot fetch cover" msgid "Cannot fetch cover"
msgstr "Kan omslag niet downloaden" msgstr "Kan omslag niet downloaden"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "You must specify the ISBN identifier for this book." msgid "You must specify the ISBN identifier for this book."
msgstr "Het ISBN nummer voor dit boek moet worden opgegeven." msgstr "Het ISBN nummer voor dit boek moet worden opgegeven."
@ -3620,9 +3626,9 @@ msgstr "Voeg een persoonlijke nieuwsbron toe"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809 #: /home/kovid/work/calibre/src/calibre/library/database2.py:810
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813 #: /home/kovid/work/calibre/src/calibre/library/database2.py:814
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
msgid "News" msgid "News"
msgstr "" msgstr ""
@ -4334,7 +4340,7 @@ msgid "Save to disk in a single directory"
msgstr "Opslaan op schijf in een enkele folder" msgstr "Opslaan op schijf in een enkele folder"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:193 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:193
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1248 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "Bewaar alleen %s formaat op schijf" msgstr "Bewaar alleen %s formaat op schijf"
@ -4372,31 +4378,31 @@ msgid "Bad database location"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:290
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1388 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1395
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "Kies een locatie voor de eboek bibliotheek" msgstr "Kies een locatie voor de eboek bibliotheek"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:440 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:445
msgid "Browse by covers" msgid "Browse by covers"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
msgid "Device: " msgid "Device: "
msgstr "Apparaat: " msgstr "Apparaat: "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
msgid " detected." msgid " detected."
msgstr " gedetecteerd" msgstr " gedetecteerd"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
msgid "Connected " msgid "Connected "
msgstr "Verbonden " msgstr "Verbonden "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:563 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:569
msgid "Device database corrupted" msgid "Device database corrupted"
msgstr "Apparaat Database Beschadigd" msgstr "Apparaat Database Beschadigd"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
msgid "" msgid ""
"\n" "\n"
" <p>The database of books on the reader is corrupted. Try the " " <p>The database of books on the reader is corrupted. Try the "
@ -4425,101 +4431,101 @@ msgstr ""
" </ol>\n" " </ol>\n"
" " " "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "Boeken worden geupload naar de lezer." msgstr "Boeken worden geupload naar de lezer."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
msgid "Books" msgid "Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
msgid "EPUB Books" msgid "EPUB Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
msgid "LRF Books" msgid "LRF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
msgid "HTML Books" msgid "HTML Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
msgid "LIT Books" msgid "LIT Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
msgid "MOBI Books" msgid "MOBI Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
msgid "Text books" msgid "Text books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
msgid "PDF Books" msgid "PDF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
msgid "Comics" msgid "Comics"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
msgid "Archives" msgid "Archives"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
msgid "Adding books..." msgid "Adding books..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:735 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:742
msgid "No space on device" msgid "No space on device"
msgstr "Geen schijfruimte op de lezer." msgstr "Geen schijfruimte op de lezer."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
msgid "" msgid ""
"<p>Cannot upload books to device there is no more free space available " "<p>Cannot upload books to device there is no more free space available "
msgstr "" msgstr ""
"<p>De boeken kunnen niet worden geupload naar de lezer, omdat er onvoldoende " "<p>De boeken kunnen niet worden geupload naar de lezer, omdat er onvoldoende "
"schijfruimte beschikbaar is " "schijfruimte beschikbaar is "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "Boeken worden verwijderd van de lezer." msgstr "Boeken worden verwijderd van de lezer."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "Metedata kan niet worden gewijzigd" msgstr "Metedata kan niet worden gewijzigd"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "No books selected" msgid "No books selected"
msgstr "Geen boeken geselecteerd" msgstr "Geen boeken geselecteerd"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:887 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:894
msgid "Sending news to device." msgid "Sending news to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:941 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:948
msgid "Sending books to device." msgid "Sending books to device."
msgstr "Boeken worden naar de lezer verzonden." msgstr "Boeken worden naar de lezer verzonden."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:944 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:951
msgid "No suitable formats" msgid "No suitable formats"
msgstr "Geen geschikte formaten" msgstr "Geen geschikte formaten"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
msgid "" msgid ""
"Could not upload the following books to the device, as no suitable formats " "Could not upload the following books to the device, as no suitable formats "
"were found:<br><ul>%s</ul>" "were found:<br><ul>%s</ul>"
@ -4527,23 +4533,23 @@ msgstr ""
"De volgende boeken konden niet naar de lezer worden deupload, omdat geen " "De volgende boeken konden niet naar de lezer worden deupload, omdat geen "
"geschikt formaat werd gevonden:<br><ul>%s</ul>" "geschikt formaat werd gevonden:<br><ul>%s</ul>"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "Kan niet naar schijf worden opgeslagen" msgstr "Kan niet naar schijf worden opgeslagen"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:973
msgid "Saving to disk..." msgid "Saving to disk..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
msgid "Saved" msgid "Saved"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:977 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:984
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
msgid "" msgid ""
"<p>Could not save the following books to disk, because the %s format is not " "<p>Could not save the following books to disk, because the %s format is not "
"available for them:<ul>" "available for them:<ul>"
@ -4551,64 +4557,64 @@ msgstr ""
"<p>De volgende boeken konden niet worden bewaard op schijf, omdat het %s " "<p>De volgende boeken konden niet worden bewaard op schijf, omdat het %s "
"formaat niet beschikbaar is:<ul>" "formaat niet beschikbaar is:<ul>"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:995 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1002
msgid "Could not save some ebooks" msgid "Could not save some ebooks"
msgstr "Sommige boeken konden niet worden opgeslagen" msgstr "Sommige boeken konden niet worden opgeslagen"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1024
msgid "Fetching news from " msgid "Fetching news from "
msgstr "Downloading nieuws van " msgstr "Downloading nieuws van "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
msgid " fetched." msgid " fetched."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
msgid "No book selected" msgid "No book selected"
msgstr "Geen boek geselecteerd" msgstr "Geen boek geselecteerd"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
msgid "Cannot view" msgid "Cannot view"
msgstr "Kan niet bekijken" msgstr "Kan niet bekijken"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "Kies het te bekijken formaat" msgstr "Kies het te bekijken formaat"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1201 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1208
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "%s heeft geen beschikbare formaten" msgstr "%s heeft geen beschikbare formaten"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure" msgid "Cannot configure"
msgstr "Kan niet configureren" msgstr "Kan niet configureren"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "Can niet configueren terwijl bestaande opdrachten bezig zijn" msgstr "Can niet configueren terwijl bestaande opdrachten bezig zijn"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
msgid "Copying database" msgid "Copying database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1259 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1266
msgid "Copying library to " msgid "Copying library to "
msgstr "Copieer bibliotheek naar " msgstr "Copieer bibliotheek naar "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
msgid "Invalid database" msgid "Invalid database"
msgstr "ongeldige database" msgstr "ongeldige database"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
msgid "" msgid ""
"<p>An invalid database already exists at %s, delete it before trying to move " "<p>An invalid database already exists at %s, delete it before trying to move "
"the existing database.<br>Error: %s" "the existing database.<br>Error: %s"
@ -4616,23 +4622,23 @@ msgstr ""
"<p>Een ongeldige database bestaat op %s, verwijder deze voordat je probeert " "<p>Een ongeldige database bestaat op %s, verwijder deze voordat je probeert "
"de bestaande database te verplaatsen.<br>Foutmelding: %s" "de bestaande database te verplaatsen.<br>Foutmelding: %s"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1283
msgid "Could not move database" msgid "Could not move database"
msgstr "Database kon niet worden verplaatst" msgstr "Database kon niet worden verplaatst"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1296 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1303
msgid "No detailed info available" msgid "No detailed info available"
msgstr "Geen details beschikbaar" msgstr "Geen details beschikbaar"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1297 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1304
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "Geen details zijn beschikbaar voor de boeken op de lezer." msgstr "Geen details zijn beschikbaar voor de boeken op de lezer."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1340 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1347
msgid "Error talking to device" msgid "Error talking to device"
msgstr "Fout bij communicatie met lezer" msgstr "Fout bij communicatie met lezer"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
@ -4640,46 +4646,46 @@ msgstr ""
"Er is een tijdelijke fout opgetreden tijdens de communicatie met de lezer. " "Er is een tijdelijke fout opgetreden tijdens de communicatie met de lezer. "
"verwijzer de lezer en plug hem opnieuw in, of herstart." "verwijzer de lezer en plug hem opnieuw in, of herstart."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
msgid "Conversion Error" msgid "Conversion Error"
msgstr "Converteer Fout" msgstr "Converteer Fout"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using 3rd party tools." "first remove the DRM using 3rd party tools."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1454 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1461
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" 'Quitting may cause corruption on the device.<br>\n" " 'Quitting may cause corruption on the device.<br>\n"
" 'Are you sure you want to quit?" " 'Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
@ -4687,7 +4693,7 @@ msgstr ""
"<span style=\"color:red; font-weight:bold\">Laatste versie: <a " "<span style=\"color:red; font-weight:bold\">Laatste versie: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "" msgid ""
"%s has been updated to version %s. See the <a " "%s has been updated to version %s. See the <a "
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
@ -4697,19 +4703,19 @@ msgstr ""
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">nieuwe functies</a> " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">nieuwe functies</a> "
"Bezoek download pagina?" "Bezoek download pagina?"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "Update available" msgid "Update available"
msgstr "Update beschikbaar" msgstr "Update beschikbaar"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1531 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1538
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1533 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1540
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1535 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1542
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "" msgstr ""
@ -5529,20 +5535,20 @@ msgstr ""
"\n" "\n"
"Voor help met een specifiek commando: %%prog command --help\n" "Voor help met een specifiek commando: %%prog command --help\n"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1221 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1228
msgid "<p>Copying books to %s<br><center>" msgid "<p>Copying books to %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
msgid "Copying <b>%s</b>" msgid "Copying <b>%s</b>"
msgstr "Copieer <b>%s</b>" msgstr "Copieer <b>%s</b>"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1314 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1321
msgid "<p>Migrating old database to ebook library in %s<br><center>" msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr "<p>Migreer oude database naar eboek bibliotheek in %s<br><center>" msgstr "<p>Migreer oude database naar eboek bibliotheek in %s<br><center>"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
msgid "Compacting database" msgid "Compacting database"
msgstr "Comprimeren database" msgstr "Comprimeren database"
@ -5573,39 +5579,39 @@ msgstr "%sGebruik%s: %s\n"
msgid "Created by " msgid "Created by "
msgstr "Gemaakt door " msgstr "Gemaakt door "
#: /home/kovid/work/calibre/src/calibre/utils/config.py:531 #: /home/kovid/work/calibre/src/calibre/utils/config.py:536
msgid "Path to the database in which books are stored" msgid "Path to the database in which books are stored"
msgstr "Pad naar de database waarin boeken zijn opgeslagen" msgstr "Pad naar de database waarin boeken zijn opgeslagen"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:533 #: /home/kovid/work/calibre/src/calibre/utils/config.py:538
msgid "Pattern to guess metadata from filenames" msgid "Pattern to guess metadata from filenames"
msgstr "Patroon om metadata uit bestandsnamen te voorspellen" msgstr "Patroon om metadata uit bestandsnamen te voorspellen"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:535 #: /home/kovid/work/calibre/src/calibre/utils/config.py:540
msgid "Access key for isbndb.com" msgid "Access key for isbndb.com"
msgstr "Toegangssleutel voor isbndb.com" msgstr "Toegangssleutel voor isbndb.com"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:537 #: /home/kovid/work/calibre/src/calibre/utils/config.py:542
msgid "Default timeout for network operations (seconds)" msgid "Default timeout for network operations (seconds)"
msgstr "Standaard timeout voor netwerk operaties" msgstr "Standaard timeout voor netwerk operaties"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:539 #: /home/kovid/work/calibre/src/calibre/utils/config.py:544
msgid "Path to directory in which your library of books is stored" msgid "Path to directory in which your library of books is stored"
msgstr "Pad naar folder waarin je bibliotheek is opgeslagen" msgstr "Pad naar folder waarin je bibliotheek is opgeslagen"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:541 #: /home/kovid/work/calibre/src/calibre/utils/config.py:546
msgid "The language in which to display the user interface" msgid "The language in which to display the user interface"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:543 #: /home/kovid/work/calibre/src/calibre/utils/config.py:548
msgid "The default output format for ebook conversions." msgid "The default output format for ebook conversions."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:545 #: /home/kovid/work/calibre/src/calibre/utils/config.py:550
msgid "Read metadata from files" msgid "Read metadata from files"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:547 #: /home/kovid/work/calibre/src/calibre/utils/config.py:552
msgid "The priority of worker processes" msgid "The priority of worker processes"
msgstr "" msgstr ""
@ -5648,7 +5654,7 @@ msgid "Customize the download engine"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:460
msgid "" msgid ""
"Timeout in seconds to wait for a response from the server. Default: %default " "Timeout in seconds to wait for a response from the server. Default: %default "
"s" "s"
@ -5657,7 +5663,7 @@ msgstr ""
"%default s" "%default s"
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
msgid "" msgid ""
"Minimum interval in seconds between consecutive fetches. Default is %default " "Minimum interval in seconds between consecutive fetches. Default is %default "
"s" "s"
@ -5666,7 +5672,7 @@ msgstr ""
"%default s" "%default s"
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470
msgid "" msgid ""
"The character encoding for the websites you are trying to download. The " "The character encoding for the websites you are trying to download. The "
"default is to try and guess the encoding." "default is to try and guess the encoding."
@ -5675,7 +5681,7 @@ msgstr ""
"Standaard zal er worden geprobeerd om de codering te raden." "Standaard zal er worden geprobeerd om de codering te raden."
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
msgid "" msgid ""
"Only links that match this regular expression will be followed. This option " "Only links that match this regular expression will be followed. This option "
"can be specified multiple times, in which case as long as a link matches any " "can be specified multiple times, in which case as long as a link matches any "
@ -5687,7 +5693,7 @@ msgstr ""
"expressie. Standaard zullen alle links worden gevolgd." "expressie. Standaard zullen alle links worden gevolgd."
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
msgid "" msgid ""
"Any link that matches this regular expression will be ignored. This option " "Any link that matches this regular expression will be ignored. This option "
"can be specified multiple times, in which case as long as any regexp matches " "can be specified multiple times, in which case as long as any regexp matches "
@ -5702,7 +5708,7 @@ msgstr ""
"regexp worden gebruikt, dan zal --filter-regexp allereerst worden toegepast." "regexp worden gebruikt, dan zal --filter-regexp allereerst worden toegepast."
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476
msgid "Do not download CSS stylesheets." msgid "Do not download CSS stylesheets."
msgstr "Download geen CSS stylesheets" msgstr "Download geen CSS stylesheets"
@ -5926,12 +5932,12 @@ msgstr "Downloading feed"
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:63 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:21
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64
@ -5944,11 +5950,13 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:13
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chicago_breaking_news.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
@ -6022,17 +6030,17 @@ msgstr ""
msgid "English" msgid "English"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:29
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:19 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:27
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
msgid "Serbian" msgid "Serbian"
msgstr "" msgstr ""
@ -6064,11 +6072,11 @@ msgstr ""
msgid "German" msgid "German"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:23 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:22
msgid "Croatian" msgid "Croatian"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
msgid "" msgid ""
"%prog URL\n" "%prog URL\n"
"\n" "\n"
@ -6078,12 +6086,12 @@ msgstr ""
"\n" "\n"
"Waar URL is bijvoorbeeld http://google.com" "Waar URL is bijvoorbeeld http://google.com"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:455 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:457
msgid "Base directory into which URL is saved. Default is %default" msgid "Base directory into which URL is saved. Default is %default"
msgstr "" msgstr ""
"basis folder waar de URL naar toe word geschreven. Standaard is %default" "basis folder waar de URL naar toe word geschreven. Standaard is %default"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
msgid "" msgid ""
"Maximum number of levels to recurse i.e. depth of links to follow. Default " "Maximum number of levels to recurse i.e. depth of links to follow. Default "
"%default" "%default"
@ -6091,7 +6099,7 @@ msgstr ""
"Maximum aantal level om recursief te zoeken -- de diepte om links te volgen. " "Maximum aantal level om recursief te zoeken -- de diepte om links te volgen. "
"Standaard %default" "Standaard %default"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
msgid "" msgid ""
"The maximum number of files to download. This only applies to files from <a " "The maximum number of files to download. This only applies to files from <a "
"href> tags. Default is %default" "href> tags. Default is %default"
@ -6099,7 +6107,7 @@ msgstr ""
"Het maximum aantal bestanden te downloaden. Dit is alleen van toepassing op " "Het maximum aantal bestanden te downloaden. Dit is alleen van toepassing op "
"bestanden in <a href> tags. Standaard is %default" "bestanden in <a href> tags. Standaard is %default"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477
msgid "Show detailed output information. Useful for debugging" msgid "Show detailed output information. Useful for debugging"
msgstr "" msgstr ""
"Laat gedetailleerde output informatie zien. Handig bij het opsporen van " "Laat gedetailleerde output informatie zien. Handig bij het opsporen van "

View File

@ -7,14 +7,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre\n" "Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-02-11 03:58+0000\n" "POT-Creation-Date: 2009-02-13 20:29+0000\n"
"PO-Revision-Date: 2009-01-30 09:03+0000\n" "PO-Revision-Date: 2009-01-30 09:03+0000\n"
"Last-Translator: Andrzej MoST (Marcin Ostajewski) <Unknown>\n" "Last-Translator: Andrzej MoST (Marcin Ostajewski) <Unknown>\n"
"Language-Team: Polish <pl@li.org>\n" "Language-Team: Polish <pl@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-02-13 19:24+0000\n" "X-Launchpad-Export-Date: 2009-02-18 20:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41
@ -57,7 +57,7 @@ msgstr "Ta opcja nic nie zmienia"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:487
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574
@ -78,20 +78,21 @@ msgstr "Ta opcja nic nie zmienia"
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:894 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:894
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:933 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:940
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123
#: /home/kovid/work/calibre/src/calibre/library/cli.py:257 #: /home/kovid/work/calibre/src/calibre/library/cli.py:257
#: /home/kovid/work/calibre/src/calibre/library/database.py:916 #: /home/kovid/work/calibre/src/calibre/library/database.py:916
#: /home/kovid/work/calibre/src/calibre/library/database2.py:472 #: /home/kovid/work/calibre/src/calibre/library/database2.py:473
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484 #: /home/kovid/work/calibre/src/calibre/library/database2.py:485
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865 #: /home/kovid/work/calibre/src/calibre/library/database2.py:866
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900 #: /home/kovid/work/calibre/src/calibre/library/database2.py:901
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1408
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459
#: /home/kovid/work/calibre/src/calibre/library/server.py:315 #: /home/kovid/work/calibre/src/calibre/library/server.py:315
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51
msgid "Unknown" msgid "Unknown"
@ -689,7 +690,7 @@ msgid "%prog [options] LITFILE"
msgstr "%prog [opcje] LITFILE" msgstr "%prog [opcje] LITFILE"
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:506 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
msgid "Output directory. Defaults to current directory." msgid "Output directory. Defaults to current directory."
msgstr "Folder docelowy. Domyślnie to aktualny folder." msgstr "Folder docelowy. Domyślnie to aktualny folder."
@ -706,7 +707,7 @@ msgid "Useful for debugging."
msgstr "Użyteczne dla debugowania." msgstr "Użyteczne dla debugowania."
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:530 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:535
msgid "OEB ebook created in" msgid "OEB ebook created in"
msgstr "OEB ebook stworzony w" msgstr "OEB ebook stworzony w"
@ -1730,11 +1731,11 @@ msgstr ""
msgid "Creating Mobipocket file from EPUB..." msgid "Creating Mobipocket file from EPUB..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:504 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:509
msgid "%prog [options] myebook.mobi" msgid "%prog [options] myebook.mobi"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:528 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:533
msgid "Raw MOBI HTML saved in" msgid "Raw MOBI HTML saved in"
msgstr "" msgstr ""
@ -2031,7 +2032,7 @@ msgid "Adding books to database..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:694 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
msgid "Reading metadata..." msgid "Reading metadata..."
msgstr "" msgstr ""
@ -2257,7 +2258,7 @@ msgid "Access log:"
msgstr "Dziennik dostępów:" msgstr "Dziennik dostępów:"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:406
msgid "Failed to start content server" msgid "Failed to start content server"
msgstr "Włączanie serwera zakończone niepowodzeniem" msgstr "Włączanie serwera zakończone niepowodzeniem"
@ -2689,7 +2690,7 @@ msgid " is not a valid picture"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "Cannot convert" msgid "Cannot convert"
msgstr "Nie można przekonwertować" msgstr "Nie można przekonwertować"
@ -3367,28 +3368,33 @@ msgstr "Usuń &format:"
msgid "A&utomatically set author sort" msgid "A&utomatically set author sort"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118
msgid "No format selected"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
msgid "Could not read metadata" msgid "Could not read metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129
msgid "Could not read metadata from %s format" msgid "Could not read metadata from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
msgid "Could not read cover" msgid "Could not read cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:138
msgid "Could not read cover from %s format" msgid "Could not read cover from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:144
msgid "The cover in the %s format is invalid" msgid "The cover in the %s format is invalid"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:323
msgid "" msgid ""
"<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you " "<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you "
"do not have one, you can <a href='http://www.librarything.com'>register</a> " "do not have one, you can <a href='http://www.librarything.com'>register</a> "
@ -3398,19 +3404,19 @@ msgstr ""
"nie posiadasz jeszcze konta, możesz się <a " "nie posiadasz jeszcze konta, możesz się <a "
"href='http://www.librarything.com'>zarejestrować</a> za darmo!.</p>" "href='http://www.librarything.com'>zarejestrować</a> za darmo!.</p>"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "<b>Could not fetch cover.</b><br/>" msgid "<b>Could not fetch cover.</b><br/>"
msgstr "<b>Nie można pobrać okładki.</b><br/>" msgstr "<b>Nie można pobrać okładki.</b><br/>"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "Could not fetch cover" msgid "Could not fetch cover"
msgstr "Nie można pobrać okładki" msgstr "Nie można pobrać okładki"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "Cannot fetch cover" msgid "Cannot fetch cover"
msgstr "Nie można pobrać okładki" msgstr "Nie można pobrać okładki"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "You must specify the ISBN identifier for this book." msgid "You must specify the ISBN identifier for this book."
msgstr "" msgstr ""
@ -3571,9 +3577,9 @@ msgstr "Dodaj własne źródło aktualności"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809 #: /home/kovid/work/calibre/src/calibre/library/database2.py:810
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813 #: /home/kovid/work/calibre/src/calibre/library/database2.py:814
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
msgid "News" msgid "News"
msgstr "Aktualności" msgstr "Aktualności"
@ -4272,7 +4278,7 @@ msgid "Save to disk in a single directory"
msgstr "Zapisz na dysku w pojedyńczym folderze" msgstr "Zapisz na dysku w pojedyńczym folderze"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:193 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:193
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1248 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "Zapisz na dysku jedynie pliki w formacie %s" msgstr "Zapisz na dysku jedynie pliki w formacie %s"
@ -4310,31 +4316,31 @@ msgid "Bad database location"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:290
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1388 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1395
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "Wybierz lokalizację dla twojej biblioteki książek." msgstr "Wybierz lokalizację dla twojej biblioteki książek."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:440 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:445
msgid "Browse by covers" msgid "Browse by covers"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
msgid "Device: " msgid "Device: "
msgstr "Urządzenie: " msgstr "Urządzenie: "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
msgid " detected." msgid " detected."
msgstr " wykryte" msgstr " wykryte"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
msgid "Connected " msgid "Connected "
msgstr "Połączone " msgstr "Połączone "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:563 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:569
msgid "Device database corrupted" msgid "Device database corrupted"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
msgid "" msgid ""
"\n" "\n"
" <p>The database of books on the reader is corrupted. Try the " " <p>The database of books on the reader is corrupted. Try the "
@ -4350,122 +4356,122 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
msgid "Books" msgid "Books"
msgstr "Książki" msgstr "Książki"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
msgid "EPUB Books" msgid "EPUB Books"
msgstr "Książki EPUB" msgstr "Książki EPUB"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
msgid "LRF Books" msgid "LRF Books"
msgstr "Książki LRF" msgstr "Książki LRF"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
msgid "HTML Books" msgid "HTML Books"
msgstr "Książki HTML" msgstr "Książki HTML"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
msgid "LIT Books" msgid "LIT Books"
msgstr "Książki LIT" msgstr "Książki LIT"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
msgid "MOBI Books" msgid "MOBI Books"
msgstr "Książki MOBI" msgstr "Książki MOBI"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
msgid "Text books" msgid "Text books"
msgstr "Książki tekstowe" msgstr "Książki tekstowe"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
msgid "PDF Books" msgid "PDF Books"
msgstr "Książki PDF" msgstr "Książki PDF"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
msgid "Comics" msgid "Comics"
msgstr "Komiksy" msgstr "Komiksy"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
msgid "Archives" msgid "Archives"
msgstr "Archiwa" msgstr "Archiwa"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
msgid "Adding books..." msgid "Adding books..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:735 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:742
msgid "No space on device" msgid "No space on device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
msgid "" msgid ""
"<p>Cannot upload books to device there is no more free space available " "<p>Cannot upload books to device there is no more free space available "
msgstr "" msgstr ""
"<p> Nie można umieścić książek na urządzeniu z powodu braku wolnego miejsca " "<p> Nie można umieścić książek na urządzeniu z powodu braku wolnego miejsca "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "Usuwanie książek z urządzenia." msgstr "Usuwanie książek z urządzenia."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "Nie można edytować metadanych" msgstr "Nie można edytować metadanych"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "No books selected" msgid "No books selected"
msgstr "Nie wybrano ksiązek" msgstr "Nie wybrano ksiązek"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:887 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:894
msgid "Sending news to device." msgid "Sending news to device."
msgstr "Przesyłanie aktualności na urządzenie." msgstr "Przesyłanie aktualności na urządzenie."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:941 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:948
msgid "Sending books to device." msgid "Sending books to device."
msgstr "Wysyłanie książek do urządzenia." msgstr "Wysyłanie książek do urządzenia."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:944 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:951
msgid "No suitable formats" msgid "No suitable formats"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
msgid "" msgid ""
"Could not upload the following books to the device, as no suitable formats " "Could not upload the following books to the device, as no suitable formats "
"were found:<br><ul>%s</ul>" "were found:<br><ul>%s</ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "Nie można zapisać na dysku" msgstr "Nie można zapisać na dysku"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:973
msgid "Saving to disk..." msgid "Saving to disk..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
msgid "Saved" msgid "Saved"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:977 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:984
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "Wyberz folder docelowy" msgstr "Wyberz folder docelowy"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
msgid "" msgid ""
"<p>Could not save the following books to disk, because the %s format is not " "<p>Could not save the following books to disk, because the %s format is not "
"available for them:<ul>" "available for them:<ul>"
@ -4473,86 +4479,86 @@ msgstr ""
"<p>Nie można zapisać poniższych książek na dysku, ponieważ plik w formacie " "<p>Nie można zapisać poniższych książek na dysku, ponieważ plik w formacie "
"%s nie jest dla nich dostępny:<ul>" "%s nie jest dla nich dostępny:<ul>"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:995 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1002
msgid "Could not save some ebooks" msgid "Could not save some ebooks"
msgstr "Nie można zapisać niektórych e-książek" msgstr "Nie można zapisać niektórych e-książek"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1024
msgid "Fetching news from " msgid "Fetching news from "
msgstr "Pobieranie aktualności z " msgstr "Pobieranie aktualności z "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
msgid " fetched." msgid " fetched."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
msgid "No book selected" msgid "No book selected"
msgstr "Nie wybrano ksiązki" msgstr "Nie wybrano ksiązki"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
msgid "Cannot view" msgid "Cannot view"
msgstr "Nie można wyświetlić" msgstr "Nie można wyświetlić"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "Wybierz format do wyświetlenia" msgstr "Wybierz format do wyświetlenia"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "Nie można otworzyć folderu" msgstr "Nie można otworzyć folderu"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1201 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1208
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure" msgid "Cannot configure"
msgstr "Nie można skonfigurować" msgstr "Nie można skonfigurować"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "Nie można skonfigurować, gdy są aktywne jakieś zadania." msgstr "Nie można skonfigurować, gdy są aktywne jakieś zadania."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
msgid "Copying database" msgid "Copying database"
msgstr "Kopiowanie bazy danych" msgstr "Kopiowanie bazy danych"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1259 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1266
msgid "Copying library to " msgid "Copying library to "
msgstr "Kopiowanie biblioteki do " msgstr "Kopiowanie biblioteki do "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
msgid "Invalid database" msgid "Invalid database"
msgstr "Nieprawidłowa baza danych" msgstr "Nieprawidłowa baza danych"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
msgid "" msgid ""
"<p>An invalid database already exists at %s, delete it before trying to move " "<p>An invalid database already exists at %s, delete it before trying to move "
"the existing database.<br>Error: %s" "the existing database.<br>Error: %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1283
msgid "Could not move database" msgid "Could not move database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1296 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1303
msgid "No detailed info available" msgid "No detailed info available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1297 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1304
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1340 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1347
msgid "Error talking to device" msgid "Error talking to device"
msgstr "Błąd komunikacji z urządzeniem" msgstr "Błąd komunikacji z urządzeniem"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
@ -4560,52 +4566,52 @@ msgstr ""
"Wystąpił chwilowy błąd komunikacji z urządzeniem. Odłącz i podłącz je " "Wystąpił chwilowy błąd komunikacji z urządzeniem. Odłącz i podłącz je "
"ponownie lub uruchom komputer ponownie." "ponownie lub uruchom komputer ponownie."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
msgid "Conversion Error" msgid "Conversion Error"
msgstr "Błąd podczas konwersji" msgstr "Błąd podczas konwersji"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using 3rd party tools." "first remove the DRM using 3rd party tools."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1454 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1461
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" 'Quitting may cause corruption on the device.<br>\n" " 'Quitting may cause corruption on the device.<br>\n"
" 'Are you sure you want to quit?" " 'Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "" msgid ""
"%s has been updated to version %s. See the <a " "%s has been updated to version %s. See the <a "
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
@ -4615,19 +4621,19 @@ msgstr ""
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">listę zmian i " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">listę zmian i "
"poprawek</a>. Otworzyć stronę pobierania?" "poprawek</a>. Otworzyć stronę pobierania?"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "Update available" msgid "Update available"
msgstr "Aktualizacja dostępna" msgstr "Aktualizacja dostępna"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1531 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1538
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1533 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1540
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1535 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1542
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "" msgstr ""
@ -5375,20 +5381,20 @@ msgid ""
"For help on an individual command: %%prog command --help\n" "For help on an individual command: %%prog command --help\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1221 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1228
msgid "<p>Copying books to %s<br><center>" msgid "<p>Copying books to %s<br><center>"
msgstr "<p>Kopiowanie książek do %s<br><center>" msgstr "<p>Kopiowanie książek do %s<br><center>"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
msgid "Copying <b>%s</b>" msgid "Copying <b>%s</b>"
msgstr "Kopiowanie <b>%s</b>" msgstr "Kopiowanie <b>%s</b>"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1314 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1321
msgid "<p>Migrating old database to ebook library in %s<br><center>" msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
msgid "Compacting database" msgid "Compacting database"
msgstr "Kompaktowanie bazy danych" msgstr "Kompaktowanie bazy danych"
@ -5422,39 +5428,39 @@ msgstr "%sUżycie%s: %s\n"
msgid "Created by " msgid "Created by "
msgstr "Stworzony przez " msgstr "Stworzony przez "
#: /home/kovid/work/calibre/src/calibre/utils/config.py:531 #: /home/kovid/work/calibre/src/calibre/utils/config.py:536
msgid "Path to the database in which books are stored" msgid "Path to the database in which books are stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:533 #: /home/kovid/work/calibre/src/calibre/utils/config.py:538
msgid "Pattern to guess metadata from filenames" msgid "Pattern to guess metadata from filenames"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:535 #: /home/kovid/work/calibre/src/calibre/utils/config.py:540
msgid "Access key for isbndb.com" msgid "Access key for isbndb.com"
msgstr "Klucz dostępu do isbndb.com" msgstr "Klucz dostępu do isbndb.com"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:537 #: /home/kovid/work/calibre/src/calibre/utils/config.py:542
msgid "Default timeout for network operations (seconds)" msgid "Default timeout for network operations (seconds)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:539 #: /home/kovid/work/calibre/src/calibre/utils/config.py:544
msgid "Path to directory in which your library of books is stored" msgid "Path to directory in which your library of books is stored"
msgstr "Ścieżka do katalogu w którym przechowywana jest biblioteka książek" msgstr "Ścieżka do katalogu w którym przechowywana jest biblioteka książek"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:541 #: /home/kovid/work/calibre/src/calibre/utils/config.py:546
msgid "The language in which to display the user interface" msgid "The language in which to display the user interface"
msgstr "Język wyświetlania interfejsu użytkownika" msgstr "Język wyświetlania interfejsu użytkownika"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:543 #: /home/kovid/work/calibre/src/calibre/utils/config.py:548
msgid "The default output format for ebook conversions." msgid "The default output format for ebook conversions."
msgstr "Domyślny format wyjściowy dla konwersji e-książek" msgstr "Domyślny format wyjściowy dla konwersji e-książek"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:545 #: /home/kovid/work/calibre/src/calibre/utils/config.py:550
msgid "Read metadata from files" msgid "Read metadata from files"
msgstr "Wczytaj metadane z plików" msgstr "Wczytaj metadane z plików"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:547 #: /home/kovid/work/calibre/src/calibre/utils/config.py:552
msgid "The priority of worker processes" msgid "The priority of worker processes"
msgstr "" msgstr ""
@ -5497,28 +5503,28 @@ msgid "Customize the download engine"
msgstr "Dostosuj silnik pobierania" msgstr "Dostosuj silnik pobierania"
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:460
msgid "" msgid ""
"Timeout in seconds to wait for a response from the server. Default: %default " "Timeout in seconds to wait for a response from the server. Default: %default "
"s" "s"
msgstr "Czas oczekiwania na odpowiedź serwera. Domyślnie: %default sek." msgstr "Czas oczekiwania na odpowiedź serwera. Domyślnie: %default sek."
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
msgid "" msgid ""
"Minimum interval in seconds between consecutive fetches. Default is %default " "Minimum interval in seconds between consecutive fetches. Default is %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470
msgid "" msgid ""
"The character encoding for the websites you are trying to download. The " "The character encoding for the websites you are trying to download. The "
"default is to try and guess the encoding." "default is to try and guess the encoding."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
msgid "" msgid ""
"Only links that match this regular expression will be followed. This option " "Only links that match this regular expression will be followed. This option "
"can be specified multiple times, in which case as long as a link matches any " "can be specified multiple times, in which case as long as a link matches any "
@ -5526,7 +5532,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
msgid "" msgid ""
"Any link that matches this regular expression will be ignored. This option " "Any link that matches this regular expression will be ignored. This option "
"can be specified multiple times, in which case as long as any regexp matches " "can be specified multiple times, in which case as long as any regexp matches "
@ -5536,7 +5542,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476
msgid "Do not download CSS stylesheets." msgid "Do not download CSS stylesheets."
msgstr "Nie pobieraj arkuszy styli CSS." msgstr "Nie pobieraj arkuszy styli CSS."
@ -5726,12 +5732,12 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:63 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:21
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64
@ -5744,11 +5750,13 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:13
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chicago_breaking_news.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
@ -5822,17 +5830,17 @@ msgstr ""
msgid "English" msgid "English"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:29
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:19 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:27
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
msgid "Serbian" msgid "Serbian"
msgstr "" msgstr ""
@ -5864,11 +5872,11 @@ msgstr ""
msgid "German" msgid "German"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:23 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:22
msgid "Croatian" msgid "Croatian"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
msgid "" msgid ""
"%prog URL\n" "%prog URL\n"
"\n" "\n"
@ -5878,17 +5886,17 @@ msgstr ""
"\n" "\n"
"Gdzie URL to na przykład http://google.com" "Gdzie URL to na przykład http://google.com"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:455 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:457
msgid "Base directory into which URL is saved. Default is %default" msgid "Base directory into which URL is saved. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
msgid "" msgid ""
"Maximum number of levels to recurse i.e. depth of links to follow. Default " "Maximum number of levels to recurse i.e. depth of links to follow. Default "
"%default" "%default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
msgid "" msgid ""
"The maximum number of files to download. This only applies to files from <a " "The maximum number of files to download. This only applies to files from <a "
"href> tags. Default is %default" "href> tags. Default is %default"
@ -5896,7 +5904,7 @@ msgstr ""
"Maksymalna liczba plików do pobrania. Stosowane jedynie do plików z etykiet " "Maksymalna liczba plików do pobrania. Stosowane jedynie do plików z etykiet "
"<a href>. Wartość domyślna: %default" "<a href>. Wartość domyślna: %default"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477
msgid "Show detailed output information. Useful for debugging" msgid "Show detailed output information. Useful for debugging"
msgstr "" msgstr ""
"Pokazuj szczegółowową informację wyjściową. Przydatne przy debugowaniu." "Pokazuj szczegółowową informację wyjściową. Przydatne przy debugowaniu."

View File

@ -7,14 +7,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre\n" "Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-02-11 03:58+0000\n" "POT-Creation-Date: 2009-02-13 20:29+0000\n"
"PO-Revision-Date: 2009-01-17 16:31+0000\n" "PO-Revision-Date: 2009-01-17 16:31+0000\n"
"Last-Translator: ricdiogo <ricardofdiogo@gmail.com>\n" "Last-Translator: ricdiogo <ricardofdiogo@gmail.com>\n"
"Language-Team: Portuguese <pt@li.org>\n" "Language-Team: Portuguese <pt@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-02-13 19:24+0000\n" "X-Launchpad-Export-Date: 2009-02-18 20:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41
@ -57,7 +57,7 @@ msgstr "Não faz absolutamente nada"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:487
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574
@ -78,20 +78,21 @@ msgstr "Não faz absolutamente nada"
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:894 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:894
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:933 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:940
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123
#: /home/kovid/work/calibre/src/calibre/library/cli.py:257 #: /home/kovid/work/calibre/src/calibre/library/cli.py:257
#: /home/kovid/work/calibre/src/calibre/library/database.py:916 #: /home/kovid/work/calibre/src/calibre/library/database.py:916
#: /home/kovid/work/calibre/src/calibre/library/database2.py:472 #: /home/kovid/work/calibre/src/calibre/library/database2.py:473
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484 #: /home/kovid/work/calibre/src/calibre/library/database2.py:485
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865 #: /home/kovid/work/calibre/src/calibre/library/database2.py:866
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900 #: /home/kovid/work/calibre/src/calibre/library/database2.py:901
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1408
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459
#: /home/kovid/work/calibre/src/calibre/library/server.py:315 #: /home/kovid/work/calibre/src/calibre/library/server.py:315
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51
msgid "Unknown" msgid "Unknown"
@ -690,7 +691,7 @@ msgid "%prog [options] LITFILE"
msgstr "%prog [options] LITFILE" msgstr "%prog [options] LITFILE"
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:506 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
msgid "Output directory. Defaults to current directory." msgid "Output directory. Defaults to current directory."
msgstr "Directoria de saída. A predefinição é a directoria actual." msgstr "Directoria de saída. A predefinição é a directoria actual."
@ -705,7 +706,7 @@ msgid "Useful for debugging."
msgstr "Útil para depurar." msgstr "Útil para depurar."
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:530 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:535
msgid "OEB ebook created in" msgid "OEB ebook created in"
msgstr "Ebook em OEB criado em" msgstr "Ebook em OEB criado em"
@ -1786,11 +1787,11 @@ msgstr ""
msgid "Creating Mobipocket file from EPUB..." msgid "Creating Mobipocket file from EPUB..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:504 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:509
msgid "%prog [options] myebook.mobi" msgid "%prog [options] myebook.mobi"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:528 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:533
msgid "Raw MOBI HTML saved in" msgid "Raw MOBI HTML saved in"
msgstr "" msgstr ""
@ -2084,7 +2085,7 @@ msgid "Adding books to database..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:694 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
msgid "Reading metadata..." msgid "Reading metadata..."
msgstr "" msgstr ""
@ -2310,7 +2311,7 @@ msgid "Access log:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:406
msgid "Failed to start content server" msgid "Failed to start content server"
msgstr "" msgstr ""
@ -2734,7 +2735,7 @@ msgid " is not a valid picture"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "Cannot convert" msgid "Cannot convert"
msgstr "" msgstr ""
@ -3409,47 +3410,52 @@ msgstr ""
msgid "A&utomatically set author sort" msgid "A&utomatically set author sort"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118
msgid "No format selected"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
msgid "Could not read metadata" msgid "Could not read metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129
msgid "Could not read metadata from %s format" msgid "Could not read metadata from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
msgid "Could not read cover" msgid "Could not read cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:138
msgid "Could not read cover from %s format" msgid "Could not read cover from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:144
msgid "The cover in the %s format is invalid" msgid "The cover in the %s format is invalid"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:323
msgid "" msgid ""
"<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you " "<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you "
"do not have one, you can <a href='http://www.librarything.com'>register</a> " "do not have one, you can <a href='http://www.librarything.com'>register</a> "
"for free!.</p>" "for free!.</p>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "<b>Could not fetch cover.</b><br/>" msgid "<b>Could not fetch cover.</b><br/>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "Could not fetch cover" msgid "Could not fetch cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "Cannot fetch cover" msgid "Cannot fetch cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "You must specify the ISBN identifier for this book." msgid "You must specify the ISBN identifier for this book."
msgstr "" msgstr ""
@ -3609,9 +3615,9 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809 #: /home/kovid/work/calibre/src/calibre/library/database2.py:810
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813 #: /home/kovid/work/calibre/src/calibre/library/database2.py:814
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
msgid "News" msgid "News"
msgstr "" msgstr ""
@ -4295,7 +4301,7 @@ msgid "Save to disk in a single directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:193 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:193
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1248 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "" msgstr ""
@ -4333,31 +4339,31 @@ msgid "Bad database location"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:290
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1388 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1395
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:440 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:445
msgid "Browse by covers" msgid "Browse by covers"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
msgid "Device: " msgid "Device: "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
msgid " detected." msgid " detected."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
msgid "Connected " msgid "Connected "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:563 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:569
msgid "Device database corrupted" msgid "Device database corrupted"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
msgid "" msgid ""
"\n" "\n"
" <p>The database of books on the reader is corrupted. Try the " " <p>The database of books on the reader is corrupted. Try the "
@ -4373,276 +4379,276 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
msgid "Books" msgid "Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
msgid "EPUB Books" msgid "EPUB Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
msgid "LRF Books" msgid "LRF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
msgid "HTML Books" msgid "HTML Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
msgid "LIT Books" msgid "LIT Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
msgid "MOBI Books" msgid "MOBI Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
msgid "Text books" msgid "Text books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
msgid "PDF Books" msgid "PDF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
msgid "Comics" msgid "Comics"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
msgid "Archives" msgid "Archives"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
msgid "Adding books..." msgid "Adding books..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:735 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:742
msgid "No space on device" msgid "No space on device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
msgid "" msgid ""
"<p>Cannot upload books to device there is no more free space available " "<p>Cannot upload books to device there is no more free space available "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "No books selected" msgid "No books selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:887 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:894
msgid "Sending news to device." msgid "Sending news to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:941 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:948
msgid "Sending books to device." msgid "Sending books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:944 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:951
msgid "No suitable formats" msgid "No suitable formats"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
msgid "" msgid ""
"Could not upload the following books to the device, as no suitable formats " "Could not upload the following books to the device, as no suitable formats "
"were found:<br><ul>%s</ul>" "were found:<br><ul>%s</ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:973
msgid "Saving to disk..." msgid "Saving to disk..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
msgid "Saved" msgid "Saved"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:977 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:984
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
msgid "" msgid ""
"<p>Could not save the following books to disk, because the %s format is not " "<p>Could not save the following books to disk, because the %s format is not "
"available for them:<ul>" "available for them:<ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:995 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1002
msgid "Could not save some ebooks" msgid "Could not save some ebooks"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1024
msgid "Fetching news from " msgid "Fetching news from "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
msgid " fetched." msgid " fetched."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
msgid "No book selected" msgid "No book selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
msgid "Cannot view" msgid "Cannot view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1201 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1208
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure" msgid "Cannot configure"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
msgid "Copying database" msgid "Copying database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1259 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1266
msgid "Copying library to " msgid "Copying library to "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
msgid "Invalid database" msgid "Invalid database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
msgid "" msgid ""
"<p>An invalid database already exists at %s, delete it before trying to move " "<p>An invalid database already exists at %s, delete it before trying to move "
"the existing database.<br>Error: %s" "the existing database.<br>Error: %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1283
msgid "Could not move database" msgid "Could not move database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1296 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1303
msgid "No detailed info available" msgid "No detailed info available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1297 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1304
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1340 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1347
msgid "Error talking to device" msgid "Error talking to device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
msgid "Conversion Error" msgid "Conversion Error"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using 3rd party tools." "first remove the DRM using 3rd party tools."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1454 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1461
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" 'Quitting may cause corruption on the device.<br>\n" " 'Quitting may cause corruption on the device.<br>\n"
" 'Are you sure you want to quit?" " 'Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "" msgid ""
"%s has been updated to version %s. See the <a " "%s has been updated to version %s. See the <a "
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
"Visit the download page?" "Visit the download page?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "Update available" msgid "Update available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1531 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1538
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1533 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1540
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1535 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1542
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "" msgstr ""
@ -5382,20 +5388,20 @@ msgid ""
"For help on an individual command: %%prog command --help\n" "For help on an individual command: %%prog command --help\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1221 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1228
msgid "<p>Copying books to %s<br><center>" msgid "<p>Copying books to %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
msgid "Copying <b>%s</b>" msgid "Copying <b>%s</b>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1314 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1321
msgid "<p>Migrating old database to ebook library in %s<br><center>" msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
msgid "Compacting database" msgid "Compacting database"
msgstr "" msgstr ""
@ -5426,39 +5432,39 @@ msgstr ""
msgid "Created by " msgid "Created by "
msgstr "Criado por " msgstr "Criado por "
#: /home/kovid/work/calibre/src/calibre/utils/config.py:531 #: /home/kovid/work/calibre/src/calibre/utils/config.py:536
msgid "Path to the database in which books are stored" msgid "Path to the database in which books are stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:533 #: /home/kovid/work/calibre/src/calibre/utils/config.py:538
msgid "Pattern to guess metadata from filenames" msgid "Pattern to guess metadata from filenames"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:535 #: /home/kovid/work/calibre/src/calibre/utils/config.py:540
msgid "Access key for isbndb.com" msgid "Access key for isbndb.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:537 #: /home/kovid/work/calibre/src/calibre/utils/config.py:542
msgid "Default timeout for network operations (seconds)" msgid "Default timeout for network operations (seconds)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:539 #: /home/kovid/work/calibre/src/calibre/utils/config.py:544
msgid "Path to directory in which your library of books is stored" msgid "Path to directory in which your library of books is stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:541 #: /home/kovid/work/calibre/src/calibre/utils/config.py:546
msgid "The language in which to display the user interface" msgid "The language in which to display the user interface"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:543 #: /home/kovid/work/calibre/src/calibre/utils/config.py:548
msgid "The default output format for ebook conversions." msgid "The default output format for ebook conversions."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:545 #: /home/kovid/work/calibre/src/calibre/utils/config.py:550
msgid "Read metadata from files" msgid "Read metadata from files"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:547 #: /home/kovid/work/calibre/src/calibre/utils/config.py:552
msgid "The priority of worker processes" msgid "The priority of worker processes"
msgstr "" msgstr ""
@ -5501,28 +5507,28 @@ msgid "Customize the download engine"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:460
msgid "" msgid ""
"Timeout in seconds to wait for a response from the server. Default: %default " "Timeout in seconds to wait for a response from the server. Default: %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
msgid "" msgid ""
"Minimum interval in seconds between consecutive fetches. Default is %default " "Minimum interval in seconds between consecutive fetches. Default is %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470
msgid "" msgid ""
"The character encoding for the websites you are trying to download. The " "The character encoding for the websites you are trying to download. The "
"default is to try and guess the encoding." "default is to try and guess the encoding."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
msgid "" msgid ""
"Only links that match this regular expression will be followed. This option " "Only links that match this regular expression will be followed. This option "
"can be specified multiple times, in which case as long as a link matches any " "can be specified multiple times, in which case as long as a link matches any "
@ -5530,7 +5536,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
msgid "" msgid ""
"Any link that matches this regular expression will be ignored. This option " "Any link that matches this regular expression will be ignored. This option "
"can be specified multiple times, in which case as long as any regexp matches " "can be specified multiple times, in which case as long as any regexp matches "
@ -5540,7 +5546,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476
msgid "Do not download CSS stylesheets." msgid "Do not download CSS stylesheets."
msgstr "" msgstr ""
@ -5727,12 +5733,12 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:63 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:21
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64
@ -5745,11 +5751,13 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:13
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chicago_breaking_news.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
@ -5823,17 +5831,17 @@ msgstr ""
msgid "English" msgid "English"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:29
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:19 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:27
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
msgid "Serbian" msgid "Serbian"
msgstr "" msgstr ""
@ -5865,34 +5873,34 @@ msgstr ""
msgid "German" msgid "German"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:23 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:22
msgid "Croatian" msgid "Croatian"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
msgid "" msgid ""
"%prog URL\n" "%prog URL\n"
"\n" "\n"
"Where URL is for example http://google.com" "Where URL is for example http://google.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:455 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:457
msgid "Base directory into which URL is saved. Default is %default" msgid "Base directory into which URL is saved. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
msgid "" msgid ""
"Maximum number of levels to recurse i.e. depth of links to follow. Default " "Maximum number of levels to recurse i.e. depth of links to follow. Default "
"%default" "%default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
msgid "" msgid ""
"The maximum number of files to download. This only applies to files from <a " "The maximum number of files to download. This only applies to files from <a "
"href> tags. Default is %default" "href> tags. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477
msgid "Show detailed output information. Useful for debugging" msgid "Show detailed output information. Useful for debugging"
msgstr "" msgstr ""

View File

@ -7,14 +7,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre\n" "Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-02-11 03:58+0000\n" "POT-Creation-Date: 2009-02-13 20:29+0000\n"
"PO-Revision-Date: 2009-01-29 16:15+0000\n" "PO-Revision-Date: 2009-01-29 16:15+0000\n"
"Last-Translator: petre <Unknown>\n" "Last-Translator: petre <Unknown>\n"
"Language-Team: Romanian <ro@li.org>\n" "Language-Team: Romanian <ro@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-02-13 19:24+0000\n" "X-Launchpad-Export-Date: 2009-02-18 20:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41
@ -57,7 +57,7 @@ msgstr "Nu face absolut nimic"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:487
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574
@ -78,20 +78,21 @@ msgstr "Nu face absolut nimic"
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:894 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:894
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:933 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:940
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123
#: /home/kovid/work/calibre/src/calibre/library/cli.py:257 #: /home/kovid/work/calibre/src/calibre/library/cli.py:257
#: /home/kovid/work/calibre/src/calibre/library/database.py:916 #: /home/kovid/work/calibre/src/calibre/library/database.py:916
#: /home/kovid/work/calibre/src/calibre/library/database2.py:472 #: /home/kovid/work/calibre/src/calibre/library/database2.py:473
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484 #: /home/kovid/work/calibre/src/calibre/library/database2.py:485
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865 #: /home/kovid/work/calibre/src/calibre/library/database2.py:866
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900 #: /home/kovid/work/calibre/src/calibre/library/database2.py:901
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1408
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459
#: /home/kovid/work/calibre/src/calibre/library/server.py:315 #: /home/kovid/work/calibre/src/calibre/library/server.py:315
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51
msgid "Unknown" msgid "Unknown"
@ -652,7 +653,7 @@ msgid "%prog [options] LITFILE"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:506 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
msgid "Output directory. Defaults to current directory." msgid "Output directory. Defaults to current directory."
msgstr "" msgstr ""
@ -667,7 +668,7 @@ msgid "Useful for debugging."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:530 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:535
msgid "OEB ebook created in" msgid "OEB ebook created in"
msgstr "" msgstr ""
@ -1618,11 +1619,11 @@ msgstr ""
msgid "Creating Mobipocket file from EPUB..." msgid "Creating Mobipocket file from EPUB..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:504 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:509
msgid "%prog [options] myebook.mobi" msgid "%prog [options] myebook.mobi"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:528 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:533
msgid "Raw MOBI HTML saved in" msgid "Raw MOBI HTML saved in"
msgstr "" msgstr ""
@ -1916,7 +1917,7 @@ msgid "Adding books to database..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:694 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
msgid "Reading metadata..." msgid "Reading metadata..."
msgstr "" msgstr ""
@ -2142,7 +2143,7 @@ msgid "Access log:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:406
msgid "Failed to start content server" msgid "Failed to start content server"
msgstr "" msgstr ""
@ -2566,7 +2567,7 @@ msgid " is not a valid picture"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "Cannot convert" msgid "Cannot convert"
msgstr "" msgstr ""
@ -3241,47 +3242,52 @@ msgstr ""
msgid "A&utomatically set author sort" msgid "A&utomatically set author sort"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118
msgid "No format selected"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
msgid "Could not read metadata" msgid "Could not read metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129
msgid "Could not read metadata from %s format" msgid "Could not read metadata from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
msgid "Could not read cover" msgid "Could not read cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:138
msgid "Could not read cover from %s format" msgid "Could not read cover from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:144
msgid "The cover in the %s format is invalid" msgid "The cover in the %s format is invalid"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:323
msgid "" msgid ""
"<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you " "<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you "
"do not have one, you can <a href='http://www.librarything.com'>register</a> " "do not have one, you can <a href='http://www.librarything.com'>register</a> "
"for free!.</p>" "for free!.</p>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "<b>Could not fetch cover.</b><br/>" msgid "<b>Could not fetch cover.</b><br/>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "Could not fetch cover" msgid "Could not fetch cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "Cannot fetch cover" msgid "Cannot fetch cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "You must specify the ISBN identifier for this book." msgid "You must specify the ISBN identifier for this book."
msgstr "" msgstr ""
@ -3441,9 +3447,9 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809 #: /home/kovid/work/calibre/src/calibre/library/database2.py:810
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813 #: /home/kovid/work/calibre/src/calibre/library/database2.py:814
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
msgid "News" msgid "News"
msgstr "" msgstr ""
@ -4127,7 +4133,7 @@ msgid "Save to disk in a single directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:193 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:193
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1248 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "" msgstr ""
@ -4165,31 +4171,31 @@ msgid "Bad database location"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:290
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1388 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1395
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:440 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:445
msgid "Browse by covers" msgid "Browse by covers"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
msgid "Device: " msgid "Device: "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
msgid " detected." msgid " detected."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
msgid "Connected " msgid "Connected "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:563 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:569
msgid "Device database corrupted" msgid "Device database corrupted"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
msgid "" msgid ""
"\n" "\n"
" <p>The database of books on the reader is corrupted. Try the " " <p>The database of books on the reader is corrupted. Try the "
@ -4205,276 +4211,276 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
msgid "Books" msgid "Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
msgid "EPUB Books" msgid "EPUB Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
msgid "LRF Books" msgid "LRF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
msgid "HTML Books" msgid "HTML Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
msgid "LIT Books" msgid "LIT Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
msgid "MOBI Books" msgid "MOBI Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
msgid "Text books" msgid "Text books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
msgid "PDF Books" msgid "PDF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
msgid "Comics" msgid "Comics"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
msgid "Archives" msgid "Archives"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
msgid "Adding books..." msgid "Adding books..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:735 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:742
msgid "No space on device" msgid "No space on device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
msgid "" msgid ""
"<p>Cannot upload books to device there is no more free space available " "<p>Cannot upload books to device there is no more free space available "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "No books selected" msgid "No books selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:887 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:894
msgid "Sending news to device." msgid "Sending news to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:941 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:948
msgid "Sending books to device." msgid "Sending books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:944 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:951
msgid "No suitable formats" msgid "No suitable formats"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
msgid "" msgid ""
"Could not upload the following books to the device, as no suitable formats " "Could not upload the following books to the device, as no suitable formats "
"were found:<br><ul>%s</ul>" "were found:<br><ul>%s</ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:973
msgid "Saving to disk..." msgid "Saving to disk..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
msgid "Saved" msgid "Saved"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:977 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:984
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
msgid "" msgid ""
"<p>Could not save the following books to disk, because the %s format is not " "<p>Could not save the following books to disk, because the %s format is not "
"available for them:<ul>" "available for them:<ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:995 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1002
msgid "Could not save some ebooks" msgid "Could not save some ebooks"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1024
msgid "Fetching news from " msgid "Fetching news from "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
msgid " fetched." msgid " fetched."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
msgid "No book selected" msgid "No book selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
msgid "Cannot view" msgid "Cannot view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1201 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1208
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure" msgid "Cannot configure"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
msgid "Copying database" msgid "Copying database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1259 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1266
msgid "Copying library to " msgid "Copying library to "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
msgid "Invalid database" msgid "Invalid database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
msgid "" msgid ""
"<p>An invalid database already exists at %s, delete it before trying to move " "<p>An invalid database already exists at %s, delete it before trying to move "
"the existing database.<br>Error: %s" "the existing database.<br>Error: %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1283
msgid "Could not move database" msgid "Could not move database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1296 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1303
msgid "No detailed info available" msgid "No detailed info available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1297 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1304
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1340 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1347
msgid "Error talking to device" msgid "Error talking to device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
msgid "Conversion Error" msgid "Conversion Error"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using 3rd party tools." "first remove the DRM using 3rd party tools."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1454 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1461
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" 'Quitting may cause corruption on the device.<br>\n" " 'Quitting may cause corruption on the device.<br>\n"
" 'Are you sure you want to quit?" " 'Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "" msgid ""
"%s has been updated to version %s. See the <a " "%s has been updated to version %s. See the <a "
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
"Visit the download page?" "Visit the download page?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "Update available" msgid "Update available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1531 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1538
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1533 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1540
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1535 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1542
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "" msgstr ""
@ -5214,20 +5220,20 @@ msgid ""
"For help on an individual command: %%prog command --help\n" "For help on an individual command: %%prog command --help\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1221 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1228
msgid "<p>Copying books to %s<br><center>" msgid "<p>Copying books to %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
msgid "Copying <b>%s</b>" msgid "Copying <b>%s</b>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1314 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1321
msgid "<p>Migrating old database to ebook library in %s<br><center>" msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
msgid "Compacting database" msgid "Compacting database"
msgstr "" msgstr ""
@ -5258,39 +5264,39 @@ msgstr ""
msgid "Created by " msgid "Created by "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:531 #: /home/kovid/work/calibre/src/calibre/utils/config.py:536
msgid "Path to the database in which books are stored" msgid "Path to the database in which books are stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:533 #: /home/kovid/work/calibre/src/calibre/utils/config.py:538
msgid "Pattern to guess metadata from filenames" msgid "Pattern to guess metadata from filenames"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:535 #: /home/kovid/work/calibre/src/calibre/utils/config.py:540
msgid "Access key for isbndb.com" msgid "Access key for isbndb.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:537 #: /home/kovid/work/calibre/src/calibre/utils/config.py:542
msgid "Default timeout for network operations (seconds)" msgid "Default timeout for network operations (seconds)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:539 #: /home/kovid/work/calibre/src/calibre/utils/config.py:544
msgid "Path to directory in which your library of books is stored" msgid "Path to directory in which your library of books is stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:541 #: /home/kovid/work/calibre/src/calibre/utils/config.py:546
msgid "The language in which to display the user interface" msgid "The language in which to display the user interface"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:543 #: /home/kovid/work/calibre/src/calibre/utils/config.py:548
msgid "The default output format for ebook conversions." msgid "The default output format for ebook conversions."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:545 #: /home/kovid/work/calibre/src/calibre/utils/config.py:550
msgid "Read metadata from files" msgid "Read metadata from files"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:547 #: /home/kovid/work/calibre/src/calibre/utils/config.py:552
msgid "The priority of worker processes" msgid "The priority of worker processes"
msgstr "" msgstr ""
@ -5333,28 +5339,28 @@ msgid "Customize the download engine"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:460
msgid "" msgid ""
"Timeout in seconds to wait for a response from the server. Default: %default " "Timeout in seconds to wait for a response from the server. Default: %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
msgid "" msgid ""
"Minimum interval in seconds between consecutive fetches. Default is %default " "Minimum interval in seconds between consecutive fetches. Default is %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470
msgid "" msgid ""
"The character encoding for the websites you are trying to download. The " "The character encoding for the websites you are trying to download. The "
"default is to try and guess the encoding." "default is to try and guess the encoding."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
msgid "" msgid ""
"Only links that match this regular expression will be followed. This option " "Only links that match this regular expression will be followed. This option "
"can be specified multiple times, in which case as long as a link matches any " "can be specified multiple times, in which case as long as a link matches any "
@ -5362,7 +5368,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
msgid "" msgid ""
"Any link that matches this regular expression will be ignored. This option " "Any link that matches this regular expression will be ignored. This option "
"can be specified multiple times, in which case as long as any regexp matches " "can be specified multiple times, in which case as long as any regexp matches "
@ -5372,7 +5378,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476
msgid "Do not download CSS stylesheets." msgid "Do not download CSS stylesheets."
msgstr "" msgstr ""
@ -5559,12 +5565,12 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:63 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:21
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64
@ -5577,11 +5583,13 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:13
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chicago_breaking_news.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
@ -5655,17 +5663,17 @@ msgstr ""
msgid "English" msgid "English"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:29
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:19 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:27
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
msgid "Serbian" msgid "Serbian"
msgstr "" msgstr ""
@ -5697,33 +5705,33 @@ msgstr ""
msgid "German" msgid "German"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:23 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:22
msgid "Croatian" msgid "Croatian"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
msgid "" msgid ""
"%prog URL\n" "%prog URL\n"
"\n" "\n"
"Where URL is for example http://google.com" "Where URL is for example http://google.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:455 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:457
msgid "Base directory into which URL is saved. Default is %default" msgid "Base directory into which URL is saved. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
msgid "" msgid ""
"Maximum number of levels to recurse i.e. depth of links to follow. Default " "Maximum number of levels to recurse i.e. depth of links to follow. Default "
"%default" "%default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
msgid "" msgid ""
"The maximum number of files to download. This only applies to files from <a " "The maximum number of files to download. This only applies to files from <a "
"href> tags. Default is %default" "href> tags. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477
msgid "Show detailed output information. Useful for debugging" msgid "Show detailed output information. Useful for debugging"
msgstr "" msgstr ""

View File

@ -6,14 +6,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre 0.4.55\n" "Project-Id-Version: calibre 0.4.55\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-02-11 03:58+0000\n" "POT-Creation-Date: 2009-02-13 20:29+0000\n"
"PO-Revision-Date: 2009-01-27 19:11+0000\n" "PO-Revision-Date: 2009-01-27 19:11+0000\n"
"Last-Translator: Andrew V. Skvortsov <Unknown>\n" "Last-Translator: Andrew V. Skvortsov <Unknown>\n"
"Language-Team: American English <kde-i18n-doc@lists.kde.org>\n" "Language-Team: American English <kde-i18n-doc@lists.kde.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-02-13 19:24+0000\n" "X-Launchpad-Export-Date: 2009-02-18 20:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
"X-Poedit-Country: RUSSIAN FEDERATION\n" "X-Poedit-Country: RUSSIAN FEDERATION\n"
"X-Poedit-Language: Russian\n" "X-Poedit-Language: Russian\n"
@ -61,7 +61,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:487
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574
@ -82,20 +82,21 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:894 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:894
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:933 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:940
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123
#: /home/kovid/work/calibre/src/calibre/library/cli.py:257 #: /home/kovid/work/calibre/src/calibre/library/cli.py:257
#: /home/kovid/work/calibre/src/calibre/library/database.py:916 #: /home/kovid/work/calibre/src/calibre/library/database.py:916
#: /home/kovid/work/calibre/src/calibre/library/database2.py:472 #: /home/kovid/work/calibre/src/calibre/library/database2.py:473
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484 #: /home/kovid/work/calibre/src/calibre/library/database2.py:485
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865 #: /home/kovid/work/calibre/src/calibre/library/database2.py:866
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900 #: /home/kovid/work/calibre/src/calibre/library/database2.py:901
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1408
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459
#: /home/kovid/work/calibre/src/calibre/library/server.py:315 #: /home/kovid/work/calibre/src/calibre/library/server.py:315
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51
msgid "Unknown" msgid "Unknown"
@ -673,7 +674,7 @@ msgid "%prog [options] LITFILE"
msgstr "%prog [options] LITFILE" msgstr "%prog [options] LITFILE"
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:506 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
msgid "Output directory. Defaults to current directory." msgid "Output directory. Defaults to current directory."
msgstr "Выходная директория. По умолчанию текущая директория." msgstr "Выходная директория. По умолчанию текущая директория."
@ -690,7 +691,7 @@ msgid "Useful for debugging."
msgstr "Использовать для отладки." msgstr "Использовать для отладки."
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:530 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:535
msgid "OEB ebook created in" msgid "OEB ebook created in"
msgstr "OEB книга создана в" msgstr "OEB книга создана в"
@ -1830,11 +1831,11 @@ msgstr "Загрузка: rb-meta file.rb"
msgid "Creating Mobipocket file from EPUB..." msgid "Creating Mobipocket file from EPUB..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:504 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:509
msgid "%prog [options] myebook.mobi" msgid "%prog [options] myebook.mobi"
msgstr "%prog [options] myebook.mobi" msgstr "%prog [options] myebook.mobi"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:528 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:533
msgid "Raw MOBI HTML saved in" msgid "Raw MOBI HTML saved in"
msgstr "Непосредственно MOBI HTML сохранен в" msgstr "Непосредственно MOBI HTML сохранен в"
@ -2129,7 +2130,7 @@ msgid "Adding books to database..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:694 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
msgid "Reading metadata..." msgid "Reading metadata..."
msgstr "" msgstr ""
@ -2357,7 +2358,7 @@ msgid "Access log:"
msgstr "Лог доступа:" msgstr "Лог доступа:"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:406
msgid "Failed to start content server" msgid "Failed to start content server"
msgstr "Сбой запуска контент сервера" msgstr "Сбой запуска контент сервера"
@ -2794,7 +2795,7 @@ msgid " is not a valid picture"
msgstr " неверное изображение" msgstr " неверное изображение"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "Cannot convert" msgid "Cannot convert"
msgstr "Не преобразуется" msgstr "Не преобразуется"
@ -3500,28 +3501,33 @@ msgstr "Формат удаления:"
msgid "A&utomatically set author sort" msgid "A&utomatically set author sort"
msgstr "Автоматически выставить сортировку по автору" msgstr "Автоматически выставить сортировку по автору"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118
msgid "No format selected"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
msgid "Could not read metadata" msgid "Could not read metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129
msgid "Could not read metadata from %s format" msgid "Could not read metadata from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
msgid "Could not read cover" msgid "Could not read cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:138
msgid "Could not read cover from %s format" msgid "Could not read cover from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:144
msgid "The cover in the %s format is invalid" msgid "The cover in the %s format is invalid"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:323
msgid "" msgid ""
"<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you " "<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you "
"do not have one, you can <a href='http://www.librarything.com'>register</a> " "do not have one, you can <a href='http://www.librarything.com'>register</a> "
@ -3531,19 +3537,19 @@ msgstr ""
"<br/>Если Вы их не имеете, выможете бесплатно <a " "<br/>Если Вы их не имеете, выможете бесплатно <a "
"href='http://www.librarything.com'>зарегистрироваться</a>.</p>" "href='http://www.librarything.com'>зарегистрироваться</a>.</p>"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "<b>Could not fetch cover.</b><br/>" msgid "<b>Could not fetch cover.</b><br/>"
msgstr "<b>Не могу получить обложку.</b><br/>" msgstr "<b>Не могу получить обложку.</b><br/>"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "Could not fetch cover" msgid "Could not fetch cover"
msgstr "Не смогу получить обложку" msgstr "Не смогу получить обложку"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "Cannot fetch cover" msgid "Cannot fetch cover"
msgstr "Не могу получить обложку" msgstr "Не могу получить обложку"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "You must specify the ISBN identifier for this book." msgid "You must specify the ISBN identifier for this book."
msgstr "Вы должны назначить ISBN идентификатор для этой книги" msgstr "Вы должны назначить ISBN идентификатор для этой книги"
@ -3706,9 +3712,9 @@ msgstr "Добавить нужный источник новостей"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809 #: /home/kovid/work/calibre/src/calibre/library/database2.py:810
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813 #: /home/kovid/work/calibre/src/calibre/library/database2.py:814
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
msgid "News" msgid "News"
msgstr "Новости" msgstr "Новости"
@ -4420,7 +4426,7 @@ msgid "Save to disk in a single directory"
msgstr "Сохранить на диск в одну директорию" msgstr "Сохранить на диск в одну директорию"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:193 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:193
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1248 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "Сохранять на диск только формат %s" msgstr "Сохранять на диск только формат %s"
@ -4458,31 +4464,31 @@ msgid "Bad database location"
msgstr "Плохое расположение базы данных" msgstr "Плохое расположение базы данных"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:290
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1388 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1395
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "Выбререте расположение Вашей библиотеки электронных книг." msgstr "Выбререте расположение Вашей библиотеки электронных книг."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:440 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:445
msgid "Browse by covers" msgid "Browse by covers"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
msgid "Device: " msgid "Device: "
msgstr "Устройство: " msgstr "Устройство: "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
msgid " detected." msgid " detected."
msgstr " определено." msgstr " определено."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
msgid "Connected " msgid "Connected "
msgstr "Подключено " msgstr "Подключено "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:563 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:569
msgid "Device database corrupted" msgid "Device database corrupted"
msgstr "База данных устройства неисправна" msgstr "База данных устройства неисправна"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
msgid "" msgid ""
"\n" "\n"
" <p>The database of books on the reader is corrupted. Try the " " <p>The database of books on the reader is corrupted. Try the "
@ -4512,100 +4518,100 @@ msgstr ""
" </ol>\n" " </ol>\n"
" " " "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "Загрузка книг в устройство." msgstr "Загрузка книг в устройство."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
msgid "Books" msgid "Books"
msgstr "Книги" msgstr "Книги"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
msgid "EPUB Books" msgid "EPUB Books"
msgstr "Книги EPUB" msgstr "Книги EPUB"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
msgid "LRF Books" msgid "LRF Books"
msgstr "Книги LRF" msgstr "Книги LRF"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
msgid "HTML Books" msgid "HTML Books"
msgstr "Книги HTML" msgstr "Книги HTML"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
msgid "LIT Books" msgid "LIT Books"
msgstr "Книги LIT" msgstr "Книги LIT"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
msgid "MOBI Books" msgid "MOBI Books"
msgstr "Книги MOBI" msgstr "Книги MOBI"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
msgid "Text books" msgid "Text books"
msgstr "Текстовые книги" msgstr "Текстовые книги"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
msgid "PDF Books" msgid "PDF Books"
msgstr "Книги PDF" msgstr "Книги PDF"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
msgid "Comics" msgid "Comics"
msgstr "Комиксы" msgstr "Комиксы"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
msgid "Archives" msgid "Archives"
msgstr "Архивы" msgstr "Архивы"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
msgid "Adding books..." msgid "Adding books..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:735 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:742
msgid "No space on device" msgid "No space on device"
msgstr "Нет места на устройстве" msgstr "Нет места на устройстве"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
msgid "" msgid ""
"<p>Cannot upload books to device there is no more free space available " "<p>Cannot upload books to device there is no more free space available "
msgstr "" msgstr ""
"<p>Немогу загрузить книги на устройство, из-за отсутствия свободной памяти. " "<p>Немогу загрузить книги на устройство, из-за отсутствия свободной памяти. "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "Удаляются книги из устройства." msgstr "Удаляются книги из устройства."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "Невозможно редактировать метаданные" msgstr "Невозможно редактировать метаданные"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "No books selected" msgid "No books selected"
msgstr "Нет Выбранных книг" msgstr "Нет Выбранных книг"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:887 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:894
msgid "Sending news to device." msgid "Sending news to device."
msgstr "Отправляются новости на устройство." msgstr "Отправляются новости на устройство."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:941 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:948
msgid "Sending books to device." msgid "Sending books to device."
msgstr "Отправка книги в устройство" msgstr "Отправка книги в устройство"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:944 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:951
msgid "No suitable formats" msgid "No suitable formats"
msgstr "Нет подходящего формата" msgstr "Нет подходящего формата"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
msgid "" msgid ""
"Could not upload the following books to the device, as no suitable formats " "Could not upload the following books to the device, as no suitable formats "
"were found:<br><ul>%s</ul>" "were found:<br><ul>%s</ul>"
@ -4613,87 +4619,87 @@ msgstr ""
"Не могу загрузить книги на устройство, так как они не соответствуют формату: " "Не могу загрузить книги на устройство, так как они не соответствуют формату: "
"<br><ul>%s</ul>" "<br><ul>%s</ul>"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "Невозможно сохранить на диск" msgstr "Невозможно сохранить на диск"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:973
msgid "Saving to disk..." msgid "Saving to disk..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
msgid "Saved" msgid "Saved"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:977 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:984
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "Выберете директорию получателя" msgstr "Выберете директорию получателя"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
msgid "" msgid ""
"<p>Could not save the following books to disk, because the %s format is not " "<p>Could not save the following books to disk, because the %s format is not "
"available for them:<ul>" "available for them:<ul>"
msgstr "" msgstr ""
"<p>Не могу сохранить гники на диск потому, что формат %s не доступен для:<ul>" "<p>Не могу сохранить гники на диск потому, что формат %s не доступен для:<ul>"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:995 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1002
msgid "Could not save some ebooks" msgid "Could not save some ebooks"
msgstr "Не могу сохранить некоторые книги" msgstr "Не могу сохранить некоторые книги"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1024
msgid "Fetching news from " msgid "Fetching news from "
msgstr "Вызвать новость из " msgstr "Вызвать новость из "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
msgid " fetched." msgid " fetched."
msgstr " загружено." msgstr " загружено."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
msgid "No book selected" msgid "No book selected"
msgstr "Нет выбранных книг" msgstr "Нет выбранных книг"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
msgid "Cannot view" msgid "Cannot view"
msgstr "Невозможно просмотреть" msgstr "Невозможно просмотреть"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "Выберете для просмотра формат" msgstr "Выберете для просмотра формат"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "Не могу открыть папку" msgstr "Не могу открыть папку"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1201 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1208
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "%s неизвестный формат." msgstr "%s неизвестный формат."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure" msgid "Cannot configure"
msgstr "Невозможно настроить" msgstr "Невозможно настроить"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "Пока запущено задание, не могу настроить" msgstr "Пока запущено задание, не могу настроить"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
msgid "Copying database" msgid "Copying database"
msgstr "Копирование базы данных" msgstr "Копирование базы данных"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1259 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1266
msgid "Copying library to " msgid "Copying library to "
msgstr "Копирование библиотеки в " msgstr "Копирование библиотеки в "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
msgid "Invalid database" msgid "Invalid database"
msgstr "Неверная база данных" msgstr "Неверная база данных"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
msgid "" msgid ""
"<p>An invalid database already exists at %s, delete it before trying to move " "<p>An invalid database already exists at %s, delete it before trying to move "
"the existing database.<br>Error: %s" "the existing database.<br>Error: %s"
@ -4701,23 +4707,23 @@ msgstr ""
"<p>Уже используется неправильная база данных %s, удалите ее прежде, чем " "<p>Уже используется неправильная база данных %s, удалите ее прежде, чем "
"перенести используемую. <br>Ошибка: %s" "перенести используемую. <br>Ошибка: %s"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1283
msgid "Could not move database" msgid "Could not move database"
msgstr "Невозможно перенести базу данных" msgstr "Невозможно перенести базу данных"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1296 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1303
msgid "No detailed info available" msgid "No detailed info available"
msgstr "Нет доступной подробной информации" msgstr "Нет доступной подробной информации"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1297 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1304
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "Не доступна подробная информация книг на устройстве" msgstr "Не доступна подробная информация книг на устройстве"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1340 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1347
msgid "Error talking to device" msgid "Error talking to device"
msgstr "Ошибка согласования устройства" msgstr "Ошибка согласования устройства"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
@ -4725,13 +4731,13 @@ msgstr ""
"Была временная ощибка общения с устройством. Пожалуста, переподключите " "Была временная ощибка общения с устройством. Пожалуста, переподключите "
"устройство или перегрузите его." "устройство или перегрузите его."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
msgid "Conversion Error" msgid "Conversion Error"
msgstr "Ошибка преобразования" msgstr "Ошибка преобразования"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using 3rd party tools." "first remove the DRM using 3rd party tools."
@ -4739,59 +4745,59 @@ msgstr ""
"<p>Не могу преобразовать: %s<p>Это <a href=\"%s\">DRM</a> книга. Перед " "<p>Не могу преобразовать: %s<p>Это <a href=\"%s\">DRM</a> книга. Перед "
"преобразование удалите DRM используя программное обеспечение." "преобразование удалите DRM используя программное обеспечение."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1454 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1461
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "Имеется активное задание. Вы всеравно хотите выйти?" msgstr "Имеется активное задание. Вы всеравно хотите выйти?"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" 'Quitting may cause corruption on the device.<br>\n" " 'Quitting may cause corruption on the device.<br>\n"
" 'Are you sure you want to quit?" " 'Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "ПРЕДУПРЕЖДЕНИЕ: Активное задание" msgstr "ПРЕДУПРЕЖДЕНИЕ: Активное задание"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "" msgid ""
"%s has been updated to version %s. See the <a " "%s has been updated to version %s. See the <a "
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
"Visit the download page?" "Visit the download page?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "Update available" msgid "Update available"
msgstr "Доступно обновление" msgstr "Доступно обновление"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1531 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1538
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1533 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1540
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1535 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1542
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "" msgstr ""
@ -5531,20 +5537,20 @@ msgid ""
"For help on an individual command: %%prog command --help\n" "For help on an individual command: %%prog command --help\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1221 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1228
msgid "<p>Copying books to %s<br><center>" msgid "<p>Copying books to %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
msgid "Copying <b>%s</b>" msgid "Copying <b>%s</b>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1314 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1321
msgid "<p>Migrating old database to ebook library in %s<br><center>" msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
msgid "Compacting database" msgid "Compacting database"
msgstr "" msgstr ""
@ -5575,39 +5581,39 @@ msgstr ""
msgid "Created by " msgid "Created by "
msgstr "Создано " msgstr "Создано "
#: /home/kovid/work/calibre/src/calibre/utils/config.py:531 #: /home/kovid/work/calibre/src/calibre/utils/config.py:536
msgid "Path to the database in which books are stored" msgid "Path to the database in which books are stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:533 #: /home/kovid/work/calibre/src/calibre/utils/config.py:538
msgid "Pattern to guess metadata from filenames" msgid "Pattern to guess metadata from filenames"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:535 #: /home/kovid/work/calibre/src/calibre/utils/config.py:540
msgid "Access key for isbndb.com" msgid "Access key for isbndb.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:537 #: /home/kovid/work/calibre/src/calibre/utils/config.py:542
msgid "Default timeout for network operations (seconds)" msgid "Default timeout for network operations (seconds)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:539 #: /home/kovid/work/calibre/src/calibre/utils/config.py:544
msgid "Path to directory in which your library of books is stored" msgid "Path to directory in which your library of books is stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:541 #: /home/kovid/work/calibre/src/calibre/utils/config.py:546
msgid "The language in which to display the user interface" msgid "The language in which to display the user interface"
msgstr "Язык для отображения пользовательского интерфейса" msgstr "Язык для отображения пользовательского интерфейса"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:543 #: /home/kovid/work/calibre/src/calibre/utils/config.py:548
msgid "The default output format for ebook conversions." msgid "The default output format for ebook conversions."
msgstr "Формат книги по умолчанию после преобразования." msgstr "Формат книги по умолчанию после преобразования."
#: /home/kovid/work/calibre/src/calibre/utils/config.py:545 #: /home/kovid/work/calibre/src/calibre/utils/config.py:550
msgid "Read metadata from files" msgid "Read metadata from files"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:547 #: /home/kovid/work/calibre/src/calibre/utils/config.py:552
msgid "The priority of worker processes" msgid "The priority of worker processes"
msgstr "" msgstr ""
@ -5650,7 +5656,7 @@ msgid "Customize the download engine"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:460
msgid "" msgid ""
"Timeout in seconds to wait for a response from the server. Default: %default " "Timeout in seconds to wait for a response from the server. Default: %default "
"s" "s"
@ -5658,7 +5664,7 @@ msgstr ""
"Максимальное время ожидания ответа от сервера. По умолчанию: %default с" "Максимальное время ожидания ответа от сервера. По умолчанию: %default с"
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
msgid "" msgid ""
"Minimum interval in seconds between consecutive fetches. Default is %default " "Minimum interval in seconds between consecutive fetches. Default is %default "
"s" "s"
@ -5667,7 +5673,7 @@ msgstr ""
"умолчанию: %default с" "умолчанию: %default с"
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470
msgid "" msgid ""
"The character encoding for the websites you are trying to download. The " "The character encoding for the websites you are trying to download. The "
"default is to try and guess the encoding." "default is to try and guess the encoding."
@ -5676,7 +5682,7 @@ msgstr ""
"попытка определения кодировки." "попытка определения кодировки."
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
msgid "" msgid ""
"Only links that match this regular expression will be followed. This option " "Only links that match this regular expression will be followed. This option "
"can be specified multiple times, in which case as long as a link matches any " "can be specified multiple times, in which case as long as a link matches any "
@ -5688,7 +5694,7 @@ msgstr ""
"выражений. По умолчанию, никакие ссылки не скачиваются." "выражений. По умолчанию, никакие ссылки не скачиваются."
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
msgid "" msgid ""
"Any link that matches this regular expression will be ignored. This option " "Any link that matches this regular expression will be ignored. This option "
"can be specified multiple times, in which case as long as any regexp matches " "can be specified multiple times, in which case as long as any regexp matches "
@ -5703,7 +5709,7 @@ msgstr ""
"match-regexp, то вначале будет учитываться --filter-regexp." "match-regexp, то вначале будет учитываться --filter-regexp."
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476
msgid "Do not download CSS stylesheets." msgid "Do not download CSS stylesheets."
msgstr "Не скачивать файлы стилей CSS." msgstr "Не скачивать файлы стилей CSS."
@ -5914,12 +5920,12 @@ msgstr "Достаавляется материал"
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:63 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:21
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64
@ -5932,11 +5938,13 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:13
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chicago_breaking_news.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
@ -6010,17 +6018,17 @@ msgstr ""
msgid "English" msgid "English"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:29
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:19 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:27
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
msgid "Serbian" msgid "Serbian"
msgstr "" msgstr ""
@ -6052,11 +6060,11 @@ msgstr ""
msgid "German" msgid "German"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:23 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:22
msgid "Croatian" msgid "Croatian"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
msgid "" msgid ""
"%prog URL\n" "%prog URL\n"
"\n" "\n"
@ -6066,12 +6074,12 @@ msgstr ""
"\n" "\n"
"Где URL на пример http://google.com" "Где URL на пример http://google.com"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:455 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:457
msgid "Base directory into which URL is saved. Default is %default" msgid "Base directory into which URL is saved. Default is %default"
msgstr "" msgstr ""
"Основная директория, в которую сохранятся URL. По умолчанию: %default" "Основная директория, в которую сохранятся URL. По умолчанию: %default"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
msgid "" msgid ""
"Maximum number of levels to recurse i.e. depth of links to follow. Default " "Maximum number of levels to recurse i.e. depth of links to follow. Default "
"%default" "%default"
@ -6079,7 +6087,7 @@ msgstr ""
"Максимально число уровней вложения, т.е. глубина последовательных ссылок. По " "Максимально число уровней вложения, т.е. глубина последовательных ссылок. По "
"умолчанию: %default" "умолчанию: %default"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
msgid "" msgid ""
"The maximum number of files to download. This only applies to files from <a " "The maximum number of files to download. This only applies to files from <a "
"href> tags. Default is %default" "href> tags. Default is %default"
@ -6087,7 +6095,7 @@ msgstr ""
"Максимальное количество файлов для скачивания. Применимо только к файлам из " "Максимальное количество файлов для скачивания. Применимо только к файлам из "
"тегов <a href>. По умолчанию: %default" "тегов <a href>. По умолчанию: %default"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477
msgid "Show detailed output information. Useful for debugging" msgid "Show detailed output information. Useful for debugging"
msgstr "Показать детальную информацию. Используется для отладки." msgstr "Показать детальную информацию. Используется для отладки."

File diff suppressed because it is too large Load Diff

View File

@ -6,14 +6,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre 0.4.17\n" "Project-Id-Version: calibre 0.4.17\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-02-11 03:58+0000\n" "POT-Creation-Date: 2009-02-13 20:29+0000\n"
"PO-Revision-Date: 2009-01-19 08:55+0000\n" "PO-Revision-Date: 2009-01-19 08:55+0000\n"
"Last-Translator: Janko Slatenšek <Unknown>\n" "Last-Translator: Janko Slatenšek <Unknown>\n"
"Language-Team: sl\n" "Language-Team: sl\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-02-13 19:24+0000\n" "X-Launchpad-Export-Date: 2009-02-18 20:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
"Generated-By: pygettext.py 1.5\n" "Generated-By: pygettext.py 1.5\n"
@ -57,7 +57,7 @@ msgstr "Ne naredi popolnoma nič"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:487
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574
@ -78,20 +78,21 @@ msgstr "Ne naredi popolnoma nič"
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:894 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:894
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:933 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:940
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123
#: /home/kovid/work/calibre/src/calibre/library/cli.py:257 #: /home/kovid/work/calibre/src/calibre/library/cli.py:257
#: /home/kovid/work/calibre/src/calibre/library/database.py:916 #: /home/kovid/work/calibre/src/calibre/library/database.py:916
#: /home/kovid/work/calibre/src/calibre/library/database2.py:472 #: /home/kovid/work/calibre/src/calibre/library/database2.py:473
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484 #: /home/kovid/work/calibre/src/calibre/library/database2.py:485
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865 #: /home/kovid/work/calibre/src/calibre/library/database2.py:866
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900 #: /home/kovid/work/calibre/src/calibre/library/database2.py:901
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1408
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459
#: /home/kovid/work/calibre/src/calibre/library/server.py:315 #: /home/kovid/work/calibre/src/calibre/library/server.py:315
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51
msgid "Unknown" msgid "Unknown"
@ -617,7 +618,7 @@ msgid "%prog [options] LITFILE"
msgstr "%prog [options] LITFILE" msgstr "%prog [options] LITFILE"
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:506 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
msgid "Output directory. Defaults to current directory." msgid "Output directory. Defaults to current directory."
msgstr "Izhodni direktorij. Privzet je trenutni direktorij." msgstr "Izhodni direktorij. Privzet je trenutni direktorij."
@ -632,7 +633,7 @@ msgid "Useful for debugging."
msgstr "Koristno za razhroščevanje." msgstr "Koristno za razhroščevanje."
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:530 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:535
msgid "OEB ebook created in" msgid "OEB ebook created in"
msgstr "OEB eknjiga ustvarjena v" msgstr "OEB eknjiga ustvarjena v"
@ -1731,11 +1732,11 @@ msgstr "Uporaba: rb-meta datoteka.rb"
msgid "Creating Mobipocket file from EPUB..." msgid "Creating Mobipocket file from EPUB..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:504 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:509
msgid "%prog [options] myebook.mobi" msgid "%prog [options] myebook.mobi"
msgstr "%prog [options] mojaeknjiga.mobi" msgstr "%prog [options] mojaeknjiga.mobi"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:528 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:533
msgid "Raw MOBI HTML saved in" msgid "Raw MOBI HTML saved in"
msgstr "Neobdelan MOBI HTML shranjen v" msgstr "Neobdelan MOBI HTML shranjen v"
@ -2030,7 +2031,7 @@ msgid "Adding books to database..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:694 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
msgid "Reading metadata..." msgid "Reading metadata..."
msgstr "" msgstr ""
@ -2256,7 +2257,7 @@ msgid "Access log:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:406
msgid "Failed to start content server" msgid "Failed to start content server"
msgstr "" msgstr ""
@ -2682,7 +2683,7 @@ msgid " is not a valid picture"
msgstr " ni veljavna slika" msgstr " ni veljavna slika"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "Cannot convert" msgid "Cannot convert"
msgstr "Pretvorba ni možna" msgstr "Pretvorba ni možna"
@ -3374,28 +3375,33 @@ msgstr ""
msgid "A&utomatically set author sort" msgid "A&utomatically set author sort"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118
msgid "No format selected"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
msgid "Could not read metadata" msgid "Could not read metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129
msgid "Could not read metadata from %s format" msgid "Could not read metadata from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
msgid "Could not read cover" msgid "Could not read cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:138
msgid "Could not read cover from %s format" msgid "Could not read cover from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:144
msgid "The cover in the %s format is invalid" msgid "The cover in the %s format is invalid"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:323
msgid "" msgid ""
"<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you " "<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you "
"do not have one, you can <a href='http://www.librarything.com'>register</a> " "do not have one, you can <a href='http://www.librarything.com'>register</a> "
@ -3405,19 +3411,19 @@ msgstr ""
"gesla še nimate se lahko <a " "gesla še nimate se lahko <a "
"href='http://www.librarything.com'>registrirate</a> zastonj!</p>" "href='http://www.librarything.com'>registrirate</a> zastonj!</p>"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "<b>Could not fetch cover.</b><br/>" msgid "<b>Could not fetch cover.</b><br/>"
msgstr "<b>Prenos naslovnice ni uspel.</b><br/>" msgstr "<b>Prenos naslovnice ni uspel.</b><br/>"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "Could not fetch cover" msgid "Could not fetch cover"
msgstr "Prenos naslovnice ni uspel" msgstr "Prenos naslovnice ni uspel"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "Cannot fetch cover" msgid "Cannot fetch cover"
msgstr "Prenos naslovnice ni možen" msgstr "Prenos naslovnice ni možen"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "You must specify the ISBN identifier for this book." msgid "You must specify the ISBN identifier for this book."
msgstr "Določiti morate ISBN oznako te knjige." msgstr "Določiti morate ISBN oznako te knjige."
@ -3578,9 +3584,9 @@ msgstr "Dodaj vir novic po meri"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809 #: /home/kovid/work/calibre/src/calibre/library/database2.py:810
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813 #: /home/kovid/work/calibre/src/calibre/library/database2.py:814
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
msgid "News" msgid "News"
msgstr "" msgstr ""
@ -4275,7 +4281,7 @@ msgid "Save to disk in a single directory"
msgstr "Shrani na disk v en direktorij" msgstr "Shrani na disk v en direktorij"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:193 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:193
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1248 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "Shrani samo %s format na disk" msgstr "Shrani samo %s format na disk"
@ -4313,31 +4319,31 @@ msgid "Bad database location"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:290
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1388 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1395
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "Izberite lokacijo za vašo eKnjižnico." msgstr "Izberite lokacijo za vašo eKnjižnico."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:440 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:445
msgid "Browse by covers" msgid "Browse by covers"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
msgid "Device: " msgid "Device: "
msgstr "Naprava: " msgstr "Naprava: "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
msgid " detected." msgid " detected."
msgstr " zaznan." msgstr " zaznan."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
msgid "Connected " msgid "Connected "
msgstr "Povezan " msgstr "Povezan "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:563 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:569
msgid "Device database corrupted" msgid "Device database corrupted"
msgstr "Podatkovna baza poškodovana" msgstr "Podatkovna baza poškodovana"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
msgid "" msgid ""
"\n" "\n"
" <p>The database of books on the reader is corrupted. Try the " " <p>The database of books on the reader is corrupted. Try the "
@ -4367,100 +4373,100 @@ msgstr ""
" </ol>\n" " </ol>\n"
" " " "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "Prenašanje knjig na napravo." msgstr "Prenašanje knjig na napravo."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
msgid "Books" msgid "Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
msgid "EPUB Books" msgid "EPUB Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
msgid "LRF Books" msgid "LRF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
msgid "HTML Books" msgid "HTML Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
msgid "LIT Books" msgid "LIT Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
msgid "MOBI Books" msgid "MOBI Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
msgid "Text books" msgid "Text books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
msgid "PDF Books" msgid "PDF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
msgid "Comics" msgid "Comics"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
msgid "Archives" msgid "Archives"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
msgid "Adding books..." msgid "Adding books..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:735 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:742
msgid "No space on device" msgid "No space on device"
msgstr "Na napravi ni več prostora" msgstr "Na napravi ni več prostora"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
msgid "" msgid ""
"<p>Cannot upload books to device there is no more free space available " "<p>Cannot upload books to device there is no more free space available "
msgstr "" msgstr ""
"<p>Prenos knjig na napravo ni mogoč, ker na napravi ni dovolj prostora " "<p>Prenos knjig na napravo ni mogoč, ker na napravi ni dovolj prostora "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "Izbriši knjige iz naprave." msgstr "Izbriši knjige iz naprave."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "Spreminjanje meta podatkov ni mogoče" msgstr "Spreminjanje meta podatkov ni mogoče"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "No books selected" msgid "No books selected"
msgstr "Nobena od knjig ni izbrana." msgstr "Nobena od knjig ni izbrana."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:887 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:894
msgid "Sending news to device." msgid "Sending news to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:941 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:948
msgid "Sending books to device." msgid "Sending books to device."
msgstr "Pošlji knjige v napravo." msgstr "Pošlji knjige v napravo."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:944 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:951
msgid "No suitable formats" msgid "No suitable formats"
msgstr "Ni ustreznih formatov" msgstr "Ni ustreznih formatov"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
msgid "" msgid ""
"Could not upload the following books to the device, as no suitable formats " "Could not upload the following books to the device, as no suitable formats "
"were found:<br><ul>%s</ul>" "were found:<br><ul>%s</ul>"
@ -4468,23 +4474,23 @@ msgstr ""
"Prenos sledečih knjig ni uspel, ker ni bil najden potreben " "Prenos sledečih knjig ni uspel, ker ni bil najden potreben "
"format:<br><ul>%s</ul>" "format:<br><ul>%s</ul>"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "Ne morem shraniti na disk" msgstr "Ne morem shraniti na disk"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:973
msgid "Saving to disk..." msgid "Saving to disk..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
msgid "Saved" msgid "Saved"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:977 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:984
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
msgid "" msgid ""
"<p>Could not save the following books to disk, because the %s format is not " "<p>Could not save the following books to disk, because the %s format is not "
"available for them:<ul>" "available for them:<ul>"
@ -4492,64 +4498,64 @@ msgstr ""
"<p>Prenos sledečih knjig na disk ni uspek, ker %s format ni na voljo " "<p>Prenos sledečih knjig na disk ni uspek, ker %s format ni na voljo "
"zanje:<ul>" "zanje:<ul>"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:995 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1002
msgid "Could not save some ebooks" msgid "Could not save some ebooks"
msgstr "Nekaterih knjig ni bilo mogoče shraniti" msgstr "Nekaterih knjig ni bilo mogoče shraniti"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1024
msgid "Fetching news from " msgid "Fetching news from "
msgstr "Prenašam novice iz " msgstr "Prenašam novice iz "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
msgid " fetched." msgid " fetched."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
msgid "No book selected" msgid "No book selected"
msgstr "Nobena od knjig ni izbrana" msgstr "Nobena od knjig ni izbrana"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
msgid "Cannot view" msgid "Cannot view"
msgstr "Pogled ni možen" msgstr "Pogled ni možen"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "Izberite format, ki ga želite videti" msgstr "Izberite format, ki ga želite videti"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1201 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1208
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "%s nima razpoložljivih formatov." msgstr "%s nima razpoložljivih formatov."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure" msgid "Cannot configure"
msgstr "Nemogoča konfiguracija" msgstr "Nemogoča konfiguracija"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "Spreminjanje konfiguracije med poganjanjem poslov ni mogoče." msgstr "Spreminjanje konfiguracije med poganjanjem poslov ni mogoče."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
msgid "Copying database" msgid "Copying database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1259 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1266
msgid "Copying library to " msgid "Copying library to "
msgstr "Kopiram knjižnico v " msgstr "Kopiram knjižnico v "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
msgid "Invalid database" msgid "Invalid database"
msgstr "Neustrezna podatkovna baza" msgstr "Neustrezna podatkovna baza"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
msgid "" msgid ""
"<p>An invalid database already exists at %s, delete it before trying to move " "<p>An invalid database already exists at %s, delete it before trying to move "
"the existing database.<br>Error: %s" "the existing database.<br>Error: %s"
@ -4557,23 +4563,23 @@ msgstr ""
"<p>Neveljavna podatkovna baza že obstaja v %s, izbrišite jo preden poskusite " "<p>Neveljavna podatkovna baza že obstaja v %s, izbrišite jo preden poskusite "
"premakniti obstoječo podatkovno bazo.<br>Napaka: %s" "premakniti obstoječo podatkovno bazo.<br>Napaka: %s"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1283
msgid "Could not move database" msgid "Could not move database"
msgstr "Premik podatkovne baze ni bil mogoč" msgstr "Premik podatkovne baze ni bil mogoč"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1296 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1303
msgid "No detailed info available" msgid "No detailed info available"
msgstr "Podrobne informacije niso na voljo" msgstr "Podrobne informacije niso na voljo"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1297 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1304
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "Podrobne informacije za knjige na napravi niso na voljo." msgstr "Podrobne informacije za knjige na napravi niso na voljo."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1340 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1347
msgid "Error talking to device" msgid "Error talking to device"
msgstr "Napaka pri pogovoru z napravo" msgstr "Napaka pri pogovoru z napravo"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
@ -4581,46 +4587,46 @@ msgstr ""
"Prišlo je do napake pri komuniciranju z napravo. Prosim ponovno zaženite ali " "Prišlo je do napake pri komuniciranju z napravo. Prosim ponovno zaženite ali "
"izklopite in ponovno vklopite napravo." "izklopite in ponovno vklopite napravo."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
msgid "Conversion Error" msgid "Conversion Error"
msgstr "Pretvorna Napaka" msgstr "Pretvorna Napaka"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using 3rd party tools." "first remove the DRM using 3rd party tools."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1454 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1461
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" 'Quitting may cause corruption on the device.<br>\n" " 'Quitting may cause corruption on the device.<br>\n"
" 'Are you sure you want to quit?" " 'Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
@ -4628,7 +4634,7 @@ msgstr ""
"<span style=\"color:red; font-weight:bold\">Zadnja verzija: <a " "<span style=\"color:red; font-weight:bold\">Zadnja verzija: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "" msgid ""
"%s has been updated to version %s. See the <a " "%s has been updated to version %s. See the <a "
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
@ -4638,19 +4644,19 @@ msgstr ""
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">seznam " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">seznam "
"posodobitev</a>. Prikažem domačo stran?" "posodobitev</a>. Prikažem domačo stran?"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "Update available" msgid "Update available"
msgstr "Navoljo je posodobitev" msgstr "Navoljo je posodobitev"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1531 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1538
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1533 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1540
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1535 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1542
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "" msgstr ""
@ -5462,20 +5468,20 @@ msgid ""
"For help on an individual command: %%prog command --help\n" "For help on an individual command: %%prog command --help\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1221 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1228
msgid "<p>Copying books to %s<br><center>" msgid "<p>Copying books to %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
msgid "Copying <b>%s</b>" msgid "Copying <b>%s</b>"
msgstr "Kopiram <b>%s</b>" msgstr "Kopiram <b>%s</b>"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1314 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1321
msgid "<p>Migrating old database to ebook library in %s<br><center>" msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr "<p>Selitev stare podatkovne baze v knjižnico eknjig v %s<br><center>" msgstr "<p>Selitev stare podatkovne baze v knjižnico eknjig v %s<br><center>"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
msgid "Compacting database" msgid "Compacting database"
msgstr "Krčim bazo" msgstr "Krčim bazo"
@ -5506,39 +5512,39 @@ msgstr "%sUporaba%s: %s\n"
msgid "Created by " msgid "Created by "
msgstr "Ustvaril " msgstr "Ustvaril "
#: /home/kovid/work/calibre/src/calibre/utils/config.py:531 #: /home/kovid/work/calibre/src/calibre/utils/config.py:536
msgid "Path to the database in which books are stored" msgid "Path to the database in which books are stored"
msgstr "Pot do baze v kateri so shranjene knjige" msgstr "Pot do baze v kateri so shranjene knjige"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:533 #: /home/kovid/work/calibre/src/calibre/utils/config.py:538
msgid "Pattern to guess metadata from filenames" msgid "Pattern to guess metadata from filenames"
msgstr "Vzorec za ugotavljanje meta podatkov iz datotek" msgstr "Vzorec za ugotavljanje meta podatkov iz datotek"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:535 #: /home/kovid/work/calibre/src/calibre/utils/config.py:540
msgid "Access key for isbndb.com" msgid "Access key for isbndb.com"
msgstr "Vstopni ključ za isbndb.com" msgstr "Vstopni ključ za isbndb.com"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:537 #: /home/kovid/work/calibre/src/calibre/utils/config.py:542
msgid "Default timeout for network operations (seconds)" msgid "Default timeout for network operations (seconds)"
msgstr "Privzet čas neaktivnosti za omrežne operacije (sekunde)" msgstr "Privzet čas neaktivnosti za omrežne operacije (sekunde)"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:539 #: /home/kovid/work/calibre/src/calibre/utils/config.py:544
msgid "Path to directory in which your library of books is stored" msgid "Path to directory in which your library of books is stored"
msgstr "Pot do direktorija v katerem so shranjene vaše eknjige" msgstr "Pot do direktorija v katerem so shranjene vaše eknjige"
#: /home/kovid/work/calibre/src/calibre/utils/config.py:541 #: /home/kovid/work/calibre/src/calibre/utils/config.py:546
msgid "The language in which to display the user interface" msgid "The language in which to display the user interface"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:543 #: /home/kovid/work/calibre/src/calibre/utils/config.py:548
msgid "The default output format for ebook conversions." msgid "The default output format for ebook conversions."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:545 #: /home/kovid/work/calibre/src/calibre/utils/config.py:550
msgid "Read metadata from files" msgid "Read metadata from files"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:547 #: /home/kovid/work/calibre/src/calibre/utils/config.py:552
msgid "The priority of worker processes" msgid "The priority of worker processes"
msgstr "" msgstr ""
@ -5581,7 +5587,7 @@ msgid "Customize the download engine"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:460
msgid "" msgid ""
"Timeout in seconds to wait for a response from the server. Default: %default " "Timeout in seconds to wait for a response from the server. Default: %default "
"s" "s"
@ -5589,7 +5595,7 @@ msgstr ""
"Timeout v sekundah za čakanje odgovora od strežnika. Privzeto: %default s" "Timeout v sekundah za čakanje odgovora od strežnika. Privzeto: %default s"
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
msgid "" msgid ""
"Minimum interval in seconds between consecutive fetches. Default is %default " "Minimum interval in seconds between consecutive fetches. Default is %default "
"s" "s"
@ -5597,7 +5603,7 @@ msgstr ""
"Minimalni interval v sekundah med zaporednimi prenosi. Privzeto: %default s" "Minimalni interval v sekundah med zaporednimi prenosi. Privzeto: %default s"
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470
msgid "" msgid ""
"The character encoding for the websites you are trying to download. The " "The character encoding for the websites you are trying to download. The "
"default is to try and guess the encoding." "default is to try and guess the encoding."
@ -5606,7 +5612,7 @@ msgstr ""
"ugibanje uporabljene kodne tabele." "ugibanje uporabljene kodne tabele."
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
msgid "" msgid ""
"Only links that match this regular expression will be followed. This option " "Only links that match this regular expression will be followed. This option "
"can be specified multiple times, in which case as long as a link matches any " "can be specified multiple times, in which case as long as a link matches any "
@ -5617,7 +5623,7 @@ msgstr ""
"izmed regularnih izrazov, se ji bo sledilo. Privzeto se sledi vsem povezavam." "izmed regularnih izrazov, se ji bo sledilo. Privzeto se sledi vsem povezavam."
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
msgid "" msgid ""
"Any link that matches this regular expression will be ignored. This option " "Any link that matches this regular expression will be ignored. This option "
"can be specified multiple times, in which case as long as any regexp matches " "can be specified multiple times, in which case as long as any regexp matches "
@ -5632,7 +5638,7 @@ msgstr ""
"upošteva --filter-regexp." "upošteva --filter-regexp."
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476
msgid "Do not download CSS stylesheets." msgid "Do not download CSS stylesheets."
msgstr "Ne prenesi CSS oblikovnih informacij." msgstr "Ne prenesi CSS oblikovnih informacij."
@ -5832,12 +5838,12 @@ msgstr "Prenašam feed"
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:63 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:21
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64
@ -5850,11 +5856,13 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:13
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chicago_breaking_news.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
@ -5928,17 +5936,17 @@ msgstr ""
msgid "English" msgid "English"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:29
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:19 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:27
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
msgid "Serbian" msgid "Serbian"
msgstr "" msgstr ""
@ -5970,11 +5978,11 @@ msgstr ""
msgid "German" msgid "German"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:23 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:22
msgid "Croatian" msgid "Croatian"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
msgid "" msgid ""
"%prog URL\n" "%prog URL\n"
"\n" "\n"
@ -5984,18 +5992,18 @@ msgstr ""
"\n" "\n"
"Kjer je URL naprimer http://google.com" "Kjer je URL naprimer http://google.com"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:455 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:457
msgid "Base directory into which URL is saved. Default is %default" msgid "Base directory into which URL is saved. Default is %default"
msgstr "Osnovni direktorij v katerega se shrani URL. Privzet je %default" msgstr "Osnovni direktorij v katerega se shrani URL. Privzet je %default"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
msgid "" msgid ""
"Maximum number of levels to recurse i.e. depth of links to follow. Default " "Maximum number of levels to recurse i.e. depth of links to follow. Default "
"%default" "%default"
msgstr "" msgstr ""
"Maksimalna globina rekurzije. To je globina povezav. Privzeto %default" "Maksimalna globina rekurzije. To je globina povezav. Privzeto %default"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
msgid "" msgid ""
"The maximum number of files to download. This only applies to files from <a " "The maximum number of files to download. This only applies to files from <a "
"href> tags. Default is %default" "href> tags. Default is %default"
@ -6003,7 +6011,7 @@ msgstr ""
"Maksimalno število prenešenih datotek. To velja samo za datoteke iz <a href> " "Maksimalno število prenešenih datotek. To velja samo za datoteke iz <a href> "
"značk. Privzeto je %default" "značk. Privzeto je %default"
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477
msgid "Show detailed output information. Useful for debugging" msgid "Show detailed output information. Useful for debugging"
msgstr "Podrobneje prikaži izhodne informacije. Koristno za razhroščevanje." msgstr "Podrobneje prikaži izhodne informacije. Koristno za razhroščevanje."

View File

@ -7,14 +7,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre\n" "Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-02-11 03:58+0000\n" "POT-Creation-Date: 2009-02-13 20:29+0000\n"
"PO-Revision-Date: 2008-09-14 18:45+0000\n" "PO-Revision-Date: 2008-09-14 18:45+0000\n"
"Last-Translator: Linus C Unneback <linus@folkdatorn.se>\n" "Last-Translator: Linus C Unneback <linus@folkdatorn.se>\n"
"Language-Team: Swedish <sv@li.org>\n" "Language-Team: Swedish <sv@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-02-13 19:24+0000\n" "X-Launchpad-Export-Date: 2009-02-18 20:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41
@ -57,7 +57,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:487
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574
@ -78,20 +78,21 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:894 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:894
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:933 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:940
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123
#: /home/kovid/work/calibre/src/calibre/library/cli.py:257 #: /home/kovid/work/calibre/src/calibre/library/cli.py:257
#: /home/kovid/work/calibre/src/calibre/library/database.py:916 #: /home/kovid/work/calibre/src/calibre/library/database.py:916
#: /home/kovid/work/calibre/src/calibre/library/database2.py:472 #: /home/kovid/work/calibre/src/calibre/library/database2.py:473
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484 #: /home/kovid/work/calibre/src/calibre/library/database2.py:485
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865 #: /home/kovid/work/calibre/src/calibre/library/database2.py:866
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900 #: /home/kovid/work/calibre/src/calibre/library/database2.py:901
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1408
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459
#: /home/kovid/work/calibre/src/calibre/library/server.py:315 #: /home/kovid/work/calibre/src/calibre/library/server.py:315
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51
msgid "Unknown" msgid "Unknown"
@ -606,7 +607,7 @@ msgid "%prog [options] LITFILE"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:506 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
msgid "Output directory. Defaults to current directory." msgid "Output directory. Defaults to current directory."
msgstr "" msgstr ""
@ -621,7 +622,7 @@ msgid "Useful for debugging."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:530 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:535
msgid "OEB ebook created in" msgid "OEB ebook created in"
msgstr "" msgstr ""
@ -1572,11 +1573,11 @@ msgstr ""
msgid "Creating Mobipocket file from EPUB..." msgid "Creating Mobipocket file from EPUB..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:504 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:509
msgid "%prog [options] myebook.mobi" msgid "%prog [options] myebook.mobi"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:528 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:533
msgid "Raw MOBI HTML saved in" msgid "Raw MOBI HTML saved in"
msgstr "" msgstr ""
@ -1870,7 +1871,7 @@ msgid "Adding books to database..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:694 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
msgid "Reading metadata..." msgid "Reading metadata..."
msgstr "" msgstr ""
@ -2096,7 +2097,7 @@ msgid "Access log:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:406
msgid "Failed to start content server" msgid "Failed to start content server"
msgstr "" msgstr ""
@ -2520,7 +2521,7 @@ msgid " is not a valid picture"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "Cannot convert" msgid "Cannot convert"
msgstr "" msgstr ""
@ -3195,47 +3196,52 @@ msgstr ""
msgid "A&utomatically set author sort" msgid "A&utomatically set author sort"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118
msgid "No format selected"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
msgid "Could not read metadata" msgid "Could not read metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129
msgid "Could not read metadata from %s format" msgid "Could not read metadata from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
msgid "Could not read cover" msgid "Could not read cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:138
msgid "Could not read cover from %s format" msgid "Could not read cover from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:144
msgid "The cover in the %s format is invalid" msgid "The cover in the %s format is invalid"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:323
msgid "" msgid ""
"<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you " "<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you "
"do not have one, you can <a href='http://www.librarything.com'>register</a> " "do not have one, you can <a href='http://www.librarything.com'>register</a> "
"for free!.</p>" "for free!.</p>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "<b>Could not fetch cover.</b><br/>" msgid "<b>Could not fetch cover.</b><br/>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "Could not fetch cover" msgid "Could not fetch cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "Cannot fetch cover" msgid "Cannot fetch cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "You must specify the ISBN identifier for this book." msgid "You must specify the ISBN identifier for this book."
msgstr "" msgstr ""
@ -3395,9 +3401,9 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809 #: /home/kovid/work/calibre/src/calibre/library/database2.py:810
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813 #: /home/kovid/work/calibre/src/calibre/library/database2.py:814
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
msgid "News" msgid "News"
msgstr "" msgstr ""
@ -4081,7 +4087,7 @@ msgid "Save to disk in a single directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:193 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:193
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1248 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "" msgstr ""
@ -4119,31 +4125,31 @@ msgid "Bad database location"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:290
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1388 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1395
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:440 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:445
msgid "Browse by covers" msgid "Browse by covers"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
msgid "Device: " msgid "Device: "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
msgid " detected." msgid " detected."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
msgid "Connected " msgid "Connected "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:563 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:569
msgid "Device database corrupted" msgid "Device database corrupted"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
msgid "" msgid ""
"\n" "\n"
" <p>The database of books on the reader is corrupted. Try the " " <p>The database of books on the reader is corrupted. Try the "
@ -4159,276 +4165,276 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
msgid "Books" msgid "Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
msgid "EPUB Books" msgid "EPUB Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
msgid "LRF Books" msgid "LRF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
msgid "HTML Books" msgid "HTML Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
msgid "LIT Books" msgid "LIT Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
msgid "MOBI Books" msgid "MOBI Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
msgid "Text books" msgid "Text books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
msgid "PDF Books" msgid "PDF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
msgid "Comics" msgid "Comics"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
msgid "Archives" msgid "Archives"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
msgid "Adding books..." msgid "Adding books..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:735 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:742
msgid "No space on device" msgid "No space on device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
msgid "" msgid ""
"<p>Cannot upload books to device there is no more free space available " "<p>Cannot upload books to device there is no more free space available "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "No books selected" msgid "No books selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:887 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:894
msgid "Sending news to device." msgid "Sending news to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:941 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:948
msgid "Sending books to device." msgid "Sending books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:944 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:951
msgid "No suitable formats" msgid "No suitable formats"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
msgid "" msgid ""
"Could not upload the following books to the device, as no suitable formats " "Could not upload the following books to the device, as no suitable formats "
"were found:<br><ul>%s</ul>" "were found:<br><ul>%s</ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:973
msgid "Saving to disk..." msgid "Saving to disk..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
msgid "Saved" msgid "Saved"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:977 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:984
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
msgid "" msgid ""
"<p>Could not save the following books to disk, because the %s format is not " "<p>Could not save the following books to disk, because the %s format is not "
"available for them:<ul>" "available for them:<ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:995 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1002
msgid "Could not save some ebooks" msgid "Could not save some ebooks"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1024
msgid "Fetching news from " msgid "Fetching news from "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
msgid " fetched." msgid " fetched."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
msgid "No book selected" msgid "No book selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
msgid "Cannot view" msgid "Cannot view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1201 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1208
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure" msgid "Cannot configure"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
msgid "Copying database" msgid "Copying database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1259 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1266
msgid "Copying library to " msgid "Copying library to "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
msgid "Invalid database" msgid "Invalid database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
msgid "" msgid ""
"<p>An invalid database already exists at %s, delete it before trying to move " "<p>An invalid database already exists at %s, delete it before trying to move "
"the existing database.<br>Error: %s" "the existing database.<br>Error: %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1283
msgid "Could not move database" msgid "Could not move database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1296 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1303
msgid "No detailed info available" msgid "No detailed info available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1297 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1304
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1340 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1347
msgid "Error talking to device" msgid "Error talking to device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
msgid "Conversion Error" msgid "Conversion Error"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using 3rd party tools." "first remove the DRM using 3rd party tools."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1454 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1461
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" 'Quitting may cause corruption on the device.<br>\n" " 'Quitting may cause corruption on the device.<br>\n"
" 'Are you sure you want to quit?" " 'Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "" msgid ""
"%s has been updated to version %s. See the <a " "%s has been updated to version %s. See the <a "
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
"Visit the download page?" "Visit the download page?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "Update available" msgid "Update available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1531 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1538
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1533 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1540
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1535 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1542
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "" msgstr ""
@ -5168,20 +5174,20 @@ msgid ""
"For help on an individual command: %%prog command --help\n" "For help on an individual command: %%prog command --help\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1221 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1228
msgid "<p>Copying books to %s<br><center>" msgid "<p>Copying books to %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
msgid "Copying <b>%s</b>" msgid "Copying <b>%s</b>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1314 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1321
msgid "<p>Migrating old database to ebook library in %s<br><center>" msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
msgid "Compacting database" msgid "Compacting database"
msgstr "" msgstr ""
@ -5212,39 +5218,39 @@ msgstr ""
msgid "Created by " msgid "Created by "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:531 #: /home/kovid/work/calibre/src/calibre/utils/config.py:536
msgid "Path to the database in which books are stored" msgid "Path to the database in which books are stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:533 #: /home/kovid/work/calibre/src/calibre/utils/config.py:538
msgid "Pattern to guess metadata from filenames" msgid "Pattern to guess metadata from filenames"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:535 #: /home/kovid/work/calibre/src/calibre/utils/config.py:540
msgid "Access key for isbndb.com" msgid "Access key for isbndb.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:537 #: /home/kovid/work/calibre/src/calibre/utils/config.py:542
msgid "Default timeout for network operations (seconds)" msgid "Default timeout for network operations (seconds)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:539 #: /home/kovid/work/calibre/src/calibre/utils/config.py:544
msgid "Path to directory in which your library of books is stored" msgid "Path to directory in which your library of books is stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:541 #: /home/kovid/work/calibre/src/calibre/utils/config.py:546
msgid "The language in which to display the user interface" msgid "The language in which to display the user interface"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:543 #: /home/kovid/work/calibre/src/calibre/utils/config.py:548
msgid "The default output format for ebook conversions." msgid "The default output format for ebook conversions."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:545 #: /home/kovid/work/calibre/src/calibre/utils/config.py:550
msgid "Read metadata from files" msgid "Read metadata from files"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:547 #: /home/kovid/work/calibre/src/calibre/utils/config.py:552
msgid "The priority of worker processes" msgid "The priority of worker processes"
msgstr "" msgstr ""
@ -5287,28 +5293,28 @@ msgid "Customize the download engine"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:460
msgid "" msgid ""
"Timeout in seconds to wait for a response from the server. Default: %default " "Timeout in seconds to wait for a response from the server. Default: %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
msgid "" msgid ""
"Minimum interval in seconds between consecutive fetches. Default is %default " "Minimum interval in seconds between consecutive fetches. Default is %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470
msgid "" msgid ""
"The character encoding for the websites you are trying to download. The " "The character encoding for the websites you are trying to download. The "
"default is to try and guess the encoding." "default is to try and guess the encoding."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
msgid "" msgid ""
"Only links that match this regular expression will be followed. This option " "Only links that match this regular expression will be followed. This option "
"can be specified multiple times, in which case as long as a link matches any " "can be specified multiple times, in which case as long as a link matches any "
@ -5316,7 +5322,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
msgid "" msgid ""
"Any link that matches this regular expression will be ignored. This option " "Any link that matches this regular expression will be ignored. This option "
"can be specified multiple times, in which case as long as any regexp matches " "can be specified multiple times, in which case as long as any regexp matches "
@ -5326,7 +5332,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476
msgid "Do not download CSS stylesheets." msgid "Do not download CSS stylesheets."
msgstr "" msgstr ""
@ -5513,12 +5519,12 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:63 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:21
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64
@ -5531,11 +5537,13 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:13
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chicago_breaking_news.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
@ -5609,17 +5617,17 @@ msgstr ""
msgid "English" msgid "English"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:29
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:19 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:27
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
msgid "Serbian" msgid "Serbian"
msgstr "" msgstr ""
@ -5651,33 +5659,33 @@ msgstr ""
msgid "German" msgid "German"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:23 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:22
msgid "Croatian" msgid "Croatian"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
msgid "" msgid ""
"%prog URL\n" "%prog URL\n"
"\n" "\n"
"Where URL is for example http://google.com" "Where URL is for example http://google.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:455 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:457
msgid "Base directory into which URL is saved. Default is %default" msgid "Base directory into which URL is saved. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
msgid "" msgid ""
"Maximum number of levels to recurse i.e. depth of links to follow. Default " "Maximum number of levels to recurse i.e. depth of links to follow. Default "
"%default" "%default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
msgid "" msgid ""
"The maximum number of files to download. This only applies to files from <a " "The maximum number of files to download. This only applies to files from <a "
"href> tags. Default is %default" "href> tags. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477
msgid "Show detailed output information. Useful for debugging" msgid "Show detailed output information. Useful for debugging"
msgstr "" msgstr ""

View File

@ -7,14 +7,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre\n" "Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-02-11 03:58+0000\n" "POT-Creation-Date: 2009-02-13 20:29+0000\n"
"PO-Revision-Date: 2008-06-24 13:22+0000\n" "PO-Revision-Date: 2008-06-24 13:22+0000\n"
"Last-Translator: వీవెన్ (Veeven) <Unknown>\n" "Last-Translator: వీవెన్ (Veeven) <Unknown>\n"
"Language-Team: Telugu <te@li.org>\n" "Language-Team: Telugu <te@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-02-13 19:24+0000\n" "X-Launchpad-Export-Date: 2009-02-18 20:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41
@ -57,7 +57,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:118
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:487
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:569
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:574
@ -78,20 +78,21 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:894 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:894
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:933 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:940
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:61
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123
#: /home/kovid/work/calibre/src/calibre/library/cli.py:257 #: /home/kovid/work/calibre/src/calibre/library/cli.py:257
#: /home/kovid/work/calibre/src/calibre/library/database.py:916 #: /home/kovid/work/calibre/src/calibre/library/database.py:916
#: /home/kovid/work/calibre/src/calibre/library/database2.py:472 #: /home/kovid/work/calibre/src/calibre/library/database2.py:473
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484 #: /home/kovid/work/calibre/src/calibre/library/database2.py:485
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865 #: /home/kovid/work/calibre/src/calibre/library/database2.py:866
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900 #: /home/kovid/work/calibre/src/calibre/library/database2.py:901
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1408
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459
#: /home/kovid/work/calibre/src/calibre/library/server.py:315 #: /home/kovid/work/calibre/src/calibre/library/server.py:315
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:51
msgid "Unknown" msgid "Unknown"
@ -606,7 +607,7 @@ msgid "%prog [options] LITFILE"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:855
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:506 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
msgid "Output directory. Defaults to current directory." msgid "Output directory. Defaults to current directory."
msgstr "" msgstr ""
@ -621,7 +622,7 @@ msgid "Useful for debugging."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872 #: /home/kovid/work/calibre/src/calibre/ebooks/lit/reader.py:872
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:530 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:535
msgid "OEB ebook created in" msgid "OEB ebook created in"
msgstr "" msgstr ""
@ -1572,11 +1573,11 @@ msgstr ""
msgid "Creating Mobipocket file from EPUB..." msgid "Creating Mobipocket file from EPUB..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:504 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:509
msgid "%prog [options] myebook.mobi" msgid "%prog [options] myebook.mobi"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:528 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:533
msgid "Raw MOBI HTML saved in" msgid "Raw MOBI HTML saved in"
msgstr "" msgstr ""
@ -1870,7 +1871,7 @@ msgid "Adding books to database..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:694 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
msgid "Reading metadata..." msgid "Reading metadata..."
msgstr "" msgstr ""
@ -2096,7 +2097,7 @@ msgid "Access log:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:345
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:406
msgid "Failed to start content server" msgid "Failed to start content server"
msgstr "" msgstr ""
@ -2520,7 +2521,7 @@ msgid " is not a valid picture"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub.py:241
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "Cannot convert" msgid "Cannot convert"
msgstr "" msgstr ""
@ -3195,47 +3196,52 @@ msgstr ""
msgid "A&utomatically set author sort" msgid "A&utomatically set author sort"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118
msgid "No format selected"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
msgid "Could not read metadata" msgid "Could not read metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129
msgid "Could not read metadata from %s format" msgid "Could not read metadata from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
msgid "Could not read cover" msgid "Could not read cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:138
msgid "Could not read cover from %s format" msgid "Could not read cover from %s format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:144
msgid "The cover in the %s format is invalid" msgid "The cover in the %s format is invalid"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:323
msgid "" msgid ""
"<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you " "<p>Enter your username and password for <b>LibraryThing.com</b>. <br/>If you "
"do not have one, you can <a href='http://www.librarything.com'>register</a> " "do not have one, you can <a href='http://www.librarything.com'>register</a> "
"for free!.</p>" "for free!.</p>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "<b>Could not fetch cover.</b><br/>" msgid "<b>Could not fetch cover.</b><br/>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:353
msgid "Could not fetch cover" msgid "Could not fetch cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "Cannot fetch cover" msgid "Cannot fetch cover"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359
msgid "You must specify the ISBN identifier for this book." msgid "You must specify the ISBN identifier for this book."
msgstr "" msgstr ""
@ -3395,9 +3401,9 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809 #: /home/kovid/work/calibre/src/calibre/library/database2.py:810
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813 #: /home/kovid/work/calibre/src/calibre/library/database2.py:814
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
msgid "News" msgid "News"
msgstr "" msgstr ""
@ -4081,7 +4087,7 @@ msgid "Save to disk in a single directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:193 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:193
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1248 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "" msgstr ""
@ -4119,31 +4125,31 @@ msgid "Bad database location"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:290
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1388 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1395
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:440 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:445
msgid "Browse by covers" msgid "Browse by covers"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
msgid "Device: " msgid "Device: "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
msgid " detected." msgid " detected."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
msgid "Connected " msgid "Connected "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:563 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:569
msgid "Device database corrupted" msgid "Device database corrupted"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
msgid "" msgid ""
"\n" "\n"
" <p>The database of books on the reader is corrupted. Try the " " <p>The database of books on the reader is corrupted. Try the "
@ -4159,276 +4165,276 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
msgid "Books" msgid "Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
msgid "EPUB Books" msgid "EPUB Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
msgid "LRF Books" msgid "LRF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
msgid "HTML Books" msgid "HTML Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
msgid "LIT Books" msgid "LIT Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
msgid "MOBI Books" msgid "MOBI Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
msgid "Text books" msgid "Text books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
msgid "PDF Books" msgid "PDF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
msgid "Comics" msgid "Comics"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
msgid "Archives" msgid "Archives"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
msgid "Adding books..." msgid "Adding books..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:735 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:742
msgid "No space on device" msgid "No space on device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
msgid "" msgid ""
"<p>Cannot upload books to device there is no more free space available " "<p>Cannot upload books to device there is no more free space available "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
msgid "No books selected" msgid "No books selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:887 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:894
msgid "Sending news to device." msgid "Sending news to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:941 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:948
msgid "Sending books to device." msgid "Sending books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:944 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:951
msgid "No suitable formats" msgid "No suitable formats"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
msgid "" msgid ""
"Could not upload the following books to the device, as no suitable formats " "Could not upload the following books to the device, as no suitable formats "
"were found:<br><ul>%s</ul>" "were found:<br><ul>%s</ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:973
msgid "Saving to disk..." msgid "Saving to disk..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
msgid "Saved" msgid "Saved"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:977 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:984
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
msgid "" msgid ""
"<p>Could not save the following books to disk, because the %s format is not " "<p>Could not save the following books to disk, because the %s format is not "
"available for them:<ul>" "available for them:<ul>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:995 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1002
msgid "Could not save some ebooks" msgid "Could not save some ebooks"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1024
msgid "Fetching news from " msgid "Fetching news from "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
msgid " fetched." msgid " fetched."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
msgid "No book selected" msgid "No book selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
msgid "Cannot view" msgid "Cannot view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1201 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1208
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure" msgid "Cannot configure"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
msgid "Copying database" msgid "Copying database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1259 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1266
msgid "Copying library to " msgid "Copying library to "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
msgid "Invalid database" msgid "Invalid database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
msgid "" msgid ""
"<p>An invalid database already exists at %s, delete it before trying to move " "<p>An invalid database already exists at %s, delete it before trying to move "
"the existing database.<br>Error: %s" "the existing database.<br>Error: %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1283
msgid "Could not move database" msgid "Could not move database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1296 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1303
msgid "No detailed info available" msgid "No detailed info available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1297 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1304
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1340 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1347
msgid "Error talking to device" msgid "Error talking to device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
msgid "Conversion Error" msgid "Conversion Error"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using 3rd party tools." "first remove the DRM using 3rd party tools."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1454 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1461
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" 'Quitting may cause corruption on the device.<br>\n" " 'Quitting may cause corruption on the device.<br>\n"
" 'Are you sure you want to quit?" " 'Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "" msgid ""
"%s has been updated to version %s. See the <a " "%s has been updated to version %s. See the <a "
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. " "href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
"Visit the download page?" "Visit the download page?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
msgid "Update available" msgid "Update available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1531 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1538
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1533 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1540
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1535 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1542
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "" msgstr ""
@ -5168,20 +5174,20 @@ msgid ""
"For help on an individual command: %%prog command --help\n" "For help on an individual command: %%prog command --help\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1221 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1228
msgid "<p>Copying books to %s<br><center>" msgid "<p>Copying books to %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
msgid "Copying <b>%s</b>" msgid "Copying <b>%s</b>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1314 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1321
msgid "<p>Migrating old database to ebook library in %s<br><center>" msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
msgid "Compacting database" msgid "Compacting database"
msgstr "" msgstr ""
@ -5212,39 +5218,39 @@ msgstr ""
msgid "Created by " msgid "Created by "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:531 #: /home/kovid/work/calibre/src/calibre/utils/config.py:536
msgid "Path to the database in which books are stored" msgid "Path to the database in which books are stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:533 #: /home/kovid/work/calibre/src/calibre/utils/config.py:538
msgid "Pattern to guess metadata from filenames" msgid "Pattern to guess metadata from filenames"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:535 #: /home/kovid/work/calibre/src/calibre/utils/config.py:540
msgid "Access key for isbndb.com" msgid "Access key for isbndb.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:537 #: /home/kovid/work/calibre/src/calibre/utils/config.py:542
msgid "Default timeout for network operations (seconds)" msgid "Default timeout for network operations (seconds)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:539 #: /home/kovid/work/calibre/src/calibre/utils/config.py:544
msgid "Path to directory in which your library of books is stored" msgid "Path to directory in which your library of books is stored"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:541 #: /home/kovid/work/calibre/src/calibre/utils/config.py:546
msgid "The language in which to display the user interface" msgid "The language in which to display the user interface"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:543 #: /home/kovid/work/calibre/src/calibre/utils/config.py:548
msgid "The default output format for ebook conversions." msgid "The default output format for ebook conversions."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:545 #: /home/kovid/work/calibre/src/calibre/utils/config.py:550
msgid "Read metadata from files" msgid "Read metadata from files"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:547 #: /home/kovid/work/calibre/src/calibre/utils/config.py:552
msgid "The priority of worker processes" msgid "The priority of worker processes"
msgstr "" msgstr ""
@ -5287,28 +5293,28 @@ msgid "Customize the download engine"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:20
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:460
msgid "" msgid ""
"Timeout in seconds to wait for a response from the server. Default: %default " "Timeout in seconds to wait for a response from the server. Default: %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
msgid "" msgid ""
"Minimum interval in seconds between consecutive fetches. Default is %default " "Minimum interval in seconds between consecutive fetches. Default is %default "
"s" "s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:24
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470
msgid "" msgid ""
"The character encoding for the websites you are trying to download. The " "The character encoding for the websites you are trying to download. The "
"default is to try and guess the encoding." "default is to try and guess the encoding."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:26
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
msgid "" msgid ""
"Only links that match this regular expression will be followed. This option " "Only links that match this regular expression will be followed. This option "
"can be specified multiple times, in which case as long as a link matches any " "can be specified multiple times, in which case as long as a link matches any "
@ -5316,7 +5322,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:28
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
msgid "" msgid ""
"Any link that matches this regular expression will be ignored. This option " "Any link that matches this regular expression will be ignored. This option "
"can be specified multiple times, in which case as long as any regexp matches " "can be specified multiple times, in which case as long as any regexp matches "
@ -5326,7 +5332,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30 #: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476
msgid "Do not download CSS stylesheets." msgid "Do not download CSS stylesheets."
msgstr "" msgstr ""
@ -5513,12 +5519,12 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_criticadigital.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_mercurio_chile.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_el_pais.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:63 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elargentino.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elcronista.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_elmundo.py:60
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_granma.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:52 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_infobae.py:21
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_cuarta.py:53
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_segunda.py:61
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_la_tercera.py:64
@ -5531,11 +5537,13 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_amspec.py:14
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ap.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:13
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_ars_technica.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_atlantic.py:17
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_barrons.py:18
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_bbc.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_business_week.py:16
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chicago_breaking_news.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_chr_mon.py:11
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_cnn.py:15
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
@ -5609,17 +5617,17 @@ msgstr ""
msgid "English" msgid "English"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:22
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:29
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:24
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:25
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:20
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:19 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_politika.py:23
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:27
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
msgid "Serbian" msgid "Serbian"
msgstr "" msgstr ""
@ -5651,34 +5659,34 @@ msgstr ""
msgid "German" msgid "German"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:23 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_jutarnji.py:22
msgid "Croatian" msgid "Croatian"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
msgid "" msgid ""
"%prog URL\n" "%prog URL\n"
"\n" "\n"
"Where URL is for example http://google.com" "Where URL is for example http://google.com"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:455 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:457
msgid "Base directory into which URL is saved. Default is %default" msgid "Base directory into which URL is saved. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
msgid "" msgid ""
"Maximum number of levels to recurse i.e. depth of links to follow. Default " "Maximum number of levels to recurse i.e. depth of links to follow. Default "
"%default" "%default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
msgid "" msgid ""
"The maximum number of files to download. This only applies to files from <a " "The maximum number of files to download. This only applies to files from <a "
"href> tags. Default is %default" "href> tags. Default is %default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477
msgid "Show detailed output information. Useful for debugging" msgid "Show detailed output information. Useful for debugging"
msgstr "" msgstr ""

View File

@ -29,7 +29,8 @@ recipe_modules = ['recipe_' + r for r in (
'jb_online', 'estadao', 'o_globo', 'vijesti', 'elmundo', 'the_oz', 'jb_online', 'estadao', 'o_globo', 'vijesti', 'elmundo', 'the_oz',
'honoluluadvertiser', 'starbulletin', 'exiled', 'indy_star', 'dna', 'honoluluadvertiser', 'starbulletin', 'exiled', 'indy_star', 'dna',
'pobjeda', 'chicago_breaking_news', 'glasgow_herald', 'linuxdevices', 'pobjeda', 'chicago_breaking_news', 'glasgow_herald', 'linuxdevices',
'hindu' 'hindu', 'cincinnati_enquirer', 'physics_world', 'pressonline',
'la_republica', 'physics_today',
)] )]
import re, imp, inspect, time, os import re, imp, inspect, time, os

View File

@ -15,7 +15,6 @@ class ArsTechnica2(BasicNewsRecipe):
description = 'The art of technology' description = 'The art of technology'
publisher = 'Ars Technica' publisher = 'Ars Technica'
category = 'news, IT, technology' category = 'news, IT, technology'
language = _('English')
oldest_article = 2 oldest_article = 2
max_articles_per_feed = 100 max_articles_per_feed = 100
no_stylesheets = True no_stylesheets = True
@ -51,10 +50,28 @@ class ArsTechnica2(BasicNewsRecipe):
,(u'Law & Disorder (Tech policy content)' , u'http://feeds.arstechnica.com/arstechnica/tech-policy/') ,(u'Law & Disorder (Tech policy content)' , u'http://feeds.arstechnica.com/arstechnica/tech-policy/')
] ]
def append_page(self, soup, appendtag, position):
pager = soup.find('div',attrs={'id':'pager'})
if pager:
for atag in pager.findAll('a',href=True):
str = self.tag_to_string(atag)
if str.startswith('Next'):
soup2 = self.index_to_soup(atag['href'])
texttag = soup2.find('div', attrs={'class':'news-item-text'})
for it in texttag.findAll(style=True):
del it['style']
newpos = len(texttag.contents)
self.append_page(soup2,texttag,newpos)
texttag.extract()
pager.extract()
appendtag.insert(position,texttag)
def preprocess_html(self, soup): def preprocess_html(self, soup):
ftag = soup.find('div', attrs={'class':'news-item-byline'}) ftag = soup.find('div', attrs={'class':'news-item-byline'})
if ftag: if ftag:
ftag.insert(4,'<br /><br />') ftag.insert(4,'<br /><br />')
for item in soup.findAll(style=True): for item in soup.findAll(style=True):
del item['style'] del item['style']
self.append_page(soup, soup.body, 3)
return soup return soup

View File

@ -0,0 +1,34 @@
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = '2009 Kovid Goyal <kovid at kovidgoyal.net>'
from calibre.web.feeds.news import BasicNewsRecipe
class AdvancedUserRecipe1234144423(BasicNewsRecipe):
title = u'Cincinnati Enquirer'
oldest_article = 7
language = _('English')
__author__ = 'Joseph Kitzmiller'
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
remove_javascript = True
encoding = 'cp1252'
extra_css = ' p {font-size: medium; font-weight: normal;} '
keep_only_tags = [dict(name='div', attrs={'class':'padding'})]
remove_tags = [
dict(name=['object','link','table','embed'])
,dict(name='div',attrs={'id':'pluckcomments'})
,dict(name='div',attrs={'class':'articleflex-container'})
]
feeds = [(u'Cincinnati Enquirer', u'http://rss.cincinnati.com/apps/pbcs.dll/section?category=rssenq01&mime=xml')]
def preprocess_html(self, soup):
for item in soup.findAll(style=True):
del item['style']
for item in soup.findAll(face=True):
del item['face']
return soup

View File

@ -60,8 +60,11 @@ class Economist(BasicNewsRecipe):
continue continue
a = tag.find('a', href=True) a = tag.find('a', href=True)
if a is not None: if a is not None:
url=a['href'].replace('displaystory', 'PrinterFriendly')
if url.startswith('/'):
url = 'http://www.economist.com' + url
article = dict(title=text, article = dict(title=text,
url='http://www.economist.com'+a['href'].replace('displaystory', 'PrinterFriendly'), url = url,
description='', content='', date='') description='', content='', date='')
feeds[key].append(article) feeds[key].append(article)

View File

@ -1,7 +1,7 @@
#!/usr/bin/env python #!/usr/bin/env python
__license__ = 'GPL v3' __license__ = 'GPL v3'
__copyright__ = '2008, Darko Miletic <darko.miletic at gmail.com>' __copyright__ = '2008-2009, Darko Miletic <darko.miletic at gmail.com>'
''' '''
harpers.org harpers.org
''' '''
@ -10,20 +10,31 @@ from calibre.web.feeds.news import BasicNewsRecipe
class Harpers(BasicNewsRecipe): class Harpers(BasicNewsRecipe):
title = u"Harper's Magazine" title = u"Harper's Magazine"
__author__ = u'Darko Miletic' __author__ = u'Darko Miletic'
language = _('English') language = _('English')
description = u"Harper's Magazine: Founded June 1850." description = u"Harper's Magazine: Founded June 1850."
publisher = "Harper's Magazine "
category = 'news, politics, USA'
oldest_article = 30 oldest_article = 30
max_articles_per_feed = 100 max_articles_per_feed = 100
no_stylesheets = True no_stylesheets = True
use_embedded_content = False use_embedded_content = False
timefmt = ' [%A, %d %B, %Y]' remove_javascript = True
html2lrf_options = [
'--comment', description
, '--category', category
, '--publisher', publisher
]
html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"\noverride_css=" p {text-indent: 0em; margin-top: 0em; margin-bottom: 0.5em} img {margin-top: 0em; margin-bottom: 0.4em}"'
keep_only_tags = [ dict(name='div', attrs={'id':'cached'}) ] keep_only_tags = [ dict(name='div', attrs={'id':'cached'}) ]
remove_tags = [ remove_tags = [
dict(name='table', attrs={'class':'rcnt'}) dict(name='table', attrs={'class':'rcnt'})
,dict(name='table', attrs={'class':'rcnt topline'}) ,dict(name='table', attrs={'class':'rcnt topline'})
,dict(name=['link','object','embed'])
] ]
feeds = [ feeds = [(u"Harper's Magazine", u'http://www.harpers.org/rss/frontpage-rss20.xml')]
(u"Harper's Magazine", u'http://www.harpers.org/rss/frontpage-rss20.xml')
]

View File

@ -23,7 +23,8 @@ class Harpers_full(BasicNewsRecipe):
no_stylesheets = True no_stylesheets = True
use_embedded_content = False use_embedded_content = False
simultaneous_downloads = 1 simultaneous_downloads = 1
delay = 1 delay = 1
language = _('English')
needs_subscription = True needs_subscription = True
INDEX = strftime('http://www.harpers.org/archive/%Y/%m') INDEX = strftime('http://www.harpers.org/archive/%Y/%m')
LOGIN = 'http://www.harpers.org' LOGIN = 'http://www.harpers.org'
@ -36,7 +37,7 @@ class Harpers_full(BasicNewsRecipe):
, '--publisher', publisher , '--publisher', publisher
] ]
html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"' html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"\noverride_css=" p {text-indent: 0em; margin-top: 0em; margin-bottom: 0.5em} img {margin-top: 0em; margin-bottom: 0.4em}"'
keep_only_tags = [ dict(name='div', attrs={'id':'cached'}) ] keep_only_tags = [ dict(name='div', attrs={'id':'cached'}) ]
remove_tags = [ remove_tags = [
@ -72,9 +73,3 @@ class Harpers_full(BasicNewsRecipe):
}) })
return [(soup.head.title.string, articles)] return [(soup.head.title.string, articles)]
def preprocess_html(self, soup):
for item in soup.findAll(style=True):
del item['style']
return soup
language = _('English')

View File

@ -0,0 +1,28 @@
from calibre.web.feeds.news import BasicNewsRecipe
class LaRepublica(BasicNewsRecipe):
title = u'la Repubblica'
oldest_article = 1
language = _('Italian')
author = 'Darko Miletic'
max_articles_per_feed = 100
remove_javascript = True
no_stylesheets = True
keep_only_tags = [dict(name='div', attrs={'class':'articolo'})]
remove_tags = [
dict(name=['object','link'])
,dict(name='span',attrs={'class':'linkindice'})
,dict(name='div',attrs={'class':'bottom-mobile'})
,dict(name='div',attrs={'id':['rssdiv','blocco']})
]
feeds = [
(u'Repubblica homepage', u'http://www.repubblica.it/rss/homepage/rss2.0.xml'),
(u'Repubblica Scienze', u'http://www.repubblica.it/rss/scienze/rss2.0.xml'),
(u'Repubblica Tecnologia', u'http://www.repubblica.it/rss/tecnologia/rss2.0.xml'),
(u'Repubblica Esteri', u'http://www.repubblica.it/rss/esteri/rss2.0.xml')
]

View File

@ -0,0 +1,39 @@
import re
from calibre.web.feeds.news import BasicNewsRecipe
from calibre import strftime
class Physicstoday(BasicNewsRecipe):
title = u'Physicstoday'
__author__ = 'Hypernova'
description = u'Physics Today magazine'
publisher = 'American Institute of Physics'
category = 'Physics'
language = _('English')
cover_url = strftime('http://ptonline.aip.org/journals/doc/PHTOAD-home/jrnls/images/medcover%m_%Y.jpg')
oldest_article = 30
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
needs_subscription = True
remove_javascript = True
remove_tags_before = dict(name='h1')
remove_tags = [dict(name='div', attrs={'class':'highslide-footer'})]
remove_tags = [dict(name='div', attrs={'class':'highslide-header'})]
#remove_tags = [dict(name='a', attrs={'class':'highslide'})]
preprocess_regexps = [
#(re.compile(r'<!--start PHTOAD_tail.jsp -->.*</body>', re.DOTALL|re.IGNORECASE),
(re.compile(r'<!-- END ARTICLE and footer section -->.*</body>', re.DOTALL|re.IGNORECASE),
lambda match: '</body>'),
]
def get_browser(self):
br = BasicNewsRecipe.get_browser()
if self.username is not None and self.password is not None:
br.open('http://www.physicstoday.org/pt/sso_login.jsp')
br.select_form(name='login')
br['username'] = self.username
br['password'] = self.password
br.submit()
return br
feeds = [(u'All', u'http://www.physicstoday.org/feed.xml')]

View File

@ -0,0 +1,35 @@
import re
from calibre.web.feeds.news import BasicNewsRecipe
class PhysicsWorld(BasicNewsRecipe):
title = u'Physicsworld'
description = 'News from the world of physics'
__author__ = 'Hypernova'
language = _('English')
oldest_article = 7
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
remove_javascript = True
needs_subscription = True
remove_tags_before = dict(name='h1')
remove_tags_after = [dict(name='div', attrs={'id':'shareThis'})]
preprocess_regexps = [
(re.compile(r'<div id="shareThis">.*</body>', re.DOTALL|re.IGNORECASE),
lambda match: '</body>'),
]
feeds = [
(u'Headlines News', u'http://feeds.feedburner.com/PhysicsWorldNews')
]
def get_browser(self):
br = BasicNewsRecipe.get_browser(self)
if self.username is not None and self.password is not None:
br.open('http://physicsworld.com/cws/sign-in')
br.select_form(nr=1)
br['username'] = self.username
br['password'] = self.password
br.submit()
return br

View File

@ -17,9 +17,6 @@ class Pobjeda(BasicNewsRecipe):
description = 'News from Montenegro' description = 'News from Montenegro'
publisher = 'Pobjeda a.d.' publisher = 'Pobjeda a.d.'
category = 'news, politics, Montenegro' category = 'news, politics, Montenegro'
language = _('Serbian')
oldest_article = 2
max_articles_per_feed = 100
no_stylesheets = True no_stylesheets = True
remove_javascript = True remove_javascript = True
encoding = 'utf8' encoding = 'utf8'
@ -30,11 +27,13 @@ class Pobjeda(BasicNewsRecipe):
html2lrf_options = [ html2lrf_options = [
'--comment', description '--comment', description
, '--base-font-size', '10'
, '--category', category , '--category', category
, '--publisher', publisher , '--publisher', publisher
] ]
html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"' html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"\noverride_css=" p {text-indent: 0em; margin-top: 0em; margin-bottom: 0.5em} img {margin-top: 0em; margin-bottom: 0.4em}"'
preprocess_regexps = [(re.compile(u'\u0110'), lambda match: u'\u00D0')] preprocess_regexps = [(re.compile(u'\u0110'), lambda match: u'\u00D0')]
@ -64,8 +63,6 @@ class Pobjeda(BasicNewsRecipe):
soup.html['lang'] = 'sr-Latn-ME' soup.html['lang'] = 'sr-Latn-ME'
mtag = '<meta http-equiv="Content-Language" content="sr-Latn-ME"/>' mtag = '<meta http-equiv="Content-Language" content="sr-Latn-ME"/>'
soup.head.insert(0,mtag) soup.head.insert(0,mtag)
for item in soup.findAll(style=True):
del item['style']
return soup return soup
def get_cover_url(self): def get_cover_url(self):
@ -87,7 +84,7 @@ class Pobjeda(BasicNewsRecipe):
for item in soup.findAll('div', attrs={'class':'vijest'}): for item in soup.findAll('div', attrs={'class':'vijest'}):
description = self.tag_to_string(item.h2) description = self.tag_to_string(item.h2)
atag = item.h1.find('a') atag = item.h1.find('a')
if atag: if atag and atag.has_key('href'):
url = self.INDEX + '/' + atag['href'] url = self.INDEX + '/' + atag['href']
title = self.tag_to_string(atag) title = self.tag_to_string(atag)
date = strftime(self.timefmt) date = strftime(self.timefmt)

View File

@ -0,0 +1,66 @@
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = '2009, Darko Miletic <darko.miletic at gmail.com>'
'''
pressonline.rs
'''
import re
from calibre.web.feeds.recipes import BasicNewsRecipe
class PressOnline(BasicNewsRecipe):
title = 'Press Online'
__author__ = 'Darko Miletic'
description = 'Press Online portal dnevnih novina Press.Najnovije vesti iz Srbije i sveta,Sport,Dzet Set,Politika,Hronika,Komenteri,Zabava,Slike,Video,Horoskop,Nagradne igre,Kvizovi,Igrice'
publisher = 'Press Publishing group'
category = 'news, politics, Serbia'
oldest_article = 2
max_articles_per_feed = 100
no_stylesheets = True
encoding = 'utf8'
use_embedded_content = True
cover_url = 'http://www.pressonline.rs/img/logo.gif'
language = _('Serbian')
extra_css = '@font-face {font-family: "serif1";src:url(res:///opt/sony/ebook/FONT/tt0011m_.ttf)} body{font-family: serif1, serif} .article_description{font-family: serif1, serif}'
html2lrf_options = [
'--comment', description
, '--category', category
, '--publisher', publisher
]
html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"\noverride_css=" p {text-indent: 0em; margin-top: 0em; margin-bottom: 0.5em} img {margin-top: 0em; margin-bottom: 0.4em}"'
preprocess_regexps = [(re.compile(u'\u0110'), lambda match: u'\u00D0')]
feeds = [
(u'Vesti Dana' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss&sectionId=37')
,(u'Politika' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss&sectionId=29')
,(u'U Fokusu' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss&sectionId=33')
,(u'Globus' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss&sectionId=40')
,(u'Komentar Dana' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss&sectionId=62')
,(u'Hronika' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss&sectionId=39')
,(u'Regioni' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss&sectionId=56')
,(u'Republika Srpska', u'http://www.pressonline.rs/page/stories/sr.html?view=rss&sectionId=51')
,(u'Beograd' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss&sectionId=43')
,(u'Dzet-Set Svet' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss&sectionId=41')
,(u'Lifestyle' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss&sectionId=42')
,(u'Sport' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss&sectionId=44')
,(u'Press Magazine' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss&sectionId=63')
,(u'Lola' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss&sectionId=70')
,(u'Duplerica' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss&sectionId=72')
,(u'Presspedia' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss&sectionId=80')
,(u'Kolumne' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss&sectionId=57')
]
def preprocess_html(self, soup):
soup.html['xml:lang'] = 'sr-Latn-RS'
soup.html['lang'] = 'sr-Latn-RS'
mtag = '<meta http-equiv="Content-Language" content="sr-Latn-RS"/>\n<meta http-equiv="Content-Type" content="text/html; charset=utf-8">'
soup.head.insert(0,mtag)
for img in soup.findAll('img', align=True):
del img['align']
return soup

View File

@ -24,7 +24,7 @@ class Vreme(BasicNewsRecipe):
remove_javascript = True remove_javascript = True
use_embedded_content = False use_embedded_content = False
language = _('Serbian') language = _('Serbian')
extra_css = '@font-face {font-family: "serif1";src:url(res:///opt/sony/ebook/FONT/tt0011m_.ttf)} @font-face {font-family: "sans1";src:url(res:///opt/sony/ebook/FONT/tt0003m_.ttf)} body{font-family: serif1, serif} .article_description{font-family: sans1, sans-serif}' extra_css = '@font-face {font-family: "serif1";src:url(res:///opt/sony/ebook/FONT/tt0011m_.ttf)} body{text-align: justify; font-family: serif1, serif} .article_description{font-family: serif1, serif}'
html2lrf_options = [ html2lrf_options = [
'--comment' , description '--comment' , description
@ -33,7 +33,8 @@ class Vreme(BasicNewsRecipe):
, '--ignore-tables' , '--ignore-tables'
] ]
html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"\nlinearize_tables=True' html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"\nlinearize_tables=True\noverride_css=" p {text-indent: 0cm; margin-top: 0em; margin-bottom: 0.5em} "'
preprocess_regexps = [(re.compile(u'\u0110'), lambda match: u'\u00D0')] preprocess_regexps = [(re.compile(u'\u0110'), lambda match: u'\u00D0')]
@ -88,19 +89,12 @@ class Vreme(BasicNewsRecipe):
del soup.body['text' ] del soup.body['text' ]
del soup.body['bgcolor'] del soup.body['bgcolor']
del soup.body['onload' ] del soup.body['onload' ]
for item in soup.findAll('table'): for item in soup.findAll(face=True):
if item.has_key('width'): del item['face']
del item['width'] for item in soup.findAll(size=True):
if item.has_key('height'): del item['size']
del item['height']
mtag = '<meta http-equiv="Content-Language" content="sr-Latn-RS"/>' mtag = '<meta http-equiv="Content-Language" content="sr-Latn-RS"/>'
soup.head.insert(0,mtag) soup.head.insert(0,mtag)
tbl = soup.body.table
tbbb = soup.find('td')
if tbbb:
tbbb.extract()
tbl.extract()
soup.body.insert(0,tbbb)
return soup return soup
def get_cover_url(self): def get_cover_url(self):

View File

@ -1,7 +1,7 @@
#!/usr/bin/env python #!/usr/bin/env python
"""cssutils - CSS Cascading Style Sheets library for Python """cssutils - CSS Cascading Style Sheets library for Python
Copyright (C) 2004-2008 Christof Hoeke Copyright (C) 2004-2009 Christof Hoeke
cssutils is free software: you can redistribute it and/or modify cssutils is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by it under the terms of the GNU Lesser General Public License as published by
@ -63,18 +63,18 @@ Usage may be::
>>> sheet = parser.parseString(u'a { color: red}') >>> sheet = parser.parseString(u'a { color: red}')
>>> print sheet.cssText >>> print sheet.cssText
a { a {
color: red color: red
} }
""" """
__all__ = ['css', 'stylesheets', 'CSSParser', 'CSSSerializer'] __all__ = ['css', 'stylesheets', 'CSSParser', 'CSSSerializer']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__author__ = 'Christof Hoeke with contributions by Walter Doerwald' __author__ = 'Christof Hoeke with contributions by Walter Doerwald'
__date__ = '$LastChangedDate:: 2008-08-11 11:11:23 -0700 #$:' __date__ = '$LastChangedDate:: 2009-02-16 12:05:02 -0800 #$:'
VERSION = '0.9.5.1' VERSION = '0.9.6a1'
__version__ = '%s $Id: __init__.py 1426 2008-08-11 18:11:23Z cthedot $' % VERSION __version__ = '%s $Id: __init__.py 1669 2009-02-16 20:05:02Z cthedot $' % VERSION
import codec import codec
import xml.dom import xml.dom
@ -84,9 +84,9 @@ from helper import Deprecated
import errorhandler import errorhandler
log = errorhandler.ErrorHandler() log = errorhandler.ErrorHandler()
import util
import css import css
import stylesheets import stylesheets
import util
from parse import CSSParser from parse import CSSParser
from serialize import CSSSerializer from serialize import CSSSerializer
@ -96,8 +96,7 @@ ser = CSSSerializer()
_ANYNS = -1 _ANYNS = -1
class DOMImplementationCSS(object): class DOMImplementationCSS(object):
""" """This interface allows the DOM user to create a CSSStyleSheet
This interface allows the DOM user to create a CSSStyleSheet
outside the context of a document. There is no way to associate outside the context of a document. There is no way to associate
the new CSSStyleSheet with a document in DOM Level 2. the new CSSStyleSheet with a document in DOM Level 2.
@ -166,21 +165,21 @@ parse.__doc__ = CSSParser.parse.__doc__
# set "ser", default serializer # set "ser", default serializer
def setSerializer(serializer): def setSerializer(serializer):
""" """Set the global serializer used by all class in cssutils."""
sets the global serializer used by all class in cssutils
"""
global ser global ser
ser = serializer ser = serializer
def getUrls(sheet): def getUrls(sheet):
""" """Retrieve all ``url(urlstring)`` values (in e.g.
Utility function to get all ``url(urlstring)`` values in :class:`cssutils.css.CSSImportRule` or :class:`cssutils.css.CSSValue`
``CSSImportRules`` and ``CSSStyleDeclaration`` objects (properties) objects of given `sheet`.
of given CSSStyleSheet ``sheet``.
This function is a generator. The url values exclude ``url(`` and ``)`` :param sheet:
and surrounding single or double quotes. :class:`cssutils.css.CSSStyleSheet` object whose URLs are yielded
This function is a generator. The generated URL values exclude ``url(`` and
``)`` and surrounding single or double quotes.
""" """
for importrule in (r for r in sheet if r.type == r.IMPORT_RULE): for importrule in (r for r in sheet if r.type == r.IMPORT_RULE):
yield importrule.href yield importrule.href
@ -213,14 +212,15 @@ def getUrls(sheet):
yield u yield u
def replaceUrls(sheet, replacer): def replaceUrls(sheet, replacer):
""" """Replace all URLs in :class:`cssutils.css.CSSImportRule` or
Utility function to replace all ``url(urlstring)`` values in :class:`cssutils.css.CSSValue` objects of given `sheet`.
``CSSImportRules`` and ``CSSStyleDeclaration`` objects (properties)
of given CSSStyleSheet ``sheet``.
``replacer`` must be a function which is called with a single :param sheet:
argument ``urlstring`` which is the current value of url() :class:`cssutils.css.CSSStyleSheet` which is changed
excluding ``url(`` and ``)`` and surrounding single or double quotes. :param replacer:
a function which is called with a single argument `urlstring` which is
the current value of each url() excluding ``url(`` and ``)`` and
surrounding single or double quotes.
""" """
for importrule in (r for r in sheet if r.type == r.IMPORT_RULE): for importrule in (r for r in sheet if r.type == r.IMPORT_RULE):
importrule.href = replacer(importrule.href) importrule.href = replacer(importrule.href)
@ -249,6 +249,37 @@ def replaceUrls(sheet, replacer):
elif v.CSS_PRIMITIVE_VALUE == v.cssValueType: elif v.CSS_PRIMITIVE_VALUE == v.cssValueType:
setProperty(v) setProperty(v)
def resolveImports(sheet, target=None):
"""Recurcively combine all rules in given `sheet` into a `target` sheet.
:param sheet:
in this given :class:`cssutils.css.CSSStyleSheet` all import rules are
resolved and added to a resulting *flat* sheet.
:param target:
A :class:`cssutils.css.CSSStyleSheet` object which will be the resulting
*flat* sheet if given
:returns: given `target` or a new :class:`cssutils.css.CSSStyleSheet` object
"""
if not target:
target = css.CSSStyleSheet()
#target.add(css.CSSComment(cssText=u'/* START %s */' % sheet.href))
for rule in sheet.cssRules:
if rule.type == rule.CHARSET_RULE:
pass
elif rule.type == rule.IMPORT_RULE:
log.info(u'Processing @import %r' % rule.href, neverraise=True)
if rule.styleSheet:
target.add(css.CSSComment(cssText=u'/* START @import "%s" */' % rule.href))
resolveImports(rule.styleSheet, target)
target.add(css.CSSComment(cssText=u'/* END "%s" */' % rule.href))
else:
log.error(u'Cannot get referenced stylesheet %r' %
rule.href, neverraise=True)
target.add(rule)
else:
target.add(rule)
return target
if __name__ == '__main__': if __name__ == '__main__':
print __doc__ print __doc__

40
src/cssutils/_fetch.py Normal file
View File

@ -0,0 +1,40 @@
"""Default URL reading functions"""
__all__ = ['_defaultFetcher', '_readUrl']
__docformat__ = 'restructuredtext'
__version__ = '$Id: tokenize2.py 1547 2008-12-10 20:42:26Z cthedot $'
import encutils
import errorhandler
import urllib2
import util
log = errorhandler.ErrorHandler()
def _defaultFetcher(url):
"""Retrieve data from ``url``. cssutils default implementation of fetch
URL function.
Returns ``(encoding, string)`` or ``None``
"""
try:
res = urllib2.urlopen(url)
except OSError, e:
# e.g if file URL and not found
log.warn(e, error=OSError)
except (OSError, ValueError), e:
# invalid url, e.g. "1"
log.warn(u'ValueError, %s' % e.args[0], error=ValueError)
except urllib2.HTTPError, e:
# http error, e.g. 404, e can be raised
log.warn(u'HTTPError opening url=%r: %s %s' %
(url, e.code, e.msg), error=e)
except urllib2.URLError, e:
# URLError like mailto: or other IO errors, e can be raised
log.warn(u'URLError, %s' % e.reason, error=e)
else:
if res:
mimeType, encoding = encutils.getHTTPInfo(res)
if mimeType != u'text/css':
log.error(u'Expected "text/css" mime type for url=%r but found: %r' %
(url, mimeType), error=ValueError)
return encoding, res.read()

68
src/cssutils/_fetchgae.py Normal file
View File

@ -0,0 +1,68 @@
"""GAE specific URL reading functions"""
__all__ = ['_defaultFetcher', '_readUrl']
__docformat__ = 'restructuredtext'
__version__ = '$Id: tokenize2.py 1547 2008-12-10 20:42:26Z cthedot $'
# raises ImportError of not on GAE
from google.appengine.api import urlfetch
import cgi
import errorhandler
import util
log = errorhandler.ErrorHandler()
def _defaultFetcher(url):
"""
uses GoogleAppEngine (GAE)
fetch(url, payload=None, method=GET, headers={}, allow_truncated=False)
Response
content
The body content of the response.
content_was_truncated
True if the allow_truncated parameter to fetch() was True and
the response exceeded the maximum response size. In this case,
the content attribute contains the truncated response.
status_code
The HTTP status code.
headers
The HTTP response headers, as a mapping of names to values.
Exceptions
exception InvalidURLError()
The URL of the request was not a valid URL, or it used an
unsupported method. Only http and https URLs are supported.
exception DownloadError()
There was an error retrieving the data.
This exception is not raised if the server returns an HTTP
error code: In that case, the response data comes back intact,
including the error code.
exception ResponseTooLargeError()
The response data exceeded the maximum allowed size, and the
allow_truncated parameter passed to fetch() was False.
"""
#from google.appengine.api import urlfetch
try:
r = urlfetch.fetch(url, method=urlfetch.GET)
except urlfetch.Error, e:
log.warn(u'Error opening url=%r: %s' % (url, e),
error=IOError)
else:
if r.status_code == 200:
# find mimetype and encoding
mimetype = 'application/octet-stream'
try:
mimetype, params = cgi.parse_header(r.headers['content-type'])
encoding = params['charset']
except KeyError:
encoding = None
if mimetype != u'text/css':
log.error(u'Expected "text/css" mime type for url %r but found: %r' %
(url, mimetype), error=ValueError)
return encoding, r.content
else:
# TODO: 301 etc
log.warn(u'Error opening url=%r: HTTP status %s' %
(url, r.status_code), error=IOError)

View File

@ -4,7 +4,8 @@ __docformat__ = 'restructuredtext'
__author__ = 'Walter Doerwald' __author__ = 'Walter Doerwald'
__version__ = '$Id: util.py 1114 2008-03-05 13:22:59Z cthedot $' __version__ = '$Id: util.py 1114 2008-03-05 13:22:59Z cthedot $'
import codecs, marshal import codecs
import marshal
# We're using bits to store all possible candidate encodings (or variants, i.e. # We're using bits to store all possible candidate encodings (or variants, i.e.
# we have two bits for the variants of UTF-16 and two for the # we have two bits for the variants of UTF-16 and two for the
@ -26,17 +27,17 @@ import codecs, marshal
def detectencoding_str(input, final=False): def detectencoding_str(input, final=False):
""" """
Detect the encoding of the byte string ``input``, which contains the Detect the encoding of the byte string ``input``, which contains the
beginning of a CSS file. This function returs the detected encoding (or beginning of a CSS file. This function returns the detected encoding (or
``None`` if it hasn't got enough data), and a flag that indicates whether ``None`` if it hasn't got enough data), and a flag that indicates whether
to encoding has been detected explicitely or implicitely. To detect the that encoding has been detected explicitely or implicitely. To detect the
encoding the first few bytes are used (or if ``input`` is ASCII compatible encoding the first few bytes are used (or if ``input`` is ASCII compatible
and starts with a charset rule the encoding name from the rule). "Explicit" and starts with a charset rule the encoding name from the rule). "Explicit"
detection means that the bytes start with a BOM or a charset rule. detection means that the bytes start with a BOM or a charset rule.
If the encoding can't be detected yet, ``None`` is returned as the encoding. If the encoding can't be detected yet, ``None`` is returned as the encoding.
``final`` specifies whether more data is available in later calls or not. ``final`` specifies whether more data will be available in later calls or
If ``final`` is true, ``detectencoding_str()`` will never return ``None`` not. If ``final`` is true, ``detectencoding_str()`` will never return
as the encoding. ``None`` as the encoding.
""" """
# A bit for every candidate # A bit for every candidate

View File

@ -1,5 +1,4 @@
""" """Implements Document Object Model Level 2 CSS
Document Object Model Level 2 CSS
http://www.w3.org/TR/2000/PR-DOM-Level-2-Style-20000927/css.html http://www.w3.org/TR/2000/PR-DOM-Level-2-Style-20000927/css.html
currently implemented currently implemented
@ -43,7 +42,7 @@ __all__ = [
'CSSValue', 'CSSPrimitiveValue', 'CSSValueList' 'CSSValue', 'CSSPrimitiveValue', 'CSSValueList'
] ]
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: __init__.py 1116 2008-03-05 13:52:23Z cthedot $' __version__ = '$Id: __init__.py 1610 2009-01-03 21:07:57Z cthedot $'
from cssstylesheet import * from cssstylesheet import *
from cssrulelist import * from cssrulelist import *
@ -60,4 +59,5 @@ from cssunknownrule import *
from selector import * from selector import *
from selectorlist import * from selectorlist import *
from cssstyledeclaration import * from cssstyledeclaration import *
from property import *
from cssvalue import * from cssvalue import *

View File

@ -1,16 +1,12 @@
"""CSSCharsetRule implements DOM Level 2 CSS CSSCharsetRule. """CSSCharsetRule implements DOM Level 2 CSS CSSCharsetRule."""
TODO:
- check encoding syntax and not codecs.lookup?
"""
__all__ = ['CSSCharsetRule'] __all__ = ['CSSCharsetRule']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: csscharsetrule.py 1170 2008-03-20 17:42:07Z cthedot $' __version__ = '$Id: csscharsetrule.py 1605 2009-01-03 18:27:32Z cthedot $'
import codecs import codecs
import xml.dom
import cssrule import cssrule
import cssutils import cssutils
import xml.dom
class CSSCharsetRule(cssrule.CSSRule): class CSSCharsetRule(cssrule.CSSRule):
""" """
@ -29,34 +25,25 @@ class CSSCharsetRule(cssrule.CSSRule):
(see CSS document representation) but this is not reflected in the (see CSS document representation) but this is not reflected in the
CSSCharsetRule. CSSCharsetRule.
Properties This rule is not really needed anymore as setting
========== :attr:`CSSStyleSheet.encoding` is much easier.
cssText: of type DOMString
The parsable textual representation of this rule
encoding: of type DOMString
The encoding information used in this @charset rule.
Inherits properties from CSSRule Format::
Format charsetrule:
====== CHARSET_SYM S* STRING S* ';'
charsetrule:
CHARSET_SYM S* STRING S* ';' BUT: Only valid format is (single space, double quotes!)::
BUT: Only valid format is:
@charset "ENCODING"; @charset "ENCODING";
""" """
type = property(lambda self: cssrule.CSSRule.CHARSET_RULE)
def __init__(self, encoding=None, parentRule=None, def __init__(self, encoding=None, parentRule=None,
parentStyleSheet=None, readonly=False): parentStyleSheet=None, readonly=False):
""" """
encoding: :param encoding:
a valid character encoding a valid character encoding
readonly: :param readonly:
defaults to False, not used yet defaults to False, not used yet
if readonly allows setting of properties in constructor only
""" """
super(CSSCharsetRule, self).__init__(parentRule=parentRule, super(CSSCharsetRule, self).__init__(parentRule=parentRule,
parentStyleSheet=parentStyleSheet) parentStyleSheet=parentStyleSheet)
@ -67,25 +54,34 @@ class CSSCharsetRule(cssrule.CSSRule):
self._readonly = readonly self._readonly = readonly
def __repr__(self):
return "cssutils.css.%s(encoding=%r)" % (
self.__class__.__name__, self.encoding)
def __str__(self):
return "<cssutils.css.%s object encoding=%r at 0x%x>" % (
self.__class__.__name__, self.encoding, id(self))
def _getCssText(self): def _getCssText(self):
"""returns serialized property cssText""" """The parsable textual representation."""
return cssutils.ser.do_CSSCharsetRule(self) return cssutils.ser.do_CSSCharsetRule(self)
def _setCssText(self, cssText): def _setCssText(self, cssText):
""" """
DOMException on setting :param cssText:
A parsable DOMString.
- SYNTAX_ERR: (self) :exceptions:
Raised if the specified CSS string value has a syntax error and - :exc:`~xml.dom.SyntaxErr`:
is unparsable. Raised if the specified CSS string value has a syntax error and
- INVALID_MODIFICATION_ERR: (self) is unparsable.
Raised if the specified CSS string value represents a different - :exc:`~xml.dom.InvalidModificationErr`:
type of rule than the current one. Raised if the specified CSS string value represents a different
- HIERARCHY_REQUEST_ERR: (CSSStylesheet) type of rule than the current one.
Raised if the rule cannot be inserted at this point in the - :exc:`~xml.dom.HierarchyRequestErr`:
style sheet. Raised if the rule cannot be inserted at this point in the
- NO_MODIFICATION_ALLOWED_ERR: (CSSRule) style sheet.
Raised if the rule is readonly. - :exc:`~xml.dom.NoModificationAllowedErr`:
Raised if the rule is readonly.
""" """
super(CSSCharsetRule, self)._setCssText(cssText) super(CSSCharsetRule, self)._setCssText(cssText)
@ -120,14 +116,15 @@ class CSSCharsetRule(cssrule.CSSRule):
def _setEncoding(self, encoding): def _setEncoding(self, encoding):
""" """
DOMException on setting :param encoding:
a valid encoding to be used. Currently only valid Python encodings
- NO_MODIFICATION_ALLOWED_ERR: (CSSRule) are allowed.
Raised if this encoding rule is readonly. :exceptions:
- SYNTAX_ERR: (self) - :exc:`~xml.dom.NoModificationAllowedErr`:
Raised if the specified encoding value has a syntax error and Raised if this encoding rule is readonly.
is unparsable. - :exc:`~xml.dom.SyntaxErr`:
Currently only valid Python encodings are allowed. Raised if the specified encoding value has a syntax error and
is unparsable.
""" """
self._checkReadonly() self._checkReadonly()
tokenizer = self._tokenize2(encoding) tokenizer = self._tokenize2(encoding)
@ -154,12 +151,8 @@ class CSSCharsetRule(cssrule.CSSRule):
encoding = property(lambda self: self._encoding, _setEncoding, encoding = property(lambda self: self._encoding, _setEncoding,
doc="(DOM)The encoding information used in this @charset rule.") doc="(DOM)The encoding information used in this @charset rule.")
type = property(lambda self: self.CHARSET_RULE,
doc="The type of this rule, as defined by a CSSRule "
"type constant.")
wellformed = property(lambda self: bool(self.encoding)) wellformed = property(lambda self: bool(self.encoding))
def __repr__(self):
return "cssutils.css.%s(encoding=%r)" % (
self.__class__.__name__, self.encoding)
def __str__(self):
return "<cssutils.css.%s object encoding=%r at 0x%x>" % (
self.__class__.__name__, self.encoding, id(self))

View File

@ -1,36 +1,24 @@
"""CSSComment is not defined in DOM Level 2 at all but a cssutils defined """CSSComment is not defined in DOM Level 2 at all but a cssutils defined
class only. class only.
Implements CSSRule which is also extended for a CSSComment rule type
Implements CSSRule which is also extended for a CSSComment rule type.
""" """
__all__ = ['CSSComment'] __all__ = ['CSSComment']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: csscomment.py 1170 2008-03-20 17:42:07Z cthedot $' __version__ = '$Id: csscomment.py 1638 2009-01-13 20:39:33Z cthedot $'
import xml.dom
import cssrule import cssrule
import cssutils import cssutils
import xml.dom
class CSSComment(cssrule.CSSRule): class CSSComment(cssrule.CSSRule):
""" """
(cssutils) a CSS comment Represents a CSS comment (cssutils only).
Properties Format::
==========
cssText: of type DOMString
The comment text including comment delimiters
Inherits properties from CSSRule
Format
======
::
/*...*/ /*...*/
""" """
type = property(lambda self: cssrule.CSSRule.COMMENT) # value = -1
# constant but needed:
wellformed = True
def __init__(self, cssText=None, parentRule=None, def __init__(self, cssText=None, parentRule=None,
parentStyleSheet=None, readonly=False): parentStyleSheet=None, readonly=False):
super(CSSComment, self).__init__(parentRule=parentRule, super(CSSComment, self).__init__(parentRule=parentRule,
@ -42,28 +30,33 @@ class CSSComment(cssrule.CSSRule):
self._readonly = readonly self._readonly = readonly
def __repr__(self):
return "cssutils.css.%s(cssText=%r)" % (
self.__class__.__name__, self.cssText)
def __str__(self):
return "<cssutils.css.%s object cssText=%r at 0x%x>" % (
self.__class__.__name__, self.cssText, id(self))
def _getCssText(self): def _getCssText(self):
"""returns serialized property cssText""" """Return serialized property cssText."""
return cssutils.ser.do_CSSComment(self) return cssutils.ser.do_CSSComment(self)
def _setCssText(self, cssText): def _setCssText(self, cssText):
""" """
cssText :param cssText:
textual text to set or tokenlist which is not tokenized textual text to set or tokenlist which is not tokenized
anymore. May also be a single token for this rule anymore. May also be a single token for this rule
parser
if called from cssparser directly this is Parser instance
DOMException on setting :exceptions:
- :exc:`~xml.dom.SyntaxErr`:
- SYNTAX_ERR: (self) Raised if the specified CSS string value has a syntax error and
Raised if the specified CSS string value has a syntax error and is unparsable.
is unparsable. - :exc:`~xml.dom.InvalidModificationErr`:
- INVALID_MODIFICATION_ERR: (self) Raised if the specified CSS string value represents a different
Raised if the specified CSS string value represents a different type of rule than the current one.
type of rule than the current one. - :exc:`~xml.dom.NoModificationAllowedErr`:
- NO_MODIFICATION_ALLOWED_ERR: (CSSRule) Raised if the rule is readonly.
Raised if the rule is readonly.
""" """
super(CSSComment, self)._setCssText(cssText) super(CSSComment, self)._setCssText(cssText)
tokenizer = self._tokenize2(cssText) tokenizer = self._tokenize2(cssText)
@ -81,12 +74,11 @@ class CSSComment(cssrule.CSSRule):
self._cssText = self._tokenvalue(commenttoken) self._cssText = self._tokenvalue(commenttoken)
cssText = property(_getCssText, _setCssText, cssText = property(_getCssText, _setCssText,
doc=u"(cssutils) Textual representation of this comment") doc=u"The parsable textual representation of this rule.")
def __repr__(self): type = property(lambda self: self.COMMENT,
return "cssutils.css.%s(cssText=%r)" % ( doc="The type of this rule, as defined by a CSSRule "
self.__class__.__name__, self.cssText) "type constant.")
def __str__(self): # constant but needed:
return "<cssutils.css.%s object cssText=%r at 0x%x>" % ( wellformed = property(lambda self: True)
self.__class__.__name__, self.cssText, id(self))

View File

@ -2,12 +2,12 @@
""" """
__all__ = ['CSSFontFaceRule'] __all__ = ['CSSFontFaceRule']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: cssfontfacerule.py 1284 2008-06-05 16:29:17Z cthedot $' __version__ = '$Id: cssfontfacerule.py 1638 2009-01-13 20:39:33Z cthedot $'
import xml.dom from cssstyledeclaration import CSSStyleDeclaration
import cssrule import cssrule
import cssutils import cssutils
from cssstyledeclaration import CSSStyleDeclaration import xml.dom
class CSSFontFaceRule(cssrule.CSSRule): class CSSFontFaceRule(cssrule.CSSRule):
""" """
@ -15,36 +15,19 @@ class CSSFontFaceRule(cssrule.CSSRule):
style sheet. The @font-face rule is used to hold a set of font style sheet. The @font-face rule is used to hold a set of font
descriptions. descriptions.
Properties Format::
==========
atkeyword (cssutils only)
the literal keyword used
cssText: of type DOMString
The parsable textual representation of this rule
style: of type CSSStyleDeclaration
The declaration-block of this rule.
Inherits properties from CSSRule
Format
======
::
font_face font_face
: FONT_FACE_SYM S* : FONT_FACE_SYM S*
'{' S* declaration [ ';' S* declaration ]* '}' S* '{' S* declaration [ ';' S* declaration ]* '}' S*
; ;
""" """
type = property(lambda self: cssrule.CSSRule.FONT_FACE_RULE)
# constant but needed:
wellformed = True
def __init__(self, style=None, parentRule=None, def __init__(self, style=None, parentRule=None,
parentStyleSheet=None, readonly=False): parentStyleSheet=None, readonly=False):
""" """
if readonly allows setting of properties in constructor only If readonly allows setting of properties in constructor only.
style :param style:
CSSStyleDeclaration for this CSSStyleRule CSSStyleDeclaration for this CSSStyleRule
""" """
super(CSSFontFaceRule, self).__init__(parentRule=parentRule, super(CSSFontFaceRule, self).__init__(parentRule=parentRule,
@ -57,27 +40,32 @@ class CSSFontFaceRule(cssrule.CSSRule):
self._readonly = readonly self._readonly = readonly
def __repr__(self):
return "cssutils.css.%s(style=%r)" % (
self.__class__.__name__, self.style.cssText)
def __str__(self):
return "<cssutils.css.%s object style=%r at 0x%x>" % (
self.__class__.__name__, self.style.cssText, id(self))
def _getCssText(self): def _getCssText(self):
""" """Return serialized property cssText."""
returns serialized property cssText
"""
return cssutils.ser.do_CSSFontFaceRule(self) return cssutils.ser.do_CSSFontFaceRule(self)
def _setCssText(self, cssText): def _setCssText(self, cssText):
""" """
DOMException on setting :exceptions:
- :exc:`~xml.dom.SyntaxErr`:
- SYNTAX_ERR: (self, StyleDeclaration) Raised if the specified CSS string value has a syntax error and
Raised if the specified CSS string value has a syntax error and is unparsable.
is unparsable. - :exc:`~xml.dom.InvalidModificationErr`:
- INVALID_MODIFICATION_ERR: (self) Raised if the specified CSS string value represents a different
Raised if the specified CSS string value represents a different type of rule than the current one.
type of rule than the current one. - :exc:`~xml.dom.HierarchyRequestErr`:
- HIERARCHY_REQUEST_ERR: (CSSStylesheet) Raised if the rule cannot be inserted at this point in the
Raised if the rule cannot be inserted at this point in the style sheet.
style sheet. - :exc:`~xml.dom.NoModificationAllowedErr`:
- NO_MODIFICATION_ALLOWED_ERR: (CSSRule) Raised if the rule is readonly.
Raised if the rule is readonly.
""" """
super(CSSFontFaceRule, self)._setCssText(cssText) super(CSSFontFaceRule, self)._setCssText(cssText)
@ -135,15 +123,12 @@ class CSSFontFaceRule(cssrule.CSSRule):
self._setSeq(newseq) # contains (probably comments) upto { only self._setSeq(newseq) # contains (probably comments) upto { only
cssText = property(_getCssText, _setCssText, cssText = property(_getCssText, _setCssText,
doc="(DOM) The parsable textual representation of the rule.") doc="(DOM) The parsable textual representation of this rule.")
def _getStyle(self):
return self._style
def _setStyle(self, style): def _setStyle(self, style):
""" """
style :param style:
StyleDeclaration or string a CSSStyleDeclaration or string
""" """
self._checkReadonly() self._checkReadonly()
if isinstance(style, basestring): if isinstance(style, basestring):
@ -151,13 +136,13 @@ class CSSFontFaceRule(cssrule.CSSRule):
else: else:
self._style._seq = style.seq self._style._seq = style.seq
style = property(_getStyle, _setStyle, style = property(lambda self: self._style, _setStyle,
doc="(DOM) The declaration-block of this rule set.") doc="(DOM) The declaration-block of this rule set, "
"a :class:`~cssutils.css.CSSStyleDeclaration`.")
def __repr__(self): type = property(lambda self: self.FONT_FACE_RULE,
return "cssutils.css.%s(style=%r)" % ( doc="The type of this rule, as defined by a CSSRule "
self.__class__.__name__, self.style.cssText) "type constant.")
def __str__(self): # constant but needed:
return "<cssutils.css.%s object style=%r at 0x%x>" % ( wellformed = property(lambda self: True)
self.__class__.__name__, self.style.cssText, id(self))

View File

@ -1,60 +1,30 @@
"""CSSImportRule implements DOM Level 2 CSS CSSImportRule. """CSSImportRule implements DOM Level 2 CSS CSSImportRule plus the
``name`` property from http://www.w3.org/TR/css3-cascade/#cascading.
plus:
``name`` property
http://www.w3.org/TR/css3-cascade/#cascading
""" """
__all__ = ['CSSImportRule'] __all__ = ['CSSImportRule']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: cssimportrule.py 1401 2008-07-29 21:07:54Z cthedot $' __version__ = '$Id: cssimportrule.py 1638 2009-01-13 20:39:33Z cthedot $'
import cssrule
import cssutils
import os import os
import urllib import urllib
import urlparse import urlparse
import xml.dom import xml.dom
import cssrule
import cssutils
class CSSImportRule(cssrule.CSSRule): class CSSImportRule(cssrule.CSSRule):
""" """
Represents an @import rule within a CSS style sheet. The @import rule Represents an @import rule within a CSS style sheet. The @import rule
is used to import style rules from other style sheets. is used to import style rules from other style sheets.
Properties Format::
==========
atkeyword: (cssutils only)
the literal keyword used
cssText: of type DOMString
The parsable textual representation of this rule
href: of type DOMString, (DOM readonly, cssutils also writable)
The location of the style sheet to be imported. The attribute will
not contain the url(...) specifier around the URI.
hreftype: 'uri' (serializer default) or 'string' (cssutils only)
The original type of href, not really relevant as it may be
reconfigured in the serializer but it is kept anyway
media: of type stylesheets::MediaList (DOM readonly)
A list of media types for this rule of type MediaList.
name:
An optional name used for cascading
styleSheet: of type CSSStyleSheet (DOM readonly)
The style sheet referred to by this rule. The value of this
attribute is None if the style sheet has not yet been loaded or if
it will not be loaded (e.g. if the stylesheet is for a media type
not supported by the user agent).
Inherits properties from CSSRule import
: IMPORT_SYM S*
Format [STRING|URI] S* [ medium [ COMMA S* medium]* ]? S* STRING? S* ';' S*
====== ;
import
: IMPORT_SYM S*
[STRING|URI] S* [ medium [ COMMA S* medium]* ]? S* STRING? S* ';' S*
;
""" """
type = property(lambda self: cssrule.CSSRule.IMPORT_RULE)
def __init__(self, href=None, mediaText=u'all', name=None, def __init__(self, href=None, mediaText=u'all', name=None,
parentRule=None, parentStyleSheet=None, readonly=False): parentRule=None, parentStyleSheet=None, readonly=False):
""" """
@ -90,30 +60,44 @@ class CSSImportRule(cssrule.CSSRule):
self._setSeq(seq) self._setSeq(seq)
self._readonly = readonly self._readonly = readonly
def __repr__(self):
if self._usemedia:
mediaText = self.media.mediaText
else:
mediaText = None
return "cssutils.css.%s(href=%r, mediaText=%r, name=%r)" % (
self.__class__.__name__,
self.href, self.media.mediaText, self.name)
def __str__(self):
if self._usemedia:
mediaText = self.media.mediaText
else:
mediaText = None
return "<cssutils.css.%s object href=%r mediaText=%r name=%r at 0x%x>" % (
self.__class__.__name__, self.href, mediaText, self.name, id(self))
_usemedia = property(lambda self: self.media.mediaText not in (u'', u'all'), _usemedia = property(lambda self: self.media.mediaText not in (u'', u'all'),
doc="if self._media is used (or simply empty)") doc="if self._media is used (or simply empty)")
def _getCssText(self): def _getCssText(self):
""" """Return serialized property cssText."""
returns serialized property cssText
"""
return cssutils.ser.do_CSSImportRule(self) return cssutils.ser.do_CSSImportRule(self)
def _setCssText(self, cssText): def _setCssText(self, cssText):
""" """
DOMException on setting :exceptions:
- :exc:`~xml.dom.HierarchyRequestErr`:
- HIERARCHY_REQUEST_ERR: (CSSStylesheet) Raised if the rule cannot be inserted at this point in the
Raised if the rule cannot be inserted at this point in the style sheet.
style sheet. - :exc:`~xml.dom.InvalidModificationErr`:
- INVALID_MODIFICATION_ERR: (self) Raised if the specified CSS string value represents a different
Raised if the specified CSS string value represents a different type of rule than the current one.
type of rule than the current one. - :exc:`~xml.dom.NoModificationAllowedErr`:
- NO_MODIFICATION_ALLOWED_ERR: (CSSRule) Raised if the rule is readonly.
Raised if the rule is readonly. - :exc:`~xml.dom.SyntaxErr`:
- SYNTAX_ERR: (self) Raised if the specified CSS string value has a syntax error and
Raised if the specified CSS string value has a syntax error and is unparsable.
is unparsable.
""" """
super(CSSImportRule, self)._setCssText(cssText) super(CSSImportRule, self)._setCssText(cssText)
tokenizer = self._tokenize2(cssText) tokenizer = self._tokenize2(cssText)
@ -268,7 +252,7 @@ class CSSImportRule(cssrule.CSSRule):
self.styleSheet._parentStyleSheet = self.parentStyleSheet self.styleSheet._parentStyleSheet = self.parentStyleSheet
cssText = property(fget=_getCssText, fset=_setCssText, cssText = property(fget=_getCssText, fset=_setCssText,
doc="(DOM attribute) The parsable textual representation.") doc="(DOM) The parsable textual representation of this rule.")
def _setHref(self, href): def _setHref(self, href):
# update seq # update seq
@ -291,11 +275,11 @@ class CSSImportRule(cssrule.CSSRule):
doc="Location of the style sheet to be imported.") doc="Location of the style sheet to be imported.")
media = property(lambda self: self._media, media = property(lambda self: self._media,
doc=u"(DOM readonly) A list of media types for this rule" doc="(DOM readonly) A list of media types for this rule "
" of type MediaList") "of type :class:`~cssutils.stylesheets.MediaList`.")
def _setName(self, name): def _setName(self, name):
"""raises xml.dom.SyntaxErr if name is not a string""" """Raises xml.dom.SyntaxErr if name is not a string."""
if isinstance(name, basestring) or name is None: if isinstance(name, basestring) or name is None:
# "" or '' # "" or ''
if not name: if not name:
@ -322,7 +306,7 @@ class CSSImportRule(cssrule.CSSRule):
self._log.error(u'CSSImportRule: Not a valid name: %s' % name) self._log.error(u'CSSImportRule: Not a valid name: %s' % name)
name = property(lambda self: self._name, _setName, name = property(lambda self: self._name, _setName,
doc=u"An optional name for the imported sheet") doc=u"An optional name for the imported sheet.")
def __setStyleSheet(self): def __setStyleSheet(self):
"""Read new CSSStyleSheet cssText from href using parentStyleSheet.href """Read new CSSStyleSheet cssText from href using parentStyleSheet.href
@ -372,28 +356,15 @@ class CSSImportRule(cssrule.CSSRule):
styleSheet = property(lambda self: self._styleSheet, styleSheet = property(lambda self: self._styleSheet,
doc="(readonly) The style sheet referred to by this rule.") doc="(readonly) The style sheet referred to by this rule.")
type = property(lambda self: self.IMPORT_RULE,
doc="The type of this rule, as defined by a CSSRule "
"type constant.")
def _getWellformed(self): def _getWellformed(self):
"depending if media is used at all" "Depending if media is used at all."
if self._usemedia: if self._usemedia:
return bool(self.href and self.media.wellformed) return bool(self.href and self.media.wellformed)
else: else:
return bool(self.href) return bool(self.href)
wellformed = property(_getWellformed) wellformed = property(_getWellformed)
def __repr__(self):
if self._usemedia:
mediaText = self.media.mediaText
else:
mediaText = None
return "cssutils.css.%s(href=%r, mediaText=%r, name=%r)" % (
self.__class__.__name__,
self.href, self.media.mediaText, self.name)
def __str__(self):
if self._usemedia:
mediaText = self.media.mediaText
else:
mediaText = None
return "<cssutils.css.%s object href=%r mediaText=%r name=%r at 0x%x>" % (
self.__class__.__name__, self.href, mediaText, self.name, id(self))

View File

@ -1,12 +1,11 @@
"""CSSMediaRule implements DOM Level 2 CSS CSSMediaRule. """CSSMediaRule implements DOM Level 2 CSS CSSMediaRule."""
"""
__all__ = ['CSSMediaRule'] __all__ = ['CSSMediaRule']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: cssmediarule.py 1370 2008-07-14 20:15:03Z cthedot $' __version__ = '$Id: cssmediarule.py 1641 2009-01-13 21:05:37Z cthedot $'
import xml.dom
import cssrule import cssrule
import cssutils import cssutils
import xml.dom
class CSSMediaRule(cssrule.CSSRule): class CSSMediaRule(cssrule.CSSRule):
""" """
@ -14,31 +13,17 @@ class CSSMediaRule(cssrule.CSSRule):
MEDIA_RULE constant. On these objects the type attribute must return the MEDIA_RULE constant. On these objects the type attribute must return the
value of that constant. value of that constant.
Properties Format::
==========
atkeyword: (cssutils only)
the literal keyword used
cssRules: A css::CSSRuleList of all CSS rules contained within the
media block.
cssText: of type DOMString
The parsable textual representation of this rule
media: of type stylesheets::MediaList, (DOM readonly)
A list of media types for this rule of type MediaList.
name:
An optional name used for cascading
Format
======
media
: MEDIA_SYM S* medium [ COMMA S* medium ]* : MEDIA_SYM S* medium [ COMMA S* medium ]*
STRING? # the name STRING? # the name
LBRACE S* ruleset* '}' S*; LBRACE S* ruleset* '}' S*;
"""
# CONSTANT
type = property(lambda self: cssrule.CSSRule.MEDIA_RULE)
``cssRules``
All Rules in this media rule, a :class:`~cssutils.css.CSSRuleList`.
"""
def __init__(self, mediaText='all', name=None, def __init__(self, mediaText='all', name=None,
parentRule=None, parentStyleSheet=None, readonly=False): parentRule=None, parentStyleSheet=None, readonly=False):
"""constructor""" """constructor"""
@ -56,12 +41,20 @@ class CSSMediaRule(cssrule.CSSRule):
self._readonly = readonly self._readonly = readonly
def __iter__(self): def __iter__(self):
"""generator which iterates over cssRules.""" """Generator iterating over these rule's cssRules."""
for rule in self.cssRules: for rule in self.cssRules:
yield rule yield rule
def __repr__(self):
return "cssutils.css.%s(mediaText=%r)" % (
self.__class__.__name__, self.media.mediaText)
def __str__(self):
return "<cssutils.css.%s object mediaText=%r at 0x%x>" % (
self.__class__.__name__, self.media.mediaText, id(self))
def _getCssText(self): def _getCssText(self):
"""return serialized property cssText""" """Return serialized property cssText."""
return cssutils.ser.do_CSSMediaRule(self) return cssutils.ser.do_CSSMediaRule(self)
def _setCssText(self, cssText): def _setCssText(self, cssText):
@ -69,19 +62,19 @@ class CSSMediaRule(cssrule.CSSRule):
:param cssText: :param cssText:
a parseable string or a tuple of (cssText, dict-of-namespaces) a parseable string or a tuple of (cssText, dict-of-namespaces)
:Exceptions: :Exceptions:
- `NAMESPACE_ERR`: (Selector) - :exc:`~xml.dom.NamespaceErr`:
Raised if a specified selector uses an unknown namespace Raised if a specified selector uses an unknown namespace
prefix. prefix.
- `SYNTAX_ERR`: (self, StyleDeclaration, etc) - :exc:`~xml.dom.SyntaxErr`:
Raised if the specified CSS string value has a syntax error and Raised if the specified CSS string value has a syntax error and
is unparsable. is unparsable.
- `INVALID_MODIFICATION_ERR`: (self) - :exc:`~xml.dom.InvalidModificationErr`:
Raised if the specified CSS string value represents a different Raised if the specified CSS string value represents a different
type of rule than the current one. type of rule than the current one.
- `HIERARCHY_REQUEST_ERR`: (CSSStylesheet) - :exc:`~xml.dom.HierarchyRequestErr`:
Raised if the rule cannot be inserted at this point in the Raised if the rule cannot be inserted at this point in the
style sheet. style sheet.
- `NO_MODIFICATION_ALLOWED_ERR`: (CSSRule) - :exc:`~xml.dom.NoModificationAllowedErr`:
Raised if the rule is readonly. Raised if the rule is readonly.
""" """
super(CSSMediaRule, self)._setCssText(cssText) super(CSSMediaRule, self)._setCssText(cssText)
@ -209,7 +202,7 @@ class CSSMediaRule(cssrule.CSSRule):
self.cssRules.append(r) self.cssRules.append(r)
cssText = property(_getCssText, _setCssText, cssText = property(_getCssText, _setCssText,
doc="(DOM attribute) The parsable textual representation.") doc="(DOM) The parsable textual representation of this rule.")
def _setName(self, name): def _setName(self, name):
if isinstance(name, basestring) or name is None: if isinstance(name, basestring) or name is None:
@ -221,30 +214,26 @@ class CSSMediaRule(cssrule.CSSRule):
else: else:
self._log.error(u'CSSImportRule: Not a valid name: %s' % name) self._log.error(u'CSSImportRule: Not a valid name: %s' % name)
name = property(lambda self: self._name, _setName, name = property(lambda self: self._name, _setName,
doc=u"An optional name for the media rules") doc=u"An optional name for this media rule.")
media = property(lambda self: self._media, media = property(lambda self: self._media,
doc=u"(DOM readonly) A list of media types for this rule of type\ doc=u"(DOM readonly) A list of media types for this rule of type "
MediaList") u":class:`~cssutils.stylesheets.MediaList`.")
wellformed = property(lambda self: self.media.wellformed)
def deleteRule(self, index): def deleteRule(self, index):
""" """
index Delete the rule at `index` from the media block.
within the media block's rule collection of the rule to remove.
Used to delete a rule from the media block. :param index:
of the rule to remove within the media block's rule collection
DOMExceptions :Exceptions:
- :exc:`~xml.dom.IndexSizeErr`:
- INDEX_SIZE_ERR: (self) Raised if the specified index does not correspond to a rule in
Raised if the specified index does not correspond to a rule in the media rule list.
the media rule list. - :exc:`~xml.dom.NoModificationAllowedErr`:
- NO_MODIFICATION_ALLOWED_ERR: (self) Raised if this media rule is readonly.
Raised if this media rule is readonly.
""" """
self._checkReadonly() self._checkReadonly()
@ -257,46 +246,47 @@ class CSSMediaRule(cssrule.CSSRule):
index, self.cssRules.length)) index, self.cssRules.length))
def add(self, rule): def add(self, rule):
"""Add rule to end of this mediarule. Same as ``.insertRule(rule)``.""" """Add `rule` to end of this mediarule.
Same as :meth:`~cssutils.css.CSSMediaRule.insertRule`."""
self.insertRule(rule, index=None) self.insertRule(rule, index=None)
def insertRule(self, rule, index=None): def insertRule(self, rule, index=None):
""" """
rule Insert `rule` into the media block.
The parsable text representing the rule. For rule sets this
contains both the selector and the style declaration. For :param rule:
at-rules, this specifies both the at-identifier and the rule the parsable text representing the `rule` to be inserted. For rule
sets this contains both the selector and the style declaration.
For at-rules, this specifies both the at-identifier and the rule
content. content.
cssutils also allows rule to be a valid **CSSRule** object cssutils also allows rule to be a valid :class:`~cssutils.css.CSSRule`
object.
index :param index:
within the media block's rule collection of the rule before before the specified `rule` will be inserted.
which to insert the specified rule. If the specified index is If the specified `index` is
equal to the length of the media blocks's rule collection, the equal to the length of the media blocks's rule collection, the
rule will be added to the end of the media block. rule will be added to the end of the media block.
If index is not given or None rule will be appended to rule If index is not given or None rule will be appended to rule
list. list.
Used to insert a new rule into the media block. :returns:
the index within the media block's rule collection of the
newly inserted rule.
DOMException on setting :exceptions:
- :exc:`~xml.dom.HierarchyRequestErr`:
- HIERARCHY_REQUEST_ERR: Raised if the `rule` cannot be inserted at the specified `index`,
(no use case yet as no @charset or @import allowed)) e.g., if an @import rule is inserted after a standard rule set
Raised if the rule cannot be inserted at the specified index, or other at-rule.
e.g., if an @import rule is inserted after a standard rule set - :exc:`~xml.dom.IndexSizeErr`:
or other at-rule. Raised if the specified `index` is not a valid insertion point.
- INDEX_SIZE_ERR: (self) - :exc:`~xml.dom.NoModificationAllowedErr`:
Raised if the specified index is not a valid insertion point. Raised if this media rule is readonly.
- NO_MODIFICATION_ALLOWED_ERR: (self) - :exc:`~xml.dom.SyntaxErr`:
Raised if this media rule is readonly. Raised if the specified `rule` has a syntax error and is
- SYNTAX_ERR: (CSSStyleRule) unparsable.
Raised if the specified rule has a syntax error and is
unparsable.
returns the index within the media block's rule collection of the
newly inserted rule.
""" """
self._checkReadonly() self._checkReadonly()
@ -340,10 +330,8 @@ class CSSMediaRule(cssrule.CSSRule):
rule._parentStyleSheet = self.parentStyleSheet rule._parentStyleSheet = self.parentStyleSheet
return index return index
def __repr__(self): type = property(lambda self: self.MEDIA_RULE,
return "cssutils.css.%s(mediaText=%r)" % ( doc="The type of this rule, as defined by a CSSRule "
self.__class__.__name__, self.media.mediaText) "type constant.")
def __str__(self): wellformed = property(lambda self: self.media.wellformed)
return "<cssutils.css.%s object mediaText=%r at 0x%x>" % (
self.__class__.__name__, self.media.mediaText, id(self))

View File

@ -1,16 +1,12 @@
"""CSSNamespaceRule currently implements """CSSNamespaceRule currently implements http://dev.w3.org/csswg/css3-namespace/"""
http://dev.w3.org/csswg/css3-namespace/
(until 0.9.5a2: http://www.w3.org/TR/2006/WD-css3-namespace-20060828/)
"""
__all__ = ['CSSNamespaceRule'] __all__ = ['CSSNamespaceRule']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: cssnamespacerule.py 1305 2008-06-22 18:42:51Z cthedot $' __version__ = '$Id: cssnamespacerule.py 1638 2009-01-13 20:39:33Z cthedot $'
import xml.dom from cssutils.helper import Deprecated
import cssrule import cssrule
import cssutils import cssutils
from cssutils.helper import Deprecated import xml.dom
class CSSNamespaceRule(cssrule.CSSRule): class CSSNamespaceRule(cssrule.CSSRule):
""" """
@ -21,35 +17,18 @@ class CSSNamespaceRule(cssrule.CSSRule):
used in namespace-qualified names such as those described in the used in namespace-qualified names such as those described in the
Selectors Module [SELECT] or the Values and Units module [CSS3VAL]. Selectors Module [SELECT] or the Values and Units module [CSS3VAL].
Properties Dealing with these rules directly is not needed anymore, easier is
========== the use of :attr:`cssutils.css.CSSStyleSheet.namespaces`.
atkeyword (cssutils only)
the literal keyword used
cssText: of type DOMString
The parsable textual representation of this rule
namespaceURI: of type DOMString
The namespace URI (a simple string!) which is bound to the given
prefix. If no prefix is set (``CSSNamespaceRule.prefix==''``)
the namespace defined by ``namespaceURI`` is set as the default
namespace.
prefix: of type DOMString
The prefix used in the stylesheet for the given
``CSSNamespaceRule.nsuri``. If prefix is empty namespaceURI sets a
default namespace for the stylesheet.
Inherits properties from CSSRule Format::
Format namespace
====== : NAMESPACE_SYM S* [namespace_prefix S*]? [STRING|URI] S* ';' S*
namespace ;
: NAMESPACE_SYM S* [namespace_prefix S*]? [STRING|URI] S* ';' S* namespace_prefix
; : IDENT
namespace_prefix ;
: IDENT
;
""" """
type = property(lambda self: cssrule.CSSRule.NAMESPACE_RULE)
def __init__(self, namespaceURI=None, prefix=None, cssText=None, def __init__(self, namespaceURI=None, prefix=None, cssText=None,
parentRule=None, parentStyleSheet=None, readonly=False): parentRule=None, parentStyleSheet=None, readonly=False):
""" """
@ -102,27 +81,31 @@ class CSSNamespaceRule(cssrule.CSSRule):
self._readonly = readonly self._readonly = readonly
def __repr__(self):
return "cssutils.css.%s(namespaceURI=%r, prefix=%r)" % (
self.__class__.__name__, self.namespaceURI, self.prefix)
def __str__(self):
return "<cssutils.css.%s object namespaceURI=%r prefix=%r at 0x%x>" % (
self.__class__.__name__, self.namespaceURI, self.prefix, id(self))
def _getCssText(self): def _getCssText(self):
""" """Return serialized property cssText"""
returns serialized property cssText
"""
return cssutils.ser.do_CSSNamespaceRule(self) return cssutils.ser.do_CSSNamespaceRule(self)
def _setCssText(self, cssText): def _setCssText(self, cssText):
""" """
DOMException on setting
:param cssText: initial value for this rules cssText which is parsed :param cssText: initial value for this rules cssText which is parsed
:Exceptions: :exceptions:
- `HIERARCHY_REQUEST_ERR`: (CSSStylesheet) - :exc:`~xml.dom.HierarchyRequestErr`:
Raised if the rule cannot be inserted at this point in the Raised if the rule cannot be inserted at this point in the
style sheet. style sheet.
- `INVALID_MODIFICATION_ERR`: (self) - :exc:`~xml.dom.InvalidModificationErr`:
Raised if the specified CSS string value represents a different Raised if the specified CSS string value represents a different
type of rule than the current one. type of rule than the current one.
- `NO_MODIFICATION_ALLOWED_ERR`: (CSSRule) - :exc:`~xml.dom.NoModificationAllowedErr`:
Raised if the rule is readonly. Raised if the rule is readonly.
- `SYNTAX_ERR`: (self) - :exc:`~xml.dom.SyntaxErr`:
Raised if the specified CSS string value has a syntax error and Raised if the specified CSS string value has a syntax error and
is unparsable. is unparsable.
""" """
@ -222,15 +205,13 @@ class CSSNamespaceRule(cssrule.CSSRule):
self._setSeq(newseq) self._setSeq(newseq)
cssText = property(fget=_getCssText, fset=_setCssText, cssText = property(fget=_getCssText, fset=_setCssText,
doc="(DOM attribute) The parsable textual representation.") doc="(DOM) The parsable textual representation of this rule.")
def _setNamespaceURI(self, namespaceURI): def _setNamespaceURI(self, namespaceURI):
""" """
DOMException on setting
:param namespaceURI: the initial value for this rules namespaceURI :param namespaceURI: the initial value for this rules namespaceURI
:Exceptions: :exceptions:
- `NO_MODIFICATION_ALLOWED_ERR`: - :exc:`~xml.dom.NoModificationAllowedErr`:
(CSSRule) Raised if this rule is readonly or a namespaceURI is (CSSRule) Raised if this rule is readonly or a namespaceURI is
already set in this rule. already set in this rule.
""" """
@ -246,18 +227,16 @@ class CSSNamespaceRule(cssrule.CSSRule):
error=xml.dom.NoModificationAllowedErr) error=xml.dom.NoModificationAllowedErr)
namespaceURI = property(lambda self: self._namespaceURI, _setNamespaceURI, namespaceURI = property(lambda self: self._namespaceURI, _setNamespaceURI,
doc="URI (string!) of the defined namespace.") doc="URI (handled as simple string) of the defined namespace.")
def _setPrefix(self, prefix=None): def _setPrefix(self, prefix=None):
""" """
DOMException on setting
:param prefix: the new prefix :param prefix: the new prefix
:Exceptions: :exceptions:
- `SYNTAX_ERR`: (TODO) - :exc:`~xml.dom.SyntaxErr`:
Raised if the specified CSS string value has a syntax error and Raised if the specified CSS string value has a syntax error and
is unparsable. is unparsable.
- `NO_MODIFICATION_ALLOWED_ERR`: CSSRule) - :exc:`~xml.dom.NoModificationAllowedErr`:
Raised if this rule is readonly. Raised if this rule is readonly.
""" """
self._checkReadonly() self._checkReadonly()
@ -295,12 +274,9 @@ class CSSNamespaceRule(cssrule.CSSRule):
# _setParentStyleSheet, # _setParentStyleSheet,
# doc=u"Containing CSSStyleSheet.") # doc=u"Containing CSSStyleSheet.")
type = property(lambda self: self.NAMESPACE_RULE,
doc="The type of this rule, as defined by a CSSRule "
"type constant.")
wellformed = property(lambda self: self.namespaceURI is not None) wellformed = property(lambda self: self.namespaceURI is not None)
def __repr__(self):
return "cssutils.css.%s(namespaceURI=%r, prefix=%r)" % (
self.__class__.__name__, self.namespaceURI, self.prefix)
def __str__(self):
return "<cssutils.css.%s object namespaceURI=%r prefix=%r at 0x%x>" % (
self.__class__.__name__, self.namespaceURI, self.prefix, id(self))

View File

@ -2,13 +2,13 @@
""" """
__all__ = ['CSSPageRule'] __all__ = ['CSSPageRule']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: csspagerule.py 1284 2008-06-05 16:29:17Z cthedot $' __version__ = '$Id: csspagerule.py 1658 2009-02-07 18:24:40Z cthedot $'
import xml.dom from cssstyledeclaration import CSSStyleDeclaration
from selectorlist import SelectorList
import cssrule import cssrule
import cssutils import cssutils
from selectorlist import SelectorList import xml.dom
from cssstyledeclaration import CSSStyleDeclaration
class CSSPageRule(cssrule.CSSRule): class CSSPageRule(cssrule.CSSRule):
""" """
@ -16,22 +16,7 @@ class CSSPageRule(cssrule.CSSRule):
sheet. The @page rule is used to specify the dimensions, orientation, sheet. The @page rule is used to specify the dimensions, orientation,
margins, etc. of a page box for paged media. margins, etc. of a page box for paged media.
Properties Format::
==========
atkeyword (cssutils only)
the literal keyword used
cssText: of type DOMString
The parsable textual representation of this rule
selectorText: of type DOMString
The parsable textual representation of the page selector for the rule.
style: of type CSSStyleDeclaration
The declaration-block of this rule.
Inherits properties from CSSRule
Format
======
::
page page
: PAGE_SYM S* pseudo_page? S* : PAGE_SYM S* pseudo_page? S*
@ -40,20 +25,15 @@ class CSSPageRule(cssrule.CSSRule):
pseudo_page pseudo_page
: ':' IDENT # :first, :left, :right in CSS 2.1 : ':' IDENT # :first, :left, :right in CSS 2.1
; ;
""" """
type = property(lambda self: cssrule.CSSRule.PAGE_RULE)
# constant but needed:
wellformed = True
def __init__(self, selectorText=None, style=None, parentRule=None, def __init__(self, selectorText=None, style=None, parentRule=None,
parentStyleSheet=None, readonly=False): parentStyleSheet=None, readonly=False):
""" """
if readonly allows setting of properties in constructor only If readonly allows setting of properties in constructor only.
selectorText :param selectorText:
type string type string
style :param style:
CSSStyleDeclaration for this CSSStyleRule CSSStyleDeclaration for this CSSStyleRule
""" """
super(CSSPageRule, self).__init__(parentRule=parentRule, super(CSSPageRule, self).__init__(parentRule=parentRule,
@ -64,7 +44,7 @@ class CSSPageRule(cssrule.CSSRule):
self.selectorText = selectorText self.selectorText = selectorText
tempseq.append(self.selectorText, 'selectorText') tempseq.append(self.selectorText, 'selectorText')
else: else:
self._selectorText = u'' self._selectorText = self._tempSeq()
if style: if style:
self.style = style self.style = style
tempseq.append(self.style, 'style') tempseq.append(self.style, 'style')
@ -74,20 +54,29 @@ class CSSPageRule(cssrule.CSSRule):
self._readonly = readonly self._readonly = readonly
def __repr__(self):
return "cssutils.css.%s(selectorText=%r, style=%r)" % (
self.__class__.__name__, self.selectorText, self.style.cssText)
def __str__(self):
return "<cssutils.css.%s object selectorText=%r style=%r at 0x%x>" % (
self.__class__.__name__, self.selectorText, self.style.cssText,
id(self))
def __parseSelectorText(self, selectorText): def __parseSelectorText(self, selectorText):
""" """
parses selectorText which may also be a list of tokens Parse `selectorText` which may also be a list of tokens
and returns (selectorText, seq) and returns (selectorText, seq).
see _setSelectorText for details see _setSelectorText for details
""" """
# for closures: must be a mutable # for closures: must be a mutable
new = {'selector': None, 'wellformed': True} new = {'wellformed': True, 'last-S': False}
def _char(expected, seq, token, tokenizer=None): def _char(expected, seq, token, tokenizer=None):
# pseudo_page, :left, :right or :first # pseudo_page, :left, :right or :first
val = self._tokenvalue(token) val = self._tokenvalue(token)
if ':' == expected and u':' == val: if not new['last-S'] and expected in ['page', ': or EOF'] and u':' == val:
try: try:
identtoken = tokenizer.next() identtoken = tokenizer.next()
except StopIteration: except StopIteration:
@ -100,8 +89,7 @@ class CSSPageRule(cssrule.CSSRule):
u'CSSPageRule selectorText: Expected IDENT but found: %r' % u'CSSPageRule selectorText: Expected IDENT but found: %r' %
ival, token) ival, token)
else: else:
new['selector'] = val + ival seq.append(val + ival, 'pseudo')
seq.append(new['selector'], 'selector')
return 'EOF' return 'EOF'
return expected return expected
else: else:
@ -112,22 +100,37 @@ class CSSPageRule(cssrule.CSSRule):
def S(expected, seq, token, tokenizer=None): def S(expected, seq, token, tokenizer=None):
"Does not raise if EOF is found." "Does not raise if EOF is found."
if expected == ': or EOF':
# pseudo must directly follow IDENT if given
new['last-S'] = True
return expected return expected
def IDENT(expected, seq, token, tokenizer=None):
""
val = self._tokenvalue(token)
if 'page' == expected:
seq.append(val, 'IDENT')
return ': or EOF'
else:
new['wellformed'] = False
self._log.error(
u'CSSPageRule selectorText: Unexpected IDENT: %r' % val, token)
return expected
def COMMENT(expected, seq, token, tokenizer=None): def COMMENT(expected, seq, token, tokenizer=None):
"Does not raise if EOF is found." "Does not raise if EOF is found."
seq.append(cssutils.css.CSSComment([token]), 'COMMENT') seq.append(cssutils.css.CSSComment([token]), 'COMMENT')
return expected return expected
newseq = self._tempSeq() newseq = self._tempSeq()
wellformed, expected = self._parse(expected=':', wellformed, expected = self._parse(expected='page',
seq=newseq, tokenizer=self._tokenize2(selectorText), seq=newseq, tokenizer=self._tokenize2(selectorText),
productions={'CHAR': _char, productions={'CHAR': _char,
'IDENT': IDENT,
'COMMENT': COMMENT, 'COMMENT': COMMENT,
'S': S}, 'S': S},
new=new) new=new)
wellformed = wellformed and new['wellformed'] wellformed = wellformed and new['wellformed']
newselector = new['selector']
# post conditions # post conditions
if expected == 'ident': if expected == 'ident':
@ -135,33 +138,30 @@ class CSSPageRule(cssrule.CSSRule):
u'CSSPageRule selectorText: No valid selector: %r' % u'CSSPageRule selectorText: No valid selector: %r' %
self._valuestr(selectorText)) self._valuestr(selectorText))
if not newselector in (None, u':first', u':left', u':right'): # if not newselector in (None, u':first', u':left', u':right'):
self._log.warn(u'CSSPageRule: Unknown CSS 2.1 @page selector: %r' % # self._log.warn(u'CSSPageRule: Unknown CSS 2.1 @page selector: %r' %
newselector, neverraise=True) # newselector, neverraise=True)
return newselector, newseq return wellformed, newseq
def _getCssText(self): def _getCssText(self):
""" """Return serialized property cssText."""
returns serialized property cssText
"""
return cssutils.ser.do_CSSPageRule(self) return cssutils.ser.do_CSSPageRule(self)
def _setCssText(self, cssText): def _setCssText(self, cssText):
""" """
DOMException on setting :exceptions:
- :exc:`~xml.dom.SyntaxErr`:
- SYNTAX_ERR: (self, StyleDeclaration) Raised if the specified CSS string value has a syntax error and
Raised if the specified CSS string value has a syntax error and is unparsable.
is unparsable. - :exc:`~xml.dom.InvalidModificationErr`:
- INVALID_MODIFICATION_ERR: (self) Raised if the specified CSS string value represents a different
Raised if the specified CSS string value represents a different type of rule than the current one.
type of rule than the current one. - :exc:`~xml.dom.HierarchyRequestErr`:
- HIERARCHY_REQUEST_ERR: (CSSStylesheet) Raised if the rule cannot be inserted at this point in the
Raised if the rule cannot be inserted at this point in the style sheet.
style sheet. - :exc:`~xml.dom.NoModificationAllowedErr`:
- NO_MODIFICATION_ALLOWED_ERR: (CSSRule) Raised if the rule is readonly.
Raised if the rule is readonly.
""" """
super(CSSPageRule, self)._setCssText(cssText) super(CSSPageRule, self)._setCssText(cssText)
@ -190,7 +190,7 @@ class CSSPageRule(cssrule.CSSRule):
u'CSSPageRule: Trailing content found.', token=nonetoken) u'CSSPageRule: Trailing content found.', token=nonetoken)
newselector, newselectorseq = self.__parseSelectorText(selectortokens) wellformed, newselectorseq = self.__parseSelectorText(selectortokens)
newstyle = CSSStyleDeclaration() newstyle = CSSStyleDeclaration()
val, typ = self._tokenvalue(braceorEOFtoken), self._type(braceorEOFtoken) val, typ = self._tokenvalue(braceorEOFtoken), self._type(braceorEOFtoken)
@ -206,63 +206,49 @@ class CSSPageRule(cssrule.CSSRule):
newstyle.cssText = styletokens newstyle.cssText = styletokens
if wellformed: if wellformed:
self._selectorText = newselector # already parsed self._selectorText = newselectorseq # already parsed
self.style = newstyle self.style = newstyle
self._setSeq(newselectorseq) # contains upto style only self._setSeq(newselectorseq) # contains upto style only
cssText = property(_getCssText, _setCssText, cssText = property(_getCssText, _setCssText,
doc="(DOM) The parsable textual representation of the rule.") doc="(DOM) The parsable textual representation of this rule.")
def _getSelectorText(self): def _getSelectorText(self):
""" """Wrapper for cssutils Selector object."""
wrapper for cssutils Selector object return cssutils.ser.do_CSSPageRuleSelector(self._selectorText)#self._selectorText
"""
return self._selectorText
def _setSelectorText(self, selectorText): def _setSelectorText(self, selectorText):
""" """Wrapper for cssutils Selector object.
wrapper for cssutils Selector object
:param selectorText:
DOM String, in CSS 2.1 one of
selector: DOM String
in CSS 2.1 one of
- :first - :first
- :left - :left
- :right - :right
- empty - empty
If WS or Comments are included they are ignored here! Only :exceptions:
way to add a comment is via setting ``cssText`` - :exc:`~xml.dom.SyntaxErr`:
Raised if the specified CSS string value has a syntax error
DOMException on setting and is unparsable.
- :exc:`~xml.dom.NoModificationAllowedErr`:
- SYNTAX_ERR: Raised if this rule is readonly.
Raised if the specified CSS string value has a syntax error
and is unparsable.
- NO_MODIFICATION_ALLOWED_ERR: (self)
Raised if this rule is readonly.
""" """
self._checkReadonly() self._checkReadonly()
# may raise SYNTAX_ERR # may raise SYNTAX_ERR
newselectortext, newseq = self.__parseSelectorText(selectorText) wellformed, newseq = self.__parseSelectorText(selectorText)
if wellformed and newseq:
if newselectortext: self._selectorText = newseq
for i, x in enumerate(self.seq):
if x == self._selectorText:
self.seq[i] = newselectortext
self._selectorText = newselectortext
selectorText = property(_getSelectorText, _setSelectorText, selectorText = property(_getSelectorText, _setSelectorText,
doc="""(DOM) The parsable textual representation of the page selector for the rule.""") doc="""(DOM) The parsable textual representation of the page selector for the rule.""")
def _getStyle(self):
return self._style
def _setStyle(self, style): def _setStyle(self, style):
""" """
style :param style:
StyleDeclaration or string a CSSStyleDeclaration or string
""" """
self._checkReadonly() self._checkReadonly()
@ -273,14 +259,14 @@ class CSSPageRule(cssrule.CSSRule):
# so use seq! # so use seq!
self._style._seq = style.seq self._style._seq = style.seq
style = property(_getStyle, _setStyle, style = property(lambda self: self._style, _setStyle,
doc="(DOM) The declaration-block of this rule set.") doc="(DOM) The declaration-block of this rule set, "
"a :class:`~cssutils.css.CSSStyleDeclaration`.")
def __repr__(self):
return "cssutils.css.%s(selectorText=%r, style=%r)" % (
self.__class__.__name__, self.selectorText, self.style.cssText)
def __str__(self): type = property(lambda self: self.PAGE_RULE,
return "<cssutils.css.%s object selectorText=%r style=%r at 0x%x>" % ( doc="The type of this rule, as defined by a CSSRule "
self.__class__.__name__, self.selectorText, self.style.cssText, "type constant.")
id(self))
# constant but needed:
wellformed = property(lambda self: True)

View File

@ -45,264 +45,16 @@ TODO: CSS2Properties DOMImplementation
string for this extended interface listed in this section is "CSS2" string for this extended interface listed in this section is "CSS2"
and the version is "2.0". and the version is "2.0".
cssvalues
=========
contributed by Kevin D. Smith, thanks!
"cssvalues" is used as a property validator.
it is an importable object that contains a dictionary of compiled regular
expressions. The keys of this dictionary are all of the valid CSS property
names. The values are compiled regular expressions that can be used to
validate the values for that property. (Actually, the values are references
to the 'match' method of a compiled regular expression, so that they are
simply called like functions.)
""" """
__all__ = ['CSS2Properties', 'cssvalues'] __all__ = ['CSS2Properties']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: cssproperties.py 1469 2008-09-15 19:06:00Z cthedot $' __version__ = '$Id: cssproperties.py 1638 2009-01-13 20:39:33Z cthedot $'
import cssutils.profiles
import re import re
"""
Define some regular expression fragments that will be used as
macros within the CSS property value regular expressions.
"""
MACROS = {
'ident': r'[-]?{nmstart}{nmchar}*',
'name': r'{nmchar}+',
'nmstart': r'[_a-z]|{nonascii}|{escape}',
'nonascii': r'[^\0-\177]',
'unicode': r'\\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?',
'escape': r'{unicode}|\\[ -~\200-\777]',
# 'escape': r'{unicode}|\\[ -~\200-\4177777]',
'int': r'[-]?\d+',
'nmchar': r'[\w-]|{nonascii}|{escape}',
'num': r'[-]?\d+|[-]?\d*\.\d+',
'number': r'{num}',
'string': r'{string1}|{string2}',
'string1': r'"(\\\"|[^\"])*"',
'string2': r"'(\\\'|[^\'])*'",
'nl': r'\n|\r\n|\r|\f',
'w': r'\s*',
'integer': r'{int}',
'length': r'0|{num}(em|ex|px|in|cm|mm|pt|pc)',
'angle': r'0|{num}(deg|grad|rad)',
'time': r'0|{num}m?s',
'frequency': r'0|{num}k?Hz',
'color': r'(maroon|red|orange|yellow|olive|purple|fuchsia|white|lime|green|navy|blue|aqua|teal|black|silver|gray|ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText)|#[0-9a-f]{3}|#[0-9a-f]{6}|rgb\({w}{int}{w},{w}{int}{w},{w}{int}{w}\)|rgb\({w}{num}%{w},{w}{num}%{w},{w}{num}%{w}\)',
'uri': r'url\({w}({string}|(\\\)|[^\)])+){w}\)',
'percentage': r'{num}%',
'border-style': 'none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset',
'border-color': '{color}',
'border-width': '{length}|thin|medium|thick',
'background-color': r'{color}|transparent|inherit',
'background-image': r'{uri}|none|inherit',
'background-position': r'({percentage}|{length})(\s*({percentage}|{length}))?|((top|center|bottom)\s*(left|center|right))|((left|center|right)\s*(top|center|bottom))|inherit',
'background-repeat': r'repeat|repeat-x|repeat-y|no-repeat|inherit',
'background-attachment': r'scroll|fixed|inherit',
'shape': r'rect\(({w}({length}|auto}){w},){3}{w}({length}|auto){w}\)',
'counter': r'counter\({w}{identifier}{w}(?:,{w}{list-style-type}{w})?\)',
'identifier': r'{ident}',
'family-name': r'{string}|{identifier}',
'generic-family': r'serif|sans-serif|cursive|fantasy|monospace',
'absolute-size': r'(x?x-)?(small|large)|medium',
'relative-size': r'smaller|larger',
'font-family': r'(({family-name}|{generic-family}){w},{w})*({family-name}|{generic-family})|inherit',
'font-size': r'{absolute-size}|{relative-size}|{length}|{percentage}|inherit',
'font-style': r'normal|italic|oblique|inherit',
'font-variant': r'normal|small-caps|inherit',
'font-weight': r'normal|bold|bolder|lighter|[1-9]00|inherit',
'line-height': r'normal|{number}|{length}|{percentage}|inherit',
'list-style-image': r'{uri}|none|inherit',
'list-style-position': r'inside|outside|inherit',
'list-style-type': r'disc|circle|square|decimal|decimal-leading-zero|lower-roman|upper-roman|lower-greek|lower-(latin|alpha)|upper-(latin|alpha)|armenian|georgian|none|inherit',
'margin-width': r'{length}|{percentage}|auto',
'outline-color': r'{color}|invert|inherit',
'outline-style': r'{border-style}|inherit',
'outline-width': r'{border-width}|inherit',
'padding-width': r'{length}|{percentage}',
'specific-voice': r'{identifier}',
'generic-voice': r'male|female|child',
'content': r'{string}|{uri}|{counter}|attr\({w}{identifier}{w}\)|open-quote|close-quote|no-open-quote|no-close-quote',
'border-attrs': r'{border-width}|{border-style}|{border-color}',
'background-attrs': r'{background-color}|{background-image}|{background-repeat}|{background-attachment}|{background-position}',
'list-attrs': r'{list-style-type}|{list-style-position}|{list-style-image}',
'font-attrs': r'{font-style}|{font-variant}|{font-weight}',
'outline-attrs': r'{outline-color}|{outline-style}|{outline-width}',
'text-attrs': r'underline|overline|line-through|blink',
}
"""
Define the regular expressions for validation all CSS values
"""
cssvalues = {
'azimuth': r'{angle}|(behind\s+)?(left-side|far-left|left|center-left|center|center-right|right|far-right|right-side)(\s+behind)?|behind|leftwards|rightwards|inherit',
'background-attachment': r'{background-attachment}',
'background-color': r'{background-color}',
'background-image': r'{background-image}',
'background-position': r'{background-position}',
'background-repeat': r'{background-repeat}',
# Each piece should only be allowed one time
'background': r'{background-attrs}(\s+{background-attrs})*|inherit',
'border-collapse': r'collapse|separate|inherit',
'border-color': r'({border-color}|transparent)(\s+({border-color}|transparent)){0,3}|inherit',
'border-spacing': r'{length}(\s+{length})?|inherit',
'border-style': r'{border-style}(\s+{border-style}){0,3}|inherit',
'border-top': r'{border-attrs}(\s+{border-attrs})*|inherit',
'border-right': r'{border-attrs}(\s+{border-attrs})*|inherit',
'border-bottom': r'{border-attrs}(\s+{border-attrs})*|inherit',
'border-left': r'{border-attrs}(\s+{border-attrs})*|inherit',
'border-top-color': r'{border-color}|transparent|inherit',
'border-right-color': r'{border-color}|transparent|inherit',
'border-bottom-color': r'{border-color}|transparent|inherit',
'border-left-color': r'{border-color}|transparent|inherit',
'border-top-style': r'{border-style}|inherit',
'border-right-style': r'{border-style}|inherit',
'border-bottom-style': r'{border-style}|inherit',
'border-left-style': r'{border-style}|inherit',
'border-top-width': r'{border-width}|inherit',
'border-right-width': r'{border-width}|inherit',
'border-bottom-width': r'{border-width}|inherit',
'border-left-width': r'{border-width}|inherit',
'border-width': r'{border-width}(\s+{border-width}){0,3}|inherit',
'border': r'{border-attrs}(\s+{border-attrs})*|inherit',
'bottom': r'{length}|{percentage}|auto|inherit',
'caption-side': r'top|bottom|inherit',
'clear': r'none|left|right|both|inherit',
'clip': r'{shape}|auto|inherit',
'color': r'{color}|inherit',
'content': r'normal|{content}(\s+{content})*|inherit',
'counter-increment': r'({identifier}(\s+{integer})?)(\s+({identifier}(\s+{integer})))*|none|inherit',
'counter-reset': r'({identifier}(\s+{integer})?)(\s+({identifier}(\s+{integer})))*|none|inherit',
'cue-after': r'{uri}|none|inherit',
'cue-before': r'{uri}|none|inherit',
'cue': r'({uri}|none|inherit){1,2}|inherit',
'cursor': r'((({uri}{w},{w})*)?(auto|crosshair|default|pointer|move|(e|ne|nw|n|se|sw|s|w)-resize|text|wait|help|progress))|inherit',
'direction': r'ltr|rtl|inherit',
'display': r'inline|block|list-item|run-in|inline-block|table|inline-table|table-row-group|table-header-group|table-footer-group|table-row|table-column-group|table-column|table-cell|table-caption|none|inherit',
'elevation': r'{angle}|below|level|above|higher|lower|inherit',
'empty-cells': r'show|hide|inherit',
'float': r'left|right|none|inherit',
'font-family': r'{font-family}',
'font-size': r'{font-size}',
'font-style': r'{font-style}',
'font-variant': r'{font-variant}',
'font-weight': r'{font-weight}',
'font': r'({font-attrs}\s+)*{font-size}({w}/{w}{line-height})?\s+{font-family}|caption|icon|menu|message-box|small-caption|status-bar|inherit',
'height': r'{length}|{percentage}|auto|inherit',
'left': r'{length}|{percentage}|auto|inherit',
'letter-spacing': r'normal|{length}|inherit',
'line-height': r'{line-height}',
'list-style-image': r'{list-style-image}',
'list-style-position': r'{list-style-position}',
'list-style-type': r'{list-style-type}',
'list-style': r'{list-attrs}(\s+{list-attrs})*|inherit',
'margin-right': r'{margin-width}|inherit',
'margin-left': r'{margin-width}|inherit',
'margin-top': r'{margin-width}|inherit',
'margin-bottom': r'{margin-width}|inherit',
'margin': r'{margin-width}(\s+{margin-width}){0,3}|inherit',
'max-height': r'{length}|{percentage}|none|inherit',
'max-width': r'{length}|{percentage}|none|inherit',
'min-height': r'{length}|{percentage}|none|inherit',
'min-width': r'{length}|{percentage}|none|inherit',
'orphans': r'{integer}|inherit',
'outline-color': r'{outline-color}',
'outline-style': r'{outline-style}',
'outline-width': r'{outline-width}',
'outline': r'{outline-attrs}(\s+{outline-attrs})*|inherit',
'overflow': r'visible|hidden|scroll|auto|inherit',
'padding-top': r'{padding-width}|inherit',
'padding-right': r'{padding-width}|inherit',
'padding-bottom': r'{padding-width}|inherit',
'padding-left': r'{padding-width}|inherit',
'padding': r'{padding-width}(\s+{padding-width}){0,3}|inherit',
'page-break-after': r'auto|always|avoid|left|right|inherit',
'page-break-before': r'auto|always|avoid|left|right|inherit',
'page-break-inside': r'avoid|auto|inherit',
'pause-after': r'{time}|{percentage}|inherit',
'pause-before': r'{time}|{percentage}|inherit',
'pause': r'({time}|{percentage}){1,2}|inherit',
'pitch-range': r'{number}|inherit',
'pitch': r'{frequency}|x-low|low|medium|high|x-high|inherit',
'play-during': r'{uri}(\s+(mix|repeat))*|auto|none|inherit',
'position': r'static|relative|absolute|fixed|inherit',
'quotes': r'({string}\s+{string})(\s+{string}\s+{string})*|none|inherit',
'richness': r'{number}|inherit',
'right': r'{length}|{percentage}|auto|inherit',
'speak-header': r'once|always|inherit',
'speak-numeral': r'digits|continuous|inherit',
'speak-punctuation': r'code|none|inherit',
'speak': r'normal|none|spell-out|inherit',
'speech-rate': r'{number}|x-slow|slow|medium|fast|x-fast|faster|slower|inherit',
'stress': r'{number}|inherit',
'table-layout': r'auto|fixed|inherit',
'text-align': r'left|right|center|justify|inherit',
'text-decoration': r'none|{text-attrs}(\s+{text-attrs})*|inherit',
'text-indent': r'{length}|{percentage}|inherit',
'text-transform': r'capitalize|uppercase|lowercase|none|inherit',
'top': r'{length}|{percentage}|auto|inherit',
'unicode-bidi': r'normal|embed|bidi-override|inherit',
'vertical-align': r'baseline|sub|super|top|text-top|middle|bottom|text-bottom|{percentage}|{length}|inherit',
'visibility': r'visible|hidden|collapse|inherit',
'voice-family': r'({specific-voice}|{generic-voice}{w},{w})*({specific-voice}|{generic-voice})|inherit',
'volume': r'{number}|{percentage}|silent|x-soft|soft|medium|loud|x-loud|inherit',
'white-space': r'normal|pre|nowrap|pre-wrap|pre-line|inherit',
'widows': r'{integer}|inherit',
'width': r'{length}|{percentage}|auto|inherit',
'word-spacing': r'normal|{length}|inherit',
'z-index': r'auto|{integer}|inherit',
}
def _expand_macros(tokdict):
""" Expand macros in token dictionary """
def macro_value(m):
return '(?:%s)' % MACROS[m.groupdict()['macro']]
for key, value in tokdict.items():
while re.search(r'{[a-z][a-z0-9-]*}', value):
value = re.sub(r'{(?P<macro>[a-z][a-z0-9-]*)}',
macro_value, value)
tokdict[key] = value
return tokdict
def _compile_regexes(tokdict):
""" Compile all regular expressions into callable objects """
for key, value in tokdict.items():
tokdict[key] = re.compile('^(?:%s)$' % value, re.I).match
return tokdict
_compile_regexes(_expand_macros(cssvalues))
# functions to convert between CSS and DOM name
_reCSStoDOMname = re.compile('-[a-z]', re.I)
def _toDOMname(CSSname):
"""
returns DOMname for given CSSname e.g. for CSSname 'font-style' returns
'fontStyle'
"""
def _doCSStoDOMname2(m): return m.group(0)[1].capitalize()
return _reCSStoDOMname.sub(_doCSStoDOMname2, CSSname)
_reDOMtoCSSname = re.compile('([A-Z])[a-z]+')
def _toCSSname(DOMname):
"""
returns CSSname for given DOMname e.g. for DOMname 'fontStyle' returns
'font-style'
"""
def _doDOMtoCSSname2(m): return '-' + m.group(0).lower()
return _reDOMtoCSSname.sub(_doDOMtoCSSname2, DOMname)
class CSS2Properties(object): class CSS2Properties(object):
""" """The CSS2Properties interface represents a convenience mechanism
The CSS2Properties interface represents a convenience mechanism
for retrieving and setting properties within a CSSStyleDeclaration. for retrieving and setting properties within a CSSStyleDeclaration.
The attributes of this interface correspond to all the properties The attributes of this interface correspond to all the properties
specified in CSS2. Getting an attribute of this interface is specified in CSS2. Getting an attribute of this interface is
@ -326,16 +78,37 @@ class CSS2Properties(object):
def _setP(self, CSSname, value): pass def _setP(self, CSSname, value): pass
def _delP(self, CSSname): pass def _delP(self, CSSname): pass
_reCSStoDOMname = re.compile('-[a-z]', re.I)
def _toDOMname(CSSname):
"""Returns DOMname for given CSSname e.g. for CSSname 'font-style' returns
'fontStyle'.
"""
def _doCSStoDOMname2(m): return m.group(0)[1].capitalize()
return _reCSStoDOMname.sub(_doCSStoDOMname2, CSSname)
_reDOMtoCSSname = re.compile('([A-Z])[a-z]+')
def _toCSSname(DOMname):
"""Return CSSname for given DOMname e.g. for DOMname 'fontStyle' returns
'font-style'.
"""
def _doDOMtoCSSname2(m): return '-' + m.group(0).lower()
return _reDOMtoCSSname.sub(_doDOMtoCSSname2, DOMname)
# add list of DOMname properties to CSS2Properties # add list of DOMname properties to CSS2Properties
# used for CSSStyleDeclaration to check if allowed properties # used for CSSStyleDeclaration to check if allowed properties
# but somehow doubled, any better way? # but somehow doubled, any better way?
CSS2Properties._properties = [_toDOMname(p) for p in cssvalues.keys()] CSS2Properties._properties = []
for group in cssutils.profiles.properties:
for name in cssutils.profiles.properties[group]:
CSS2Properties._properties.append(_toDOMname(name))
# add CSS2Properties to CSSStyleDeclaration: # add CSS2Properties to CSSStyleDeclaration:
def __named_property_def(DOMname): def __named_property_def(DOMname):
""" """
closure to keep name known in each properties accessor function Closure to keep name known in each properties accessor function
DOMname is converted to CSSname here, so actual calls use CSSname DOMname is converted to CSSname here, so actual calls use CSSname.
""" """
CSSname = _toCSSname(DOMname) CSSname = _toCSSname(DOMname)
def _get(self): return self._getP(CSSname) def _get(self): return self._getP(CSSname)

View File

@ -1,46 +1,17 @@
"""CSSRule implements DOM Level 2 CSS CSSRule.""" """CSSRule implements DOM Level 2 CSS CSSRule."""
__all__ = ['CSSRule'] __all__ = ['CSSRule']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: cssrule.py 1177 2008-03-20 17:47:23Z cthedot $' __version__ = '$Id: cssrule.py 1638 2009-01-13 20:39:33Z cthedot $'
import xml.dom
import cssutils import cssutils
import xml.dom
class CSSRule(cssutils.util.Base2): class CSSRule(cssutils.util.Base2):
""" """Abstract base interface for any type of CSS statement. This includes
Abstract base interface for any type of CSS statement. This includes
both rule sets and at-rules. An implementation is expected to preserve both rule sets and at-rules. An implementation is expected to preserve
all rules specified in a CSS style sheet, even if the rule is not all rules specified in a CSS style sheet, even if the rule is not
recognized by the parser. Unrecognized rules are represented using the recognized by the parser. Unrecognized rules are represented using the
CSSUnknownRule interface. :class:`CSSUnknownRule` interface.
Properties
==========
cssText: of type DOMString
The parsable textual representation of the rule. This reflects the
current state of the rule and not its initial value.
parentRule: of type CSSRule, readonly
If this rule is contained inside another rule (e.g. a style rule
inside an @media block), this is the containing rule. If this rule
is not nested inside any other rules, this returns None.
parentStyleSheet: of type CSSStyleSheet, readonly
The style sheet that contains this rule.
type: of type unsigned short, readonly
The type of the rule, as defined above. The expectation is that
binding-specific casting methods can be used to cast down from an
instance of the CSSRule interface to the specific derived interface
implied by the type.
cssutils only
-------------
seq (READONLY):
contains sequence of parts of the rule including comments but
excluding @KEYWORD and braces
typeString: string
A string name of the type of this rule, e.g. 'STYLE_RULE'. Mainly
useful for debugging
wellformed:
if a rule is valid
""" """
""" """
@ -61,21 +32,8 @@ class CSSRule(cssutils.util.Base2):
'MEDIA_RULE', 'FONT_FACE_RULE', 'PAGE_RULE', 'NAMESPACE_RULE', 'MEDIA_RULE', 'FONT_FACE_RULE', 'PAGE_RULE', 'NAMESPACE_RULE',
'COMMENT'] 'COMMENT']
type = UNKNOWN_RULE
"""
The type of this rule, as defined by a CSSRule type constant.
Overwritten in derived classes.
The expectation is that binding-specific casting methods can be used to
cast down from an instance of the CSSRule interface to the specific
derived interface implied by the type.
(Casting not for this Python implementation I guess...)
"""
def __init__(self, parentRule=None, parentStyleSheet=None, readonly=False): def __init__(self, parentRule=None, parentStyleSheet=None, readonly=False):
""" """Set common attributes for all rules."""
set common attributes for all rules
"""
super(CSSRule, self).__init__() super(CSSRule, self).__init__()
self._parentRule = parentRule self._parentRule = parentRule
self._parentStyleSheet = parentStyleSheet self._parentStyleSheet = parentStyleSheet
@ -83,33 +41,8 @@ class CSSRule(cssutils.util.Base2):
# must be set after initialization of #inheriting rule is done # must be set after initialization of #inheriting rule is done
self._readonly = False self._readonly = False
def _setCssText(self, cssText):
"""
DOMException on setting
- SYNTAX_ERR:
Raised if the specified CSS string value has a syntax error and
is unparsable.
- INVALID_MODIFICATION_ERR:
Raised if the specified CSS string value represents a different
type of rule than the current one.
- HIERARCHY_REQUEST_ERR:
Raised if the rule cannot be inserted at this point in the
style sheet.
- NO_MODIFICATION_ALLOWED_ERR: (self)
Raised if the rule is readonly.
"""
self._checkReadonly()
cssText = property(lambda self: u'', _setCssText,
doc="""(DOM) The parsable textual representation of the rule. This
reflects the current state of the rule and not its initial value.
The initial value is saved, but this may be removed in a future
version!
MUST BE OVERWRITTEN IN SUBCLASS TO WORK!""")
def _setAtkeyword(self, akw): def _setAtkeyword(self, akw):
"""checks if new keyword is normalized same as old""" """Check if new keyword fits the rule it is used for."""
if not self.atkeyword or (self._normalize(akw) == if not self.atkeyword or (self._normalize(akw) ==
self._normalize(self.atkeyword)): self._normalize(self.atkeyword)):
self._atkeyword = akw self._atkeyword = akw
@ -119,16 +52,48 @@ class CSSRule(cssutils.util.Base2):
error=xml.dom.InvalidModificationErr) error=xml.dom.InvalidModificationErr)
atkeyword = property(lambda self: self._atkeyword, _setAtkeyword, atkeyword = property(lambda self: self._atkeyword, _setAtkeyword,
doc=u"@keyword for @rules") doc=u"Literal keyword of an @rule (e.g. ``@IMport``).")
def _setCssText(self, cssText):
"""
:param cssText:
A parsable DOMString.
:exceptions:
- :exc:`~xml.dom.SyntaxErr`:
Raised if the specified CSS string value has a syntax error and
is unparsable.
- :exc:`~xml.dom.InvalidModificationErr`:
Raised if the specified CSS string value represents a different
type of rule than the current one.
- :exc:`~xml.dom.HierarchyRequestErr`:
Raised if the rule cannot be inserted at this point in the
style sheet.
- :exc:`~xml.dom.NoModificationAllowedErr`:
Raised if the rule is readonly.
"""
self._checkReadonly()
cssText = property(lambda self: u'', _setCssText,
doc="(DOM) The parsable textual representation of the "
"rule. This reflects the current state of the rule "
"and not its initial value.")
parentRule = property(lambda self: self._parentRule, parentRule = property(lambda self: self._parentRule,
doc=u"READONLY") doc="If this rule is contained inside "
"another rule (e.g. a style rule inside "
"an @media block), this is the containing "
"rule. If this rule is not nested inside "
"any other rules, this returns None.")
parentStyleSheet = property(lambda self: self._parentStyleSheet, parentStyleSheet = property(lambda self: self._parentStyleSheet,
doc=u"READONLY") doc="The style sheet that contains this rule.")
wellformed = property(lambda self: False, type = property(lambda self: self.UNKNOWN_RULE,
doc=u"READONLY") doc="The type of this rule, as defined by a CSSRule "
"type constant.")
typeString = property(lambda self: CSSRule._typestrings[self.type], typeString = property(lambda self: CSSRule._typestrings[self.type],
doc="Name of this rules type.") doc="Descriptive name of this rule's type.")
wellformed = property(lambda self: False,
doc=u"If the rule is wellformed.")

View File

@ -1,16 +1,12 @@
""" """CSSRuleList implements DOM Level 2 CSS CSSRuleList.
CSSRuleList implements DOM Level 2 CSS CSSRuleList. Partly also http://dev.w3.org/csswg/cssom/#the-cssrulelist
Partly also
* http://dev.w3.org/csswg/cssom/#the-cssrulelist
""" """
__all__ = ['CSSRuleList'] __all__ = ['CSSRuleList']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: cssrulelist.py 1116 2008-03-05 13:52:23Z cthedot $' __version__ = '$Id: cssrulelist.py 1641 2009-01-13 21:05:37Z cthedot $'
class CSSRuleList(list): class CSSRuleList(list):
""" """The CSSRuleList object represents an (ordered) list of statements.
The CSSRuleList object represents an (ordered) list of statements.
The items in the CSSRuleList are accessible via an integral index, The items in the CSSRuleList are accessible via an integral index,
starting from 0. starting from 0.
@ -21,28 +17,20 @@ class CSSRuleList(list):
class if so desired. class if so desired.
E.g. CSSStyleSheet adds ``append`` which is not available in a simple E.g. CSSStyleSheet adds ``append`` which is not available in a simple
instance of this class! instance of this class!
Properties
==========
length: of type unsigned long, readonly
The number of CSSRules in the list. The range of valid child rule
indices is 0 to length-1 inclusive.
""" """
def __init__(self, *ignored): def __init__(self, *ignored):
"nothing is set as this must also be defined later" "Nothing is set as this must also be defined later."
pass pass
def __notimplemented(self, *ignored): def __notimplemented(self, *ignored):
"no direct setting possible" "Implemented in class using a CSSRuleList only."
raise NotImplementedError( raise NotImplementedError(
'Must be implemented by class using an instance of this class.') 'Must be implemented by class using an instance of this class.')
append = extend = __setitem__ = __setslice__ = __notimplemented append = extend = __setitem__ = __setslice__ = __notimplemented
def item(self, index): def item(self, index):
""" """(DOM) Retrieve a CSS rule by ordinal `index`. The order in this
(DOM)
Used to retrieve a CSS rule by ordinal index. The order in this
collection represents the order of the rules in the CSS style collection represents the order of the rules in the CSS style
sheet. If index is greater than or equal to the number of rules in sheet. If index is greater than or equal to the number of rules in
the list, this returns None. the list, this returns None.

View File

@ -51,16 +51,15 @@ TODO:
""" """
__all__ = ['CSSStyleDeclaration', 'Property'] __all__ = ['CSSStyleDeclaration', 'Property']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: cssstyledeclaration.py 1284 2008-06-05 16:29:17Z cthedot $' __version__ = '$Id: cssstyledeclaration.py 1658 2009-02-07 18:24:40Z cthedot $'
import xml.dom
import cssutils
from cssproperties import CSS2Properties from cssproperties import CSS2Properties
from property import Property from property import Property
import cssutils
import xml.dom
class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2): class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
""" """The CSSStyleDeclaration class represents a single CSS declaration
The CSSStyleDeclaration class represents a single CSS declaration
block. This class may be used to determine the style properties block. This class may be used to determine the style properties
currently set in a block or to set style properties explicitly currently set in a block or to set style properties explicitly
within the block. within the block.
@ -76,24 +75,6 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
Additionally the CSS2Properties interface is implemented. Additionally the CSS2Properties interface is implemented.
Properties
==========
cssText
The parsable textual representation of the declaration block
(excluding the surrounding curly braces). Setting this attribute
will result in the parsing of the new value and resetting of the
properties in the declaration block. It also allows the insertion
of additional properties and their values into the block.
length: of type unsigned long, readonly
The number of properties that have been explicitly set in this
declaration block. The range of valid indices is 0 to length-1
inclusive.
parentRule: of type CSSRule, readonly
The CSS rule that contains this declaration block or None if this
CSSStyleDeclaration is not attached to a CSSRule.
seq: a list (cssutils)
All parts of this style declaration including CSSComments
$css2propertyname $css2propertyname
All properties defined in the CSS2Properties class are available All properties defined in the CSS2Properties class are available
as direct properties of CSSStyleDeclaration with their respective as direct properties of CSSStyleDeclaration with their respective
@ -106,33 +87,32 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
>>> print style.color >>> print style.color
green green
>>> del style.color >>> del style.color
>>> print style.color # print empty string >>> print style.color
<BLANKLINE>
Format Format::
======
[Property: Value Priority?;]* [Property: Value Priority?]? [Property: Value Priority?;]* [Property: Value Priority?]?
""" """
def __init__(self, cssText=u'', parentRule=None, readonly=False): def __init__(self, cssText=u'', parentRule=None, readonly=False):
""" """
cssText :param cssText:
Shortcut, sets CSSStyleDeclaration.cssText Shortcut, sets CSSStyleDeclaration.cssText
parentRule :param parentRule:
The CSS rule that contains this declaration block or The CSS rule that contains this declaration block or
None if this CSSStyleDeclaration is not attached to a CSSRule. None if this CSSStyleDeclaration is not attached to a CSSRule.
readonly :param readonly:
defaults to False defaults to False
""" """
super(CSSStyleDeclaration, self).__init__() super(CSSStyleDeclaration, self).__init__()
self._parentRule = parentRule self._parentRule = parentRule
#self._seq = self._tempSeq()
self.cssText = cssText self.cssText = cssText
self._readonly = readonly self._readonly = readonly
def __contains__(self, nameOrProperty): def __contains__(self, nameOrProperty):
""" """Check if a property (or a property with given name) is in style.
checks if a property (or a property with given name is in style
name :param name:
a string or Property, uses normalized name and not literalname a string or Property, uses normalized name and not literalname
""" """
if isinstance(nameOrProperty, Property): if isinstance(nameOrProperty, Property):
@ -142,47 +122,12 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
return name in self.__nnames() return name in self.__nnames()
def __iter__(self): def __iter__(self):
""" """Iterator of set Property objects with different normalized names."""
iterator of set Property objects with different normalized names.
"""
def properties(): def properties():
for name in self.__nnames(): for name in self.__nnames():
yield self.getProperty(name) yield self.getProperty(name)
return properties() return properties()
def __setattr__(self, n, v):
"""
Prevent setting of unknown properties on CSSStyleDeclaration
which would not work anyway. For these
``CSSStyleDeclaration.setProperty`` MUST be called explicitly!
TODO:
implementation of known is not really nice, any alternative?
"""
known = ['_tokenizer', '_log', '_ttypes',
'_seq', 'seq', 'parentRule', '_parentRule', 'cssText',
'valid', 'wellformed',
'_readonly']
known.extend(CSS2Properties._properties)
if n in known:
super(CSSStyleDeclaration, self).__setattr__(n, v)
else:
raise AttributeError(
'Unknown CSS Property, ``CSSStyleDeclaration.setProperty("%s", ...)`` MUST be used.'
% n)
def __nnames(self):
"""
returns iterator for all different names in order as set
if names are set twice the last one is used (double reverse!)
"""
names = []
for item in reversed(self.seq):
val = item.value
if isinstance(val, Property) and not val.name in names:
names.append(val.name)
return reversed(names)
def __getitem__(self, CSSName): def __getitem__(self, CSSName):
"""Retrieve the value of property ``CSSName`` from this declaration. """Retrieve the value of property ``CSSName`` from this declaration.
@ -211,11 +156,49 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
""" """
return self.removeProperty(CSSName) return self.removeProperty(CSSName)
def __setattr__(self, n, v):
"""Prevent setting of unknown properties on CSSStyleDeclaration
which would not work anyway. For these
``CSSStyleDeclaration.setProperty`` MUST be called explicitly!
TODO:
implementation of known is not really nice, any alternative?
"""
known = ['_tokenizer', '_log', '_ttypes',
'_seq', 'seq', 'parentRule', '_parentRule', 'cssText',
'valid', 'wellformed',
'_readonly', '_profiles']
known.extend(CSS2Properties._properties)
if n in known:
super(CSSStyleDeclaration, self).__setattr__(n, v)
else:
raise AttributeError(
'Unknown CSS Property, ``CSSStyleDeclaration.setProperty("%s", ...)`` MUST be used.'
% n)
def __repr__(self):
return "cssutils.css.%s(cssText=%r)" % (
self.__class__.__name__, self.getCssText(separator=u' '))
def __str__(self):
return "<cssutils.css.%s object length=%r (all: %r) at 0x%x>" % (
self.__class__.__name__, self.length,
len(self.getProperties(all=True)), id(self))
def __nnames(self):
"""Return iterator for all different names in order as set
if names are set twice the last one is used (double reverse!)
"""
names = []
for item in reversed(self.seq):
val = item.value
if isinstance(val, Property) and not val.name in names:
names.append(val.name)
return reversed(names)
# overwritten accessor functions for CSS2Properties' properties # overwritten accessor functions for CSS2Properties' properties
def _getP(self, CSSName): def _getP(self, CSSName):
""" """(DOM CSS2Properties) Overwritten here and effectively the same as
(DOM CSS2Properties)
Overwritten here and effectively the same as
``self.getPropertyValue(CSSname)``. ``self.getPropertyValue(CSSname)``.
Parameter is in CSSname format ('font-style'), see CSS2Properties. Parameter is in CSSname format ('font-style'), see CSS2Properties.
@ -229,9 +212,7 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
return self.getPropertyValue(CSSName) return self.getPropertyValue(CSSName)
def _setP(self, CSSName, value): def _setP(self, CSSName, value):
""" """(DOM CSS2Properties) Overwritten here and effectively the same as
(DOM CSS2Properties)
Overwritten here and effectively the same as
``self.setProperty(CSSname, value)``. ``self.setProperty(CSSname, value)``.
Only known CSS2Properties may be set this way, otherwise an Only known CSS2Properties may be set this way, otherwise an
@ -247,44 +228,40 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
>>> style.fontStyle = 'italic' >>> style.fontStyle = 'italic'
>>> # or >>> # or
>>> style.setProperty('font-style', 'italic', '!important') >>> style.setProperty('font-style', 'italic', '!important')
""" """
self.setProperty(CSSName, value) self.setProperty(CSSName, value)
# TODO: Shorthand ones # TODO: Shorthand ones
def _delP(self, CSSName): def _delP(self, CSSName):
""" """(cssutils only) Overwritten here and effectively the same as
(cssutils only)
Overwritten here and effectively the same as
``self.removeProperty(CSSname)``. ``self.removeProperty(CSSname)``.
Example:: Example::
>>> style = CSSStyleDeclaration(cssText='font-style:italic;') >>> style = CSSStyleDeclaration(cssText='font-style:italic;')
>>> del style.fontStyle >>> del style.fontStyle
>>> print style.fontStyle # prints u'' >>> print style.fontStyle
<BLANKLINE>
""" """
self.removeProperty(CSSName) self.removeProperty(CSSName)
def _getCssText(self): def _getCssText(self):
""" """Return serialized property cssText."""
returns serialized property cssText
"""
return cssutils.ser.do_css_CSSStyleDeclaration(self) return cssutils.ser.do_css_CSSStyleDeclaration(self)
def _setCssText(self, cssText): def _setCssText(self, cssText):
""" """Setting this attribute will result in the parsing of the new value
Setting this attribute will result in the parsing of the new value
and resetting of all the properties in the declaration block and resetting of all the properties in the declaration block
including the removal or addition of properties. including the removal or addition of properties.
DOMException on setting :exceptions:
- :exc:`~xml.dom.NoModificationAllowedErr`:
- NO_MODIFICATION_ALLOWED_ERR: (self) Raised if this declaration is readonly or a property is readonly.
Raised if this declaration is readonly or a property is readonly. - :exc:`~xml.dom.SyntaxErr`:
- SYNTAX_ERR: (self) Raised if the specified CSS string value has a syntax error and
Raised if the specified CSS string value has a syntax error and is unparsable.
is unparsable.
""" """
self._checkReadonly() self._checkReadonly()
tokenizer = self._tokenize2(cssText) tokenizer = self._tokenize2(cssText)
@ -336,11 +313,12 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
def getCssText(self, separator=None): def getCssText(self, separator=None):
""" """
returns serialized property cssText, each property separated by :returns:
given ``separator`` which may e.g. be u'' to be able to use serialized property cssText, each property separated by
cssText directly in an HTML style attribute. ";" is always part of given `separator` which may e.g. be ``u''`` to be able to use
each property (except the last one) and can **not** be set with cssText directly in an HTML style attribute. ``;`` is part of
separator! each property (except the last one) and **cannot** be set with
separator!
""" """
return cssutils.ser.do_css_CSSStyleDeclaration(self, separator) return cssutils.ser.do_css_CSSStyleDeclaration(self, separator)
@ -351,25 +329,27 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
self._parentRule = parentRule self._parentRule = parentRule
parentRule = property(_getParentRule, _setParentRule, parentRule = property(_getParentRule, _setParentRule,
doc="(DOM) The CSS rule that contains this declaration block or\ doc="(DOM) The CSS rule that contains this declaration block or "
None if this CSSStyleDeclaration is not attached to a CSSRule.") "None if this CSSStyleDeclaration is not attached to a CSSRule.")
def getProperties(self, name=None, all=False): def getProperties(self, name=None, all=False):
""" """
Returns a list of Property objects set in this declaration. :param name:
optional `name` of properties which are requested.
Only properties with this **always normalized** `name` are returned.
If `name` is ``None`` all properties are returned (at least one for
each set name depending on parameter `all`).
:param all:
if ``False`` (DEFAULT) only the effective properties are returned.
If name is given a list with only one property is returned.
name if ``True`` all properties including properties set multiple times
optional name of properties which are requested (a filter). with different values or priorities for different UAs are returned.
Only properties with this **always normalized** name are returned.
all=False
if False (DEFAULT) only the effective properties (the ones set
last) are returned. If name is given a list with only one property
is returned.
if True all properties including properties set multiple times with
different values or priorities for different UAs are returned.
The order of the properties is fully kept as in the original The order of the properties is fully kept as in the original
stylesheet. stylesheet.
:returns:
a list of :class:`~cssutils.css.Property` objects set in
this declaration.
""" """
if name and not all: if name and not all:
# single prop but list # single prop but list
@ -394,16 +374,16 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
def getProperty(self, name, normalize=True): def getProperty(self, name, normalize=True):
""" """
Returns the effective Property object. :param name:
name
of the CSS property, always lowercase (even if not normalized) of the CSS property, always lowercase (even if not normalized)
normalize :param normalize:
if True (DEFAULT) name will be normalized (lowercase, no simple if ``True`` (DEFAULT) name will be normalized (lowercase, no simple
escapes) so "color", "COLOR" or "C\olor" will all be equivalent escapes) so "color", "COLOR" or "C\olor" will all be equivalent
If False may return **NOT** the effective value but the effective If ``False`` may return **NOT** the effective value but the
for the unnormalized name. effective for the unnormalized name.
:returns:
the effective :class:`~cssutils.css.Property` object.
""" """
nname = self._normalize(name) nname = self._normalize(name)
found = None found = None
@ -419,17 +399,17 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
def getPropertyCSSValue(self, name, normalize=True): def getPropertyCSSValue(self, name, normalize=True):
""" """
Returns CSSValue, the value of the effective property if it has been :param name:
explicitly set for this declaration block.
name
of the CSS property, always lowercase (even if not normalized) of the CSS property, always lowercase (even if not normalized)
normalize :param normalize:
if True (DEFAULT) name will be normalized (lowercase, no simple if ``True`` (DEFAULT) name will be normalized (lowercase, no simple
escapes) so "color", "COLOR" or "C\olor" will all be equivalent escapes) so "color", "COLOR" or "C\olor" will all be equivalent
If False may return **NOT** the effective value but the effective If ``False`` may return **NOT** the effective value but the effective
for the unnormalized name. for the unnormalized name.
:returns:
:class:`~cssutils.css.CSSValue`, the value of the effective
property if it has been explicitly set for this declaration block.
(DOM) (DOM)
Used to retrieve the object representation of the value of a CSS Used to retrieve the object representation of the value of a CSS
@ -461,18 +441,18 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
def getPropertyValue(self, name, normalize=True): def getPropertyValue(self, name, normalize=True):
""" """
Returns the value of the effective property if it has been explicitly :param name:
set for this declaration block. Returns the empty string if the
property has not been set.
name
of the CSS property, always lowercase (even if not normalized) of the CSS property, always lowercase (even if not normalized)
normalize :param normalize:
if True (DEFAULT) name will be normalized (lowercase, no simple if ``True`` (DEFAULT) name will be normalized (lowercase, no simple
escapes) so "color", "COLOR" or "C\olor" will all be equivalent escapes) so "color", "COLOR" or "C\olor" will all be equivalent
If False may return **NOT** the effective value but the effective If ``False`` may return **NOT** the effective value but the
for the unnormalized name. effective for the unnormalized name.
:returns:
the value of the effective property if it has been explicitly set
for this declaration block. Returns the empty string if the
property has not been set.
""" """
p = self.getProperty(name, normalize) p = self.getProperty(name, normalize)
if p: if p:
@ -482,18 +462,18 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
def getPropertyPriority(self, name, normalize=True): def getPropertyPriority(self, name, normalize=True):
""" """
Returns the priority of the effective CSS property (e.g. the :param name:
"important" qualifier) if the property has been explicitly set in
this declaration block. The empty string if none exists.
name
of the CSS property, always lowercase (even if not normalized) of the CSS property, always lowercase (even if not normalized)
normalize :param normalize:
if True (DEFAULT) name will be normalized (lowercase, no simple if ``True`` (DEFAULT) name will be normalized (lowercase, no simple
escapes) so "color", "COLOR" or "C\olor" will all be equivalent escapes) so "color", "COLOR" or "C\olor" will all be equivalent
If False may return **NOT** the effective value but the effective If ``False`` may return **NOT** the effective value but the
for the unnormalized name. effective for the unnormalized name.
:returns:
the priority of the effective CSS property (e.g. the
"important" qualifier) if the property has been explicitly set in
this declaration block. The empty string if none exists.
""" """
p = self.getProperty(name, normalize) p = self.getProperty(name, normalize)
if p: if p:
@ -507,28 +487,28 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
Used to remove a CSS property if it has been explicitly set within Used to remove a CSS property if it has been explicitly set within
this declaration block. this declaration block.
Returns the value of the property if it has been explicitly set for :param name:
this declaration block. Returns the empty string if the property
has not been set or the property name does not correspond to a
known CSS property
name
of the CSS property of the CSS property
normalize :param normalize:
if True (DEFAULT) name will be normalized (lowercase, no simple if ``True`` (DEFAULT) name will be normalized (lowercase, no simple
escapes) so "color", "COLOR" or "C\olor" will all be equivalent. escapes) so "color", "COLOR" or "C\olor" will all be equivalent.
The effective Property value is returned and *all* Properties The effective Property value is returned and *all* Properties
with ``Property.name == name`` are removed. with ``Property.name == name`` are removed.
If False may return **NOT** the effective value but the effective If ``False`` may return **NOT** the effective value but the
for the unnormalized ``name`` only. Also only the Properties with effective for the unnormalized `name` only. Also only the
the literal name ``name`` are removed. Properties with the literal name `name` are removed.
:returns:
the value of the property if it has been explicitly set for
this declaration block. Returns the empty string if the property
has not been set or the property name does not correspond to a
known CSS property
raises DOMException
- NO_MODIFICATION_ALLOWED_ERR: (self) :exceptions:
Raised if this declaration is readonly or the property is - :exc:`~xml.dom.NoModificationAllowedErr`:
readonly. Raised if this declaration is readonly or the property is
readonly.
""" """
self._checkReadonly() self._checkReadonly()
r = self.getPropertyValue(name, normalize=normalize) r = self.getPropertyValue(name, normalize=normalize)
@ -548,36 +528,35 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
return r return r
def setProperty(self, name, value=None, priority=u'', normalize=True): def setProperty(self, name, value=None, priority=u'', normalize=True):
""" """(DOM) Set a property value and priority within this declaration
(DOM)
Used to set a property value and priority within this declaration
block. block.
name :param name:
of the CSS property to set (in W3C DOM the parameter is called of the CSS property to set (in W3C DOM the parameter is called
"propertyName"), always lowercase (even if not normalized) "propertyName"), always lowercase (even if not normalized)
If a property with this name is present it will be reset If a property with this `name` is present it will be reset.
cssutils also allowed name to be a Property object, all other cssutils also allowed `name` to be a
:class:`~cssutils.css.Property` object, all other
parameter are ignored in this case parameter are ignored in this case
value :param value:
the new value of the property, omit if name is already a Property the new value of the property, ignored if `name` is a Property.
priority :param priority:
the optional priority of the property (e.g. "important") the optional priority of the property (e.g. "important"),
normalize ignored if `name` is a Property.
if True (DEFAULT) name will be normalized (lowercase, no simple :param normalize:
if True (DEFAULT) `name` will be normalized (lowercase, no simple
escapes) so "color", "COLOR" or "C\olor" will all be equivalent escapes) so "color", "COLOR" or "C\olor" will all be equivalent
DOMException on setting :exceptions:
- :exc:`~xml.dom.SyntaxErr`:
- SYNTAX_ERR: (self) Raised if the specified value has a syntax error and is
Raised if the specified value has a syntax error and is unparsable.
unparsable. - :exc:`~xml.dom.NoModificationAllowedErr`:
- NO_MODIFICATION_ALLOWED_ERR: (self) Raised if this declaration is readonly or the property is
Raised if this declaration is readonly or the property is readonly.
readonly.
""" """
self._checkReadonly() self._checkReadonly()
@ -607,27 +586,26 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
self.seq._readonly = True self.seq._readonly = True
def item(self, index): def item(self, index):
""" """(DOM) Retrieve the properties that have been explicitly set in
(DOM)
Used to retrieve the properties that have been explicitly set in
this declaration block. The order of the properties retrieved using this declaration block. The order of the properties retrieved using
this method does not have to be the order in which they were set. this method does not have to be the order in which they were set.
This method can be used to iterate over all properties in this This method can be used to iterate over all properties in this
declaration block. declaration block.
index :param index:
of the property to retrieve, negative values behave like of the property to retrieve, negative values behave like
negative indexes on Python lists, so -1 is the last element negative indexes on Python lists, so -1 is the last element
returns the name of the property at this ordinal position. The :returns:
empty string if no property exists at this position. the name of the property at this ordinal position. The
empty string if no property exists at this position.
ATTENTION: **ATTENTION:**
Only properties with a different name are counted. If two Only properties with different names are counted. If two
properties with the same name are present in this declaration properties with the same name are present in this declaration
only the effective one is included. only the effective one is included.
``item()`` and ``length`` work on the same set here. :meth:`item` and :attr:`length` work on the same set here.
""" """
names = list(self.__nnames()) names = list(self.__nnames())
try: try:
@ -636,16 +614,7 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
return u'' return u''
length = property(lambda self: len(self.__nnames()), length = property(lambda self: len(self.__nnames()),
doc="(DOM) The number of distinct properties that have been explicitly\ doc="(DOM) The number of distinct properties that have been explicitly "
in this declaration block. The range of valid indices is 0 to\ "in this declaration block. The range of valid indices is 0 to "
length-1 inclusive. These are properties with a different ``name``\ "length-1 inclusive. These are properties with a different ``name`` "
only. ``item()`` and ``length`` work on the same set here.") "only. :meth:`item` and :attr:`length` work on the same set here.")
def __repr__(self):
return "cssutils.css.%s(cssText=%r)" % (
self.__class__.__name__, self.getCssText(separator=u' '))
def __str__(self):
return "<cssutils.css.%s object length=%r (all: %r) at 0x%x>" % (
self.__class__.__name__, self.length,
len(self.getProperties(all=True)), id(self))

View File

@ -1,49 +1,25 @@
"""CSSStyleRule implements DOM Level 2 CSS CSSStyleRule. """CSSStyleRule implements DOM Level 2 CSS CSSStyleRule."""
"""
__all__ = ['CSSStyleRule'] __all__ = ['CSSStyleRule']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: cssstylerule.py 1284 2008-06-05 16:29:17Z cthedot $' __version__ = '$Id: cssstylerule.py 1638 2009-01-13 20:39:33Z cthedot $'
import xml.dom from cssstyledeclaration import CSSStyleDeclaration
from selectorlist import SelectorList
import cssrule import cssrule
import cssutils import cssutils
from selectorlist import SelectorList import xml.dom
from cssstyledeclaration import CSSStyleDeclaration
class CSSStyleRule(cssrule.CSSRule): class CSSStyleRule(cssrule.CSSRule):
""" """The CSSStyleRule object represents a ruleset specified (if any) in a CSS
The CSSStyleRule object represents a ruleset specified (if any) in a CSS
style sheet. It provides access to a declaration block as well as to the style sheet. It provides access to a declaration block as well as to the
associated group of selectors. associated group of selectors.
Properties Format::
==========
selectorList: of type SelectorList (cssutils only)
A list of all Selector elements for the rule set.
selectorText: of type DOMString
The textual representation of the selector for the rule set. The
implementation may have stripped out insignificant whitespace while
parsing the selector.
style: of type CSSStyleDeclaration, (DOM)
The declaration-block of this rule set.
type
the type of this rule, constant cssutils.CSSRule.STYLE_RULE
inherited properties:
- cssText
- parentRule
- parentStyleSheet
Format
======
ruleset::
: selector [ COMMA S* selector ]* : selector [ COMMA S* selector ]*
LBRACE S* declaration [ ';' S* declaration ]* '}' S* LBRACE S* declaration [ ';' S* declaration ]* '}' S*
; ;
""" """
type = property(lambda self: cssrule.CSSRule.STYLE_RULE)
def __init__(self, selectorText=None, style=None, parentRule=None, def __init__(self, selectorText=None, style=None, parentRule=None,
parentStyleSheet=None, readonly=False): parentStyleSheet=None, readonly=False):
""" """
@ -67,31 +43,41 @@ class CSSStyleRule(cssrule.CSSRule):
self._readonly = readonly self._readonly = readonly
def __repr__(self):
if self._namespaces:
st = (self.selectorText, self._namespaces)
else:
st = self.selectorText
return "cssutils.css.%s(selectorText=%r, style=%r)" % (
self.__class__.__name__, st, self.style.cssText)
def __str__(self):
return "<cssutils.css.%s object selector=%r style=%r _namespaces=%r at 0x%x>" % (
self.__class__.__name__, self.selectorText, self.style.cssText,
self._namespaces, id(self))
def _getCssText(self): def _getCssText(self):
""" """Return serialized property cssText."""
returns serialized property cssText
"""
return cssutils.ser.do_CSSStyleRule(self) return cssutils.ser.do_CSSStyleRule(self)
def _setCssText(self, cssText): def _setCssText(self, cssText):
""" """
:param cssText: :param cssText:
a parseable string or a tuple of (cssText, dict-of-namespaces) a parseable string or a tuple of (cssText, dict-of-namespaces)
:Exceptions: :exceptions:
- `NAMESPACE_ERR`: (Selector) - :exc:`~xml.dom.NamespaceErr`:
Raised if the specified selector uses an unknown namespace Raised if the specified selector uses an unknown namespace
prefix. prefix.
- `SYNTAX_ERR`: (self, StyleDeclaration, etc) - :exc:`~xml.dom.SyntaxErr`:
Raised if the specified CSS string value has a syntax error and Raised if the specified CSS string value has a syntax error and
is unparsable. is unparsable.
- `INVALID_MODIFICATION_ERR`: (self) - :exc:`~xml.dom.InvalidModificationErr`:
Raised if the specified CSS string value represents a different Raised if the specified CSS string value represents a different
type of rule than the current one. type of rule than the current one.
- `HIERARCHY_REQUEST_ERR`: (CSSStylesheet) - :exc:`~xml.dom.HierarchyRequestErr`:
Raised if the rule cannot be inserted at this point in the Raised if the rule cannot be inserted at this point in the
style sheet. style sheet.
- `NO_MODIFICATION_ALLOWED_ERR`: (CSSRule) - :exc:`~xml.dom.NoModificationAllowedErr`:
Raised if the rule is readonly. Raised if the rule is readonly.
""" """
super(CSSStyleRule, self)._setCssText(cssText) super(CSSStyleRule, self)._setCssText(cssText)
@ -160,20 +146,21 @@ class CSSStyleRule(cssrule.CSSRule):
self.style = newstyle self.style = newstyle
cssText = property(_getCssText, _setCssText, cssText = property(_getCssText, _setCssText,
doc="(DOM) The parsable textual representation of the rule.") doc="(DOM) The parsable textual representation of this rule.")
def __getNamespaces(self): def __getNamespaces(self):
"uses children namespaces if not attached to a sheet, else the sheet's ones" "Uses children namespaces if not attached to a sheet, else the sheet's ones."
try: try:
return self.parentStyleSheet.namespaces return self.parentStyleSheet.namespaces
except AttributeError: except AttributeError:
return self.selectorList._namespaces return self.selectorList._namespaces
_namespaces = property(__getNamespaces, doc=u"""if this Rule is _namespaces = property(__getNamespaces,
attached to a CSSStyleSheet the namespaces of that sheet are mirrored doc="If this Rule is attached to a CSSStyleSheet "
here. While the Rule is not attached the namespaces of selectorList "the namespaces of that sheet are mirrored "
are used.""") "here. While the Rule is not attached the "
"namespaces of selectorList are used.""")
def _setSelectorList(self, selectorList): def _setSelectorList(self, selectorList):
""" """
@ -190,16 +177,17 @@ class CSSStyleRule(cssrule.CSSRule):
""" """
wrapper for cssutils SelectorList object wrapper for cssutils SelectorList object
:param selectorText: of type string, might also be a comma separated list :param selectorText:
of type string, might also be a comma separated list
of selectors of selectors
:Exceptions: :exceptions:
- `NAMESPACE_ERR`: (Selector) - :exc:`~xml.dom.NamespaceErr`:
Raised if the specified selector uses an unknown namespace Raised if the specified selector uses an unknown namespace
prefix. prefix.
- `SYNTAX_ERR`: (SelectorList, Selector) - :exc:`~xml.dom.SyntaxErr`:
Raised if the specified CSS string value has a syntax error Raised if the specified CSS string value has a syntax error
and is unparsable. and is unparsable.
- `NO_MODIFICATION_ALLOWED_ERR`: (self) - :exc:`~xml.dom.NoModificationAllowedErr`:
Raised if this rule is readonly. Raised if this rule is readonly.
""" """
self._checkReadonly() self._checkReadonly()
@ -207,8 +195,8 @@ class CSSStyleRule(cssrule.CSSRule):
selectorText = property(lambda self: self._selectorList.selectorText, selectorText = property(lambda self: self._selectorList.selectorText,
_setSelectorText, _setSelectorText,
doc="""(DOM) The textual representation of the selector for the doc="(DOM) The textual representation of the "
rule set.""") "selector for the rule set.")
def _setStyle(self, style): def _setStyle(self, style):
""" """
@ -224,19 +212,10 @@ class CSSStyleRule(cssrule.CSSRule):
self._style._seq = style._seq self._style._seq = style._seq
style = property(lambda self: self._style, _setStyle, style = property(lambda self: self._style, _setStyle,
doc="(DOM) The declaration-block of this rule set.") doc="(DOM) The declaration-block of this rule set.")
type = property(lambda self: self.STYLE_RULE,
doc="The type of this rule, as defined by a CSSRule "
"type constant.")
wellformed = property(lambda self: self.selectorList.wellformed) wellformed = property(lambda self: self.selectorList.wellformed)
def __repr__(self):
if self._namespaces:
st = (self.selectorText, self._namespaces)
else:
st = self.selectorText
return "cssutils.css.%s(selectorText=%r, style=%r)" % (
self.__class__.__name__, st, self.style.cssText)
def __str__(self):
return "<cssutils.css.%s object selector=%r style=%r _namespaces=%r at 0x%x>" % (
self.__class__.__name__, self.selectorText, self.style.cssText,
self._namespaces, id(self))

View File

@ -1,5 +1,4 @@
""" """CSSStyleSheet implements DOM Level 2 CSS CSSStyleSheet.
CSSStyleSheet implements DOM Level 2 CSS CSSStyleSheet.
Partly also: Partly also:
- http://dev.w3.org/csswg/cssom/#the-cssstylesheet - http://dev.w3.org/csswg/cssom/#the-cssstylesheet
@ -10,53 +9,32 @@ TODO:
""" """
__all__ = ['CSSStyleSheet'] __all__ = ['CSSStyleSheet']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: cssstylesheet.py 1429 2008-08-11 19:01:52Z cthedot $' __version__ = '$Id: cssstylesheet.py 1641 2009-01-13 21:05:37Z cthedot $'
import xml.dom
import cssutils.stylesheets
from cssutils.util import _Namespaces, _SimpleNamespaces, _readUrl
from cssutils.helper import Deprecated from cssutils.helper import Deprecated
from cssutils.util import _Namespaces, _SimpleNamespaces, _readUrl
import cssutils.stylesheets
import xml.dom
class CSSStyleSheet(cssutils.stylesheets.StyleSheet): class CSSStyleSheet(cssutils.stylesheets.StyleSheet):
""" """CSSStyleSheet represents a CSS style sheet.
The CSSStyleSheet interface represents a CSS style sheet.
Properties Format::
==========
CSSOM
-----
cssRules
of type CSSRuleList, (DOM readonly)
encoding
reflects the encoding of an @charset rule or 'utf-8' (default)
if set to ``None``
ownerRule
of type CSSRule, readonly. If this sheet is imported this is a ref
to the @import rule that imports it.
Inherits properties from stylesheet.StyleSheet stylesheet
: [ CHARSET_SYM S* STRING S* ';' ]?
[S|CDO|CDC]* [ import [S|CDO|CDC]* ]*
[ namespace [S|CDO|CDC]* ]* # according to @namespace WD
[ [ ruleset | media | page ] [S|CDO|CDC]* ]*
cssutils ``cssRules``
-------- All Rules in this style sheet, a :class:`~cssutils.css.CSSRuleList`.
cssText: string
a textual representation of the stylesheet
namespaces
reflects set @namespace rules of this rule.
A dict of {prefix: namespaceURI} mapping.
Format
======
stylesheet
: [ CHARSET_SYM S* STRING S* ';' ]?
[S|CDO|CDC]* [ import [S|CDO|CDC]* ]*
[ namespace [S|CDO|CDC]* ]* # according to @namespace WD
[ [ ruleset | media | page ] [S|CDO|CDC]* ]*
""" """
def __init__(self, href=None, media=None, title=u'', disabled=None, def __init__(self, href=None, media=None, title=u'', disabled=None,
ownerNode=None, parentStyleSheet=None, readonly=False, ownerNode=None, parentStyleSheet=None, readonly=False,
ownerRule=None): ownerRule=None):
""" """
init parameters are the same as for stylesheets.StyleSheet For parameters see :class:`~cssutils.stylesheets.StyleSheet`
""" """
super(CSSStyleSheet, self).__init__( super(CSSStyleSheet, self).__init__(
'text/css', href, media, title, disabled, 'text/css', href, media, title, disabled,
@ -74,12 +52,32 @@ class CSSStyleSheet(cssutils.stylesheets.StyleSheet):
self._fetcher = None self._fetcher = None
def __iter__(self): def __iter__(self):
"generator which iterates over cssRules." "Generator which iterates over cssRules."
for rule in self.cssRules: for rule in self.cssRules:
yield rule yield rule
def __repr__(self):
if self.media:
mediaText = self.media.mediaText
else:
mediaText = None
return "cssutils.css.%s(href=%r, media=%r, title=%r)" % (
self.__class__.__name__,
self.href, mediaText, self.title)
def __str__(self):
if self.media:
mediaText = self.media.mediaText
else:
mediaText = None
return "<cssutils.css.%s object encoding=%r href=%r "\
"media=%r title=%r namespaces=%r at 0x%x>" % (
self.__class__.__name__, self.encoding, self.href,
mediaText, self.title, self.namespaces.namespaces,
id(self))
def _cleanNamespaces(self): def _cleanNamespaces(self):
"removes all namespace rules with same namespaceURI but last one set" "Remove all namespace rules with same namespaceURI but last one set."
rules = self.cssRules rules = self.cssRules
namespaceitems = self.namespaces.items() namespaceitems = self.namespaces.items()
i = 0 i = 0
@ -92,7 +90,7 @@ class CSSStyleSheet(cssutils.stylesheets.StyleSheet):
i += 1 i += 1
def _getUsedURIs(self): def _getUsedURIs(self):
"returns set of URIs used in the sheet" "Return set of URIs used in the sheet."
useduris = set() useduris = set()
for r1 in self: for r1 in self:
if r1.STYLE_RULE == r1.type: if r1.STYLE_RULE == r1.type:
@ -104,21 +102,20 @@ class CSSStyleSheet(cssutils.stylesheets.StyleSheet):
return useduris return useduris
def _getCssText(self): def _getCssText(self):
"Textual representation of the stylesheet (a byte string)."
return cssutils.ser.do_CSSStyleSheet(self) return cssutils.ser.do_CSSStyleSheet(self)
def _setCssText(self, cssText): def _setCssText(self, cssText):
""" """Parse `cssText` and overwrites the whole stylesheet.
(cssutils)
Parses ``cssText`` and overwrites the whole stylesheet.
:param cssText: :param cssText:
a parseable string or a tuple of (cssText, dict-of-namespaces) a parseable string or a tuple of (cssText, dict-of-namespaces)
:Exceptions: :exceptions:
- `NAMESPACE_ERR`: - :exc:`~xml.dom.NamespaceErr`:
If a namespace prefix is found which is not declared. If a namespace prefix is found which is not declared.
- `NO_MODIFICATION_ALLOWED_ERR`: (self) - :exc:`~xml.dom.NoModificationAllowedErr`:
Raised if the rule is readonly. Raised if the rule is readonly.
- `SYNTAX_ERR`: - :exc:`~xml.dom.SyntaxErr`:
Raised if the specified CSS string value has a syntax error and Raised if the specified CSS string value has a syntax error and
is unparsable. is unparsable.
""" """
@ -269,10 +266,10 @@ class CSSStyleSheet(cssutils.stylesheets.StyleSheet):
self._cleanNamespaces() self._cleanNamespaces()
cssText = property(_getCssText, _setCssText, cssText = property(_getCssText, _setCssText,
"(cssutils) a textual representation of the stylesheet") "Textual representation of the stylesheet (a byte string)")
def _resolveImport(self, url): def _resolveImport(self, url):
"""Read (encoding, enctype, decodedContent) from ``url`` for @import """Read (encoding, enctype, decodedContent) from `url` for @import
sheets.""" sheets."""
try: try:
# only available during parse of a complete sheet # only available during parse of a complete sheet
@ -291,10 +288,10 @@ class CSSStyleSheet(cssutils.stylesheets.StyleSheet):
def _setCssTextWithEncodingOverride(self, cssText, encodingOverride=None, def _setCssTextWithEncodingOverride(self, cssText, encodingOverride=None,
encoding=None): encoding=None):
"""Set cssText but use ``encodingOverride`` to overwrite detected """Set `cssText` but use `encodingOverride` to overwrite detected
encoding. This is used by parse and @import during setting of cssText. encoding. This is used by parse and @import during setting of cssText.
If ``encoding`` is given use this but do not save it as encodingOverride""" If `encoding` is given use this but do not save it as `encodingOverride`."""
if encodingOverride: if encodingOverride:
# encoding during resolving of @import # encoding during resolving of @import
self.__encodingOverride = encodingOverride self.__encodingOverride = encodingOverride
@ -312,14 +309,14 @@ class CSSStyleSheet(cssutils.stylesheets.StyleSheet):
self.encoding = encoding self.encoding = encoding
def _setFetcher(self, fetcher=None): def _setFetcher(self, fetcher=None):
"""sets @import URL loader, if None the default is used""" """Set @import URL loader, if None the default is used."""
self._fetcher = fetcher self._fetcher = fetcher
def _setEncoding(self, encoding): def _setEncoding(self, encoding):
""" """Set `encoding` of charset rule if present in sheet or insert a new
sets encoding of charset rule if present or inserts new charsetrule :class:`~cssutils.css.CSSCharsetRule` with given `encoding`.
with given encoding. If encoding if None removes charsetrule if If `encoding` is None removes charsetrule if present resulting in
present. default encoding of utf-8.
""" """
try: try:
rule = self.cssRules[0] rule = self.cssRules[0]
@ -334,41 +331,41 @@ class CSSStyleSheet(cssutils.stylesheets.StyleSheet):
self.insertRule(cssutils.css.CSSCharsetRule(encoding=encoding), 0) self.insertRule(cssutils.css.CSSCharsetRule(encoding=encoding), 0)
def _getEncoding(self): def _getEncoding(self):
"return encoding if @charset rule if given or default of 'utf-8'" """Encoding set in :class:`~cssutils.css.CSSCharsetRule` or if ``None``
resulting in default ``utf-8`` encoding being used."""
try: try:
return self.cssRules[0].encoding return self.cssRules[0].encoding
except (IndexError, AttributeError): except (IndexError, AttributeError):
return 'utf-8' return 'utf-8'
encoding = property(_getEncoding, _setEncoding, encoding = property(_getEncoding, _setEncoding,
"(cssutils) reflects the encoding of an @charset rule or 'UTF-8' (default) if set to ``None``") "(cssutils) Reflect encoding of an @charset rule or 'utf-8' "
"(default) if set to ``None``")
namespaces = property(lambda self: self._namespaces, namespaces = property(lambda self: self._namespaces,
doc="Namespaces used in this CSSStyleSheet.") doc="All Namespaces used in this CSSStyleSheet.")
def add(self, rule): def add(self, rule):
""" """Add `rule` to style sheet at appropriate position.
Adds rule to stylesheet at appropriate position. Same as ``insertRule(rule, inOrder=True)``.
Same as ``sheet.insertRule(rule, inOrder=True)``.
""" """
return self.insertRule(rule, index=None, inOrder=True) return self.insertRule(rule, index=None, inOrder=True)
def deleteRule(self, index): def deleteRule(self, index):
""" """Delete rule at `index` from the style sheet.
Used to delete a rule from the style sheet.
:param index: :param index:
of the rule to remove in the StyleSheet's rule list. For an of the rule to remove in the StyleSheet's rule list. For an
index < 0 **no** INDEX_SIZE_ERR is raised but rules for `index` < 0 **no** :exc:`~xml.dom.IndexSizeErr` is raised but
normal Python lists are used. E.g. ``deleteRule(-1)`` removes rules for normal Python lists are used. E.g. ``deleteRule(-1)``
the last rule in cssRules. removes the last rule in cssRules.
:Exceptions: :exceptions:
- `INDEX_SIZE_ERR`: (self) - :exc:`~xml.dom.IndexSizeErr`:
Raised if the specified index does not correspond to a rule in Raised if the specified index does not correspond to a rule in
the style sheet's rule list. the style sheet's rule list.
- `NAMESPACE_ERR`: (self) - :exc:`~xml.dom.NamespaceErr`:
Raised if removing this rule would result in an invalid StyleSheet Raised if removing this rule would result in an invalid StyleSheet
- `NO_MODIFICATION_ALLOWED_ERR`: (self) - :exc:`~xml.dom.NoModificationAllowedErr`:
Raised if this style sheet is readonly. Raised if this style sheet is readonly.
""" """
self._checkReadonly() self._checkReadonly()
@ -398,32 +395,31 @@ class CSSStyleSheet(cssutils.stylesheets.StyleSheet):
Used to insert a new rule into the style sheet. The new rule now Used to insert a new rule into the style sheet. The new rule now
becomes part of the cascade. becomes part of the cascade.
:Parameters: :param rule:
rule a parsable DOMString, in cssutils also a
a parsable DOMString, in cssutils also a CSSRule or a :class:`~cssutils.css.CSSRule` or :class:`~cssutils.css.CSSRuleList`
CSSRuleList :param index:
index of the rule before the new rule will be inserted.
of the rule before the new rule will be inserted. If the specified `index` is equal to the length of the
If the specified index is equal to the length of the StyleSheet's rule collection, the rule will be added to the end
StyleSheet's rule collection, the rule will be added to the end of the style sheet.
of the style sheet. If `index` is not given or ``None`` rule will be appended to rule
If index is not given or None rule will be appended to rule list.
list. :param inOrder:
inOrder if ``True`` the rule will be put to a proper location while
if True the rule will be put to a proper location while ignoring `index` and without raising :exc:`~xml.dom.HierarchyRequestErr`.
ignoring index but without raising HIERARCHY_REQUEST_ERR. The resulting index is returned nevertheless.
The resulting index is returned nevertheless :returns: The index within the style sheet's rule collection
:returns: the index within the stylesheet's rule collection
:Exceptions: :Exceptions:
- `HIERARCHY_REQUEST_ERR`: (self) - :exc:`~xml.dom.HierarchyRequestErr`:
Raised if the rule cannot be inserted at the specified index Raised if the rule cannot be inserted at the specified `index`
e.g. if an @import rule is inserted after a standard rule set e.g. if an @import rule is inserted after a standard rule set
or other at-rule. or other at-rule.
- `INDEX_SIZE_ERR`: (self) - :exc:`~xml.dom.IndexSizeErr`:
Raised if the specified index is not a valid insertion point. Raised if the specified `index` is not a valid insertion point.
- `NO_MODIFICATION_ALLOWED_ERR`: (self) - :exc:`~xml.dom.NoModificationAllowedErr`:
Raised if this style sheet is readonly. Raised if this style sheet is readonly.
- `SYNTAX_ERR`: (rule) - :exc:`~xml.dom.SyntaxErr`:
Raised if the specified rule has a syntax error and is Raised if the specified rule has a syntax error and is
unparsable. unparsable.
""" """
@ -618,57 +614,18 @@ class CSSStyleSheet(cssutils.stylesheets.StyleSheet):
return index return index
ownerRule = property(lambda self: self._ownerRule, ownerRule = property(lambda self: self._ownerRule,
doc="(DOM attribute) NOT IMPLEMENTED YET") doc="A ref to an @import rule if it is imported, else ``None``.")
@Deprecated('Use cssutils.replaceUrls(sheet, replacer) instead.')
def replaceUrls(self, replacer):
"""
**EXPERIMENTAL**
Utility method to replace all ``url(urlstring)`` values in
``CSSImportRules`` and ``CSSStyleDeclaration`` objects (properties).
``replacer`` must be a function which is called with a single
argument ``urlstring`` which is the current value of url()
excluding ``url(`` and ``)``. It still may have surrounding
single or double quotes though.
"""
cssutils.replaceUrls(self, replacer)
def setSerializer(self, cssserializer): def setSerializer(self, cssserializer):
""" """Set the cssutils global Serializer used for all output."""
Sets the global Serializer used for output of all stylesheet
output.
"""
if isinstance(cssserializer, cssutils.CSSSerializer): if isinstance(cssserializer, cssutils.CSSSerializer):
cssutils.ser = cssserializer cssutils.ser = cssserializer
else: else:
raise ValueError(u'Serializer must be an instance of cssutils.CSSSerializer.') raise ValueError(u'Serializer must be an instance of cssutils.CSSSerializer.')
def setSerializerPref(self, pref, value): def setSerializerPref(self, pref, value):
""" """Set a Preference of CSSSerializer used for output.
Sets Preference of CSSSerializer used for output of this See :class:`cssutils.serialize.Preferences` for possible
stylesheet. See cssutils.serialize.Preferences for possible
preferences to be set. preferences to be set.
""" """
cssutils.ser.prefs.__setattr__(pref, value) cssutils.ser.prefs.__setattr__(pref, value)
def __repr__(self):
if self.media:
mediaText = self.media.mediaText
else:
mediaText = None
return "cssutils.css.%s(href=%r, media=%r, title=%r)" % (
self.__class__.__name__,
self.href, mediaText, self.title)
def __str__(self):
if self.media:
mediaText = self.media.mediaText
else:
mediaText = None
return "<cssutils.css.%s object encoding=%r href=%r "\
"media=%r title=%r namespaces=%r at 0x%x>" % (
self.__class__.__name__, self.encoding, self.href,
mediaText, self.title, self.namespaces.namespaces,
id(self))

View File

@ -1,44 +1,25 @@
"""CSSUnknownRule implements DOM Level 2 CSS CSSUnknownRule. """CSSUnknownRule implements DOM Level 2 CSS CSSUnknownRule."""
"""
__all__ = ['CSSUnknownRule'] __all__ = ['CSSUnknownRule']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: cssunknownrule.py 1170 2008-03-20 17:42:07Z cthedot $' __version__ = '$Id: cssunknownrule.py 1638 2009-01-13 20:39:33Z cthedot $'
import xml.dom
import cssrule import cssrule
import cssutils import cssutils
import xml.dom
class CSSUnknownRule(cssrule.CSSRule): class CSSUnknownRule(cssrule.CSSRule):
""" """
represents an at-rule not supported by this user agent. Represents an at-rule not supported by this user agent, so in
effect all other at-rules not defined in cssutils.
Properties Format::
==========
inherited from CSSRule
- cssText
- type
cssutils only
-------------
atkeyword
the literal keyword used
seq
All parts of this rule excluding @KEYWORD but including CSSComments
wellformed
if this Rule is wellformed, for Unknown rules if an atkeyword is set
at all
Format
======
unknownrule:
@xxx until ';' or block {...} @xxx until ';' or block {...}
""" """
type = property(lambda self: cssrule.CSSRule.UNKNOWN_RULE)
def __init__(self, cssText=u'', parentRule=None, def __init__(self, cssText=u'', parentRule=None,
parentStyleSheet=None, readonly=False): parentStyleSheet=None, readonly=False):
""" """
cssText :param cssText:
of type string of type string
""" """
super(CSSUnknownRule, self).__init__(parentRule=parentRule, super(CSSUnknownRule, self).__init__(parentRule=parentRule,
@ -49,25 +30,32 @@ class CSSUnknownRule(cssrule.CSSRule):
self._readonly = readonly self._readonly = readonly
def __repr__(self):
return "cssutils.css.%s(cssText=%r)" % (
self.__class__.__name__, self.cssText)
def __str__(self):
return "<cssutils.css.%s object cssText=%r at 0x%x>" % (
self.__class__.__name__, self.cssText, id(self))
def _getCssText(self): def _getCssText(self):
""" returns serialized property cssText """ """Return serialized property cssText."""
return cssutils.ser.do_CSSUnknownRule(self) return cssutils.ser.do_CSSUnknownRule(self)
def _setCssText(self, cssText): def _setCssText(self, cssText):
""" """
DOMException on setting :exceptions:
- :exc:`~xml.dom.SyntaxErr`:
- SYNTAX_ERR: Raised if the specified CSS string value has a syntax error and
Raised if the specified CSS string value has a syntax error and is unparsable.
is unparsable. - :exc:`~xml.dom.InvalidModificationErr`:
- INVALID_MODIFICATION_ERR: Raised if the specified CSS string value represents a different
Raised if the specified CSS string value represents a different type of rule than the current one.
type of rule than the current one. - :exc:`~xml.dom.HierarchyRequestErr`:
- HIERARCHY_REQUEST_ERR: (never raised) Raised if the rule cannot be inserted at this point in the
Raised if the rule cannot be inserted at this point in the style sheet.
style sheet. - :exc:`~xml.dom.NoModificationAllowedErr`:
- NO_MODIFICATION_ALLOWED_ERR: (CSSRule) Raised if the rule is readonly.
Raised if the rule is readonly.
""" """
super(CSSUnknownRule, self)._setCssText(cssText) super(CSSUnknownRule, self)._setCssText(cssText)
tokenizer = self._tokenize2(cssText) tokenizer = self._tokenize2(cssText)
@ -197,12 +185,9 @@ class CSSUnknownRule(cssrule.CSSRule):
cssText = property(fget=_getCssText, fset=_setCssText, cssText = property(fget=_getCssText, fset=_setCssText,
doc="(DOM) The parsable textual representation.") doc="(DOM) The parsable textual representation.")
type = property(lambda self: self.UNKNOWN_RULE,
doc="The type of this rule, as defined by a CSSRule "
"type constant.")
wellformed = property(lambda self: bool(self.atkeyword)) wellformed = property(lambda self: bool(self.atkeyword))
def __repr__(self):
return "cssutils.css.%s(cssText=%r)" % (
self.__class__.__name__, self.cssText)
def __str__(self):
return "<cssutils.css.%s object cssText=%r at 0x%x>" % (
self.__class__.__name__, self.cssText, id(self))

File diff suppressed because it is too large Load Diff

View File

@ -1,55 +1,18 @@
"""Property is a single CSS property in a CSSStyleDeclaration """Property is a single CSS property in a CSSStyleDeclaration."""
Internal use only, may be removed in the future!
"""
__all__ = ['Property'] __all__ = ['Property']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: property.py 1444 2008-08-31 18:45:35Z cthedot $' __version__ = '$Id: property.py 1664 2009-02-07 22:47:09Z cthedot $'
import xml.dom from cssutils.helper import Deprecated
import cssutils
#import cssproperties
from cssutils.profiles import profiles from cssutils.profiles import profiles
from cssvalue import CSSValue from cssvalue import CSSValue
from cssutils.helper import Deprecated import cssutils
import xml.dom
class Property(cssutils.util.Base): class Property(cssutils.util.Base):
""" """A CSS property in a StyleDeclaration of a CSSStyleRule (cssutils).
(cssutils) a CSS property in a StyleDeclaration of a CSSStyleRule
Properties Format::
==========
cssText
a parsable textual representation of this property
name
normalized name of the property, e.g. "color" when name is "c\olor"
(since 0.9.5)
literalname (since 0.9.5)
original name of the property in the source CSS which is not normalized
e.g. "C\\OLor"
cssValue
the relevant CSSValue instance for this property
value
the string value of the property, same as cssValue.cssText
priority
of the property (currently only u"important" or None)
literalpriority
original priority of the property in the source CSS which is not
normalized e.g. "IM\portant"
seqs
combination of a list for seq of name, a CSSValue object, and
a list for seq of priority (empty or [!important] currently)
valid
if this Property is valid
wellformed
if this Property is syntactically ok
DEPRECATED normalname (since 0.9.5)
normalized name of the property, e.g. "color" when name is "c\olor"
Format
======
::
property = name property = name
: IDENT S* : IDENT S*
@ -81,60 +44,67 @@ class Property(cssutils.util.Base):
; ;
""" """
def __init__(self, name=None, value=None, priority=u'', _mediaQuery=False): def __init__(self, name=None, value=None, priority=u'',
_mediaQuery=False, _parent=None):
""" """
inits property :param name:
name
a property name string (will be normalized) a property name string (will be normalized)
value :param value:
a property value string a property value string
priority :param priority:
an optional priority string which currently must be u'', an optional priority string which currently must be u'',
u'!important' or u'important' u'!important' or u'important'
_mediaQuery boolean :param _mediaQuery:
if True value is optional as used by MediaQuery objects if ``True`` value is optional (used by MediaQuery)
:param _parent:
the parent object, normally a
:class:`cssutils.css.CSSStyleDeclaration`
""" """
super(Property, self).__init__() super(Property, self).__init__()
self.seqs = [[], None, []] self.seqs = [[], None, []]
self.valid = False
self.wellformed = False self.wellformed = False
self._mediaQuery = _mediaQuery self._mediaQuery = _mediaQuery
self._parent = _parent
self._name = u''
self._literalname = u''
if name: if name:
self.name = name self.name = name
else:
self._name = u''
self._literalname = u''
self.__normalname = u'' # DEPRECATED
if value: if value:
self.cssValue = value self.cssValue = value
else: else:
self.seqs[1] = CSSValue() self.seqs[1] = CSSValue()
self._priority = u''
self._literalpriority = u''
if priority: if priority:
self.priority = priority self.priority = priority
else:
self._priority = u'' def __repr__(self):
self._literalpriority = u'' return "cssutils.css.%s(name=%r, value=%r, priority=%r)" % (
self.__class__.__name__,
self.literalname, self.cssValue.cssText, self.priority)
def __str__(self):
return "<%s.%s object name=%r value=%r priority=%r valid=%r at 0x%x>" % (
self.__class__.__module__, self.__class__.__name__,
self.name, self.cssValue.cssText, self.priority,
self.valid, id(self))
def _getCssText(self): def _getCssText(self):
""" """Return serialized property cssText."""
returns serialized property cssText
"""
return cssutils.ser.do_Property(self) return cssutils.ser.do_Property(self)
def _setCssText(self, cssText): def _setCssText(self, cssText):
""" """
DOMException on setting :exceptions:
- :exc:`~xml.dom.SyntaxErr`:
- NO_MODIFICATION_ALLOWED_ERR: (CSSRule) Raised if the specified CSS string value has a syntax error and
Raised if the rule is readonly. is unparsable.
- SYNTAX_ERR: (self) - :exc:`~xml.dom.NoModificationAllowedErr`:
Raised if the specified CSS string value has a syntax error and Raised if the rule is readonly.
is unparsable.
""" """
# check and prepare tokenlists for setting # check and prepare tokenlists for setting
tokenizer = self._tokenize2(cssText) tokenizer = self._tokenize2(cssText)
@ -180,6 +150,9 @@ class Property(cssutils.util.Base):
self.cssValue = valuetokens self.cssValue = valuetokens
self.priority = prioritytokens self.priority = prioritytokens
# also invalid values are set!
self.validate()
else: else:
self._log.error(u'Property: No property name found: %r.' % self._log.error(u'Property: No property name found: %r.' %
self._valuestr(cssText)) self._valuestr(cssText))
@ -189,11 +162,10 @@ class Property(cssutils.util.Base):
def _setName(self, name): def _setName(self, name):
""" """
DOMException on setting :exceptions:
- :exc:`~xml.dom.SyntaxErr`:
- SYNTAX_ERR: (self) Raised if the specified name has a syntax error and is
Raised if the specified name has a syntax error and is unparsable.
unparsable.
""" """
# for closures: must be a mutable # for closures: must be a mutable
new = {'literalname': None, new = {'literalname': None,
@ -233,43 +205,42 @@ class Property(cssutils.util.Base):
self.wellformed = True self.wellformed = True
self._literalname = new['literalname'] self._literalname = new['literalname']
self._name = self._normalize(self._literalname) self._name = self._normalize(self._literalname)
self.__normalname = self._name # DEPRECATED
self.seqs[0] = newseq self.seqs[0] = newseq
# validate # # validate
if self._name not in profiles.propertiesByProfile(): if self._name not in profiles.knownnames:
self.valid = False # self.valid = False
tokenizer=self._tokenize2(name) self._log.warn(u'Property: Unknown Property.',
self._log.warn(u'Property: Unknown Property: %r.' % token=token, neverraise=True)
new['literalname'], token=token, neverraise=True)
else: else:
self.valid = True pass
if self.cssValue: # self.valid = True
self.cssValue._propertyName = self._name # if self.cssValue:
self.valid = self.cssValue.valid # self.cssValue._propertyName = self._name
# #self.valid = self.cssValue.valid
else: else:
self.wellformed = False self.wellformed = False
name = property(lambda self: self._name, _setName, name = property(lambda self: self._name, _setName,
doc="Name of this property") doc="Name of this property.")
literalname = property(lambda self: self._literalname, literalname = property(lambda self: self._literalname,
doc="Readonly literal (not normalized) name of this property") doc="Readonly literal (not normalized) name "
"of this property")
def _getCSSValue(self): def _getCSSValue(self):
return self.seqs[1] return self.seqs[1]
def _setCSSValue(self, cssText): def _setCSSValue(self, cssText):
""" """
see css.CSSValue See css.CSSValue
DOMException on setting? :exceptions:
- :exc:`~xml.dom.SyntaxErr`:
- SYNTAX_ERR: (self)
Raised if the specified CSS string value has a syntax error Raised if the specified CSS string value has a syntax error
(according to the attached property) or is unparsable. (according to the attached property) or is unparsable.
- TODO: INVALID_MODIFICATION_ERR: - :exc:`~xml.dom.InvalidModificationErr`:
Raised if the specified CSS string value represents a different TODO: Raised if the specified CSS string value represents a different
type of values than the values allowed by the CSS property. type of values than the values allowed by the CSS property.
""" """
if self._mediaQuery and not cssText: if self._mediaQuery and not cssText:
@ -279,25 +250,24 @@ class Property(cssutils.util.Base):
self.seqs[1] = CSSValue() self.seqs[1] = CSSValue()
cssvalue = self.seqs[1] cssvalue = self.seqs[1]
cssvalue._propertyName = self.name
cssvalue.cssText = cssText cssvalue.cssText = cssText
if cssvalue._value and cssvalue.wellformed: if cssvalue.wellformed: #cssvalue._value and
self.seqs[1] = cssvalue self.seqs[1] = cssvalue
self.valid = self.valid and cssvalue.valid
self.wellformed = self.wellformed and cssvalue.wellformed self.wellformed = self.wellformed and cssvalue.wellformed
cssValue = property(_getCSSValue, _setCSSValue, cssValue = property(_getCSSValue, _setCSSValue,
doc="(cssutils) CSSValue object of this property") doc="(cssutils) CSSValue object of this property")
def _getValue(self): def _getValue(self):
if self.cssValue: if self.cssValue:
return self.cssValue._value return self.cssValue.cssText # _value # [0]
else: else:
return u'' return u''
def _setValue(self, value): def _setValue(self, value):
self.cssValue.cssText = value self.cssValue.cssText = value
self.valid = self.valid and self.cssValue.valid # self.valid = self.valid and self.cssValue.valid
self.wellformed = self.wellformed and self.cssValue.wellformed self.wellformed = self.wellformed and self.cssValue.wellformed
value = property(_getValue, _setValue, value = property(_getValue, _setValue,
@ -308,9 +278,7 @@ class Property(cssutils.util.Base):
priority priority
a string, currently either u'', u'!important' or u'important' a string, currently either u'', u'!important' or u'important'
Format Format::
======
::
prio prio
: IMPORTANT_SYM S* : IMPORTANT_SYM S*
@ -318,14 +286,13 @@ class Property(cssutils.util.Base):
"!"{w}"important" {return IMPORTANT_SYM;} "!"{w}"important" {return IMPORTANT_SYM;}
DOMException on setting :exceptions:
- :exc:`~xml.dom.SyntaxErr`:
- SYNTAX_ERR: (self) Raised if the specified priority has a syntax error and is
Raised if the specified priority has a syntax error and is unparsable.
unparsable. In this case a priority not equal to None, "" or "!{w}important".
In this case a priority not equal to None, "" or "!{w}important". As CSSOM defines CSSStyleDeclaration.getPropertyPriority resulting in
As CSSOM defines CSSStyleDeclaration.getPropertyPriority resulting in u'important' this value is also allowed to set a Properties priority
u'important' this value is also allowed to set a Properties priority
""" """
if self._mediaQuery: if self._mediaQuery:
self._priority = u'' self._priority = u''
@ -356,8 +323,7 @@ class Property(cssutils.util.Base):
def _ident(expected, seq, token, tokenizer=None): def _ident(expected, seq, token, tokenizer=None):
# "important" # "important"
val = self._tokenvalue(token) val = self._tokenvalue(token)
normalval = self._tokenvalue(token, normalize=True) if 'important' == expected:
if 'important' == expected == normalval:
new['literalpriority'] = val new['literalpriority'] = val
seq.append(val) seq.append(val)
return 'EOF' return 'EOF'
@ -378,38 +344,66 @@ class Property(cssutils.util.Base):
if priority and not new['literalpriority']: if priority and not new['literalpriority']:
wellformed = False wellformed = False
self._log.info(u'Property: Invalid priority: %r.' % self._log.info(u'Property: Invalid priority: %r.' %
self._valuestr(priority)) self._valuestr(priority))
if wellformed: if wellformed:
self.wellformed = self.wellformed and wellformed self.wellformed = self.wellformed and wellformed
self._literalpriority = new['literalpriority'] self._literalpriority = new['literalpriority']
self._priority = self._normalize(self.literalpriority) self._priority = self._normalize(self.literalpriority)
self.seqs[2] = newseq self.seqs[2] = newseq
# validate priority
# validate
if self._priority not in (u'', u'important'): if self._priority not in (u'', u'important'):
self.valid = False self._log.error(u'Property: No CSS priority value: %r.' %
self._log.info(u'Property: No CSS2 priority value: %r.' % self._priority)
self._priority, neverraise=True)
priority = property(lambda self: self._priority, _setPriority, priority = property(lambda self: self._priority, _setPriority,
doc="(cssutils) Priority of this property") doc="Priority of this property.")
literalpriority = property(lambda self: self._literalpriority, literalpriority = property(lambda self: self._literalpriority,
doc="Readonly literal (not normalized) priority of this property") doc="Readonly literal (not normalized) priority of this property")
def __repr__(self): def validate(self, profile=None):
return "cssutils.css.%s(name=%r, value=%r, priority=%r)" % ( """Validate value against `profile`.
self.__class__.__name__,
self.literalname, self.cssValue.cssText, self.priority)
def __str__(self): :param profile:
return "<%s.%s object name=%r value=%r priority=%r at 0x%x>" % ( A profile name used for validating. If no `profile` is given
self.__class__.__module__, self.__class__.__name__, ``Property.profiles
self.name, self.cssValue.cssText, self.priority, id(self)) """
valid = False
@Deprecated(u'Use property ``name`` instead (since cssutils 0.9.5).') if self.name and self.value:
def _getNormalname(self): if profile is None:
return self.__normalname usedprofile = cssutils.profiles.defaultprofile
normalname = property(_getNormalname, else:
doc="DEPRECATED since 0.9.5, use name instead") usedprofile = profile
if self.name in profiles.knownnames:
valid, validprofiles = profiles.validateWithProfile(self.name,
self.value,
usedprofile)
if not valid:
self._log.error(u'Property: Invalid value for "%s" property: %s: %s'
% (u'/'.join(validprofiles),
self.name,
self.value),
neverraise=True)
elif valid and (usedprofile and usedprofile not in validprofiles):
self._log.warn(u'Property: Not valid for profile "%s": %s: %s'
% (usedprofile, self.name, self.value),
neverraise=True)
if valid:
self._log.info(u'Property: Found valid "%s" property: %s: %s'
% (u'/'.join(validprofiles),
self.name,
self.value),
neverraise=True)
if self._priority not in (u'', u'important'):
valid = False
return valid
valid = property(validate, doc="Check if value of this property is valid "
"in the properties context.")

View File

@ -1,7 +1,5 @@
"""Selector is a single Selector of a CSSStyleRule SelectorList. """Selector is a single Selector of a CSSStyleRule SelectorList.
Partly implements http://www.w3.org/TR/css3-selectors/.
Partly implements
http://www.w3.org/TR/css3-selectors/
TODO TODO
- .contains(selector) - .contains(selector)
@ -9,45 +7,18 @@ TODO
""" """
__all__ = ['Selector'] __all__ = ['Selector']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: selector.py 1429 2008-08-11 19:01:52Z cthedot $' __version__ = '$Id: selector.py 1638 2009-01-13 20:39:33Z cthedot $'
import xml.dom
import cssutils
from cssutils.util import _SimpleNamespaces from cssutils.util import _SimpleNamespaces
import cssutils
import xml.dom
class Selector(cssutils.util.Base2): class Selector(cssutils.util.Base2):
""" """
(cssutils) a single selector in a SelectorList of a CSSStyleRule (cssutils) a single selector in a :class:`~cssutils.css.SelectorList`
of a :class:`~cssutils.css.CSSStyleRule`.
Properties Format::
==========
element
Effective element target of this selector
parentList: of type SelectorList, readonly
The SelectorList that contains this selector or None if this
Selector is not attached to a SelectorList.
selectorText
textual representation of this Selector
seq
sequence of Selector parts including comments
specificity (READONLY)
tuple of (a, b, c, d) where:
a
presence of style in document, always 0 if not used on a document
b
number of ID selectors
c
number of .class selectors
d
number of Element (type) selectors
wellformed
if this selector is wellformed regarding the Selector spec
Format
======
::
# implemented in SelectorList # implemented in SelectorList
selectors_group selectors_group
@ -150,14 +121,46 @@ class Selector(cssutils.util.Base2):
self._readonly = readonly self._readonly = readonly
def __repr__(self):
if self.__getNamespaces():
st = (self.selectorText, self._getUsedNamespaces())
else:
st = self.selectorText
return u"cssutils.css.%s(selectorText=%r)" % (
self.__class__.__name__, st)
def __str__(self):
return u"<cssutils.css.%s object selectorText=%r specificity=%r _namespaces=%r at 0x%x>" % (
self.__class__.__name__, self.selectorText, self.specificity,
self._getUsedNamespaces(), id(self))
def _getUsedUris(self):
"Return list of actually used URIs in this Selector."
uris = set()
for item in self.seq:
type_, val = item.type, item.value
if type_.endswith(u'-selector') or type_ == u'universal' and \
type(val) == tuple and val[0] not in (None, u'*'):
uris.add(val[0])
return uris
def _getUsedNamespaces(self):
"Return actually used namespaces only."
useduris = self._getUsedUris()
namespaces = _SimpleNamespaces(log=self._log)
for p, uri in self._namespaces.items():
if uri in useduris:
namespaces[p] = uri
return namespaces
def __getNamespaces(self): def __getNamespaces(self):
"uses own namespaces if not attached to a sheet, else the sheet's ones" "Use own namespaces if not attached to a sheet, else the sheet's ones."
try: try:
return self._parent.parentRule.parentStyleSheet.namespaces return self._parent.parentRule.parentStyleSheet.namespaces
except AttributeError: except AttributeError:
return self.__namespaces return self.__namespaces
_namespaces = property(__getNamespaces, doc="""if this Selector is attached _namespaces = property(__getNamespaces, doc="""If this Selector is attached
to a CSSStyleSheet the namespaces of that sheet are mirrored here. to a CSSStyleSheet the namespaces of that sheet are mirrored here.
While the Selector (or parent SelectorList or parentRule(s) of that are While the Selector (or parent SelectorList or parentRule(s) of that are
not attached a own dict of {prefix: namespaceURI} is used.""") not attached a own dict of {prefix: namespaceURI} is used.""")
@ -171,9 +174,7 @@ class Selector(cssutils.util.Base2):
None if this Selector is not attached to a SelectorList.") None if this Selector is not attached to a SelectorList.")
def _getSelectorText(self): def _getSelectorText(self):
""" """Return serialized format."""
returns serialized format
"""
return cssutils.ser.do_css_Selector(self) return cssutils.ser.do_css_Selector(self)
def _setSelectorText(self, selectorText): def _setSelectorText(self, selectorText):
@ -183,14 +184,14 @@ class Selector(cssutils.util.Base2):
Given namespaces are ignored if this object is attached to a Given namespaces are ignored if this object is attached to a
CSSStyleSheet! CSSStyleSheet!
:Exceptions: :exceptions:
- `NAMESPACE_ERR`: (self) - :exc:`~xml.dom.NamespaceErr`:
Raised if the specified selector uses an unknown namespace Raised if the specified selector uses an unknown namespace
prefix. prefix.
- `SYNTAX_ERR`: (self) - :exc:`~xml.dom.SyntaxErr`:
Raised if the specified CSS string value has a syntax error Raised if the specified CSS string value has a syntax error
and is unparsable. and is unparsable.
- `NO_MODIFICATION_ALLOWED_ERR`: (self) - :exc:`~xml.dom.NoModificationAllowedErr`:
Raised if this rule is readonly. Raised if this rule is readonly.
""" """
self._checkReadonly() self._checkReadonly()
@ -763,38 +764,17 @@ class Selector(cssutils.util.Base2):
specificity = property(lambda self: self._specificity, specificity = property(lambda self: self._specificity,
doc="Specificity of this selector (READONLY).") doc="""Specificity of this selector (READONLY).
Tuple of (a, b, c, d) where:
a
presence of style in document, always 0 if not used on a document
b
number of ID selectors
c
number of .class selectors
d
number of Element (type) selectors
""")
wellformed = property(lambda self: bool(len(self.seq))) wellformed = property(lambda self: bool(len(self.seq)))
def __repr__(self):
if self.__getNamespaces():
st = (self.selectorText, self._getUsedNamespaces())
else:
st = self.selectorText
return u"cssutils.css.%s(selectorText=%r)" % (
self.__class__.__name__, st)
def __str__(self):
return u"<cssutils.css.%s object selectorText=%r specificity=%r _namespaces=%r at 0x%x>" % (
self.__class__.__name__, self.selectorText, self.specificity,
self._getUsedNamespaces(), id(self))
def _getUsedUris(self):
"returns list of actually used URIs in this Selector"
uris = set()
for item in self.seq:
type_, val = item.type, item.value
if type_.endswith(u'-selector') or type_ == u'universal' and \
type(val) == tuple and val[0] not in (None, u'*'):
uris.add(val[0])
return uris
def _getUsedNamespaces(self):
"returns actually used namespaces only"
useduris = self._getUsedUris()
namespaces = _SimpleNamespaces(log=self._log)
for p, uri in self._namespaces.items():
if uri in useduris:
namespaces[p] = uri
return namespaces

View File

@ -17,37 +17,18 @@ TODO
""" """
__all__ = ['SelectorList'] __all__ = ['SelectorList']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: selectorlist.py 1174 2008-03-20 17:43:07Z cthedot $' __version__ = '$Id: selectorlist.py 1638 2009-01-13 20:39:33Z cthedot $'
import xml.dom
import cssutils
from selector import Selector from selector import Selector
import cssutils
import xml.dom
class SelectorList(cssutils.util.Base, cssutils.util.ListSeq): class SelectorList(cssutils.util.Base, cssutils.util.ListSeq):
""" """A list of :class:`~cssutils.css.Selector` objects
(cssutils) a list of Selectors of a CSSStyleRule of a :class:`~cssutils.css.CSSStyleRule`."""
Properties
==========
length: of type unsigned long, readonly
The number of Selector elements in the list.
parentRule: of type CSSRule, readonly
The CSS rule that contains this selector list or None if this
list is not attached to a CSSRule.
selectorText: of type DOMString
The textual representation of the selector for the rule set. The
implementation may have stripped out insignificant whitespace while
parsing the selector.
seq: (internal use!)
A list of Selector objects
wellformed
if this selectorlist is wellformed regarding the Selector spec
"""
def __init__(self, selectorText=None, parentRule=None, def __init__(self, selectorText=None, parentRule=None,
readonly=False): readonly=False):
""" """
initializes SelectorList with optional selectorText
:Parameters: :Parameters:
selectorText selectorText
parsable list of Selectors parsable list of Selectors
@ -63,8 +44,30 @@ class SelectorList(cssutils.util.Base, cssutils.util.ListSeq):
self._readonly = readonly self._readonly = readonly
def __repr__(self):
if self._namespaces:
st = (self.selectorText, self._namespaces)
else:
st = self.selectorText
return "cssutils.css.%s(selectorText=%r)" % (
self.__class__.__name__, st)
def __str__(self):
return "<cssutils.css.%s object selectorText=%r _namespaces=%r at 0x%x>" % (
self.__class__.__name__, self.selectorText, self._namespaces,
id(self))
def __setitem__(self, index, newSelector):
"""Overwrite ListSeq.__setitem__
Any duplicate Selectors are **not** removed.
"""
newSelector = self.__prepareset(newSelector)
if newSelector:
self.seq[index] = newSelector
def __prepareset(self, newSelector, namespaces=None): def __prepareset(self, newSelector, namespaces=None):
"used by appendSelector and __setitem__" "Used by appendSelector and __setitem__"
if not namespaces: if not namespaces:
namespaces = {} namespaces = {}
self._checkReadonly() self._checkReadonly()
@ -75,26 +78,8 @@ class SelectorList(cssutils.util.Base, cssutils.util.ListSeq):
newSelector._parent = self # maybe set twice but must be! newSelector._parent = self # maybe set twice but must be!
return newSelector return newSelector
def __setitem__(self, index, newSelector):
"""
overwrites ListSeq.__setitem__
Any duplicate Selectors are **not** removed.
"""
newSelector = self.__prepareset(newSelector)
if newSelector:
self.seq[index] = newSelector
def append(self, newSelector):
"same as appendSelector(newSelector)"
self.appendSelector(newSelector)
length = property(lambda self: len(self),
doc="The number of Selector elements in the list.")
def __getNamespaces(self): def __getNamespaces(self):
"uses children namespaces if not attached to a sheet, else the sheet's ones" "Use children namespaces if not attached to a sheet, else the sheet's ones."
try: try:
return self.parentRule.parentStyleSheet.namespaces return self.parentRule.parentStyleSheet.namespaces
except AttributeError: except AttributeError:
@ -103,17 +88,67 @@ class SelectorList(cssutils.util.Base, cssutils.util.ListSeq):
namespaces.update(selector._namespaces) namespaces.update(selector._namespaces)
return namespaces return namespaces
_namespaces = property(__getNamespaces, doc="""if this SelectorList is def _getUsedUris(self):
"Used by CSSStyleSheet to check if @namespace rules are needed"
uris = set()
for s in self:
uris.update(s._getUsedUris())
return uris
_namespaces = property(__getNamespaces, doc="""If this SelectorList is
attached to a CSSStyleSheet the namespaces of that sheet are mirrored attached to a CSSStyleSheet the namespaces of that sheet are mirrored
here. While the SelectorList (or parentRule(s) are here. While the SelectorList (or parentRule(s) are
not attached the namespaces of all children Selectors are used.""") not attached the namespaces of all children Selectors are used.""")
parentRule = property(lambda self: self._parentRule, def append(self, newSelector):
doc="(DOM) The CSS rule that contains this SelectorList or\ "Same as :meth:`appendSelector`."
None if this SelectorList is not attached to a CSSRule.") self.appendSelector(newSelector)
def appendSelector(self, newSelector):
"""
Append `newSelector` to this list (a string will be converted to a
:class:`~cssutils.css.Selector`).
:param newSelector:
comma-separated list of selectors (as a single string) or a tuple of
`(newSelector, dict-of-namespaces)`
:returns: New :class:`~cssutils.css.Selector` or ``None`` if
`newSelector` is not wellformed.
:exceptions:
- :exc:`~xml.dom.NamespaceErr`:
Raised if the specified selector uses an unknown namespace
prefix.
- :exc:`~xml.dom.SyntaxErr`:
Raised if the specified CSS string value has a syntax error
and is unparsable.
- :exc:`~xml.dom.NoModificationAllowedErr`:
Raised if this rule is readonly.
"""
self._checkReadonly()
# might be (selectorText, namespaces)
newSelector, namespaces = self._splitNamespacesOff(newSelector)
try:
# use parent's only if available
namespaces = self.parentRule.parentStyleSheet.namespaces
except AttributeError:
# use already present namespaces plus new given ones
_namespaces = self._namespaces
_namespaces.update(namespaces)
namespaces = _namespaces
newSelector = self.__prepareset(newSelector, namespaces)
if newSelector:
seq = self.seq[:]
del self.seq[:]
for s in seq:
if s.selectorText != newSelector.selectorText:
self.seq.append(s)
self.seq.append(newSelector)
return newSelector
def _getSelectorText(self): def _getSelectorText(self):
"returns serialized format" "Return serialized format."
return cssutils.ser.do_css_SelectorList(self) return cssutils.ser.do_css_SelectorList(self)
def _setSelectorText(self, selectorText): def _setSelectorText(self, selectorText):
@ -121,14 +156,14 @@ class SelectorList(cssutils.util.Base, cssutils.util.ListSeq):
:param selectorText: :param selectorText:
comma-separated list of selectors or a tuple of comma-separated list of selectors or a tuple of
(selectorText, dict-of-namespaces) (selectorText, dict-of-namespaces)
:Exceptions: :exceptions:
- `NAMESPACE_ERR`: (Selector) - :exc:`~xml.dom.NamespaceErr`:
Raised if the specified selector uses an unknown namespace Raised if the specified selector uses an unknown namespace
prefix. prefix.
- `SYNTAX_ERR`: (self) - :exc:`~xml.dom.SyntaxErr`:
Raised if the specified CSS string value has a syntax error Raised if the specified CSS string value has a syntax error
and is unparsable. and is unparsable.
- `NO_MODIFICATION_ALLOWED_ERR`: (self) - :exc:`~xml.dom.NoModificationAllowedErr`:
Raised if this rule is readonly. Raised if this rule is readonly.
""" """
self._checkReadonly() self._checkReadonly()
@ -184,66 +219,12 @@ class SelectorList(cssutils.util.Base, cssutils.util.ListSeq):
doc="""(cssutils) The textual representation of the selector for doc="""(cssutils) The textual representation of the selector for
a rule set.""") a rule set.""")
length = property(lambda self: len(self),
doc="The number of :class:`~cssutils.css.Selector` objects in the list.")
parentRule = property(lambda self: self._parentRule,
doc="(DOM) The CSS rule that contains this SelectorList or "
"``None`` if this SelectorList is not attached to a CSSRule.")
wellformed = property(lambda self: bool(len(self.seq))) wellformed = property(lambda self: bool(len(self.seq)))
def appendSelector(self, newSelector):
"""
Append newSelector (a string will be converted to a new
Selector).
:param newSelector:
comma-separated list of selectors or a tuple of
(selectorText, dict-of-namespaces)
:returns: New Selector or None if newSelector is not wellformed.
:Exceptions:
- `NAMESPACE_ERR`: (self)
Raised if the specified selector uses an unknown namespace
prefix.
- `SYNTAX_ERR`: (self)
Raised if the specified CSS string value has a syntax error
and is unparsable.
- `NO_MODIFICATION_ALLOWED_ERR`: (self)
Raised if this rule is readonly.
"""
self._checkReadonly()
# might be (selectorText, namespaces)
newSelector, namespaces = self._splitNamespacesOff(newSelector)
try:
# use parent's only if available
namespaces = self.parentRule.parentStyleSheet.namespaces
except AttributeError:
# use already present namespaces plus new given ones
_namespaces = self._namespaces
_namespaces.update(namespaces)
namespaces = _namespaces
newSelector = self.__prepareset(newSelector, namespaces)
if newSelector:
seq = self.seq[:]
del self.seq[:]
for s in seq:
if s.selectorText != newSelector.selectorText:
self.seq.append(s)
self.seq.append(newSelector)
return newSelector
def __repr__(self):
if self._namespaces:
st = (self.selectorText, self._namespaces)
else:
st = self.selectorText
return "cssutils.css.%s(selectorText=%r)" % (
self.__class__.__name__, st)
def __str__(self):
return "<cssutils.css.%s object selectorText=%r _namespaces=%r at 0x%x>" % (
self.__class__.__name__, self.selectorText, self._namespaces,
id(self))
def _getUsedUris(self):
"used by CSSStyleSheet to check if @namespace rules are needed"
uris = set()
for s in self:
uris.update(s._getUsedUris())
return uris

View File

@ -12,42 +12,33 @@ open issues
""" """
__all__ = ['CSSProductions', 'MACROS', 'PRODUCTIONS'] __all__ = ['CSSProductions', 'MACROS', 'PRODUCTIONS']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: cssproductions.py 1378 2008-07-15 20:02:19Z cthedot $' __version__ = '$Id: cssproductions.py 1537 2008-12-03 14:37:10Z cthedot $'
# a complete list of css3 macros # a complete list of css3 macros
MACROS = { MACROS = {
'ident': r'[-]?{nmstart}{nmchar}*',
'name': r'{nmchar}+',
'nmstart': r'[_a-zA-Z]|{nonascii}|{escape}',
'nonascii': r'[^\0-\177]', 'nonascii': r'[^\0-\177]',
'unicode': r'\\[0-9a-f]{1,6}(?:{nl}|{wc})?', 'unicode': r'\\[0-9a-f]{1,6}(?:{nl}|{s})?',
# 'escape': r'{unicode}|\\[ -~\200-\4177777]',
'escape': r'{unicode}|\\[ -~\200-\777]', 'escape': r'{unicode}|\\[ -~\200-\777]',
# 'escape': r'{unicode}|\\[ -~\200-\4177777]', 'nmstart': r'[_a-zA-Z]|{nonascii}|{escape}',
'nmchar': r'[-_a-zA-Z0-9]|{nonascii}|{escape}', 'nmchar': r'[-_a-zA-Z0-9]|{nonascii}|{escape}',
'string1': r'"([^\n\r\f\\"]|\\{nl}|{escape})*"',
'num': r'[0-9]*\.[0-9]+|[0-9]+', #r'[-]?\d+|[-]?\d*\.\d+', 'string2': r"'([^\n\r\f\\']|\\{nl}|{escape})*'",
'string': r"""\'({stringesc1}|{stringchar}|")*\'""" + "|" + '''\"({stringesc2}|{stringchar}|')*\"''',
# seems an error in CSS 3 but is allowed in CSS 2.1
'stringesc1' : r"\\'",
'stringesc2' : r'\\"',
'stringchar': r'{urlchar}| |\\{nl}',
# urlchar ::= [#x9#x21#x23-#x26#x27-#x7E] | nonascii | escape
# 0x27 is "'" which should not be in here..., should ) be in here???
'urlchar': r'[\x09\x21\x23-\x26\x28-\x7E]|{nonascii}|{escape}',
# from CSS2.1
'invalid': r'{invalid1}|{invalid2}',
'invalid1': r'\"([^\n\r\f\\"]|\\{nl}|{escape})*', 'invalid1': r'\"([^\n\r\f\\"]|\\{nl}|{escape})*',
'invalid2': r"\'([^\n\r\f\\']|\\{nl}|{escape})*", 'invalid2': r"\'([^\n\r\f\\']|\\{nl}|{escape})*",
# \r\n should be counted as one char see unicode above
'nl': r'\n|\r\n|\r|\f',
'w': r'{wc}*',
'wc': r'\t|\r|\n|\f|\x20',
'comment': r'\/\*[^*]*\*+([^/][^*]*\*+)*\/', 'comment': r'\/\*[^*]*\*+([^/][^*]*\*+)*\/',
'ident': r'[-]?{nmstart}{nmchar}*',
'name': r'{nmchar}+',
'num': r'[0-9]*\.[0-9]+|[0-9]+', #r'[-]?\d+|[-]?\d*\.\d+',
'string': r'{string1}|{string2}',
# from CSS2.1
'invalid': r'{invalid1}|{invalid2}',
'url': r'[\x09\x21\x23-\x26\x28\x2a-\x7E]|{nonascii}|{escape}',
's': r'\t|\r|\n|\f|\x20',
'w': r'{s}*',
'nl': r'\n|\r\n|\r|\f',
'A': r'A|a|\\0{0,4}(?:41|61)(?:\r\n|[ \t\r\n\f])?', 'A': r'A|a|\\0{0,4}(?:41|61)(?:\r\n|[ \t\r\n\f])?',
'C': r'C|c|\\0{0,4}(?:43|63)(?:\r\n|[ \t\r\n\f])?', 'C': r'C|c|\\0{0,4}(?:43|63)(?:\r\n|[ \t\r\n\f])?',
@ -77,8 +68,8 @@ MACROS = {
PRODUCTIONS = [ PRODUCTIONS = [
('BOM', r'\xFEFF'), # will only be checked at beginning of CSS ('BOM', r'\xFEFF'), # will only be checked at beginning of CSS
('S', r'{wc}+'), # 1st in list of general productions ('S', r'{s}+'), # 1st in list of general productions
('URI', r'{U}{R}{L}\({w}({string}|{urlchar}*){w}\)'), ('URI', r'{U}{R}{L}\({w}({string}|{url}*){w}\)'),
('FUNCTION', r'{ident}\('), ('FUNCTION', r'{ident}\('),
('IDENT', r'{ident}'), ('IDENT', r'{ident}'),
('STRING', r'{string}'), ('STRING', r'{string}'),

View File

@ -16,12 +16,12 @@ log
""" """
__all__ = ['ErrorHandler'] __all__ = ['ErrorHandler']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: errorhandler.py 1361 2008-07-13 18:12:40Z cthedot $' __version__ = '$Id: errorhandler.py 1560 2008-12-14 16:13:16Z cthedot $'
from helper import Deprecated
import logging import logging
import urllib2 import urllib2
import xml.dom import xml.dom
from helper import Deprecated
class _ErrorHandler(object): class _ErrorHandler(object):
""" """
@ -74,17 +74,22 @@ class _ErrorHandler(object):
handles all calls handles all calls
logs or raises exception logs or raises exception
""" """
line, col = None, None
if token: if token:
if isinstance(token, tuple): if isinstance(token, tuple):
msg = u'%s [%s:%s: %s]' % ( value, line, col = token[1], token[2], token[3]
msg, token[2], token[3], token[1])
else: else:
msg = u'%s [%s:%s: %s]' % ( value, line, col = token.value, token.line, token.col
msg, token.line, token.col, token.value) msg = u'%s [%s:%s: %s]' % (
msg, line, col, value)
if error and self.raiseExceptions and not neverraise: if error and self.raiseExceptions and not neverraise:
if isinstance(error, urllib2.HTTPError) or isinstance(error, urllib2.URLError): if isinstance(error, urllib2.HTTPError) or isinstance(error, urllib2.URLError):
raise error raise
elif issubclass(error, xml.dom.DOMException):
error.line = line
error.col = col
raise error(msg, line, col)
else: else:
raise error(msg) raise error(msg)
else: else:

View File

@ -1,6 +1,5 @@
"""cssutils helper """cssutils helper
""" """
__all__ = ['Deprecated', 'normalize']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: errorhandler.py 1234 2008-05-22 20:26:12Z cthedot $' __version__ = '$Id: errorhandler.py 1234 2008-05-22 20:26:12Z cthedot $'
@ -32,7 +31,6 @@ class Deprecated(object):
# simple escapes, all non unicodes # simple escapes, all non unicodes
_simpleescapes = re.compile(ur'(\\[^0-9a-fA-F])').sub _simpleescapes = re.compile(ur'(\\[^0-9a-fA-F])').sub
def normalize(x): def normalize(x):
""" """
normalizes x, namely: normalizes x, namely:
@ -49,3 +47,81 @@ def normalize(x):
return x.lower() return x.lower()
else: else:
return x return x
def pushtoken(token, tokens):
"""Return new generator starting with token followed by all tokens in
``tokens``"""
# TODO: may use itertools.chain?
yield token
for x in tokens:
yield x
def string(value):
"""
Serialize value with quotes e.g.::
``a \'string`` => ``'a \'string'``
"""
# \n = 0xa, \r = 0xd, \f = 0xc
value = value.replace(u'\n', u'\\a ').replace(
u'\r', u'\\d ').replace(
u'\f', u'\\c ').replace(
u'"', u'\\"')
return u'"%s"' % value
def stringvalue(string):
"""
Retrieve actual value of string without quotes. Escaped
quotes inside the value are resolved, e.g.::
``'a \'string'`` => ``a 'string``
"""
return string.replace('\\'+string[0], string[0])[1:-1]
_match_forbidden_in_uri = re.compile(ur'''.*?[\(\)\s\;,'"]''', re.U).match
def uri(value):
"""
Serialize value by adding ``url()`` and with quotes if needed e.g.::
``"`` => ``url("\"")``
"""
if _match_forbidden_in_uri(value):
value = string(value)
return u'url(%s)' % value
def urivalue(uri):
"""
Return actual content without surrounding "url(" and ")"
and removed surrounding quotes too including contained
escapes of quotes, e.g.::
``url("\"")`` => ``"``
"""
uri = uri[uri.find('(')+1:-1].strip()
if uri and (uri[0] in '\'"') and (uri[0] == uri[-1]):
return stringvalue(uri)
else:
return uri
def normalnumber(num):
"""
Return normalized number as string.
"""
sign = ''
if num.startswith('-'):
sign = '-'
num = num[1:]
elif num.startswith('+'):
num = num[1:]
if float(num) == 0.0:
return '0'
else:
if num.find('.') == -1:
return sign + str(int(num))
else:
a, b = num.split('.')
if not a:
a = '0'
return '%s%s.%s' % (sign, int(a), b)

View File

@ -1,31 +1,26 @@
#!/usr/bin/env python #!/usr/bin/env python
"""a validating CSSParser """A validating CSSParser"""
"""
__all__ = ['CSSParser'] __all__ = ['CSSParser']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: parse.py 1418 2008-08-09 19:27:50Z cthedot $' __version__ = '$Id: parse.py 1656 2009-02-03 20:31:06Z cthedot $'
import codecs
import os
import urllib
from helper import Deprecated from helper import Deprecated
import tokenize2 import codecs
import cssutils import cssutils
import os
import tokenize2
import urllib
class CSSParser(object): class CSSParser(object):
""" """Parse a CSS StyleSheet from URL, string or file and return a DOM Level 2
parses a CSS StyleSheet string or file and CSS StyleSheet object.
returns a DOM Level 2 CSS StyleSheet object
Usage:: Usage::
parser = CSSParser() parser = CSSParser()
# optionally # optionally
parser.setFetcher(fetcher) parser.setFetcher(fetcher)
sheet = parser.parseFile('test1.css', 'ascii') sheet = parser.parseFile('test1.css', 'ascii')
print sheet.cssText print sheet.cssText
""" """
def __init__(self, log=None, loglevel=None, raiseExceptions=None, def __init__(self, log=None, loglevel=None, raiseExceptions=None,
@ -40,7 +35,7 @@ class CSSParser(object):
parsing. Later while working with the resulting sheets parsing. Later while working with the resulting sheets
the setting used in cssutils.log.raiseExeptions is used the setting used in cssutils.log.raiseExeptions is used
fetcher fetcher
see ``setFetchUrl(fetcher)`` see ``setFetcher(fetcher)``
""" """
if log is not None: if log is not None:
cssutils.log.setLog(log) cssutils.log.setLog(log)
@ -69,26 +64,28 @@ class CSSParser(object):
def parseString(self, cssText, encoding=None, href=None, media=None, def parseString(self, cssText, encoding=None, href=None, media=None,
title=None): title=None):
"""Return parsed CSSStyleSheet from given string cssText. """Parse `cssText` as :class:`~cssutils.css.CSSStyleSheet`.
Raises errors during retrieving (e.g. UnicodeDecodeError). Errors may be raised (e.g. UnicodeDecodeError).
cssText :param cssText:
CSS string to parse CSS string to parse
encoding :param encoding:
If ``None`` the encoding will be read from BOM or an @charset If ``None`` the encoding will be read from BOM or an @charset
rule or defaults to UTF-8. rule or defaults to UTF-8.
If given overrides any found encoding including the ones for If given overrides any found encoding including the ones for
imported sheets. imported sheets.
It also will be used to decode ``cssText`` if given as a (byte) It also will be used to decode `cssText` if given as a (byte)
string. string.
href :param href:
The href attribute to assign to the parsed style sheet. The ``href`` attribute to assign to the parsed style sheet.
Used to resolve other urls in the parsed sheet like @import hrefs Used to resolve other urls in the parsed sheet like @import hrefs.
media :param media:
The media attribute to assign to the parsed style sheet The ``media`` attribute to assign to the parsed style sheet
(may be a MediaList, list or a string) (may be a MediaList, list or a string).
title :param title:
The title attribute to assign to the parsed style sheet The ``title`` attribute to assign to the parsed style sheet.
:returns:
:class:`~cssutils.css.CSSStyleSheet`.
""" """
self.__parseSetting(True) self.__parseSetting(True)
if isinstance(cssText, str): if isinstance(cssText, str):
@ -107,23 +104,23 @@ class CSSParser(object):
def parseFile(self, filename, encoding=None, def parseFile(self, filename, encoding=None,
href=None, media=None, title=None): href=None, media=None, title=None):
"""Retrieve and return a CSSStyleSheet from given filename. """Retrieve content from `filename` and parse it. Errors may be raised
Raises errors during retrieving (e.g. IOError). (e.g. IOError).
filename :param filename:
of the CSS file to parse, if no ``href`` is given filename is of the CSS file to parse, if no `href` is given filename is
converted to a (file:) URL and set as ``href`` of resulting converted to a (file:) URL and set as ``href`` of resulting
stylesheet. stylesheet.
If href is given it is set as ``sheet.href``. Either way If `href` is given it is set as ``sheet.href``. Either way
``sheet.href`` is used to resolve e.g. stylesheet imports via ``sheet.href`` is used to resolve e.g. stylesheet imports via
@import rules. @import rules.
encoding :param encoding:
Value ``None`` defaults to encoding detection via BOM or an Value ``None`` defaults to encoding detection via BOM or an
@charset rule. @charset rule.
Other values override detected encoding for the sheet at Other values override detected encoding for the sheet at
``filename`` including any imported sheets. `filename` including any imported sheets.
:returns:
for other parameters see ``parseString`` :class:`~cssutils.css.CSSStyleSheet`.
""" """
if not href: if not href:
# prepend // for file URL, urllib does not do this? # prepend // for file URL, urllib does not do this?
@ -134,19 +131,19 @@ class CSSParser(object):
href=href, media=media, title=title) href=href, media=media, title=title)
def parseUrl(self, href, encoding=None, media=None, title=None): def parseUrl(self, href, encoding=None, media=None, title=None):
"""Retrieve and return a CSSStyleSheet from given href (an URL). """Retrieve content from URL `href` and parse it. Errors may be raised
In case of any errors while reading the URL returns None. (e.g. URLError).
href :param href:
URL of the CSS file to parse, will also be set as ``href`` of URL of the CSS file to parse, will also be set as ``href`` of
resulting stylesheet resulting stylesheet
encoding :param encoding:
Value ``None`` defaults to encoding detection via HTTP, BOM or an Value ``None`` defaults to encoding detection via HTTP, BOM or an
@charset rule. @charset rule.
A value overrides detected encoding for the sheet at ``href`` A value overrides detected encoding for the sheet at ``href``
including any imported sheets. including any imported sheets.
:returns:
for other parameters see ``parseString`` :class:`~cssutils.css.CSSStyleSheet`.
""" """
encoding, enctype, text = cssutils.util._readUrl(href, encoding, enctype, text = cssutils.util._readUrl(href,
overrideEncoding=encoding) overrideEncoding=encoding)
@ -160,20 +157,24 @@ class CSSParser(object):
def setFetcher(self, fetcher=None): def setFetcher(self, fetcher=None):
"""Replace the default URL fetch function with a custom one. """Replace the default URL fetch function with a custom one.
The fetcher function gets a single parameter
``url`` :param fetcher:
the URL to read A function which gets a single parameter
and returns ``(encoding, content)`` where ``encoding`` is the HTTP ``url``
charset normally given via the Content-Type header (which may simply the URL to read
omit the charset) and ``content`` being the (byte) string content.
The Mimetype should be 'text/css' but this has to be checked by the
fetcher itself (the default fetcher emits a warning if encountering
a different mimetype).
Calling ``setFetcher`` with ``fetcher=None`` resets cssutils and must return ``(encoding, content)`` where ``encoding`` is the
to use its default function. HTTP charset normally given via the Content-Type header (which may
simply omit the charset in which case ``encoding`` would be
``None``) and ``content`` being the string (or unicode) content.
The Mimetype should be 'text/css' but this has to be checked by the
fetcher itself (the default fetcher emits a warning if encountering
a different mimetype).
Calling ``setFetcher`` with ``fetcher=None`` resets cssutils
to use its default function.
""" """
self.__fetcher = fetcher self.__fetcher = fetcher

View File

@ -19,100 +19,152 @@ __docformat__ = 'restructuredtext'
__version__ = '$Id: parse.py 1418 2008-08-09 19:27:50Z cthedot $' __version__ = '$Id: parse.py 1418 2008-08-09 19:27:50Z cthedot $'
import cssutils import cssutils
import sys
class ParseError(Exception): class ParseError(Exception):
"""Base Exception class for ProdParser (used internally).""" """Base Exception class for ProdParser (used internally)."""
pass pass
class Done(ParseError):
"""Raised if Sequence or Choice is finished and no more Prods left."""
pass
class Exhausted(ParseError): class Exhausted(ParseError):
"""Raised if Sequence or Choice is done.""" """Raised if Sequence or Choice is finished but token is given."""
pass
class Missing(ParseError):
"""Raised if Sequence or Choice is not finished but no matching token given."""
pass pass
class NoMatch(ParseError): class NoMatch(ParseError):
"""Raised if Sequence or Choice do not match.""" """Raised if nothing in Sequence or Choice does match."""
pass
class MissingToken(ParseError):
"""Raised if Sequence or Choice are not exhausted."""
pass pass
class Choice(object): class Choice(object):
"""A Choice of productions (Sequence or single Prod).""" """A Choice of productions (Sequence or single Prod)."""
def __init__(self, prods):
def __init__(self, *prods, **options):
""" """
prods *prods
Prod or Sequence objects Prod or Sequence objects
options:
optional=False
""" """
self._prods = prods self._prods = prods
try:
self.optional = options['optional']
except KeyError, e:
for p in self._prods:
if p.optional:
self.optional = True
break
else:
self.optional = False
self.reset()
def reset(self):
"""Start Choice from zero"""
self._exhausted = False self._exhausted = False
def matches(self, token):
"""Check if token matches"""
for prod in self._prods:
if prod.matches(token):
return True
return False
def nextProd(self, token): def nextProd(self, token):
""" """
Return: Return:
- next matching Prod or Sequence - next matching Prod or Sequence
- raises ParseError if nothing matches - ``None`` if any Prod or Sequence is optional and no token matched
- raises Exhausted if choice already done - raise ParseError if nothing matches and all are mandatory
- raise Exhausted if choice already done
``token`` may be None but this occurs when no tokens left.""" ``token`` may be None but this occurs when no tokens left."""
if not self._exhausted: if not self._exhausted:
optional = False
for x in self._prods: for x in self._prods:
if isinstance(x, Prod): if x.matches(token):
test = x self._exhausted = True
else: x.reset()
# nested Sequence matches if 1st prod matches return x
test = x.first() elif x.optional:
try: optional = True
if test.matches(token):
self._exhausted = True
return x
except ParseError, e:
# do not raise if other my match
continue
else: else:
# None matched if not optional:
raise ParseError(u'No match in choice') # None matched but also None is optional
else: raise ParseError(u'No match in %s' % self)
elif token:
raise Exhausted(u'Extra token') raise Exhausted(u'Extra token')
def __str__(self):
return u'Choice(%s)' % u', '.join([str(x) for x in self._prods])
class Sequence(object): class Sequence(object):
"""A Sequence of productions (Choice or single Prod).""" """A Sequence of productions (Choice or single Prod)."""
def __init__(self, prods, minmax=None): def __init__(self, *prods, **options):
""" """
prods *prods
Prod or Sequence objects Prod or Sequence objects
minmax = lambda: (1, 1) **options:
callback returning number of times this sequence may run minmax = lambda: (1, 1)
callback returning number of times this sequence may run
""" """
self._prods = prods self._prods = prods
if not minmax: try:
minmax = options['minmax']
except KeyError:
minmax = lambda: (1, 1) minmax = lambda: (1, 1)
self._min, self._max = minmax() self._min, self._max = minmax()
if self._max is None:
# unlimited
try:
# py2.6/3
self._max = sys.maxsize
except AttributeError:
# py<2.6
self._max = sys.maxint
self._number = len(self._prods) self._prodcount = len(self._prods)
self._round = 1 # 1 based! self.reset()
self._pos = 0
def first(self): def matches(self, token):
"""Return 1st element of Sequence, used by Choice""" """Called by Choice to try to find if Sequence matches."""
# TODO: current impl first only if 1st if an prod!
for prod in self._prods: for prod in self._prods:
if not prod.optional: if prod.matches(token):
return prod return True
try:
if not prod.optional:
break
except AttributeError:
pass
return False
def reset(self):
"""Reset this Sequence if it is nested."""
self._roundstarted = False
self._i = 0
self._round = 0
def _currentName(self): def _currentName(self):
"""Return current element of Sequence, used by name""" """Return current element of Sequence, used by name"""
# TODO: current impl first only if 1st if an prod! # TODO: current impl first only if 1st if an prod!
for prod in self._prods[self._pos:]: for prod in self._prods[self._i:]:
if not prod.optional: if not prod.optional:
return prod.name return str(prod)
else: else:
return 'Unknown' return 'Sequence'
name = property(_currentName, doc='Used for Error reporting') optional = property(lambda self: self._min == 0)
def nextProd(self, token): def nextProd(self, token):
"""Return """Return
@ -121,51 +173,53 @@ class Sequence(object):
- raises ParseError if nothing matches - raises ParseError if nothing matches
- raises Exhausted if sequence already done - raises Exhausted if sequence already done
""" """
while self._pos < self._number: while self._round < self._max:
x = self._prods[self._pos] # for this round
thisround = self._round i = self._i
round = self._round
p = self._prods[i]
if i == 0:
self._roundstarted = False
self._pos += 1 # for next round
if self._pos == self._number: self._i += 1
if self._round < self._max: if self._i == self._prodcount:
# new round? self._round += 1
self._pos = 0 self._i = 0
self._round += 1
if isinstance(x, Prod): if p.matches(token):
if not token and (x.optional or thisround > self._min): self._roundstarted = True
# token is None if nothing expected # reset nested Choice or Prod to use from start
raise Exhausted() p.reset()
elif not token and not x.optional: return p
raise MissingToken(u'Missing token for production %s'
% x.name) elif p.optional:
elif x.matches(token): continue
return x
elif x.optional: elif round < self._min:
# try next raise Missing(u'Missing token for production %s' % p)
continue
# elif thisround > self._min: elif not token:
# # minimum done if self._roundstarted:
# self._round = self._max raise Missing(u'Missing token for production %s' % p)
# self._pos = self._number
# return None
else: else:
# should have matched raise Done()
raise NoMatch(u'No matching production for token')
else: else:
# nested Sequence or Choice raise NoMatch(u'No matching production for token')
return x
# Sequence is exhausted if token:
if self._round >= self._max:
raise Exhausted(u'Extra token') raise Exhausted(u'Extra token')
def __str__(self):
return u'Sequence(%s)' % u', '.join([str(x) for x in self._prods])
class Prod(object): class Prod(object):
"""Single Prod in Sequence or Choice.""" """Single Prod in Sequence or Choice."""
def __init__(self, name, match, toSeq=None, toStore=None, def __init__(self, name, match, optional=False,
optional=False): toSeq=None, toStore=None,
stop=False, nextSor=False, mayEnd=False):
""" """
name name
name used for error reporting name used for error reporting
@ -173,16 +227,24 @@ class Prod(object):
function called with parameters tokentype and tokenvalue function called with parameters tokentype and tokenvalue
returning True, False or raising ParseError returning True, False or raising ParseError
toSeq callback (optional) toSeq callback (optional)
if given calling toSeq(token) will be appended to seq calling toSeq(token, tokens) returns (type_, val) == (token[0], token[1])
else simply seq to be appended to seq else simply unaltered (type_, val)
toStore (optional) toStore (optional)
key to save util.Item to store or callback(store, util.Item) key to save util.Item to store or callback(store, util.Item)
optional = False optional = False
wether Prod is optional or not wether Prod is optional or not
stop = False
if True stop parsing of tokens here
mayEnd = False
no token must follow even defined by Sequence.
Used for operator ',/ ' currently only
""" """
self.name = name self._name = name
self.match = match self.match = match
self.optional=optional self.optional = optional
self.stop = stop
self.nextSor = nextSor
self.mayEnd = mayEnd
def makeToStore(key): def makeToStore(key):
"Return a function used by toStore." "Return a function used by toStore."
@ -198,9 +260,9 @@ class Prod(object):
# called: seq.append(toSeq(value)) # called: seq.append(toSeq(value))
self.toSeq = toSeq self.toSeq = toSeq
else: else:
self.toSeq = lambda val: val self.toSeq = lambda t, tokens: (t[0], t[1])
if callable(toStore): if hasattr(toStore, '__call__'):
self.toStore = toStore self.toStore = toStore
elif toStore: elif toStore:
self.toStore = makeToStore(toStore) self.toStore = makeToStore(toStore)
@ -210,12 +272,20 @@ class Prod(object):
def matches(self, token): def matches(self, token):
"""Return if token matches.""" """Return if token matches."""
if not token:
return False
type_, val, line, col = token type_, val, line, col = token
return self.match(type_, val) return self.match(type_, val)
def reset(self):
pass
def __str__(self):
return self._name
def __repr__(self): def __repr__(self):
return "<cssutils.prodsparser.%s object name=%r at 0x%x>" % ( return "<cssutils.prodsparser.%s object name=%r at 0x%x>" % (
self.__class__.__name__, self.name, id(self)) self.__class__.__name__, self._name, id(self))
class ProdParser(object): class ProdParser(object):
@ -225,6 +295,70 @@ class ProdParser(object):
self._log = cssutils.log self._log = cssutils.log
self._tokenizer = cssutils.tokenize2.Tokenizer() self._tokenizer = cssutils.tokenize2.Tokenizer()
def _texttotokens(self, text):
"""Build a generator which is the only thing that is parsed!
old classes may use lists etc
"""
if isinstance(text, basestring):
# to tokenize strip space
tokens = self._tokenizer.tokenize(text.strip())
elif isinstance(text, tuple):
# (token, tokens) or a single token
if len(text) == 2:
# (token, tokens)
def gen(token, tokens):
"new generator appending token and tokens"
yield token
for t in tokens:
yield t
tokens = (t for t in gen(*text))
else:
# single token
tokens = (t for t in [text])
elif isinstance(text, list):
# generator from list
tokens = (t for t in text)
else:
# already tokenized, assume generator
tokens = text
return tokens
def _SorTokens(self, tokens, until=',/'):
"""New tokens generator which has S tokens removed,
if followed by anything in ``until``, normally a ``,``."""
def removedS(tokens):
for token in tokens:
if token[0] == self.types.S:
try:
next_ = tokens.next()
except StopIteration:
yield token
else:
if next_[1] in until:
# omit S as e.g. ``,`` has been found
yield next_
elif next_[0] == self.types.COMMENT:
# pass COMMENT
yield next_
else:
yield token
yield next_
elif token[0] == self.types.COMMENT:
# pass COMMENT
yield token
else:
yield token
break
# normal mode again
for token in tokens:
yield token
return (token for token in removedS(tokens))
def parse(self, text, name, productions, store=None): def parse(self, text, name, productions, store=None):
""" """
text (or token generator) text (or token generator)
@ -255,129 +389,140 @@ class ProdParser(object):
:store: filled keys defined by Prod.toStore :store: filled keys defined by Prod.toStore
:unusedtokens: token generator containing tokens not used yet :unusedtokens: token generator containing tokens not used yet
""" """
if isinstance(text, basestring): tokens = self._texttotokens(text)
# to tokenize if not tokens:
tokens = self._tokenizer.tokenize(text) self._log.error(u'No content to parse.')
elif isinstance(text, tuple): # TODO: return???
# (token, tokens) or a single token
if len(text) == 2:
# (token, tokens)
def gen(token, tokens):
"new generator appending token and tokens"
yield token
for t in tokens:
yield t
tokens = (t for t in gen(*text))
else:
# single token
tokens = [text]
else:
# already tokenized, assume generator
tokens = text
# a new seq to append all Items to
seq = cssutils.util.Seq(readonly=False) seq = cssutils.util.Seq(readonly=False)
if not store: # store for specific values
# store for specific values
if not store:
store = {} store = {}
# store['_raw'] = [] prods = [productions] # stack of productions
# stack of productions
prods = [productions]
wellformed = True wellformed = True
for token in tokens:
# while no real token is found any S are ignored
started = False
prod = None
# flag if default S handling should be done
defaultS = True
while True:
try:
token = tokens.next()
except StopIteration:
break
type_, val, line, col = token type_, val, line, col = token
# store['_raw'].append(val)
# default productions # default productions
if type_ == self.types.S: if type_ == self.types.COMMENT:
# always append S?
seq.append(val, type_, line, col)
elif type_ == self.types.COMMENT:
# always append COMMENT # always append COMMENT
seq.append(val, type_, line, col) seq.append(cssutils.css.CSSComment(val),
cssutils.css.CSSComment, line, col)
elif defaultS and type_ == self.types.S:
# append S (but ignore starting ones)
if started:
seq.append(val, type_, line, col)
else:
continue
# elif type_ == self.types.ATKEYWORD: # elif type_ == self.types.ATKEYWORD:
# # @rule # # @rule
# r = cssutils.css.CSSUnknownRule(cssText=val) # r = cssutils.css.CSSUnknownRule(cssText=val)
# seq.append(r, type(r), line, col) # seq.append(r, type(r), line, col)
elif type_ == self.types.EOF: elif type_ == self.types.INVALID:
# do nothing # invalidate parse
wellformed = False
self._log.error(u'Invalid token: %r' % (token,))
break
elif type_ == 'EOF':
# do nothing? (self.types.EOF == True!)
pass pass
# next = 'EOF'
else: else:
# check prods started = True # check S now
nextSor = False # reset
try: try:
while True: while True:
# find next matching production # find next matching production
try: try:
prod = prods[-1].nextProd(token) prod = prods[-1].nextProd(token)
except (NoMatch, Exhausted), e: except (Exhausted, NoMatch), e:
# try next # try next
prod = None prod = None
if isinstance(prod, Prod): if isinstance(prod, Prod):
# found actual Prod, not a Choice or Sequence
break break
elif not prod: elif prod:
if len(prods) > 1:
# nested exhausted, next in parent
prods.pop()
else:
raise Exhausted('Extra token')
else:
# nested Sequence, Choice # nested Sequence, Choice
prods.append(prod) prods.append(prod)
else:
# nested exhausted, try in parent
if len(prods) > 1:
prods.pop()
else:
raise ParseError('No match')
except ParseError, e: except ParseError, e:
wellformed = False wellformed = False
self._log.error(u'%s: %s: %r' % (name, e, token)) self._log.error(u'%s: %s: %r' % (name, e, token))
break
else: else:
# process prod # process prod
if prod.toSeq: if prod.toSeq:
seq.append(prod.toSeq(val), type_, line, col) type_, val = prod.toSeq(token, tokens)
else: if val is not None:
seq.append(val, type_, line, col) seq.append(val, type_, line, col)
if prod.toStore: if prod.toStore:
prod.toStore(store, seq[-1]) prod.toStore(store, seq[-1])
if prod.stop: # EOF?
# stop here and ignore following tokens
break
if prod.nextSor:
# following is S or other token (e.g. ",")?
# remove S if
tokens = self._SorTokens(tokens, ',/')
defaultS = False
else:
defaultS = True
# if 'STOP' == next: # EOF? lastprod = prod
# # stop here and ignore following tokens
# break
while True: while True:
# all productions exhausted? # all productions exhausted?
try: try:
prod = prods[-1].nextProd(token=None) prod = prods[-1].nextProd(token=None)
except Exhausted, e: except Done, e:
prod = None # ok # ok
except (MissingToken, NoMatch), e: prod = None
wellformed = False
self._log.error(u'%s: %s'
% (name, e))
else:
try:
if prod.optional:
# ignore optional ones
continue
except AttributeError:
pass
if prod: except Missing, e:
prod = None
# last was a S operator which may End a Sequence, then ok
if hasattr(lastprod, 'mayEnd') and not lastprod.mayEnd:
wellformed = False
self._log.error(u'%s: %s' % (name, e))
except ParseError, e:
prod = None
wellformed = False
self._log.error(u'%s: %s' % (name, e))
else:
if prods[-1].optional:
prod = None
elif prod and prod.optional:
# ignore optional
continue
if prod and not prod.optional:
wellformed = False wellformed = False
self._log.error(u'%s: Missing token for production %r' self._log.error(u'%s: Missing token for production %r'
% (name, prod.name)) % (name, str(prod)))
break
elif len(prods) > 1: elif len(prods) > 1:
# nested exhausted, next in parent # nested exhausted, next in parent
prods.pop() prods.pop()
else: else:
break break
# bool, Seq, None or generator # trim S from end
seq.rstrip()
return wellformed, seq, store, tokens return wellformed, seq, store, tokens
@ -385,18 +530,108 @@ class PreDef(object):
"""Predefined Prod definition for use in productions definition """Predefined Prod definition for use in productions definition
for ProdParser instances. for ProdParser instances.
""" """
@staticmethod types = cssutils.cssproductions.CSSProductions
def comma():
","
return Prod(name=u'comma', match=lambda t, v: v == u',')
@staticmethod @staticmethod
def funcEnd(): def CHAR(name='char', char=u',', toSeq=None, toStore=None, stop=False,
nextSor=False):
"any CHAR"
return Prod(name=name, match=lambda t, v: v == char,
toSeq=toSeq,
toStore=toStore,
stop=stop,
nextSor=nextSor)
@staticmethod
def comma(toStore=None):
return PreDef.CHAR(u'comma', u',', toStore=toStore)
@staticmethod
def dimension(toStore=None, nextSor=False):
return Prod(name=u'dimension',
match=lambda t, v: t == PreDef.types.DIMENSION,
toStore=toStore,
toSeq=lambda t, tokens: (t[0], cssutils.helper.normalize(t[1])),
nextSor=nextSor)
@staticmethod
def function(toSeq=None, toStore=None, nextSor=False):
return Prod(name=u'function',
match=lambda t, v: t == PreDef.types.FUNCTION,
toSeq=toSeq,
toStore=toStore,
nextSor=nextSor)
@staticmethod
def funcEnd(toStore=None, stop=False, nextSor=False):
")" ")"
return Prod(name=u'end FUNC ")"', match=lambda t, v: v == u')') return PreDef.CHAR(u'end FUNC ")"', u')',
toStore=toStore,
stop=stop,
nextSor=nextSor)
@staticmethod @staticmethod
def unary(): def ident(toStore=None, nextSor=False):
return Prod(name=u'ident',
match=lambda t, v: t == PreDef.types.IDENT,
toStore=toStore,
nextSor=nextSor)
@staticmethod
def number(toStore=None, nextSor=False):
return Prod(name=u'number',
match=lambda t, v: t == PreDef.types.NUMBER,
toStore=toStore,
nextSor=nextSor)
@staticmethod
def string(toStore=None, nextSor=False):
"string delimiters are removed by default"
return Prod(name=u'string',
match=lambda t, v: t == PreDef.types.STRING,
toStore=toStore,
toSeq=lambda t, tokens: (t[0], cssutils.helper.stringvalue(t[1])),
nextSor=nextSor)
@staticmethod
def percentage(toStore=None, nextSor=False):
return Prod(name=u'percentage',
match=lambda t, v: t == PreDef.types.PERCENTAGE,
toStore=toStore,
nextSor=nextSor)
@staticmethod
def S(name=u'whitespace', optional=True, toSeq=None, toStore=None, nextSor=False,
mayEnd=False):
return Prod(name=name,
match=lambda t, v: t == PreDef.types.S,
optional=optional,
toSeq=toSeq,
toStore=toStore,
mayEnd=mayEnd)
@staticmethod
def unary(optional=True, toStore=None):
"+ or -" "+ or -"
return Prod(name=u'unary +-', match=lambda t, v: v in u'+-', return Prod(name=u'unary +-', match=lambda t, v: v in (u'+', u'-'),
optional=True) optional=optional,
toStore=toStore)
@staticmethod
def uri(toStore=None, nextSor=False):
"'url(' and ')' are removed and URI is stripped"
return Prod(name=u'URI',
match=lambda t, v: t == PreDef.types.URI,
toStore=toStore,
toSeq=lambda t, tokens: (t[0], cssutils.helper.urivalue(t[1])),
nextSor=nextSor)
@staticmethod
def hexcolor(toStore=None, toSeq=None, nextSor=False):
return Prod(name='HEX color',
match=lambda t, v: t == PreDef.types.HASH and
len(v) == 4 or len(v) == 7,
toStore=toStore,
toSeq=toSeq,
nextSor=nextSor
)

View File

@ -1,6 +1,15 @@
"""CSS profiles. Predefined are: """CSS profiles.
- 'CSS level 2' css2 is based on cssvalues
contributed by Kevin D. Smith, thanks!
"cssvalues" is used as a property validator.
it is an importable object that contains a dictionary of compiled regular
expressions. The keys of this dictionary are all of the valid CSS property
names. The values are compiled regular expressions that can be used to
validate the values for that property. (Actually, the values are references
to the 'match' method of a compiled regular expression, so that they are
simply called like functions.)
""" """
__all__ = ['profiles'] __all__ = ['profiles']
@ -10,6 +19,7 @@ __version__ = '$Id: cssproperties.py 1116 2008-03-05 13:52:23Z cthedot $'
import cssutils import cssutils
import re import re
properties = {}
""" """
Define some regular expression fragments that will be used as Define some regular expression fragments that will be used as
macros within the CSS property value regular expressions. macros within the CSS property value regular expressions.
@ -56,12 +66,13 @@ css2macros = {
'font-attrs': r'{font-style}|{font-variant}|{font-weight}', 'font-attrs': r'{font-style}|{font-variant}|{font-weight}',
'outline-attrs': r'{outline-color}|{outline-style}|{outline-width}', 'outline-attrs': r'{outline-color}|{outline-style}|{outline-width}',
'text-attrs': r'underline|overline|line-through|blink', 'text-attrs': r'underline|overline|line-through|blink',
'overflow': r'visible|hidden|scroll|auto|inherit',
} }
""" """
Define the regular expressions for validation all CSS values Define the regular expressions for validation all CSS values
""" """
css2 = { properties['css2'] = {
'azimuth': r'{angle}|(behind\s+)?(left-side|far-left|left|center-left|center|center-right|right|far-right|right-side)(\s+behind)?|behind|leftwards|rightwards|inherit', 'azimuth': r'{angle}|(behind\s+)?(left-side|far-left|left|center-left|center|center-right|right|far-right|right-side)(\s+behind)?|behind|leftwards|rightwards|inherit',
'background-attachment': r'{background-attachment}', 'background-attachment': r'{background-attachment}',
'background-color': r'{background-color}', 'background-color': r'{background-color}',
@ -137,7 +148,7 @@ css2 = {
'outline-style': r'{outline-style}', 'outline-style': r'{outline-style}',
'outline-width': r'{outline-width}', 'outline-width': r'{outline-width}',
'outline': r'{outline-attrs}(\s+{outline-attrs})*|inherit', 'outline': r'{outline-attrs}(\s+{outline-attrs})*|inherit',
'overflow': r'visible|hidden|scroll|auto|inherit', 'overflow': r'{overflow}',
'padding-top': r'{padding-width}|inherit', 'padding-top': r'{padding-width}|inherit',
'padding-right': r'{padding-width}|inherit', 'padding-right': r'{padding-width}|inherit',
'padding-bottom': r'{padding-width}|inherit', 'padding-bottom': r'{padding-width}|inherit',
@ -187,14 +198,22 @@ css3colormacros = {
# orange? # orange?
'rgbacolor': r'rgba\({w}{int}{w},{w}{int}{w},{w}{int}{w},{w}{int}{w}\)|rgba\({w}{num}%{w},{w}{num}%{w},{w}{num}%{w},{w}{num}{w}\)', 'rgbacolor': r'rgba\({w}{int}{w},{w}{int}{w},{w}{int}{w},{w}{int}{w}\)|rgba\({w}{num}%{w},{w}{num}%{w},{w}{num}%{w},{w}{num}{w}\)',
'hslcolor': r'hsl\({w}{int}{w},{w}{num}%{w},{w}{num}%{w}\)|hsla\({w}{int}{w},{w}{num}%{w},{w}{num}%{w},{w}{num}{w}\)', 'hslcolor': r'hsl\({w}{int}{w},{w}{num}%{w},{w}{num}%{w}\)|hsla\({w}{int}{w},{w}{num}%{w},{w}{num}%{w},{w}{num}{w}\)',
'x11color': r'aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen',
'uicolor': r'(ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText)',
} }
properties['css3color'] = {
css3color = {
'color': r'{namedcolor}|{hexcolor}|{rgbcolor}|{rgbacolor}|{hslcolor}|inherit', 'color': r'{namedcolor}|{hexcolor}|{rgbcolor}|{rgbacolor}|{hslcolor}|inherit',
'opacity': r'{num}|inherit' 'opacity': r'{num}|inherit'
} }
# CSS Box Module Level 3
properties['css3box'] = {
'overflow': '{overflow}\s?{overflow}?',
'overflow-x': '{overflow}',
'overflow-y': '{overflow}'
}
class NoSuchProfileException(Exception): class NoSuchProfileException(Exception):
"""Raised if no profile with given name is found""" """Raised if no profile with given name is found"""
pass pass
@ -202,17 +221,25 @@ class NoSuchProfileException(Exception):
class Profiles(object): class Profiles(object):
""" """
A dictionary of:: All profiles used for validation. ``cssutils.profiles.profiles`` is a
preset object of this class and used by all properties for validation.
profilename: { Predefined profiles are (use
propname: propvalue_regex* :meth:`~cssutils.profiles.Profiles.propertiesByProfile` to
} get a list of defined properties):
Predefined profiles are: :attr:`~cssutils.profiles.Profiles.Profiles.CSS_LEVEL_2`
Properties defined by CSS2.1
- 'CSS level 2': Properties defined by CSS2 :attr:`~cssutils.profiles.Profiles.Profiles.CSS_COLOR_LEVEL_3`
CSS 3 color properties
:attr:`~cssutils.profiles.Profiles.Profiles.CSS_BOX_LEVEL_3`
Currently overflow related properties only
""" """
CSS_LEVEL_2 = 'CSS Level 2.1'
CSS_COLOR_LEVEL_3 = 'CSS Color Module Level 3'
CSS_BOX_LEVEL_3 = 'CSS Box Module Level 3'
basicmacros = { basicmacros = {
'ident': r'[-]?{nmstart}{nmchar}*', 'ident': r'[-]?{nmstart}{nmchar}*',
'name': r'{nmchar}+', 'name': r'{nmchar}+',
@ -247,22 +274,24 @@ class Profiles(object):
'percentage': r'{num}%', 'percentage': r'{num}%',
} }
CSS_LEVEL_2 = 'CSS Level 2.1'
CSS_COLOR_LEVEL_3 = 'CSS Color Module Level 3'
def __init__(self): def __init__(self):
"""A few known profiles are predefined."""
self._log = cssutils.log self._log = cssutils.log
self._profilenames = [] # to keep order, REFACTOR! self._profilenames = [] # to keep order, REFACTOR!
self._profiles = {} self._profiles = {}
self.addProfile(self.CSS_LEVEL_2, css2, css2macros)
self.addProfile(self.CSS_COLOR_LEVEL_3, css3color, css3colormacros) self.addProfile(self.CSS_LEVEL_2, properties['css2'], css2macros)
self.addProfile(self.CSS_COLOR_LEVEL_3, properties['css3color'], css3colormacros)
self.addProfile(self.CSS_BOX_LEVEL_3, properties['css3box'])
self.__update_knownnames()
def _expand_macros(self, dictionary, macros): def _expand_macros(self, dictionary, macros):
"""Expand macros in token dictionary""" """Expand macros in token dictionary"""
def macro_value(m): def macro_value(m):
return '(?:%s)' % macros[m.groupdict()['macro']] return '(?:%s)' % macros[m.groupdict()['macro']]
for key, value in dictionary.items(): for key, value in dictionary.items():
if not callable(value): if not hasattr(value, '__call__'):
while re.search(r'{[a-z][a-z0-9-]*}', value): while re.search(r'{[a-z][a-z0-9-]*}', value):
value = re.sub(r'{(?P<macro>[a-z][a-z0-9-]*)}', value = re.sub(r'{(?P<macro>[a-z][a-z0-9-]*)}',
macro_value, value) macro_value, value)
@ -272,23 +301,31 @@ class Profiles(object):
def _compile_regexes(self, dictionary): def _compile_regexes(self, dictionary):
"""Compile all regular expressions into callable objects""" """Compile all regular expressions into callable objects"""
for key, value in dictionary.items(): for key, value in dictionary.items():
if not callable(value): if not hasattr(value, '__call__'):
value = re.compile('^(?:%s)$' % value, re.I).match value = re.compile('^(?:%s)$' % value, re.I).match
dictionary[key] = value dictionary[key] = value
return dictionary return dictionary
def __update_knownnames(self):
self._knownnames = []
for properties in self._profiles.values():
self._knownnames.extend(properties.keys())
profiles = property(lambda self: sorted(self._profiles.keys()), profiles = property(lambda self: sorted(self._profiles.keys()),
doc=u'Names of all profiles.') doc=u'Names of all profiles.')
def addProfile(self, profile, properties, macros=None): knownnames = property(lambda self: self._knownnames,
"""Add a new profile with name ``profile`` (e.g. 'CSS level 2') doc="All known property names of all profiles.")
and the given ``properties``. ``macros`` are
``profile`` def addProfile(self, profile, properties, macros=None):
The new profile's name """Add a new profile with name `profile` (e.g. 'CSS level 2')
``properties`` and the given `properties`.
A dictionary of ``{ property-name: propery-value }`` items where
:param profile:
the new `profile`'s name
:param properties:
a dictionary of ``{ property-name: propery-value }`` items where
property-value is a regex which may use macros defined in given property-value is a regex which may use macros defined in given
``macros`` or the standard macros Profiles.tokens and ``macros`` or the standard macros Profiles.tokens and
Profiles.generalvalues. Profiles.generalvalues.
@ -300,6 +337,10 @@ class Profiles(object):
are reported or raised as all other cssutils exceptions depending are reported or raised as all other cssutils exceptions depending
on cssutils.log.raiseExceptions which e.g during parsing normally on cssutils.log.raiseExceptions which e.g during parsing normally
is False so the exceptions would be logged only. is False so the exceptions would be logged only.
:param macros:
may be used in the given properties definitions. There are some
predefined basic macros which may always be used in
:attr:`Profiles.basicmacros` and :attr:`Profiles.generalmacros`.
""" """
if not macros: if not macros:
macros = {} macros = {}
@ -310,14 +351,40 @@ class Profiles(object):
self._profilenames.append(profile) self._profilenames.append(profile)
self._profiles[profile] = self._compile_regexes(properties) self._profiles[profile] = self._compile_regexes(properties)
self.__update_knownnames()
def removeProfile(self, profile=None, all=False):
"""Remove `profile` or remove `all` profiles.
:param profile:
profile name to remove
:param all:
if ``True`` removes all profiles to start with a clean state
:exceptions:
- :exc:`cssutils.profiles.NoSuchProfileException`:
If given `profile` cannot be found.
"""
if all:
self._profiles.clear()
else:
try:
del self._profiles[profile]
except KeyError:
raise NoSuchProfileException(u'No profile %r.' % profile)
self.__update_knownnames()
def propertiesByProfile(self, profiles=None): def propertiesByProfile(self, profiles=None):
"""Generator: Yield property names, if no profile(s) is given all """Generator: Yield property names, if no `profiles` is given all
profile's properties are used.""" profile's properties are used.
:param profiles:
a single profile name or a list of names.
"""
if not profiles: if not profiles:
profiles = self.profiles profiles = self.profiles
elif isinstance(profiles, basestring): elif isinstance(profiles, basestring):
profiles = (profiles, ) profiles = (profiles, )
try: try:
for profile in sorted(profiles): for profile in sorted(profiles):
for name in sorted(self._profiles[profile].keys()): for name in sorted(self._profiles[profile].keys()):
@ -326,12 +393,22 @@ class Profiles(object):
raise NoSuchProfileException(e) raise NoSuchProfileException(e)
def validate(self, name, value): def validate(self, name, value):
"""Check if value is valid for given property name using any profile.""" """Check if `value` is valid for given property `name` using **any**
profile.
:param name:
a property name
:param value:
a CSS value (string)
:returns:
if the `value` is valid for the given property `name` in any
profile
"""
for profile in self.profiles: for profile in self.profiles:
if name in self._profiles[profile]: if name in self._profiles[profile]:
try: try:
# custom validation errors are caught # custom validation errors are caught
r = bool(self._profiles[profile][name](value)) r = bool(self._profiles[profile][name](value))
except Exception, e: except Exception, e:
self._log.error(e, error=Exception) self._log.error(e, error=Exception)
return False return False
@ -339,29 +416,63 @@ class Profiles(object):
return r return r
return False return False
def validateWithProfile(self, name, value): def validateWithProfile(self, name, value, profiles=None):
"""Check if value is valid for given property name returning """Check if `value` is valid for given property `name` returning
(valid, valid_in_profile). ``(valid, profile)``.
You may want to check if valid_in_profile is what you expected. :param name:
a property name
:param value:
a CSS value (string)
:returns:
``valid, profiles`` where ``valid`` is if the `value` is valid for
the given property `name` in any profile of given `profiles`
and ``profiles`` the profile names for which the value is valid
(or ``[]`` if not valid at all)
Example: You might expect a valid Profiles.CSS_LEVEL_2 value but Example: You might expect a valid Profiles.CSS_LEVEL_2 value but
e.g. ``validateWithProfile('color', 'rgba(1,1,1,1)')`` returns e.g. ``validateWithProfile('color', 'rgba(1,1,1,1)')`` returns
(True, Profiles.CSS_COLOR_LEVEL_3) (True, Profiles.CSS_COLOR_LEVEL_3)
""" """
for profilename in self._profilenames: if name not in self.knownnames:
if name in self._profiles[profilename]: return False, []
try: else:
# custom validation errors are caught if not profiles:
r = (bool(self._profiles[profilename][name](value)), profiles = self._profilenames
profilename) elif isinstance(profiles, basestring):
except Exception, e: profiles = (profiles, )
self._log.error(e, error=Exception)
r = False, None
if r[0]:
return r
return False, None
for profilename in profiles:
# check given profiles
if name in self._profiles[profilename]:
validate = self._profiles[profilename][name]
try:
if validate(value):
return True, [profilename]
except Exception, e:
self._log.error(e, error=Exception)
for profilename in (p for p in self._profilenames if p not in profiles):
# check remaining profiles as well
if name in self._profiles[profilename]:
validate = self._profiles[profilename][name]
try:
if validate(value):
return True, [profilename]
except Exception, e:
self._log.error(e, error=Exception)
names = []
for profilename, properties in self._profiles.items():
# return profile to which name belongs
if name in properties.keys():
names.append(profilename)
names.sort()
return False, names
# used by
profiles = Profiles() profiles = Profiles()
# set for validation to e.g.``Profiles.CSS_LEVEL_2``
defaultprofile = None

View File

@ -4,16 +4,16 @@ __all__ = ['CSSCapture', 'csscombine']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: parse.py 1323 2008-07-06 18:13:57Z cthedot $' __version__ = '$Id: parse.py 1323 2008-07-06 18:13:57Z cthedot $'
import codecs
import errno
import HTMLParser import HTMLParser
import codecs
import cssutils
import errno
import logging import logging
import os import os
import sys import sys
import urllib2 import urllib2
import urlparse import urlparse
import cssutils
try: try:
import cssutils.encutils as encutils import cssutils.encutils as encutils
except ImportError: except ImportError:
@ -307,65 +307,47 @@ class CSSCapture(object):
sf.write(sheet.cssText) sf.write(sheet.cssText)
sf.close() sf.close()
def csscombine(path=None, url=None,
def csscombine(proxypath, sourceencoding=None, targetencoding='utf-8', sourceencoding=None, targetencoding=None,
minify=True): minify=True):
"""Combine sheets referred to by @import rules in given CSS proxy sheet """Combine sheets referred to by @import rules in given CSS proxy sheet
into a single new sheet. into a single new sheet.
:returns: combined cssText, normal or minified :returns: combined cssText, normal or minified
:Parameters: :Parameters:
`proxypath` `path` or `url`
url or path to a CSSStyleSheet which imports other sheets which path or URL to a CSSStyleSheet which imports other sheets which
are then combined into one sheet are then combined into one sheet
`sourceencoding`
encoding of the source sheets including the proxy sheet
`targetencoding` `targetencoding`
encoding of the combined stylesheet, default 'utf-8' encoding of the combined stylesheet, default 'utf-8'
`minify` `minify`
defines if the combined sheet should be minified, default True defines if the combined sheet should be minified, default True
""" """
log = cssutils.log cssutils.log.info(u'Combining files from %r' % url,
neverraise=True)
log.info('Combining files in proxy %r' % proxypath, neverraise=True)
if sourceencoding is not None: if sourceencoding is not None:
log.info('Using source encoding %r' % sourceencoding, cssutils.log.info(u'Using source encoding %r' % sourceencoding,
neverraise=True) neverraise=True)
if path:
src = cssutils.parseFile(path, encoding=sourceencoding)
elif url:
src = cssutils.parseUrl(url, encoding=sourceencoding)
else:
sys.exit('Path or URL must be given')
src = cssutils.parseFile(proxypath, encoding=sourceencoding) result = cssutils.resolveImports(src)
srcpath = os.path.dirname(proxypath) result.encoding = targetencoding
combined = cssutils.css.CSSStyleSheet() cssutils.log.info(u'Using target encoding: %r' % targetencoding, neverraise=True)
for rule in src.cssRules:
if rule.type == rule.IMPORT_RULE:
fn = os.path.join(srcpath, rule.href)
log.info('Processing @import %r' % fn,
neverraise=True)
importsheet = cssutils.parseFile(fn, encoding=sourceencoding)
importsheet.encoding = None # remove @charset
combined.add(cssutils.css.CSSComment(cssText=u'/* %s */' %
rule.cssText))
for x in importsheet.cssRules:
if x.type == x.IMPORT_RULE:
log.info('Nested @imports are not combined: %s' % x.cssText,
neverraise=True)
combined.add(x)
else:
combined.add(rule)
log.info('Setting target encoding %r' % targetencoding, neverraise=True)
combined.encoding = targetencoding
if minify: if minify:
# save old setting and use own serializer # save old setting and use own serializer
oldser = cssutils.ser oldser = cssutils.ser
cssutils.setSerializer(cssutils.serialize.CSSSerializer()) cssutils.setSerializer(cssutils.serialize.CSSSerializer())
cssutils.ser.prefs.useMinified() cssutils.ser.prefs.useMinified()
cssText = combined.cssText cssText = result.cssText
cssutils.setSerializer(oldser) cssutils.setSerializer(oldser)
else: else:
cssText = combined.cssText cssText = result.cssText
return cssText return cssText

View File

@ -1,15 +1,15 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
"""serializer classes for CSS classes """cssutils serializer"""
"""
__all__ = ['CSSSerializer', 'Preferences'] __all__ = ['CSSSerializer', 'Preferences']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: serialize.py 1472 2008-09-15 21:14:54Z cthedot $' __version__ = '$Id: serialize.py 1606 2009-01-03 20:32:17Z cthedot $'
import codecs import codecs
import cssutils
import helper
import re import re
import xml.dom import xml.dom
import cssutils
def _escapecss(e): def _escapecss(e):
""" """
@ -26,8 +26,7 @@ codecs.register_error('escapecss', _escapecss)
class Preferences(object): class Preferences(object):
""" """Control output of CSSSerializer.
controls output of CSSSerializer
defaultAtKeyword = True defaultAtKeyword = True
Should the literal @keyword from src CSS be used or the default Should the literal @keyword from src CSS be used or the default
@ -39,11 +38,12 @@ class Preferences(object):
Only used if ``keepAllProperties==False``. Only used if ``keepAllProperties==False``.
defaultPropertyPriority = True defaultPropertyPriority = True
Should the normalized or literal priority be used, e.g. '!important' Should the normalized or literal priority be used, e.g. ``!important``
or u'!Im\portant' or ``!Im\portant``
importHrefFormat = None importHrefFormat = None
Uses hreftype if ``None`` or explicit ``'string'`` or ``'uri'`` Uses hreftype if ``None`` or format ``"URI"`` if ``'string'`` or
format ``url(URI)`` if ``'uri'``
indent = 4 * ' ' indent = 4 * ' '
Indentation of e.g Properties inside a CSSStyleDeclaration Indentation of e.g Properties inside a CSSStyleDeclaration
indentSpecificities = False indentSpecificities = False
@ -88,20 +88,27 @@ class Preferences(object):
A Property is valid if it is a known Property with a valid value. A Property is valid if it is a known Property with a valid value.
Currently CSS 2.1 values as defined in cssproperties.py would be Currently CSS 2.1 values as defined in cssproperties.py would be
valid. valid.
""" """
def __init__(self, **initials): def __init__(self, **initials):
""" """Always use named instead of positional parameters."""
Always use named instead of positional parameters
"""
self.useDefaults() self.useDefaults()
for key, value in initials.items(): for key, value in initials.items():
if value: if value:
self.__setattr__(key, value) self.__setattr__(key, value)
def __repr__(self):
return u"cssutils.css.%s(%s)" % (self.__class__.__name__,
u', '.join(['\n %s=%r' % (p, self.__getattribute__(p)) for p in self.__dict__]
))
def __str__(self):
return u"<cssutils.css.%s object %s at 0x%x" % (self.__class__.__name__,
u' '.join(['%s=%r' % (p, self.__getattribute__(p)) for p in self.__dict__]
),
id(self))
def useDefaults(self): def useDefaults(self):
"reset all preference options to the default value" "Reset all preference options to their default value."
self.defaultAtKeyword = True self.defaultAtKeyword = True
self.defaultPropertyName = True self.defaultPropertyName = True
self.defaultPropertyPriority = True self.defaultPropertyPriority = True
@ -123,11 +130,10 @@ class Preferences(object):
self.validOnly = False # should not be changed currently!!! self.validOnly = False # should not be changed currently!!!
def useMinified(self): def useMinified(self):
""" """Set options resulting in a minified stylesheet.
sets options to achive a minified stylesheet
you may want to set preferences with this convenience method You may want to set preferences with this convenience method
and set settings you want adjusted afterwards and set settings you want adjusted afterwards.
""" """
self.importHrefFormat = 'string' self.importHrefFormat = 'string'
self.indent = u'' self.indent = u''
@ -144,22 +150,9 @@ class Preferences(object):
self.spacer = u'' self.spacer = u''
self.validOnly = False self.validOnly = False
def __repr__(self):
return u"cssutils.css.%s(%s)" % (self.__class__.__name__,
u', '.join(['\n %s=%r' % (p, self.__getattribute__(p)) for p in self.__dict__]
))
def __str__(self):
return u"<cssutils.css.%s object %s at 0x%x" % (self.__class__.__name__,
u' '.join(['%s=%r' % (p, self.__getattribute__(p)) for p in self.__dict__]
),
id(self))
class Out(object): class Out(object):
""" """A simple class which makes appended items available as a combined string"""
a simple class which makes appended items available as a combined string
"""
def __init__(self, ser): def __init__(self, ser):
self.ser = ser self.ser = ser
self.out = [] self.out = []
@ -178,11 +171,11 @@ class Out(object):
- typ "Property", cssutils.css.CSSRule.UNKNOWN_RULE - typ "Property", cssutils.css.CSSRule.UNKNOWN_RULE
uses cssText uses cssText
- typ STRING - typ STRING
escapes ser._string escapes helper.string
- typ S - typ S
ignored except ``keepS=True`` ignored except ``keepS=True``
- typ URI - typ URI
calls ser_uri calls helper.uri
- val ``{`` - val ``{``
adds LF after adds LF after
- val ``;`` - val ``;``
@ -194,6 +187,8 @@ class Out(object):
- some other vals - some other vals
add ``*spacer`` except ``space=False`` add ``*spacer`` except ``space=False``
""" """
prefspace = self.ser.prefs.spacer
if val or typ in ('STRING', 'URI'): if val or typ in ('STRING', 'URI'):
# PRE # PRE
if 'COMMENT' == typ: if 'COMMENT' == typ:
@ -207,6 +202,8 @@ class Out(object):
# val = val.cssText # val = val.cssText
elif 'S' == typ and not keepS: elif 'S' == typ and not keepS:
return return
elif 'S' == typ and keepS:
val = u' '
elif typ in ('NUMBER', 'DIMENSION', 'PERCENTAGE') and val == '0': elif typ in ('NUMBER', 'DIMENSION', 'PERCENTAGE') and val == '0':
# remove sign + or - if value is zero # remove sign + or - if value is zero
# TODO: only for lenghts! # TODO: only for lenghts!
@ -216,9 +213,13 @@ class Out(object):
# may be empty but MUST not be None # may be empty but MUST not be None
if val is None: if val is None:
return return
val = self.ser._string(val) val = helper.string(val)
if not prefspace:
self._remove_last_if_S()
elif 'URI' == typ: elif 'URI' == typ:
val = self.ser._uri(val) val = helper.uri(val)
elif 'HASH' == typ:
val = self.ser._hash(val)
elif val in u'+>~,:{;)]/': elif val in u'+>~,:{;)]/':
self._remove_last_if_S() self._remove_last_if_S()
@ -243,8 +244,11 @@ class Out(object):
self.out.append(self.ser.prefs.lineSeparator) self.out.append(self.ser.prefs.lineSeparator)
elif u';' == val: # end or prop or block elif u';' == val: # end or prop or block
self.out.append(self.ser.prefs.lineSeparator) self.out.append(self.ser.prefs.lineSeparator)
elif val not in u'}[]()/' and typ not in ('FUNCTION',) and space: elif val not in u'}[]()/' and typ != 'FUNCTION' and space:
self.out.append(self.ser.prefs.spacer) self.out.append(self.ser.prefs.spacer)
if typ != 'STRING' and not self.ser.prefs.spacer and \
self.out and not self.out[-1].endswith(u' '):
self.out.append(u' ')
def value(self, delim=u'', end=None, keepS=False): def value(self, delim=u'', end=None, keepS=False):
"returns all items joined by delim" "returns all items joined by delim"
@ -256,19 +260,14 @@ class Out(object):
class CSSSerializer(object): class CSSSerializer(object):
""" """Serialize a CSSStylesheet and its parts.
Methods to serialize a CSSStylesheet and its parts
To use your own serializing method the easiest is to subclass CSS To use your own serializing method the easiest is to subclass CSS
Serializer and overwrite the methods you like to customize. Serializer and overwrite the methods you like to customize.
""" """
# chars not in URI without quotes around as problematic with other stuff
# really ","?
__forbidden_in_uri_matcher = re.compile(ur'''.*?[\(\)\s\;,]''', re.U).match
def __init__(self, prefs=None): def __init__(self, prefs=None):
""" """
prefs :param prefs:
instance of Preferences instance of Preferences
""" """
if not prefs: if not prefs:
@ -319,23 +318,17 @@ class CSSSerializer(object):
text = self.prefs.lineSeparator.join(out) text = self.prefs.lineSeparator.join(out)
return text return text
def _string(self, s): def _hash(self, val, type_=None):
""" """
returns s encloded between "..." and escaped delim charater ", Short form of hash, e.g. #123 instead of #112233
escape line breaks \\n \\r and \\f
""" """
# \n = 0xa, \r = 0xd, \f = 0xc # TODO: add pref for this!
s = s.replace('\n', '\\a ').replace( if len(val) == 7 and val[1] == val[2] and\
'\r', '\\d ').replace( val[3] == val[4] and\
'\f', '\\c ') val[5] == val[6]:
return u'"%s"' % s.replace('"', u'\\"') return u'#%s%s%s' % (val[1], val[3], val[5])
def _uri(self, uri):
"""returns uri enclosed in url() and "..." if necessary"""
if CSSSerializer.__forbidden_in_uri_matcher(uri):
return 'url(%s)' % self._string(uri)
else: else:
return 'url(%s)' % uri return val
def _valid(self, x): def _valid(self, x):
"checks items valid property and prefs.validOnly" "checks items valid property and prefs.validOnly"
@ -384,7 +377,7 @@ class CSSSerializer(object):
no comments or other things allowed! no comments or other things allowed!
""" """
if rule.wellformed: if rule.wellformed:
return u'@charset %s;' % self._string(rule.encoding) return u'@charset %s;' % helper.string(rule.encoding)
else: else:
return u'' return u''
@ -438,8 +431,6 @@ class CSSSerializer(object):
rule.hreftype == 'string'): rule.hreftype == 'string'):
out.append(val, 'STRING') out.append(val, 'STRING')
else: else:
if not len(self.prefs.spacer):
out.append(u' ')
out.append(val, 'URI') out.append(val, 'URI')
elif 'media' == typ: elif 'media' == typ:
# media # media
@ -469,9 +460,6 @@ class CSSSerializer(object):
if rule.wellformed: if rule.wellformed:
out = Out(self) out = Out(self)
out.append(self._atkeyword(rule, u'@namespace')) out.append(self._atkeyword(rule, u'@namespace'))
if not len(self.prefs.spacer):
out.append(u' ')
for item in rule.seq: for item in rule.seq:
typ, val = item.type, item.value typ, val = item.type, item.value
if 'namespaceURI' == typ: if 'namespaceURI' == typ:
@ -509,7 +497,7 @@ class CSSSerializer(object):
if rule.name: if rule.name:
out.append(self.prefs.spacer) out.append(self.prefs.spacer)
nameout = Out(self) nameout = Out(self)
nameout.append(self._string(rule.name)) nameout.append(helper.string(rule.name))
for item in rule.seq: for item in rule.seq:
nameout.append(item.value, item.type) nameout.append(item.value, item.type)
out.append(nameout.value()) out.append(nameout.value())
@ -548,16 +536,10 @@ class CSSSerializer(object):
+ CSSComments + CSSComments
""" """
styleText = self.do_css_CSSStyleDeclaration(rule.style) styleText = self.do_css_CSSStyleDeclaration(rule.style)
if styleText and rule.wellformed: if styleText and rule.wellformed:
out = Out(self) out = Out(self)
out.append(self._atkeyword(rule, u'@page')) out.append(self._atkeyword(rule, u'@page'))
if not len(self.prefs.spacer): out.append(rule.selectorText)
out.append(u' ')
for item in rule.seq:
out.append(item.value, item.type)
out.append(u'{') out.append(u'{')
out.append(u'%s%s}' % (styleText, self.prefs.lineSeparator), out.append(u'%s%s}' % (styleText, self.prefs.lineSeparator),
indent=1) indent=1)
@ -565,6 +547,16 @@ class CSSSerializer(object):
else: else:
return u'' return u''
def do_CSSPageRuleSelector(self, seq):
"Serialize selector of a CSSPageRule"
out = Out(self)
for item in seq:
if item.type == 'IDENT':
out.append(item.value, item.type, space=False)
else:
out.append(item.value, item.type)
return out.value()
def do_CSSUnknownRule(self, rule): def do_CSSUnknownRule(self, rule):
""" """
serializes CSSUnknownRule serializes CSSUnknownRule
@ -574,8 +566,6 @@ class CSSSerializer(object):
if rule.wellformed: if rule.wellformed:
out = Out(self) out = Out(self)
out.append(rule.atkeyword) out.append(rule.atkeyword)
if not len(self.prefs.spacer):
out.append(u' ')
stacks = [] stacks = []
for item in rule.seq: for item in rule.seq:
@ -751,7 +741,7 @@ class CSSSerializer(object):
out.append(separator) out.append(separator)
elif isinstance(val, cssutils.css.Property): elif isinstance(val, cssutils.css.Property):
# PropertySimilarNameList # PropertySimilarNameList
out.append(self.do_Property(val)) out.append(val.cssText)
if not (self.prefs.omitLastSemicolon and i==len(seq)-1): if not (self.prefs.omitLastSemicolon and i==len(seq)-1):
out.append(u';') out.append(u';')
out.append(separator) out.append(separator)
@ -823,7 +813,6 @@ class CSSSerializer(object):
a Properties priority "!" S* "important" a Properties priority "!" S* "important"
""" """
# TODO: use Out() # TODO: use Out()
out = [] out = []
for part in priorityseq: for part in priorityseq:
if hasattr(part, 'cssText'): # comments if hasattr(part, 'cssText'): # comments
@ -836,72 +825,47 @@ class CSSSerializer(object):
def do_css_CSSValue(self, cssvalue): def do_css_CSSValue(self, cssvalue):
"""Serializes a CSSValue""" """Serializes a CSSValue"""
# TODO: use self._valid(cssvalue)?
if not cssvalue: if not cssvalue:
return u'' return u''
else: else:
out = Out(self) out = Out(self)
for item in cssvalue.seq: for item in cssvalue.seq:
type_, val = item.type, item.value type_, val = item.type, item.value
if type_ in (cssutils.css.CSSColor, if hasattr(val, 'cssText'):
cssutils.css.CSSValue): # RGBColor or CSSValue if a CSSValueList
# CSSColor or CSSValue if a CSSValueList out.append(val.cssText, type_)
out.append(val.cssText, type_, space=False, keepS=True)
else: else:
if val and val[0] == val[-1] and val[0] in '\'"': if val and val[0] == val[-1] and val[0] in '\'"':
val = self._string(val[1:-1]) val = helper.string(val[1:-1])
# S must be kept! in between values but no extra space # S must be kept! in between values but no extra space
out.append(val, type_, space=False, keepS=True) out.append(val, type_)
return out.value() return out.value()
def do_css_CSSPrimitiveValue(self, cssvalue): def do_css_CSSPrimitiveValue(self, cssvalue):
"""Serialize a CSSPrimitiveValue""" """Serialize a CSSPrimitiveValue"""
# TODO: use self._valid(cssvalue)?
if not cssvalue: if not cssvalue:
return u'' return u''
else: else:
out = Out(self) out = Out(self)
unary = None
for item in cssvalue.seq: for item in cssvalue.seq:
type_, val = item.type, item.value type_, val = item.type, item.value
if 'CHAR' == type_ and val in u'+-': if type_ in ('DIMENSION', 'NUMBER', 'PERCENTAGE'):
# save for next round n, d = cssvalue._getNumDim(val)
unary = val if 0 == n:
continue if cssvalue.primitiveType in cssvalue._lengthtypes:
if cssutils.css.CSSColor == type_: # 0 if zero value
# Comment or CSSColor
val = val.cssText
elif type_ in ('DIMENSION', 'NUMBER', 'PERCENTAGE'):
# handle saved unary and add to number
try:
# NUMBER or DIMENSION and is it 0?
if 0 == cssvalue.getFloatValue():
val = u'0' val = u'0'
else: else:
# add unary to val if not 0 val = u'0' + d
# TODO: only for lengths! else:
if u'-' == unary: val = unicode(n) + d
val = unary + val
except xml.dom.InvalidAccessErr, e:
pass
unary = None
elif unary:
# or simple add
out.append(unary, 'CHAR', space=False, keepS=True)
unary = None
out.append(val, type_) out.append(val, type_)
# if hasattr(val, 'cssText'):
# # comments or CSSValue if a CSSValueList
# out.append(val.cssText, type_)
# else:
# out.append(val, type_) #?
return out.value() return out.value()
def do_css_CSSColor(self, cssvalue): def do_css_RGBColor(self, cssvalue):
"""Serialize a CSSColor value""" """Serialize a RGBColor value"""
if not cssvalue: if not cssvalue:
return u'' return u''
else: else:
@ -910,21 +874,16 @@ class CSSSerializer(object):
for item in cssvalue.seq: for item in cssvalue.seq:
type_, val = item.type, item.value type_, val = item.type, item.value
# prepare # # prepare
if 'HASH' == type_: # if 'CHAR' == type_ and val in u'+-':
# TODO: add pref for this! # # save - for next round
if len(val) == 7 and val[1] == val[2] and \ # if u'-' == val:
val[3] == val[4] and val[5] == val[6]: # # omit +
val = u'#%s%s%s' % (val[1], val[3], val[5]) # unary = val
elif 'CHAR' == type_ and val in u'+-': # continue
# save - for next round # elif unary:
if u'-' == val: # val = unary + val.cssText
# omit + # unary = None
unary = val
continue
elif unary:
val = unary + val.cssText
unary = None
out.append(val, type_) out.append(val, type_)
@ -960,3 +919,29 @@ class CSSSerializer(object):
return u' '.join(out) return u' '.join(out)
else: else:
return u'' return u''
def do_css_ExpressionValue(self, cssvalue):
"""Serialize an ExpressionValue (IE only),
should at least keep the original syntax"""
if not cssvalue:
return u''
else:
out = Out(self)
for item in cssvalue.seq:
type_, val = item.type, item.value
if type_ in ('DIMENSION', 'NUMBER', 'PERCENTAGE'):
n, d = cssvalue._getNumDim(val)
if 0 == n:
if cssvalue.primitiveType in cssvalue._lengthtypes:
# 0 if zero value
val = u'0'
else:
val = u'0' + d
else:
val = unicode(n) + d
# do no send type_ so no special cases!
out.append(val, None, space=False)
return out.value()

View File

@ -1,16 +1,9 @@
""" """Implements Document Object Model Level 2 Style Sheets
Document Object Model Level 2 Style Sheets
http://www.w3.org/TR/2000/PR-DOM-Level-2-Style-20000927/stylesheets.html http://www.w3.org/TR/2000/PR-DOM-Level-2-Style-20000927/stylesheets.html
currently implemented:
- MediaList
- MediaQuery (http://www.w3.org/TR/css3-mediaqueries/)
- StyleSheet
- StyleSheetList
""" """
__all__ = ['MediaList', 'MediaQuery', 'StyleSheet', 'StyleSheetList'] __all__ = ['MediaList', 'MediaQuery', 'StyleSheet', 'StyleSheetList']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: __init__.py 1116 2008-03-05 13:52:23Z cthedot $' __version__ = '$Id: __init__.py 1588 2009-01-01 20:16:13Z cthedot $'
from medialist import * from medialist import *
from mediaquery import * from mediaquery import *

View File

@ -1,5 +1,4 @@
""" """MediaList implements DOM Level 2 Style Sheets MediaList.
MediaList implements DOM Level 2 Style Sheets MediaList.
TODO: TODO:
- delete: maybe if deleting from all, replace *all* with all others? - delete: maybe if deleting from all, replace *all* with all others?
@ -7,49 +6,36 @@ TODO:
""" """
__all__ = ['MediaList'] __all__ = ['MediaList']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: medialist.py 1423 2008-08-11 12:43:22Z cthedot $' __version__ = '$Id: medialist.py 1605 2009-01-03 18:27:32Z cthedot $'
import xml.dom
import cssutils
from cssutils.css import csscomment from cssutils.css import csscomment
from mediaquery import MediaQuery from mediaquery import MediaQuery
import cssutils
import xml.dom
class MediaList(cssutils.util.Base, cssutils.util.ListSeq): class MediaList(cssutils.util.Base, cssutils.util.ListSeq):
""" """Provides the abstraction of an ordered collection of media,
Provides the abstraction of an ordered collection of media,
without defining or constraining how this collection is without defining or constraining how this collection is
implemented. implemented.
A media is always an instance of MediaQuery. A single media in the list is an instance of :class:`MediaQuery`.
An empty list is the same as a list that contains the medium "all". An empty list is the same as a list that contains the medium "all".
Properties Format from CSS2.1::
==========
length:
The number of MediaQuery objects in the list.
mediaText: of type DOMString
The parsable textual representation of this MediaList
self: a list (cssutils)
All MediaQueries in this MediaList
wellformed:
if this list is wellformed
Format
======
::
medium [ COMMA S* medium ]* medium [ COMMA S* medium ]*
New:: New format with :class:`MediaQuery`::
<media_query> [, <media_query> ]* <media_query> [, <media_query> ]*
""" """
def __init__(self, mediaText=None, readonly=False): def __init__(self, mediaText=None, readonly=False):
""" """
mediaText :param mediaText:
unicodestring of parsable comma separared media Unicodestring of parsable comma separared media
or a list of media or a (Python) list of media.
:param readonly:
Not used yet.
""" """
super(MediaList, self).__init__() super(MediaList, self).__init__()
self._wellformed = False self._wellformed = False
@ -62,27 +48,31 @@ class MediaList(cssutils.util.Base, cssutils.util.ListSeq):
self._readonly = readonly self._readonly = readonly
def __repr__(self):
return "cssutils.stylesheets.%s(mediaText=%r)" % (
self.__class__.__name__, self.mediaText)
def __str__(self):
return "<cssutils.stylesheets.%s object mediaText=%r at 0x%x>" % (
self.__class__.__name__, self.mediaText, id(self))
length = property(lambda self: len(self), length = property(lambda self: len(self),
doc="(DOM readonly) The number of media in the list.") doc="The number of media in the list (DOM readonly).")
def _getMediaText(self): def _getMediaText(self):
"""
returns serialized property mediaText
"""
return cssutils.ser.do_stylesheets_medialist(self) return cssutils.ser.do_stylesheets_medialist(self)
def _setMediaText(self, mediaText): def _setMediaText(self, mediaText):
""" """
mediaText :param mediaText:
simple value or comma-separated list of media simple value or comma-separated list of media
DOMException :exceptions:
- - :exc:`~xml.dom.SyntaxErr`:
- SYNTAX_ERR: (MediaQuery) Raised if the specified string value has a syntax error and is
Raised if the specified string value has a syntax error and is unparsable.
unparsable. - - :exc:`~xml.dom.NoModificationAllowedErr`:
- NO_MODIFICATION_ALLOWED_ERR: (self) Raised if this media list is readonly.
Raised if this media list is readonly.
""" """
self._checkReadonly() self._checkReadonly()
wellformed = True wellformed = True
@ -121,10 +111,7 @@ class MediaList(cssutils.util.Base, cssutils.util.ListSeq):
self._wellformed = True self._wellformed = True
mediaText = property(_getMediaText, _setMediaText, mediaText = property(_getMediaText, _setMediaText,
doc="""(DOM) The parsable textual representation of the media list. doc="The parsable textual representation of the media list.")
This is a comma-separated list of media.""")
wellformed = property(lambda self: self._wellformed)
def __prepareset(self, newMedium): def __prepareset(self, newMedium):
# used by appendSelector and __setitem__ # used by appendSelector and __setitem__
@ -137,10 +124,9 @@ class MediaList(cssutils.util.Base, cssutils.util.ListSeq):
return newMedium return newMedium
def __setitem__(self, index, newMedium): def __setitem__(self, index, newMedium):
""" """Overwriting ListSeq.__setitem__
overwrites ListSeq.__setitem__
Any duplicate items are **not** removed. Any duplicate items are **not yet** removed.
""" """
newMedium = self.__prepareset(newMedium) newMedium = self.__prepareset(newMedium)
if newMedium: if newMedium:
@ -148,28 +134,23 @@ class MediaList(cssutils.util.Base, cssutils.util.ListSeq):
# TODO: remove duplicates? # TODO: remove duplicates?
def appendMedium(self, newMedium): def appendMedium(self, newMedium):
""" """Add the `newMedium` to the end of the list.
(DOM) If the `newMedium` is already used, it is first removed.
Adds the medium newMedium to the end of the list. If the newMedium
is already used, it is first removed.
newMedium :param newMedium:
a string or a MediaQuery object a string or a :class:`~cssutils.stylesheets.MediaQuery`
:returns: Wellformedness of `newMedium`.
returns if newMedium is wellformed :exceptions:
- :exc:`~xml.dom.InvalidCharacterErr`:
DOMException If the medium contains characters that are invalid in the
underlying style language.
- INVALID_CHARACTER_ERR: (self) - :exc:`~xml.dom.InvalidModificationErr`:
If the medium contains characters that are invalid in the If mediaText is "all" and a new medium is tried to be added.
underlying style language. Exception is "handheld" which is set in any case (Opera does handle
- INVALID_MODIFICATION_ERR (self) "all, handheld" special, this special case might be removed in the
If mediaText is "all" and a new medium is tried to be added. future).
Exception is "handheld" which is set in any case (Opera does handle - :exc:`~xml.dom.NoModificationAllowedErr`:
"all, handheld" special, this special case might be removed in the Raised if this list is readonly.
future).
- NO_MODIFICATION_ALLOWED_ERR: (self)
Raised if this list is readonly.
""" """
newMedium = self.__prepareset(newMedium) newMedium = self.__prepareset(newMedium)
@ -207,20 +188,19 @@ class MediaList(cssutils.util.Base, cssutils.util.ListSeq):
return False return False
def append(self, newMedium): def append(self, newMedium):
"overwrites ListSeq.append" "Same as :meth:`appendMedium`."
self.appendMedium(newMedium) self.appendMedium(newMedium)
def deleteMedium(self, oldMedium): def deleteMedium(self, oldMedium):
""" """Delete a medium from the list.
(DOM)
Deletes the medium indicated by oldMedium from the list.
DOMException :param oldMedium:
delete this medium from the list.
- NO_MODIFICATION_ALLOWED_ERR: (self) :exceptions:
Raised if this list is readonly. - :exc:`~xml.dom.NotFoundErr`:
- NOT_FOUND_ERR: (self) Raised if `oldMedium` is not in the list.
Raised if oldMedium is not in the list. - :exc:`~xml.dom.NoModificationAllowedErr`:
Raised if this list is readonly.
""" """
self._checkReadonly() self._checkReadonly()
oldMedium = self._normalize(oldMedium) oldMedium = self._normalize(oldMedium)
@ -232,25 +212,15 @@ class MediaList(cssutils.util.Base, cssutils.util.ListSeq):
else: else:
self._log.error(u'"%s" not in this MediaList' % oldMedium, self._log.error(u'"%s" not in this MediaList' % oldMedium,
error=xml.dom.NotFoundErr) error=xml.dom.NotFoundErr)
# raise xml.dom.NotFoundErr(
# u'"%s" not in this MediaList' % oldMedium)
def item(self, index): def item(self, index):
""" """Return the mediaType of the `index`'th element in the list.
(DOM) If `index` is greater than or equal to the number of media in the
Returns the mediaType of the index'th element in the list. list, returns ``None``.
If index is greater than or equal to the number of media in the
list, returns None.
""" """
try: try:
return self[index].mediaType return self[index].mediaType
except IndexError: except IndexError:
return None return None
def __repr__(self): wellformed = property(lambda self: self._wellformed)
return "cssutils.stylesheets.%s(mediaText=%r)" % (
self.__class__.__name__, self.mediaText)
def __str__(self):
return "<cssutils.stylesheets.%s object mediaText=%r at 0x%x>" % (
self.__class__.__name__, self.mediaText, id(self))

View File

@ -1,41 +1,22 @@
""" """Implements a DOM for MediaQuery, see
MediaQuery, see http://www.w3.org/TR/css3-mediaqueries/ http://www.w3.org/TR/css3-mediaqueries/.
A cssutils own implementation, not defined in official DOM A cssutils implementation, not defined in official DOM.
TODO:
add possibility to
part of a media_query_list: <media_query> [, <media_query> ]*
see stylesheets.MediaList
""" """
__all__ = ['MediaQuery'] __all__ = ['MediaQuery']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: mediaquery.py 1363 2008-07-13 18:14:26Z cthedot $' __version__ = '$Id: mediaquery.py 1638 2009-01-13 20:39:33Z cthedot $'
import cssutils
import re import re
import xml.dom import xml.dom
import cssutils
class MediaQuery(cssutils.util.Base): class MediaQuery(cssutils.util.Base):
""" """
A Media Query consists of a media type and one or more A Media Query consists of one of :const:`MediaQuery.MEDIA_TYPES`
expressions involving media features. and one or more expressions involving media features.
Properties Format::
==========
mediaText: of type DOMString
The parsable textual representation of this MediaQuery
mediaType: of type DOMString
one of MEDIA_TYPES like e.g. 'print'
seq: a list (cssutils)
All parts of this MediaQuery including CSSComments
wellformed:
if this query is wellformed
Format
======
::
media_query: [[only | not]? <media_type> [ and <expression> ]*] media_query: [[only | not]? <media_type> [ and <expression> ]*]
| <expression> [ and <expression> ]* | <expression> [ and <expression> ]*
@ -65,7 +46,7 @@ class MediaQuery(cssutils.util.Base):
def __init__(self, mediaText=None, readonly=False): def __init__(self, mediaText=None, readonly=False):
""" """
mediaText :param mediaText:
unicodestring of parsable media unicodestring of parsable media
""" """
super(MediaQuery, self).__init__() super(MediaQuery, self).__init__()
@ -77,26 +58,30 @@ class MediaQuery(cssutils.util.Base):
self._readonly = readonly self._readonly = readonly
def __repr__(self):
return "cssutils.stylesheets.%s(mediaText=%r)" % (
self.__class__.__name__, self.mediaText)
def __str__(self):
return "<cssutils.stylesheets.%s object mediaText=%r at 0x%x>" % (
self.__class__.__name__, self.mediaText, id(self))
def _getMediaText(self): def _getMediaText(self):
"""
returns serialized property mediaText
"""
return cssutils.ser.do_stylesheets_mediaquery(self) return cssutils.ser.do_stylesheets_mediaquery(self)
def _setMediaText(self, mediaText): def _setMediaText(self, mediaText):
""" """
mediaText :param mediaText:
a single media query string, e.g. "print and (min-width: 25cm)" a single media query string, e.g. ``print and (min-width: 25cm)``
DOMException :exceptions:
- :exc:`~xml.dom.SyntaxErr`:
- SYNTAX_ERR: (self) Raised if the specified string value has a syntax error and is
Raised if the specified string value has a syntax error and is unparsable.
unparsable. - :exc:`~xml.dom.InvalidCharacterErr`:
- INVALID_CHARACTER_ERR: (self) Raised if the given mediaType is unknown.
Raised if the given mediaType is unknown. - :exc:`~xml.dom.NoModificationAllowedErr`:
- NO_MODIFICATION_ALLOWED_ERR: (self) Raised if this media query is readonly.
Raised if this media query is readonly.
""" """
self._checkReadonly() self._checkReadonly()
tokenizer = self._tokenize2(mediaText) tokenizer = self._tokenize2(mediaText)
@ -171,29 +156,21 @@ class MediaQuery(cssutils.util.Base):
self.seq = newseq self.seq = newseq
mediaText = property(_getMediaText, _setMediaText, mediaText = property(_getMediaText, _setMediaText,
doc="""(DOM) The parsable textual representation of the media list. doc="The parsable textual representation of the media list.")
This is a comma-separated list of media.""")
def _getMediaType(self):
"""
returns serialized property mediaText
"""
return self._mediaType
def _setMediaType(self, mediaType): def _setMediaType(self, mediaType):
""" """
mediaType :param mediaType:
one of MEDIA_TYPES one of :attr:`MEDIA_TYPES`
DOMException :exceptions:
- :exc:`~xml.dom.SyntaxErr`:
- SYNTAX_ERR: (self) Raised if the specified string value has a syntax error and is
Raised if the specified string value has a syntax error and is unparsable.
unparsable. - :exc:`~xml.dom.InvalidCharacterErr`:
- INVALID_CHARACTER_ERR: (self) Raised if the given mediaType is unknown.
Raised if the given mediaType is unknown. - :exc:`~xml.dom.NoModificationAllowedErr`:
- NO_MODIFICATION_ALLOWED_ERR: (self) Raised if this media query is readonly.
Raised if this media query is readonly.
""" """
self._checkReadonly() self._checkReadonly()
nmediaType = self._normalize(mediaType) nmediaType = self._normalize(mediaType)
@ -223,15 +200,8 @@ class MediaQuery(cssutils.util.Base):
else: else:
self.seq.insert(0, mediaType) self.seq.insert(0, mediaType)
mediaType = property(_getMediaType, _setMediaType, mediaType = property(lambda self: self._mediaType, _setMediaType,
doc="""(DOM) media type (one of MediaQuery.MEDIA_TYPES) of this MediaQuery.""") doc="The media type of this MediaQuery (one of "
":attr:`MEDIA_TYPES`).")
wellformed = property(lambda self: bool(len(self.seq))) wellformed = property(lambda self: bool(len(self.seq)))
def __repr__(self):
return "cssutils.stylesheets.%s(mediaText=%r)" % (
self.__class__.__name__, self.mediaText)
def __str__(self):
return "<cssutils.stylesheets.%s object mediaText=%r at 0x%x>" % (
self.__class__.__name__, self.mediaText, id(self))

View File

@ -1,12 +1,10 @@
""" """StyleSheet implements DOM Level 2 Style Sheets StyleSheet."""
StyleSheet implements DOM Level 2 Style Sheets StyleSheet.
"""
__all__ = ['StyleSheet'] __all__ = ['StyleSheet']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: stylesheet.py 1284 2008-06-05 16:29:17Z cthedot $' __version__ = '$Id: stylesheet.py 1629 2009-01-04 18:58:47Z cthedot $'
import urlparse
import cssutils import cssutils
import urlparse
class StyleSheet(cssutils.util.Base2): class StyleSheet(cssutils.util.Base2):
""" """
@ -16,7 +14,7 @@ class StyleSheet(cssutils.util.Base2):
In HTML, the StyleSheet interface represents either an In HTML, the StyleSheet interface represents either an
external style sheet, included via the HTML LINK element, external style sheet, included via the HTML LINK element,
or an inline STYLE element (-ch: also an @import stylesheet?). or an inline STYLE element (also an @import stylesheet?).
In XML, this interface represents In XML, this interface represents
an external style sheet, included via a style sheet an external style sheet, included via a style sheet
@ -30,14 +28,8 @@ class StyleSheet(cssutils.util.Base2):
ownerNode=None, ownerNode=None,
parentStyleSheet=None): parentStyleSheet=None):
""" """
type: readonly type
This specifies the style sheet language for this readonly
style sheet. The style sheet language is specified
as a content type (e.g. "text/css"). The content
type is often specified in the ownerNode. Also see
the type attribute definition for the LINK element
in HTML 4.0, and the type pseudo-attribute for the
XML style sheet processing instruction.
href: readonly href: readonly
If the style sheet is a linked style sheet, the value If the style sheet is a linked style sheet, the value
of this attribute is its location. For inline style of this attribute is its location. For inline style
@ -74,12 +66,6 @@ class StyleSheet(cssutils.util.Base2):
included by other style sheets, the value of this included by other style sheets, the value of this
attribute is None. attribute is None.
parentStyleSheet: of type StyleSheet, readonly parentStyleSheet: of type StyleSheet, readonly
For style sheet languages that support the concept
of style sheet inclusion, this attribute represents
the including style sheet, if one exists. If the style
sheet is a top-level style sheet, or the style sheet
language does not support inclusion, the value of this
attribute is None.
""" """
super(StyleSheet, self).__init__() super(StyleSheet, self).__init__()
@ -92,10 +78,31 @@ class StyleSheet(cssutils.util.Base2):
self.media = media self.media = media
self.title = title self.title = title
href = property(lambda self: self._href) href = property(lambda self: self._href,
doc="If the style sheet is a linked style sheet, the value "
"of this attribute is its location. For inline style "
"sheets, the value of this attribute is None. See the "
"href attribute definition for the LINK element in HTML "
"4.0, and the href pseudo-attribute for the XML style "
"sheet processing instruction.")
ownerNode = property(lambda self: self._ownerNode) ownerNode = property(lambda self: self._ownerNode,
doc="Not used in cssutils yet.")
parentStyleSheet = property(lambda self: self._parentStyleSheet) parentStyleSheet = property(lambda self: self._parentStyleSheet,
doc="For style sheet languages that support the concept "
"of style sheet inclusion, this attribute represents "
"the including style sheet, if one exists. If the style "
"sheet is a top-level style sheet, or the style sheet "
"language does not support inclusion, the value of this "
"attribute is None.")
type = property(lambda self: self._type, doc=u'Default: "ext/css"') type = property(lambda self: self._type,
doc="This specifies the style sheet language for this "
"style sheet. The style sheet language is specified "
"as a content type (e.g. ``text/css``). The content "
"type is often specified in the ownerNode. Also see "
"the type attribute definition for the LINK element "
"in HTML 4.0, and the type pseudo-attribute for the "
"XML style sheet processing instruction. "
"For CSS this is always ``text/css``.")

View File

@ -1,18 +1,15 @@
""" """StyleSheetList implements DOM Level 2 Style Sheets StyleSheetList."""
StyleSheetList implements DOM Level 2 Style Sheets StyleSheetList.
"""
__all__ = ['StyleSheetList'] __all__ = ['StyleSheetList']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: stylesheetlist.py 1116 2008-03-05 13:52:23Z cthedot $' __version__ = '$Id: stylesheetlist.py 1629 2009-01-04 18:58:47Z cthedot $'
class StyleSheetList(list): class StyleSheetList(list):
""" """Interface `StyleSheetList` (introduced in DOM Level 2)
Interface StyleSheetList (introduced in DOM Level 2)
The StyleSheetList interface provides the abstraction of an ordered The `StyleSheetList` interface provides the abstraction of an ordered
collection of style sheets. collection of :class:`~cssutils.stylesheets.StyleSheet` objects.
The items in the StyleSheetList are accessible via an integral index, The items in the `StyleSheetList` are accessible via an integral index,
starting from 0. starting from 0.
This Python implementation is based on a standard Python list so e.g. This Python implementation is based on a standard Python list so e.g.
@ -20,9 +17,9 @@ class StyleSheetList(list):
""" """
def item(self, index): def item(self, index):
""" """
Used to retrieve a style sheet by ordinal index. If index is Used to retrieve a style sheet by ordinal `index`. If `index` is
greater than or equal to the number of style sheets in the list, greater than or equal to the number of style sheets in the list,
this returns None. this returns ``None``.
""" """
try: try:
return self[index] return self[index]
@ -30,6 +27,6 @@ class StyleSheetList(list):
return None return None
length = property(lambda self: len(self), length = property(lambda self: len(self),
doc="""The number of StyleSheets in the list. The range of valid doc="The number of :class:`StyleSheet` objects in the list. The range"
child stylesheet indices is 0 to length-1 inclusive.""") " of valid child stylesheet indices is 0 to length-1 inclusive.")

View File

@ -4,11 +4,11 @@
""" """
__all__ = ['Tokenizer', 'CSSProductions'] __all__ = ['Tokenizer', 'CSSProductions']
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: tokenize2.py 1420 2008-08-09 19:28:34Z cthedot $' __version__ = '$Id: tokenize2.py 1547 2008-12-10 20:42:26Z cthedot $'
import re
from helper import normalize
from cssproductions import * from cssproductions import *
from helper import normalize
import re
class Tokenizer(object): class Tokenizer(object):
""" """
@ -23,6 +23,8 @@ class Tokenizer(object):
u'@page': CSSProductions.PAGE_SYM u'@page': CSSProductions.PAGE_SYM
} }
_linesep = u'\n' _linesep = u'\n'
unicodesub = re.compile(r'\\[0-9a-fA-F]{1,6}(?:\r\n|[\t|\r|\n|\f|\x20])?').sub
cleanstring = re.compile(r'\\((\r\n)|[\n|\r|\f])').sub
def __init__(self, macros=None, productions=None): def __init__(self, macros=None, productions=None):
""" """
@ -38,7 +40,6 @@ class Tokenizer(object):
productions)) productions))
self.commentmatcher = [x[1] for x in self.tokenmatches if x[0] == 'COMMENT'][0] self.commentmatcher = [x[1] for x in self.tokenmatches if x[0] == 'COMMENT'][0]
self.urimatcher = [x[1] for x in self.tokenmatches if x[0] == 'URI'][0] self.urimatcher = [x[1] for x in self.tokenmatches if x[0] == 'URI'][0]
self.unicodesub = re.compile(r'\\[0-9a-fA-F]{1,6}(?:\r\n|[\t|\r|\n|\f|\x20])?').sub
def _expand_macros(self, macros, productions): def _expand_macros(self, macros, productions):
"""returns macro expanded productions, order of productions is kept""" """returns macro expanded productions, order of productions is kept"""
@ -150,6 +151,9 @@ class Tokenizer(object):
# may contain unicode escape, replace with normal char # may contain unicode escape, replace with normal char
# but do not _normalize (?) # but do not _normalize (?)
value = self.unicodesub(_repl, found) value = self.unicodesub(_repl, found)
if name in ('STRING', 'INVALID'): #'URI'?
# remove \ followed by nl (so escaped) from string
value = self.cleanstring('', found)
else: else:
if 'ATKEYWORD' == name: if 'ATKEYWORD' == name:

View File

@ -2,25 +2,85 @@
""" """
__all__ = [] __all__ = []
__docformat__ = 'restructuredtext' __docformat__ = 'restructuredtext'
__version__ = '$Id: util.py 1453 2008-09-08 20:57:19Z cthedot $' __version__ = '$Id: util.py 1654 2009-02-03 20:16:20Z cthedot $'
import codecs
from itertools import ifilter
import types
import urllib2
import xml.dom
from helper import normalize from helper import normalize
from itertools import ifilter
import css
import codec
import codecs
import errorhandler
import tokenize2 import tokenize2
import cssutils import types
import encutils import xml.dom
class Base(object): try:
from _fetchgae import _defaultFetcher
except ImportError, e:
from _fetch import _defaultFetcher
log = errorhandler.ErrorHandler()
class _BaseClass(object):
""" """
Base class for most CSS and StyleSheets classes Base class for Base, Base2 and _NewBase.
**Base and Base2 will be removed in the future!**
"""
_log = errorhandler.ErrorHandler()
_prods = tokenize2.CSSProductions
def _checkReadonly(self):
"Raise xml.dom.NoModificationAllowedErr if rule/... is readonly"
if hasattr(self, '_readonly') and self._readonly:
raise xml.dom.NoModificationAllowedErr(
u'%s is readonly.' % self.__class__)
return True
return False
def _valuestr(self, t):
"""
Return string value of t (t may be a string, a list of token tuples
or a single tuple in format (type, value, line, col).
Mainly used to get a string value of t for error messages.
"""
if not t:
return u''
elif isinstance(t, basestring):
return t
else:
return u''.join([x[1] for x in t])
class _NewBase(_BaseClass):
"""
New base class for classes using ProdParser.
**Currently CSSValue and related ones only.**
"""
def __init__(self):
self._seq = Seq()
def _setSeq(self, newseq):
"""Set value of ``seq`` which is readonly."""
newseq._readonly = True
self._seq = newseq
def _tempSeq(self, readonly=False):
"Get a writeable Seq() which is used to set ``seq`` later"
return Seq(readonly=readonly)
seq = property(lambda self: self._seq,
doc="Internal readonly attribute, **DO NOT USE**!")
class Base(_BaseClass):
"""
**Superceded by _NewBase**
**Superceded by Base2 which is used for new seq handling class.** **Superceded by Base2 which is used for new seq handling class.**
See cssutils.util.Base2
Base class for most CSS and StyleSheets classes
Contains helper methods for inheriting classes helping parsing Contains helper methods for inheriting classes helping parsing
@ -28,9 +88,6 @@ class Base(object):
""" """
__tokenizer2 = tokenize2.Tokenizer() __tokenizer2 = tokenize2.Tokenizer()
_log = cssutils.log
_prods = tokenize2.CSSProductions
# for more on shorthand properties see # for more on shorthand properties see
# http://www.dustindiaz.com/css-shorthand/ # http://www.dustindiaz.com/css-shorthand/
# format: shorthand: [(propname, mandatorycheck?)*] # format: shorthand: [(propname, mandatorycheck?)*]
@ -66,14 +123,6 @@ class Base(object):
""" """
return normalize(x) return normalize(x)
def _checkReadonly(self):
"raises xml.dom.NoModificationAllowedErr if rule/... is readonly"
if hasattr(self, '_readonly') and self._readonly:
raise xml.dom.NoModificationAllowedErr(
u'%s is readonly.' % self.__class__)
return True
return False
def _splitNamespacesOff(self, text_namespaces_tuple): def _splitNamespacesOff(self, text_namespaces_tuple):
""" """
returns tuple (text, dict-of-namespaces) or if no namespaces are returns tuple (text, dict-of-namespaces) or if no namespaces are
@ -141,7 +190,7 @@ class Base(object):
""" """
if token: if token:
value = token[1] value = token[1]
return value.replace('\\'+value[0], value[0])[1:-1] return value.replace('\\' + value[0], value[0])[1: - 1]
else: else:
return None return None
@ -153,10 +202,10 @@ class Base(object):
url("\"") => " url("\"") => "
""" """
if token: if token:
value = token[1][4:-1].strip() value = token[1][4: - 1].strip()
if value and (value[0] in '\'"') and (value[0] == value[-1]): if value and (value[0] in '\'"') and (value[0] == value[ - 1]):
# a string "..." or '...' # a string "..." or '...'
value = value.replace('\\'+value[0], value[0])[1:-1] value = value.replace('\\' + value[0], value[0])[1: - 1]
return value return value
else: else:
return None return None
@ -190,7 +239,7 @@ class Base(object):
if blockstartonly: # { if blockstartonly: # {
ends = u'{' ends = u'{'
brace = -1 # set to 0 with first { brace = - 1 # set to 0 with first {
elif blockendonly: # } elif blockendonly: # }
ends = u'}' ends = u'}'
brace = 1 brace = 1
@ -205,7 +254,7 @@ class Base(object):
# end of mediaquery which may be { or STRING # end of mediaquery which may be { or STRING
# special case, see below # special case, see below
ends = u'{' ends = u'{'
brace = -1 # set to 0 with first { brace = - 1 # set to 0 with first {
endtypes = ('STRING',) endtypes = ('STRING',)
elif semicolon: elif semicolon:
ends = u';' ends = u';'
@ -254,7 +303,7 @@ class Base(object):
if (brace == bracket == parant == 0) and ( if (brace == bracket == parant == 0) and (
val in ends or typ in endtypes): val in ends or typ in endtypes):
break break
elif mediaqueryendonly and brace == -1 and ( elif mediaqueryendonly and brace == - 1 and (
bracket == parant == 0) and typ in endtypes: bracket == parant == 0) and typ in endtypes:
# mediaqueryendonly with STRING # mediaqueryendonly with STRING
break break
@ -262,25 +311,12 @@ class Base(object):
if separateEnd: if separateEnd:
# TODO: use this method as generator, then this makes sense # TODO: use this method as generator, then this makes sense
if resulttokens: if resulttokens:
return resulttokens[:-1], resulttokens[-1] return resulttokens[: - 1], resulttokens[ - 1]
else: else:
return resulttokens, None return resulttokens, None
else: else:
return resulttokens return resulttokens
def _valuestr(self, t):
"""
returns string value of t (t may be a string, a list of token tuples
or a single tuple in format (type, value, line, col).
Mainly used to get a string value of t for error messages.
"""
if not t:
return u''
elif isinstance(t, basestring):
return t
else:
return u''.join([x[1] for x in t])
def _adddefaultproductions(self, productions, new=None): def _adddefaultproductions(self, productions, new=None):
""" """
adds default productions if not already present, used by adds default productions if not already present, used by
@ -295,7 +331,7 @@ class Base(object):
"default impl for unexpected @rule" "default impl for unexpected @rule"
if expected != 'EOF': if expected != 'EOF':
# TODO: parentStyleSheet=self # TODO: parentStyleSheet=self
rule = cssutils.css.CSSUnknownRule() rule = css.CSSUnknownRule()
rule.cssText = self._tokensupto2(tokenizer, token) rule.cssText = self._tokensupto2(tokenizer, token)
if rule.wellformed: if rule.wellformed:
seq.append(rule) seq.append(rule)
@ -307,7 +343,7 @@ class Base(object):
def COMMENT(expected, seq, token, tokenizer=None): def COMMENT(expected, seq, token, tokenizer=None):
"default implementation for COMMENT token adds CSSCommentRule" "default implementation for COMMENT token adds CSSCommentRule"
seq.append(cssutils.css.CSSComment([token])) seq.append(css.CSSComment([token]))
return expected return expected
def S(expected, seq, token, tokenizer=None): def S(expected, seq, token, tokenizer=None):
@ -375,26 +411,15 @@ class Base(object):
return wellformed, expected return wellformed, expected
class Base2(Base): class Base2(Base, _NewBase):
""" """
Base class for new seq handling, used by Selector for now only **Superceded by _NewBase.**
Base class for new seq handling.
""" """
def __init__(self): def __init__(self):
self._seq = Seq() self._seq = Seq()
def _setSeq(self, newseq):
"""
sets newseq and makes it readonly
"""
newseq._readonly = True
self._seq = newseq
seq = property(lambda self: self._seq, doc="seq for most classes")
def _tempSeq(self, readonly=False):
"get a writeable Seq() which is added later"
return Seq(readonly=readonly)
def _adddefaultproductions(self, productions, new=None): def _adddefaultproductions(self, productions, new=None):
""" """
adds default productions if not already present, used by adds default productions if not already present, used by
@ -409,10 +434,10 @@ class Base2(Base):
"default impl for unexpected @rule" "default impl for unexpected @rule"
if expected != 'EOF': if expected != 'EOF':
# TODO: parentStyleSheet=self # TODO: parentStyleSheet=self
rule = cssutils.css.CSSUnknownRule() rule = css.CSSUnknownRule()
rule.cssText = self._tokensupto2(tokenizer, token) rule.cssText = self._tokensupto2(tokenizer, token)
if rule.wellformed: if rule.wellformed:
seq.append(rule, cssutils.css.CSSRule.UNKNOWN_RULE, seq.append(rule, css.CSSRule.UNKNOWN_RULE,
line=token[2], col=token[3]) line=token[2], col=token[3])
return expected return expected
else: else:
@ -425,7 +450,7 @@ class Base2(Base):
if expected == 'EOF': if expected == 'EOF':
new['wellformed'] = False new['wellformed'] = False
self._log.error(u'Expected EOF but found comment.', token=token) self._log.error(u'Expected EOF but found comment.', token=token)
seq.append(cssutils.css.CSSComment([token]), 'COMMENT') seq.append(css.CSSComment([token]), 'COMMENT')
return expected return expected
def S(expected, seq, token, tokenizer=None): def S(expected, seq, token, tokenizer=None):
@ -493,7 +518,7 @@ class Seq(object):
else: else:
self._seq.append(item) self._seq.append(item)
def replace(self, index=-1, val=None, typ=None, line=None, col=None): def replace(self, index= - 1, val=None, typ=None, line=None, col=None):
""" """
if not readonly replace Item at index with new Item or if not readonly replace Item at index with new Item or
simply replace value or type simply replace value or type
@ -503,7 +528,13 @@ class Seq(object):
else: else:
self._seq[index] = Item(val, typ, line, col) self._seq[index] = Item(val, typ, line, col)
def appendToVal(self, val=None, index=-1): def rstrip(self):
"trims S items from end of Seq"
while self._seq and self._seq[ - 1].type == tokenize2.CSSProductions.S:
# TODO: removed S before CSSComment /**/ /**/
del self._seq[ - 1]
def appendToVal(self, val=None, index= - 1):
""" """
if not readonly append to Item's value at index if not readonly append to Item's value at index
""" """
@ -516,10 +547,11 @@ class Seq(object):
def __repr__(self): def __repr__(self):
"returns a repr same as a list of tuples of (value, type)" "returns a repr same as a list of tuples of (value, type)"
return u'cssutils.%s.%s([\n %s])' % (self.__module__, return u'cssutils.%s.%s([\n %s], readonly=%r)' % (self.__module__,
self.__class__.__name__, self.__class__.__name__,
u',\n '.join([u'%r' % item for item in self._seq] u',\n '.join([u'%r' % item for item in self._seq]
)) ), self._readonly)
def __str__(self): def __str__(self):
vals = [] vals = []
for v in self: for v in self:
@ -530,9 +562,9 @@ class Seq(object):
else: else:
vals.append(str(v)) vals.append(str(v))
return "<cssutils.%s.%s object length=%r valuestring=%r at 0x%x>" % ( return "<cssutils.%s.%s object length=%r values=%r readonly=%r at 0x%x>" % (
self.__module__, self.__class__.__name__, len(self), self.__module__, self.__class__.__name__, len(self),
u''.join(vals), id(self)) u''.join(vals), self._readonly, id(self))
class Item(object): class Item(object):
""" """
@ -671,7 +703,7 @@ class _Namespaces(object):
prefix = u'' # None or '' prefix = u'' # None or ''
rule = self.__findrule(prefix) rule = self.__findrule(prefix)
if not rule: if not rule:
self.parentStyleSheet.insertRule(cssutils.css.CSSNamespaceRule( self.parentStyleSheet.insertRule(css.CSSNamespaceRule(
prefix=prefix, prefix=prefix,
namespaceURI=namespaceURI), namespaceURI=namespaceURI),
inOrder=True) inOrder=True)
@ -688,7 +720,12 @@ class _Namespaces(object):
if rule.prefix == prefix: if rule.prefix == prefix:
return rule return rule
def __getNamespaces(self): @property
def namespaces(self):
"""
A property holding only effective @namespace rules in
self.parentStyleSheets.
"""
namespaces = {} namespaces = {}
for rule in ifilter(lambda r: r.type == r.NAMESPACE_RULE, for rule in ifilter(lambda r: r.type == r.NAMESPACE_RULE,
reversed(self.parentStyleSheet.cssRules)): reversed(self.parentStyleSheet.cssRules)):
@ -696,10 +733,6 @@ class _Namespaces(object):
namespaces[rule.prefix] = rule.namespaceURI namespaces[rule.prefix] = rule.namespaceURI
return namespaces return namespaces
namespaces = property(__getNamespaces,
doc=u'Holds only effective @namespace rules in self.parentStyleSheets'
'@namespace rules.')
def get(self, prefix, default): def get(self, prefix, default):
return self.namespaces.get(prefix, default) return self.namespaces.get(prefix, default)
@ -751,35 +784,6 @@ class _SimpleNamespaces(_Namespaces):
self.namespaces) self.namespaces)
def _defaultFetcher(url):
"""Retrieve data from ``url``. cssutils default implementation of fetch
URL function.
Returns ``(encoding, string)`` or ``None``
"""
try:
res = urllib2.urlopen(url)
except OSError, e:
# e.g if file URL and not found
cssutils.log.warn(e, error=OSError)
except (OSError, ValueError), e:
# invalid url, e.g. "1"
cssutils.log.warn(u'ValueError, %s' % e.message, error=ValueError)
except urllib2.HTTPError, e:
# http error, e.g. 404, e can be raised
cssutils.log.warn(u'HTTPError opening url=%r: %s %s' %
(url, e.code, e.msg), error=e)
except urllib2.URLError, e:
# URLError like mailto: or other IO errors, e can be raised
cssutils.log.warn(u'URLError, %s' % e.reason, error=e)
else:
if res:
mimeType, encoding = encutils.getHTTPInfo(res)
if mimeType != u'text/css':
cssutils.log.error(u'Expected "text/css" mime type for url=%r but found: %r' %
(url, mimeType), error=ValueError)
return encoding, res.read()
def _readUrl(url, fetcher=None, overrideEncoding=None, parentEncoding=None): def _readUrl(url, fetcher=None, overrideEncoding=None, parentEncoding=None):
""" """
Read cssText from url and decode it using all relevant methods (HTTP Read cssText from url and decode it using all relevant methods (HTTP
@ -825,8 +829,13 @@ def _readUrl(url, fetcher=None, overrideEncoding=None, parentEncoding=None):
enctype = 1 # 1. HTTP enctype = 1 # 1. HTTP
encoding = httpEncoding encoding = httpEncoding
else: else:
# check content if isinstance(content, unicode):
contentEncoding, explicit = cssutils.codec.detectencoding_str(content) # no need to check content as unicode so no BOM
explicit = False
else:
# check content
contentEncoding, explicit = codec.detectencoding_str(content)
if explicit: if explicit:
enctype = 2 # 2. BOM/@charset: explicitly enctype = 2 # 2. BOM/@charset: explicitly
encoding = contentEncoding encoding = contentEncoding
@ -838,18 +847,17 @@ def _readUrl(url, fetcher=None, overrideEncoding=None, parentEncoding=None):
enctype = 5 # 5. assume UTF-8 enctype = 5 # 5. assume UTF-8
encoding = 'utf-8' encoding = 'utf-8'
try: if isinstance(content, unicode):
# encoding may still be wrong if encoding *is lying*! decodedCssText = content
if isinstance(content, unicode): else:
decodedCssText = content try:
elif content is not None: # encoding may still be wrong if encoding *is lying*!
decodedCssText = codecs.lookup("css")[1](content, encoding=encoding)[0] decodedCssText = codecs.lookup("css")[1](content, encoding=encoding)[0]
else: except UnicodeDecodeError, e:
log.warn(e, neverraise=True)
decodedCssText = None decodedCssText = None
except UnicodeDecodeError, e:
cssutils.log.warn(e, neverraise=True)
decodedCssText = None
return encoding, enctype, decodedCssText return encoding, enctype, decodedCssText
else: else:
return None, None, None return None, None, None

873
upload.py
View File

@ -1,11 +1,30 @@
#!/usr/bin/python from __future__ import with_statement
import sys, os, shutil, time, tempfile, socket, fcntl, struct, cStringIO, pycurl, re __license__ = 'GPL 3'
sys.path.append('src') __copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
import subprocess __docformat__ = 'restructuredtext en'
from subprocess import check_call as _check_call
from functools import partial import shutil, os, glob, re, cStringIO, sys, tempfile, time, textwrap, socket, \
struct
from setuptools.command.build_py import build_py as _build_py, convert_path
from distutils.core import Command
from subprocess import check_call, call, Popen
from distutils.command.build import build as _build
raw = open(os.path.join('src', 'calibre', 'constants.py'), 'rb').read()
__version__ = re.search(r'__version__\s+=\s+[\'"]([^\'"]+)[\'"]', raw).group(1)
__appname__ = re.search(r'__appname__\s+=\s+[\'"]([^\'"]+)[\'"]', raw).group(1)
PREFIX = "/var/www/calibre.kovidgoyal.net"
DOWNLOADS = PREFIX+"/htdocs/downloads"
DOCS = PREFIX+"/htdocs/apidocs"
USER_MANUAL = PREFIX+'/htdocs/user_manual'
HTML2LRF = "src/calibre/ebooks/lrf/html/demo"
TXT2LRF = "src/calibre/ebooks/lrf/txt/demo"
MOBILEREAD = 'ftp://dev.mobileread.com/calibre/'
def get_ip_address(ifname): def get_ip_address(ifname):
import fcntl
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl( return socket.inet_ntoa(fcntl.ioctl(
s.fileno(), s.fileno(),
@ -16,252 +35,668 @@ def get_ip_address(ifname):
try: try:
HOST=get_ip_address('eth0') HOST=get_ip_address('eth0')
except: except:
HOST=get_ip_address('wlan0') try:
PROJECT=os.path.basename(os.getcwd()) HOST=get_ip_address('wlan0')
except:
HOST='unknown'
from calibre import __version__, __appname__ def newer(targets, sources):
'''
PREFIX = "/var/www/calibre.kovidgoyal.net" Return True is sources is newer that targets or if targets
DOWNLOADS = PREFIX+"/htdocs/downloads" does not exist.
DOCS = PREFIX+"/htdocs/apidocs" '''
USER_MANUAL = PREFIX+'/htdocs/user_manual' for f in targets:
HTML2LRF = "src/calibre/ebooks/lrf/html/demo" if not os.path.exists(f):
TXT2LRF = "src/calibre/ebooks/lrf/txt/demo" return True
MOBILEREAD = 'ftp://dev.mobileread.com/calibre/' ttimes = map(lambda x: os.stat(x).st_mtime, targets)
BUILD_SCRIPT ='''\ stimes = map(lambda x: os.stat(x).st_mtime, sources)
#!/bin/bash newest_source, oldest_target = max(stimes), min(ttimes)
export CALIBRE_BUILDBOT=1 return newest_source > oldest_target
cd ~/build && \
rsync -avz --exclude src/calibre/plugins --exclude calibre/src/calibre.egg-info --exclude docs --exclude .bzr --exclude .build --exclude build --exclude dist --exclude "*.pyc" --exclude "*.pyo" rsync://%(host)s/work/%(project)s . && \
cd %(project)s && \
%%s && \
rm -rf build/* dist/* && \
%%s %%s
'''%dict(host=HOST, project=PROJECT)
check_call = partial(_check_call, shell=True)
#h = Host(hostType=VIX_SERVICEPROVIDER_VMWARE_WORKSTATION)
def tag_release(): class OptionlessCommand(Command):
print 'Tagging release' user_options = []
check_call('bzr tag '+__version__) def initialize_options(self): pass
check_call('bzr commit --unchanged -m "IGN:Tag release"') def finalize_options(self): pass
def run(self):
for cmd_name in self.get_sub_commands():
self.run_command(cmd_name)
class sdist(OptionlessCommand):
description = 'Create a source distribution using bzr'
def run(self):
name = os.path.join('dist', '%s-%s.tar.gz'%(__appname__, __version__))
check_call(('bzr export '+name).split())
self.distribution.dist_files.append(('sdist', '', name))
print 'Source distribution created in', os.path.abspath(name)
class pot(OptionlessCommand):
description = '''Create the .pot template for all translatable strings'''
PATH = os.path.join('src', __appname__, 'translations')
def source_files(self):
ans = []
for root, _, files in os.walk(os.path.dirname(self.PATH)):
for name in files:
if name.endswith('.py'):
ans.append(os.path.abspath(os.path.join(root, name)))
return ans
def run(self):
sys.path.insert(0, os.path.abspath(self.PATH))
try:
pygettext = __import__('pygettext', fromlist=['main']).main
files = self.source_files()
buf = cStringIO.StringIO()
print 'Creating translations template'
tempdir = tempfile.mkdtemp()
pygettext(buf, ['-k', '__', '-p', tempdir]+files)
src = buf.getvalue()
pot = os.path.join(tempdir, __appname__+'.pot')
f = open(pot, 'wb')
f.write(src)
f.close()
print 'Translations template:', pot
return pot
finally:
sys.path.remove(os.path.abspath(self.PATH))
class manual(OptionlessCommand):
description='''Build the User Manual '''
def run(self):
cwd = os.path.abspath(os.getcwd())
os.chdir(os.path.join('src', 'calibre', 'manual'))
try:
for d in ('.build', 'cli'):
if os.path.exists(d):
shutil.rmtree(d)
os.makedirs(d)
if not os.path.exists('.build'+os.sep+'html'):
os.makedirs('.build'+os.sep+'html')
check_call(['sphinx-build', '-b', 'custom', '-d',
'.build/doctrees', '.', '.build/html'])
finally:
os.chdir(cwd)
@classmethod
def clean(cls):
path = os.path.join('src', 'calibre', 'manual', '.build')
if os.path.exists(path):
shutil.rmtree(path)
class resources(OptionlessCommand):
description='''Compile various resource files used in calibre. '''
RESOURCES = dict(
opf_template = 'ebooks/metadata/opf.xml',
ncx_template = 'ebooks/metadata/ncx.xml',
fb2_xsl = 'ebooks/lrf/fb2/fb2.xsl',
metadata_sqlite = 'library/metadata_sqlite.sql',
jquery = 'gui2/viewer/jquery.js',
jquery_scrollTo = 'gui2/viewer/jquery_scrollTo.js',
html_css = 'ebooks/oeb/html.css',
)
DEST = os.path.join('src', __appname__, 'resources.py')
def get_qt_translations(self):
data = {}
translations_found = False
for TPATH in ('/usr/share/qt4/translations', '/usr/lib/qt4/translations'):
if os.path.exists(TPATH):
files = glob.glob(TPATH + '/qt_??.qm')
for f in files:
key = os.path.basename(f).partition('.')[0]
data[key] = f
translations_found = True
break
if not translations_found:
print 'WARNING: Could not find Qt transations'
return data
def get_static_resources(self):
sdir = os.path.join('src', 'calibre', 'library', 'static')
resources, max = {}, 0
for f in os.listdir(sdir):
resources[f] = open(os.path.join(sdir, f), 'rb').read()
mtime = os.stat(os.path.join(sdir, f)).st_mtime
max = mtime if mtime > max else max
return resources, max
def get_recipes(self):
sdir = os.path.join('src', 'calibre', 'web', 'feeds', 'recipes')
resources, max = {}, 0
for f in os.listdir(sdir):
if f.endswith('.py') and f != '__init__.py':
resources[f.replace('.py', '')] = open(os.path.join(sdir, f), 'rb').read()
mtime = os.stat(os.path.join(sdir, f)).st_mtime
max = mtime if mtime > max else max
return resources, max
def run(self):
data, dest, RESOURCES = {}, self.DEST, self.RESOURCES
for key in RESOURCES:
path = RESOURCES[key]
if not os.path.isabs(path):
RESOURCES[key] = os.path.join('src', __appname__, path)
translations = self.get_qt_translations()
RESOURCES.update(translations)
static, smax = self.get_static_resources()
recipes, rmax = self.get_recipes()
amax = max(rmax, smax)
if newer([dest], RESOURCES.values()) or os.stat(dest).st_mtime < amax:
print 'Compiling resources...'
with open(dest, 'wb') as f:
for key in RESOURCES:
data = open(RESOURCES[key], 'rb').read()
f.write(key + ' = ' + repr(data)+'\n\n')
f.write('server_resources = %s\n\n'%repr(static))
f.write('recipes = %s\n\n'%repr(recipes))
f.write('build_time = "%s"\n\n'%time.strftime('%d %m %Y %H%M%S'))
else:
print 'Resources are up to date'
@classmethod
def clean(cls):
path = cls.DEST
for path in glob.glob(path+'*'):
if os.path.exists(path):
os.remove(path)
class translations(OptionlessCommand):
description='''Compile the translations'''
PATH = os.path.join('src', __appname__, 'translations')
DEST = os.path.join(PATH, 'compiled.py')
def run(self):
sys.path.insert(0, os.path.abspath(self.PATH))
try:
files = glob.glob(os.path.join(self.PATH, '*.po'))
if newer([self.DEST], files):
msgfmt = __import__('msgfmt', fromlist=['main']).main
translations = {}
print 'Compiling translations...'
for po in files:
lang = os.path.basename(po).partition('.')[0]
buf = cStringIO.StringIO()
print 'Compiling', lang
msgfmt(buf, [po])
translations[lang] = buf.getvalue()
open(self.DEST, 'wb').write('translations = '+repr(translations))
else:
print 'Translations up to date'
finally:
sys.path.remove(os.path.abspath(self.PATH))
@classmethod
def clean(cls):
path = cls.DEST
if os.path.exists(path):
os.remove(path)
class gui(OptionlessCommand):
description='''Compile all GUI forms and images'''
PATH = os.path.join('src', __appname__, 'gui2')
IMAGES_DEST = os.path.join(PATH, 'images_rc.py')
QRC = os.path.join(PATH, 'images.qrc')
@classmethod
def find_forms(cls):
forms = []
for root, _, files in os.walk(cls.PATH):
for name in files:
if name.endswith('.ui'):
forms.append(os.path.abspath(os.path.join(root, name)))
return forms
@classmethod
def form_to_compiled_form(cls, form):
return form.rpartition('.')[0]+'_ui.py'
def run(self):
self.build_forms()
self.build_images()
def build_images(self):
cwd, images = os.getcwd(), os.path.basename(self.IMAGES_DEST)
try:
os.chdir(self.PATH)
sources, files = [], []
for root, _, files in os.walk('images'):
for name in files:
sources.append(os.path.join(root, name))
if newer([images], sources):
print 'Compiling images...'
for s in sources:
alias = ' alias="library"' if s.endswith('images'+os.sep+'library.png') else ''
files.append('<file%s>%s</file>'%(alias, s))
manifest = '<RCC>\n<qresource prefix="/">\n%s\n</qresource>\n</RCC>'%'\n'.join(files)
with open('images.qrc', 'wb') as f:
f.write(manifest)
check_call(['pyrcc4', '-o', images, 'images.qrc'])
else:
print 'Images are up to date'
finally:
os.chdir(cwd)
def build_forms(self):
from PyQt4.uic import compileUi
forms = self.find_forms()
for form in forms:
compiled_form = self.form_to_compiled_form(form)
if not os.path.exists(compiled_form) or os.stat(form).st_mtime > os.stat(compiled_form).st_mtime:
print 'Compiling form', form
buf = cStringIO.StringIO()
compileUi(form, buf)
dat = buf.getvalue()
dat = dat.replace('__appname__', __appname__)
dat = dat.replace('import images_rc', 'from calibre.gui2 import images_rc')
dat = dat.replace('from library import', 'from calibre.gui2.library import')
dat = dat.replace('from widgets import', 'from calibre.gui2.widgets import')
dat = re.compile(r'QtGui.QApplication.translate\(.+?,\s+"(.+?)(?<!\\)",.+?\)', re.DOTALL).sub(r'_("\1")', dat)
# Workaround bug in Qt 4.4 on Windows
if form.endswith('dialogs%sconfig.ui'%os.sep) or form.endswith('dialogs%slrf_single.ui'%os.sep):
print 'Implementing Workaround for buggy pyuic in form', form
dat = re.sub(r'= QtGui\.QTextEdit\(self\..*?\)', '= QtGui.QTextEdit()', dat)
dat = re.sub(r'= QtGui\.QListWidget\(self\..*?\)', '= QtGui.QListWidget()', dat)
if form.endswith('viewer%smain.ui'%os.sep):
print 'Promoting WebView'
dat = dat.replace('self.view = QtWebKit.QWebView(', 'self.view = DocumentView(')
dat += '\n\nfrom calibre.gui2.viewer.documentview import DocumentView'
open(compiled_form, 'wb').write(dat)
@classmethod
def clean(cls):
forms = cls.find_forms()
for form in forms:
c = cls.form_to_compiled_form(form)
if os.path.exists(c):
os.remove(c)
for x in (cls.IMAGES_DEST, cls.QRC):
if os.path.exists(x):
os.remove(x)
class clean(OptionlessCommand):
description='''Delete all computer generated files in the source tree'''
def run(self):
print 'Cleaning...'
manual.clean()
gui.clean()
translations.clean()
resources.clean()
for f in glob.glob(os.path.join('src', 'calibre', 'plugins', '*')):
os.remove(f)
for root, _, files in os.walk('.'):
for name in files:
for t in ('.pyc', '.pyo', '~'):
if name.endswith(t):
os.remove(os.path.join(root, name))
break
for dir in ('build', 'dist', os.path.join('src', 'calibre.egg-info')):
shutil.rmtree(dir, ignore_errors=True)
class build_py(_build_py):
def find_data_files(self, package, src_dir):
"""
Return filenames for package's data files in 'src_dir'
Modified to treat data file specs as paths not globs
"""
globs = (self.package_data.get('', [])
+ self.package_data.get(package, []))
files = self.manifest_files.get(package, [])[:]
for pattern in globs:
# Each pattern has to be converted to a platform-specific path
pattern = os.path.join(src_dir, convert_path(pattern))
next = glob.glob(pattern)
files.extend(next if next else [pattern])
return self.exclude_data_files(package, src_dir, files)
class build(_build):
sub_commands = [
('resources', lambda self : 'CALIBRE_BUILDBOT' not in os.environ.keys()),
('translations', lambda self : 'CALIBRE_BUILDBOT' not in os.environ.keys()),
('gui', lambda self : 'CALIBRE_BUILDBOT' not in os.environ.keys()),
('build_ext', lambda self: True),
('build_py', lambda self: True),
('build_clib', _build.has_c_libraries),
('build_scripts', _build.has_scripts),
]
class update(OptionlessCommand):
description = 'Rebuild plugins and run develop. Should be called after ' +\
' a version update.'
def run(self):
for x in ['build', 'dist', 'docs'] + \
glob.glob(os.path.join('src', 'calibre', 'plugins', '*')):
if os.path.exists(x):
if os.path.isdir(x):
check_call('sudo rm -rf '+x, shell=True)
os.mkdir(x)
else:
os.remove(x)
check_call('python setup.py build_ext build'.split())
check_call('sudo python setup.py develop'.split())
class tag_release(OptionlessCommand):
description = 'Tag a new release in bzr'
def run(self):
print 'Tagging release'
check_call(('bzr tag '+__version__).split())
check_call('bzr commit --unchanged -m'.split() + ['IGN:Tag release'])
class upload_demo(OptionlessCommand):
description = 'Rebuild and upload various demos'
def run(self):
check_call(
'''html2lrf --title='Demonstration of html2lrf' --author='Kovid Goyal' '''
'''--header --output=/tmp/html2lrf.lrf %s/demo.html '''
'''--serif-family "/usr/share/fonts/corefonts, Times New Roman" '''
'''--mono-family "/usr/share/fonts/corefonts, Andale Mono" '''
''''''%(HTML2LRF,), shell=True)
check_call(
'cd src/calibre/ebooks/lrf/html/demo/ && '
'zip -j /tmp/html-demo.zip * /tmp/html2lrf.lrf', shell=True)
check_call('scp /tmp/html-demo.zip divok:%s/'%(DOWNLOADS,), shell=True)
check_call(
'''txt2lrf -t 'Demonstration of txt2lrf' -a 'Kovid Goyal' '''
'''--header -o /tmp/txt2lrf.lrf %s/demo.txt'''%(TXT2LRF,), shell=True)
check_call('cd src/calibre/ebooks/lrf/txt/demo/ && '
'zip -j /tmp/txt-demo.zip * /tmp/txt2lrf.lrf', shell=True)
check_call('''scp /tmp/txt-demo.zip divok:%s/'''%(DOWNLOADS,), shell=True)
def installer_name(ext): def installer_name(ext):
if ext in ('exe', 'dmg'): if ext in ('exe', 'dmg'):
return 'dist/%s-%s.%s'%(__appname__, __version__, ext) return 'dist/%s-%s.%s'%(__appname__, __version__, ext)
return 'dist/%s-%s-i686.%s'%(__appname__, __version__, ext) return 'dist/%s-%s-i686.%s'%(__appname__, __version__, ext)
def start_vm(vm, ssh_host, build_script, sleep=75):
vmware = ('vmware', '-q', '-x', '-n', vm)
subprocess.Popen(vmware)
t = tempfile.NamedTemporaryFile(suffix='.sh')
t.write(build_script)
t.flush()
print 'Waiting for VM to startup'
while subprocess.call('ping -q -c1 '+ssh_host, shell=True, stdout=open('/dev/null', 'w')) != 0:
time.sleep(5)
time.sleep(20)
print 'Trying to SSH into VM'
subprocess.check_call(('scp', t.name, ssh_host+':build-'+PROJECT))
subprocess.check_call('ssh -t %s bash build-%s'%(ssh_host, PROJECT), shell=True)
def run_windows_install_jammer(installer): class build_linux(OptionlessCommand):
ibp = os.path.abspath('installer/windows') description = 'Build linux installer'
sys.path.insert(0, ibp) def run(self):
import build_installer installer = installer_name('tar.bz2')
sys.path.remove(ibp) locals = {}
build_installer.run_install_jammer(installer_name=os.path.basename(installer)) exec open('installer/linux/freeze.py') in locals
if not os.path.exists(installer): locals['freeze']()
raise Exception('Failed to run installjammer') if not os.path.exists(installer):
raise Exception('Failed to build installer '+installer)
return os.path.basename(installer)
def build_windows(shutdown=True): class VMInstaller(OptionlessCommand):
installer = installer_name('exe')
vm = '/mnt/backup/calibre_windows_xp_home/calibre_windows_xp_home.vmx'
start_vm(vm, 'windows', BUILD_SCRIPT%('python setup.py develop', 'python','installer\\\\windows\\\\freeze.py'))
if os.path.exists('build/py2exe'):
shutil.rmtree('build/py2exe')
subprocess.check_call(('scp', '-rp', 'windows:build/%s/build/py2exe'%PROJECT, 'build'))
if not os.path.exists('build/py2exe'):
raise Exception('Failed to run py2exe')
if shutdown:
subprocess.Popen(('ssh', 'windows', 'shutdown', '-s', '-t', '0'))
run_windows_install_jammer(installer)
return os.path.basename(installer)
def build_osx(shutdown=True): user_options = [('dont-shutdown', 'd', 'Dont shutdown Vm after build')]
installer = installer_name('dmg') boolean_options = ['dont-shutdown']
vm = '/vmware/Mac OSX/Mac OSX.vmx'
python = '/Library/Frameworks/Python.framework/Versions/Current/bin/python' def initialize_options(self):
start_vm(vm, 'osx', (BUILD_SCRIPT%('sudo %s setup.py develop'%python, python, 'installer/osx/freeze.py')).replace('rm ', 'sudo rm ')) self.dont_shutdown = False
subprocess.check_call(('scp', 'osx:build/%s/dist/*.dmg'%PROJECT, 'dist'))
if not os.path.exists(installer): BUILD_SCRIPT = textwrap.dedent('''\
raise Exception('Failed to build installer '+installer) #!/bin/bash
if shutdown: export CALIBRE_BUILDBOT=1
subprocess.Popen(('ssh', 'osx', 'sudo', '/sbin/shutdown', '-h', 'now')) cd ~/build && \
return os.path.basename(installer) rsync -avz --exclude src/calibre/plugins \
--exclude calibre/src/calibre.egg-info --exclude docs \
--exclude .bzr --exclude .build --exclude build --exclude dist \
--exclude "*.pyc" --exclude "*.pyo" \
rsync://%(host)s/work/%(project)s . && \
cd %(project)s && \
%%s && \
rm -rf build/* dist/* && \
%%s %%s
'''%dict(host=HOST, project=__appname__))
def get_build_script(self, subs):
return self.BUILD_SCRIPT%subs
def start_vm(self, ssh_host, build_script, sleep=75):
build_script = self.get_build_script(build_script)
vmware = ('vmware', '-q', '-x', '-n', self.VM)
Popen(vmware)
t = tempfile.NamedTemporaryFile(suffix='.sh')
t.write(build_script)
t.flush()
print 'Waiting for VM to startup'
while call('ping -q -c1 '+ssh_host, shell=True,
stdout=open('/dev/null', 'w')) != 0:
time.sleep(5)
time.sleep(20)
print 'Trying to SSH into VM'
check_call(('scp', t.name, ssh_host+':build-calibre'))
check_call('ssh -t %s bash build-calibre'%ssh_host, shell=True)
class build_windows(VMInstaller):
description = 'Build windows installer'
VM = '/mnt/backup/calibre_windows_xp_home/calibre_windows_xp_home.vmx'
if not os.path.exists(VM):
VM = '/home/kovid/calibre_windows_xp_home/calibre_windows_xp_home.vmx'
def run(self):
installer = installer_name('exe')
self.start_vm('windows', ('python setup.py develop',
'python',
r'installer\\windows\\freeze.py'))
if os.path.exists('build/py2exe'):
shutil.rmtree('build/py2exe')
check_call(('scp', '-rp', 'windows:build/%s/build/py2exe'%__appname__,
'build'))
if not os.path.exists('build/py2exe'):
raise Exception('Failed to run py2exe')
if not self.dont_shutdown:
Popen(('ssh', 'windows', 'shutdown', '-s', '-t', '0'))
self.run_windows_install_jammer(installer)
return os.path.basename(installer)
def run_windows_install_jammer(self, installer):
ibp = os.path.abspath('installer/windows')
sys.path.insert(0, ibp)
build_installer = __import__('build_installer')
sys.path.remove(ibp)
build_installer.run_install_jammer(
installer_name=os.path.basename(installer))
if not os.path.exists(installer):
raise Exception('Failed to run installjammer')
def build_linux(*args, **kwargs): class build_osx(VMInstaller):
installer = installer_name('tar.bz2') description = 'Build OS X app bundle'
exec open('installer/linux/freeze.py') VM = '/vmware/Mac OSX/Mac OSX.vmx'
freeze() if not os.path.exists(VM):
if not os.path.exists(installer): VM = '/home/kovid/calibre_os_x/Mac OSX.vmx'
raise Exception('Failed to build installer '+installer)
return os.path.basename(installer)
def build_installers(): def get_build_script(self, subs):
return build_linux(), build_windows(), build_osx() return (self.BUILD_SCRIPT%subs).replace('rm ', 'sudo rm ')
def upload_demo(): def run(self):
check_call('''html2lrf --title='Demonstration of html2lrf' --author='Kovid Goyal' ''' installer = installer_name('dmg')
'''--header --output=/tmp/html2lrf.lrf %s/demo.html ''' python = '/Library/Frameworks/Python.framework/Versions/Current/bin/python'
'''--serif-family "/usr/share/fonts/corefonts, Times New Roman" ''' self.start_vm('osx', ('sudo %s setup.py develop'%python, python,
'''--mono-family "/usr/share/fonts/corefonts, Andale Mono" ''' 'installer/osx/freeze.py'))
''''''%(HTML2LRF,)) check_call(('scp', 'osx:build/calibre/dist/*.dmg', 'dist'))
check_call('cd src/calibre/ebooks/lrf/html/demo/ && zip -j /tmp/html-demo.zip * /tmp/html2lrf.lrf') if not os.path.exists(installer):
check_call('''scp /tmp/html-demo.zip divok:%s/'''%(DOWNLOADS,)) raise Exception('Failed to build installer '+installer)
check_call('''txt2lrf -t 'Demonstration of txt2lrf' -a 'Kovid Goyal' ''' if not self.dont_shutdown:
'''--header -o /tmp/txt2lrf.lrf %s/demo.txt'''%(TXT2LRF,) ) Popen(('ssh', 'osx', 'sudo', '/sbin/shutdown', '-h', 'now'))
check_call('cd src/calibre/ebooks/lrf/txt/demo/ && zip -j /tmp/txt-demo.zip * /tmp/txt2lrf.lrf') return os.path.basename(installer)
check_call('''scp /tmp/txt-demo.zip divok:%s/'''%(DOWNLOADS,))
def curl_list_dir(url=MOBILEREAD, listonly=1):
c = pycurl.Curl()
c.setopt(pycurl.URL, url)
c.setopt(c.FTP_USE_EPSV, 1)
c.setopt(c.NETRC, c.NETRC_REQUIRED)
c.setopt(c.FTPLISTONLY, listonly)
c.setopt(c.FTP_CREATE_MISSING_DIRS, 1)
b = cStringIO.StringIO()
c.setopt(c.WRITEFUNCTION, b.write)
c.perform()
c.close()
return b.getvalue().split() if listonly else b.getvalue().splitlines()
def curl_delete_file(path, url=MOBILEREAD):
c = pycurl.Curl()
c.setopt(pycurl.URL, url)
c.setopt(c.FTP_USE_EPSV, 1)
c.setopt(c.NETRC, c.NETRC_REQUIRED)
print 'Deleting file %s on %s'%(path, url)
c.setopt(c.QUOTE, ['dele '+ path])
c.perform()
c.close()
def curl_upload_file(stream, url):
c = pycurl.Curl() class upload_installers(OptionlessCommand):
c.setopt(pycurl.URL, url) description = 'Upload any installers present in dist/'
c.setopt(pycurl.UPLOAD, 1) def curl_list_dir(self, url=MOBILEREAD, listonly=1):
c.setopt(c.NETRC, c.NETRC_REQUIRED) import pycurl
c.setopt(pycurl.READFUNCTION, stream.read) c = pycurl.Curl()
stream.seek(0, 2) c.setopt(pycurl.URL, url)
c.setopt(pycurl.INFILESIZE_LARGE, stream.tell()) c.setopt(c.FTP_USE_EPSV, 1)
stream.seek(0) c.setopt(c.NETRC, c.NETRC_REQUIRED)
c.setopt(c.NOPROGRESS, 0) c.setopt(c.FTPLISTONLY, listonly)
c.setopt(c.FTP_CREATE_MISSING_DIRS, 1) c.setopt(c.FTP_CREATE_MISSING_DIRS, 1)
print 'Uploading file %s to url %s' % (getattr(stream, 'name', ''), url) b = cStringIO.StringIO()
try: c.setopt(c.WRITEFUNCTION, b.write)
c.perform()
c.close()
return b.getvalue().split() if listonly else b.getvalue().splitlines()
def curl_delete_file(self, path, url=MOBILEREAD):
import pycurl
c = pycurl.Curl()
c.setopt(pycurl.URL, url)
c.setopt(c.FTP_USE_EPSV, 1)
c.setopt(c.NETRC, c.NETRC_REQUIRED)
print 'Deleting file %s on %s'%(path, url)
c.setopt(c.QUOTE, ['dele '+ path])
c.perform() c.perform()
c.close() c.close()
except:
pass
files = curl_list_dir(listonly=0)
for line in files:
line = line.split()
if url.endswith(line[-1]):
size = long(line[4])
stream.seek(0,2)
if size != stream.tell():
raise RuntimeError('curl failed to upload %s correctly'%getattr(stream, 'name', ''))
def curl_upload_file(self, stream, url):
import pycurl
c = pycurl.Curl()
c.setopt(pycurl.URL, url)
c.setopt(pycurl.UPLOAD, 1)
c.setopt(c.NETRC, c.NETRC_REQUIRED)
c.setopt(pycurl.READFUNCTION, stream.read)
stream.seek(0, 2)
c.setopt(pycurl.INFILESIZE_LARGE, stream.tell())
stream.seek(0)
c.setopt(c.NOPROGRESS, 0)
c.setopt(c.FTP_CREATE_MISSING_DIRS, 1)
print 'Uploading file %s to url %s' % (getattr(stream, 'name', ''), url)
try:
c.perform()
c.close()
except:
pass
files = self.curl_list_dir(listonly=0)
for line in files:
line = line.split()
if url.endswith(line[-1]):
size = long(line[4])
stream.seek(0,2)
if size != stream.tell():
raise RuntimeError('curl failed to upload %s correctly'%getattr(stream, 'name', ''))
def upload_installer(name): def upload_installer(self, name):
if not os.path.exists(name): if not os.path.exists(name):
return return
bname = os.path.basename(name) bname = os.path.basename(name)
pat = re.compile(bname.replace(__version__, r'\d+\.\d+\.\d+')) pat = re.compile(bname.replace(__version__, r'\d+\.\d+\.\d+'))
for f in curl_list_dir(): for f in self.curl_list_dir():
if pat.search(f): if pat.search(f):
curl_delete_file('/calibre/'+f) self.curl_delete_file('/calibre/'+f)
curl_upload_file(open(name, 'rb'), MOBILEREAD+os.path.basename(name)) self.curl_upload_file(open(name, 'rb'), MOBILEREAD+os.path.basename(name))
def upload_installers(): def run(self):
for i in ('dmg', 'exe', 'tar.bz2'): print 'Uploading installers...'
upload_installer(installer_name(i)) for i in ('dmg', 'exe', 'tar.bz2'):
self.upload_installer(installer_name(i))
check_call('''ssh divok echo %s \\> %s/latest_version'''%(__version__, DOWNLOADS)) check_call('''ssh divok echo %s \\> %s/latest_version'''\
%(__version__, DOWNLOADS), shell=True)
class upload_user_manual(OptionlessCommand):
description = 'Build and upload the User Manual'
sub_commands = [('manual', None)]
def upload_docs(): def run(self):
check_call('''epydoc --config epydoc.conf''') OptionlessCommand.run(self)
check_call('''scp -r docs/html divok:%s/'''%(DOCS,)) check_call(' '.join(['scp', '-r', 'src/calibre/manual/.build/html/*',
check_call('''epydoc -v --config epydoc-pdf.conf''') 'divok:%s'%USER_MANUAL]), shell=True)
check_call('''scp docs/pdf/api.pdf divok:%s/'''%(DOCS,))
def upload_user_manual(): class upload_to_pypi(OptionlessCommand):
check_call('python setup.py manual') description = 'Upload eggs and source to PyPI'
check_call('scp -r src/calibre/manual/.build/html/* divok:%s'%USER_MANUAL) def run(self):
check_call('python setup.py register'.split())
check_call('rm -f dist/*', shell=True)
check_call('sudo rm -rf build src/calibre/plugins/*', shell=True)
os.mkdir('build')
check_call('python2.5 setup.py build_ext bdist_egg --exclude-source-files upload'.split())
check_call('sudo rm -rf build src/calibre/plugins/*', shell=True)
os.mkdir('build')
check_call('python setup.py build_ext bdist_egg --exclude-source-files upload'.split())
check_call('python setup.py sdist upload'.split())
def build_src_tarball(): class stage3(OptionlessCommand):
check_call('bzr export dist/calibre-%s.tar.gz'%__version__) description = 'Stage 3 of the build process'
sub_commands = [
('upload_installers', None),
('upload_user_manual', None),
('upload_to_pypi', None),
]
def upload_src_tarball(): @classmethod
check_call('ssh divok rm -f %s/calibre-\*.tar.gz'%DOWNLOADS) def misc(cls):
check_call('scp dist/calibre-*.tar.gz divok:%s/'%DOWNLOADS) check_call('ssh divok rm -f %s/calibre-\*.tar.gz'%DOWNLOADS, shell=True)
check_call('scp dist/calibre-*.tar.gz divok:%s/'%DOWNLOADS, shell=True)
check_call('''rm -rf dist/* build/*''', shell=True)
check_call('ssh divok bzr update /var/www/calibre.kovidgoyal.net/calibre/',
shell=True)
def stage_one(): def run(self):
check_call('sudo rm -rf build src/calibre/plugins/*', shell=True) OptionlessCommand.run(self)
os.mkdir('build') self.misc()
shutil.rmtree('docs')
os.mkdir('docs')
check_call('python setup.py build_ext build', shell=True)
check_call('sudo python setup.py develop', shell=True)
tag_release()
upload_demo()
def stage_two(): class stage2(OptionlessCommand):
subprocess.check_call('rm -rf dist/*', shell=True) description = 'Stage 2 of the build process'
build_installers() sub_commands = [
('build_linux', None),
('build_windows', None),
('build_osx', None)
]
def stage_three(): def run(self):
print 'Uploading installers...' check_call('rm -rf dist/*', shell=True)
upload_installers() OptionlessCommand.run(self)
print 'Uploading documentation...'
#upload_docs()
upload_user_manual()
print 'Uploading to PyPI...'
check_call('rm -f dist/*')
check_call('python setup.py register')
check_call('sudo rm -rf build src/calibre/plugins/*')
os.mkdir('build')
check_call('python2.5 setup.py build_ext bdist_egg --exclude-source-files upload')
check_call('sudo rm -rf build src/calibre/plugins/*')
os.mkdir('build')
check_call('python setup.py build_ext bdist_egg --exclude-source-files upload')
check_call('python setup.py sdist upload')
upload_src_tarball()
check_call('''rm -rf dist/* build/*''')
check_call('''ssh divok bzr update /var/www/calibre.kovidgoyal.net/calibre/''')
def betas(): class stage1(OptionlessCommand):
subprocess.check_call('rm -f dist/*', shell=True) description = 'Stage 1 of the build process'
build_installers() sub_commands = [
check_call('ssh divok rm -f /var/www/calibre.kovidgoyal.net/htdocs/downloads/betas/*') ('update', None),
check_call('scp dist/* divok:/var/www/calibre.kovidgoyal.net/htdocs/downloads/betas/') ('tag_release', None),
('upload_demo', None),
]
def main(args=sys.argv): class upload(OptionlessCommand):
print 'Starting stage one...' description = 'Build and upload calibre to the servers'
stage_one()
print 'Starting stage two...'
stage_two()
print 'Starting stage three...'
stage_three()
print 'Finished'
return 0
sub_commands = [
if __name__ == '__main__': ('stage1', None),
sys.exit(main()) ('stage2', None),
('stage3', None)
]