mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-12-27 23:30:20 -05:00
Sync to trunk
This commit is contained in:
commit
fc73e6f09c
@ -28,33 +28,12 @@ for icon in ICONS:
|
||||
raise Exception('No icon at '+icon)
|
||||
|
||||
VERSION = re.sub('[a-z]\d+', '', VERSION)
|
||||
WINVER = VERSION+'.0'
|
||||
|
||||
PY2EXE_DIR = os.path.join(BASE_DIR, 'build','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):
|
||||
py2exe.build_exe.py2exe.run(self)
|
||||
print 'Adding plugins...'
|
||||
@ -128,40 +107,36 @@ class BuildEXE(py2exe.build_exe.py2exe):
|
||||
for f in glob.glob(os.path.join(VC90, '*')):
|
||||
shutil.copyfile(f, os.path.join(PY2EXE_DIR, os.path.basename(f)))
|
||||
|
||||
|
||||
@classmethod
|
||||
def manifest(cls, prog):
|
||||
cls.manifest_resource_id += 1
|
||||
return (24, cls.manifest_resource_id,
|
||||
cls.MANIFEST_TEMPLATE % dict(prog=prog, version=(VERSION+'.0')))
|
||||
|
||||
|
||||
def exe_factory(dest_base, script, icon_resources=None):
|
||||
exe = {
|
||||
'dest_base' : dest_base,
|
||||
'script' : script,
|
||||
'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):
|
||||
sys.argv[1:2] = ['py2exe']
|
||||
if os.path.exists(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']))]
|
||||
setup(
|
||||
cmdclass = {'py2exe': BuildEXE},
|
||||
windows = [
|
||||
{'script' : scripts['gui'][0],
|
||||
'dest_base' : APPNAME,
|
||||
'icon_resources' : [(1, ICONS[0])],
|
||||
#'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')],
|
||||
},
|
||||
],
|
||||
exe_factory(APPNAME, scripts['gui'][0], [(1, ICONS[0])]),
|
||||
exe_factory('lrfviewer', scripts['gui'][1], [(1, ICONS[1])]),
|
||||
exe_factory('ebook-viewer', scripts['gui'][2], [(1, ICONS[1])]),
|
||||
],
|
||||
console = console,
|
||||
options = { 'py2exe' : {'compressed': 1,
|
||||
'optimize' : 2,
|
||||
|
||||
372
setup.py
372
setup.py
@ -47,350 +47,15 @@ main_functions = {
|
||||
|
||||
if __name__ == '__main__':
|
||||
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
|
||||
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):
|
||||
'''
|
||||
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')
|
||||
entry_points['console_scripts'].append(
|
||||
'calibre_postinstall = calibre.linux:post_install')
|
||||
ext_modules = [
|
||||
Extension('calibre.plugins.lzx',
|
||||
sources=['src/calibre/utils/lzx/lzxmodule.c',
|
||||
@ -430,8 +95,10 @@ if __name__ == '__main__':
|
||||
plugins = ['plugins/%s.so'%(x.name.rpartition('.')[-1]) for x in ext_modules]
|
||||
else:
|
||||
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(
|
||||
name = APPNAME,
|
||||
packages = find_packages('src'),
|
||||
@ -451,7 +118,11 @@ if __name__ == '__main__':
|
||||
''',
|
||||
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
|
||||
|
||||
@ -490,6 +161,19 @@ if __name__ == '__main__':
|
||||
'gui' : gui,
|
||||
'clean' : clean,
|
||||
'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,
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@ -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-truetype', '.ttf')
|
||||
mimetypes.add_type('application/oebps-package+xml', '.opf')
|
||||
|
||||
import cssutils
|
||||
cssutils.log.setLevel(logging.WARN)
|
||||
|
||||
def to_unicode(raw, encoding='utf-8', errors='strict'):
|
||||
if isinstance(raw, unicode):
|
||||
|
||||
@ -2,7 +2,7 @@ __license__ = 'GPL v3'
|
||||
__copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net'
|
||||
__docformat__ = 'restructuredtext en'
|
||||
__appname__ = 'calibre'
|
||||
__version__ = '0.4.137'
|
||||
__version__ = '0.4.138'
|
||||
__author__ = "Kovid Goyal <kovid@kovidgoyal.net>"
|
||||
'''
|
||||
Various run time constants.
|
||||
|
||||
@ -310,6 +310,8 @@ def create_cover_image(src, dest, screen_size, rescale_cover=True):
|
||||
def process_title_page(mi, filelist, htmlfilemap, opts, tdir):
|
||||
old_title_page = None
|
||||
f = lambda x : os.path.normcase(os.path.normpath(x))
|
||||
if not isinstance(mi.cover, basestring):
|
||||
mi.cover = None
|
||||
if mi.cover:
|
||||
if f(filelist[0].path) == f(mi.cover):
|
||||
old_title_page = htmlfilemap[filelist[0].path]
|
||||
|
||||
@ -332,6 +332,8 @@ class PreProcessor(object):
|
||||
(re.compile(r'&(\S+?);'), convert_entities),
|
||||
# Remove the <![if/endif tags inserted by everybody's darling, MS Word
|
||||
(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
|
||||
@ -491,9 +493,25 @@ class Parser(PreProcessor, LoggingInterface):
|
||||
self.root.insert(0, 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]'):
|
||||
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'):
|
||||
title = etree.SubElement(self.head, 'title')
|
||||
title.text = _('Unknown')
|
||||
|
||||
@ -780,7 +780,7 @@ class LitReader(object):
|
||||
if u != 0:
|
||||
raise LitError("Reset table entry greater than 32 bits")
|
||||
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:
|
||||
lzx.reset()
|
||||
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
@ -249,9 +249,6 @@ class MobiReader(object):
|
||||
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('> <', '>\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):
|
||||
if self.verbose:
|
||||
@ -273,8 +270,6 @@ class MobiReader(object):
|
||||
for key in tag.attrib.keys():
|
||||
tag.attrib.pop(key)
|
||||
continue
|
||||
if tag.tag == 'pre' and not tag.text:
|
||||
tag.tag = 'div'
|
||||
styles, attrib = [], tag.attrib
|
||||
if attrib.has_key('style'):
|
||||
style = attrib.pop('style').strip()
|
||||
@ -294,35 +289,44 @@ class MobiReader(object):
|
||||
align = attrib.pop('align').strip()
|
||||
if align:
|
||||
styles.append('text-align: %s' % align)
|
||||
if mobi_version == 1 and tag.tag == 'hr':
|
||||
tag.tag = 'div'
|
||||
styles.append('page-break-before: always')
|
||||
styles.append('display: block')
|
||||
styles.append('margin: 0')
|
||||
if styles:
|
||||
attrib['style'] = '; '.join(styles)
|
||||
|
||||
if tag.tag.lower() == 'font':
|
||||
if tag.tag == 'hr':
|
||||
if mobi_version == 1:
|
||||
tag.tag = 'div'
|
||||
styles.append('page-break-before: always')
|
||||
styles.append('display: block')
|
||||
styles.append('margin: 0')
|
||||
elif tag.tag == 'i':
|
||||
tag.tag = 'span'
|
||||
tag.attrib['class'] = 'italic'
|
||||
elif tag.tag == 'b':
|
||||
tag.tag = 'span'
|
||||
tag.attrib['class'] = 'bold'
|
||||
elif tag.tag == 'font':
|
||||
sz = tag.get('size', '').lower()
|
||||
try:
|
||||
float(sz)
|
||||
except ValueError:
|
||||
if sz in size_map.keys():
|
||||
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:
|
||||
attrib['id'] = attrib.pop('filepos-id')
|
||||
if 'filepos' in attrib:
|
||||
filepos = attrib.pop('filepos')
|
||||
try:
|
||||
attrib['href'] = "#filepos%d" % int(filepos)
|
||||
except:
|
||||
attrib['href'] = filepos
|
||||
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
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
def create_opf(self, htmlfile, guide=None):
|
||||
mi = self.book_header.exth.mi
|
||||
@ -332,7 +336,7 @@ class MobiReader(object):
|
||||
manifest = [(htmlfile, 'text/x-oeb1-document')]
|
||||
bp = os.path.dirname(htmlfile)
|
||||
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_spine([os.path.basename(htmlfile)])
|
||||
|
||||
@ -416,7 +416,11 @@ class MobiWriter(object):
|
||||
coverid = metadata.cover[0] if metadata.cover else None
|
||||
for _, href in images:
|
||||
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)
|
||||
|
||||
def _generate_record0(self):
|
||||
@ -486,9 +490,11 @@ class MobiWriter(object):
|
||||
index = self._images[href] - 1
|
||||
exth.write(pack('>III', 0xc9, 0x0c, index))
|
||||
exth.write(pack('>III', 0xcb, 0x0c, 0))
|
||||
index = self._add_thumbnail(item) - 1
|
||||
exth.write(pack('>III', 0xca, 0x0c, index))
|
||||
nrecs += 3
|
||||
nrecs += 2
|
||||
index = self._add_thumbnail(item)
|
||||
if index is not None:
|
||||
exth.write(pack('>III', 0xca, 0x0c, index - 1))
|
||||
nrecs += 1
|
||||
exth = exth.getvalue()
|
||||
trail = len(exth) % 4
|
||||
pad = '\0' * (4 - trail) # Always pad w/ at least 1 byte
|
||||
@ -496,7 +502,11 @@ class MobiWriter(object):
|
||||
return ''.join(exth)
|
||||
|
||||
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
|
||||
id, href = manifest.generate('thumbnail', 'thumbnail.jpeg')
|
||||
manifest.add(id, href, 'image/jpeg', data=data)
|
||||
|
||||
@ -8,24 +8,20 @@ from __future__ import with_statement
|
||||
__license__ = 'GPL v3'
|
||||
__copyright__ = '2008, Marshall T. Vandegrift <llasram@gmail.com>'
|
||||
|
||||
import sys
|
||||
import os
|
||||
import locale
|
||||
import codecs
|
||||
import itertools
|
||||
import types
|
||||
import re
|
||||
import copy
|
||||
from itertools import izip
|
||||
from weakref import WeakKeyDictionary
|
||||
from xml.dom import SyntaxErr as CSSSyntaxError
|
||||
import cssutils
|
||||
from cssutils.css import CSSStyleRule, CSSPageRule, CSSStyleDeclaration, \
|
||||
CSSValueList, cssproperties
|
||||
from cssutils.profiles import profiles as cssprofiles
|
||||
from lxml import etree
|
||||
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 XPNSMAP, xpath, barename, urlnormalize
|
||||
from calibre.ebooks.oeb.base import XPNSMAP, xpath, urlnormalize
|
||||
from calibre.ebooks.oeb.profile import PROFILES
|
||||
from calibre.resources import html_css
|
||||
|
||||
@ -163,7 +159,7 @@ class Stylizer(object):
|
||||
for _, _, cssdict, text, _ in rules:
|
||||
try:
|
||||
selector = CSSSelector(text)
|
||||
except ExpressionError, e:
|
||||
except ExpressionError:
|
||||
continue
|
||||
for elem in selector(tree):
|
||||
self.style(elem)._update_cssdict(cssdict)
|
||||
@ -246,7 +242,7 @@ class Stylizer(object):
|
||||
primitives.reverse()
|
||||
value = primitives.pop()
|
||||
for key in composition:
|
||||
if cssproperties.cssvalues[key](value):
|
||||
if cssprofiles.validate(key, value):
|
||||
style[key] = value
|
||||
if not primitives: break
|
||||
value = primitives.pop()
|
||||
|
||||
@ -6,13 +6,9 @@ from __future__ import with_statement
|
||||
__license__ = 'GPL v3'
|
||||
__copyright__ = '2008, Marshall T. Vandegrift <llasram@gmail.com>'
|
||||
|
||||
import sys
|
||||
import os
|
||||
from itertools import chain
|
||||
from urlparse import urldefrag
|
||||
from lxml import etree
|
||||
import cssutils
|
||||
from calibre.ebooks.oeb.base import XPNSMAP, CSS_MIME, OEB_DOCS
|
||||
from calibre.ebooks.oeb.base import CSS_MIME, OEB_DOCS
|
||||
from calibre.ebooks.oeb.base import LINK_SELECTORS, CSSURL_RE
|
||||
from calibre.ebooks.oeb.base import urlnormalize
|
||||
|
||||
|
||||
BIN
src/calibre/gui2/images/news/pressonline.png
Normal file
BIN
src/calibre/gui2/images/news/pressonline.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.7 KiB |
@ -216,12 +216,9 @@ class BooksModel(QAbstractTableModel):
|
||||
|
||||
|
||||
def delete_books(self, indices):
|
||||
ids = [ self.id(i) for i in indices ]
|
||||
ids = map(self.id, indices)
|
||||
for id in ids:
|
||||
row = self.db.index(id)
|
||||
self.beginRemoveRows(QModelIndex(), row, row)
|
||||
self.db.delete_book(id)
|
||||
self.endRemoveRows()
|
||||
self.db.delete_book(id, notify=False)
|
||||
self.count_changed()
|
||||
self.clear_caches()
|
||||
self.reset()
|
||||
|
||||
@ -1355,10 +1355,13 @@ class Main(MainWindow, Ui_MainWindow):
|
||||
'''
|
||||
Handle exceptions in threaded device jobs.
|
||||
'''
|
||||
if 'Could not read 32 bytes on the control bus.' in str(job.exception):
|
||||
error_dialog(self, _('Error talking to device'),
|
||||
_('There was a temporary error talking to the device. Please unplug and reconnect the device and or reboot.')).show()
|
||||
return
|
||||
try:
|
||||
if 'Could not read 32 bytes on the control bus.' in unicode(job.exception):
|
||||
error_dialog(self, _('Error talking to device'),
|
||||
_('There was a temporary error talking to the device. Please unplug and reconnect the device and or reboot.')).show()
|
||||
return
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
print >>sys.stderr, job.console_text()
|
||||
except:
|
||||
|
||||
@ -729,7 +729,7 @@ class LibraryDatabase2(LibraryDatabase):
|
||||
if notify:
|
||||
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.
|
||||
'''
|
||||
@ -744,7 +744,8 @@ class LibraryDatabase2(LibraryDatabase):
|
||||
self.conn.commit()
|
||||
self.clean()
|
||||
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):
|
||||
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()
|
||||
if ext == 'opf':
|
||||
continue
|
||||
stream = open(path, 'rb')
|
||||
self.add_format(id, ext, stream, index_is_id=True)
|
||||
self.add_format_with_hooks(id, ext, path, index_is_id=True)
|
||||
self.conn.commit()
|
||||
self.data.refresh_ids(self.conn, [id]) # Needed to update format list and size
|
||||
if notify:
|
||||
|
||||
@ -7,14 +7,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: calibre\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"
|
||||
"Last-Translator: عبد الله شلي (Abdellah Chelli) <sneetsher@gmail.com>\n"
|
||||
"Language-Team: Arabic <ar@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\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"
|
||||
|
||||
#: /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:60
|
||||
#: /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/oeb/base.py:569
|
||||
#: /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:376
|
||||
#: /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:933
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
|
||||
#: /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:123
|
||||
#: /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/database2.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:901
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
|
||||
#: /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/web/feeds/news.py:51
|
||||
msgid "Unknown"
|
||||
@ -606,7 +607,7 @@ msgid "%prog [options] LITFILE"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
msgstr ""
|
||||
|
||||
@ -621,7 +622,7 @@ msgid "Useful for debugging."
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -1572,11 +1573,11 @@ msgstr ""
|
||||
msgid "Creating Mobipocket file from EPUB..."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -1870,7 +1871,7 @@ msgid "Adding books to database..."
|
||||
msgstr ""
|
||||
|
||||
#: /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..."
|
||||
msgstr ""
|
||||
|
||||
@ -2096,7 +2097,7 @@ msgid "Access log:"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -2520,7 +2521,7 @@ msgid " is not a valid picture"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -3195,47 +3196,52 @@ msgstr ""
|
||||
msgid "A&utomatically set author sort"
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
|
||||
msgid "Could not read cover"
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<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> "
|
||||
"for free!.</p>"
|
||||
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/>"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
@ -3395,9 +3401,9 @@ msgstr ""
|
||||
|
||||
#: /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/library/database2.py:809
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:814
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
|
||||
msgid "News"
|
||||
msgstr ""
|
||||
|
||||
@ -4081,7 +4087,7 @@ msgid "Save to disk in a single directory"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -4119,31 +4125,31 @@ msgid "Bad database location"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
|
||||
msgid "Device: "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
|
||||
msgid " detected."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
|
||||
msgid "Connected "
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
|
||||
msgid ""
|
||||
"\n"
|
||||
" <p>The database of books on the reader is corrupted. Try the "
|
||||
@ -4159,276 +4165,276 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
|
||||
msgid "Uploading books to device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
msgid "Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
msgid "EPUB Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
msgid "LRF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
msgid "HTML Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
|
||||
msgid "LIT Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
|
||||
msgid "MOBI Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
|
||||
msgid "Text books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
|
||||
msgid "PDF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
|
||||
msgid "Comics"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
|
||||
msgid "Archives"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
|
||||
msgid "Adding books..."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
|
||||
msgid ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
|
||||
msgid ""
|
||||
"The selected books will be <b>permanently deleted</b> and the files removed "
|
||||
"from your computer. Are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
|
||||
msgid "Deleting books from device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
msgid "Cannot edit metadata"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
|
||||
msgid "No books selected"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
|
||||
msgid ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found:<br><ul>%s</ul>"
|
||||
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"
|
||||
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..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
|
||||
msgid "Saved"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
|
||||
msgid ""
|
||||
"<p>Could not save the following books to disk, because the %s format is not "
|
||||
"available for them:<ul>"
|
||||
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"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
|
||||
msgid " fetched."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
msgid "No book selected"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
|
||||
msgid "Cannot view"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
|
||||
msgid "Choose the format to view"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
|
||||
msgid "Cannot configure"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
|
||||
msgid "Copying database"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
|
||||
msgid "Invalid database"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
|
||||
msgid ""
|
||||
"<p>An invalid database already exists at %s, delete it before trying to move "
|
||||
"the existing database.<br>Error: %s"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
|
||||
msgid ""
|
||||
"There was a temporary error talking to the device. Please unplug and "
|
||||
"reconnect the device and or reboot."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
|
||||
msgid "Conversion Error"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
|
||||
msgid ""
|
||||
"<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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
|
||||
msgid ""
|
||||
"is the result of the efforts of many volunteers from all over the world. If "
|
||||
"you find it useful, please consider donating to support its development."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/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?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
|
||||
msgid ""
|
||||
" is communicating with the device!<br>\n"
|
||||
" 'Quitting may cause corruption on the device.<br>\n"
|
||||
" 'Are you sure you want to quit?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
|
||||
msgid "WARNING: Active jobs"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
|
||||
msgid ""
|
||||
"will keep running in the system tray. To close it, choose <b>Quit</b> in the "
|
||||
"context menu of the system tray."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
|
||||
msgid ""
|
||||
"<span style=\"color:red; font-weight:bold\">Latest version: <a "
|
||||
"href=\"%s\">%s</a></span>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid ""
|
||||
"%s has been updated to version %s. See the <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
|
||||
"Visit the download page?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid "Update available"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5168,20 +5174,20 @@ msgid ""
|
||||
"For help on an individual command: %%prog command --help\n"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
|
||||
msgid "Copying <b>%s</b>"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
|
||||
msgid "Compacting database"
|
||||
msgstr ""
|
||||
|
||||
@ -5212,39 +5218,39 @@ msgstr ""
|
||||
msgid "Created by "
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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)"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5287,28 +5293,28 @@ msgid "Customize the download engine"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Timeout in seconds to wait for a response from the server. Default: %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Minimum interval in seconds between consecutive fetches. Default is %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"The character encoding for the websites you are trying to download. The "
|
||||
"default is to try and guess the encoding."
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5316,7 +5322,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5326,7 +5332,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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_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_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_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_infobae.py:52
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54
|
||||
#: /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:21
|
||||
#: /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_segunda.py:61
|
||||
#: /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_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_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_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_cnn.py:15
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
|
||||
@ -5609,17 +5617,17 @@ msgstr ""
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58
|
||||
#: /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:23
|
||||
#: /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:29
|
||||
#: /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:25
|
||||
#: /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_politika.py:19
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108
|
||||
#: /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:27
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
@ -5651,33 +5659,33 @@ msgstr ""
|
||||
msgid "German"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
|
||||
msgid ""
|
||||
"%prog URL\n"
|
||||
"\n"
|
||||
"Where URL is for example http://google.com"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
|
||||
msgid ""
|
||||
"Maximum number of levels to recurse i.e. depth of links to follow. Default "
|
||||
"%default"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
|
||||
msgid ""
|
||||
"The maximum number of files to download. This only applies to files from <a "
|
||||
"href> tags. Default is %default"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -6,14 +6,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: calibre 0.4.51\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"
|
||||
"Last-Translator: Kovid Goyal <Unknown>\n"
|
||||
"Language-Team: bg\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\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"
|
||||
"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:60
|
||||
#: /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/oeb/base.py:569
|
||||
#: /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:376
|
||||
#: /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:933
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
|
||||
#: /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:123
|
||||
#: /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/database2.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:901
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
|
||||
#: /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/web/feeds/news.py:51
|
||||
msgid "Unknown"
|
||||
@ -606,7 +607,7 @@ msgid "%prog [options] LITFILE"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
msgstr ""
|
||||
|
||||
@ -621,7 +622,7 @@ msgid "Useful for debugging."
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -1572,11 +1573,11 @@ msgstr ""
|
||||
msgid "Creating Mobipocket file from EPUB..."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -1870,7 +1871,7 @@ msgid "Adding books to database..."
|
||||
msgstr ""
|
||||
|
||||
#: /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..."
|
||||
msgstr ""
|
||||
|
||||
@ -2096,7 +2097,7 @@ msgid "Access log:"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -2520,7 +2521,7 @@ msgid " is not a valid picture"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -3195,47 +3196,52 @@ msgstr ""
|
||||
msgid "A&utomatically set author sort"
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
|
||||
msgid "Could not read cover"
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<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> "
|
||||
"for free!.</p>"
|
||||
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/>"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
@ -3395,9 +3401,9 @@ msgstr ""
|
||||
|
||||
#: /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/library/database2.py:809
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:814
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
|
||||
msgid "News"
|
||||
msgstr ""
|
||||
|
||||
@ -4081,7 +4087,7 @@ msgid "Save to disk in a single directory"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -4119,31 +4125,31 @@ msgid "Bad database location"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
|
||||
msgid "Device: "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
|
||||
msgid " detected."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
|
||||
msgid "Connected "
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
|
||||
msgid ""
|
||||
"\n"
|
||||
" <p>The database of books on the reader is corrupted. Try the "
|
||||
@ -4159,276 +4165,276 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
|
||||
msgid "Uploading books to device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
msgid "Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
msgid "EPUB Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
msgid "LRF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
msgid "HTML Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
|
||||
msgid "LIT Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
|
||||
msgid "MOBI Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
|
||||
msgid "Text books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
|
||||
msgid "PDF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
|
||||
msgid "Comics"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
|
||||
msgid "Archives"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
|
||||
msgid "Adding books..."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
|
||||
msgid ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
|
||||
msgid ""
|
||||
"The selected books will be <b>permanently deleted</b> and the files removed "
|
||||
"from your computer. Are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
|
||||
msgid "Deleting books from device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
msgid "Cannot edit metadata"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
|
||||
msgid "No books selected"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
|
||||
msgid ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found:<br><ul>%s</ul>"
|
||||
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"
|
||||
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..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
|
||||
msgid "Saved"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
|
||||
msgid ""
|
||||
"<p>Could not save the following books to disk, because the %s format is not "
|
||||
"available for them:<ul>"
|
||||
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"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
|
||||
msgid " fetched."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
msgid "No book selected"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
|
||||
msgid "Cannot view"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
|
||||
msgid "Choose the format to view"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
|
||||
msgid "Cannot configure"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
|
||||
msgid "Copying database"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
|
||||
msgid "Invalid database"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
|
||||
msgid ""
|
||||
"<p>An invalid database already exists at %s, delete it before trying to move "
|
||||
"the existing database.<br>Error: %s"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
|
||||
msgid ""
|
||||
"There was a temporary error talking to the device. Please unplug and "
|
||||
"reconnect the device and or reboot."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
|
||||
msgid "Conversion Error"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
|
||||
msgid ""
|
||||
"<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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
|
||||
msgid ""
|
||||
"is the result of the efforts of many volunteers from all over the world. If "
|
||||
"you find it useful, please consider donating to support its development."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/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?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
|
||||
msgid ""
|
||||
" is communicating with the device!<br>\n"
|
||||
" 'Quitting may cause corruption on the device.<br>\n"
|
||||
" 'Are you sure you want to quit?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
|
||||
msgid "WARNING: Active jobs"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
|
||||
msgid ""
|
||||
"will keep running in the system tray. To close it, choose <b>Quit</b> in the "
|
||||
"context menu of the system tray."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
|
||||
msgid ""
|
||||
"<span style=\"color:red; font-weight:bold\">Latest version: <a "
|
||||
"href=\"%s\">%s</a></span>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid ""
|
||||
"%s has been updated to version %s. See the <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
|
||||
"Visit the download page?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid "Update available"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5168,20 +5174,20 @@ msgid ""
|
||||
"For help on an individual command: %%prog command --help\n"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
|
||||
msgid "Copying <b>%s</b>"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
|
||||
msgid "Compacting database"
|
||||
msgstr ""
|
||||
|
||||
@ -5212,39 +5218,39 @@ msgstr ""
|
||||
msgid "Created by "
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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)"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5287,28 +5293,28 @@ msgid "Customize the download engine"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Timeout in seconds to wait for a response from the server. Default: %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Minimum interval in seconds between consecutive fetches. Default is %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"The character encoding for the websites you are trying to download. The "
|
||||
"default is to try and guess the encoding."
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5316,7 +5322,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5326,7 +5332,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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_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_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_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_infobae.py:52
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54
|
||||
#: /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:21
|
||||
#: /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_segunda.py:61
|
||||
#: /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_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_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_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_cnn.py:15
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
|
||||
@ -5609,17 +5617,17 @@ msgstr ""
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58
|
||||
#: /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:23
|
||||
#: /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:29
|
||||
#: /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:25
|
||||
#: /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_politika.py:19
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108
|
||||
#: /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:27
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
@ -5651,33 +5659,33 @@ msgstr ""
|
||||
msgid "German"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
|
||||
msgid ""
|
||||
"%prog URL\n"
|
||||
"\n"
|
||||
"Where URL is for example http://google.com"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
|
||||
msgid ""
|
||||
"Maximum number of levels to recurse i.e. depth of links to follow. Default "
|
||||
"%default"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
|
||||
msgid ""
|
||||
"The maximum number of files to download. This only applies to files from <a "
|
||||
"href> tags. Default is %default"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -10,14 +10,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: ca\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"
|
||||
"Last-Translator: Kovid Goyal <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\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"
|
||||
|
||||
#: /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:60
|
||||
#: /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/oeb/base.py:569
|
||||
#: /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:376
|
||||
#: /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:933
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
|
||||
#: /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:123
|
||||
#: /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/database2.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:901
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
|
||||
#: /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/web/feeds/news.py:51
|
||||
msgid "Unknown"
|
||||
@ -609,7 +610,7 @@ msgid "%prog [options] LITFILE"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
msgstr ""
|
||||
|
||||
@ -624,7 +625,7 @@ msgid "Useful for debugging."
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -1618,11 +1619,11 @@ msgstr ""
|
||||
msgid "Creating Mobipocket file from EPUB..."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -1916,7 +1917,7 @@ msgid "Adding books to database..."
|
||||
msgstr ""
|
||||
|
||||
#: /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..."
|
||||
msgstr ""
|
||||
|
||||
@ -2142,7 +2143,7 @@ msgid "Access log:"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -2566,7 +2567,7 @@ msgid " is not a valid picture"
|
||||
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/main.py:1041
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
|
||||
msgid "Cannot convert"
|
||||
msgstr "No puc convertir-lo"
|
||||
|
||||
@ -3257,47 +3258,52 @@ msgstr ""
|
||||
msgid "A&utomatically set author sort"
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
|
||||
msgid "Could not read cover"
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<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> "
|
||||
"for free!.</p>"
|
||||
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/>"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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/tags.py:50
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:814
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
|
||||
msgid "News"
|
||||
msgstr ""
|
||||
|
||||
@ -4144,7 +4150,7 @@ msgid "Save to disk in a single directory"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -4182,31 +4188,31 @@ msgid "Bad database location"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
|
||||
msgid "Device: "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
|
||||
msgid " detected."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
|
||||
msgid "Connected "
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
|
||||
msgid ""
|
||||
"\n"
|
||||
" <p>The database of books on the reader is corrupted. Try the "
|
||||
@ -4222,206 +4228,206 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
|
||||
msgid "Uploading books to device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
msgid "Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
msgid "EPUB Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
msgid "LRF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
msgid "HTML Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
|
||||
msgid "LIT Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
|
||||
msgid "MOBI Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
|
||||
msgid "Text books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
|
||||
msgid "PDF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
|
||||
msgid "Comics"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
|
||||
msgid "Archives"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
|
||||
msgid "Adding books..."
|
||||
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"
|
||||
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 ""
|
||||
"<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 "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
|
||||
msgid ""
|
||||
"The selected books will be <b>permanently deleted</b> and the files removed "
|
||||
"from your computer. Are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
|
||||
msgid "Deleting books from device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
msgid "Cannot edit metadata"
|
||||
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:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
|
||||
msgid "No books selected"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
|
||||
msgid ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found:<br><ul>%s</ul>"
|
||||
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"
|
||||
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..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
|
||||
msgid "Saved"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
|
||||
msgid ""
|
||||
"<p>Could not save the following books to disk, because the %s format is not "
|
||||
"available for them:<ul>"
|
||||
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"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
|
||||
msgid " fetched."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
msgid "No book selected"
|
||||
msgstr "Cap llibre seleccionat"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
|
||||
msgid "Cannot view"
|
||||
msgstr "No puc mostrar-lo"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
|
||||
msgid "Choose the format to view"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
|
||||
msgid "Cannot configure"
|
||||
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."
|
||||
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"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
|
||||
msgid "Invalid database"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
|
||||
msgid ""
|
||||
"<p>An invalid database already exists at %s, delete it before trying to move "
|
||||
"the existing database.<br>Error: %s"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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 ""
|
||||
"There was a temporary error talking to the device. Please unplug and "
|
||||
"reconnect the device and or reboot."
|
||||
@ -4429,71 +4435,71 @@ msgstr ""
|
||||
"Hi ha hagut un error de comunicació amb el dispositiu. Lleve, torne a "
|
||||
"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:1369
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
|
||||
msgid "Conversion Error"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
|
||||
msgid ""
|
||||
"<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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
|
||||
msgid ""
|
||||
"is the result of the efforts of many volunteers from all over the world. If "
|
||||
"you find it useful, please consider donating to support its development."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/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?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
|
||||
msgid ""
|
||||
" is communicating with the device!<br>\n"
|
||||
" 'Quitting may cause corruption on the device.<br>\n"
|
||||
" 'Are you sure you want to quit?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
|
||||
msgid "WARNING: Active jobs"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
|
||||
msgid ""
|
||||
"will keep running in the system tray. To close it, choose <b>Quit</b> in the "
|
||||
"context menu of the system tray."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
|
||||
msgid ""
|
||||
"<span style=\"color:red; font-weight:bold\">Latest version: <a "
|
||||
"href=\"%s\">%s</a></span>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid ""
|
||||
"%s has been updated to version %s. See the <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
|
||||
"Visit the download page?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid "Update available"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5237,20 +5243,20 @@ msgid ""
|
||||
"For help on an individual command: %%prog command --help\n"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
|
||||
msgid "Copying <b>%s</b>"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
|
||||
msgid "Compacting database"
|
||||
msgstr ""
|
||||
|
||||
@ -5281,39 +5287,39 @@ msgstr ""
|
||||
msgid "Created by "
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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)"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5356,28 +5362,28 @@ msgid "Customize the download engine"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Timeout in seconds to wait for a response from the server. Default: %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Minimum interval in seconds between consecutive fetches. Default is %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"The character encoding for the websites you are trying to download. The "
|
||||
"default is to try and guess the encoding."
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5385,7 +5391,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5395,7 +5401,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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_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_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_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_infobae.py:52
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54
|
||||
#: /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:21
|
||||
#: /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_segunda.py:61
|
||||
#: /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_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_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_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_cnn.py:15
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
|
||||
@ -5678,17 +5686,17 @@ msgstr ""
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58
|
||||
#: /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:23
|
||||
#: /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:29
|
||||
#: /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:25
|
||||
#: /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_politika.py:19
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108
|
||||
#: /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:27
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
@ -5720,34 +5728,34 @@ msgstr ""
|
||||
msgid "German"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
|
||||
msgid ""
|
||||
"%prog URL\n"
|
||||
"\n"
|
||||
"Where URL is for example http://google.com"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
|
||||
msgid ""
|
||||
"Maximum number of levels to recurse i.e. depth of links to follow. Default "
|
||||
"%default"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
|
||||
msgid ""
|
||||
"The maximum number of files to download. This only applies to files from <a "
|
||||
"href> tags. Default is %default"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -7,14 +7,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: calibre\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"
|
||||
"Last-Translator: Plazec <Unknown>\n"
|
||||
"Language-Team: Czech <cs@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\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"
|
||||
|
||||
#: /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:60
|
||||
#: /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/oeb/base.py:569
|
||||
#: /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:376
|
||||
#: /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:933
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
|
||||
#: /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:123
|
||||
#: /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/database2.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:901
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
|
||||
#: /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/web/feeds/news.py:51
|
||||
msgid "Unknown"
|
||||
@ -694,7 +695,7 @@ msgid "%prog [options] LITFILE"
|
||||
msgstr "%prog [options] LIT_soubor"
|
||||
|
||||
#: /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."
|
||||
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."
|
||||
|
||||
#: /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"
|
||||
msgstr "OEB kniha vytvořena v"
|
||||
|
||||
@ -1855,11 +1856,11 @@ msgstr "Použití: rb-meta soubor.rb"
|
||||
msgid "Creating Mobipocket file from 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"
|
||||
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"
|
||||
msgstr "Nezpracované MOBI HTML uložené do"
|
||||
|
||||
@ -2174,7 +2175,7 @@ msgid "Adding books to database..."
|
||||
msgstr ""
|
||||
|
||||
#: /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..."
|
||||
msgstr ""
|
||||
|
||||
@ -2404,7 +2405,7 @@ msgid "Access log:"
|
||||
msgstr "Záznam o přístupu"
|
||||
|
||||
#: /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"
|
||||
msgstr "Nepodařilo se spustit obdahový server"
|
||||
|
||||
@ -2843,7 +2844,7 @@ msgid " is not a valid picture"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -3518,47 +3519,52 @@ msgstr ""
|
||||
msgid "A&utomatically set author sort"
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
|
||||
msgid "Could not read cover"
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<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> "
|
||||
"for free!.</p>"
|
||||
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/>"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
@ -3718,9 +3724,9 @@ msgstr ""
|
||||
|
||||
#: /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/library/database2.py:809
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:814
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
|
||||
msgid "News"
|
||||
msgstr ""
|
||||
|
||||
@ -4404,7 +4410,7 @@ msgid "Save to disk in a single directory"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -4442,31 +4448,31 @@ msgid "Bad database location"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
|
||||
msgid "Device: "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
|
||||
msgid " detected."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
|
||||
msgid "Connected "
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
|
||||
msgid ""
|
||||
"\n"
|
||||
" <p>The database of books on the reader is corrupted. Try the "
|
||||
@ -4482,276 +4488,276 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
|
||||
msgid "Uploading books to device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
msgid "Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
msgid "EPUB Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
msgid "LRF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
msgid "HTML Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
|
||||
msgid "LIT Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
|
||||
msgid "MOBI Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
|
||||
msgid "Text books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
|
||||
msgid "PDF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
|
||||
msgid "Comics"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
|
||||
msgid "Archives"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
|
||||
msgid "Adding books..."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
|
||||
msgid ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
|
||||
msgid ""
|
||||
"The selected books will be <b>permanently deleted</b> and the files removed "
|
||||
"from your computer. Are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
|
||||
msgid "Deleting books from device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
msgid "Cannot edit metadata"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
|
||||
msgid "No books selected"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
|
||||
msgid ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found:<br><ul>%s</ul>"
|
||||
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"
|
||||
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..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
|
||||
msgid "Saved"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
|
||||
msgid ""
|
||||
"<p>Could not save the following books to disk, because the %s format is not "
|
||||
"available for them:<ul>"
|
||||
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"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
|
||||
msgid " fetched."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
msgid "No book selected"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
|
||||
msgid "Cannot view"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
|
||||
msgid "Choose the format to view"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
|
||||
msgid "Cannot configure"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
|
||||
msgid "Copying database"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
|
||||
msgid "Invalid database"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
|
||||
msgid ""
|
||||
"<p>An invalid database already exists at %s, delete it before trying to move "
|
||||
"the existing database.<br>Error: %s"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
|
||||
msgid ""
|
||||
"There was a temporary error talking to the device. Please unplug and "
|
||||
"reconnect the device and or reboot."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
|
||||
msgid "Conversion Error"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
|
||||
msgid ""
|
||||
"<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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
|
||||
msgid ""
|
||||
"is the result of the efforts of many volunteers from all over the world. If "
|
||||
"you find it useful, please consider donating to support its development."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/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?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
|
||||
msgid ""
|
||||
" is communicating with the device!<br>\n"
|
||||
" 'Quitting may cause corruption on the device.<br>\n"
|
||||
" 'Are you sure you want to quit?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
|
||||
msgid "WARNING: Active jobs"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
|
||||
msgid ""
|
||||
"will keep running in the system tray. To close it, choose <b>Quit</b> in the "
|
||||
"context menu of the system tray."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
|
||||
msgid ""
|
||||
"<span style=\"color:red; font-weight:bold\">Latest version: <a "
|
||||
"href=\"%s\">%s</a></span>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid ""
|
||||
"%s has been updated to version %s. See the <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
|
||||
"Visit the download page?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid "Update available"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5491,20 +5497,20 @@ msgid ""
|
||||
"For help on an individual command: %%prog command --help\n"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
|
||||
msgid "Copying <b>%s</b>"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
|
||||
msgid "Compacting database"
|
||||
msgstr ""
|
||||
|
||||
@ -5535,39 +5541,39 @@ msgstr ""
|
||||
msgid "Created by "
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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)"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5610,28 +5616,28 @@ msgid "Customize the download engine"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Timeout in seconds to wait for a response from the server. Default: %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Minimum interval in seconds between consecutive fetches. Default is %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"The character encoding for the websites you are trying to download. The "
|
||||
"default is to try and guess the encoding."
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5639,7 +5645,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5649,7 +5655,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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_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_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_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_infobae.py:52
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54
|
||||
#: /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:21
|
||||
#: /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_segunda.py:61
|
||||
#: /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_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_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_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_cnn.py:15
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
|
||||
@ -5932,17 +5940,17 @@ msgstr ""
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58
|
||||
#: /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:23
|
||||
#: /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:29
|
||||
#: /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:25
|
||||
#: /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_politika.py:19
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108
|
||||
#: /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:27
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
@ -5974,34 +5982,34 @@ msgstr ""
|
||||
msgid "German"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
|
||||
msgid ""
|
||||
"%prog URL\n"
|
||||
"\n"
|
||||
"Where URL is for example http://google.com"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
|
||||
msgid ""
|
||||
"Maximum number of levels to recurse i.e. depth of links to follow. Default "
|
||||
"%default"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
|
||||
msgid ""
|
||||
"The maximum number of files to download. This only applies to files from <a "
|
||||
"href> tags. Default is %default"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -7,14 +7,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: de\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"
|
||||
"Last-Translator: S. Dorscht <Unknown>\n"
|
||||
"Language-Team: American English <kde-i18n-doc@lists.kde.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\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"
|
||||
"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:60
|
||||
#: /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/oeb/base.py:569
|
||||
#: /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:376
|
||||
#: /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:933
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
|
||||
#: /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:123
|
||||
#: /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/database2.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:901
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
|
||||
#: /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/web/feeds/news.py:51
|
||||
msgid "Unknown"
|
||||
@ -725,7 +726,7 @@ msgid "%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/mobi/reader.py:506
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
|
||||
msgid "Output directory. Defaults to current directory."
|
||||
msgstr "Ausgabeverzeichnis. Voreinstellung ist aktuelles Verzeichnis."
|
||||
|
||||
@ -742,7 +743,7 @@ msgid "Useful for debugging."
|
||||
msgstr "Hilfreich bei der Fehlersuche."
|
||||
|
||||
#: /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"
|
||||
msgstr "OEB eBook erstellt in"
|
||||
|
||||
@ -1905,11 +1906,11 @@ msgstr "Benutzung: rb-meta file.rb"
|
||||
msgid "Creating Mobipocket file from 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"
|
||||
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"
|
||||
msgstr "Original MOBI HTML gespeichert in"
|
||||
|
||||
@ -2228,7 +2229,7 @@ msgid "Adding books to database..."
|
||||
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/main.py:694
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
|
||||
msgid "Reading metadata..."
|
||||
msgstr "Lese Metadaten..."
|
||||
|
||||
@ -2459,7 +2460,7 @@ msgid "Access log:"
|
||||
msgstr "Zugriffs-Protokolldatei:"
|
||||
|
||||
#: /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"
|
||||
msgstr "Content Server konnte nicht gestartet werden"
|
||||
|
||||
@ -2917,7 +2918,7 @@ msgid " is not a valid picture"
|
||||
msgstr " ist kein gültiges Bild"
|
||||
|
||||
#: /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"
|
||||
msgstr "Konvertierung nicht möglich"
|
||||
|
||||
@ -3638,28 +3639,33 @@ msgstr "&Format entfernen:"
|
||||
msgid "A&utomatically set author sort"
|
||||
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"
|
||||
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"
|
||||
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:139
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
|
||||
msgid "Could not read cover"
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<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> "
|
||||
@ -3669,19 +3675,19 @@ msgstr ""
|
||||
"<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>"
|
||||
|
||||
#: /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/>"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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/tags.py:50
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:814
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
|
||||
msgid "News"
|
||||
msgstr "Nachrichten"
|
||||
|
||||
@ -4593,7 +4599,7 @@ msgid "Save to disk in a single directory"
|
||||
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:1248
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
|
||||
msgid "Save only %s format to disk"
|
||||
msgstr "Nur das %s Format auf Festplatte speichern"
|
||||
|
||||
@ -4631,31 +4637,31 @@ msgid "Bad database location"
|
||||
msgstr "Schlechter Datenbank Standort"
|
||||
|
||||
#: /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."
|
||||
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"
|
||||
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: "
|
||||
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."
|
||||
msgstr " gefunden."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
|
||||
msgid "Connected "
|
||||
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"
|
||||
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 ""
|
||||
"\n"
|
||||
" <p>The database of books on the reader is corrupted. Try the "
|
||||
@ -4686,67 +4692,67 @@ msgstr ""
|
||||
" </ol>\n"
|
||||
" "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
|
||||
msgid "Uploading books to device."
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Comics"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
|
||||
msgid "Archives"
|
||||
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..."
|
||||
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"
|
||||
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 ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
"<p>Es können keine Bücher mehr auf das Gerät geladen werden, da der "
|
||||
"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 ""
|
||||
"The selected books will be <b>permanently deleted</b> and the files removed "
|
||||
"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 "
|
||||
"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."
|
||||
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:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
msgid "Cannot edit metadata"
|
||||
msgstr "Kann Metadaten nicht bearbeiten"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
|
||||
msgid "No books selected"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
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 ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"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 "
|
||||
"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"
|
||||
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..."
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<p>Could not save the following books to disk, because the %s format is not "
|
||||
"available for them:<ul>"
|
||||
@ -4814,64 +4820,64 @@ msgstr ""
|
||||
"<p>Die folgenden Bücher konnten nicht auf die Festplatte gespeichert werden, "
|
||||
"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"
|
||||
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 "
|
||||
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."
|
||||
msgstr " abgerufen."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
msgid "No book selected"
|
||||
msgstr "Kein Buch ausgewählt"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
|
||||
msgid "Cannot view"
|
||||
msgstr "Ansehen nicht möglich"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
|
||||
msgid "Choose the format to view"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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 "
|
||||
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"
|
||||
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 ""
|
||||
"<p>An invalid database already exists at %s, delete it before trying to move "
|
||||
"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 "
|
||||
"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"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
"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"
|
||||
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 ""
|
||||
"There was a temporary error talking to the device. Please unplug and "
|
||||
"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 "
|
||||
"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:1369
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
|
||||
msgid "Conversion Error"
|
||||
msgstr "Konvertierungsfehler"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
|
||||
msgid ""
|
||||
"<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."
|
||||
@ -4919,7 +4925,7 @@ msgstr ""
|
||||
"href=\"%s\">DRM</a> geschützt. Sie müssen zunächst das DRM mit einem anderen "
|
||||
"Programm entfernen."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
|
||||
msgid ""
|
||||
"is the result of the efforts of many volunteers from all over the world. If "
|
||||
"you find it useful, please consider donating to support its development."
|
||||
@ -4928,12 +4934,12 @@ msgstr ""
|
||||
"Falls Sie es nützlich finden, sollten Sie eine Spende zur Unterstützung "
|
||||
"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?"
|
||||
msgstr ""
|
||||
"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 ""
|
||||
" is communicating with 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"
|
||||
" '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"
|
||||
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 ""
|
||||
"will keep running in the system tray. To close it, choose <b>Quit</b> in the "
|
||||
"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> "
|
||||
"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 ""
|
||||
"<span style=\"color:red; font-weight:bold\">Latest version: <a "
|
||||
"href=\"%s\">%s</a></span>"
|
||||
@ -4963,7 +4969,7 @@ msgstr ""
|
||||
"<span style=\"color:red; font-weight:bold\">Letzte Version: <a "
|
||||
"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 ""
|
||||
"%s has been updated to version %s. See the <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. "
|
||||
"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"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr "Informationen zur Fehlersuche in Konsole aufzeichnen"
|
||||
|
||||
@ -5850,20 +5856,20 @@ msgstr ""
|
||||
"\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>"
|
||||
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:1343
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
|
||||
msgid "Copying <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>"
|
||||
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"
|
||||
msgstr "Komprimiere Datenbank"
|
||||
|
||||
@ -5898,40 +5904,40 @@ msgstr "%sBenutzung%s: %s\n"
|
||||
msgid "Created by "
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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)"
|
||||
msgstr ""
|
||||
"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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr "Priorität der Arbeitsaufträge"
|
||||
|
||||
@ -5976,7 +5982,7 @@ msgid "Customize the download engine"
|
||||
msgstr "Download-Engine anpassen"
|
||||
|
||||
#: /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 ""
|
||||
"Timeout in seconds to wait for a response from the server. Default: %default "
|
||||
"s"
|
||||
@ -5985,7 +5991,7 @@ msgstr ""
|
||||
"%default s"
|
||||
|
||||
#: /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 ""
|
||||
"Minimum interval in seconds between consecutive fetches. Default is %default "
|
||||
"s"
|
||||
@ -5994,7 +6000,7 @@ msgstr ""
|
||||
"Voreinstellung ist %default s"
|
||||
|
||||
#: /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 ""
|
||||
"The character encoding for the websites you are trying to download. The "
|
||||
"default is to try and guess the encoding."
|
||||
@ -6003,7 +6009,7 @@ msgstr ""
|
||||
"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/fetch/simple.py:470
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
|
||||
msgid ""
|
||||
"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 "
|
||||
@ -6015,7 +6021,7 @@ msgstr ""
|
||||
"Links verfolgt."
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -6030,7 +6036,7 @@ msgstr ""
|
||||
"sind, wird --filter-regexp zuerst angewendet."
|
||||
|
||||
#: /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."
|
||||
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_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_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_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_infobae.py:52
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54
|
||||
#: /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:21
|
||||
#: /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_segunda.py:61
|
||||
#: /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_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_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_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_cnn.py:15
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
|
||||
@ -6353,17 +6361,17 @@ msgstr ""
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58
|
||||
#: /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:23
|
||||
#: /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:29
|
||||
#: /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:25
|
||||
#: /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_politika.py:19
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108
|
||||
#: /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:27
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
@ -6395,11 +6403,11 @@ msgstr ""
|
||||
msgid "German"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
|
||||
msgid ""
|
||||
"%prog URL\n"
|
||||
"\n"
|
||||
@ -6409,13 +6417,13 @@ msgstr ""
|
||||
"\n"
|
||||
"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"
|
||||
msgstr ""
|
||||
"Grundverzeichnis, in das die URL gespeichert wird. Voreinstellung ist "
|
||||
"%default"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
|
||||
msgid ""
|
||||
"Maximum number of levels to recurse i.e. depth of links to follow. Default "
|
||||
"%default"
|
||||
@ -6423,7 +6431,7 @@ msgstr ""
|
||||
"Maximale Zahl von einbezogenen Ebenen, z.B. Tiefe der Links, die verfolgt "
|
||||
"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 ""
|
||||
"The maximum number of files to download. This only applies to files from <a "
|
||||
"href> tags. Default is %default"
|
||||
@ -6431,7 +6439,7 @@ msgstr ""
|
||||
"Höchstzahl der Dateien, die geladen werden. Dies trifft nur auf Dateien aus "
|
||||
"<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"
|
||||
msgstr "Zeige detailierte Ausgabeinformation. Hilfreich zur Fehlersuche."
|
||||
|
||||
|
||||
@ -7,14 +7,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: calibre\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"
|
||||
"Last-Translator: Thanos Petkakis <thanospet@gmail.com>\n"
|
||||
"Language-Team: Greek <el@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\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"
|
||||
|
||||
#: /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:60
|
||||
#: /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/oeb/base.py:569
|
||||
#: /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:376
|
||||
#: /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:933
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
|
||||
#: /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:123
|
||||
#: /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/database2.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:901
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
|
||||
#: /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/web/feeds/news.py:51
|
||||
msgid "Unknown"
|
||||
@ -606,7 +607,7 @@ msgid "%prog [options] LITFILE"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
msgstr ""
|
||||
|
||||
@ -621,7 +622,7 @@ msgid "Useful for debugging."
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -1572,11 +1573,11 @@ msgstr ""
|
||||
msgid "Creating Mobipocket file from EPUB..."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -1870,7 +1871,7 @@ msgid "Adding books to database..."
|
||||
msgstr ""
|
||||
|
||||
#: /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..."
|
||||
msgstr ""
|
||||
|
||||
@ -2096,7 +2097,7 @@ msgid "Access log:"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -2520,7 +2521,7 @@ msgid " is not a valid picture"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -3195,47 +3196,52 @@ msgstr ""
|
||||
msgid "A&utomatically set author sort"
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
|
||||
msgid "Could not read cover"
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<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> "
|
||||
"for free!.</p>"
|
||||
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/>"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
@ -3395,9 +3401,9 @@ msgstr ""
|
||||
|
||||
#: /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/library/database2.py:809
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:814
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
|
||||
msgid "News"
|
||||
msgstr ""
|
||||
|
||||
@ -4081,7 +4087,7 @@ msgid "Save to disk in a single directory"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -4119,31 +4125,31 @@ msgid "Bad database location"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
|
||||
msgid "Device: "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
|
||||
msgid " detected."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
|
||||
msgid "Connected "
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
|
||||
msgid ""
|
||||
"\n"
|
||||
" <p>The database of books on the reader is corrupted. Try the "
|
||||
@ -4159,276 +4165,276 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
|
||||
msgid "Uploading books to device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
msgid "Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
msgid "EPUB Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
msgid "LRF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
msgid "HTML Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
|
||||
msgid "LIT Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
|
||||
msgid "MOBI Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
|
||||
msgid "Text books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
|
||||
msgid "PDF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
|
||||
msgid "Comics"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
|
||||
msgid "Archives"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
|
||||
msgid "Adding books..."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
|
||||
msgid ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
|
||||
msgid ""
|
||||
"The selected books will be <b>permanently deleted</b> and the files removed "
|
||||
"from your computer. Are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
|
||||
msgid "Deleting books from device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
msgid "Cannot edit metadata"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
|
||||
msgid "No books selected"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
|
||||
msgid ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found:<br><ul>%s</ul>"
|
||||
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"
|
||||
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..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
|
||||
msgid "Saved"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
|
||||
msgid ""
|
||||
"<p>Could not save the following books to disk, because the %s format is not "
|
||||
"available for them:<ul>"
|
||||
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"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
|
||||
msgid " fetched."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
msgid "No book selected"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
|
||||
msgid "Cannot view"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
|
||||
msgid "Choose the format to view"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
|
||||
msgid "Cannot configure"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
|
||||
msgid "Copying database"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
|
||||
msgid "Invalid database"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
|
||||
msgid ""
|
||||
"<p>An invalid database already exists at %s, delete it before trying to move "
|
||||
"the existing database.<br>Error: %s"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
|
||||
msgid ""
|
||||
"There was a temporary error talking to the device. Please unplug and "
|
||||
"reconnect the device and or reboot."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
|
||||
msgid "Conversion Error"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
|
||||
msgid ""
|
||||
"<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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
|
||||
msgid ""
|
||||
"is the result of the efforts of many volunteers from all over the world. If "
|
||||
"you find it useful, please consider donating to support its development."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/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?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
|
||||
msgid ""
|
||||
" is communicating with the device!<br>\n"
|
||||
" 'Quitting may cause corruption on the device.<br>\n"
|
||||
" 'Are you sure you want to quit?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
|
||||
msgid "WARNING: Active jobs"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
|
||||
msgid ""
|
||||
"will keep running in the system tray. To close it, choose <b>Quit</b> in the "
|
||||
"context menu of the system tray."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
|
||||
msgid ""
|
||||
"<span style=\"color:red; font-weight:bold\">Latest version: <a "
|
||||
"href=\"%s\">%s</a></span>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid ""
|
||||
"%s has been updated to version %s. See the <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
|
||||
"Visit the download page?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid "Update available"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5168,20 +5174,20 @@ msgid ""
|
||||
"For help on an individual command: %%prog command --help\n"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
|
||||
msgid "Copying <b>%s</b>"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
|
||||
msgid "Compacting database"
|
||||
msgstr ""
|
||||
|
||||
@ -5212,39 +5218,39 @@ msgstr ""
|
||||
msgid "Created by "
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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)"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5287,28 +5293,28 @@ msgid "Customize the download engine"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Timeout in seconds to wait for a response from the server. Default: %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Minimum interval in seconds between consecutive fetches. Default is %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"The character encoding for the websites you are trying to download. The "
|
||||
"default is to try and guess the encoding."
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5316,7 +5322,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5326,7 +5332,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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_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_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_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_infobae.py:52
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54
|
||||
#: /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:21
|
||||
#: /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_segunda.py:61
|
||||
#: /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_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_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_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_cnn.py:15
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
|
||||
@ -5609,17 +5617,17 @@ msgstr ""
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58
|
||||
#: /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:23
|
||||
#: /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:29
|
||||
#: /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:25
|
||||
#: /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_politika.py:19
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108
|
||||
#: /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:27
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
@ -5651,33 +5659,33 @@ msgstr ""
|
||||
msgid "German"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
|
||||
msgid ""
|
||||
"%prog URL\n"
|
||||
"\n"
|
||||
"Where URL is for example http://google.com"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
|
||||
msgid ""
|
||||
"Maximum number of levels to recurse i.e. depth of links to follow. Default "
|
||||
"%default"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
|
||||
msgid ""
|
||||
"The maximum number of files to download. This only applies to files from <a "
|
||||
"href> tags. Default is %default"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -10,14 +10,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: es\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-02-11 03:58+0000\n"
|
||||
"PO-Revision-Date: 2009-02-09 04:59+0000\n"
|
||||
"Last-Translator: Fernando Neubaum <introspeccion@gmail.com>\n"
|
||||
"POT-Creation-Date: 2009-02-13 20:29+0000\n"
|
||||
"PO-Revision-Date: 2009-02-14 10:40+0000\n"
|
||||
"Last-Translator: DiegoJ <diegojromerolopez@gmail.com>\n"
|
||||
"Language-Team: Spanish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\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"
|
||||
|
||||
#: /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:60
|
||||
#: /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/oeb/base.py:569
|
||||
#: /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:376
|
||||
#: /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:933
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
|
||||
#: /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:123
|
||||
#: /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/database2.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:901
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
|
||||
#: /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/web/feeds/news.py:51
|
||||
msgid "Unknown"
|
||||
@ -738,7 +739,7 @@ msgid "%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/mobi/reader.py:506
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
|
||||
msgid "Output directory. Defaults to current directory."
|
||||
msgstr "Directorio de salida. Por defecto es el directorio actual"
|
||||
|
||||
@ -755,7 +756,7 @@ msgid "Useful for debugging."
|
||||
msgstr "Útil para depuración."
|
||||
|
||||
#: /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"
|
||||
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
|
||||
msgid "LibraryThing.com timed out. Try again later."
|
||||
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
|
||||
msgid ""
|
||||
@ -1901,11 +1903,11 @@ msgstr "Uso: rb-meta file.rb"
|
||||
msgid "Creating Mobipocket file from 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"
|
||||
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"
|
||||
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
|
||||
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:156
|
||||
@ -2219,20 +2221,20 @@ msgstr "Añadiendo libros recursivamente..."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:141
|
||||
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
|
||||
msgid "Adding books to database..."
|
||||
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/main.py:694
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
|
||||
msgid "Reading metadata..."
|
||||
msgstr "Leyendo metadatos..."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:186
|
||||
msgid "Searching in"
|
||||
msgstr ""
|
||||
msgstr "Buscando en"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:72
|
||||
msgid "Device no longer connected."
|
||||
@ -2456,7 +2458,7 @@ msgid "Access log:"
|
||||
msgstr "Registro de accesos:"
|
||||
|
||||
#: /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"
|
||||
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"
|
||||
|
||||
#: /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"
|
||||
msgstr "No se puede convertir"
|
||||
|
||||
@ -3626,28 +3628,33 @@ msgstr "Eliminar &formato:"
|
||||
msgid "A&utomatically set author sort"
|
||||
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"
|
||||
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"
|
||||
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:139
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
|
||||
msgid "Could not read cover"
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<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> "
|
||||
@ -3657,19 +3664,19 @@ msgstr ""
|
||||
"<b>LibraryThing.com</b>. <br/>Si no dispone de una cuenta, puede <a "
|
||||
"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/>"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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/tags.py:50
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:814
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
|
||||
msgid "News"
|
||||
msgstr "Noticias"
|
||||
|
||||
@ -4581,7 +4588,7 @@ msgid "Save to disk in a single directory"
|
||||
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:1248
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
|
||||
msgid "Save only %s format to disk"
|
||||
msgstr "Guardar solamente el formato %s en disco"
|
||||
|
||||
@ -4619,31 +4626,31 @@ msgid "Bad database location"
|
||||
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:1388
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1395
|
||||
msgid "Choose a location for your ebook library."
|
||||
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"
|
||||
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: "
|
||||
msgstr "Dispositivo: "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
|
||||
msgid " detected."
|
||||
msgstr " detectado."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
|
||||
msgid "Connected "
|
||||
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"
|
||||
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 ""
|
||||
"\n"
|
||||
" <p>The database of books on the reader is corrupted. Try the "
|
||||
@ -4673,66 +4680,66 @@ msgstr ""
|
||||
" </ol>\n"
|
||||
" "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
|
||||
msgid "Uploading books to device."
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Comics"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
|
||||
msgid "Archives"
|
||||
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..."
|
||||
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"
|
||||
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 ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
"<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 ""
|
||||
"The selected books will be <b>permanently deleted</b> and the files removed "
|
||||
"from your computer. Are you sure?"
|
||||
@ -4740,35 +4747,35 @@ msgstr ""
|
||||
"Los libros seleccionados serán <b>eliminados permanentemente</b> y los "
|
||||
"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."
|
||||
msgstr "Eliminando libros del dispositivo"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
msgid "Cannot edit metadata"
|
||||
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:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
|
||||
msgid "No books selected"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
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 ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found:<br><ul>%s</ul>"
|
||||
@ -4776,23 +4783,23 @@ msgstr ""
|
||||
"No se pudieron enviar los siguientes libros al dispositivo, ya que no se "
|
||||
"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"
|
||||
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..."
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<p>Could not save the following books to disk, because the %s format is not "
|
||||
"available for them:<ul>"
|
||||
@ -4800,64 +4807,64 @@ msgstr ""
|
||||
"<p>No se pudieron guardar los siguientes libros en disco, porque el formato "
|
||||
"%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"
|
||||
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 "
|
||||
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."
|
||||
msgstr " obtenido."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
msgid "No book selected"
|
||||
msgstr "Seleccione un libro"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
|
||||
msgid "Cannot view"
|
||||
msgstr "No se puede visualizar"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
|
||||
msgid "Choose the format to view"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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 "
|
||||
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"
|
||||
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 ""
|
||||
"<p>An invalid database already exists at %s, delete it before trying to move "
|
||||
"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 "
|
||||
"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"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
"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"
|
||||
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 ""
|
||||
"There was a temporary error talking to the device. Please unplug and "
|
||||
"reconnect the device and or reboot."
|
||||
@ -4890,13 +4897,13 @@ msgstr ""
|
||||
"Hubo un error de comunicación con el dispositivo. Desconecte, vuelva a "
|
||||
"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:1369
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
|
||||
msgid "Conversion Error"
|
||||
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 ""
|
||||
"<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."
|
||||
@ -4904,7 +4911,7 @@ msgstr ""
|
||||
"<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."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
|
||||
msgid ""
|
||||
"is the result of the efforts of many volunteers from all over the world. If "
|
||||
"you find it useful, please consider donating to support its development."
|
||||
@ -4913,11 +4920,11 @@ msgstr ""
|
||||
"lo encuentras útil, por favor, considera donar dinero para soportar su "
|
||||
"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?"
|
||||
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 ""
|
||||
" is communicating with the device!<br>\n"
|
||||
" 'Quitting may cause corruption on the device.<br>\n"
|
||||
@ -4928,11 +4935,11 @@ msgstr ""
|
||||
"dispositivo.<br>\n"
|
||||
" '¿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"
|
||||
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 ""
|
||||
"will keep running in the system tray. To close it, choose <b>Quit</b> in the "
|
||||
"context menu of the system tray."
|
||||
@ -4940,7 +4947,7 @@ msgstr ""
|
||||
"continuará ejecutándose en la bandeja del sistema. Para cerrarlo, elige "
|
||||
"<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 ""
|
||||
"<span style=\"color:red; font-weight:bold\">Latest version: <a "
|
||||
"href=\"%s\">%s</a></span>"
|
||||
@ -4948,7 +4955,7 @@ msgstr ""
|
||||
"<span style=\"color:red; font-weight:bold\">Última versión: <a "
|
||||
"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 ""
|
||||
"%s has been updated to version %s. See the <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
|
||||
@ -4958,19 +4965,19 @@ msgstr ""
|
||||
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">nuevas "
|
||||
"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"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr "Información del log de depuración a consola"
|
||||
|
||||
@ -5833,21 +5840,21 @@ msgstr ""
|
||||
"\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>"
|
||||
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:1343
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
|
||||
msgid "Copying <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>"
|
||||
msgstr ""
|
||||
"<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"
|
||||
msgstr "Compactando base de datos"
|
||||
|
||||
@ -5882,39 +5889,39 @@ msgstr "%sUso%s: %s\n"
|
||||
msgid "Created by "
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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)"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
|
||||
#: /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 ""
|
||||
"Timeout in seconds to wait for a response from the server. Default: %default "
|
||||
"s"
|
||||
@ -5967,7 +5974,7 @@ msgstr ""
|
||||
"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/fetch/simple.py:466
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
|
||||
msgid ""
|
||||
"Minimum interval in seconds between consecutive fetches. Default is %default "
|
||||
"s"
|
||||
@ -5976,7 +5983,7 @@ msgstr ""
|
||||
"omisión %default segundos"
|
||||
|
||||
#: /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 ""
|
||||
"The character encoding for the websites you are trying to download. The "
|
||||
"default is to try and guess the encoding."
|
||||
@ -5985,7 +5992,7 @@ msgstr ""
|
||||
"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/fetch/simple.py:470
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
|
||||
msgid ""
|
||||
"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 "
|
||||
@ -5997,7 +6004,7 @@ msgstr ""
|
||||
"enlaces se siguen."
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -6012,7 +6019,7 @@ msgstr ""
|
||||
"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/fetch/simple.py:474
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476
|
||||
msgid "Do not download CSS stylesheets."
|
||||
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_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_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_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_infobae.py:52
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54
|
||||
#: /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:21
|
||||
#: /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_segunda.py:61
|
||||
#: /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_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_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_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_cnn.py:15
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
|
||||
@ -6338,17 +6347,17 @@ msgstr "Español"
|
||||
msgid "English"
|
||||
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_blic.py:53
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58
|
||||
#: /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:23
|
||||
#: /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:29
|
||||
#: /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:25
|
||||
#: /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_politika.py:19
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108
|
||||
#: /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:27
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
|
||||
msgid "Serbian"
|
||||
msgstr "Serbio"
|
||||
|
||||
@ -6380,11 +6389,11 @@ msgstr "Portugués"
|
||||
msgid "German"
|
||||
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"
|
||||
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 ""
|
||||
"%prog URL\n"
|
||||
"\n"
|
||||
@ -6394,11 +6403,11 @@ msgstr ""
|
||||
"\n"
|
||||
"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"
|
||||
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 ""
|
||||
"Maximum number of levels to recurse i.e. depth of links to follow. Default "
|
||||
"%default"
|
||||
@ -6406,7 +6415,7 @@ msgstr ""
|
||||
"Máximo número de niveles de recursión, es decir, profundidad de los enlaces "
|
||||
"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 ""
|
||||
"The maximum number of files to download. This only applies to files from <a "
|
||||
"href> tags. Default is %default"
|
||||
@ -6414,7 +6423,7 @@ msgstr ""
|
||||
"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"
|
||||
|
||||
#: /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"
|
||||
msgstr "Mostrar información de salida detallada. Útil para la depuración"
|
||||
|
||||
|
||||
@ -6,14 +6,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: calibre 0.4.22\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"
|
||||
"Last-Translator: Kovid Goyal <Unknown>\n"
|
||||
"Language-Team: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\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"
|
||||
"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:60
|
||||
#: /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/oeb/base.py:569
|
||||
#: /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:376
|
||||
#: /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:933
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
|
||||
#: /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:123
|
||||
#: /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/database2.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:901
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
|
||||
#: /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/web/feeds/news.py:51
|
||||
msgid "Unknown"
|
||||
@ -608,7 +609,7 @@ msgid "%prog [options] LITFILE"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
msgstr ""
|
||||
|
||||
@ -623,7 +624,7 @@ msgid "Useful for debugging."
|
||||
msgstr "Utile pour déboguer"
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -1718,11 +1719,11 @@ msgstr ""
|
||||
msgid "Creating Mobipocket file from EPUB..."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -2018,7 +2019,7 @@ msgid "Adding books to database..."
|
||||
msgstr ""
|
||||
|
||||
#: /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..."
|
||||
msgstr ""
|
||||
|
||||
@ -2244,7 +2245,7 @@ msgid "Access log:"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -2669,7 +2670,7 @@ msgid " is not a valid picture"
|
||||
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/main.py:1041
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
|
||||
msgid "Cannot convert"
|
||||
msgstr "Conversion impossible"
|
||||
|
||||
@ -3369,28 +3370,33 @@ msgstr ""
|
||||
msgid "A&utomatically set author sort"
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
|
||||
msgid "Could not read cover"
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<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> "
|
||||
@ -3400,19 +3406,19 @@ msgstr ""
|
||||
"<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>"
|
||||
|
||||
#: /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/>"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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/tags.py:50
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:814
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
|
||||
msgid "News"
|
||||
msgstr ""
|
||||
|
||||
@ -4264,7 +4270,7 @@ msgid "Save to disk in a single directory"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -4302,31 +4308,31 @@ msgid "Bad database location"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
|
||||
msgid "Device: "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
|
||||
msgid " detected."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
|
||||
msgid "Connected "
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
|
||||
msgid ""
|
||||
"\n"
|
||||
" <p>The database of books on the reader is corrupted. Try the "
|
||||
@ -4342,186 +4348,186 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
|
||||
msgid "Uploading books to device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
msgid "Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
msgid "EPUB Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
msgid "LRF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
msgid "HTML Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
|
||||
msgid "LIT Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
|
||||
msgid "MOBI Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
|
||||
msgid "Text books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
|
||||
msgid "PDF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
|
||||
msgid "Comics"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
|
||||
msgid "Archives"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
|
||||
msgid "Adding books..."
|
||||
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"
|
||||
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 ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
"<p>Impossible d'envoyer les livres sur le lecteur : il n'y a plus assez "
|
||||
"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 ""
|
||||
"The selected books will be <b>permanently deleted</b> and the files removed "
|
||||
"from your computer. Are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
|
||||
msgid "Deleting books from device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
msgid "Cannot edit metadata"
|
||||
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:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
|
||||
msgid "No books selected"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
|
||||
msgid ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found:<br><ul>%s</ul>"
|
||||
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"
|
||||
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..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
|
||||
msgid "Saved"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
|
||||
msgid ""
|
||||
"<p>Could not save the following books to disk, because the %s format is not "
|
||||
"available for them:<ul>"
|
||||
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"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
|
||||
msgid " fetched."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
msgid "No book selected"
|
||||
msgstr "Aucun livre sélectionné"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
|
||||
msgid "Cannot view"
|
||||
msgstr "Impossible de visualiser"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
|
||||
msgid "Choose the format to view"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
|
||||
msgid "Cannot configure"
|
||||
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."
|
||||
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"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
|
||||
msgid "Invalid database"
|
||||
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 ""
|
||||
"<p>An invalid database already exists at %s, delete it before trying to move "
|
||||
"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 "
|
||||
"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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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 ""
|
||||
"There was a temporary error talking to the device. Please unplug and "
|
||||
"reconnect the device and or reboot."
|
||||
@ -4554,71 +4560,71 @@ msgstr ""
|
||||
"lecteur électronique. Veuillez déconnecter et reconnecter le lecteur "
|
||||
"électronique et redémarrer."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
|
||||
msgid "Conversion Error"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
|
||||
msgid ""
|
||||
"<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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
|
||||
msgid ""
|
||||
"is the result of the efforts of many volunteers from all over the world. If "
|
||||
"you find it useful, please consider donating to support its development."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/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?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
|
||||
msgid ""
|
||||
" is communicating with the device!<br>\n"
|
||||
" 'Quitting may cause corruption on the device.<br>\n"
|
||||
" 'Are you sure you want to quit?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
|
||||
msgid "WARNING: Active jobs"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
|
||||
msgid ""
|
||||
"will keep running in the system tray. To close it, choose <b>Quit</b> in the "
|
||||
"context menu of the system tray."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
|
||||
msgid ""
|
||||
"<span style=\"color:red; font-weight:bold\">Latest version: <a "
|
||||
"href=\"%s\">%s</a></span>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid ""
|
||||
"%s has been updated to version %s. See the <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
|
||||
"Visit the download page?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid "Update available"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5362,20 +5368,20 @@ msgid ""
|
||||
"For help on an individual command: %%prog command --help\n"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
|
||||
msgid "Copying <b>%s</b>"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
|
||||
msgid "Compacting database"
|
||||
msgstr ""
|
||||
|
||||
@ -5406,39 +5412,39 @@ msgstr "%sUsage%s: %s\n"
|
||||
msgid "Created by "
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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)"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5481,28 +5487,28 @@ msgid "Customize the download engine"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Timeout in seconds to wait for a response from the server. Default: %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Minimum interval in seconds between consecutive fetches. Default is %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"The character encoding for the websites you are trying to download. The "
|
||||
"default is to try and guess the encoding."
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5510,7 +5516,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5520,7 +5526,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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_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_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_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_infobae.py:52
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54
|
||||
#: /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:21
|
||||
#: /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_segunda.py:61
|
||||
#: /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_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_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_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_cnn.py:15
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
|
||||
@ -5803,17 +5811,17 @@ msgstr ""
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58
|
||||
#: /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:23
|
||||
#: /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:29
|
||||
#: /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:25
|
||||
#: /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_politika.py:19
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108
|
||||
#: /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:27
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
@ -5845,34 +5853,34 @@ msgstr ""
|
||||
msgid "German"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
|
||||
msgid ""
|
||||
"%prog URL\n"
|
||||
"\n"
|
||||
"Where URL is for example http://google.com"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
|
||||
msgid ""
|
||||
"Maximum number of levels to recurse i.e. depth of links to follow. Default "
|
||||
"%default"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
|
||||
msgid ""
|
||||
"The maximum number of files to download. This only applies to files from <a "
|
||||
"href> tags. Default is %default"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -7,14 +7,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: calibre\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"
|
||||
"Last-Translator: Calidonia <Unknown>\n"
|
||||
"Language-Team: Galician <gl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\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"
|
||||
|
||||
#: /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:60
|
||||
#: /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/oeb/base.py:569
|
||||
#: /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:376
|
||||
#: /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:933
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
|
||||
#: /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:123
|
||||
#: /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/database2.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:901
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
|
||||
#: /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/web/feeds/news.py:51
|
||||
msgid "Unknown"
|
||||
@ -611,7 +612,7 @@ msgid "%prog [options] LITFILE"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
msgstr ""
|
||||
|
||||
@ -626,7 +627,7 @@ msgid "Useful for debugging."
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -1577,11 +1578,11 @@ msgstr ""
|
||||
msgid "Creating Mobipocket file from EPUB..."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -1875,7 +1876,7 @@ msgid "Adding books to database..."
|
||||
msgstr ""
|
||||
|
||||
#: /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..."
|
||||
msgstr ""
|
||||
|
||||
@ -2101,7 +2102,7 @@ msgid "Access log:"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -2525,7 +2526,7 @@ msgid " is not a valid picture"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -3200,47 +3201,52 @@ msgstr ""
|
||||
msgid "A&utomatically set author sort"
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
|
||||
msgid "Could not read cover"
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<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> "
|
||||
"for free!.</p>"
|
||||
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/>"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
@ -3400,9 +3406,9 @@ msgstr ""
|
||||
|
||||
#: /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/library/database2.py:809
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:814
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
|
||||
msgid "News"
|
||||
msgstr ""
|
||||
|
||||
@ -4086,7 +4092,7 @@ msgid "Save to disk in a single directory"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -4124,31 +4130,31 @@ msgid "Bad database location"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
|
||||
msgid "Device: "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
|
||||
msgid " detected."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
|
||||
msgid "Connected "
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
|
||||
msgid ""
|
||||
"\n"
|
||||
" <p>The database of books on the reader is corrupted. Try the "
|
||||
@ -4164,276 +4170,276 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
|
||||
msgid "Uploading books to device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
msgid "Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
msgid "EPUB Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
msgid "LRF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
msgid "HTML Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
|
||||
msgid "LIT Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
|
||||
msgid "MOBI Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
|
||||
msgid "Text books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
|
||||
msgid "PDF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
|
||||
msgid "Comics"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
|
||||
msgid "Archives"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
|
||||
msgid "Adding books..."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
|
||||
msgid ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
|
||||
msgid ""
|
||||
"The selected books will be <b>permanently deleted</b> and the files removed "
|
||||
"from your computer. Are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
|
||||
msgid "Deleting books from device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
msgid "Cannot edit metadata"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
|
||||
msgid "No books selected"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
|
||||
msgid ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found:<br><ul>%s</ul>"
|
||||
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"
|
||||
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..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
|
||||
msgid "Saved"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
|
||||
msgid ""
|
||||
"<p>Could not save the following books to disk, because the %s format is not "
|
||||
"available for them:<ul>"
|
||||
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"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
|
||||
msgid " fetched."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
msgid "No book selected"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
|
||||
msgid "Cannot view"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
|
||||
msgid "Choose the format to view"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
|
||||
msgid "Cannot configure"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
|
||||
msgid "Copying database"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
|
||||
msgid "Invalid database"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
|
||||
msgid ""
|
||||
"<p>An invalid database already exists at %s, delete it before trying to move "
|
||||
"the existing database.<br>Error: %s"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
|
||||
msgid ""
|
||||
"There was a temporary error talking to the device. Please unplug and "
|
||||
"reconnect the device and or reboot."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
|
||||
msgid "Conversion Error"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
|
||||
msgid ""
|
||||
"<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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
|
||||
msgid ""
|
||||
"is the result of the efforts of many volunteers from all over the world. If "
|
||||
"you find it useful, please consider donating to support its development."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/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?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
|
||||
msgid ""
|
||||
" is communicating with the device!<br>\n"
|
||||
" 'Quitting may cause corruption on the device.<br>\n"
|
||||
" 'Are you sure you want to quit?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
|
||||
msgid "WARNING: Active jobs"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
|
||||
msgid ""
|
||||
"will keep running in the system tray. To close it, choose <b>Quit</b> in the "
|
||||
"context menu of the system tray."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
|
||||
msgid ""
|
||||
"<span style=\"color:red; font-weight:bold\">Latest version: <a "
|
||||
"href=\"%s\">%s</a></span>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid ""
|
||||
"%s has been updated to version %s. See the <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
|
||||
"Visit the download page?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid "Update available"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5173,20 +5179,20 @@ msgid ""
|
||||
"For help on an individual command: %%prog command --help\n"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
|
||||
msgid "Copying <b>%s</b>"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
|
||||
msgid "Compacting database"
|
||||
msgstr ""
|
||||
|
||||
@ -5217,39 +5223,39 @@ msgstr ""
|
||||
msgid "Created by "
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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)"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5292,28 +5298,28 @@ msgid "Customize the download engine"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Timeout in seconds to wait for a response from the server. Default: %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Minimum interval in seconds between consecutive fetches. Default is %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"The character encoding for the websites you are trying to download. The "
|
||||
"default is to try and guess the encoding."
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5321,7 +5327,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5331,7 +5337,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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_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_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_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_infobae.py:52
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54
|
||||
#: /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:21
|
||||
#: /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_segunda.py:61
|
||||
#: /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_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_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_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_cnn.py:15
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
|
||||
@ -5614,17 +5622,17 @@ msgstr ""
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58
|
||||
#: /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:23
|
||||
#: /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:29
|
||||
#: /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:25
|
||||
#: /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_politika.py:19
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108
|
||||
#: /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:27
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
@ -5656,33 +5664,33 @@ msgstr ""
|
||||
msgid "German"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
|
||||
msgid ""
|
||||
"%prog URL\n"
|
||||
"\n"
|
||||
"Where URL is for example http://google.com"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
|
||||
msgid ""
|
||||
"Maximum number of levels to recurse i.e. depth of links to follow. Default "
|
||||
"%default"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
|
||||
msgid ""
|
||||
"The maximum number of files to download. This only applies to files from <a "
|
||||
"href> tags. Default is %default"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -7,14 +7,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: calibre\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"
|
||||
"Last-Translator: Kovid Goyal <Unknown>\n"
|
||||
"Language-Team: Hungarian <hu@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\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"
|
||||
|
||||
#: /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:60
|
||||
#: /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/oeb/base.py:569
|
||||
#: /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:376
|
||||
#: /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:933
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
|
||||
#: /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:123
|
||||
#: /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/database2.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:901
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
|
||||
#: /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/web/feeds/news.py:51
|
||||
msgid "Unknown"
|
||||
@ -715,7 +716,7 @@ msgid "%prog [options] 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/mobi/reader.py:506
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
|
||||
msgid "Output directory. Defaults to current directory."
|
||||
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."
|
||||
|
||||
#: /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"
|
||||
msgstr "Az OEB e-könyvet létrehoztam ennyi idő alatt:"
|
||||
|
||||
@ -1787,11 +1788,11 @@ msgstr ""
|
||||
msgid "Creating Mobipocket file from EPUB..."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -2085,7 +2086,7 @@ msgid "Adding books to database..."
|
||||
msgstr ""
|
||||
|
||||
#: /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..."
|
||||
msgstr ""
|
||||
|
||||
@ -2311,7 +2312,7 @@ msgid "Access log:"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -2735,7 +2736,7 @@ msgid " is not a valid picture"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -3410,47 +3411,52 @@ msgstr ""
|
||||
msgid "A&utomatically set author sort"
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
|
||||
msgid "Could not read cover"
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<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> "
|
||||
"for free!.</p>"
|
||||
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/>"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
@ -3610,9 +3616,9 @@ msgstr ""
|
||||
|
||||
#: /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/library/database2.py:809
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:814
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
|
||||
msgid "News"
|
||||
msgstr ""
|
||||
|
||||
@ -4296,7 +4302,7 @@ msgid "Save to disk in a single directory"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -4334,31 +4340,31 @@ msgid "Bad database location"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
|
||||
msgid "Device: "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
|
||||
msgid " detected."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
|
||||
msgid "Connected "
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
|
||||
msgid ""
|
||||
"\n"
|
||||
" <p>The database of books on the reader is corrupted. Try the "
|
||||
@ -4374,276 +4380,276 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
|
||||
msgid "Uploading books to device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
msgid "Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
msgid "EPUB Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
msgid "LRF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
msgid "HTML Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
|
||||
msgid "LIT Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
|
||||
msgid "MOBI Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
|
||||
msgid "Text books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
|
||||
msgid "PDF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
|
||||
msgid "Comics"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
|
||||
msgid "Archives"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
|
||||
msgid "Adding books..."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
|
||||
msgid ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
|
||||
msgid ""
|
||||
"The selected books will be <b>permanently deleted</b> and the files removed "
|
||||
"from your computer. Are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
|
||||
msgid "Deleting books from device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
msgid "Cannot edit metadata"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
|
||||
msgid "No books selected"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
|
||||
msgid ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found:<br><ul>%s</ul>"
|
||||
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"
|
||||
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..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
|
||||
msgid "Saved"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
|
||||
msgid ""
|
||||
"<p>Could not save the following books to disk, because the %s format is not "
|
||||
"available for them:<ul>"
|
||||
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"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
|
||||
msgid " fetched."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
msgid "No book selected"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
|
||||
msgid "Cannot view"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
|
||||
msgid "Choose the format to view"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
|
||||
msgid "Cannot configure"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
|
||||
msgid "Copying database"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
|
||||
msgid "Invalid database"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
|
||||
msgid ""
|
||||
"<p>An invalid database already exists at %s, delete it before trying to move "
|
||||
"the existing database.<br>Error: %s"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
|
||||
msgid ""
|
||||
"There was a temporary error talking to the device. Please unplug and "
|
||||
"reconnect the device and or reboot."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
|
||||
msgid "Conversion Error"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
|
||||
msgid ""
|
||||
"<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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
|
||||
msgid ""
|
||||
"is the result of the efforts of many volunteers from all over the world. If "
|
||||
"you find it useful, please consider donating to support its development."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/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?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
|
||||
msgid ""
|
||||
" is communicating with the device!<br>\n"
|
||||
" 'Quitting may cause corruption on the device.<br>\n"
|
||||
" 'Are you sure you want to quit?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
|
||||
msgid "WARNING: Active jobs"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
|
||||
msgid ""
|
||||
"will keep running in the system tray. To close it, choose <b>Quit</b> in the "
|
||||
"context menu of the system tray."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
|
||||
msgid ""
|
||||
"<span style=\"color:red; font-weight:bold\">Latest version: <a "
|
||||
"href=\"%s\">%s</a></span>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid ""
|
||||
"%s has been updated to version %s. See the <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
|
||||
"Visit the download page?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid "Update available"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5383,20 +5389,20 @@ msgid ""
|
||||
"For help on an individual command: %%prog command --help\n"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
|
||||
msgid "Copying <b>%s</b>"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
|
||||
msgid "Compacting database"
|
||||
msgstr ""
|
||||
|
||||
@ -5427,39 +5433,39 @@ msgstr ""
|
||||
msgid "Created by "
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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)"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5502,28 +5508,28 @@ msgid "Customize the download engine"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Timeout in seconds to wait for a response from the server. Default: %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Minimum interval in seconds between consecutive fetches. Default is %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"The character encoding for the websites you are trying to download. The "
|
||||
"default is to try and guess the encoding."
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5531,7 +5537,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5541,7 +5547,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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_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_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_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_infobae.py:52
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54
|
||||
#: /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:21
|
||||
#: /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_segunda.py:61
|
||||
#: /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_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_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_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_cnn.py:15
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
|
||||
@ -5824,17 +5832,17 @@ msgstr ""
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58
|
||||
#: /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:23
|
||||
#: /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:29
|
||||
#: /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:25
|
||||
#: /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_politika.py:19
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108
|
||||
#: /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:27
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
@ -5866,34 +5874,34 @@ msgstr ""
|
||||
msgid "German"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
|
||||
msgid ""
|
||||
"%prog URL\n"
|
||||
"\n"
|
||||
"Where URL is for example http://google.com"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
|
||||
msgid ""
|
||||
"Maximum number of levels to recurse i.e. depth of links to follow. Default "
|
||||
"%default"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
|
||||
msgid ""
|
||||
"The maximum number of files to download. This only applies to files from <a "
|
||||
"href> tags. Default is %default"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -8,14 +8,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: calibre_calibre-it\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-02-11 03:58+0000\n"
|
||||
"PO-Revision-Date: 2009-01-07 18:21+0000\n"
|
||||
"Last-Translator: Kovid Goyal <Unknown>\n"
|
||||
"POT-Creation-Date: 2009-02-13 20:29+0000\n"
|
||||
"PO-Revision-Date: 2009-02-17 12:58+0000\n"
|
||||
"Last-Translator: Nikopol <aegnor_isilra@hotmail.com>\n"
|
||||
"Language-Team: italiano\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\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"
|
||||
"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:60
|
||||
#: /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/oeb/base.py:569
|
||||
#: /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:376
|
||||
#: /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:933
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
|
||||
#: /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:123
|
||||
#: /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/database2.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:901
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
|
||||
#: /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/web/feeds/news.py:51
|
||||
msgid "Unknown"
|
||||
@ -121,6 +122,9 @@ msgid ""
|
||||
"linked files. This plugin is run every time you add an HTML file to the "
|
||||
"library."
|
||||
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:43
|
||||
@ -144,18 +148,18 @@ msgstr "Estrae le copertine dai file dei fumetti"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:186
|
||||
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
|
||||
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:217
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:227
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:237
|
||||
msgid "Set metadata in %s files"
|
||||
msgstr ""
|
||||
msgstr "Organizza i metadati in %s file"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:28
|
||||
msgid "Installed plugins"
|
||||
@ -167,7 +171,7 @@ msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:30
|
||||
msgid "Local plugin customization"
|
||||
msgstr ""
|
||||
msgstr "Organizzazione dei plugin locali"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:31
|
||||
msgid "Disabled plugins"
|
||||
@ -175,7 +179,7 @@ msgstr "Disabilita plug-in"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:66
|
||||
msgid "No valid plugin found in "
|
||||
msgstr ""
|
||||
msgstr "Nessun valido plugin trovato in "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:185
|
||||
msgid "Initialization of plugin %s failed with traceback:"
|
||||
@ -196,6 +200,7 @@ msgstr ""
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:268
|
||||
msgid "Add a plugin by specifying the path to the zip file containing it."
|
||||
msgstr ""
|
||||
"Aggiungi un plugin specificando il percorso al file zip che lo contiene."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:270
|
||||
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 "
|
||||
"by a comma."
|
||||
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
|
||||
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/usbms/driver.py:89
|
||||
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/usbms/driver.py:91
|
||||
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:168
|
||||
@ -691,7 +698,7 @@ msgid "%prog [options] LITFILE"
|
||||
msgstr "%prog [opzioni] FILELIT"
|
||||
|
||||
#: /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."
|
||||
msgstr "Cartella in uscita. Predefinita: cartella corrente."
|
||||
|
||||
@ -708,7 +715,7 @@ msgid "Useful for debugging."
|
||||
msgstr "Utile per il debugging"
|
||||
|
||||
#: /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"
|
||||
msgstr "Libro OEB creato in"
|
||||
|
||||
@ -1860,11 +1867,11 @@ msgstr "Uso: rb-meta file.rb"
|
||||
msgid "Creating Mobipocket file from EPUB..."
|
||||
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"
|
||||
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"
|
||||
msgstr "MOBI HTML raw salvato in"
|
||||
|
||||
@ -2165,7 +2172,7 @@ msgid "Adding books to database..."
|
||||
msgstr ""
|
||||
|
||||
#: /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..."
|
||||
msgstr ""
|
||||
|
||||
@ -2394,7 +2401,7 @@ msgid "Access log:"
|
||||
msgstr "File di log degli accessi:"
|
||||
|
||||
#: /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"
|
||||
msgstr "Avvio del server dei contenuti fallito"
|
||||
|
||||
@ -2839,7 +2846,7 @@ msgid " is not a valid picture"
|
||||
msgstr " non è un'immagine valida"
|
||||
|
||||
#: /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"
|
||||
msgstr "Impossibile convertire"
|
||||
|
||||
@ -3554,28 +3561,33 @@ msgstr "Rimuovi for&mato:"
|
||||
msgid "A&utomatically set author sort"
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
|
||||
msgid "Could not read cover"
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<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> "
|
||||
@ -3585,19 +3597,19 @@ msgstr ""
|
||||
"<br/>Se non se ne possiede uno, è possibile <a "
|
||||
"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/>"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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/tags.py:50
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:814
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
|
||||
msgid "News"
|
||||
msgstr "Notizie"
|
||||
|
||||
@ -4045,7 +4057,7 @@ msgstr "&Rimuovi formula"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:252
|
||||
msgid "&Share recipe"
|
||||
msgstr "Condi&vidi formula"
|
||||
msgstr "&Condividi formula"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:253
|
||||
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
|
||||
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
|
||||
msgid ""
|
||||
@ -4495,7 +4507,7 @@ msgid "Save to disk in a single directory"
|
||||
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:1248
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
|
||||
msgid "Save only %s format to disk"
|
||||
msgstr "Salva sul disco solo il formato %s"
|
||||
|
||||
@ -4533,31 +4545,31 @@ msgid "Bad database location"
|
||||
msgstr "Percorso del database sbagliato"
|
||||
|
||||
#: /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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
|
||||
msgid "Device: "
|
||||
msgstr "Dispositivo: "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
|
||||
msgid " detected."
|
||||
msgstr " individuato."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
|
||||
msgid "Connected "
|
||||
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"
|
||||
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 ""
|
||||
"\n"
|
||||
" <p>The database of books on the reader is corrupted. Try the "
|
||||
@ -4586,101 +4598,101 @@ msgstr ""
|
||||
" </ol>\n"
|
||||
" "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
|
||||
msgid "Uploading books to device."
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Fumetti"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
|
||||
msgid "Archives"
|
||||
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..."
|
||||
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"
|
||||
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 ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
"<p>Impossibile salvare libri sul dispositivo perché non c'è più spazio "
|
||||
"disponibile "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
|
||||
msgid ""
|
||||
"The selected books will be <b>permanently deleted</b> and the files removed "
|
||||
"from your computer. Are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
|
||||
msgid "Deleting books from device."
|
||||
msgstr "Cancellamento libri dal dispositivo."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
msgid "Cannot edit metadata"
|
||||
msgstr "Impossibile modificare i metadati"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
|
||||
msgid "No books selected"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
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 ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found:<br><ul>%s</ul>"
|
||||
@ -4688,23 +4700,23 @@ msgstr ""
|
||||
"Impossibile caricare i seguenti libri nel dispositivo, perché non è stato "
|
||||
"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"
|
||||
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..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
|
||||
msgid "Saved"
|
||||
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"
|
||||
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 ""
|
||||
"<p>Could not save the following books to disk, because the %s format is not "
|
||||
"available for them:<ul>"
|
||||
@ -4712,64 +4724,64 @@ msgstr ""
|
||||
"<p>Impossibile salvare i libri seguenti su disco, perché il formato %s non è "
|
||||
"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"
|
||||
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 "
|
||||
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."
|
||||
msgstr " preso."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
msgid "No book selected"
|
||||
msgstr "Nessun libro selezionato"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
|
||||
msgid "Cannot view"
|
||||
msgstr "Impossibile leggere"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
|
||||
msgid "Choose the format to view"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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 "
|
||||
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"
|
||||
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 ""
|
||||
"<p>An invalid database already exists at %s, delete it before trying to move "
|
||||
"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 "
|
||||
"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"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
"Non è disponibile alcuna informazione dettagliata per i libri nel "
|
||||
"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"
|
||||
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 ""
|
||||
"There was a temporary error talking to the device. Please unplug and "
|
||||
"reconnect the device and or reboot."
|
||||
@ -4803,13 +4815,13 @@ msgstr ""
|
||||
"Si è verificato un errore di comunicazione temporaneo col dispositivo. "
|
||||
"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:1369
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
|
||||
msgid "Conversion Error"
|
||||
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 ""
|
||||
"<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."
|
||||
@ -4818,7 +4830,7 @@ msgstr ""
|
||||
"href=\"%s\">DRM</a>. È necessario rimuovere prima il DRM usando programmi di "
|
||||
"terze parti."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
|
||||
msgid ""
|
||||
"is the result of the efforts of many volunteers from all over the world. If "
|
||||
"you find it useful, please consider donating to support its development."
|
||||
@ -4826,22 +4838,22 @@ msgstr ""
|
||||
"è il risultato degli sforzi di tanti volontari da tutto il mondo. Se lo "
|
||||
"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?"
|
||||
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 ""
|
||||
" is communicating with the device!<br>\n"
|
||||
" 'Quitting may cause corruption on the device.<br>\n"
|
||||
" 'Are you sure you want to quit?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
|
||||
msgid "WARNING: Active jobs"
|
||||
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 ""
|
||||
"will keep running in the system tray. To close it, choose <b>Quit</b> in the "
|
||||
"context menu of the system tray."
|
||||
@ -4849,7 +4861,7 @@ msgstr ""
|
||||
"continuerà a lavorare nel vassoio di sistema. Per chiuderlo, selezionare "
|
||||
"<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 ""
|
||||
"<span style=\"color:red; font-weight:bold\">Latest version: <a "
|
||||
"href=\"%s\">%s</a></span>"
|
||||
@ -4857,7 +4869,7 @@ msgstr ""
|
||||
"<span style=\"color:red; font-weight:bold\">Ultima versione: <a "
|
||||
"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 ""
|
||||
"%s has been updated to version %s. See the <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
|
||||
@ -4867,19 +4879,19 @@ msgstr ""
|
||||
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">nuove "
|
||||
"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"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr "Invia le informazioni di debug alla console"
|
||||
|
||||
@ -5733,21 +5745,21 @@ msgstr ""
|
||||
"\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>"
|
||||
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:1343
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
|
||||
msgid "Copying <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>"
|
||||
msgstr ""
|
||||
"<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"
|
||||
msgstr "Compattazione database"
|
||||
|
||||
@ -5782,39 +5794,39 @@ msgstr "%sUso%s: %s\n"
|
||||
msgid "Created by "
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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)"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr "La priorità dei processi di lavoro"
|
||||
|
||||
@ -5858,7 +5870,7 @@ msgid "Customize the download engine"
|
||||
msgstr "Personalizza il motore degli scaricamenti"
|
||||
|
||||
#: /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 ""
|
||||
"Timeout in seconds to wait for a response from the server. Default: %default "
|
||||
"s"
|
||||
@ -5867,7 +5879,7 @@ msgstr ""
|
||||
"%default s"
|
||||
|
||||
#: /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 ""
|
||||
"Minimum interval in seconds between consecutive fetches. Default is %default "
|
||||
"s"
|
||||
@ -5876,7 +5888,7 @@ msgstr ""
|
||||
"%default s"
|
||||
|
||||
#: /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 ""
|
||||
"The character encoding for the websites you are trying to download. The "
|
||||
"default is to try and guess the encoding."
|
||||
@ -5885,7 +5897,7 @@ msgstr ""
|
||||
"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/fetch/simple.py:470
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
|
||||
msgid ""
|
||||
"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 "
|
||||
@ -5897,7 +5909,7 @@ msgstr ""
|
||||
"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/fetch/simple.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
|
||||
msgid ""
|
||||
"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 "
|
||||
@ -5913,7 +5925,7 @@ msgstr ""
|
||||
"prima"
|
||||
|
||||
#: /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."
|
||||
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_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_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_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_infobae.py:52
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54
|
||||
#: /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:21
|
||||
#: /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_segunda.py:61
|
||||
#: /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_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_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_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_cnn.py:15
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
|
||||
@ -6236,17 +6250,17 @@ msgstr ""
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58
|
||||
#: /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:23
|
||||
#: /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:29
|
||||
#: /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:25
|
||||
#: /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_politika.py:19
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108
|
||||
#: /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:27
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
@ -6278,11 +6292,11 @@ msgstr ""
|
||||
msgid "German"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
|
||||
msgid ""
|
||||
"%prog URL\n"
|
||||
"\n"
|
||||
@ -6292,11 +6306,11 @@ msgstr ""
|
||||
"\n"
|
||||
"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"
|
||||
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 ""
|
||||
"Maximum number of levels to recurse i.e. depth of links to follow. Default "
|
||||
"%default"
|
||||
@ -6304,7 +6318,7 @@ msgstr ""
|
||||
"Numero massimo di livelli ricorsivi, cioè profondità dei link da seguire. "
|
||||
"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 ""
|
||||
"The maximum number of files to download. This only applies to files from <a "
|
||||
"href> tags. Default is %default"
|
||||
@ -6312,7 +6326,7 @@ msgstr ""
|
||||
"Il numero massimo di file da scaricare. Questa si applica solo ai file dai "
|
||||
"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"
|
||||
msgstr "Mostra un output dettagliato. Utile per il debugging"
|
||||
|
||||
|
||||
@ -7,14 +7,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: calibre\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"
|
||||
"Last-Translator: Kovid Goyal <Unknown>\n"
|
||||
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\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"
|
||||
|
||||
#: /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:60
|
||||
#: /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/oeb/base.py:569
|
||||
#: /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:376
|
||||
#: /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:933
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
|
||||
#: /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:123
|
||||
#: /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/database2.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:901
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
|
||||
#: /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/web/feeds/news.py:51
|
||||
msgid "Unknown"
|
||||
@ -646,7 +647,7 @@ msgid "%prog [options] LITFILE"
|
||||
msgstr "%prog [opsjoner] LITFIL"
|
||||
|
||||
#: /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."
|
||||
msgstr "Lagringskatalog. Standard er nåværende katalog"
|
||||
|
||||
@ -663,7 +664,7 @@ msgid "Useful for debugging."
|
||||
msgstr "Praktisk for feilsøking."
|
||||
|
||||
#: /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"
|
||||
msgstr "OEB bok opprettet i"
|
||||
|
||||
@ -1735,11 +1736,11 @@ msgstr ""
|
||||
msgid "Creating Mobipocket file from EPUB..."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -2033,7 +2034,7 @@ msgid "Adding books to database..."
|
||||
msgstr ""
|
||||
|
||||
#: /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..."
|
||||
msgstr ""
|
||||
|
||||
@ -2259,7 +2260,7 @@ msgid "Access log:"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -2683,7 +2684,7 @@ msgid " is not a valid picture"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -3358,47 +3359,52 @@ msgstr ""
|
||||
msgid "A&utomatically set author sort"
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
|
||||
msgid "Could not read cover"
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<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> "
|
||||
"for free!.</p>"
|
||||
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/>"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
@ -3558,9 +3564,9 @@ msgstr ""
|
||||
|
||||
#: /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/library/database2.py:809
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:814
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
|
||||
msgid "News"
|
||||
msgstr ""
|
||||
|
||||
@ -4244,7 +4250,7 @@ msgid "Save to disk in a single directory"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -4282,31 +4288,31 @@ msgid "Bad database location"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
|
||||
msgid "Device: "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
|
||||
msgid " detected."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
|
||||
msgid "Connected "
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
|
||||
msgid ""
|
||||
"\n"
|
||||
" <p>The database of books on the reader is corrupted. Try the "
|
||||
@ -4322,276 +4328,276 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
|
||||
msgid "Uploading books to device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
msgid "Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
msgid "EPUB Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
msgid "LRF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
msgid "HTML Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
|
||||
msgid "LIT Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
|
||||
msgid "MOBI Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
|
||||
msgid "Text books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
|
||||
msgid "PDF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
|
||||
msgid "Comics"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
|
||||
msgid "Archives"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
|
||||
msgid "Adding books..."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
|
||||
msgid ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
|
||||
msgid ""
|
||||
"The selected books will be <b>permanently deleted</b> and the files removed "
|
||||
"from your computer. Are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
|
||||
msgid "Deleting books from device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
msgid "Cannot edit metadata"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
|
||||
msgid "No books selected"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
|
||||
msgid ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found:<br><ul>%s</ul>"
|
||||
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"
|
||||
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..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
|
||||
msgid "Saved"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
|
||||
msgid ""
|
||||
"<p>Could not save the following books to disk, because the %s format is not "
|
||||
"available for them:<ul>"
|
||||
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"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
|
||||
msgid " fetched."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
msgid "No book selected"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
|
||||
msgid "Cannot view"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
|
||||
msgid "Choose the format to view"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
|
||||
msgid "Cannot configure"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
|
||||
msgid "Copying database"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
|
||||
msgid "Invalid database"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
|
||||
msgid ""
|
||||
"<p>An invalid database already exists at %s, delete it before trying to move "
|
||||
"the existing database.<br>Error: %s"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
|
||||
msgid ""
|
||||
"There was a temporary error talking to the device. Please unplug and "
|
||||
"reconnect the device and or reboot."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
|
||||
msgid "Conversion Error"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
|
||||
msgid ""
|
||||
"<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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
|
||||
msgid ""
|
||||
"is the result of the efforts of many volunteers from all over the world. If "
|
||||
"you find it useful, please consider donating to support its development."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/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?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
|
||||
msgid ""
|
||||
" is communicating with the device!<br>\n"
|
||||
" 'Quitting may cause corruption on the device.<br>\n"
|
||||
" 'Are you sure you want to quit?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
|
||||
msgid "WARNING: Active jobs"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
|
||||
msgid ""
|
||||
"will keep running in the system tray. To close it, choose <b>Quit</b> in the "
|
||||
"context menu of the system tray."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
|
||||
msgid ""
|
||||
"<span style=\"color:red; font-weight:bold\">Latest version: <a "
|
||||
"href=\"%s\">%s</a></span>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid ""
|
||||
"%s has been updated to version %s. See the <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
|
||||
"Visit the download page?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid "Update available"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5331,20 +5337,20 @@ msgid ""
|
||||
"For help on an individual command: %%prog command --help\n"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
|
||||
msgid "Copying <b>%s</b>"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
|
||||
msgid "Compacting database"
|
||||
msgstr ""
|
||||
|
||||
@ -5375,39 +5381,39 @@ msgstr "%sBruksområde%s: %s\n"
|
||||
msgid "Created by "
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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)"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5450,28 +5456,28 @@ msgid "Customize the download engine"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Timeout in seconds to wait for a response from the server. Default: %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Minimum interval in seconds between consecutive fetches. Default is %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"The character encoding for the websites you are trying to download. The "
|
||||
"default is to try and guess the encoding."
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5479,7 +5485,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5489,7 +5495,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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_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_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_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_infobae.py:52
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54
|
||||
#: /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:21
|
||||
#: /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_segunda.py:61
|
||||
#: /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_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_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_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_cnn.py:15
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
|
||||
@ -5772,17 +5780,17 @@ msgstr ""
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58
|
||||
#: /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:23
|
||||
#: /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:29
|
||||
#: /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:25
|
||||
#: /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_politika.py:19
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108
|
||||
#: /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:27
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
@ -5814,34 +5822,34 @@ msgstr ""
|
||||
msgid "German"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
|
||||
msgid ""
|
||||
"%prog URL\n"
|
||||
"\n"
|
||||
"Where URL is for example http://google.com"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
|
||||
msgid ""
|
||||
"Maximum number of levels to recurse i.e. depth of links to follow. Default "
|
||||
"%default"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
|
||||
msgid ""
|
||||
"The maximum number of files to download. This only applies to files from <a "
|
||||
"href> tags. Default is %default"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -7,14 +7,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: de\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"
|
||||
"Last-Translator: S. Dorscht <Unknown>\n"
|
||||
"Language-Team: American English <kde-i18n-doc@lists.kde.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\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"
|
||||
"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:60
|
||||
#: /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/oeb/base.py:569
|
||||
#: /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:376
|
||||
#: /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:933
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
|
||||
#: /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:123
|
||||
#: /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/database2.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:901
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
|
||||
#: /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/web/feeds/news.py:51
|
||||
msgid "Unknown"
|
||||
@ -725,7 +726,7 @@ msgid "%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/mobi/reader.py:506
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
|
||||
msgid "Output directory. Defaults to current directory."
|
||||
msgstr "Ausgabeverzeichnis. Voreinstellung ist aktuelles Verzeichnis."
|
||||
|
||||
@ -742,7 +743,7 @@ msgid "Useful for debugging."
|
||||
msgstr "Hilfreich bei der Fehlersuche."
|
||||
|
||||
#: /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"
|
||||
msgstr "OEB eBook erstellt in"
|
||||
|
||||
@ -1905,11 +1906,11 @@ msgstr "Benutzung: rb-meta file.rb"
|
||||
msgid "Creating Mobipocket file from 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"
|
||||
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"
|
||||
msgstr "Original MOBI HTML gespeichert in"
|
||||
|
||||
@ -2228,7 +2229,7 @@ msgid "Adding books to database..."
|
||||
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/main.py:694
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:700
|
||||
msgid "Reading metadata..."
|
||||
msgstr "Lese Metadaten..."
|
||||
|
||||
@ -2459,7 +2460,7 @@ msgid "Access log:"
|
||||
msgstr "Zugriffs-Protokolldatei:"
|
||||
|
||||
#: /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"
|
||||
msgstr "Content Server konnte nicht gestartet werden"
|
||||
|
||||
@ -2917,7 +2918,7 @@ msgid " is not a valid picture"
|
||||
msgstr " ist kein gültiges Bild"
|
||||
|
||||
#: /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"
|
||||
msgstr "Konvertierung nicht möglich"
|
||||
|
||||
@ -3638,28 +3639,33 @@ msgstr "&Format entfernen:"
|
||||
msgid "A&utomatically set author sort"
|
||||
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"
|
||||
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"
|
||||
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:139
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
|
||||
msgid "Could not read cover"
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<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> "
|
||||
@ -3669,19 +3675,19 @@ msgstr ""
|
||||
"<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>"
|
||||
|
||||
#: /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/>"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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/tags.py:50
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:814
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
|
||||
msgid "News"
|
||||
msgstr "Nachrichten"
|
||||
|
||||
@ -4593,7 +4599,7 @@ msgid "Save to disk in a single directory"
|
||||
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:1248
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
|
||||
msgid "Save only %s format to disk"
|
||||
msgstr "Nur das %s Format auf Festplatte speichern"
|
||||
|
||||
@ -4631,31 +4637,31 @@ msgid "Bad database location"
|
||||
msgstr "Schlechter Datenbank Standort"
|
||||
|
||||
#: /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."
|
||||
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"
|
||||
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: "
|
||||
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."
|
||||
msgstr " gefunden."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
|
||||
msgid "Connected "
|
||||
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"
|
||||
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 ""
|
||||
"\n"
|
||||
" <p>The database of books on the reader is corrupted. Try the "
|
||||
@ -4686,67 +4692,67 @@ msgstr ""
|
||||
" </ol>\n"
|
||||
" "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
|
||||
msgid "Uploading books to device."
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Comics"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
|
||||
msgid "Archives"
|
||||
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..."
|
||||
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"
|
||||
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 ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
"<p>Es können keine Bücher mehr auf das Gerät geladen werden, da der "
|
||||
"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 ""
|
||||
"The selected books will be <b>permanently deleted</b> and the files removed "
|
||||
"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 "
|
||||
"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."
|
||||
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:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
msgid "Cannot edit metadata"
|
||||
msgstr "Kann Metadaten nicht bearbeiten"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
|
||||
msgid "No books selected"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
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 ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"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 "
|
||||
"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"
|
||||
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..."
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<p>Could not save the following books to disk, because the %s format is not "
|
||||
"available for them:<ul>"
|
||||
@ -4814,64 +4820,64 @@ msgstr ""
|
||||
"<p>Die folgenden Bücher konnten nicht auf die Festplatte gespeichert werden, "
|
||||
"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"
|
||||
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 "
|
||||
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."
|
||||
msgstr " abgerufen."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
msgid "No book selected"
|
||||
msgstr "Kein Buch ausgewählt"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
|
||||
msgid "Cannot view"
|
||||
msgstr "Ansehen nicht möglich"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
|
||||
msgid "Choose the format to view"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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 "
|
||||
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"
|
||||
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 ""
|
||||
"<p>An invalid database already exists at %s, delete it before trying to move "
|
||||
"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 "
|
||||
"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"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
"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"
|
||||
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 ""
|
||||
"There was a temporary error talking to the device. Please unplug and "
|
||||
"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 "
|
||||
"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:1369
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
|
||||
msgid "Conversion Error"
|
||||
msgstr "Konvertierungsfehler"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
|
||||
msgid ""
|
||||
"<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."
|
||||
@ -4919,7 +4925,7 @@ msgstr ""
|
||||
"href=\"%s\">DRM</a> geschützt. Sie müssen zunächst das DRM mit einem anderen "
|
||||
"Programm entfernen."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
|
||||
msgid ""
|
||||
"is the result of the efforts of many volunteers from all over the world. If "
|
||||
"you find it useful, please consider donating to support its development."
|
||||
@ -4928,12 +4934,12 @@ msgstr ""
|
||||
"Falls Sie es nützlich finden, sollten Sie eine Spende zur Unterstützung "
|
||||
"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?"
|
||||
msgstr ""
|
||||
"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 ""
|
||||
" is communicating with 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"
|
||||
" '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"
|
||||
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 ""
|
||||
"will keep running in the system tray. To close it, choose <b>Quit</b> in the "
|
||||
"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> "
|
||||
"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 ""
|
||||
"<span style=\"color:red; font-weight:bold\">Latest version: <a "
|
||||
"href=\"%s\">%s</a></span>"
|
||||
@ -4963,7 +4969,7 @@ msgstr ""
|
||||
"<span style=\"color:red; font-weight:bold\">Letzte Version: <a "
|
||||
"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 ""
|
||||
"%s has been updated to version %s. See the <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. "
|
||||
"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"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr "Informationen zur Fehlersuche in Konsole aufzeichnen"
|
||||
|
||||
@ -5850,20 +5856,20 @@ msgstr ""
|
||||
"\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>"
|
||||
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:1343
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
|
||||
msgid "Copying <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>"
|
||||
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"
|
||||
msgstr "Komprimiere Datenbank"
|
||||
|
||||
@ -5898,40 +5904,40 @@ msgstr "%sBenutzung%s: %s\n"
|
||||
msgid "Created by "
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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)"
|
||||
msgstr ""
|
||||
"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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr "Priorität der Arbeitsaufträge"
|
||||
|
||||
@ -5976,7 +5982,7 @@ msgid "Customize the download engine"
|
||||
msgstr "Download-Engine anpassen"
|
||||
|
||||
#: /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 ""
|
||||
"Timeout in seconds to wait for a response from the server. Default: %default "
|
||||
"s"
|
||||
@ -5985,7 +5991,7 @@ msgstr ""
|
||||
"%default s"
|
||||
|
||||
#: /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 ""
|
||||
"Minimum interval in seconds between consecutive fetches. Default is %default "
|
||||
"s"
|
||||
@ -5994,7 +6000,7 @@ msgstr ""
|
||||
"Voreinstellung ist %default s"
|
||||
|
||||
#: /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 ""
|
||||
"The character encoding for the websites you are trying to download. The "
|
||||
"default is to try and guess the encoding."
|
||||
@ -6003,7 +6009,7 @@ msgstr ""
|
||||
"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/fetch/simple.py:470
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
|
||||
msgid ""
|
||||
"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 "
|
||||
@ -6015,7 +6021,7 @@ msgstr ""
|
||||
"Links verfolgt."
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -6030,7 +6036,7 @@ msgstr ""
|
||||
"sind, wird --filter-regexp zuerst angewendet."
|
||||
|
||||
#: /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."
|
||||
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_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_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_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_infobae.py:52
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54
|
||||
#: /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:21
|
||||
#: /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_segunda.py:61
|
||||
#: /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_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_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_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_cnn.py:15
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
|
||||
@ -6353,17 +6361,17 @@ msgstr ""
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58
|
||||
#: /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:23
|
||||
#: /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:29
|
||||
#: /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:25
|
||||
#: /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_politika.py:19
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108
|
||||
#: /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:27
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
@ -6395,11 +6403,11 @@ msgstr ""
|
||||
msgid "German"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
|
||||
msgid ""
|
||||
"%prog URL\n"
|
||||
"\n"
|
||||
@ -6409,13 +6417,13 @@ msgstr ""
|
||||
"\n"
|
||||
"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"
|
||||
msgstr ""
|
||||
"Grundverzeichnis, in das die URL gespeichert wird. Voreinstellung ist "
|
||||
"%default"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
|
||||
msgid ""
|
||||
"Maximum number of levels to recurse i.e. depth of links to follow. Default "
|
||||
"%default"
|
||||
@ -6423,7 +6431,7 @@ msgstr ""
|
||||
"Maximale Zahl von einbezogenen Ebenen, z.B. Tiefe der Links, die verfolgt "
|
||||
"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 ""
|
||||
"The maximum number of files to download. This only applies to files from <a "
|
||||
"href> tags. Default is %default"
|
||||
@ -6431,7 +6439,7 @@ msgstr ""
|
||||
"Höchstzahl der Dateien, die geladen werden. Dies trifft nur auf Dateien aus "
|
||||
"<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"
|
||||
msgstr "Zeige detailierte Ausgabeinformation. Hilfreich zur Fehlersuche."
|
||||
|
||||
|
||||
@ -7,14 +7,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: calibre\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"
|
||||
"Last-Translator: Marc van den Dikkenberg <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\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"
|
||||
|
||||
#: /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:60
|
||||
#: /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/oeb/base.py:569
|
||||
#: /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:376
|
||||
#: /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:933
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
|
||||
#: /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:123
|
||||
#: /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/database2.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:901
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
|
||||
#: /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/web/feeds/news.py:51
|
||||
msgid "Unknown"
|
||||
@ -618,7 +619,7 @@ msgid "%prog [options] LITFILE"
|
||||
msgstr "%prog [opties] LITBESTAND"
|
||||
|
||||
#: /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."
|
||||
msgstr "Output folder. Standaard is dit de huidige folder."
|
||||
|
||||
@ -635,7 +636,7 @@ msgid "Useful for debugging."
|
||||
msgstr "Handig voor Debugging"
|
||||
|
||||
#: /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"
|
||||
msgstr "OEB boek bemaakt in"
|
||||
|
||||
@ -1756,11 +1757,11 @@ msgstr ""
|
||||
msgid "Creating Mobipocket file from EPUB..."
|
||||
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"
|
||||
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"
|
||||
msgstr "RAW MOBI HTML bewaard in"
|
||||
|
||||
@ -2058,7 +2059,7 @@ msgid "Adding books to database..."
|
||||
msgstr ""
|
||||
|
||||
#: /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..."
|
||||
msgstr ""
|
||||
|
||||
@ -2284,7 +2285,7 @@ msgid "Access log:"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -2712,7 +2713,7 @@ msgid " is not a valid picture"
|
||||
msgstr " is geen geldige afbeelding"
|
||||
|
||||
#: /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"
|
||||
msgstr "Kan niet converteren"
|
||||
|
||||
@ -3415,28 +3416,33 @@ msgstr ""
|
||||
msgid "A&utomatically set author sort"
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
|
||||
msgid "Could not read cover"
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<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> "
|
||||
@ -3446,19 +3452,19 @@ msgstr ""
|
||||
"<br/>Als u deze niet heeft, dan kunt u er gratis een krijgen door te <a "
|
||||
"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/>"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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/tags.py:50
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:814
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
|
||||
msgid "News"
|
||||
msgstr ""
|
||||
|
||||
@ -4334,7 +4340,7 @@ msgid "Save to disk in a single directory"
|
||||
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:1248
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
|
||||
msgid "Save only %s format to disk"
|
||||
msgstr "Bewaar alleen %s formaat op schijf"
|
||||
|
||||
@ -4372,31 +4378,31 @@ msgid "Bad database location"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
|
||||
msgid "Device: "
|
||||
msgstr "Apparaat: "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
|
||||
msgid " detected."
|
||||
msgstr " gedetecteerd"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
|
||||
msgid "Connected "
|
||||
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"
|
||||
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 ""
|
||||
"\n"
|
||||
" <p>The database of books on the reader is corrupted. Try the "
|
||||
@ -4425,101 +4431,101 @@ msgstr ""
|
||||
" </ol>\n"
|
||||
" "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
|
||||
msgid "Uploading books to device."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
msgid "EPUB Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
msgid "LRF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
msgid "HTML Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
|
||||
msgid "LIT Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
|
||||
msgid "MOBI Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
|
||||
msgid "Text books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
|
||||
msgid "PDF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
|
||||
msgid "Comics"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
|
||||
msgid "Archives"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
|
||||
msgid "Adding books..."
|
||||
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"
|
||||
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 ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
"<p>De boeken kunnen niet worden geupload naar de lezer, omdat er onvoldoende "
|
||||
"schijfruimte beschikbaar is "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
|
||||
msgid ""
|
||||
"The selected books will be <b>permanently deleted</b> and the files removed "
|
||||
"from your computer. Are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
|
||||
msgid "Deleting books from device."
|
||||
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:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
msgid "Cannot edit metadata"
|
||||
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:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
|
||||
msgid "No books selected"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
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 ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found:<br><ul>%s</ul>"
|
||||
@ -4527,23 +4533,23 @@ msgstr ""
|
||||
"De volgende boeken konden niet naar de lezer worden deupload, omdat geen "
|
||||
"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"
|
||||
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..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
|
||||
msgid "Saved"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
|
||||
msgid ""
|
||||
"<p>Could not save the following books to disk, because the %s format is not "
|
||||
"available for them:<ul>"
|
||||
@ -4551,64 +4557,64 @@ msgstr ""
|
||||
"<p>De volgende boeken konden niet worden bewaard op schijf, omdat het %s "
|
||||
"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"
|
||||
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 "
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
msgid "No book selected"
|
||||
msgstr "Geen boek geselecteerd"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
|
||||
msgid "Cannot view"
|
||||
msgstr "Kan niet bekijken"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
|
||||
msgid "Choose the format to view"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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 "
|
||||
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"
|
||||
msgstr "ongeldige database"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
|
||||
msgid ""
|
||||
"<p>An invalid database already exists at %s, delete it before trying to move "
|
||||
"the existing database.<br>Error: %s"
|
||||
@ -4616,23 +4622,23 @@ msgstr ""
|
||||
"<p>Een ongeldige database bestaat op %s, verwijder deze voordat je probeert "
|
||||
"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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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 ""
|
||||
"There was a temporary error talking to the device. Please unplug and "
|
||||
"reconnect the device and or reboot."
|
||||
@ -4640,46 +4646,46 @@ msgstr ""
|
||||
"Er is een tijdelijke fout opgetreden tijdens de communicatie met de lezer. "
|
||||
"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:1369
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
|
||||
msgid "Conversion Error"
|
||||
msgstr "Converteer Fout"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
|
||||
msgid ""
|
||||
"<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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
|
||||
msgid ""
|
||||
"is the result of the efforts of many volunteers from all over the world. If "
|
||||
"you find it useful, please consider donating to support its development."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/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?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
|
||||
msgid ""
|
||||
" is communicating with the device!<br>\n"
|
||||
" 'Quitting may cause corruption on the device.<br>\n"
|
||||
" 'Are you sure you want to quit?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
|
||||
msgid "WARNING: Active jobs"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
|
||||
msgid ""
|
||||
"will keep running in the system tray. To close it, choose <b>Quit</b> in the "
|
||||
"context menu of the system tray."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
|
||||
msgid ""
|
||||
"<span style=\"color:red; font-weight:bold\">Latest version: <a "
|
||||
"href=\"%s\">%s</a></span>"
|
||||
@ -4687,7 +4693,7 @@ msgstr ""
|
||||
"<span style=\"color:red; font-weight:bold\">Laatste versie: <a "
|
||||
"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 ""
|
||||
"%s has been updated to version %s. See the <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> "
|
||||
"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"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5529,20 +5535,20 @@ msgstr ""
|
||||
"\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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
|
||||
msgid "Copying <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>"
|
||||
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"
|
||||
msgstr "Comprimeren database"
|
||||
|
||||
@ -5573,39 +5579,39 @@ msgstr "%sGebruik%s: %s\n"
|
||||
msgid "Created by "
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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)"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5648,7 +5654,7 @@ msgid "Customize the download engine"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Timeout in seconds to wait for a response from the server. Default: %default "
|
||||
"s"
|
||||
@ -5657,7 +5663,7 @@ msgstr ""
|
||||
"%default s"
|
||||
|
||||
#: /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 ""
|
||||
"Minimum interval in seconds between consecutive fetches. Default is %default "
|
||||
"s"
|
||||
@ -5666,7 +5672,7 @@ msgstr ""
|
||||
"%default s"
|
||||
|
||||
#: /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 ""
|
||||
"The character encoding for the websites you are trying to download. The "
|
||||
"default is to try and guess the encoding."
|
||||
@ -5675,7 +5681,7 @@ msgstr ""
|
||||
"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/fetch/simple.py:470
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
|
||||
msgid ""
|
||||
"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 "
|
||||
@ -5687,7 +5693,7 @@ msgstr ""
|
||||
"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/fetch/simple.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
|
||||
msgid ""
|
||||
"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 "
|
||||
@ -5702,7 +5708,7 @@ msgstr ""
|
||||
"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/fetch/simple.py:474
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476
|
||||
msgid "Do not download 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_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_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_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_infobae.py:52
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54
|
||||
#: /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:21
|
||||
#: /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_segunda.py:61
|
||||
#: /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_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_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_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_cnn.py:15
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
|
||||
@ -6022,17 +6030,17 @@ msgstr ""
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58
|
||||
#: /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:23
|
||||
#: /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:29
|
||||
#: /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:25
|
||||
#: /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_politika.py:19
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108
|
||||
#: /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:27
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
@ -6064,11 +6072,11 @@ msgstr ""
|
||||
msgid "German"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
|
||||
msgid ""
|
||||
"%prog URL\n"
|
||||
"\n"
|
||||
@ -6078,12 +6086,12 @@ msgstr ""
|
||||
"\n"
|
||||
"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"
|
||||
msgstr ""
|
||||
"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 ""
|
||||
"Maximum number of levels to recurse i.e. depth of links to follow. Default "
|
||||
"%default"
|
||||
@ -6091,7 +6099,7 @@ msgstr ""
|
||||
"Maximum aantal level om recursief te zoeken -- de diepte om links te volgen. "
|
||||
"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 ""
|
||||
"The maximum number of files to download. This only applies to files from <a "
|
||||
"href> tags. Default is %default"
|
||||
@ -6099,7 +6107,7 @@ msgstr ""
|
||||
"Het maximum aantal bestanden te downloaden. Dit is alleen van toepassing op "
|
||||
"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"
|
||||
msgstr ""
|
||||
"Laat gedetailleerde output informatie zien. Handig bij het opsporen van "
|
||||
|
||||
@ -7,14 +7,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: calibre\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"
|
||||
"Last-Translator: Andrzej MoST (Marcin Ostajewski) <Unknown>\n"
|
||||
"Language-Team: Polish <pl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\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"
|
||||
|
||||
#: /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:60
|
||||
#: /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/oeb/base.py:569
|
||||
#: /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:376
|
||||
#: /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:933
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
|
||||
#: /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:123
|
||||
#: /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/database2.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:901
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
|
||||
#: /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/web/feeds/news.py:51
|
||||
msgid "Unknown"
|
||||
@ -689,7 +690,7 @@ msgid "%prog [options] LITFILE"
|
||||
msgstr "%prog [opcje] LITFILE"
|
||||
|
||||
#: /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."
|
||||
msgstr "Folder docelowy. Domyślnie to aktualny folder."
|
||||
|
||||
@ -706,7 +707,7 @@ msgid "Useful for debugging."
|
||||
msgstr "Użyteczne dla debugowania."
|
||||
|
||||
#: /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"
|
||||
msgstr "OEB ebook stworzony w"
|
||||
|
||||
@ -1730,11 +1731,11 @@ msgstr ""
|
||||
msgid "Creating Mobipocket file from EPUB..."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -2031,7 +2032,7 @@ msgid "Adding books to database..."
|
||||
msgstr ""
|
||||
|
||||
#: /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..."
|
||||
msgstr ""
|
||||
|
||||
@ -2257,7 +2258,7 @@ msgid "Access log:"
|
||||
msgstr "Dziennik dostępów:"
|
||||
|
||||
#: /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"
|
||||
msgstr "Włączanie serwera zakończone niepowodzeniem"
|
||||
|
||||
@ -2689,7 +2690,7 @@ msgid " is not a valid picture"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr "Nie można przekonwertować"
|
||||
|
||||
@ -3367,28 +3368,33 @@ msgstr "Usuń &format:"
|
||||
msgid "A&utomatically set author sort"
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
|
||||
msgid "Could not read cover"
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<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> "
|
||||
@ -3398,19 +3404,19 @@ msgstr ""
|
||||
"nie posiadasz jeszcze konta, możesz się <a "
|
||||
"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/>"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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/tags.py:50
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:814
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
|
||||
msgid "News"
|
||||
msgstr "Aktualności"
|
||||
|
||||
@ -4272,7 +4278,7 @@ msgid "Save to disk in a single directory"
|
||||
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:1248
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
|
||||
msgid "Save only %s format to disk"
|
||||
msgstr "Zapisz na dysku jedynie pliki w formacie %s"
|
||||
|
||||
@ -4310,31 +4316,31 @@ msgid "Bad database location"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
|
||||
msgid "Device: "
|
||||
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."
|
||||
msgstr " wykryte"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
|
||||
msgid "Connected "
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
|
||||
msgid ""
|
||||
"\n"
|
||||
" <p>The database of books on the reader is corrupted. Try the "
|
||||
@ -4350,122 +4356,122 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
|
||||
msgid "Uploading books to device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
msgid "Books"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Komiksy"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
|
||||
msgid "Archives"
|
||||
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..."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
|
||||
msgid ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
"<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 ""
|
||||
"The selected books will be <b>permanently deleted</b> and the files removed "
|
||||
"from your computer. Are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
|
||||
msgid "Deleting books from device."
|
||||
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:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
msgid "Cannot edit metadata"
|
||||
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:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
|
||||
msgid "No books selected"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
|
||||
msgid ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found:<br><ul>%s</ul>"
|
||||
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"
|
||||
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..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
|
||||
msgid "Saved"
|
||||
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"
|
||||
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 ""
|
||||
"<p>Could not save the following books to disk, because the %s format is not "
|
||||
"available for them:<ul>"
|
||||
@ -4473,86 +4479,86 @@ msgstr ""
|
||||
"<p>Nie można zapisać poniższych książek na dysku, ponieważ plik w formacie "
|
||||
"%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"
|
||||
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 "
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
msgid "No book selected"
|
||||
msgstr "Nie wybrano ksiązki"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
|
||||
msgid "Cannot view"
|
||||
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:1205
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
|
||||
msgid "Choose the format to view"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
|
||||
msgid "Cannot configure"
|
||||
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."
|
||||
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"
|
||||
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 "
|
||||
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"
|
||||
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 ""
|
||||
"<p>An invalid database already exists at %s, delete it before trying to move "
|
||||
"the existing database.<br>Error: %s"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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 ""
|
||||
"There was a temporary error talking to the device. Please unplug and "
|
||||
"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 "
|
||||
"ponownie lub uruchom komputer ponownie."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
|
||||
msgid "Conversion Error"
|
||||
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 ""
|
||||
"<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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
|
||||
msgid ""
|
||||
"is the result of the efforts of many volunteers from all over the world. If "
|
||||
"you find it useful, please consider donating to support its development."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/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?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
|
||||
msgid ""
|
||||
" is communicating with the device!<br>\n"
|
||||
" 'Quitting may cause corruption on the device.<br>\n"
|
||||
" 'Are you sure you want to quit?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
|
||||
msgid "WARNING: Active jobs"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
|
||||
msgid ""
|
||||
"will keep running in the system tray. To close it, choose <b>Quit</b> in the "
|
||||
"context menu of the system tray."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
|
||||
msgid ""
|
||||
"<span style=\"color:red; font-weight:bold\">Latest version: <a "
|
||||
"href=\"%s\">%s</a></span>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid ""
|
||||
"%s has been updated to version %s. See the <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 "
|
||||
"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"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5375,20 +5381,20 @@ msgid ""
|
||||
"For help on an individual command: %%prog command --help\n"
|
||||
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>"
|
||||
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:1343
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
|
||||
msgid "Copying <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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
|
||||
msgid "Compacting database"
|
||||
msgstr "Kompaktowanie bazy danych"
|
||||
|
||||
@ -5422,39 +5428,39 @@ msgstr "%sUżycie%s: %s\n"
|
||||
msgid "Created by "
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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)"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5497,28 +5503,28 @@ msgid "Customize the download engine"
|
||||
msgstr "Dostosuj silnik pobierania"
|
||||
|
||||
#: /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 ""
|
||||
"Timeout in seconds to wait for a response from the server. Default: %default "
|
||||
"s"
|
||||
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/fetch/simple.py:466
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
|
||||
msgid ""
|
||||
"Minimum interval in seconds between consecutive fetches. Default is %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"The character encoding for the websites you are trying to download. The "
|
||||
"default is to try and guess the encoding."
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5526,7 +5532,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5536,7 +5542,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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_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_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_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_infobae.py:52
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54
|
||||
#: /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:21
|
||||
#: /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_segunda.py:61
|
||||
#: /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_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_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_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_cnn.py:15
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
|
||||
@ -5822,17 +5830,17 @@ msgstr ""
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58
|
||||
#: /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:23
|
||||
#: /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:29
|
||||
#: /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:25
|
||||
#: /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_politika.py:19
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108
|
||||
#: /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:27
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
@ -5864,11 +5872,11 @@ msgstr ""
|
||||
msgid "German"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
|
||||
msgid ""
|
||||
"%prog URL\n"
|
||||
"\n"
|
||||
@ -5878,17 +5886,17 @@ msgstr ""
|
||||
"\n"
|
||||
"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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
|
||||
msgid ""
|
||||
"Maximum number of levels to recurse i.e. depth of links to follow. Default "
|
||||
"%default"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
|
||||
msgid ""
|
||||
"The maximum number of files to download. This only applies to files from <a "
|
||||
"href> tags. Default is %default"
|
||||
@ -5896,7 +5904,7 @@ msgstr ""
|
||||
"Maksymalna liczba plików do pobrania. Stosowane jedynie do plików z etykiet "
|
||||
"<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"
|
||||
msgstr ""
|
||||
"Pokazuj szczegółowową informację wyjściową. Przydatne przy debugowaniu."
|
||||
|
||||
@ -7,14 +7,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: calibre\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"
|
||||
"Last-Translator: ricdiogo <ricardofdiogo@gmail.com>\n"
|
||||
"Language-Team: Portuguese <pt@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\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"
|
||||
|
||||
#: /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:60
|
||||
#: /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/oeb/base.py:569
|
||||
#: /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:376
|
||||
#: /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:933
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
|
||||
#: /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:123
|
||||
#: /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/database2.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:901
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
|
||||
#: /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/web/feeds/news.py:51
|
||||
msgid "Unknown"
|
||||
@ -690,7 +691,7 @@ msgid "%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/mobi/reader.py:506
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
|
||||
msgid "Output directory. Defaults to current directory."
|
||||
msgstr "Directoria de saída. A predefinição é a directoria actual."
|
||||
|
||||
@ -705,7 +706,7 @@ msgid "Useful for debugging."
|
||||
msgstr "Útil para depurar."
|
||||
|
||||
#: /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"
|
||||
msgstr "Ebook em OEB criado em"
|
||||
|
||||
@ -1786,11 +1787,11 @@ msgstr ""
|
||||
msgid "Creating Mobipocket file from EPUB..."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -2084,7 +2085,7 @@ msgid "Adding books to database..."
|
||||
msgstr ""
|
||||
|
||||
#: /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..."
|
||||
msgstr ""
|
||||
|
||||
@ -2310,7 +2311,7 @@ msgid "Access log:"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -2734,7 +2735,7 @@ msgid " is not a valid picture"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -3409,47 +3410,52 @@ msgstr ""
|
||||
msgid "A&utomatically set author sort"
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
|
||||
msgid "Could not read cover"
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<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> "
|
||||
"for free!.</p>"
|
||||
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/>"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
@ -3609,9 +3615,9 @@ msgstr ""
|
||||
|
||||
#: /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/library/database2.py:809
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:814
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
|
||||
msgid "News"
|
||||
msgstr ""
|
||||
|
||||
@ -4295,7 +4301,7 @@ msgid "Save to disk in a single directory"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -4333,31 +4339,31 @@ msgid "Bad database location"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
|
||||
msgid "Device: "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
|
||||
msgid " detected."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
|
||||
msgid "Connected "
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
|
||||
msgid ""
|
||||
"\n"
|
||||
" <p>The database of books on the reader is corrupted. Try the "
|
||||
@ -4373,276 +4379,276 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
|
||||
msgid "Uploading books to device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
msgid "Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
msgid "EPUB Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
msgid "LRF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
msgid "HTML Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
|
||||
msgid "LIT Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
|
||||
msgid "MOBI Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
|
||||
msgid "Text books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
|
||||
msgid "PDF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
|
||||
msgid "Comics"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
|
||||
msgid "Archives"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
|
||||
msgid "Adding books..."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
|
||||
msgid ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
|
||||
msgid ""
|
||||
"The selected books will be <b>permanently deleted</b> and the files removed "
|
||||
"from your computer. Are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
|
||||
msgid "Deleting books from device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
msgid "Cannot edit metadata"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
|
||||
msgid "No books selected"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
|
||||
msgid ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found:<br><ul>%s</ul>"
|
||||
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"
|
||||
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..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
|
||||
msgid "Saved"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
|
||||
msgid ""
|
||||
"<p>Could not save the following books to disk, because the %s format is not "
|
||||
"available for them:<ul>"
|
||||
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"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
|
||||
msgid " fetched."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
msgid "No book selected"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
|
||||
msgid "Cannot view"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
|
||||
msgid "Choose the format to view"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
|
||||
msgid "Cannot configure"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
|
||||
msgid "Copying database"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
|
||||
msgid "Invalid database"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
|
||||
msgid ""
|
||||
"<p>An invalid database already exists at %s, delete it before trying to move "
|
||||
"the existing database.<br>Error: %s"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
|
||||
msgid ""
|
||||
"There was a temporary error talking to the device. Please unplug and "
|
||||
"reconnect the device and or reboot."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
|
||||
msgid "Conversion Error"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
|
||||
msgid ""
|
||||
"<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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
|
||||
msgid ""
|
||||
"is the result of the efforts of many volunteers from all over the world. If "
|
||||
"you find it useful, please consider donating to support its development."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/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?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
|
||||
msgid ""
|
||||
" is communicating with the device!<br>\n"
|
||||
" 'Quitting may cause corruption on the device.<br>\n"
|
||||
" 'Are you sure you want to quit?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
|
||||
msgid "WARNING: Active jobs"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
|
||||
msgid ""
|
||||
"will keep running in the system tray. To close it, choose <b>Quit</b> in the "
|
||||
"context menu of the system tray."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
|
||||
msgid ""
|
||||
"<span style=\"color:red; font-weight:bold\">Latest version: <a "
|
||||
"href=\"%s\">%s</a></span>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid ""
|
||||
"%s has been updated to version %s. See the <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
|
||||
"Visit the download page?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid "Update available"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5382,20 +5388,20 @@ msgid ""
|
||||
"For help on an individual command: %%prog command --help\n"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
|
||||
msgid "Copying <b>%s</b>"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
|
||||
msgid "Compacting database"
|
||||
msgstr ""
|
||||
|
||||
@ -5426,39 +5432,39 @@ msgstr ""
|
||||
msgid "Created by "
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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)"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5501,28 +5507,28 @@ msgid "Customize the download engine"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Timeout in seconds to wait for a response from the server. Default: %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Minimum interval in seconds between consecutive fetches. Default is %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"The character encoding for the websites you are trying to download. The "
|
||||
"default is to try and guess the encoding."
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5530,7 +5536,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5540,7 +5546,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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_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_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_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_infobae.py:52
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54
|
||||
#: /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:21
|
||||
#: /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_segunda.py:61
|
||||
#: /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_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_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_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_cnn.py:15
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
|
||||
@ -5823,17 +5831,17 @@ msgstr ""
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58
|
||||
#: /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:23
|
||||
#: /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:29
|
||||
#: /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:25
|
||||
#: /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_politika.py:19
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108
|
||||
#: /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:27
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
@ -5865,34 +5873,34 @@ msgstr ""
|
||||
msgid "German"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
|
||||
msgid ""
|
||||
"%prog URL\n"
|
||||
"\n"
|
||||
"Where URL is for example http://google.com"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
|
||||
msgid ""
|
||||
"Maximum number of levels to recurse i.e. depth of links to follow. Default "
|
||||
"%default"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
|
||||
msgid ""
|
||||
"The maximum number of files to download. This only applies to files from <a "
|
||||
"href> tags. Default is %default"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -7,14 +7,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: calibre\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"
|
||||
"Last-Translator: petre <Unknown>\n"
|
||||
"Language-Team: Romanian <ro@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\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"
|
||||
|
||||
#: /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:60
|
||||
#: /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/oeb/base.py:569
|
||||
#: /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:376
|
||||
#: /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:933
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
|
||||
#: /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:123
|
||||
#: /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/database2.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:901
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
|
||||
#: /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/web/feeds/news.py:51
|
||||
msgid "Unknown"
|
||||
@ -652,7 +653,7 @@ msgid "%prog [options] LITFILE"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
msgstr ""
|
||||
|
||||
@ -667,7 +668,7 @@ msgid "Useful for debugging."
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -1618,11 +1619,11 @@ msgstr ""
|
||||
msgid "Creating Mobipocket file from EPUB..."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -1916,7 +1917,7 @@ msgid "Adding books to database..."
|
||||
msgstr ""
|
||||
|
||||
#: /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..."
|
||||
msgstr ""
|
||||
|
||||
@ -2142,7 +2143,7 @@ msgid "Access log:"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -2566,7 +2567,7 @@ msgid " is not a valid picture"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -3241,47 +3242,52 @@ msgstr ""
|
||||
msgid "A&utomatically set author sort"
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
|
||||
msgid "Could not read cover"
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<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> "
|
||||
"for free!.</p>"
|
||||
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/>"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
@ -3441,9 +3447,9 @@ msgstr ""
|
||||
|
||||
#: /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/library/database2.py:809
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:814
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
|
||||
msgid "News"
|
||||
msgstr ""
|
||||
|
||||
@ -4127,7 +4133,7 @@ msgid "Save to disk in a single directory"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -4165,31 +4171,31 @@ msgid "Bad database location"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
|
||||
msgid "Device: "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
|
||||
msgid " detected."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
|
||||
msgid "Connected "
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
|
||||
msgid ""
|
||||
"\n"
|
||||
" <p>The database of books on the reader is corrupted. Try the "
|
||||
@ -4205,276 +4211,276 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
|
||||
msgid "Uploading books to device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
msgid "Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
msgid "EPUB Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
msgid "LRF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
msgid "HTML Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
|
||||
msgid "LIT Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
|
||||
msgid "MOBI Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
|
||||
msgid "Text books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
|
||||
msgid "PDF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
|
||||
msgid "Comics"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
|
||||
msgid "Archives"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
|
||||
msgid "Adding books..."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
|
||||
msgid ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
|
||||
msgid ""
|
||||
"The selected books will be <b>permanently deleted</b> and the files removed "
|
||||
"from your computer. Are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
|
||||
msgid "Deleting books from device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
msgid "Cannot edit metadata"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
|
||||
msgid "No books selected"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
|
||||
msgid ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found:<br><ul>%s</ul>"
|
||||
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"
|
||||
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..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
|
||||
msgid "Saved"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
|
||||
msgid ""
|
||||
"<p>Could not save the following books to disk, because the %s format is not "
|
||||
"available for them:<ul>"
|
||||
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"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
|
||||
msgid " fetched."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
msgid "No book selected"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
|
||||
msgid "Cannot view"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
|
||||
msgid "Choose the format to view"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
|
||||
msgid "Cannot configure"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
|
||||
msgid "Copying database"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
|
||||
msgid "Invalid database"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
|
||||
msgid ""
|
||||
"<p>An invalid database already exists at %s, delete it before trying to move "
|
||||
"the existing database.<br>Error: %s"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
|
||||
msgid ""
|
||||
"There was a temporary error talking to the device. Please unplug and "
|
||||
"reconnect the device and or reboot."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
|
||||
msgid "Conversion Error"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
|
||||
msgid ""
|
||||
"<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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
|
||||
msgid ""
|
||||
"is the result of the efforts of many volunteers from all over the world. If "
|
||||
"you find it useful, please consider donating to support its development."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/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?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
|
||||
msgid ""
|
||||
" is communicating with the device!<br>\n"
|
||||
" 'Quitting may cause corruption on the device.<br>\n"
|
||||
" 'Are you sure you want to quit?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
|
||||
msgid "WARNING: Active jobs"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
|
||||
msgid ""
|
||||
"will keep running in the system tray. To close it, choose <b>Quit</b> in the "
|
||||
"context menu of the system tray."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
|
||||
msgid ""
|
||||
"<span style=\"color:red; font-weight:bold\">Latest version: <a "
|
||||
"href=\"%s\">%s</a></span>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid ""
|
||||
"%s has been updated to version %s. See the <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
|
||||
"Visit the download page?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid "Update available"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5214,20 +5220,20 @@ msgid ""
|
||||
"For help on an individual command: %%prog command --help\n"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
|
||||
msgid "Copying <b>%s</b>"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
|
||||
msgid "Compacting database"
|
||||
msgstr ""
|
||||
|
||||
@ -5258,39 +5264,39 @@ msgstr ""
|
||||
msgid "Created by "
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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)"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5333,28 +5339,28 @@ msgid "Customize the download engine"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Timeout in seconds to wait for a response from the server. Default: %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Minimum interval in seconds between consecutive fetches. Default is %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"The character encoding for the websites you are trying to download. The "
|
||||
"default is to try and guess the encoding."
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5362,7 +5368,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5372,7 +5378,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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_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_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_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_infobae.py:52
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54
|
||||
#: /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:21
|
||||
#: /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_segunda.py:61
|
||||
#: /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_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_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_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_cnn.py:15
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
|
||||
@ -5655,17 +5663,17 @@ msgstr ""
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58
|
||||
#: /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:23
|
||||
#: /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:29
|
||||
#: /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:25
|
||||
#: /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_politika.py:19
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108
|
||||
#: /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:27
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
@ -5697,33 +5705,33 @@ msgstr ""
|
||||
msgid "German"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
|
||||
msgid ""
|
||||
"%prog URL\n"
|
||||
"\n"
|
||||
"Where URL is for example http://google.com"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
|
||||
msgid ""
|
||||
"Maximum number of levels to recurse i.e. depth of links to follow. Default "
|
||||
"%default"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
|
||||
msgid ""
|
||||
"The maximum number of files to download. This only applies to files from <a "
|
||||
"href> tags. Default is %default"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -6,14 +6,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: calibre 0.4.55\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"
|
||||
"Last-Translator: Andrew V. Skvortsov <Unknown>\n"
|
||||
"Language-Team: American English <kde-i18n-doc@lists.kde.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\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-Poedit-Country: RUSSIAN FEDERATION\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:60
|
||||
#: /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/oeb/base.py:569
|
||||
#: /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:376
|
||||
#: /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:933
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
|
||||
#: /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:123
|
||||
#: /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/database2.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:901
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
|
||||
#: /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/web/feeds/news.py:51
|
||||
msgid "Unknown"
|
||||
@ -673,7 +674,7 @@ msgid "%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/mobi/reader.py:506
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
|
||||
msgid "Output directory. Defaults to current directory."
|
||||
msgstr "Выходная директория. По умолчанию текущая директория."
|
||||
|
||||
@ -690,7 +691,7 @@ msgid "Useful for debugging."
|
||||
msgstr "Использовать для отладки."
|
||||
|
||||
#: /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"
|
||||
msgstr "OEB книга создана в"
|
||||
|
||||
@ -1830,11 +1831,11 @@ msgstr "Загрузка: rb-meta file.rb"
|
||||
msgid "Creating Mobipocket file from EPUB..."
|
||||
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"
|
||||
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"
|
||||
msgstr "Непосредственно MOBI HTML сохранен в"
|
||||
|
||||
@ -2129,7 +2130,7 @@ msgid "Adding books to database..."
|
||||
msgstr ""
|
||||
|
||||
#: /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..."
|
||||
msgstr ""
|
||||
|
||||
@ -2357,7 +2358,7 @@ msgid "Access log:"
|
||||
msgstr "Лог доступа:"
|
||||
|
||||
#: /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"
|
||||
msgstr "Сбой запуска контент сервера"
|
||||
|
||||
@ -2794,7 +2795,7 @@ msgid " is not a valid picture"
|
||||
msgstr " неверное изображение"
|
||||
|
||||
#: /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"
|
||||
msgstr "Не преобразуется"
|
||||
|
||||
@ -3500,28 +3501,33 @@ msgstr "Формат удаления:"
|
||||
msgid "A&utomatically set author sort"
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
|
||||
msgid "Could not read cover"
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<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> "
|
||||
@ -3531,19 +3537,19 @@ msgstr ""
|
||||
"<br/>Если Вы их не имеете, выможете бесплатно <a "
|
||||
"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/>"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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/tags.py:50
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:814
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
|
||||
msgid "News"
|
||||
msgstr "Новости"
|
||||
|
||||
@ -4420,7 +4426,7 @@ msgid "Save to disk in a single directory"
|
||||
msgstr "Сохранить на диск в одну директорию"
|
||||
|
||||
#: /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"
|
||||
msgstr "Сохранять на диск только формат %s"
|
||||
|
||||
@ -4458,31 +4464,31 @@ msgid "Bad database location"
|
||||
msgstr "Плохое расположение базы данных"
|
||||
|
||||
#: /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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
|
||||
msgid "Device: "
|
||||
msgstr "Устройство: "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
|
||||
msgid " detected."
|
||||
msgstr " определено."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
|
||||
msgid "Connected "
|
||||
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"
|
||||
msgstr "База данных устройства неисправна"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
|
||||
msgid ""
|
||||
"\n"
|
||||
" <p>The database of books on the reader is corrupted. Try the "
|
||||
@ -4512,100 +4518,100 @@ msgstr ""
|
||||
" </ol>\n"
|
||||
" "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
|
||||
msgid "Uploading books to device."
|
||||
msgstr "Загрузка книг в устройство."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
msgid "Books"
|
||||
msgstr "Книги"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
msgid "EPUB Books"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Текстовые книги"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
|
||||
msgid "PDF Books"
|
||||
msgstr "Книги PDF"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
|
||||
msgid "Comics"
|
||||
msgstr "Комиксы"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
|
||||
msgid "Archives"
|
||||
msgstr "Архивы"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
|
||||
msgid "Adding books..."
|
||||
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"
|
||||
msgstr "Нет места на устройстве"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
|
||||
msgid ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
"<p>Немогу загрузить книги на устройство, из-за отсутствия свободной памяти. "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
|
||||
msgid ""
|
||||
"The selected books will be <b>permanently deleted</b> and the files removed "
|
||||
"from your computer. Are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
|
||||
msgid "Deleting books from device."
|
||||
msgstr "Удаляются книги из устройства."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
msgid "Cannot edit metadata"
|
||||
msgstr "Невозможно редактировать метаданные"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
|
||||
msgid "No books selected"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr "Нет подходящего формата"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
|
||||
msgid ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found:<br><ul>%s</ul>"
|
||||
@ -4613,87 +4619,87 @@ msgstr ""
|
||||
"Не могу загрузить книги на устройство, так как они не соответствуют формату: "
|
||||
"<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"
|
||||
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..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
|
||||
msgid "Saved"
|
||||
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"
|
||||
msgstr "Выберете директорию получателя"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
|
||||
msgid ""
|
||||
"<p>Could not save the following books to disk, because the %s format is not "
|
||||
"available for them:<ul>"
|
||||
msgstr ""
|
||||
"<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"
|
||||
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 "
|
||||
msgstr "Вызвать новость из "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
|
||||
msgid " fetched."
|
||||
msgstr " загружено."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
msgid "No book selected"
|
||||
msgstr "Нет выбранных книг"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
|
||||
msgid "Cannot view"
|
||||
msgstr "Невозможно просмотреть"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
|
||||
msgid "Choose the format to view"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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."
|
||||
msgstr "Пока запущено задание, не могу настроить"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
|
||||
msgid "Copying database"
|
||||
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 "
|
||||
msgstr "Копирование библиотеки в "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
|
||||
msgid "Invalid database"
|
||||
msgstr "Неверная база данных"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
|
||||
msgid ""
|
||||
"<p>An invalid database already exists at %s, delete it before trying to move "
|
||||
"the existing database.<br>Error: %s"
|
||||
@ -4701,23 +4707,23 @@ msgstr ""
|
||||
"<p>Уже используется неправильная база данных %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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
msgstr "Ошибка согласования устройства"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
|
||||
msgid ""
|
||||
"There was a temporary error talking to the device. Please unplug and "
|
||||
"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:1369
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
|
||||
msgid "Conversion Error"
|
||||
msgstr "Ошибка преобразования"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
|
||||
msgid ""
|
||||
"<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."
|
||||
@ -4739,59 +4745,59 @@ msgstr ""
|
||||
"<p>Не могу преобразовать: %s<p>Это <a href=\"%s\">DRM</a> книга. Перед "
|
||||
"преобразование удалите DRM используя программное обеспечение."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
|
||||
msgid ""
|
||||
"is the result of the efforts of many volunteers from all over the world. If "
|
||||
"you find it useful, please consider donating to support its development."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/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?"
|
||||
msgstr "Имеется активное задание. Вы всеравно хотите выйти?"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
|
||||
msgid ""
|
||||
" is communicating with the device!<br>\n"
|
||||
" 'Quitting may cause corruption on the device.<br>\n"
|
||||
" 'Are you sure you want to quit?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
|
||||
msgid "WARNING: Active jobs"
|
||||
msgstr "ПРЕДУПРЕЖДЕНИЕ: Активное задание"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
|
||||
msgid ""
|
||||
"will keep running in the system tray. To close it, choose <b>Quit</b> in the "
|
||||
"context menu of the system tray."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
|
||||
msgid ""
|
||||
"<span style=\"color:red; font-weight:bold\">Latest version: <a "
|
||||
"href=\"%s\">%s</a></span>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid ""
|
||||
"%s has been updated to version %s. See the <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
|
||||
"Visit the download page?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid "Update available"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5531,20 +5537,20 @@ msgid ""
|
||||
"For help on an individual command: %%prog command --help\n"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
|
||||
msgid "Copying <b>%s</b>"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
|
||||
msgid "Compacting database"
|
||||
msgstr ""
|
||||
|
||||
@ -5575,39 +5581,39 @@ msgstr ""
|
||||
msgid "Created by "
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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)"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5650,7 +5656,7 @@ msgid "Customize the download engine"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Timeout in seconds to wait for a response from the server. Default: %default "
|
||||
"s"
|
||||
@ -5658,7 +5664,7 @@ msgstr ""
|
||||
"Максимальное время ожидания ответа от сервера. По умолчанию: %default с"
|
||||
|
||||
#: /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 ""
|
||||
"Minimum interval in seconds between consecutive fetches. Default is %default "
|
||||
"s"
|
||||
@ -5667,7 +5673,7 @@ msgstr ""
|
||||
"умолчанию: %default с"
|
||||
|
||||
#: /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 ""
|
||||
"The character encoding for the websites you are trying to download. The "
|
||||
"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/fetch/simple.py:470
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472
|
||||
msgid ""
|
||||
"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 "
|
||||
@ -5688,7 +5694,7 @@ msgstr ""
|
||||
"выражений. По умолчанию, никакие ссылки не скачиваются."
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5703,7 +5709,7 @@ msgstr ""
|
||||
"match-regexp, то вначале будет учитываться --filter-regexp."
|
||||
|
||||
#: /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."
|
||||
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_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_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_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_infobae.py:52
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54
|
||||
#: /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:21
|
||||
#: /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_segunda.py:61
|
||||
#: /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_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_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_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_cnn.py:15
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
|
||||
@ -6010,17 +6018,17 @@ msgstr ""
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58
|
||||
#: /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:23
|
||||
#: /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:29
|
||||
#: /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:25
|
||||
#: /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_politika.py:19
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108
|
||||
#: /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:27
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
@ -6052,11 +6060,11 @@ msgstr ""
|
||||
msgid "German"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
|
||||
msgid ""
|
||||
"%prog URL\n"
|
||||
"\n"
|
||||
@ -6066,12 +6074,12 @@ msgstr ""
|
||||
"\n"
|
||||
"Где 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"
|
||||
msgstr ""
|
||||
"Основная директория, в которую сохранятся 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 ""
|
||||
"Maximum number of levels to recurse i.e. depth of links to follow. Default "
|
||||
"%default"
|
||||
@ -6079,7 +6087,7 @@ msgstr ""
|
||||
"Максимально число уровней вложения, т.е. глубина последовательных ссылок. По "
|
||||
"умолчанию: %default"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
|
||||
msgid ""
|
||||
"The maximum number of files to download. This only applies to files from <a "
|
||||
"href> tags. Default is %default"
|
||||
@ -6087,7 +6095,7 @@ msgstr ""
|
||||
"Максимальное количество файлов для скачивания. Применимо только к файлам из "
|
||||
"тегов <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"
|
||||
msgstr "Показать детальную информацию. Используется для отладки."
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -6,14 +6,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: calibre 0.4.17\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"
|
||||
"Last-Translator: Janko Slatenšek <Unknown>\n"
|
||||
"Language-Team: sl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\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"
|
||||
"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:60
|
||||
#: /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/oeb/base.py:569
|
||||
#: /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:376
|
||||
#: /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:933
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
|
||||
#: /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:123
|
||||
#: /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/database2.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:901
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
|
||||
#: /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/web/feeds/news.py:51
|
||||
msgid "Unknown"
|
||||
@ -617,7 +618,7 @@ msgid "%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/mobi/reader.py:506
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:511
|
||||
msgid "Output directory. Defaults to current directory."
|
||||
msgstr "Izhodni direktorij. Privzet je trenutni direktorij."
|
||||
|
||||
@ -632,7 +633,7 @@ msgid "Useful for debugging."
|
||||
msgstr "Koristno za razhroščevanje."
|
||||
|
||||
#: /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"
|
||||
msgstr "OEB eknjiga ustvarjena v"
|
||||
|
||||
@ -1731,11 +1732,11 @@ msgstr "Uporaba: rb-meta datoteka.rb"
|
||||
msgid "Creating Mobipocket file from EPUB..."
|
||||
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"
|
||||
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"
|
||||
msgstr "Neobdelan MOBI HTML shranjen v"
|
||||
|
||||
@ -2030,7 +2031,7 @@ msgid "Adding books to database..."
|
||||
msgstr ""
|
||||
|
||||
#: /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..."
|
||||
msgstr ""
|
||||
|
||||
@ -2256,7 +2257,7 @@ msgid "Access log:"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -2682,7 +2683,7 @@ msgid " is not a valid picture"
|
||||
msgstr " ni veljavna slika"
|
||||
|
||||
#: /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"
|
||||
msgstr "Pretvorba ni možna"
|
||||
|
||||
@ -3374,28 +3375,33 @@ msgstr ""
|
||||
msgid "A&utomatically set author sort"
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
|
||||
msgid "Could not read cover"
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<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> "
|
||||
@ -3405,19 +3411,19 @@ msgstr ""
|
||||
"gesla še nimate se lahko <a "
|
||||
"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/>"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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/tags.py:50
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:809
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:814
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
|
||||
msgid "News"
|
||||
msgstr ""
|
||||
|
||||
@ -4275,7 +4281,7 @@ msgid "Save to disk in a single directory"
|
||||
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:1248
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1255
|
||||
msgid "Save only %s format to disk"
|
||||
msgstr "Shrani samo %s format na disk"
|
||||
|
||||
@ -4313,31 +4319,31 @@ msgid "Bad database location"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
|
||||
msgid "Device: "
|
||||
msgstr "Naprava: "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
|
||||
msgid " detected."
|
||||
msgstr " zaznan."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
|
||||
msgid "Connected "
|
||||
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"
|
||||
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 ""
|
||||
"\n"
|
||||
" <p>The database of books on the reader is corrupted. Try the "
|
||||
@ -4367,100 +4373,100 @@ msgstr ""
|
||||
" </ol>\n"
|
||||
" "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
|
||||
msgid "Uploading books to device."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
msgid "EPUB Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
msgid "LRF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
msgid "HTML Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
|
||||
msgid "LIT Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
|
||||
msgid "MOBI Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
|
||||
msgid "Text books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
|
||||
msgid "PDF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
|
||||
msgid "Comics"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
|
||||
msgid "Archives"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
|
||||
msgid "Adding books..."
|
||||
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"
|
||||
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 ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
"<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 ""
|
||||
"The selected books will be <b>permanently deleted</b> and the files removed "
|
||||
"from your computer. Are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
|
||||
msgid "Deleting books from device."
|
||||
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:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
msgid "Cannot edit metadata"
|
||||
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:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
|
||||
msgid "No books selected"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
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 ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found:<br><ul>%s</ul>"
|
||||
@ -4468,23 +4474,23 @@ msgstr ""
|
||||
"Prenos sledečih knjig ni uspel, ker ni bil najden potreben "
|
||||
"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"
|
||||
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..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
|
||||
msgid "Saved"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
|
||||
msgid ""
|
||||
"<p>Could not save the following books to disk, because the %s format is not "
|
||||
"available for them:<ul>"
|
||||
@ -4492,64 +4498,64 @@ msgstr ""
|
||||
"<p>Prenos sledečih knjig na disk ni uspek, ker %s format ni na voljo "
|
||||
"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"
|
||||
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 "
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
msgid "No book selected"
|
||||
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:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
|
||||
msgid "Cannot view"
|
||||
msgstr "Pogled ni možen"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
|
||||
msgid "Choose the format to view"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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 "
|
||||
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"
|
||||
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 ""
|
||||
"<p>An invalid database already exists at %s, delete it before trying to move "
|
||||
"the existing database.<br>Error: %s"
|
||||
@ -4557,23 +4563,23 @@ msgstr ""
|
||||
"<p>Neveljavna podatkovna baza že obstaja v %s, izbrišite jo preden poskusite "
|
||||
"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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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 ""
|
||||
"There was a temporary error talking to the device. Please unplug and "
|
||||
"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 "
|
||||
"izklopite in ponovno vklopite napravo."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
|
||||
msgid "Conversion Error"
|
||||
msgstr "Pretvorna Napaka"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
|
||||
msgid ""
|
||||
"<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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
|
||||
msgid ""
|
||||
"is the result of the efforts of many volunteers from all over the world. If "
|
||||
"you find it useful, please consider donating to support its development."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/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?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
|
||||
msgid ""
|
||||
" is communicating with the device!<br>\n"
|
||||
" 'Quitting may cause corruption on the device.<br>\n"
|
||||
" 'Are you sure you want to quit?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
|
||||
msgid "WARNING: Active jobs"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
|
||||
msgid ""
|
||||
"will keep running in the system tray. To close it, choose <b>Quit</b> in the "
|
||||
"context menu of the system tray."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
|
||||
msgid ""
|
||||
"<span style=\"color:red; font-weight:bold\">Latest version: <a "
|
||||
"href=\"%s\">%s</a></span>"
|
||||
@ -4628,7 +4634,7 @@ msgstr ""
|
||||
"<span style=\"color:red; font-weight:bold\">Zadnja verzija: <a "
|
||||
"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 ""
|
||||
"%s has been updated to version %s. See the <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
|
||||
@ -4638,19 +4644,19 @@ msgstr ""
|
||||
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">seznam "
|
||||
"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"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5462,20 +5468,20 @@ msgid ""
|
||||
"For help on an individual command: %%prog command --help\n"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
|
||||
msgid "Copying <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>"
|
||||
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"
|
||||
msgstr "Krčim bazo"
|
||||
|
||||
@ -5506,39 +5512,39 @@ msgstr "%sUporaba%s: %s\n"
|
||||
msgid "Created by "
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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)"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5581,7 +5587,7 @@ msgid "Customize the download engine"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Timeout in seconds to wait for a response from the server. Default: %default "
|
||||
"s"
|
||||
@ -5589,7 +5595,7 @@ msgstr ""
|
||||
"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/fetch/simple.py:466
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468
|
||||
msgid ""
|
||||
"Minimum interval in seconds between consecutive fetches. Default is %default "
|
||||
"s"
|
||||
@ -5597,7 +5603,7 @@ msgstr ""
|
||||
"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/fetch/simple.py:468
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470
|
||||
msgid ""
|
||||
"The character encoding for the websites you are trying to download. The "
|
||||
"default is to try and guess the encoding."
|
||||
@ -5606,7 +5612,7 @@ msgstr ""
|
||||
"ugibanje uporabljene kodne tabele."
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5617,7 +5623,7 @@ msgstr ""
|
||||
"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/fetch/simple.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474
|
||||
msgid ""
|
||||
"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 "
|
||||
@ -5632,7 +5638,7 @@ msgstr ""
|
||||
"upošteva --filter-regexp."
|
||||
|
||||
#: /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."
|
||||
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_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_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_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_infobae.py:52
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54
|
||||
#: /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:21
|
||||
#: /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_segunda.py:61
|
||||
#: /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_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_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_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_cnn.py:15
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
|
||||
@ -5928,17 +5936,17 @@ msgstr ""
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58
|
||||
#: /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:23
|
||||
#: /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:29
|
||||
#: /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:25
|
||||
#: /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_politika.py:19
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108
|
||||
#: /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:27
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
@ -5970,11 +5978,11 @@ msgstr ""
|
||||
msgid "German"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
|
||||
msgid ""
|
||||
"%prog URL\n"
|
||||
"\n"
|
||||
@ -5984,18 +5992,18 @@ msgstr ""
|
||||
"\n"
|
||||
"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"
|
||||
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 ""
|
||||
"Maximum number of levels to recurse i.e. depth of links to follow. Default "
|
||||
"%default"
|
||||
msgstr ""
|
||||
"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 ""
|
||||
"The maximum number of files to download. This only applies to files from <a "
|
||||
"href> tags. Default is %default"
|
||||
@ -6003,7 +6011,7 @@ msgstr ""
|
||||
"Maksimalno število prenešenih datotek. To velja samo za datoteke iz <a href> "
|
||||
"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"
|
||||
msgstr "Podrobneje prikaži izhodne informacije. Koristno za razhroščevanje."
|
||||
|
||||
|
||||
@ -7,14 +7,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: calibre\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"
|
||||
"Last-Translator: Linus C Unneback <linus@folkdatorn.se>\n"
|
||||
"Language-Team: Swedish <sv@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\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"
|
||||
|
||||
#: /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:60
|
||||
#: /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/oeb/base.py:569
|
||||
#: /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:376
|
||||
#: /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:933
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
|
||||
#: /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:123
|
||||
#: /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/database2.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:901
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
|
||||
#: /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/web/feeds/news.py:51
|
||||
msgid "Unknown"
|
||||
@ -606,7 +607,7 @@ msgid "%prog [options] LITFILE"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
msgstr ""
|
||||
|
||||
@ -621,7 +622,7 @@ msgid "Useful for debugging."
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -1572,11 +1573,11 @@ msgstr ""
|
||||
msgid "Creating Mobipocket file from EPUB..."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -1870,7 +1871,7 @@ msgid "Adding books to database..."
|
||||
msgstr ""
|
||||
|
||||
#: /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..."
|
||||
msgstr ""
|
||||
|
||||
@ -2096,7 +2097,7 @@ msgid "Access log:"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -2520,7 +2521,7 @@ msgid " is not a valid picture"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -3195,47 +3196,52 @@ msgstr ""
|
||||
msgid "A&utomatically set author sort"
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
|
||||
msgid "Could not read cover"
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<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> "
|
||||
"for free!.</p>"
|
||||
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/>"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
@ -3395,9 +3401,9 @@ msgstr ""
|
||||
|
||||
#: /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/library/database2.py:809
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:814
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
|
||||
msgid "News"
|
||||
msgstr ""
|
||||
|
||||
@ -4081,7 +4087,7 @@ msgid "Save to disk in a single directory"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -4119,31 +4125,31 @@ msgid "Bad database location"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
|
||||
msgid "Device: "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
|
||||
msgid " detected."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
|
||||
msgid "Connected "
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
|
||||
msgid ""
|
||||
"\n"
|
||||
" <p>The database of books on the reader is corrupted. Try the "
|
||||
@ -4159,276 +4165,276 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
|
||||
msgid "Uploading books to device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
msgid "Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
msgid "EPUB Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
msgid "LRF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
msgid "HTML Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
|
||||
msgid "LIT Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
|
||||
msgid "MOBI Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
|
||||
msgid "Text books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
|
||||
msgid "PDF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
|
||||
msgid "Comics"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
|
||||
msgid "Archives"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
|
||||
msgid "Adding books..."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
|
||||
msgid ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
|
||||
msgid ""
|
||||
"The selected books will be <b>permanently deleted</b> and the files removed "
|
||||
"from your computer. Are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
|
||||
msgid "Deleting books from device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
msgid "Cannot edit metadata"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
|
||||
msgid "No books selected"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
|
||||
msgid ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found:<br><ul>%s</ul>"
|
||||
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"
|
||||
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..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
|
||||
msgid "Saved"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
|
||||
msgid ""
|
||||
"<p>Could not save the following books to disk, because the %s format is not "
|
||||
"available for them:<ul>"
|
||||
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"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
|
||||
msgid " fetched."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
msgid "No book selected"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
|
||||
msgid "Cannot view"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
|
||||
msgid "Choose the format to view"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
|
||||
msgid "Cannot configure"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
|
||||
msgid "Copying database"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
|
||||
msgid "Invalid database"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
|
||||
msgid ""
|
||||
"<p>An invalid database already exists at %s, delete it before trying to move "
|
||||
"the existing database.<br>Error: %s"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
|
||||
msgid ""
|
||||
"There was a temporary error talking to the device. Please unplug and "
|
||||
"reconnect the device and or reboot."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
|
||||
msgid "Conversion Error"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
|
||||
msgid ""
|
||||
"<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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
|
||||
msgid ""
|
||||
"is the result of the efforts of many volunteers from all over the world. If "
|
||||
"you find it useful, please consider donating to support its development."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/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?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
|
||||
msgid ""
|
||||
" is communicating with the device!<br>\n"
|
||||
" 'Quitting may cause corruption on the device.<br>\n"
|
||||
" 'Are you sure you want to quit?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
|
||||
msgid "WARNING: Active jobs"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
|
||||
msgid ""
|
||||
"will keep running in the system tray. To close it, choose <b>Quit</b> in the "
|
||||
"context menu of the system tray."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
|
||||
msgid ""
|
||||
"<span style=\"color:red; font-weight:bold\">Latest version: <a "
|
||||
"href=\"%s\">%s</a></span>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid ""
|
||||
"%s has been updated to version %s. See the <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
|
||||
"Visit the download page?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid "Update available"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5168,20 +5174,20 @@ msgid ""
|
||||
"For help on an individual command: %%prog command --help\n"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
|
||||
msgid "Copying <b>%s</b>"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
|
||||
msgid "Compacting database"
|
||||
msgstr ""
|
||||
|
||||
@ -5212,39 +5218,39 @@ msgstr ""
|
||||
msgid "Created by "
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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)"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5287,28 +5293,28 @@ msgid "Customize the download engine"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Timeout in seconds to wait for a response from the server. Default: %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Minimum interval in seconds between consecutive fetches. Default is %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"The character encoding for the websites you are trying to download. The "
|
||||
"default is to try and guess the encoding."
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5316,7 +5322,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5326,7 +5332,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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_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_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_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_infobae.py:52
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54
|
||||
#: /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:21
|
||||
#: /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_segunda.py:61
|
||||
#: /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_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_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_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_cnn.py:15
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
|
||||
@ -5609,17 +5617,17 @@ msgstr ""
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58
|
||||
#: /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:23
|
||||
#: /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:29
|
||||
#: /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:25
|
||||
#: /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_politika.py:19
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108
|
||||
#: /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:27
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
@ -5651,33 +5659,33 @@ msgstr ""
|
||||
msgid "German"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
|
||||
msgid ""
|
||||
"%prog URL\n"
|
||||
"\n"
|
||||
"Where URL is for example http://google.com"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
|
||||
msgid ""
|
||||
"Maximum number of levels to recurse i.e. depth of links to follow. Default "
|
||||
"%default"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
|
||||
msgid ""
|
||||
"The maximum number of files to download. This only applies to files from <a "
|
||||
"href> tags. Default is %default"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -7,14 +7,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: calibre\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"
|
||||
"Last-Translator: వీవెన్ (Veeven) <Unknown>\n"
|
||||
"Language-Team: Telugu <te@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\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"
|
||||
|
||||
#: /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:60
|
||||
#: /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/oeb/base.py:569
|
||||
#: /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:376
|
||||
#: /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:933
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:937
|
||||
#: /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:123
|
||||
#: /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/database2.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:865
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:900
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1201
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1378
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1401
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:901
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1202
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1204
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1385
|
||||
#: /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/web/feeds/news.py:51
|
||||
msgid "Unknown"
|
||||
@ -606,7 +607,7 @@ msgid "%prog [options] LITFILE"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
msgstr ""
|
||||
|
||||
@ -621,7 +622,7 @@ msgid "Useful for debugging."
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -1572,11 +1573,11 @@ msgstr ""
|
||||
msgid "Creating Mobipocket file from EPUB..."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -1870,7 +1871,7 @@ msgid "Adding books to database..."
|
||||
msgstr ""
|
||||
|
||||
#: /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..."
|
||||
msgstr ""
|
||||
|
||||
@ -2096,7 +2097,7 @@ msgid "Access log:"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -2520,7 +2521,7 @@ msgid " is not a valid picture"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -3195,47 +3196,52 @@ msgstr ""
|
||||
msgid "A&utomatically set author sort"
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:143
|
||||
msgid "Could not read cover"
|
||||
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"
|
||||
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"
|
||||
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 ""
|
||||
"<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> "
|
||||
"for free!.</p>"
|
||||
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/>"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
@ -3395,9 +3401,9 @@ msgstr ""
|
||||
|
||||
#: /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/library/database2.py:809
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:813
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:814
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1123
|
||||
msgid "News"
|
||||
msgstr ""
|
||||
|
||||
@ -4081,7 +4087,7 @@ msgid "Save to disk in a single directory"
|
||||
msgstr ""
|
||||
|
||||
#: /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"
|
||||
msgstr ""
|
||||
|
||||
@ -4119,31 +4125,31 @@ msgid "Bad database location"
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:529
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:535
|
||||
msgid "Device: "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:530
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:536
|
||||
msgid " detected."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
|
||||
msgid "Connected "
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:564
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:570
|
||||
msgid ""
|
||||
"\n"
|
||||
" <p>The database of books on the reader is corrupted. Try the "
|
||||
@ -4159,276 +4165,276 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:655
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:707
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:661
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:713
|
||||
msgid "Uploading books to device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:663
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
msgid "Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:664
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
msgid "EPUB Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:665
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
msgid "LRF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:666
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
msgid "HTML Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:673
|
||||
msgid "LIT Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:674
|
||||
msgid "MOBI Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:669
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:675
|
||||
msgid "Text books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:670
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:676
|
||||
msgid "PDF Books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:671
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:677
|
||||
msgid "Comics"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:672
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:678
|
||||
msgid "Archives"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:693
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:699
|
||||
msgid "Adding books..."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:736
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:743
|
||||
msgid ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:768
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:775
|
||||
msgid ""
|
||||
"The selected books will be <b>permanently deleted</b> and the files removed "
|
||||
"from your computer. Are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:780
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:787
|
||||
msgid "Deleting books from device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
msgid "Cannot edit metadata"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:962
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:843
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:969
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048
|
||||
msgid "No books selected"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:945
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:952
|
||||
msgid ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found:<br><ul>%s</ul>"
|
||||
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"
|
||||
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..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:971
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:978
|
||||
msgid "Saved"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:991
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:998
|
||||
msgid ""
|
||||
"<p>Could not save the following books to disk, because the %s format is not "
|
||||
"available for them:<ul>"
|
||||
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"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1031
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1038
|
||||
msgid " fetched."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1170
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
msgid "No book selected"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1182
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1200
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1159
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1189
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1207
|
||||
msgid "Cannot view"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1205
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1212
|
||||
msgid "Choose the format to view"
|
||||
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"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1239
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1246
|
||||
msgid "Cannot configure"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1257
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
|
||||
msgid "Copying database"
|
||||
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 "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1269
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1276
|
||||
msgid "Invalid database"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1270
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1277
|
||||
msgid ""
|
||||
"<p>An invalid database already exists at %s, delete it before trying to move "
|
||||
"the existing database.<br>Error: %s"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1341
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1348
|
||||
msgid ""
|
||||
"There was a temporary error talking to the device. Please unplug and "
|
||||
"reconnect the device and or reboot."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1354
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1369
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1373
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1376
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1380
|
||||
msgid "Conversion Error"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1355
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1362
|
||||
msgid ""
|
||||
"<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."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1432
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1439
|
||||
msgid ""
|
||||
"is the result of the efforts of many volunteers from all over the world. If "
|
||||
"you find it useful, please consider donating to support its development."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/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?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1456
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1463
|
||||
msgid ""
|
||||
" is communicating with the device!<br>\n"
|
||||
" 'Quitting may cause corruption on the device.<br>\n"
|
||||
" 'Are you sure you want to quit?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1460
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1467
|
||||
msgid "WARNING: Active jobs"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1494
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501
|
||||
msgid ""
|
||||
"will keep running in the system tray. To close it, choose <b>Quit</b> in the "
|
||||
"context menu of the system tray."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1511
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1518
|
||||
msgid ""
|
||||
"<span style=\"color:red; font-weight:bold\">Latest version: <a "
|
||||
"href=\"%s\">%s</a></span>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid ""
|
||||
"%s has been updated to version %s. See the <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/wiki/Changelog\">new features</a>. "
|
||||
"Visit the download page?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1523
|
||||
msgid "Update available"
|
||||
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."
|
||||
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."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5168,20 +5174,20 @@ msgid ""
|
||||
"For help on an individual command: %%prog command --help\n"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1234
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1343
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1241
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1350
|
||||
msgid "Copying <b>%s</b>"
|
||||
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>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1360
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1367
|
||||
msgid "Compacting database"
|
||||
msgstr ""
|
||||
|
||||
@ -5212,39 +5218,39 @@ msgstr ""
|
||||
msgid "Created by "
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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)"
|
||||
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"
|
||||
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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -5287,28 +5293,28 @@ msgid "Customize the download engine"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Timeout in seconds to wait for a response from the server. Default: %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"Minimum interval in seconds between consecutive fetches. Default is %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"The character encoding for the websites you are trying to download. The "
|
||||
"default is to try and guess the encoding."
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5316,7 +5322,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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 ""
|
||||
"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 "
|
||||
@ -5326,7 +5332,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /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."
|
||||
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_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_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_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_infobae.py:52
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_juventudrebelde.py:54
|
||||
#: /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:21
|
||||
#: /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_segunda.py:61
|
||||
#: /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_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_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_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_cnn.py:15
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_common_dreams.py:8
|
||||
@ -5609,17 +5617,17 @@ msgstr ""
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_b92.py:67
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_blic.py:53
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_danas.py:51
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:73
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_novosti.py:49
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nspm.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pescanik.py:58
|
||||
#: /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:23
|
||||
#: /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:29
|
||||
#: /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:25
|
||||
#: /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_politika.py:19
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vijesti.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:108
|
||||
#: /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:27
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_vreme.py:26
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
@ -5651,34 +5659,34 @@ msgstr ""
|
||||
msgid "German"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:454
|
||||
msgid ""
|
||||
"%prog URL\n"
|
||||
"\n"
|
||||
"Where URL is for example http://google.com"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:463
|
||||
msgid ""
|
||||
"Maximum number of levels to recurse i.e. depth of links to follow. Default "
|
||||
"%default"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466
|
||||
msgid ""
|
||||
"The maximum number of files to download. This only applies to files from <a "
|
||||
"href> tags. Default is %default"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -29,7 +29,8 @@ recipe_modules = ['recipe_' + r for r in (
|
||||
'jb_online', 'estadao', 'o_globo', 'vijesti', 'elmundo', 'the_oz',
|
||||
'honoluluadvertiser', 'starbulletin', 'exiled', 'indy_star', 'dna',
|
||||
'pobjeda', 'chicago_breaking_news', 'glasgow_herald', 'linuxdevices',
|
||||
'hindu'
|
||||
'hindu', 'cincinnati_enquirer', 'physics_world', 'pressonline',
|
||||
'la_republica', 'physics_today',
|
||||
)]
|
||||
|
||||
import re, imp, inspect, time, os
|
||||
|
||||
@ -15,7 +15,6 @@ class ArsTechnica2(BasicNewsRecipe):
|
||||
description = 'The art of technology'
|
||||
publisher = 'Ars Technica'
|
||||
category = 'news, IT, technology'
|
||||
language = _('English')
|
||||
oldest_article = 2
|
||||
max_articles_per_feed = 100
|
||||
no_stylesheets = True
|
||||
@ -50,11 +49,29 @@ class ArsTechnica2(BasicNewsRecipe):
|
||||
,(u'Nobel Intent (Science content)' , u'http://feeds.arstechnica.com/arstechnica/science/' )
|
||||
,(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):
|
||||
ftag = soup.find('div', attrs={'class':'news-item-byline'})
|
||||
if ftag:
|
||||
ftag.insert(4,'<br /><br />')
|
||||
for item in soup.findAll(style=True):
|
||||
del item['style']
|
||||
self.append_page(soup, soup.body, 3)
|
||||
return soup
|
||||
|
||||
34
src/calibre/web/feeds/recipes/recipe_cincinnati_enquirer.py
Normal file
34
src/calibre/web/feeds/recipes/recipe_cincinnati_enquirer.py
Normal 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
|
||||
@ -60,8 +60,11 @@ class Economist(BasicNewsRecipe):
|
||||
continue
|
||||
a = tag.find('a', href=True)
|
||||
if a is not None:
|
||||
url=a['href'].replace('displaystory', 'PrinterFriendly')
|
||||
if url.startswith('/'):
|
||||
url = 'http://www.economist.com' + url
|
||||
article = dict(title=text,
|
||||
url='http://www.economist.com'+a['href'].replace('displaystory', 'PrinterFriendly'),
|
||||
url = url,
|
||||
description='', content='', date='')
|
||||
feeds[key].append(article)
|
||||
|
||||
|
||||
@ -1,29 +1,40 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
__license__ = 'GPL v3'
|
||||
__copyright__ = '2008, Darko Miletic <darko.miletic at gmail.com>'
|
||||
'''
|
||||
harpers.org
|
||||
'''
|
||||
from calibre.web.feeds.news import BasicNewsRecipe
|
||||
|
||||
class Harpers(BasicNewsRecipe):
|
||||
title = u"Harper's Magazine"
|
||||
__author__ = u'Darko Miletic'
|
||||
language = _('English')
|
||||
description = u"Harper's Magazine: Founded June 1850."
|
||||
oldest_article = 30
|
||||
max_articles_per_feed = 100
|
||||
no_stylesheets = True
|
||||
use_embedded_content = False
|
||||
timefmt = ' [%A, %d %B, %Y]'
|
||||
|
||||
keep_only_tags = [ dict(name='div', attrs={'id':'cached'}) ]
|
||||
remove_tags = [
|
||||
dict(name='table', attrs={'class':'rcnt'})
|
||||
,dict(name='table', attrs={'class':'rcnt topline'})
|
||||
]
|
||||
|
||||
feeds = [
|
||||
(u"Harper's Magazine", u'http://www.harpers.org/rss/frontpage-rss20.xml')
|
||||
]
|
||||
#!/usr/bin/env python
|
||||
|
||||
__license__ = 'GPL v3'
|
||||
__copyright__ = '2008-2009, Darko Miletic <darko.miletic at gmail.com>'
|
||||
'''
|
||||
harpers.org
|
||||
'''
|
||||
from calibre.web.feeds.news import BasicNewsRecipe
|
||||
|
||||
class Harpers(BasicNewsRecipe):
|
||||
title = u"Harper's Magazine"
|
||||
__author__ = u'Darko Miletic'
|
||||
language = _('English')
|
||||
description = u"Harper's Magazine: Founded June 1850."
|
||||
publisher = "Harper's Magazine "
|
||||
category = 'news, politics, USA'
|
||||
oldest_article = 30
|
||||
max_articles_per_feed = 100
|
||||
no_stylesheets = True
|
||||
use_embedded_content = False
|
||||
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'}) ]
|
||||
remove_tags = [
|
||||
dict(name='table', attrs={'class':'rcnt'})
|
||||
,dict(name='table', attrs={'class':'rcnt topline'})
|
||||
,dict(name=['link','object','embed'])
|
||||
]
|
||||
|
||||
feeds = [(u"Harper's Magazine", u'http://www.harpers.org/rss/frontpage-rss20.xml')]
|
||||
|
||||
|
||||
@ -10,8 +10,8 @@ images and pdf's are ignored
|
||||
|
||||
from calibre import strftime
|
||||
|
||||
from calibre.web.feeds.news import BasicNewsRecipe
|
||||
|
||||
from calibre.web.feeds.news import BasicNewsRecipe
|
||||
|
||||
class Harpers_full(BasicNewsRecipe):
|
||||
title = u"Harper's Magazine - articles from printed edition"
|
||||
__author__ = u'Darko Miletic'
|
||||
@ -23,7 +23,8 @@ class Harpers_full(BasicNewsRecipe):
|
||||
no_stylesheets = True
|
||||
use_embedded_content = False
|
||||
simultaneous_downloads = 1
|
||||
delay = 1
|
||||
delay = 1
|
||||
language = _('English')
|
||||
needs_subscription = True
|
||||
INDEX = strftime('http://www.harpers.org/archive/%Y/%m')
|
||||
LOGIN = 'http://www.harpers.org'
|
||||
@ -31,12 +32,12 @@ class Harpers_full(BasicNewsRecipe):
|
||||
remove_javascript = True
|
||||
|
||||
html2lrf_options = [
|
||||
'--comment', description
|
||||
'--comment', description
|
||||
, '--category', category
|
||||
, '--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'}) ]
|
||||
remove_tags = [
|
||||
@ -71,10 +72,4 @@ class Harpers_full(BasicNewsRecipe):
|
||||
,'description':''
|
||||
})
|
||||
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')
|
||||
|
||||
|
||||
28
src/calibre/web/feeds/recipes/recipe_la_republica.py
Normal file
28
src/calibre/web/feeds/recipes/recipe_la_republica.py
Normal 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')
|
||||
]
|
||||
|
||||
39
src/calibre/web/feeds/recipes/recipe_physics_today.py
Normal file
39
src/calibre/web/feeds/recipes/recipe_physics_today.py
Normal 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')]
|
||||
35
src/calibre/web/feeds/recipes/recipe_physics_world.py
Normal file
35
src/calibre/web/feeds/recipes/recipe_physics_world.py
Normal 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
|
||||
|
||||
|
||||
@ -17,9 +17,6 @@ class Pobjeda(BasicNewsRecipe):
|
||||
description = 'News from Montenegro'
|
||||
publisher = 'Pobjeda a.d.'
|
||||
category = 'news, politics, Montenegro'
|
||||
language = _('Serbian')
|
||||
oldest_article = 2
|
||||
max_articles_per_feed = 100
|
||||
no_stylesheets = True
|
||||
remove_javascript = True
|
||||
encoding = 'utf8'
|
||||
@ -30,12 +27,14 @@ class Pobjeda(BasicNewsRecipe):
|
||||
|
||||
html2lrf_options = [
|
||||
'--comment', description
|
||||
, '--base-font-size', '10'
|
||||
, '--category', category
|
||||
, '--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')]
|
||||
|
||||
keep_only_tags = [dict(name='div', attrs={'class':'vijest'})]
|
||||
@ -64,8 +63,6 @@ class Pobjeda(BasicNewsRecipe):
|
||||
soup.html['lang'] = 'sr-Latn-ME'
|
||||
mtag = '<meta http-equiv="Content-Language" content="sr-Latn-ME"/>'
|
||||
soup.head.insert(0,mtag)
|
||||
for item in soup.findAll(style=True):
|
||||
del item['style']
|
||||
return soup
|
||||
|
||||
def get_cover_url(self):
|
||||
@ -81,16 +78,16 @@ class Pobjeda(BasicNewsRecipe):
|
||||
lfeeds = self.get_feeds()
|
||||
for feedobj in lfeeds:
|
||||
feedtitle, feedurl = feedobj
|
||||
self.report_progress(0, _('Fetching feed')+' %s...'%(feedtitle if feedtitle else feedurl))
|
||||
self.report_progress(0, _('Fetching feed')+' %s...'%(feedtitle if feedtitle else feedurl))
|
||||
articles = []
|
||||
soup = self.index_to_soup(feedurl)
|
||||
soup = self.index_to_soup(feedurl)
|
||||
for item in soup.findAll('div', attrs={'class':'vijest'}):
|
||||
description = self.tag_to_string(item.h2)
|
||||
atag = item.h1.find('a')
|
||||
if atag:
|
||||
if atag and atag.has_key('href'):
|
||||
url = self.INDEX + '/' + atag['href']
|
||||
title = self.tag_to_string(atag)
|
||||
date = strftime(self.timefmt)
|
||||
date = strftime(self.timefmt)
|
||||
articles.append({
|
||||
'title' :title
|
||||
,'date' :date
|
||||
|
||||
66
src/calibre/web/feeds/recipes/recipe_pressonline.py
Normal file
66
src/calibre/web/feeds/recipes/recipe_pressonline.py
Normal 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§ionId=37')
|
||||
,(u'Politika' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss§ionId=29')
|
||||
,(u'U Fokusu' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss§ionId=33')
|
||||
,(u'Globus' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss§ionId=40')
|
||||
,(u'Komentar Dana' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss§ionId=62')
|
||||
,(u'Hronika' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss§ionId=39')
|
||||
,(u'Regioni' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss§ionId=56')
|
||||
,(u'Republika Srpska', u'http://www.pressonline.rs/page/stories/sr.html?view=rss§ionId=51')
|
||||
,(u'Beograd' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss§ionId=43')
|
||||
,(u'Dzet-Set Svet' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss§ionId=41')
|
||||
,(u'Lifestyle' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss§ionId=42')
|
||||
,(u'Sport' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss§ionId=44')
|
||||
,(u'Press Magazine' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss§ionId=63')
|
||||
,(u'Lola' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss§ionId=70')
|
||||
,(u'Duplerica' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss§ionId=72')
|
||||
,(u'Presspedia' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss§ionId=80')
|
||||
,(u'Kolumne' , u'http://www.pressonline.rs/page/stories/sr.html?view=rss§ionId=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
|
||||
@ -24,7 +24,7 @@ class Vreme(BasicNewsRecipe):
|
||||
remove_javascript = True
|
||||
use_embedded_content = False
|
||||
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 = [
|
||||
'--comment' , description
|
||||
@ -33,7 +33,8 @@ class Vreme(BasicNewsRecipe):
|
||||
, '--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')]
|
||||
|
||||
@ -88,19 +89,12 @@ class Vreme(BasicNewsRecipe):
|
||||
del soup.body['text' ]
|
||||
del soup.body['bgcolor']
|
||||
del soup.body['onload' ]
|
||||
for item in soup.findAll('table'):
|
||||
if item.has_key('width'):
|
||||
del item['width']
|
||||
if item.has_key('height'):
|
||||
del item['height']
|
||||
for item in soup.findAll(face=True):
|
||||
del item['face']
|
||||
for item in soup.findAll(size=True):
|
||||
del item['size']
|
||||
mtag = '<meta http-equiv="Content-Language" content="sr-Latn-RS"/>'
|
||||
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
|
||||
|
||||
def get_cover_url(self):
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env 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
|
||||
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}')
|
||||
>>> print sheet.cssText
|
||||
a {
|
||||
color: red
|
||||
}
|
||||
color: red
|
||||
}
|
||||
|
||||
"""
|
||||
__all__ = ['css', 'stylesheets', 'CSSParser', 'CSSSerializer']
|
||||
__docformat__ = 'restructuredtext'
|
||||
__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 xml.dom
|
||||
@ -84,20 +84,19 @@ from helper import Deprecated
|
||||
import errorhandler
|
||||
log = errorhandler.ErrorHandler()
|
||||
|
||||
import util
|
||||
import css
|
||||
import stylesheets
|
||||
import util
|
||||
from parse import CSSParser
|
||||
|
||||
from serialize import CSSSerializer
|
||||
ser = CSSSerializer()
|
||||
|
||||
# used by Selector defining namespace prefix '*'
|
||||
# used by Selector defining namespace prefix '*'
|
||||
_ANYNS = -1
|
||||
|
||||
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
|
||||
the new CSSStyleSheet with a document in DOM Level 2.
|
||||
|
||||
@ -166,21 +165,21 @@ parse.__doc__ = CSSParser.parse.__doc__
|
||||
|
||||
# set "ser", default serializer
|
||||
def setSerializer(serializer):
|
||||
"""
|
||||
sets the global serializer used by all class in cssutils
|
||||
"""
|
||||
"""Set the global serializer used by all class in cssutils."""
|
||||
global ser
|
||||
ser = serializer
|
||||
|
||||
|
||||
def getUrls(sheet):
|
||||
"""
|
||||
Utility function to get all ``url(urlstring)`` values in
|
||||
``CSSImportRules`` and ``CSSStyleDeclaration`` objects (properties)
|
||||
of given CSSStyleSheet ``sheet``.
|
||||
"""Retrieve all ``url(urlstring)`` values (in e.g.
|
||||
:class:`cssutils.css.CSSImportRule` or :class:`cssutils.css.CSSValue`
|
||||
objects of given `sheet`.
|
||||
|
||||
This function is a generator. The url values exclude ``url(`` and ``)``
|
||||
and surrounding single or double quotes.
|
||||
:param sheet:
|
||||
: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):
|
||||
yield importrule.href
|
||||
@ -211,16 +210,17 @@ def getUrls(sheet):
|
||||
u = getUrl(v)
|
||||
if u is not None:
|
||||
yield u
|
||||
|
||||
def replaceUrls(sheet, replacer):
|
||||
"""
|
||||
Utility function to replace all ``url(urlstring)`` values in
|
||||
``CSSImportRules`` and ``CSSStyleDeclaration`` objects (properties)
|
||||
of given CSSStyleSheet ``sheet``.
|
||||
|
||||
``replacer`` must be a function which is called with a single
|
||||
argument ``urlstring`` which is the current value of url()
|
||||
excluding ``url(`` and ``)`` and surrounding single or double quotes.
|
||||
def replaceUrls(sheet, replacer):
|
||||
"""Replace all URLs in :class:`cssutils.css.CSSImportRule` or
|
||||
:class:`cssutils.css.CSSValue` objects of given `sheet`.
|
||||
|
||||
:param sheet:
|
||||
:class:`cssutils.css.CSSStyleSheet` which is changed
|
||||
: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):
|
||||
importrule.href = replacer(importrule.href)
|
||||
@ -249,6 +249,37 @@ def replaceUrls(sheet, replacer):
|
||||
elif v.CSS_PRIMITIVE_VALUE == v.cssValueType:
|
||||
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__':
|
||||
print __doc__
|
||||
|
||||
40
src/cssutils/_fetch.py
Normal file
40
src/cssutils/_fetch.py
Normal 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
68
src/cssutils/_fetchgae.py
Normal 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)
|
||||
@ -4,7 +4,8 @@ __docformat__ = 'restructuredtext'
|
||||
__author__ = 'Walter Doerwald'
|
||||
__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 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):
|
||||
"""
|
||||
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
|
||||
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
|
||||
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.
|
||||
|
||||
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.
|
||||
If ``final`` is true, ``detectencoding_str()`` will never return ``None``
|
||||
as the encoding.
|
||||
``final`` specifies whether more data will be available in later calls or
|
||||
not. If ``final`` is true, ``detectencoding_str()`` will never return
|
||||
``None`` as the encoding.
|
||||
"""
|
||||
|
||||
# A bit for every candidate
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
"""
|
||||
Document Object Model Level 2 CSS
|
||||
"""Implements Document Object Model Level 2 CSS
|
||||
http://www.w3.org/TR/2000/PR-DOM-Level-2-Style-20000927/css.html
|
||||
|
||||
currently implemented
|
||||
@ -43,7 +42,7 @@ __all__ = [
|
||||
'CSSValue', 'CSSPrimitiveValue', 'CSSValueList'
|
||||
]
|
||||
__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 cssrulelist import *
|
||||
@ -60,4 +59,5 @@ from cssunknownrule import *
|
||||
from selector import *
|
||||
from selectorlist import *
|
||||
from cssstyledeclaration import *
|
||||
from property import *
|
||||
from cssvalue import *
|
||||
|
||||
@ -1,16 +1,12 @@
|
||||
"""CSSCharsetRule implements DOM Level 2 CSS CSSCharsetRule.
|
||||
|
||||
TODO:
|
||||
- check encoding syntax and not codecs.lookup?
|
||||
"""
|
||||
"""CSSCharsetRule implements DOM Level 2 CSS CSSCharsetRule."""
|
||||
__all__ = ['CSSCharsetRule']
|
||||
__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 xml.dom
|
||||
import cssrule
|
||||
import cssutils
|
||||
import xml.dom
|
||||
|
||||
class CSSCharsetRule(cssrule.CSSRule):
|
||||
"""
|
||||
@ -28,35 +24,26 @@ class CSSCharsetRule(cssrule.CSSRule):
|
||||
character encoding information e.g. in an HTTP header, has priority
|
||||
(see CSS document representation) but this is not reflected in the
|
||||
CSSCharsetRule.
|
||||
|
||||
This rule is not really needed anymore as setting
|
||||
:attr:`CSSStyleSheet.encoding` is much easier.
|
||||
|
||||
Properties
|
||||
==========
|
||||
cssText: of type DOMString
|
||||
The parsable textual representation of this rule
|
||||
encoding: of type DOMString
|
||||
The encoding information used in this @charset rule.
|
||||
Format::
|
||||
|
||||
Inherits properties from CSSRule
|
||||
charsetrule:
|
||||
CHARSET_SYM S* STRING S* ';'
|
||||
|
||||
Format
|
||||
======
|
||||
charsetrule:
|
||||
CHARSET_SYM S* STRING S* ';'
|
||||
|
||||
BUT: Only valid format is:
|
||||
BUT: Only valid format is (single space, double quotes!)::
|
||||
|
||||
@charset "ENCODING";
|
||||
"""
|
||||
type = property(lambda self: cssrule.CSSRule.CHARSET_RULE)
|
||||
|
||||
def __init__(self, encoding=None, parentRule=None,
|
||||
parentStyleSheet=None, readonly=False):
|
||||
"""
|
||||
encoding:
|
||||
:param encoding:
|
||||
a valid character encoding
|
||||
readonly:
|
||||
:param readonly:
|
||||
defaults to False, not used yet
|
||||
|
||||
if readonly allows setting of properties in constructor only
|
||||
"""
|
||||
super(CSSCharsetRule, self).__init__(parentRule=parentRule,
|
||||
parentStyleSheet=parentStyleSheet)
|
||||
@ -67,25 +54,34 @@ class CSSCharsetRule(cssrule.CSSRule):
|
||||
|
||||
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):
|
||||
"""returns serialized property cssText"""
|
||||
"""The parsable textual representation."""
|
||||
return cssutils.ser.do_CSSCharsetRule(self)
|
||||
|
||||
def _setCssText(self, cssText):
|
||||
"""
|
||||
DOMException on setting
|
||||
|
||||
- SYNTAX_ERR: (self)
|
||||
Raised if the specified CSS string value has a syntax error and
|
||||
is unparsable.
|
||||
- INVALID_MODIFICATION_ERR: (self)
|
||||
Raised if the specified CSS string value represents a different
|
||||
type of rule than the current one.
|
||||
- HIERARCHY_REQUEST_ERR: (CSSStylesheet)
|
||||
Raised if the rule cannot be inserted at this point in the
|
||||
style sheet.
|
||||
- NO_MODIFICATION_ALLOWED_ERR: (CSSRule)
|
||||
Raised if the rule is readonly.
|
||||
: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.
|
||||
"""
|
||||
super(CSSCharsetRule, self)._setCssText(cssText)
|
||||
|
||||
@ -120,14 +116,15 @@ class CSSCharsetRule(cssrule.CSSRule):
|
||||
|
||||
def _setEncoding(self, encoding):
|
||||
"""
|
||||
DOMException on setting
|
||||
|
||||
- NO_MODIFICATION_ALLOWED_ERR: (CSSRule)
|
||||
Raised if this encoding rule is readonly.
|
||||
- SYNTAX_ERR: (self)
|
||||
Raised if the specified encoding value has a syntax error and
|
||||
is unparsable.
|
||||
Currently only valid Python encodings are allowed.
|
||||
:param encoding:
|
||||
a valid encoding to be used. Currently only valid Python encodings
|
||||
are allowed.
|
||||
:exceptions:
|
||||
- :exc:`~xml.dom.NoModificationAllowedErr`:
|
||||
Raised if this encoding rule is readonly.
|
||||
- :exc:`~xml.dom.SyntaxErr`:
|
||||
Raised if the specified encoding value has a syntax error and
|
||||
is unparsable.
|
||||
"""
|
||||
self._checkReadonly()
|
||||
tokenizer = self._tokenize2(encoding)
|
||||
@ -154,12 +151,8 @@ class CSSCharsetRule(cssrule.CSSRule):
|
||||
encoding = property(lambda self: self._encoding, _setEncoding,
|
||||
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))
|
||||
|
||||
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))
|
||||
|
||||
@ -1,36 +1,24 @@
|
||||
"""CSSComment is not defined in DOM Level 2 at all but a cssutils defined
|
||||
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']
|
||||
__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 cssutils
|
||||
import xml.dom
|
||||
|
||||
class CSSComment(cssrule.CSSRule):
|
||||
"""
|
||||
(cssutils) a CSS comment
|
||||
Represents a CSS comment (cssutils only).
|
||||
|
||||
Properties
|
||||
==========
|
||||
cssText: of type DOMString
|
||||
The comment text including comment delimiters
|
||||
|
||||
Inherits properties from CSSRule
|
||||
|
||||
Format
|
||||
======
|
||||
::
|
||||
Format::
|
||||
|
||||
/*...*/
|
||||
"""
|
||||
type = property(lambda self: cssrule.CSSRule.COMMENT) # value = -1
|
||||
# constant but needed:
|
||||
wellformed = True
|
||||
|
||||
def __init__(self, cssText=None, parentRule=None,
|
||||
parentStyleSheet=None, readonly=False):
|
||||
super(CSSComment, self).__init__(parentRule=parentRule,
|
||||
@ -42,28 +30,33 @@ class CSSComment(cssrule.CSSRule):
|
||||
|
||||
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):
|
||||
"""returns serialized property cssText"""
|
||||
"""Return serialized property cssText."""
|
||||
return cssutils.ser.do_CSSComment(self)
|
||||
|
||||
def _setCssText(self, cssText):
|
||||
"""
|
||||
cssText
|
||||
:param cssText:
|
||||
textual text to set or tokenlist which is not tokenized
|
||||
anymore. May also be a single token for this rule
|
||||
parser
|
||||
if called from cssparser directly this is Parser instance
|
||||
|
||||
DOMException on setting
|
||||
|
||||
- SYNTAX_ERR: (self)
|
||||
Raised if the specified CSS string value has a syntax error and
|
||||
is unparsable.
|
||||
- INVALID_MODIFICATION_ERR: (self)
|
||||
Raised if the specified CSS string value represents a different
|
||||
type of rule than the current one.
|
||||
- NO_MODIFICATION_ALLOWED_ERR: (CSSRule)
|
||||
Raised if the rule is readonly.
|
||||
: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.NoModificationAllowedErr`:
|
||||
Raised if the rule is readonly.
|
||||
"""
|
||||
super(CSSComment, self)._setCssText(cssText)
|
||||
tokenizer = self._tokenize2(cssText)
|
||||
@ -81,12 +74,11 @@ class CSSComment(cssrule.CSSRule):
|
||||
self._cssText = self._tokenvalue(commenttoken)
|
||||
|
||||
cssText = property(_getCssText, _setCssText,
|
||||
doc=u"(cssutils) Textual representation of this comment")
|
||||
doc=u"The parsable textual representation of this rule.")
|
||||
|
||||
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))
|
||||
type = property(lambda self: self.COMMENT,
|
||||
doc="The type of this rule, as defined by a CSSRule "
|
||||
"type constant.")
|
||||
|
||||
# constant but needed:
|
||||
wellformed = property(lambda self: True)
|
||||
|
||||
@ -2,12 +2,12 @@
|
||||
"""
|
||||
__all__ = ['CSSFontFaceRule']
|
||||
__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 cssutils
|
||||
from cssstyledeclaration import CSSStyleDeclaration
|
||||
import xml.dom
|
||||
|
||||
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
|
||||
descriptions.
|
||||
|
||||
Properties
|
||||
==========
|
||||
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
|
||||
======
|
||||
::
|
||||
Format::
|
||||
|
||||
font_face
|
||||
: FONT_FACE_SYM 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,
|
||||
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
|
||||
"""
|
||||
super(CSSFontFaceRule, self).__init__(parentRule=parentRule,
|
||||
@ -57,27 +40,32 @@ class CSSFontFaceRule(cssrule.CSSRule):
|
||||
|
||||
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):
|
||||
"""
|
||||
returns serialized property cssText
|
||||
"""
|
||||
"""Return serialized property cssText."""
|
||||
return cssutils.ser.do_CSSFontFaceRule(self)
|
||||
|
||||
def _setCssText(self, cssText):
|
||||
"""
|
||||
DOMException on setting
|
||||
|
||||
- SYNTAX_ERR: (self, StyleDeclaration)
|
||||
Raised if the specified CSS string value has a syntax error and
|
||||
is unparsable.
|
||||
- INVALID_MODIFICATION_ERR: (self)
|
||||
Raised if the specified CSS string value represents a different
|
||||
type of rule than the current one.
|
||||
- HIERARCHY_REQUEST_ERR: (CSSStylesheet)
|
||||
Raised if the rule cannot be inserted at this point in the
|
||||
style sheet.
|
||||
- NO_MODIFICATION_ALLOWED_ERR: (CSSRule)
|
||||
Raised if the rule is readonly.
|
||||
: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.
|
||||
"""
|
||||
super(CSSFontFaceRule, self)._setCssText(cssText)
|
||||
|
||||
@ -135,15 +123,12 @@ class CSSFontFaceRule(cssrule.CSSRule):
|
||||
self._setSeq(newseq) # contains (probably comments) upto { only
|
||||
|
||||
cssText = property(_getCssText, _setCssText,
|
||||
doc="(DOM) The parsable textual representation of the rule.")
|
||||
|
||||
def _getStyle(self):
|
||||
return self._style
|
||||
doc="(DOM) The parsable textual representation of this rule.")
|
||||
|
||||
def _setStyle(self, style):
|
||||
"""
|
||||
style
|
||||
StyleDeclaration or string
|
||||
:param style:
|
||||
a CSSStyleDeclaration or string
|
||||
"""
|
||||
self._checkReadonly()
|
||||
if isinstance(style, basestring):
|
||||
@ -151,13 +136,13 @@ class CSSFontFaceRule(cssrule.CSSRule):
|
||||
else:
|
||||
self._style._seq = style.seq
|
||||
|
||||
style = property(_getStyle, _setStyle,
|
||||
doc="(DOM) The declaration-block of this rule set.")
|
||||
style = property(lambda self: self._style, _setStyle,
|
||||
doc="(DOM) The declaration-block of this rule set, "
|
||||
"a :class:`~cssutils.css.CSSStyleDeclaration`.")
|
||||
|
||||
def __repr__(self):
|
||||
return "cssutils.css.%s(style=%r)" % (
|
||||
self.__class__.__name__, self.style.cssText)
|
||||
type = property(lambda self: self.FONT_FACE_RULE,
|
||||
doc="The type of this rule, as defined by a CSSRule "
|
||||
"type constant.")
|
||||
|
||||
def __str__(self):
|
||||
return "<cssutils.css.%s object style=%r at 0x%x>" % (
|
||||
self.__class__.__name__, self.style.cssText, id(self))
|
||||
# constant but needed:
|
||||
wellformed = property(lambda self: True)
|
||||
|
||||
@ -1,60 +1,30 @@
|
||||
"""CSSImportRule implements DOM Level 2 CSS CSSImportRule.
|
||||
|
||||
plus:
|
||||
|
||||
``name`` property
|
||||
http://www.w3.org/TR/css3-cascade/#cascading
|
||||
"""CSSImportRule implements DOM Level 2 CSS CSSImportRule plus the
|
||||
``name`` property from http://www.w3.org/TR/css3-cascade/#cascading.
|
||||
|
||||
"""
|
||||
__all__ = ['CSSImportRule']
|
||||
__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 urllib
|
||||
import urlparse
|
||||
import xml.dom
|
||||
import cssrule
|
||||
import cssutils
|
||||
|
||||
class CSSImportRule(cssrule.CSSRule):
|
||||
"""
|
||||
Represents an @import rule within a CSS style sheet. The @import rule
|
||||
is used to import style rules from other style sheets.
|
||||
|
||||
Properties
|
||||
==========
|
||||
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).
|
||||
Format::
|
||||
|
||||
Inherits properties from CSSRule
|
||||
|
||||
Format
|
||||
======
|
||||
import
|
||||
: IMPORT_SYM S*
|
||||
[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,
|
||||
parentRule=None, parentStyleSheet=None, readonly=False):
|
||||
"""
|
||||
@ -90,30 +60,44 @@ class CSSImportRule(cssrule.CSSRule):
|
||||
self._setSeq(seq)
|
||||
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'),
|
||||
doc="if self._media is used (or simply empty)")
|
||||
|
||||
def _getCssText(self):
|
||||
"""
|
||||
returns serialized property cssText
|
||||
"""
|
||||
"""Return serialized property cssText."""
|
||||
return cssutils.ser.do_CSSImportRule(self)
|
||||
|
||||
def _setCssText(self, cssText):
|
||||
"""
|
||||
DOMException on setting
|
||||
|
||||
- HIERARCHY_REQUEST_ERR: (CSSStylesheet)
|
||||
Raised if the rule cannot be inserted at this point in the
|
||||
style sheet.
|
||||
- INVALID_MODIFICATION_ERR: (self)
|
||||
Raised if the specified CSS string value represents a different
|
||||
type of rule than the current one.
|
||||
- NO_MODIFICATION_ALLOWED_ERR: (CSSRule)
|
||||
Raised if the rule is readonly.
|
||||
- SYNTAX_ERR: (self)
|
||||
Raised if the specified CSS string value has a syntax error and
|
||||
is unparsable.
|
||||
:exceptions:
|
||||
- :exc:`~xml.dom.HierarchyRequestErr`:
|
||||
Raised if the rule cannot be inserted at this point in the
|
||||
style sheet.
|
||||
- :exc:`~xml.dom.InvalidModificationErr`:
|
||||
Raised if the specified CSS string value represents a different
|
||||
type of rule than the current one.
|
||||
- :exc:`~xml.dom.NoModificationAllowedErr`:
|
||||
Raised if the rule is readonly.
|
||||
- :exc:`~xml.dom.SyntaxErr`:
|
||||
Raised if the specified CSS string value has a syntax error and
|
||||
is unparsable.
|
||||
"""
|
||||
super(CSSImportRule, self)._setCssText(cssText)
|
||||
tokenizer = self._tokenize2(cssText)
|
||||
@ -268,7 +252,7 @@ class CSSImportRule(cssrule.CSSRule):
|
||||
self.styleSheet._parentStyleSheet = self.parentStyleSheet
|
||||
|
||||
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):
|
||||
# update seq
|
||||
@ -291,11 +275,11 @@ class CSSImportRule(cssrule.CSSRule):
|
||||
doc="Location of the style sheet to be imported.")
|
||||
|
||||
media = property(lambda self: self._media,
|
||||
doc=u"(DOM readonly) A list of media types for this rule"
|
||||
" of type MediaList")
|
||||
doc="(DOM readonly) A list of media types for this rule "
|
||||
"of type :class:`~cssutils.stylesheets.MediaList`.")
|
||||
|
||||
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:
|
||||
# "" or ''
|
||||
if not name:
|
||||
@ -322,7 +306,7 @@ class CSSImportRule(cssrule.CSSRule):
|
||||
self._log.error(u'CSSImportRule: Not a valid name: %s' % name)
|
||||
|
||||
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):
|
||||
"""Read new CSSStyleSheet cssText from href using parentStyleSheet.href
|
||||
@ -372,28 +356,15 @@ class CSSImportRule(cssrule.CSSRule):
|
||||
styleSheet = property(lambda self: self._styleSheet,
|
||||
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):
|
||||
"depending if media is used at all"
|
||||
"Depending if media is used at all."
|
||||
if self._usemedia:
|
||||
return bool(self.href and self.media.wellformed)
|
||||
else:
|
||||
return bool(self.href)
|
||||
|
||||
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))
|
||||
|
||||
@ -1,12 +1,11 @@
|
||||
"""CSSMediaRule implements DOM Level 2 CSS CSSMediaRule.
|
||||
"""
|
||||
"""CSSMediaRule implements DOM Level 2 CSS CSSMediaRule."""
|
||||
__all__ = ['CSSMediaRule']
|
||||
__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 cssutils
|
||||
import xml.dom
|
||||
|
||||
class CSSMediaRule(cssrule.CSSRule):
|
||||
"""
|
||||
@ -14,31 +13,17 @@ class CSSMediaRule(cssrule.CSSRule):
|
||||
MEDIA_RULE constant. On these objects the type attribute must return the
|
||||
value of that constant.
|
||||
|
||||
Properties
|
||||
==========
|
||||
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::
|
||||
|
||||
Format
|
||||
======
|
||||
media
|
||||
: MEDIA_SYM S* medium [ COMMA S* medium ]*
|
||||
|
||||
STRING? # the name
|
||||
|
||||
LBRACE S* ruleset* '}' S*;
|
||||
|
||||
``cssRules``
|
||||
All Rules in this media rule, a :class:`~cssutils.css.CSSRuleList`.
|
||||
"""
|
||||
# CONSTANT
|
||||
type = property(lambda self: cssrule.CSSRule.MEDIA_RULE)
|
||||
|
||||
def __init__(self, mediaText='all', name=None,
|
||||
parentRule=None, parentStyleSheet=None, readonly=False):
|
||||
"""constructor"""
|
||||
@ -56,12 +41,20 @@ class CSSMediaRule(cssrule.CSSRule):
|
||||
self._readonly = readonly
|
||||
|
||||
def __iter__(self):
|
||||
"""generator which iterates over cssRules."""
|
||||
"""Generator iterating over these rule's cssRules."""
|
||||
for rule in self.cssRules:
|
||||
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):
|
||||
"""return serialized property cssText"""
|
||||
"""Return serialized property cssText."""
|
||||
return cssutils.ser.do_CSSMediaRule(self)
|
||||
|
||||
def _setCssText(self, cssText):
|
||||
@ -69,19 +62,19 @@ class CSSMediaRule(cssrule.CSSRule):
|
||||
:param cssText:
|
||||
a parseable string or a tuple of (cssText, dict-of-namespaces)
|
||||
:Exceptions:
|
||||
- `NAMESPACE_ERR`: (Selector)
|
||||
- :exc:`~xml.dom.NamespaceErr`:
|
||||
Raised if a specified selector uses an unknown namespace
|
||||
prefix.
|
||||
- `SYNTAX_ERR`: (self, StyleDeclaration, etc)
|
||||
- :exc:`~xml.dom.SyntaxErr`:
|
||||
Raised if the specified CSS string value has a syntax error and
|
||||
is unparsable.
|
||||
- `INVALID_MODIFICATION_ERR`: (self)
|
||||
- :exc:`~xml.dom.InvalidModificationErr`:
|
||||
Raised if the specified CSS string value represents a different
|
||||
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
|
||||
style sheet.
|
||||
- `NO_MODIFICATION_ALLOWED_ERR`: (CSSRule)
|
||||
- :exc:`~xml.dom.NoModificationAllowedErr`:
|
||||
Raised if the rule is readonly.
|
||||
"""
|
||||
super(CSSMediaRule, self)._setCssText(cssText)
|
||||
@ -209,7 +202,7 @@ class CSSMediaRule(cssrule.CSSRule):
|
||||
self.cssRules.append(r)
|
||||
|
||||
cssText = property(_getCssText, _setCssText,
|
||||
doc="(DOM attribute) The parsable textual representation.")
|
||||
doc="(DOM) The parsable textual representation of this rule.")
|
||||
|
||||
def _setName(self, name):
|
||||
if isinstance(name, basestring) or name is None:
|
||||
@ -221,30 +214,26 @@ class CSSMediaRule(cssrule.CSSRule):
|
||||
else:
|
||||
self._log.error(u'CSSImportRule: Not a valid name: %s' % name)
|
||||
|
||||
|
||||
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,
|
||||
doc=u"(DOM readonly) A list of media types for this rule of type\
|
||||
MediaList")
|
||||
|
||||
wellformed = property(lambda self: self.media.wellformed)
|
||||
doc=u"(DOM readonly) A list of media types for this rule of type "
|
||||
u":class:`~cssutils.stylesheets.MediaList`.")
|
||||
|
||||
def deleteRule(self, index):
|
||||
"""
|
||||
index
|
||||
within the media block's rule collection of the rule to remove.
|
||||
Delete the rule at `index` from the media block.
|
||||
|
||||
:param index:
|
||||
of the rule to remove within the media block's rule collection
|
||||
|
||||
Used to delete a rule from the media block.
|
||||
|
||||
DOMExceptions
|
||||
|
||||
- INDEX_SIZE_ERR: (self)
|
||||
Raised if the specified index does not correspond to a rule in
|
||||
the media rule list.
|
||||
- NO_MODIFICATION_ALLOWED_ERR: (self)
|
||||
Raised if this media rule is readonly.
|
||||
:Exceptions:
|
||||
- :exc:`~xml.dom.IndexSizeErr`:
|
||||
Raised if the specified index does not correspond to a rule in
|
||||
the media rule list.
|
||||
- :exc:`~xml.dom.NoModificationAllowedErr`:
|
||||
Raised if this media rule is readonly.
|
||||
"""
|
||||
self._checkReadonly()
|
||||
|
||||
@ -257,46 +246,47 @@ class CSSMediaRule(cssrule.CSSRule):
|
||||
index, self.cssRules.length))
|
||||
|
||||
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)
|
||||
|
||||
def insertRule(self, rule, index=None):
|
||||
"""
|
||||
rule
|
||||
The parsable text representing the rule. For rule sets this
|
||||
contains both the selector and the style declaration. For
|
||||
at-rules, this specifies both the at-identifier and the rule
|
||||
Insert `rule` into the media block.
|
||||
|
||||
:param 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.
|
||||
|
||||
cssutils also allows rule to be a valid **CSSRule** object
|
||||
cssutils also allows rule to be a valid :class:`~cssutils.css.CSSRule`
|
||||
object.
|
||||
|
||||
index
|
||||
within the media block's rule collection of the rule before
|
||||
which to insert the specified rule. If the specified index is
|
||||
:param index:
|
||||
before the specified `rule` will be inserted.
|
||||
If the specified `index` is
|
||||
equal to the length of the media blocks's rule collection, the
|
||||
rule will be added to the end of the media block.
|
||||
If index is not given or None rule will be appended to rule
|
||||
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
|
||||
|
||||
- HIERARCHY_REQUEST_ERR:
|
||||
(no use case yet as no @charset or @import allowed))
|
||||
Raised if the rule cannot be inserted at the specified index,
|
||||
e.g., if an @import rule is inserted after a standard rule set
|
||||
or other at-rule.
|
||||
- INDEX_SIZE_ERR: (self)
|
||||
Raised if the specified index is not a valid insertion point.
|
||||
- NO_MODIFICATION_ALLOWED_ERR: (self)
|
||||
Raised if this media rule is readonly.
|
||||
- SYNTAX_ERR: (CSSStyleRule)
|
||||
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.
|
||||
:exceptions:
|
||||
- :exc:`~xml.dom.HierarchyRequestErr`:
|
||||
Raised if the `rule` cannot be inserted at the specified `index`,
|
||||
e.g., if an @import rule is inserted after a standard rule set
|
||||
or other at-rule.
|
||||
- :exc:`~xml.dom.IndexSizeErr`:
|
||||
Raised if the specified `index` is not a valid insertion point.
|
||||
- :exc:`~xml.dom.NoModificationAllowedErr`:
|
||||
Raised if this media rule is readonly.
|
||||
- :exc:`~xml.dom.SyntaxErr`:
|
||||
Raised if the specified `rule` has a syntax error and is
|
||||
unparsable.
|
||||
|
||||
"""
|
||||
self._checkReadonly()
|
||||
@ -340,10 +330,8 @@ class CSSMediaRule(cssrule.CSSRule):
|
||||
rule._parentStyleSheet = self.parentStyleSheet
|
||||
return index
|
||||
|
||||
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))
|
||||
type = property(lambda self: self.MEDIA_RULE,
|
||||
doc="The type of this rule, as defined by a CSSRule "
|
||||
"type constant.")
|
||||
|
||||
wellformed = property(lambda self: self.media.wellformed)
|
||||
|
||||
@ -1,16 +1,12 @@
|
||||
"""CSSNamespaceRule currently implements
|
||||
http://dev.w3.org/csswg/css3-namespace/
|
||||
|
||||
(until 0.9.5a2: http://www.w3.org/TR/2006/WD-css3-namespace-20060828/)
|
||||
"""
|
||||
"""CSSNamespaceRule currently implements http://dev.w3.org/csswg/css3-namespace/"""
|
||||
__all__ = ['CSSNamespaceRule']
|
||||
__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 cssutils
|
||||
from cssutils.helper import Deprecated
|
||||
import xml.dom
|
||||
|
||||
class CSSNamespaceRule(cssrule.CSSRule):
|
||||
"""
|
||||
@ -20,36 +16,19 @@ class CSSNamespaceRule(cssrule.CSSRule):
|
||||
it with a given namespace (a string). This namespace prefix can then be
|
||||
used in namespace-qualified names such as those described in the
|
||||
Selectors Module [SELECT] or the Values and Units module [CSS3VAL].
|
||||
|
||||
Dealing with these rules directly is not needed anymore, easier is
|
||||
the use of :attr:`cssutils.css.CSSStyleSheet.namespaces`.
|
||||
|
||||
Properties
|
||||
==========
|
||||
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.
|
||||
Format::
|
||||
|
||||
Inherits properties from CSSRule
|
||||
|
||||
Format
|
||||
======
|
||||
namespace
|
||||
: NAMESPACE_SYM S* [namespace_prefix S*]? [STRING|URI] S* ';' S*
|
||||
;
|
||||
namespace_prefix
|
||||
: IDENT
|
||||
;
|
||||
namespace
|
||||
: NAMESPACE_SYM S* [namespace_prefix S*]? [STRING|URI] S* ';' S*
|
||||
;
|
||||
namespace_prefix
|
||||
: IDENT
|
||||
;
|
||||
"""
|
||||
type = property(lambda self: cssrule.CSSRule.NAMESPACE_RULE)
|
||||
|
||||
def __init__(self, namespaceURI=None, prefix=None, cssText=None,
|
||||
parentRule=None, parentStyleSheet=None, readonly=False):
|
||||
"""
|
||||
@ -102,27 +81,31 @@ class CSSNamespaceRule(cssrule.CSSRule):
|
||||
|
||||
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):
|
||||
"""
|
||||
returns serialized property cssText
|
||||
"""
|
||||
"""Return serialized property cssText"""
|
||||
return cssutils.ser.do_CSSNamespaceRule(self)
|
||||
|
||||
def _setCssText(self, cssText):
|
||||
"""
|
||||
DOMException on setting
|
||||
|
||||
:param cssText: initial value for this rules cssText which is parsed
|
||||
:Exceptions:
|
||||
- `HIERARCHY_REQUEST_ERR`: (CSSStylesheet)
|
||||
:exceptions:
|
||||
- :exc:`~xml.dom.HierarchyRequestErr`:
|
||||
Raised if the rule cannot be inserted at this point in the
|
||||
style sheet.
|
||||
- `INVALID_MODIFICATION_ERR`: (self)
|
||||
- :exc:`~xml.dom.InvalidModificationErr`:
|
||||
Raised if the specified CSS string value represents a different
|
||||
type of rule than the current one.
|
||||
- `NO_MODIFICATION_ALLOWED_ERR`: (CSSRule)
|
||||
- :exc:`~xml.dom.NoModificationAllowedErr`:
|
||||
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
|
||||
is unparsable.
|
||||
"""
|
||||
@ -222,15 +205,13 @@ class CSSNamespaceRule(cssrule.CSSRule):
|
||||
self._setSeq(newseq)
|
||||
|
||||
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):
|
||||
"""
|
||||
DOMException on setting
|
||||
|
||||
:param namespaceURI: the initial value for this rules namespaceURI
|
||||
:Exceptions:
|
||||
- `NO_MODIFICATION_ALLOWED_ERR`:
|
||||
:exceptions:
|
||||
- :exc:`~xml.dom.NoModificationAllowedErr`:
|
||||
(CSSRule) Raised if this rule is readonly or a namespaceURI is
|
||||
already set in this rule.
|
||||
"""
|
||||
@ -246,18 +227,16 @@ class CSSNamespaceRule(cssrule.CSSRule):
|
||||
error=xml.dom.NoModificationAllowedErr)
|
||||
|
||||
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):
|
||||
"""
|
||||
DOMException on setting
|
||||
|
||||
:param prefix: the new prefix
|
||||
:Exceptions:
|
||||
- `SYNTAX_ERR`: (TODO)
|
||||
:exceptions:
|
||||
- :exc:`~xml.dom.SyntaxErr`:
|
||||
Raised if the specified CSS string value has a syntax error and
|
||||
is unparsable.
|
||||
- `NO_MODIFICATION_ALLOWED_ERR`: CSSRule)
|
||||
- :exc:`~xml.dom.NoModificationAllowedErr`:
|
||||
Raised if this rule is readonly.
|
||||
"""
|
||||
self._checkReadonly()
|
||||
@ -295,12 +274,9 @@ class CSSNamespaceRule(cssrule.CSSRule):
|
||||
# _setParentStyleSheet,
|
||||
# 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)
|
||||
|
||||
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))
|
||||
|
||||
@ -2,13 +2,13 @@
|
||||
"""
|
||||
__all__ = ['CSSPageRule']
|
||||
__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 cssutils
|
||||
from selectorlist import SelectorList
|
||||
from cssstyledeclaration import CSSStyleDeclaration
|
||||
import xml.dom
|
||||
|
||||
class CSSPageRule(cssrule.CSSRule):
|
||||
"""
|
||||
@ -16,22 +16,7 @@ class CSSPageRule(cssrule.CSSRule):
|
||||
sheet. The @page rule is used to specify the dimensions, orientation,
|
||||
margins, etc. of a page box for paged media.
|
||||
|
||||
Properties
|
||||
==========
|
||||
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
|
||||
======
|
||||
::
|
||||
Format::
|
||||
|
||||
page
|
||||
: PAGE_SYM S* pseudo_page? S*
|
||||
@ -40,20 +25,15 @@ class CSSPageRule(cssrule.CSSRule):
|
||||
pseudo_page
|
||||
: ':' 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,
|
||||
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
|
||||
style
|
||||
:param style:
|
||||
CSSStyleDeclaration for this CSSStyleRule
|
||||
"""
|
||||
super(CSSPageRule, self).__init__(parentRule=parentRule,
|
||||
@ -64,7 +44,7 @@ class CSSPageRule(cssrule.CSSRule):
|
||||
self.selectorText = selectorText
|
||||
tempseq.append(self.selectorText, 'selectorText')
|
||||
else:
|
||||
self._selectorText = u''
|
||||
self._selectorText = self._tempSeq()
|
||||
if style:
|
||||
self.style = style
|
||||
tempseq.append(self.style, 'style')
|
||||
@ -74,20 +54,29 @@ class CSSPageRule(cssrule.CSSRule):
|
||||
|
||||
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):
|
||||
"""
|
||||
parses selectorText which may also be a list of tokens
|
||||
and returns (selectorText, seq)
|
||||
Parse `selectorText` which may also be a list of tokens
|
||||
and returns (selectorText, seq).
|
||||
|
||||
see _setSelectorText for details
|
||||
"""
|
||||
# for closures: must be a mutable
|
||||
new = {'selector': None, 'wellformed': True}
|
||||
new = {'wellformed': True, 'last-S': False}
|
||||
|
||||
def _char(expected, seq, token, tokenizer=None):
|
||||
# pseudo_page, :left, :right or :first
|
||||
val = self._tokenvalue(token)
|
||||
if ':' == expected and u':' == val:
|
||||
if not new['last-S'] and expected in ['page', ': or EOF'] and u':' == val:
|
||||
try:
|
||||
identtoken = tokenizer.next()
|
||||
except StopIteration:
|
||||
@ -100,8 +89,7 @@ class CSSPageRule(cssrule.CSSRule):
|
||||
u'CSSPageRule selectorText: Expected IDENT but found: %r' %
|
||||
ival, token)
|
||||
else:
|
||||
new['selector'] = val + ival
|
||||
seq.append(new['selector'], 'selector')
|
||||
seq.append(val + ival, 'pseudo')
|
||||
return 'EOF'
|
||||
return expected
|
||||
else:
|
||||
@ -112,22 +100,37 @@ class CSSPageRule(cssrule.CSSRule):
|
||||
|
||||
def S(expected, seq, token, tokenizer=None):
|
||||
"Does not raise if EOF is found."
|
||||
if expected == ': or EOF':
|
||||
# pseudo must directly follow IDENT if given
|
||||
new['last-S'] = True
|
||||
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):
|
||||
"Does not raise if EOF is found."
|
||||
seq.append(cssutils.css.CSSComment([token]), 'COMMENT')
|
||||
return expected
|
||||
|
||||
newseq = self._tempSeq()
|
||||
wellformed, expected = self._parse(expected=':',
|
||||
wellformed, expected = self._parse(expected='page',
|
||||
seq=newseq, tokenizer=self._tokenize2(selectorText),
|
||||
productions={'CHAR': _char,
|
||||
'IDENT': IDENT,
|
||||
'COMMENT': COMMENT,
|
||||
'S': S},
|
||||
new=new)
|
||||
wellformed = wellformed and new['wellformed']
|
||||
newselector = new['selector']
|
||||
|
||||
# post conditions
|
||||
if expected == 'ident':
|
||||
@ -135,33 +138,30 @@ class CSSPageRule(cssrule.CSSRule):
|
||||
u'CSSPageRule selectorText: No valid selector: %r' %
|
||||
self._valuestr(selectorText))
|
||||
|
||||
if not newselector in (None, u':first', u':left', u':right'):
|
||||
self._log.warn(u'CSSPageRule: Unknown CSS 2.1 @page selector: %r' %
|
||||
newselector, neverraise=True)
|
||||
# if not newselector in (None, u':first', u':left', u':right'):
|
||||
# self._log.warn(u'CSSPageRule: Unknown CSS 2.1 @page selector: %r' %
|
||||
# newselector, neverraise=True)
|
||||
|
||||
return newselector, newseq
|
||||
return wellformed, newseq
|
||||
|
||||
def _getCssText(self):
|
||||
"""
|
||||
returns serialized property cssText
|
||||
"""
|
||||
"""Return serialized property cssText."""
|
||||
return cssutils.ser.do_CSSPageRule(self)
|
||||
|
||||
def _setCssText(self, cssText):
|
||||
"""
|
||||
DOMException on setting
|
||||
|
||||
- SYNTAX_ERR: (self, StyleDeclaration)
|
||||
Raised if the specified CSS string value has a syntax error and
|
||||
is unparsable.
|
||||
- INVALID_MODIFICATION_ERR: (self)
|
||||
Raised if the specified CSS string value represents a different
|
||||
type of rule than the current one.
|
||||
- HIERARCHY_REQUEST_ERR: (CSSStylesheet)
|
||||
Raised if the rule cannot be inserted at this point in the
|
||||
style sheet.
|
||||
- NO_MODIFICATION_ALLOWED_ERR: (CSSRule)
|
||||
Raised if the rule is readonly.
|
||||
: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.
|
||||
"""
|
||||
super(CSSPageRule, self)._setCssText(cssText)
|
||||
|
||||
@ -190,7 +190,7 @@ class CSSPageRule(cssrule.CSSRule):
|
||||
u'CSSPageRule: Trailing content found.', token=nonetoken)
|
||||
|
||||
|
||||
newselector, newselectorseq = self.__parseSelectorText(selectortokens)
|
||||
wellformed, newselectorseq = self.__parseSelectorText(selectortokens)
|
||||
|
||||
newstyle = CSSStyleDeclaration()
|
||||
val, typ = self._tokenvalue(braceorEOFtoken), self._type(braceorEOFtoken)
|
||||
@ -206,63 +206,49 @@ class CSSPageRule(cssrule.CSSRule):
|
||||
newstyle.cssText = styletokens
|
||||
|
||||
if wellformed:
|
||||
self._selectorText = newselector # already parsed
|
||||
self._selectorText = newselectorseq # already parsed
|
||||
self.style = newstyle
|
||||
self._setSeq(newselectorseq) # contains upto style only
|
||||
|
||||
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):
|
||||
"""
|
||||
wrapper for cssutils Selector object
|
||||
"""
|
||||
return self._selectorText
|
||||
"""Wrapper for cssutils Selector object."""
|
||||
return cssutils.ser.do_CSSPageRuleSelector(self._selectorText)#self._selectorText
|
||||
|
||||
def _setSelectorText(self, selectorText):
|
||||
"""
|
||||
wrapper for cssutils Selector object
|
||||
"""Wrapper for cssutils Selector object.
|
||||
|
||||
selector: DOM String
|
||||
in CSS 2.1 one of
|
||||
:param selectorText:
|
||||
DOM String, in CSS 2.1 one of
|
||||
|
||||
- :first
|
||||
- :left
|
||||
- :right
|
||||
- empty
|
||||
|
||||
If WS or Comments are included they are ignored here! Only
|
||||
way to add a comment is via setting ``cssText``
|
||||
|
||||
DOMException on setting
|
||||
|
||||
- SYNTAX_ERR:
|
||||
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.
|
||||
:exceptions:
|
||||
- :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()
|
||||
|
||||
# may raise SYNTAX_ERR
|
||||
newselectortext, newseq = self.__parseSelectorText(selectorText)
|
||||
|
||||
if newselectortext:
|
||||
for i, x in enumerate(self.seq):
|
||||
if x == self._selectorText:
|
||||
self.seq[i] = newselectortext
|
||||
self._selectorText = newselectortext
|
||||
wellformed, newseq = self.__parseSelectorText(selectorText)
|
||||
if wellformed and newseq:
|
||||
self._selectorText = newseq
|
||||
|
||||
selectorText = property(_getSelectorText, _setSelectorText,
|
||||
doc="""(DOM) The parsable textual representation of the page selector for the rule.""")
|
||||
|
||||
def _getStyle(self):
|
||||
|
||||
return self._style
|
||||
|
||||
def _setStyle(self, style):
|
||||
"""
|
||||
style
|
||||
StyleDeclaration or string
|
||||
:param style:
|
||||
a CSSStyleDeclaration or string
|
||||
"""
|
||||
self._checkReadonly()
|
||||
|
||||
@ -273,14 +259,14 @@ class CSSPageRule(cssrule.CSSRule):
|
||||
# so use seq!
|
||||
self._style._seq = style.seq
|
||||
|
||||
style = property(_getStyle, _setStyle,
|
||||
doc="(DOM) The declaration-block of this rule set.")
|
||||
style = property(lambda self: self._style, _setStyle,
|
||||
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):
|
||||
return "<cssutils.css.%s object selectorText=%r style=%r at 0x%x>" % (
|
||||
self.__class__.__name__, self.selectorText, self.style.cssText,
|
||||
id(self))
|
||||
type = property(lambda self: self.PAGE_RULE,
|
||||
doc="The type of this rule, as defined by a CSSRule "
|
||||
"type constant.")
|
||||
|
||||
# constant but needed:
|
||||
wellformed = property(lambda self: True)
|
||||
|
||||
@ -45,264 +45,16 @@ TODO: CSS2Properties DOMImplementation
|
||||
string for this extended interface listed in this section is "CSS2"
|
||||
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'
|
||||
__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
|
||||
|
||||
"""
|
||||
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):
|
||||
"""
|
||||
The CSS2Properties interface represents a convenience mechanism
|
||||
"""The CSS2Properties interface represents a convenience mechanism
|
||||
for retrieving and setting properties within a CSSStyleDeclaration.
|
||||
The attributes of this interface correspond to all the properties
|
||||
specified in CSS2. Getting an attribute of this interface is
|
||||
@ -325,17 +77,38 @@ class CSS2Properties(object):
|
||||
def _getP(self, CSSname): pass
|
||||
def _setP(self, CSSname, value): 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
|
||||
# used for CSSStyleDeclaration to check if allowed properties
|
||||
# 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:
|
||||
def __named_property_def(DOMname):
|
||||
"""
|
||||
closure to keep name known in each properties accessor function
|
||||
DOMname is converted to CSSname here, so actual calls use CSSname
|
||||
Closure to keep name known in each properties accessor function
|
||||
DOMname is converted to CSSname here, so actual calls use CSSname.
|
||||
"""
|
||||
CSSname = _toCSSname(DOMname)
|
||||
def _get(self): return self._getP(CSSname)
|
||||
|
||||
@ -1,46 +1,17 @@
|
||||
"""CSSRule implements DOM Level 2 CSS CSSRule."""
|
||||
__all__ = ['CSSRule']
|
||||
__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 xml.dom
|
||||
|
||||
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
|
||||
all rules specified in a CSS style sheet, even if the rule is not
|
||||
recognized by the parser. Unrecognized rules are represented using the
|
||||
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
|
||||
:class:`CSSUnknownRule` interface.
|
||||
"""
|
||||
|
||||
"""
|
||||
@ -61,21 +32,8 @@ class CSSRule(cssutils.util.Base2):
|
||||
'MEDIA_RULE', 'FONT_FACE_RULE', 'PAGE_RULE', 'NAMESPACE_RULE',
|
||||
'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):
|
||||
"""
|
||||
set common attributes for all rules
|
||||
"""
|
||||
"""Set common attributes for all rules."""
|
||||
super(CSSRule, self).__init__()
|
||||
self._parentRule = parentRule
|
||||
self._parentStyleSheet = parentStyleSheet
|
||||
@ -83,33 +41,8 @@ class CSSRule(cssutils.util.Base2):
|
||||
# must be set after initialization of #inheriting rule is done
|
||||
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):
|
||||
"""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) ==
|
||||
self._normalize(self.atkeyword)):
|
||||
self._atkeyword = akw
|
||||
@ -119,16 +52,48 @@ class CSSRule(cssutils.util.Base2):
|
||||
error=xml.dom.InvalidModificationErr)
|
||||
|
||||
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,
|
||||
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,
|
||||
doc=u"READONLY")
|
||||
doc="The style sheet that contains this rule.")
|
||||
|
||||
wellformed = property(lambda self: False,
|
||||
doc=u"READONLY")
|
||||
type = property(lambda self: self.UNKNOWN_RULE,
|
||||
doc="The type of this rule, as defined by a CSSRule "
|
||||
"type constant.")
|
||||
|
||||
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.")
|
||||
|
||||
@ -1,16 +1,12 @@
|
||||
"""
|
||||
CSSRuleList implements DOM Level 2 CSS CSSRuleList.
|
||||
|
||||
Partly also
|
||||
* http://dev.w3.org/csswg/cssom/#the-cssrulelist
|
||||
"""CSSRuleList implements DOM Level 2 CSS CSSRuleList.
|
||||
Partly also http://dev.w3.org/csswg/cssom/#the-cssrulelist
|
||||
"""
|
||||
__all__ = ['CSSRuleList']
|
||||
__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):
|
||||
"""
|
||||
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,
|
||||
starting from 0.
|
||||
@ -21,28 +17,20 @@ class CSSRuleList(list):
|
||||
class if so desired.
|
||||
E.g. CSSStyleSheet adds ``append`` which is not available in a simple
|
||||
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):
|
||||
"nothing is set as this must also be defined later"
|
||||
"Nothing is set as this must also be defined later."
|
||||
pass
|
||||
|
||||
def __notimplemented(self, *ignored):
|
||||
"no direct setting possible"
|
||||
"Implemented in class using a CSSRuleList only."
|
||||
raise NotImplementedError(
|
||||
'Must be implemented by class using an instance of this class.')
|
||||
|
||||
append = extend = __setitem__ = __setslice__ = __notimplemented
|
||||
|
||||
def item(self, index):
|
||||
"""
|
||||
(DOM)
|
||||
Used to retrieve a CSS rule by ordinal index. The order in this
|
||||
"""(DOM) Retrieve a CSS rule by ordinal `index`. The order in this
|
||||
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
|
||||
the list, this returns None.
|
||||
|
||||
@ -51,16 +51,15 @@ TODO:
|
||||
"""
|
||||
__all__ = ['CSSStyleDeclaration', 'Property']
|
||||
__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 property import Property
|
||||
import cssutils
|
||||
import xml.dom
|
||||
|
||||
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
|
||||
currently set in a block or to set style properties explicitly
|
||||
within the block.
|
||||
@ -76,24 +75,6 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
|
||||
|
||||
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
|
||||
All properties defined in the CSS2Properties class are available
|
||||
as direct properties of CSSStyleDeclaration with their respective
|
||||
@ -106,33 +87,32 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
|
||||
>>> print style.color
|
||||
green
|
||||
>>> del style.color
|
||||
>>> print style.color # print empty string
|
||||
>>> print style.color
|
||||
<BLANKLINE>
|
||||
|
||||
Format
|
||||
======
|
||||
[Property: Value Priority?;]* [Property: Value Priority?]?
|
||||
Format::
|
||||
|
||||
[Property: Value Priority?;]* [Property: Value Priority?]?
|
||||
"""
|
||||
def __init__(self, cssText=u'', parentRule=None, readonly=False):
|
||||
"""
|
||||
cssText
|
||||
:param cssText:
|
||||
Shortcut, sets CSSStyleDeclaration.cssText
|
||||
parentRule
|
||||
:param parentRule:
|
||||
The CSS rule that contains this declaration block or
|
||||
None if this CSSStyleDeclaration is not attached to a CSSRule.
|
||||
readonly
|
||||
:param readonly:
|
||||
defaults to False
|
||||
"""
|
||||
super(CSSStyleDeclaration, self).__init__()
|
||||
self._parentRule = parentRule
|
||||
#self._seq = self._tempSeq()
|
||||
self.cssText = cssText
|
||||
self._readonly = readonly
|
||||
|
||||
def __contains__(self, nameOrProperty):
|
||||
"""
|
||||
checks if a property (or a property with given name is in style
|
||||
"""Check 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
|
||||
"""
|
||||
if isinstance(nameOrProperty, Property):
|
||||
@ -142,47 +122,12 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
|
||||
return name in self.__nnames()
|
||||
|
||||
def __iter__(self):
|
||||
"""
|
||||
iterator of set Property objects with different normalized names.
|
||||
"""
|
||||
"""Iterator of set Property objects with different normalized names."""
|
||||
def properties():
|
||||
for name in self.__nnames():
|
||||
yield self.getProperty(name)
|
||||
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):
|
||||
"""Retrieve the value of property ``CSSName`` from this declaration.
|
||||
|
||||
@ -211,11 +156,49 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
|
||||
"""
|
||||
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
|
||||
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)``.
|
||||
|
||||
Parameter is in CSSname format ('font-style'), see CSS2Properties.
|
||||
@ -229,9 +212,7 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
|
||||
return self.getPropertyValue(CSSName)
|
||||
|
||||
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)``.
|
||||
|
||||
Only known CSS2Properties may be set this way, otherwise an
|
||||
@ -247,44 +228,40 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
|
||||
>>> style.fontStyle = 'italic'
|
||||
>>> # or
|
||||
>>> style.setProperty('font-style', 'italic', '!important')
|
||||
|
||||
"""
|
||||
self.setProperty(CSSName, value)
|
||||
# TODO: Shorthand ones
|
||||
|
||||
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)``.
|
||||
|
||||
Example::
|
||||
|
||||
>>> style = CSSStyleDeclaration(cssText='font-style:italic;')
|
||||
>>> del style.fontStyle
|
||||
>>> print style.fontStyle # prints u''
|
||||
>>> print style.fontStyle
|
||||
<BLANKLINE>
|
||||
|
||||
"""
|
||||
self.removeProperty(CSSName)
|
||||
|
||||
def _getCssText(self):
|
||||
"""
|
||||
returns serialized property cssText
|
||||
"""
|
||||
"""Return serialized property cssText."""
|
||||
return cssutils.ser.do_css_CSSStyleDeclaration(self)
|
||||
|
||||
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
|
||||
including the removal or addition of properties.
|
||||
|
||||
DOMException on setting
|
||||
|
||||
- NO_MODIFICATION_ALLOWED_ERR: (self)
|
||||
Raised if this declaration is readonly or a property is readonly.
|
||||
- SYNTAX_ERR: (self)
|
||||
Raised if the specified CSS string value has a syntax error and
|
||||
is unparsable.
|
||||
:exceptions:
|
||||
- :exc:`~xml.dom.NoModificationAllowedErr`:
|
||||
Raised if this declaration is readonly or a property is readonly.
|
||||
- :exc:`~xml.dom.SyntaxErr`:
|
||||
Raised if the specified CSS string value has a syntax error and
|
||||
is unparsable.
|
||||
"""
|
||||
self._checkReadonly()
|
||||
tokenizer = self._tokenize2(cssText)
|
||||
@ -336,11 +313,12 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
|
||||
|
||||
def getCssText(self, separator=None):
|
||||
"""
|
||||
returns serialized property cssText, each property separated by
|
||||
given ``separator`` which may e.g. be u'' to be able to use
|
||||
cssText directly in an HTML style attribute. ";" is always part of
|
||||
each property (except the last one) and can **not** be set with
|
||||
separator!
|
||||
:returns:
|
||||
serialized property cssText, each property separated by
|
||||
given `separator` which may e.g. be ``u''`` to be able to use
|
||||
cssText directly in an HTML style attribute. ``;`` is part of
|
||||
each property (except the last one) and **cannot** be set with
|
||||
separator!
|
||||
"""
|
||||
return cssutils.ser.do_css_CSSStyleDeclaration(self, separator)
|
||||
|
||||
@ -351,25 +329,27 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
|
||||
self._parentRule = parentRule
|
||||
|
||||
parentRule = property(_getParentRule, _setParentRule,
|
||||
doc="(DOM) The CSS rule that contains this declaration block or\
|
||||
None if this CSSStyleDeclaration is not attached to a CSSRule.")
|
||||
doc="(DOM) The CSS rule that contains this declaration block or "
|
||||
"None if this CSSStyleDeclaration is not attached to a CSSRule.")
|
||||
|
||||
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
|
||||
optional name of properties which are requested (a filter).
|
||||
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.
|
||||
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
|
||||
stylesheet.
|
||||
:returns:
|
||||
a list of :class:`~cssutils.css.Property` objects set in
|
||||
this declaration.
|
||||
"""
|
||||
if name and not all:
|
||||
# single prop but list
|
||||
@ -394,16 +374,16 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
|
||||
|
||||
def getProperty(self, name, normalize=True):
|
||||
"""
|
||||
Returns the effective Property object.
|
||||
|
||||
name
|
||||
:param name:
|
||||
of the CSS property, always lowercase (even if not normalized)
|
||||
normalize
|
||||
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
|
||||
|
||||
If False may return **NOT** the effective value but the effective
|
||||
for the unnormalized name.
|
||||
If ``False`` may return **NOT** the effective value but the
|
||||
effective for the unnormalized name.
|
||||
:returns:
|
||||
the effective :class:`~cssutils.css.Property` object.
|
||||
"""
|
||||
nname = self._normalize(name)
|
||||
found = None
|
||||
@ -419,17 +399,17 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
|
||||
|
||||
def getPropertyCSSValue(self, name, normalize=True):
|
||||
"""
|
||||
Returns CSSValue, the value of the effective property if it has been
|
||||
explicitly set for this declaration block.
|
||||
|
||||
name
|
||||
:param name:
|
||||
of the CSS property, always lowercase (even if not normalized)
|
||||
normalize
|
||||
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
|
||||
|
||||
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.
|
||||
:returns:
|
||||
:class:`~cssutils.css.CSSValue`, the value of the effective
|
||||
property if it has been explicitly set for this declaration block.
|
||||
|
||||
(DOM)
|
||||
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):
|
||||
"""
|
||||
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.
|
||||
|
||||
name
|
||||
:param name:
|
||||
of the CSS property, always lowercase (even if not normalized)
|
||||
normalize
|
||||
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
|
||||
|
||||
If False may return **NOT** the effective value but the effective
|
||||
for the unnormalized name.
|
||||
If ``False`` may return **NOT** the effective value but the
|
||||
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)
|
||||
if p:
|
||||
@ -482,18 +462,18 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
|
||||
|
||||
def getPropertyPriority(self, name, normalize=True):
|
||||
"""
|
||||
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.
|
||||
|
||||
name
|
||||
:param name:
|
||||
of the CSS property, always lowercase (even if not normalized)
|
||||
normalize
|
||||
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
|
||||
|
||||
If False may return **NOT** the effective value but the effective
|
||||
for the unnormalized name.
|
||||
If ``False`` may return **NOT** the effective value but the
|
||||
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)
|
||||
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
|
||||
this declaration block.
|
||||
|
||||
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
|
||||
|
||||
name
|
||||
:param name:
|
||||
of the CSS property
|
||||
normalize
|
||||
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.
|
||||
The effective Property value is returned and *all* Properties
|
||||
with ``Property.name == name`` are removed.
|
||||
|
||||
If False may return **NOT** the effective value but the effective
|
||||
for the unnormalized ``name`` only. Also only the Properties with
|
||||
the literal name ``name`` are removed.
|
||||
If ``False`` may return **NOT** the effective value but the
|
||||
effective for the unnormalized `name` only. Also only the
|
||||
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)
|
||||
Raised if this declaration is readonly or the property is
|
||||
readonly.
|
||||
:exceptions:
|
||||
- :exc:`~xml.dom.NoModificationAllowedErr`:
|
||||
Raised if this declaration is readonly or the property is
|
||||
readonly.
|
||||
"""
|
||||
self._checkReadonly()
|
||||
r = self.getPropertyValue(name, normalize=normalize)
|
||||
@ -548,41 +528,40 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
|
||||
return r
|
||||
|
||||
def setProperty(self, name, value=None, priority=u'', normalize=True):
|
||||
"""
|
||||
(DOM)
|
||||
Used to set a property value and priority within this declaration
|
||||
"""(DOM) Set a property value and priority within this declaration
|
||||
block.
|
||||
|
||||
name
|
||||
:param name:
|
||||
of the CSS property to set (in W3C DOM the parameter is called
|
||||
"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
|
||||
|
||||
value
|
||||
the new value of the property, omit if name is already a Property
|
||||
priority
|
||||
the optional priority of the property (e.g. "important")
|
||||
normalize
|
||||
if True (DEFAULT) name will be normalized (lowercase, no simple
|
||||
:param value:
|
||||
the new value of the property, ignored if `name` is a Property.
|
||||
:param priority:
|
||||
the optional priority of the property (e.g. "important"),
|
||||
ignored if `name` is a Property.
|
||||
:param normalize:
|
||||
if True (DEFAULT) `name` will be normalized (lowercase, no simple
|
||||
escapes) so "color", "COLOR" or "C\olor" will all be equivalent
|
||||
|
||||
DOMException on setting
|
||||
|
||||
- SYNTAX_ERR: (self)
|
||||
Raised if the specified value has a syntax error and is
|
||||
unparsable.
|
||||
- NO_MODIFICATION_ALLOWED_ERR: (self)
|
||||
Raised if this declaration is readonly or the property is
|
||||
readonly.
|
||||
:exceptions:
|
||||
- :exc:`~xml.dom.SyntaxErr`:
|
||||
Raised if the specified value has a syntax error and is
|
||||
unparsable.
|
||||
- :exc:`~xml.dom.NoModificationAllowedErr`:
|
||||
Raised if this declaration is readonly or the property is
|
||||
readonly.
|
||||
"""
|
||||
self._checkReadonly()
|
||||
|
||||
if isinstance(name, Property):
|
||||
newp = name
|
||||
newp = name
|
||||
name = newp.literalname
|
||||
else:
|
||||
newp = Property(name, value, priority)
|
||||
@ -607,27 +586,26 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
|
||||
self.seq._readonly = True
|
||||
|
||||
def item(self, index):
|
||||
"""
|
||||
(DOM)
|
||||
Used to retrieve the properties that have been explicitly set in
|
||||
"""(DOM) Retrieve the properties that have been explicitly set in
|
||||
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 can be used to iterate over all properties in this
|
||||
declaration block.
|
||||
|
||||
index
|
||||
:param index:
|
||||
of the property to retrieve, negative values behave like
|
||||
negative indexes on Python lists, so -1 is the last element
|
||||
|
||||
returns the name of the property at this ordinal position. The
|
||||
empty string if no property exists at this position.
|
||||
:returns:
|
||||
the name of the property at this ordinal position. The
|
||||
empty string if no property exists at this position.
|
||||
|
||||
ATTENTION:
|
||||
Only properties with a different name are counted. If two
|
||||
**ATTENTION:**
|
||||
Only properties with different names are counted. If two
|
||||
properties with the same name are present in this declaration
|
||||
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())
|
||||
try:
|
||||
@ -636,16 +614,7 @@ class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2):
|
||||
return u''
|
||||
|
||||
length = property(lambda self: len(self.__nnames()),
|
||||
doc="(DOM) The number of distinct properties that have been explicitly\
|
||||
in this declaration block. The range of valid indices is 0 to\
|
||||
length-1 inclusive. These are properties with a different ``name``\
|
||||
only. ``item()`` and ``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))
|
||||
doc="(DOM) The number of distinct properties that have been explicitly "
|
||||
"in this declaration block. The range of valid indices is 0 to "
|
||||
"length-1 inclusive. These are properties with a different ``name`` "
|
||||
"only. :meth:`item` and :attr:`length` work on the same set here.")
|
||||
|
||||
@ -1,49 +1,25 @@
|
||||
"""CSSStyleRule implements DOM Level 2 CSS CSSStyleRule.
|
||||
"""
|
||||
"""CSSStyleRule implements DOM Level 2 CSS CSSStyleRule."""
|
||||
__all__ = ['CSSStyleRule']
|
||||
__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 cssutils
|
||||
from selectorlist import SelectorList
|
||||
from cssstyledeclaration import CSSStyleDeclaration
|
||||
import xml.dom
|
||||
|
||||
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
|
||||
associated group of selectors.
|
||||
|
||||
Properties
|
||||
==========
|
||||
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::
|
||||
Format::
|
||||
|
||||
: selector [ COMMA S* selector ]*
|
||||
LBRACE S* declaration [ ';' S* declaration ]* '}' S*
|
||||
;
|
||||
"""
|
||||
type = property(lambda self: cssrule.CSSRule.STYLE_RULE)
|
||||
|
||||
def __init__(self, selectorText=None, style=None, parentRule=None,
|
||||
parentStyleSheet=None, readonly=False):
|
||||
"""
|
||||
@ -67,31 +43,41 @@ class CSSStyleRule(cssrule.CSSRule):
|
||||
|
||||
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):
|
||||
"""
|
||||
returns serialized property cssText
|
||||
"""
|
||||
"""Return serialized property cssText."""
|
||||
return cssutils.ser.do_CSSStyleRule(self)
|
||||
|
||||
def _setCssText(self, cssText):
|
||||
"""
|
||||
:param cssText:
|
||||
a parseable string or a tuple of (cssText, dict-of-namespaces)
|
||||
:Exceptions:
|
||||
- `NAMESPACE_ERR`: (Selector)
|
||||
:exceptions:
|
||||
- :exc:`~xml.dom.NamespaceErr`:
|
||||
Raised if the specified selector uses an unknown namespace
|
||||
prefix.
|
||||
- `SYNTAX_ERR`: (self, StyleDeclaration, etc)
|
||||
- :exc:`~xml.dom.SyntaxErr`:
|
||||
Raised if the specified CSS string value has a syntax error and
|
||||
is unparsable.
|
||||
- `INVALID_MODIFICATION_ERR`: (self)
|
||||
- :exc:`~xml.dom.InvalidModificationErr`:
|
||||
Raised if the specified CSS string value represents a different
|
||||
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
|
||||
style sheet.
|
||||
- `NO_MODIFICATION_ALLOWED_ERR`: (CSSRule)
|
||||
- :exc:`~xml.dom.NoModificationAllowedErr`:
|
||||
Raised if the rule is readonly.
|
||||
"""
|
||||
super(CSSStyleRule, self)._setCssText(cssText)
|
||||
@ -160,20 +146,21 @@ class CSSStyleRule(cssrule.CSSRule):
|
||||
self.style = newstyle
|
||||
|
||||
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):
|
||||
"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:
|
||||
return self.parentStyleSheet.namespaces
|
||||
except AttributeError:
|
||||
return self.selectorList._namespaces
|
||||
|
||||
_namespaces = property(__getNamespaces, doc=u"""if this Rule is
|
||||
attached to a CSSStyleSheet the namespaces of that sheet are mirrored
|
||||
here. While the Rule is not attached the namespaces of selectorList
|
||||
are used.""")
|
||||
_namespaces = property(__getNamespaces,
|
||||
doc="If this Rule is attached to a CSSStyleSheet "
|
||||
"the namespaces of that sheet are mirrored "
|
||||
"here. While the Rule is not attached the "
|
||||
"namespaces of selectorList are used.""")
|
||||
|
||||
def _setSelectorList(self, selectorList):
|
||||
"""
|
||||
@ -190,16 +177,17 @@ class CSSStyleRule(cssrule.CSSRule):
|
||||
"""
|
||||
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
|
||||
:Exceptions:
|
||||
- `NAMESPACE_ERR`: (Selector)
|
||||
:exceptions:
|
||||
- :exc:`~xml.dom.NamespaceErr`:
|
||||
Raised if the specified selector uses an unknown namespace
|
||||
prefix.
|
||||
- `SYNTAX_ERR`: (SelectorList, Selector)
|
||||
- :exc:`~xml.dom.SyntaxErr`:
|
||||
Raised if the specified CSS string value has a syntax error
|
||||
and is unparsable.
|
||||
- `NO_MODIFICATION_ALLOWED_ERR`: (self)
|
||||
- :exc:`~xml.dom.NoModificationAllowedErr`:
|
||||
Raised if this rule is readonly.
|
||||
"""
|
||||
self._checkReadonly()
|
||||
@ -207,8 +195,8 @@ class CSSStyleRule(cssrule.CSSRule):
|
||||
|
||||
selectorText = property(lambda self: self._selectorList.selectorText,
|
||||
_setSelectorText,
|
||||
doc="""(DOM) The textual representation of the selector for the
|
||||
rule set.""")
|
||||
doc="(DOM) The textual representation of the "
|
||||
"selector for the rule set.")
|
||||
|
||||
def _setStyle(self, style):
|
||||
"""
|
||||
@ -224,19 +212,10 @@ class CSSStyleRule(cssrule.CSSRule):
|
||||
self._style._seq = style._seq
|
||||
|
||||
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)
|
||||
|
||||
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))
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
"""
|
||||
CSSStyleSheet implements DOM Level 2 CSS CSSStyleSheet.
|
||||
"""CSSStyleSheet implements DOM Level 2 CSS CSSStyleSheet.
|
||||
|
||||
Partly also:
|
||||
- http://dev.w3.org/csswg/cssom/#the-cssstylesheet
|
||||
@ -10,53 +9,32 @@ TODO:
|
||||
"""
|
||||
__all__ = ['CSSStyleSheet']
|
||||
__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.util import _Namespaces, _SimpleNamespaces, _readUrl
|
||||
import cssutils.stylesheets
|
||||
import xml.dom
|
||||
|
||||
class CSSStyleSheet(cssutils.stylesheets.StyleSheet):
|
||||
"""
|
||||
The CSSStyleSheet interface represents a CSS style sheet.
|
||||
"""CSSStyleSheet represents a CSS style sheet.
|
||||
|
||||
Properties
|
||||
==========
|
||||
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.
|
||||
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]* ]*
|
||||
|
||||
Inherits properties from stylesheet.StyleSheet
|
||||
|
||||
cssutils
|
||||
--------
|
||||
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]* ]*
|
||||
``cssRules``
|
||||
All Rules in this style sheet, a :class:`~cssutils.css.CSSRuleList`.
|
||||
"""
|
||||
def __init__(self, href=None, media=None, title=u'', disabled=None,
|
||||
ownerNode=None, parentStyleSheet=None, readonly=False,
|
||||
ownerRule=None):
|
||||
"""
|
||||
init parameters are the same as for stylesheets.StyleSheet
|
||||
For parameters see :class:`~cssutils.stylesheets.StyleSheet`
|
||||
"""
|
||||
super(CSSStyleSheet, self).__init__(
|
||||
'text/css', href, media, title, disabled,
|
||||
@ -74,12 +52,32 @@ class CSSStyleSheet(cssutils.stylesheets.StyleSheet):
|
||||
self._fetcher = None
|
||||
|
||||
def __iter__(self):
|
||||
"generator which iterates over cssRules."
|
||||
"Generator which iterates over cssRules."
|
||||
for rule in self.cssRules:
|
||||
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):
|
||||
"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
|
||||
namespaceitems = self.namespaces.items()
|
||||
i = 0
|
||||
@ -92,7 +90,7 @@ class CSSStyleSheet(cssutils.stylesheets.StyleSheet):
|
||||
i += 1
|
||||
|
||||
def _getUsedURIs(self):
|
||||
"returns set of URIs used in the sheet"
|
||||
"Return set of URIs used in the sheet."
|
||||
useduris = set()
|
||||
for r1 in self:
|
||||
if r1.STYLE_RULE == r1.type:
|
||||
@ -104,21 +102,20 @@ class CSSStyleSheet(cssutils.stylesheets.StyleSheet):
|
||||
return useduris
|
||||
|
||||
def _getCssText(self):
|
||||
"Textual representation of the stylesheet (a byte string)."
|
||||
return cssutils.ser.do_CSSStyleSheet(self)
|
||||
|
||||
def _setCssText(self, cssText):
|
||||
"""
|
||||
(cssutils)
|
||||
Parses ``cssText`` and overwrites the whole stylesheet.
|
||||
"""Parse `cssText` and overwrites the whole stylesheet.
|
||||
|
||||
:param cssText:
|
||||
a parseable string or a tuple of (cssText, dict-of-namespaces)
|
||||
:Exceptions:
|
||||
- `NAMESPACE_ERR`:
|
||||
:exceptions:
|
||||
- :exc:`~xml.dom.NamespaceErr`:
|
||||
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.
|
||||
- `SYNTAX_ERR`:
|
||||
- :exc:`~xml.dom.SyntaxErr`:
|
||||
Raised if the specified CSS string value has a syntax error and
|
||||
is unparsable.
|
||||
"""
|
||||
@ -269,10 +266,10 @@ class CSSStyleSheet(cssutils.stylesheets.StyleSheet):
|
||||
self._cleanNamespaces()
|
||||
|
||||
cssText = property(_getCssText, _setCssText,
|
||||
"(cssutils) a textual representation of the stylesheet")
|
||||
"Textual representation of the stylesheet (a byte string)")
|
||||
|
||||
def _resolveImport(self, url):
|
||||
"""Read (encoding, enctype, decodedContent) from ``url`` for @import
|
||||
"""Read (encoding, enctype, decodedContent) from `url` for @import
|
||||
sheets."""
|
||||
try:
|
||||
# only available during parse of a complete sheet
|
||||
@ -289,12 +286,12 @@ class CSSStyleSheet(cssutils.stylesheets.StyleSheet):
|
||||
overrideEncoding=self.__encodingOverride,
|
||||
parentEncoding=selfAsParentEncoding)
|
||||
|
||||
def _setCssTextWithEncodingOverride(self, cssText, encodingOverride=None,
|
||||
def _setCssTextWithEncodingOverride(self, cssText, encodingOverride=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.
|
||||
|
||||
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:
|
||||
# encoding during resolving of @import
|
||||
self.__encodingOverride = encodingOverride
|
||||
@ -312,14 +309,14 @@ class CSSStyleSheet(cssutils.stylesheets.StyleSheet):
|
||||
self.encoding = encoding
|
||||
|
||||
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
|
||||
|
||||
def _setEncoding(self, encoding):
|
||||
"""
|
||||
sets encoding of charset rule if present or inserts new charsetrule
|
||||
with given encoding. If encoding if None removes charsetrule if
|
||||
present.
|
||||
"""Set `encoding` of charset rule if present in sheet or insert a new
|
||||
:class:`~cssutils.css.CSSCharsetRule` with given `encoding`.
|
||||
If `encoding` is None removes charsetrule if present resulting in
|
||||
default encoding of utf-8.
|
||||
"""
|
||||
try:
|
||||
rule = self.cssRules[0]
|
||||
@ -334,41 +331,41 @@ class CSSStyleSheet(cssutils.stylesheets.StyleSheet):
|
||||
self.insertRule(cssutils.css.CSSCharsetRule(encoding=encoding), 0)
|
||||
|
||||
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:
|
||||
return self.cssRules[0].encoding
|
||||
except (IndexError, AttributeError):
|
||||
return 'utf-8'
|
||||
|
||||
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,
|
||||
doc="Namespaces used in this CSSStyleSheet.")
|
||||
doc="All Namespaces used in this CSSStyleSheet.")
|
||||
|
||||
def add(self, rule):
|
||||
"""
|
||||
Adds rule to stylesheet at appropriate position.
|
||||
Same as ``sheet.insertRule(rule, inOrder=True)``.
|
||||
"""Add `rule` to style sheet at appropriate position.
|
||||
Same as ``insertRule(rule, inOrder=True)``.
|
||||
"""
|
||||
return self.insertRule(rule, index=None, inOrder=True)
|
||||
|
||||
def deleteRule(self, index):
|
||||
"""
|
||||
Used to delete a rule from the style sheet.
|
||||
"""Delete rule at `index` from the style sheet.
|
||||
|
||||
:param index:
|
||||
of the rule to remove in the StyleSheet's rule list. For an
|
||||
index < 0 **no** INDEX_SIZE_ERR is raised but rules for
|
||||
normal Python lists are used. E.g. ``deleteRule(-1)`` removes
|
||||
the last rule in cssRules.
|
||||
:Exceptions:
|
||||
- `INDEX_SIZE_ERR`: (self)
|
||||
`index` < 0 **no** :exc:`~xml.dom.IndexSizeErr` is raised but
|
||||
rules for normal Python lists are used. E.g. ``deleteRule(-1)``
|
||||
removes the last rule in cssRules.
|
||||
:exceptions:
|
||||
- :exc:`~xml.dom.IndexSizeErr`:
|
||||
Raised if the specified index does not correspond to a rule in
|
||||
the style sheet's rule list.
|
||||
- `NAMESPACE_ERR`: (self)
|
||||
- :exc:`~xml.dom.NamespaceErr`:
|
||||
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.
|
||||
"""
|
||||
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
|
||||
becomes part of the cascade.
|
||||
|
||||
:Parameters:
|
||||
rule
|
||||
a parsable DOMString, in cssutils also a CSSRule or a
|
||||
CSSRuleList
|
||||
index
|
||||
of the rule before the new rule will be inserted.
|
||||
If the specified index is equal to the length of the
|
||||
StyleSheet's rule collection, the rule will be added to the end
|
||||
of the style sheet.
|
||||
If index is not given or None rule will be appended to rule
|
||||
list.
|
||||
inOrder
|
||||
if True the rule will be put to a proper location while
|
||||
ignoring index but without raising HIERARCHY_REQUEST_ERR.
|
||||
The resulting index is returned nevertheless
|
||||
:returns: the index within the stylesheet's rule collection
|
||||
:param rule:
|
||||
a parsable DOMString, in cssutils also a
|
||||
:class:`~cssutils.css.CSSRule` or :class:`~cssutils.css.CSSRuleList`
|
||||
:param index:
|
||||
of the rule before the new rule will be inserted.
|
||||
If the specified `index` is equal to the length of the
|
||||
StyleSheet's rule collection, the rule will be added to the end
|
||||
of the style sheet.
|
||||
If `index` is not given or ``None`` rule will be appended to rule
|
||||
list.
|
||||
:param inOrder:
|
||||
if ``True`` the rule will be put to a proper location while
|
||||
ignoring `index` and without raising :exc:`~xml.dom.HierarchyRequestErr`.
|
||||
The resulting index is returned nevertheless.
|
||||
:returns: The index within the style sheet's rule collection
|
||||
:Exceptions:
|
||||
- `HIERARCHY_REQUEST_ERR`: (self)
|
||||
Raised if the rule cannot be inserted at the specified index
|
||||
- :exc:`~xml.dom.HierarchyRequestErr`:
|
||||
Raised if the rule cannot be inserted at the specified `index`
|
||||
e.g. if an @import rule is inserted after a standard rule set
|
||||
or other at-rule.
|
||||
- `INDEX_SIZE_ERR`: (self)
|
||||
Raised if the specified index is not a valid insertion point.
|
||||
- `NO_MODIFICATION_ALLOWED_ERR`: (self)
|
||||
- :exc:`~xml.dom.IndexSizeErr`:
|
||||
Raised if the specified `index` is not a valid insertion point.
|
||||
- :exc:`~xml.dom.NoModificationAllowedErr`:
|
||||
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
|
||||
unparsable.
|
||||
"""
|
||||
@ -618,57 +614,18 @@ class CSSStyleSheet(cssutils.stylesheets.StyleSheet):
|
||||
return index
|
||||
|
||||
ownerRule = property(lambda self: self._ownerRule,
|
||||
doc="(DOM attribute) NOT IMPLEMENTED YET")
|
||||
|
||||
@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)
|
||||
doc="A ref to an @import rule if it is imported, else ``None``.")
|
||||
|
||||
def setSerializer(self, cssserializer):
|
||||
"""
|
||||
Sets the global Serializer used for output of all stylesheet
|
||||
output.
|
||||
"""
|
||||
"""Set the cssutils global Serializer used for all output."""
|
||||
if isinstance(cssserializer, cssutils.CSSSerializer):
|
||||
cssutils.ser = cssserializer
|
||||
else:
|
||||
raise ValueError(u'Serializer must be an instance of cssutils.CSSSerializer.')
|
||||
|
||||
def setSerializerPref(self, pref, value):
|
||||
"""
|
||||
Sets Preference of CSSSerializer used for output of this
|
||||
stylesheet. See cssutils.serialize.Preferences for possible
|
||||
"""Set a Preference of CSSSerializer used for output.
|
||||
See :class:`cssutils.serialize.Preferences` for possible
|
||||
preferences to be set.
|
||||
"""
|
||||
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))
|
||||
|
||||
@ -1,44 +1,25 @@
|
||||
"""CSSUnknownRule implements DOM Level 2 CSS CSSUnknownRule.
|
||||
"""
|
||||
"""CSSUnknownRule implements DOM Level 2 CSS CSSUnknownRule."""
|
||||
__all__ = ['CSSUnknownRule']
|
||||
__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 cssutils
|
||||
import xml.dom
|
||||
|
||||
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
|
||||
==========
|
||||
inherited from CSSRule
|
||||
- cssText
|
||||
- type
|
||||
Format::
|
||||
|
||||
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 {...}
|
||||
"""
|
||||
type = property(lambda self: cssrule.CSSRule.UNKNOWN_RULE)
|
||||
|
||||
def __init__(self, cssText=u'', parentRule=None,
|
||||
parentStyleSheet=None, readonly=False):
|
||||
"""
|
||||
cssText
|
||||
:param cssText:
|
||||
of type string
|
||||
"""
|
||||
super(CSSUnknownRule, self).__init__(parentRule=parentRule,
|
||||
@ -49,25 +30,32 @@ class CSSUnknownRule(cssrule.CSSRule):
|
||||
|
||||
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):
|
||||
""" returns serialized property cssText """
|
||||
"""Return serialized property cssText."""
|
||||
return cssutils.ser.do_CSSUnknownRule(self)
|
||||
|
||||
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: (never raised)
|
||||
Raised if the rule cannot be inserted at this point in the
|
||||
style sheet.
|
||||
- NO_MODIFICATION_ALLOWED_ERR: (CSSRule)
|
||||
Raised if the rule is readonly.
|
||||
: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.
|
||||
"""
|
||||
super(CSSUnknownRule, self)._setCssText(cssText)
|
||||
tokenizer = self._tokenize2(cssText)
|
||||
@ -197,12 +185,9 @@ class CSSUnknownRule(cssrule.CSSRule):
|
||||
cssText = property(fget=_getCssText, fset=_setCssText,
|
||||
doc="(DOM) The parsable textual representation.")
|
||||
|
||||
wellformed = property(lambda self: bool(self.atkeyword))
|
||||
type = property(lambda self: self.UNKNOWN_RULE,
|
||||
doc="The type of this rule, as defined by a CSSRule "
|
||||
"type constant.")
|
||||
|
||||
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))
|
||||
wellformed = property(lambda self: bool(self.atkeyword))
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,55 +1,18 @@
|
||||
"""Property is a single CSS property in a CSSStyleDeclaration
|
||||
|
||||
Internal use only, may be removed in the future!
|
||||
"""
|
||||
"""Property is a single CSS property in a CSSStyleDeclaration."""
|
||||
__all__ = ['Property']
|
||||
__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
|
||||
import cssutils
|
||||
#import cssproperties
|
||||
from cssutils.helper import Deprecated
|
||||
from cssutils.profiles import profiles
|
||||
from cssvalue import CSSValue
|
||||
from cssutils.helper import Deprecated
|
||||
import cssutils
|
||||
import xml.dom
|
||||
|
||||
class Property(cssutils.util.Base):
|
||||
"""
|
||||
(cssutils) a CSS property in a StyleDeclaration of a CSSStyleRule
|
||||
"""A CSS property in a StyleDeclaration of a CSSStyleRule (cssutils).
|
||||
|
||||
Properties
|
||||
==========
|
||||
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
|
||||
======
|
||||
::
|
||||
Format::
|
||||
|
||||
property = name
|
||||
: 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
|
||||
|
||||
name
|
||||
:param name:
|
||||
a property name string (will be normalized)
|
||||
value
|
||||
:param value:
|
||||
a property value string
|
||||
priority
|
||||
:param priority:
|
||||
an optional priority string which currently must be u'',
|
||||
u'!important' or u'important'
|
||||
_mediaQuery boolean
|
||||
if True value is optional as used by MediaQuery objects
|
||||
:param _mediaQuery:
|
||||
if ``True`` value is optional (used by MediaQuery)
|
||||
:param _parent:
|
||||
the parent object, normally a
|
||||
:class:`cssutils.css.CSSStyleDeclaration`
|
||||
"""
|
||||
super(Property, self).__init__()
|
||||
|
||||
self.seqs = [[], None, []]
|
||||
self.valid = False
|
||||
self.wellformed = False
|
||||
self._mediaQuery = _mediaQuery
|
||||
self._parent = _parent
|
||||
|
||||
self._name = u''
|
||||
self._literalname = u''
|
||||
if name:
|
||||
self.name = name
|
||||
else:
|
||||
self._name = u''
|
||||
self._literalname = u''
|
||||
self.__normalname = u'' # DEPRECATED
|
||||
|
||||
if value:
|
||||
self.cssValue = value
|
||||
else:
|
||||
self.seqs[1] = CSSValue()
|
||||
|
||||
self._priority = u''
|
||||
self._literalpriority = u''
|
||||
if priority:
|
||||
self.priority = priority
|
||||
else:
|
||||
self._priority = u''
|
||||
self._literalpriority = u''
|
||||
|
||||
def __repr__(self):
|
||||
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):
|
||||
"""
|
||||
returns serialized property cssText
|
||||
"""
|
||||
"""Return serialized property cssText."""
|
||||
return cssutils.ser.do_Property(self)
|
||||
|
||||
def _setCssText(self, cssText):
|
||||
"""
|
||||
DOMException on setting
|
||||
|
||||
- NO_MODIFICATION_ALLOWED_ERR: (CSSRule)
|
||||
Raised if the rule is readonly.
|
||||
- SYNTAX_ERR: (self)
|
||||
Raised if the specified CSS string value has a syntax error and
|
||||
is unparsable.
|
||||
:exceptions:
|
||||
- :exc:`~xml.dom.SyntaxErr`:
|
||||
Raised if the specified CSS string value has a syntax error and
|
||||
is unparsable.
|
||||
- :exc:`~xml.dom.NoModificationAllowedErr`:
|
||||
Raised if the rule is readonly.
|
||||
"""
|
||||
# check and prepare tokenlists for setting
|
||||
tokenizer = self._tokenize2(cssText)
|
||||
@ -174,11 +144,14 @@ class Property(cssutils.util.Base):
|
||||
self._log.error(u'Property: No property value found: %r.' %
|
||||
self._valuestr(cssText), colontoken)
|
||||
|
||||
if wellformed:
|
||||
if wellformed:
|
||||
self.wellformed = True
|
||||
self.name = nametokens
|
||||
self.cssValue = valuetokens
|
||||
self.priority = prioritytokens
|
||||
|
||||
# also invalid values are set!
|
||||
self.validate()
|
||||
|
||||
else:
|
||||
self._log.error(u'Property: No property name found: %r.' %
|
||||
@ -189,11 +162,10 @@ class Property(cssutils.util.Base):
|
||||
|
||||
def _setName(self, name):
|
||||
"""
|
||||
DOMException on setting
|
||||
|
||||
- SYNTAX_ERR: (self)
|
||||
Raised if the specified name has a syntax error and is
|
||||
unparsable.
|
||||
:exceptions:
|
||||
- :exc:`~xml.dom.SyntaxErr`:
|
||||
Raised if the specified name has a syntax error and is
|
||||
unparsable.
|
||||
"""
|
||||
# for closures: must be a mutable
|
||||
new = {'literalname': None,
|
||||
@ -233,43 +205,42 @@ class Property(cssutils.util.Base):
|
||||
self.wellformed = True
|
||||
self._literalname = new['literalname']
|
||||
self._name = self._normalize(self._literalname)
|
||||
self.__normalname = self._name # DEPRECATED
|
||||
self.seqs[0] = newseq
|
||||
|
||||
# validate
|
||||
if self._name not in profiles.propertiesByProfile():
|
||||
self.valid = False
|
||||
tokenizer=self._tokenize2(name)
|
||||
self._log.warn(u'Property: Unknown Property: %r.' %
|
||||
new['literalname'], token=token, neverraise=True)
|
||||
# # validate
|
||||
if self._name not in profiles.knownnames:
|
||||
# self.valid = False
|
||||
self._log.warn(u'Property: Unknown Property.',
|
||||
token=token, neverraise=True)
|
||||
else:
|
||||
self.valid = True
|
||||
if self.cssValue:
|
||||
self.cssValue._propertyName = self._name
|
||||
self.valid = self.cssValue.valid
|
||||
pass
|
||||
# self.valid = True
|
||||
# if self.cssValue:
|
||||
# self.cssValue._propertyName = self._name
|
||||
# #self.valid = self.cssValue.valid
|
||||
else:
|
||||
self.wellformed = False
|
||||
|
||||
name = property(lambda self: self._name, _setName,
|
||||
doc="Name of this property")
|
||||
|
||||
doc="Name of this property.")
|
||||
|
||||
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):
|
||||
return self.seqs[1]
|
||||
|
||||
def _setCSSValue(self, cssText):
|
||||
"""
|
||||
see css.CSSValue
|
||||
See css.CSSValue
|
||||
|
||||
DOMException on setting?
|
||||
|
||||
- SYNTAX_ERR: (self)
|
||||
:exceptions:
|
||||
- :exc:`~xml.dom.SyntaxErr`:
|
||||
Raised if the specified CSS string value has a syntax error
|
||||
(according to the attached property) or is unparsable.
|
||||
- TODO: INVALID_MODIFICATION_ERR:
|
||||
Raised if the specified CSS string value represents a different
|
||||
- :exc:`~xml.dom.InvalidModificationErr`:
|
||||
TODO: Raised if the specified CSS string value represents a different
|
||||
type of values than the values allowed by the CSS property.
|
||||
"""
|
||||
if self._mediaQuery and not cssText:
|
||||
@ -279,25 +250,24 @@ class Property(cssutils.util.Base):
|
||||
self.seqs[1] = CSSValue()
|
||||
|
||||
cssvalue = self.seqs[1]
|
||||
cssvalue._propertyName = self.name
|
||||
cssvalue.cssText = cssText
|
||||
if cssvalue._value and cssvalue.wellformed:
|
||||
if cssvalue.wellformed: #cssvalue._value and
|
||||
self.seqs[1] = cssvalue
|
||||
self.valid = self.valid and cssvalue.valid
|
||||
self.wellformed = self.wellformed and cssvalue.wellformed
|
||||
|
||||
cssValue = property(_getCSSValue, _setCSSValue,
|
||||
doc="(cssutils) CSSValue object of this property")
|
||||
|
||||
|
||||
def _getValue(self):
|
||||
if self.cssValue:
|
||||
return self.cssValue._value
|
||||
return self.cssValue.cssText # _value # [0]
|
||||
else:
|
||||
return u''
|
||||
|
||||
def _setValue(self, 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
|
||||
|
||||
value = property(_getValue, _setValue,
|
||||
@ -308,9 +278,7 @@ class Property(cssutils.util.Base):
|
||||
priority
|
||||
a string, currently either u'', u'!important' or u'important'
|
||||
|
||||
Format
|
||||
======
|
||||
::
|
||||
Format::
|
||||
|
||||
prio
|
||||
: IMPORTANT_SYM S*
|
||||
@ -318,14 +286,13 @@ class Property(cssutils.util.Base):
|
||||
|
||||
"!"{w}"important" {return IMPORTANT_SYM;}
|
||||
|
||||
DOMException on setting
|
||||
|
||||
- SYNTAX_ERR: (self)
|
||||
Raised if the specified priority has a syntax error and is
|
||||
unparsable.
|
||||
In this case a priority not equal to None, "" or "!{w}important".
|
||||
As CSSOM defines CSSStyleDeclaration.getPropertyPriority resulting in
|
||||
u'important' this value is also allowed to set a Properties priority
|
||||
:exceptions:
|
||||
- :exc:`~xml.dom.SyntaxErr`:
|
||||
Raised if the specified priority has a syntax error and is
|
||||
unparsable.
|
||||
In this case a priority not equal to None, "" or "!{w}important".
|
||||
As CSSOM defines CSSStyleDeclaration.getPropertyPriority resulting in
|
||||
u'important' this value is also allowed to set a Properties priority
|
||||
"""
|
||||
if self._mediaQuery:
|
||||
self._priority = u''
|
||||
@ -356,8 +323,7 @@ class Property(cssutils.util.Base):
|
||||
def _ident(expected, seq, token, tokenizer=None):
|
||||
# "important"
|
||||
val = self._tokenvalue(token)
|
||||
normalval = self._tokenvalue(token, normalize=True)
|
||||
if 'important' == expected == normalval:
|
||||
if 'important' == expected:
|
||||
new['literalpriority'] = val
|
||||
seq.append(val)
|
||||
return 'EOF'
|
||||
@ -378,38 +344,66 @@ class Property(cssutils.util.Base):
|
||||
if priority and not new['literalpriority']:
|
||||
wellformed = False
|
||||
self._log.info(u'Property: Invalid priority: %r.' %
|
||||
self._valuestr(priority))
|
||||
self._valuestr(priority))
|
||||
|
||||
if wellformed:
|
||||
self.wellformed = self.wellformed and wellformed
|
||||
self._literalpriority = new['literalpriority']
|
||||
self._priority = self._normalize(self.literalpriority)
|
||||
self.seqs[2] = newseq
|
||||
|
||||
# validate
|
||||
# validate priority
|
||||
if self._priority not in (u'', u'important'):
|
||||
self.valid = False
|
||||
self._log.info(u'Property: No CSS2 priority value: %r.' %
|
||||
self._priority, neverraise=True)
|
||||
self._log.error(u'Property: No CSS priority value: %r.' %
|
||||
self._priority)
|
||||
|
||||
priority = property(lambda self: self._priority, _setPriority,
|
||||
doc="(cssutils) Priority of this property")
|
||||
doc="Priority of this property.")
|
||||
|
||||
literalpriority = property(lambda self: self._literalpriority,
|
||||
doc="Readonly literal (not normalized) priority of this property")
|
||||
|
||||
def __repr__(self):
|
||||
return "cssutils.css.%s(name=%r, value=%r, priority=%r)" % (
|
||||
self.__class__.__name__,
|
||||
self.literalname, self.cssValue.cssText, self.priority)
|
||||
def validate(self, profile=None):
|
||||
"""Validate value against `profile`.
|
||||
|
||||
:param profile:
|
||||
A profile name used for validating. If no `profile` is given
|
||||
``Property.profiles
|
||||
"""
|
||||
valid = False
|
||||
|
||||
if self.name and self.value:
|
||||
if profile is None:
|
||||
usedprofile = cssutils.profiles.defaultprofile
|
||||
else:
|
||||
usedprofile = profile
|
||||
|
||||
if self.name in profiles.knownnames:
|
||||
valid, validprofiles = profiles.validateWithProfile(self.name,
|
||||
self.value,
|
||||
usedprofile)
|
||||
|
||||
def __str__(self):
|
||||
return "<%s.%s object name=%r value=%r priority=%r at 0x%x>" % (
|
||||
self.__class__.__module__, self.__class__.__name__,
|
||||
self.name, self.cssValue.cssText, self.priority, id(self))
|
||||
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
|
||||
|
||||
@Deprecated(u'Use property ``name`` instead (since cssutils 0.9.5).')
|
||||
def _getNormalname(self):
|
||||
return self.__normalname
|
||||
normalname = property(_getNormalname,
|
||||
doc="DEPRECATED since 0.9.5, use name instead")
|
||||
return valid
|
||||
|
||||
valid = property(validate, doc="Check if value of this property is valid "
|
||||
"in the properties context.")
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
"""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
|
||||
- .contains(selector)
|
||||
@ -9,45 +7,18 @@ TODO
|
||||
"""
|
||||
__all__ = ['Selector']
|
||||
__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
|
||||
import cssutils
|
||||
import xml.dom
|
||||
|
||||
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
|
||||
==========
|
||||
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
|
||||
======
|
||||
::
|
||||
Format::
|
||||
|
||||
# implemented in SelectorList
|
||||
selectors_group
|
||||
@ -150,14 +121,46 @@ class Selector(cssutils.util.Base2):
|
||||
|
||||
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):
|
||||
"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:
|
||||
return self._parent.parentRule.parentStyleSheet.namespaces
|
||||
except AttributeError:
|
||||
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.
|
||||
While the Selector (or parent SelectorList or parentRule(s) of that are
|
||||
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.")
|
||||
|
||||
def _getSelectorText(self):
|
||||
"""
|
||||
returns serialized format
|
||||
"""
|
||||
"""Return serialized format."""
|
||||
return cssutils.ser.do_css_Selector(self)
|
||||
|
||||
def _setSelectorText(self, selectorText):
|
||||
@ -183,14 +184,14 @@ class Selector(cssutils.util.Base2):
|
||||
Given namespaces are ignored if this object is attached to a
|
||||
CSSStyleSheet!
|
||||
|
||||
:Exceptions:
|
||||
- `NAMESPACE_ERR`: (self)
|
||||
:exceptions:
|
||||
- :exc:`~xml.dom.NamespaceErr`:
|
||||
Raised if the specified selector uses an unknown namespace
|
||||
prefix.
|
||||
- `SYNTAX_ERR`: (self)
|
||||
- :exc:`~xml.dom.SyntaxErr`:
|
||||
Raised if the specified CSS string value has a syntax error
|
||||
and is unparsable.
|
||||
- `NO_MODIFICATION_ALLOWED_ERR`: (self)
|
||||
- :exc:`~xml.dom.NoModificationAllowedErr`:
|
||||
Raised if this rule is readonly.
|
||||
"""
|
||||
self._checkReadonly()
|
||||
@ -763,38 +764,17 @@ class Selector(cssutils.util.Base2):
|
||||
|
||||
|
||||
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)))
|
||||
|
||||
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
|
||||
|
||||
@ -17,37 +17,18 @@ TODO
|
||||
"""
|
||||
__all__ = ['SelectorList']
|
||||
__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
|
||||
import cssutils
|
||||
import xml.dom
|
||||
|
||||
class SelectorList(cssutils.util.Base, cssutils.util.ListSeq):
|
||||
"""
|
||||
(cssutils) a list of Selectors of a 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
|
||||
"""
|
||||
"""A list of :class:`~cssutils.css.Selector` objects
|
||||
of a :class:`~cssutils.css.CSSStyleRule`."""
|
||||
def __init__(self, selectorText=None, parentRule=None,
|
||||
readonly=False):
|
||||
"""
|
||||
initializes SelectorList with optional selectorText
|
||||
|
||||
:Parameters:
|
||||
selectorText
|
||||
parsable list of Selectors
|
||||
@ -63,8 +44,30 @@ class SelectorList(cssutils.util.Base, cssutils.util.ListSeq):
|
||||
|
||||
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):
|
||||
"used by appendSelector and __setitem__"
|
||||
"Used by appendSelector and __setitem__"
|
||||
if not namespaces:
|
||||
namespaces = {}
|
||||
self._checkReadonly()
|
||||
@ -75,26 +78,8 @@ class SelectorList(cssutils.util.Base, cssutils.util.ListSeq):
|
||||
newSelector._parent = self # maybe set twice but must be!
|
||||
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):
|
||||
"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:
|
||||
return self.parentRule.parentStyleSheet.namespaces
|
||||
except AttributeError:
|
||||
@ -103,17 +88,67 @@ class SelectorList(cssutils.util.Base, cssutils.util.ListSeq):
|
||||
namespaces.update(selector._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
|
||||
here. While the SelectorList (or parentRule(s) are
|
||||
not attached the namespaces of all children Selectors are used.""")
|
||||
|
||||
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.")
|
||||
def append(self, newSelector):
|
||||
"Same as :meth:`appendSelector`."
|
||||
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):
|
||||
"returns serialized format"
|
||||
"Return serialized format."
|
||||
return cssutils.ser.do_css_SelectorList(self)
|
||||
|
||||
def _setSelectorText(self, selectorText):
|
||||
@ -121,14 +156,14 @@ class SelectorList(cssutils.util.Base, cssutils.util.ListSeq):
|
||||
:param selectorText:
|
||||
comma-separated list of selectors or a tuple of
|
||||
(selectorText, dict-of-namespaces)
|
||||
:Exceptions:
|
||||
- `NAMESPACE_ERR`: (Selector)
|
||||
:exceptions:
|
||||
- :exc:`~xml.dom.NamespaceErr`:
|
||||
Raised if the specified selector uses an unknown namespace
|
||||
prefix.
|
||||
- `SYNTAX_ERR`: (self)
|
||||
- :exc:`~xml.dom.SyntaxErr`:
|
||||
Raised if the specified CSS string value has a syntax error
|
||||
and is unparsable.
|
||||
- `NO_MODIFICATION_ALLOWED_ERR`: (self)
|
||||
- :exc:`~xml.dom.NoModificationAllowedErr`:
|
||||
Raised if this rule is readonly.
|
||||
"""
|
||||
self._checkReadonly()
|
||||
@ -184,66 +219,12 @@ class SelectorList(cssutils.util.Base, cssutils.util.ListSeq):
|
||||
doc="""(cssutils) The textual representation of the selector for
|
||||
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)))
|
||||
|
||||
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
|
||||
|
||||
@ -12,42 +12,33 @@ open issues
|
||||
"""
|
||||
__all__ = ['CSSProductions', 'MACROS', 'PRODUCTIONS']
|
||||
__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
|
||||
MACROS = {
|
||||
'ident': r'[-]?{nmstart}{nmchar}*',
|
||||
'name': r'{nmchar}+',
|
||||
'nmstart': r'[_a-zA-Z]|{nonascii}|{escape}',
|
||||
'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-\4177777]',
|
||||
'nmstart': r'[_a-zA-Z]|{nonascii}|{escape}',
|
||||
'nmchar': r'[-_a-zA-Z0-9]|{nonascii}|{escape}',
|
||||
|
||||
'num': r'[0-9]*\.[0-9]+|[0-9]+', #r'[-]?\d+|[-]?\d*\.\d+',
|
||||
'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}',
|
||||
'string1': r'"([^\n\r\f\\"]|\\{nl}|{escape})*"',
|
||||
'string2': r"'([^\n\r\f\\']|\\{nl}|{escape})*'",
|
||||
'invalid1': 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'\/\*[^*]*\*+([^/][^*]*\*+)*\/',
|
||||
'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])?',
|
||||
'C': r'C|c|\\0{0,4}(?:43|63)(?:\r\n|[ \t\r\n\f])?',
|
||||
@ -77,8 +68,8 @@ MACROS = {
|
||||
PRODUCTIONS = [
|
||||
('BOM', r'\xFEFF'), # will only be checked at beginning of CSS
|
||||
|
||||
('S', r'{wc}+'), # 1st in list of general productions
|
||||
('URI', r'{U}{R}{L}\({w}({string}|{urlchar}*){w}\)'),
|
||||
('S', r'{s}+'), # 1st in list of general productions
|
||||
('URI', r'{U}{R}{L}\({w}({string}|{url}*){w}\)'),
|
||||
('FUNCTION', r'{ident}\('),
|
||||
('IDENT', r'{ident}'),
|
||||
('STRING', r'{string}'),
|
||||
|
||||
@ -16,12 +16,12 @@ log
|
||||
"""
|
||||
__all__ = ['ErrorHandler']
|
||||
__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 urllib2
|
||||
import xml.dom
|
||||
from helper import Deprecated
|
||||
|
||||
class _ErrorHandler(object):
|
||||
"""
|
||||
@ -74,17 +74,22 @@ class _ErrorHandler(object):
|
||||
handles all calls
|
||||
logs or raises exception
|
||||
"""
|
||||
line, col = None, None
|
||||
if token:
|
||||
if isinstance(token, tuple):
|
||||
msg = u'%s [%s:%s: %s]' % (
|
||||
msg, token[2], token[3], token[1])
|
||||
value, line, col = token[1], token[2], token[3]
|
||||
else:
|
||||
msg = u'%s [%s:%s: %s]' % (
|
||||
msg, token.line, token.col, token.value)
|
||||
value, line, col = token.value, token.line, token.col
|
||||
msg = u'%s [%s:%s: %s]' % (
|
||||
msg, line, col, value)
|
||||
|
||||
if error and self.raiseExceptions and not neverraise:
|
||||
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:
|
||||
raise error(msg)
|
||||
else:
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
"""cssutils helper
|
||||
"""
|
||||
__all__ = ['Deprecated', 'normalize']
|
||||
__docformat__ = 'restructuredtext'
|
||||
__version__ = '$Id: errorhandler.py 1234 2008-05-22 20:26:12Z cthedot $'
|
||||
|
||||
@ -31,8 +30,7 @@ class Deprecated(object):
|
||||
return newFunc
|
||||
|
||||
# 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):
|
||||
"""
|
||||
normalizes x, namely:
|
||||
@ -48,4 +46,82 @@ def normalize(x):
|
||||
x = _simpleescapes(removeescape, x)
|
||||
return x.lower()
|
||||
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)
|
||||
|
||||
@ -1,31 +1,26 @@
|
||||
#!/usr/bin/env python
|
||||
"""a validating CSSParser
|
||||
"""
|
||||
"""A validating CSSParser"""
|
||||
__all__ = ['CSSParser']
|
||||
__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
|
||||
import tokenize2
|
||||
import codecs
|
||||
import cssutils
|
||||
import os
|
||||
import tokenize2
|
||||
import urllib
|
||||
|
||||
class CSSParser(object):
|
||||
"""
|
||||
parses a CSS StyleSheet string or file and
|
||||
returns a DOM Level 2 CSS StyleSheet object
|
||||
"""Parse a CSS StyleSheet from URL, string or file and return a DOM Level 2
|
||||
CSS StyleSheet object.
|
||||
|
||||
Usage::
|
||||
|
||||
parser = CSSParser()
|
||||
|
||||
# optionally
|
||||
parser.setFetcher(fetcher)
|
||||
|
||||
sheet = parser.parseFile('test1.css', 'ascii')
|
||||
|
||||
print sheet.cssText
|
||||
"""
|
||||
def __init__(self, log=None, loglevel=None, raiseExceptions=None,
|
||||
@ -40,7 +35,7 @@ class CSSParser(object):
|
||||
parsing. Later while working with the resulting sheets
|
||||
the setting used in cssutils.log.raiseExeptions is used
|
||||
fetcher
|
||||
see ``setFetchUrl(fetcher)``
|
||||
see ``setFetcher(fetcher)``
|
||||
"""
|
||||
if log is not None:
|
||||
cssutils.log.setLog(log)
|
||||
@ -69,26 +64,28 @@ class CSSParser(object):
|
||||
|
||||
def parseString(self, cssText, encoding=None, href=None, media=None,
|
||||
title=None):
|
||||
"""Return parsed CSSStyleSheet from given string cssText.
|
||||
Raises errors during retrieving (e.g. UnicodeDecodeError).
|
||||
"""Parse `cssText` as :class:`~cssutils.css.CSSStyleSheet`.
|
||||
Errors may be raised (e.g. UnicodeDecodeError).
|
||||
|
||||
cssText
|
||||
:param cssText:
|
||||
CSS string to parse
|
||||
encoding
|
||||
:param encoding:
|
||||
If ``None`` the encoding will be read from BOM or an @charset
|
||||
rule or defaults to UTF-8.
|
||||
If given overrides any found encoding including the ones for
|
||||
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.
|
||||
href
|
||||
The href attribute to assign to the parsed style sheet.
|
||||
Used to resolve other urls in the parsed sheet like @import hrefs
|
||||
media
|
||||
The media attribute to assign to the parsed style sheet
|
||||
(may be a MediaList, list or a string)
|
||||
title
|
||||
The title attribute to assign to the parsed style sheet
|
||||
:param href:
|
||||
The ``href`` attribute to assign to the parsed style sheet.
|
||||
Used to resolve other urls in the parsed sheet like @import hrefs.
|
||||
:param media:
|
||||
The ``media`` attribute to assign to the parsed style sheet
|
||||
(may be a MediaList, list or a string).
|
||||
:param title:
|
||||
The ``title`` attribute to assign to the parsed style sheet.
|
||||
:returns:
|
||||
:class:`~cssutils.css.CSSStyleSheet`.
|
||||
"""
|
||||
self.__parseSetting(True)
|
||||
if isinstance(cssText, str):
|
||||
@ -107,23 +104,23 @@ class CSSParser(object):
|
||||
|
||||
def parseFile(self, filename, encoding=None,
|
||||
href=None, media=None, title=None):
|
||||
"""Retrieve and return a CSSStyleSheet from given filename.
|
||||
Raises errors during retrieving (e.g. IOError).
|
||||
|
||||
filename
|
||||
of the CSS file to parse, if no ``href`` is given filename is
|
||||
"""Retrieve content from `filename` and parse it. Errors may be raised
|
||||
(e.g. IOError).
|
||||
|
||||
:param filename:
|
||||
of the CSS file to parse, if no `href` is given filename is
|
||||
converted to a (file:) URL and set as ``href`` of resulting
|
||||
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
|
||||
@import rules.
|
||||
encoding
|
||||
:param encoding:
|
||||
Value ``None`` defaults to encoding detection via BOM or an
|
||||
@charset rule.
|
||||
Other values override detected encoding for the sheet at
|
||||
``filename`` including any imported sheets.
|
||||
|
||||
for other parameters see ``parseString``
|
||||
`filename` including any imported sheets.
|
||||
:returns:
|
||||
:class:`~cssutils.css.CSSStyleSheet`.
|
||||
"""
|
||||
if not href:
|
||||
# prepend // for file URL, urllib does not do this?
|
||||
@ -134,19 +131,19 @@ class CSSParser(object):
|
||||
href=href, media=media, title=title)
|
||||
|
||||
def parseUrl(self, href, encoding=None, media=None, title=None):
|
||||
"""Retrieve and return a CSSStyleSheet from given href (an URL).
|
||||
In case of any errors while reading the URL returns None.
|
||||
|
||||
href
|
||||
"""Retrieve content from URL `href` and parse it. Errors may be raised
|
||||
(e.g. URLError).
|
||||
|
||||
:param href:
|
||||
URL of the CSS file to parse, will also be set as ``href`` of
|
||||
resulting stylesheet
|
||||
encoding
|
||||
:param encoding:
|
||||
Value ``None`` defaults to encoding detection via HTTP, BOM or an
|
||||
@charset rule.
|
||||
A value overrides detected encoding for the sheet at ``href``
|
||||
including any imported sheets.
|
||||
|
||||
for other parameters see ``parseString``
|
||||
:returns:
|
||||
:class:`~cssutils.css.CSSStyleSheet`.
|
||||
"""
|
||||
encoding, enctype, text = cssutils.util._readUrl(href,
|
||||
overrideEncoding=encoding)
|
||||
@ -160,20 +157,24 @@ class CSSParser(object):
|
||||
|
||||
def setFetcher(self, fetcher=None):
|
||||
"""Replace the default URL fetch function with a custom one.
|
||||
The fetcher function gets a single parameter
|
||||
|
||||
:param fetcher:
|
||||
A function which gets a single parameter
|
||||
|
||||
``url``
|
||||
the URL to read
|
||||
``url``
|
||||
the URL to read
|
||||
|
||||
and returns ``(encoding, content)`` where ``encoding`` is the HTTP
|
||||
charset normally given via the Content-Type header (which may simply
|
||||
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).
|
||||
and must return ``(encoding, content)`` where ``encoding`` is the
|
||||
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.
|
||||
Calling ``setFetcher`` with ``fetcher=None`` resets cssutils
|
||||
to use its default function.
|
||||
"""
|
||||
self.__fetcher = fetcher
|
||||
|
||||
|
||||
@ -19,153 +19,207 @@ __docformat__ = 'restructuredtext'
|
||||
__version__ = '$Id: parse.py 1418 2008-08-09 19:27:50Z cthedot $'
|
||||
|
||||
import cssutils
|
||||
import sys
|
||||
|
||||
|
||||
class ParseError(Exception):
|
||||
"""Base Exception class for ProdParser (used internally)."""
|
||||
pass
|
||||
|
||||
class Done(ParseError):
|
||||
"""Raised if Sequence or Choice is finished and no more Prods left."""
|
||||
pass
|
||||
|
||||
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
|
||||
|
||||
class NoMatch(ParseError):
|
||||
"""Raised if Sequence or Choice do not match."""
|
||||
pass
|
||||
|
||||
class MissingToken(ParseError):
|
||||
"""Raised if Sequence or Choice are not exhausted."""
|
||||
"""Raised if nothing in Sequence or Choice does match."""
|
||||
pass
|
||||
|
||||
|
||||
class Choice(object):
|
||||
"""A Choice of productions (Sequence or single Prod)."""
|
||||
def __init__(self, prods):
|
||||
|
||||
def __init__(self, *prods, **options):
|
||||
"""
|
||||
prods
|
||||
*prods
|
||||
Prod or Sequence objects
|
||||
options:
|
||||
optional=False
|
||||
"""
|
||||
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
|
||||
|
||||
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):
|
||||
"""
|
||||
Return:
|
||||
|
||||
- next matching Prod or Sequence
|
||||
- raises ParseError if nothing matches
|
||||
- raises Exhausted if choice already done
|
||||
|
||||
- next matching Prod or Sequence
|
||||
- ``None`` if any Prod or Sequence is optional and no token matched
|
||||
- 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."""
|
||||
if not self._exhausted:
|
||||
optional = False
|
||||
for x in self._prods:
|
||||
if isinstance(x, Prod):
|
||||
test = x
|
||||
else:
|
||||
# nested Sequence matches if 1st prod matches
|
||||
test = x.first()
|
||||
try:
|
||||
if test.matches(token):
|
||||
self._exhausted = True
|
||||
return x
|
||||
except ParseError, e:
|
||||
# do not raise if other my match
|
||||
continue
|
||||
if x.matches(token):
|
||||
self._exhausted = True
|
||||
x.reset()
|
||||
return x
|
||||
elif x.optional:
|
||||
optional = True
|
||||
else:
|
||||
# None matched
|
||||
raise ParseError(u'No match in choice')
|
||||
else:
|
||||
if not optional:
|
||||
# None matched but also None is optional
|
||||
raise ParseError(u'No match in %s' % self)
|
||||
elif 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):
|
||||
"""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
|
||||
minmax = lambda: (1, 1)
|
||||
callback returning number of times this sequence may run
|
||||
**options:
|
||||
minmax = lambda: (1, 1)
|
||||
callback returning number of times this sequence may run
|
||||
"""
|
||||
self._prods = prods
|
||||
if not minmax:
|
||||
try:
|
||||
minmax = options['minmax']
|
||||
except KeyError:
|
||||
minmax = lambda: (1, 1)
|
||||
|
||||
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._round = 1 # 1 based!
|
||||
self._pos = 0
|
||||
self._prodcount = len(self._prods)
|
||||
self.reset()
|
||||
|
||||
def first(self):
|
||||
"""Return 1st element of Sequence, used by Choice"""
|
||||
# TODO: current impl first only if 1st if an prod!
|
||||
def matches(self, token):
|
||||
"""Called by Choice to try to find if Sequence matches."""
|
||||
for prod in self._prods:
|
||||
if not prod.optional:
|
||||
return prod
|
||||
if prod.matches(token):
|
||||
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):
|
||||
"""Return current element of Sequence, used by name"""
|
||||
# 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:
|
||||
return prod.name
|
||||
return str(prod)
|
||||
else:
|
||||
return 'Unknown'
|
||||
return 'Sequence'
|
||||
|
||||
name = property(_currentName, doc='Used for Error reporting')
|
||||
optional = property(lambda self: self._min == 0)
|
||||
|
||||
def nextProd(self, token):
|
||||
"""Return
|
||||
|
||||
- next matching Prod or Choice
|
||||
|
||||
- next matching Prod or Choice
|
||||
- raises ParseError if nothing matches
|
||||
- raises Exhausted if sequence already done
|
||||
"""
|
||||
while self._pos < self._number:
|
||||
x = self._prods[self._pos]
|
||||
thisround = self._round
|
||||
|
||||
self._pos += 1
|
||||
if self._pos == self._number:
|
||||
if self._round < self._max:
|
||||
# new round?
|
||||
self._pos = 0
|
||||
self._round += 1
|
||||
while self._round < self._max:
|
||||
# for this round
|
||||
i = self._i
|
||||
round = self._round
|
||||
p = self._prods[i]
|
||||
if i == 0:
|
||||
self._roundstarted = False
|
||||
|
||||
if isinstance(x, Prod):
|
||||
if not token and (x.optional or thisround > self._min):
|
||||
# token is None if nothing expected
|
||||
raise Exhausted()
|
||||
elif not token and not x.optional:
|
||||
raise MissingToken(u'Missing token for production %s'
|
||||
% x.name)
|
||||
elif x.matches(token):
|
||||
return x
|
||||
elif x.optional:
|
||||
# try next
|
||||
continue
|
||||
# elif thisround > self._min:
|
||||
# # minimum done
|
||||
# self._round = self._max
|
||||
# self._pos = self._number
|
||||
# return None
|
||||
# for next round
|
||||
self._i += 1
|
||||
if self._i == self._prodcount:
|
||||
self._round += 1
|
||||
self._i = 0
|
||||
|
||||
if p.matches(token):
|
||||
self._roundstarted = True
|
||||
# reset nested Choice or Prod to use from start
|
||||
p.reset()
|
||||
return p
|
||||
|
||||
elif p.optional:
|
||||
continue
|
||||
|
||||
elif round < self._min:
|
||||
raise Missing(u'Missing token for production %s' % p)
|
||||
|
||||
elif not token:
|
||||
if self._roundstarted:
|
||||
raise Missing(u'Missing token for production %s' % p)
|
||||
else:
|
||||
# should have matched
|
||||
raise NoMatch(u'No matching production for token')
|
||||
|
||||
raise Done()
|
||||
|
||||
else:
|
||||
# nested Sequence or Choice
|
||||
return x
|
||||
|
||||
# Sequence is exhausted
|
||||
if self._round >= self._max:
|
||||
raise NoMatch(u'No matching production for token')
|
||||
|
||||
if 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):
|
||||
"""Single Prod in Sequence or Choice."""
|
||||
def __init__(self, name, match, toSeq=None, toStore=None,
|
||||
optional=False):
|
||||
def __init__(self, name, match, optional=False,
|
||||
toSeq=None, toStore=None,
|
||||
stop=False, nextSor=False, mayEnd=False):
|
||||
"""
|
||||
name
|
||||
name used for error reporting
|
||||
@ -173,16 +227,24 @@ class Prod(object):
|
||||
function called with parameters tokentype and tokenvalue
|
||||
returning True, False or raising ParseError
|
||||
toSeq callback (optional)
|
||||
if given calling toSeq(token) will be appended to seq
|
||||
else simply seq
|
||||
calling toSeq(token, tokens) returns (type_, val) == (token[0], token[1])
|
||||
to be appended to seq else simply unaltered (type_, val)
|
||||
toStore (optional)
|
||||
key to save util.Item to store or callback(store, util.Item)
|
||||
optional = False
|
||||
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.optional=optional
|
||||
self.optional = optional
|
||||
self.stop = stop
|
||||
self.nextSor = nextSor
|
||||
self.mayEnd = mayEnd
|
||||
|
||||
def makeToStore(key):
|
||||
"Return a function used by toStore."
|
||||
@ -198,9 +260,9 @@ class Prod(object):
|
||||
# called: seq.append(toSeq(value))
|
||||
self.toSeq = toSeq
|
||||
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
|
||||
elif toStore:
|
||||
self.toStore = makeToStore(toStore)
|
||||
@ -210,12 +272,20 @@ class Prod(object):
|
||||
|
||||
def matches(self, token):
|
||||
"""Return if token matches."""
|
||||
if not token:
|
||||
return False
|
||||
type_, val, line, col = token
|
||||
return self.match(type_, val)
|
||||
|
||||
def reset(self):
|
||||
pass
|
||||
|
||||
def __str__(self):
|
||||
return self._name
|
||||
|
||||
def __repr__(self):
|
||||
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):
|
||||
@ -225,17 +295,81 @@ class ProdParser(object):
|
||||
self._log = cssutils.log
|
||||
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):
|
||||
"""
|
||||
text (or token generator)
|
||||
to parse, will be tokenized if not a generator yet
|
||||
|
||||
|
||||
may be:
|
||||
- a string to be tokenized
|
||||
- a single token, a tuple
|
||||
- a tuple of (token, tokensGenerator)
|
||||
- already tokenized so a tokens generator
|
||||
|
||||
- already tokenized so a tokens generator
|
||||
|
||||
name
|
||||
used for logging
|
||||
productions
|
||||
@ -255,148 +389,249 @@ class ProdParser(object):
|
||||
:store: filled keys defined by Prod.toStore
|
||||
:unusedtokens: token generator containing tokens not used yet
|
||||
"""
|
||||
if isinstance(text, basestring):
|
||||
# to tokenize
|
||||
tokens = self._tokenizer.tokenize(text)
|
||||
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 = [text]
|
||||
else:
|
||||
# already tokenized, assume generator
|
||||
tokens = text
|
||||
tokens = self._texttotokens(text)
|
||||
if not tokens:
|
||||
self._log.error(u'No content to parse.')
|
||||
# TODO: return???
|
||||
|
||||
# a new seq to append all Items to
|
||||
seq = cssutils.util.Seq(readonly=False)
|
||||
|
||||
# store for specific values
|
||||
if not store:
|
||||
if not store: # store for specific values
|
||||
store = {}
|
||||
# store['_raw'] = []
|
||||
|
||||
# stack of productions
|
||||
prods = [productions]
|
||||
|
||||
prods = [productions] # stack of productions
|
||||
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
|
||||
# store['_raw'].append(val)
|
||||
|
||||
# default productions
|
||||
if type_ == self.types.S:
|
||||
# always append S?
|
||||
seq.append(val, type_, line, col)
|
||||
elif type_ == self.types.COMMENT:
|
||||
if type_ == self.types.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:
|
||||
# # @rule
|
||||
# r = cssutils.css.CSSUnknownRule(cssText=val)
|
||||
# seq.append(r, type(r), line, col)
|
||||
elif type_ == self.types.EOF:
|
||||
# do nothing
|
||||
elif type_ == self.types.INVALID:
|
||||
# invalidate parse
|
||||
wellformed = False
|
||||
self._log.error(u'Invalid token: %r' % (token,))
|
||||
break
|
||||
elif type_ == 'EOF':
|
||||
# do nothing? (self.types.EOF == True!)
|
||||
pass
|
||||
# next = 'EOF'
|
||||
else:
|
||||
# check prods
|
||||
started = True # check S now
|
||||
nextSor = False # reset
|
||||
|
||||
try:
|
||||
while True:
|
||||
# find next matching production
|
||||
try:
|
||||
prod = prods[-1].nextProd(token)
|
||||
except (NoMatch, Exhausted), e:
|
||||
except (Exhausted, NoMatch), e:
|
||||
# try next
|
||||
prod = None
|
||||
|
||||
if isinstance(prod, Prod):
|
||||
# found actual Prod, not a Choice or Sequence
|
||||
break
|
||||
elif not prod:
|
||||
if len(prods) > 1:
|
||||
# nested exhausted, next in parent
|
||||
prods.pop()
|
||||
else:
|
||||
raise Exhausted('Extra token')
|
||||
else:
|
||||
elif prod:
|
||||
# nested Sequence, Choice
|
||||
prods.append(prod)
|
||||
|
||||
else:
|
||||
# nested exhausted, try in parent
|
||||
if len(prods) > 1:
|
||||
prods.pop()
|
||||
else:
|
||||
raise ParseError('No match')
|
||||
except ParseError, e:
|
||||
wellformed = False
|
||||
self._log.error(u'%s: %s: %r' % (name, e, token))
|
||||
|
||||
break
|
||||
else:
|
||||
# process prod
|
||||
if prod.toSeq:
|
||||
seq.append(prod.toSeq(val), type_, line, col)
|
||||
else:
|
||||
type_, val = prod.toSeq(token, tokens)
|
||||
if val is not None:
|
||||
seq.append(val, type_, line, col)
|
||||
|
||||
if prod.toStore:
|
||||
prod.toStore(store, seq[-1])
|
||||
|
||||
# if 'STOP' == next: # EOF?
|
||||
# # stop here and ignore following tokens
|
||||
# break
|
||||
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
|
||||
|
||||
lastprod = prod
|
||||
while True:
|
||||
# all productions exhausted?
|
||||
try:
|
||||
prod = prods[-1].nextProd(token=None)
|
||||
except Exhausted, e:
|
||||
prod = None # ok
|
||||
except (MissingToken, NoMatch), e:
|
||||
wellformed = False
|
||||
self._log.error(u'%s: %s'
|
||||
% (name, e))
|
||||
else:
|
||||
try:
|
||||
if prod.optional:
|
||||
# ignore optional ones
|
||||
continue
|
||||
except AttributeError:
|
||||
pass
|
||||
except Done, e:
|
||||
# ok
|
||||
prod = None
|
||||
|
||||
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
|
||||
self._log.error(u'%s: Missing token for production %r'
|
||||
% (name, prod.name))
|
||||
% (name, str(prod)))
|
||||
break
|
||||
elif len(prods) > 1:
|
||||
# nested exhausted, next in parent
|
||||
prods.pop()
|
||||
else:
|
||||
break
|
||||
|
||||
# bool, Seq, None or generator
|
||||
# trim S from end
|
||||
seq.rstrip()
|
||||
return wellformed, seq, store, tokens
|
||||
|
||||
|
||||
class PreDef(object):
|
||||
"""Predefined Prod definition for use in productions definition
|
||||
for ProdParser instances.
|
||||
"""
|
||||
@staticmethod
|
||||
def comma():
|
||||
","
|
||||
return Prod(name=u'comma', match=lambda t, v: v == u',')
|
||||
"""
|
||||
types = cssutils.cssproductions.CSSProductions
|
||||
|
||||
@staticmethod
|
||||
def funcEnd():
|
||||
")"
|
||||
return Prod(name=u'end FUNC ")"', match=lambda t, v: v == u')')
|
||||
|
||||
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 unary():
|
||||
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 PreDef.CHAR(u'end FUNC ")"', u')',
|
||||
toStore=toStore,
|
||||
stop=stop,
|
||||
nextSor=nextSor)
|
||||
|
||||
@staticmethod
|
||||
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 -"
|
||||
return Prod(name=u'unary +-', match=lambda t, v: v in u'+-',
|
||||
optional=True)
|
||||
return Prod(name=u'unary +-', match=lambda t, v: v in (u'+', u'-'),
|
||||
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
|
||||
)
|
||||
|
||||
@ -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']
|
||||
@ -10,6 +19,7 @@ __version__ = '$Id: cssproperties.py 1116 2008-03-05 13:52:23Z cthedot $'
|
||||
import cssutils
|
||||
import re
|
||||
|
||||
properties = {}
|
||||
"""
|
||||
Define some regular expression fragments that will be used as
|
||||
macros within the CSS property value regular expressions.
|
||||
@ -56,12 +66,13 @@ css2macros = {
|
||||
'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',
|
||||
'overflow': r'visible|hidden|scroll|auto|inherit',
|
||||
}
|
||||
|
||||
"""
|
||||
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',
|
||||
'background-attachment': r'{background-attachment}',
|
||||
'background-color': r'{background-color}',
|
||||
@ -137,7 +148,7 @@ css2 = {
|
||||
'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',
|
||||
'overflow': r'{overflow}',
|
||||
'padding-top': r'{padding-width}|inherit',
|
||||
'padding-right': r'{padding-width}|inherit',
|
||||
'padding-bottom': r'{padding-width}|inherit',
|
||||
@ -185,16 +196,24 @@ css3colormacros = {
|
||||
# orange and transparent in CSS 2.1
|
||||
'namedcolor': r'(currentcolor|transparent|orange|black|green|silver|lime|gray|olive|white|yellow|maroon|navy|red|blue|purple|teal|fuchsia|aqua)',
|
||||
# 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}\)',
|
||||
'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}\)',
|
||||
'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}\)',
|
||||
'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)',
|
||||
|
||||
}
|
||||
|
||||
|
||||
css3color = {
|
||||
properties['css3color'] = {
|
||||
'color': r'{namedcolor}|{hexcolor}|{rgbcolor}|{rgbacolor}|{hslcolor}|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):
|
||||
"""Raised if no profile with given name is found"""
|
||||
pass
|
||||
@ -202,17 +221,25 @@ class NoSuchProfileException(Exception):
|
||||
|
||||
class Profiles(object):
|
||||
"""
|
||||
A dictionary of::
|
||||
|
||||
profilename: {
|
||||
propname: propvalue_regex*
|
||||
}
|
||||
|
||||
Predefined profiles are:
|
||||
|
||||
- 'CSS level 2': Properties defined by CSS2
|
||||
|
||||
All profiles used for validation. ``cssutils.profiles.profiles`` is a
|
||||
preset object of this class and used by all properties for validation.
|
||||
|
||||
Predefined profiles are (use
|
||||
:meth:`~cssutils.profiles.Profiles.propertiesByProfile` to
|
||||
get a list of defined properties):
|
||||
|
||||
:attr:`~cssutils.profiles.Profiles.Profiles.CSS_LEVEL_2`
|
||||
Properties defined by CSS2.1
|
||||
: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 = {
|
||||
'ident': r'[-]?{nmstart}{nmchar}*',
|
||||
'name': r'{nmchar}+',
|
||||
@ -246,60 +273,74 @@ class Profiles(object):
|
||||
'frequency': r'0|{num}k?Hz',
|
||||
'percentage': r'{num}%',
|
||||
}
|
||||
|
||||
CSS_LEVEL_2 = 'CSS Level 2.1'
|
||||
CSS_COLOR_LEVEL_3 = 'CSS Color Module Level 3'
|
||||
|
||||
|
||||
def __init__(self):
|
||||
"""A few known profiles are predefined."""
|
||||
self._log = cssutils.log
|
||||
self._profilenames = [] # to keep order, REFACTOR!
|
||||
self._profiles = {}
|
||||
self.addProfile(self.CSS_LEVEL_2, css2, css2macros)
|
||||
self.addProfile(self.CSS_COLOR_LEVEL_3, css3color, css3colormacros)
|
||||
self._profilenames = [] # to keep order, REFACTOR!
|
||||
self._profiles = {}
|
||||
|
||||
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):
|
||||
"""Expand macros in token dictionary"""
|
||||
def macro_value(m):
|
||||
return '(?:%s)' % macros[m.groupdict()['macro']]
|
||||
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):
|
||||
value = re.sub(r'{(?P<macro>[a-z][a-z0-9-]*)}',
|
||||
macro_value, value)
|
||||
dictionary[key] = value
|
||||
return dictionary
|
||||
|
||||
|
||||
def _compile_regexes(self, dictionary):
|
||||
"""Compile all regular expressions into callable objects"""
|
||||
for key, value in dictionary.items():
|
||||
if not callable(value):
|
||||
if not hasattr(value, '__call__'):
|
||||
value = re.compile('^(?:%s)$' % value, re.I).match
|
||||
dictionary[key] = value
|
||||
|
||||
|
||||
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()),
|
||||
doc=u'Names of all profiles.')
|
||||
|
||||
knownnames = property(lambda self: self._knownnames,
|
||||
doc="All known property names of all profiles.")
|
||||
|
||||
def addProfile(self, profile, properties, macros=None):
|
||||
"""Add a new profile with name ``profile`` (e.g. 'CSS level 2')
|
||||
and the given ``properties``. ``macros`` are
|
||||
|
||||
``profile``
|
||||
The new profile's name
|
||||
``properties``
|
||||
A dictionary of ``{ property-name: propery-value }`` items where
|
||||
property-value is a regex which may use macros defined in given
|
||||
"""Add a new profile with name `profile` (e.g. 'CSS level 2')
|
||||
and the given `properties`.
|
||||
|
||||
: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
|
||||
``macros`` or the standard macros Profiles.tokens and
|
||||
Profiles.generalvalues.
|
||||
|
||||
``propery-value`` may also be a function which takes a single
|
||||
argument which is the value to validate and which should return
|
||||
True or False.
|
||||
Any exceptions which may be raised during this custom validation
|
||||
|
||||
``propery-value`` may also be a function which takes a single
|
||||
argument which is the value to validate and which should return
|
||||
True or False.
|
||||
Any exceptions which may be raised during this custom validation
|
||||
are reported or raised as all other cssutils exceptions depending
|
||||
on cssutils.log.raiseExceptions which e.g during parsing normally
|
||||
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:
|
||||
macros = {}
|
||||
@ -307,31 +348,67 @@ class Profiles(object):
|
||||
m.update(self.generalmacros)
|
||||
m.update(macros)
|
||||
properties = self._expand_macros(properties, m)
|
||||
self._profilenames.append(profile)
|
||||
self._profilenames.append(profile)
|
||||
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):
|
||||
"""Generator: Yield property names, if no profile(s) is given all
|
||||
profile's properties are used."""
|
||||
"""Generator: Yield property names, if no `profiles` is given all
|
||||
profile's properties are used.
|
||||
|
||||
:param profiles:
|
||||
a single profile name or a list of names.
|
||||
"""
|
||||
if not profiles:
|
||||
profiles = self.profiles
|
||||
elif isinstance(profiles, basestring):
|
||||
profiles = (profiles, )
|
||||
|
||||
try:
|
||||
for profile in sorted(profiles):
|
||||
for name in sorted(self._profiles[profile].keys()):
|
||||
yield name
|
||||
except KeyError, e:
|
||||
raise NoSuchProfileException(e)
|
||||
raise NoSuchProfileException(e)
|
||||
|
||||
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:
|
||||
if name in self._profiles[profile]:
|
||||
try:
|
||||
# custom validation errors are caught
|
||||
r = bool(self._profiles[profile][name](value))
|
||||
r = bool(self._profiles[profile][name](value))
|
||||
except Exception, e:
|
||||
self._log.error(e, error=Exception)
|
||||
return False
|
||||
@ -339,29 +416,63 @@ class Profiles(object):
|
||||
return r
|
||||
return False
|
||||
|
||||
def validateWithProfile(self, name, value):
|
||||
"""Check if value is valid for given property name returning
|
||||
(valid, valid_in_profile).
|
||||
|
||||
You may want to check if valid_in_profile is what you expected.
|
||||
|
||||
def validateWithProfile(self, name, value, profiles=None):
|
||||
"""Check if `value` is valid for given property `name` returning
|
||||
``(valid, profile)``.
|
||||
|
||||
: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
|
||||
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)
|
||||
"""
|
||||
for profilename in self._profilenames:
|
||||
if name in self._profiles[profilename]:
|
||||
try:
|
||||
# custom validation errors are caught
|
||||
r = (bool(self._profiles[profilename][name](value)),
|
||||
profilename)
|
||||
except Exception, e:
|
||||
self._log.error(e, error=Exception)
|
||||
r = False, None
|
||||
if r[0]:
|
||||
return r
|
||||
return False, None
|
||||
|
||||
|
||||
if name not in self.knownnames:
|
||||
return False, []
|
||||
else:
|
||||
if not profiles:
|
||||
profiles = self._profilenames
|
||||
elif isinstance(profiles, basestring):
|
||||
profiles = (profiles, )
|
||||
|
||||
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()
|
||||
|
||||
# set for validation to e.g.``Profiles.CSS_LEVEL_2``
|
||||
defaultprofile = None
|
||||
|
||||
|
||||
@ -4,16 +4,16 @@ __all__ = ['CSSCapture', 'csscombine']
|
||||
__docformat__ = 'restructuredtext'
|
||||
__version__ = '$Id: parse.py 1323 2008-07-06 18:13:57Z cthedot $'
|
||||
|
||||
import codecs
|
||||
import errno
|
||||
import HTMLParser
|
||||
import codecs
|
||||
import cssutils
|
||||
import errno
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
import urllib2
|
||||
import urlparse
|
||||
|
||||
import cssutils
|
||||
try:
|
||||
import cssutils.encutils as encutils
|
||||
except ImportError:
|
||||
@ -307,65 +307,47 @@ class CSSCapture(object):
|
||||
sf.write(sheet.cssText)
|
||||
sf.close()
|
||||
|
||||
|
||||
def csscombine(proxypath, sourceencoding=None, targetencoding='utf-8',
|
||||
def csscombine(path=None, url=None,
|
||||
sourceencoding=None, targetencoding=None,
|
||||
minify=True):
|
||||
"""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
|
||||
:Parameters:
|
||||
`proxypath`
|
||||
url or path to a CSSStyleSheet which imports other sheets which
|
||||
`path` or `url`
|
||||
path or URL to a CSSStyleSheet which imports other sheets which
|
||||
are then combined into one sheet
|
||||
`sourceencoding`
|
||||
encoding of the source sheets including the proxy sheet
|
||||
`targetencoding`
|
||||
encoding of the combined stylesheet, default 'utf-8'
|
||||
`minify`
|
||||
defines if the combined sheet should be minified, default True
|
||||
"""
|
||||
log = cssutils.log
|
||||
|
||||
log.info('Combining files in proxy %r' % proxypath, neverraise=True)
|
||||
|
||||
cssutils.log.info(u'Combining files from %r' % url,
|
||||
neverraise=True)
|
||||
if sourceencoding is not None:
|
||||
log.info('Using source encoding %r' % sourceencoding,
|
||||
neverraise=True)
|
||||
cssutils.log.info(u'Using source encoding %r' % sourceencoding,
|
||||
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)
|
||||
srcpath = os.path.dirname(proxypath)
|
||||
combined = cssutils.css.CSSStyleSheet()
|
||||
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
|
||||
result = cssutils.resolveImports(src)
|
||||
result.encoding = targetencoding
|
||||
cssutils.log.info(u'Using target encoding: %r' % targetencoding, neverraise=True)
|
||||
|
||||
if minify:
|
||||
# save old setting and use own serializer
|
||||
oldser = cssutils.ser
|
||||
cssutils.setSerializer(cssutils.serialize.CSSSerializer())
|
||||
cssutils.ser.prefs.useMinified()
|
||||
cssText = combined.cssText
|
||||
cssText = result.cssText
|
||||
cssutils.setSerializer(oldser)
|
||||
else:
|
||||
cssText = combined.cssText
|
||||
cssText = result.cssText
|
||||
|
||||
return cssText
|
||||
|
||||
|
||||
@ -1,15 +1,15 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
"""serializer classes for CSS classes
|
||||
|
||||
"""
|
||||
"""cssutils serializer"""
|
||||
__all__ = ['CSSSerializer', 'Preferences']
|
||||
__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 cssutils
|
||||
import helper
|
||||
import re
|
||||
import xml.dom
|
||||
import cssutils
|
||||
|
||||
def _escapecss(e):
|
||||
"""
|
||||
@ -26,8 +26,7 @@ codecs.register_error('escapecss', _escapecss)
|
||||
|
||||
|
||||
class Preferences(object):
|
||||
"""
|
||||
controls output of CSSSerializer
|
||||
"""Control output of CSSSerializer.
|
||||
|
||||
defaultAtKeyword = True
|
||||
Should the literal @keyword from src CSS be used or the default
|
||||
@ -39,11 +38,12 @@ class Preferences(object):
|
||||
Only used if ``keepAllProperties==False``.
|
||||
|
||||
defaultPropertyPriority = True
|
||||
Should the normalized or literal priority be used, e.g. '!important'
|
||||
or u'!Im\portant'
|
||||
Should the normalized or literal priority be used, e.g. ``!important``
|
||||
or ``!Im\portant``
|
||||
|
||||
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 * ' '
|
||||
Indentation of e.g Properties inside a CSSStyleDeclaration
|
||||
indentSpecificities = False
|
||||
@ -87,21 +87,28 @@ class Preferences(object):
|
||||
|
||||
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
|
||||
valid.
|
||||
|
||||
valid.
|
||||
"""
|
||||
def __init__(self, **initials):
|
||||
"""
|
||||
Always use named instead of positional parameters
|
||||
"""
|
||||
"""Always use named instead of positional parameters."""
|
||||
self.useDefaults()
|
||||
|
||||
for key, value in initials.items():
|
||||
if 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):
|
||||
"reset all preference options to the default value"
|
||||
"Reset all preference options to their default value."
|
||||
self.defaultAtKeyword = True
|
||||
self.defaultPropertyName = True
|
||||
self.defaultPropertyPriority = True
|
||||
@ -123,11 +130,10 @@ class Preferences(object):
|
||||
self.validOnly = False # should not be changed currently!!!
|
||||
|
||||
def useMinified(self):
|
||||
"""
|
||||
sets options to achive a minified stylesheet
|
||||
"""Set options resulting in a minified stylesheet.
|
||||
|
||||
you may want to set preferences with this convenience method
|
||||
and set settings you want adjusted afterwards
|
||||
You may want to set preferences with this convenience method
|
||||
and set settings you want adjusted afterwards.
|
||||
"""
|
||||
self.importHrefFormat = 'string'
|
||||
self.indent = u''
|
||||
@ -144,22 +150,9 @@ class Preferences(object):
|
||||
self.spacer = u''
|
||||
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):
|
||||
"""
|
||||
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):
|
||||
self.ser = ser
|
||||
self.out = []
|
||||
@ -178,11 +171,11 @@ class Out(object):
|
||||
- typ "Property", cssutils.css.CSSRule.UNKNOWN_RULE
|
||||
uses cssText
|
||||
- typ STRING
|
||||
escapes ser._string
|
||||
escapes helper.string
|
||||
- typ S
|
||||
ignored except ``keepS=True``
|
||||
- typ URI
|
||||
calls ser_uri
|
||||
calls helper.uri
|
||||
- val ``{``
|
||||
adds LF after
|
||||
- val ``;``
|
||||
@ -194,6 +187,8 @@ class Out(object):
|
||||
- some other vals
|
||||
add ``*spacer`` except ``space=False``
|
||||
"""
|
||||
prefspace = self.ser.prefs.spacer
|
||||
|
||||
if val or typ in ('STRING', 'URI'):
|
||||
# PRE
|
||||
if 'COMMENT' == typ:
|
||||
@ -207,6 +202,8 @@ class Out(object):
|
||||
# val = val.cssText
|
||||
elif 'S' == typ and not keepS:
|
||||
return
|
||||
elif 'S' == typ and keepS:
|
||||
val = u' '
|
||||
elif typ in ('NUMBER', 'DIMENSION', 'PERCENTAGE') and val == '0':
|
||||
# remove sign + or - if value is zero
|
||||
# TODO: only for lenghts!
|
||||
@ -216,12 +213,16 @@ class Out(object):
|
||||
# may be empty but MUST not be None
|
||||
if val is None:
|
||||
return
|
||||
val = self.ser._string(val)
|
||||
val = helper.string(val)
|
||||
if not prefspace:
|
||||
self._remove_last_if_S()
|
||||
elif 'URI' == typ:
|
||||
val = self.ser._uri(val)
|
||||
val = helper.uri(val)
|
||||
elif 'HASH' == typ:
|
||||
val = self.ser._hash(val)
|
||||
elif val in u'+>~,:{;)]/':
|
||||
self._remove_last_if_S()
|
||||
|
||||
|
||||
# APPEND
|
||||
if indent:
|
||||
self.out.append(self.ser._indentblock(val, self.ser._level+1))
|
||||
@ -243,8 +244,11 @@ class Out(object):
|
||||
self.out.append(self.ser.prefs.lineSeparator)
|
||||
elif u';' == val: # end or prop or block
|
||||
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)
|
||||
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):
|
||||
"returns all items joined by delim"
|
||||
@ -256,19 +260,14 @@ class Out(object):
|
||||
|
||||
|
||||
class CSSSerializer(object):
|
||||
"""
|
||||
Methods to serialize a CSSStylesheet and its parts
|
||||
"""Serialize a CSSStylesheet and its parts.
|
||||
|
||||
To use your own serializing method the easiest is to subclass CSS
|
||||
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):
|
||||
"""
|
||||
prefs
|
||||
:param prefs:
|
||||
instance of Preferences
|
||||
"""
|
||||
if not prefs:
|
||||
@ -319,23 +318,17 @@ class CSSSerializer(object):
|
||||
text = self.prefs.lineSeparator.join(out)
|
||||
return text
|
||||
|
||||
def _string(self, s):
|
||||
def _hash(self, val, type_=None):
|
||||
"""
|
||||
returns s encloded between "..." and escaped delim charater ",
|
||||
escape line breaks \\n \\r and \\f
|
||||
Short form of hash, e.g. #123 instead of #112233
|
||||
"""
|
||||
# \n = 0xa, \r = 0xd, \f = 0xc
|
||||
s = s.replace('\n', '\\a ').replace(
|
||||
'\r', '\\d ').replace(
|
||||
'\f', '\\c ')
|
||||
return u'"%s"' % s.replace('"', u'\\"')
|
||||
|
||||
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)
|
||||
# TODO: add pref for this!
|
||||
if len(val) == 7 and val[1] == val[2] and\
|
||||
val[3] == val[4] and\
|
||||
val[5] == val[6]:
|
||||
return u'#%s%s%s' % (val[1], val[3], val[5])
|
||||
else:
|
||||
return 'url(%s)' % uri
|
||||
return val
|
||||
|
||||
def _valid(self, x):
|
||||
"checks items valid property and prefs.validOnly"
|
||||
@ -384,7 +377,7 @@ class CSSSerializer(object):
|
||||
no comments or other things allowed!
|
||||
"""
|
||||
if rule.wellformed:
|
||||
return u'@charset %s;' % self._string(rule.encoding)
|
||||
return u'@charset %s;' % helper.string(rule.encoding)
|
||||
else:
|
||||
return u''
|
||||
|
||||
@ -438,8 +431,6 @@ class CSSSerializer(object):
|
||||
rule.hreftype == 'string'):
|
||||
out.append(val, 'STRING')
|
||||
else:
|
||||
if not len(self.prefs.spacer):
|
||||
out.append(u' ')
|
||||
out.append(val, 'URI')
|
||||
elif 'media' == typ:
|
||||
# media
|
||||
@ -468,10 +459,7 @@ class CSSSerializer(object):
|
||||
"""
|
||||
if rule.wellformed:
|
||||
out = Out(self)
|
||||
out.append(self._atkeyword(rule, u'@namespace'))
|
||||
if not len(self.prefs.spacer):
|
||||
out.append(u' ')
|
||||
|
||||
out.append(self._atkeyword(rule, u'@namespace'))
|
||||
for item in rule.seq:
|
||||
typ, val = item.type, item.value
|
||||
if 'namespaceURI' == typ:
|
||||
@ -509,7 +497,7 @@ class CSSSerializer(object):
|
||||
if rule.name:
|
||||
out.append(self.prefs.spacer)
|
||||
nameout = Out(self)
|
||||
nameout.append(self._string(rule.name))
|
||||
nameout.append(helper.string(rule.name))
|
||||
for item in rule.seq:
|
||||
nameout.append(item.value, item.type)
|
||||
out.append(nameout.value())
|
||||
@ -548,22 +536,26 @@ class CSSSerializer(object):
|
||||
+ CSSComments
|
||||
"""
|
||||
styleText = self.do_css_CSSStyleDeclaration(rule.style)
|
||||
|
||||
if styleText and rule.wellformed:
|
||||
out = Out(self)
|
||||
out.append(self._atkeyword(rule, u'@page'))
|
||||
if not len(self.prefs.spacer):
|
||||
out.append(u' ')
|
||||
|
||||
for item in rule.seq:
|
||||
out.append(item.value, item.type)
|
||||
|
||||
out.append(rule.selectorText)
|
||||
out.append(u'{')
|
||||
out.append(u'%s%s}' % (styleText, self.prefs.lineSeparator),
|
||||
indent=1)
|
||||
return out.value()
|
||||
else:
|
||||
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):
|
||||
"""
|
||||
@ -574,8 +566,6 @@ class CSSSerializer(object):
|
||||
if rule.wellformed:
|
||||
out = Out(self)
|
||||
out.append(rule.atkeyword)
|
||||
if not len(self.prefs.spacer):
|
||||
out.append(u' ')
|
||||
|
||||
stacks = []
|
||||
for item in rule.seq:
|
||||
@ -751,7 +741,7 @@ class CSSSerializer(object):
|
||||
out.append(separator)
|
||||
elif isinstance(val, cssutils.css.Property):
|
||||
# PropertySimilarNameList
|
||||
out.append(self.do_Property(val))
|
||||
out.append(val.cssText)
|
||||
if not (self.prefs.omitLastSemicolon and i==len(seq)-1):
|
||||
out.append(u';')
|
||||
out.append(separator)
|
||||
@ -822,8 +812,7 @@ class CSSSerializer(object):
|
||||
"""
|
||||
a Properties priority "!" S* "important"
|
||||
"""
|
||||
# TODO: use Out()
|
||||
|
||||
# TODO: use Out()
|
||||
out = []
|
||||
for part in priorityseq:
|
||||
if hasattr(part, 'cssText'): # comments
|
||||
@ -836,72 +825,47 @@ class CSSSerializer(object):
|
||||
|
||||
def do_css_CSSValue(self, cssvalue):
|
||||
"""Serializes a CSSValue"""
|
||||
# TODO: use self._valid(cssvalue)?
|
||||
if not cssvalue:
|
||||
return u''
|
||||
else:
|
||||
out = Out(self)
|
||||
for item in cssvalue.seq:
|
||||
type_, val = item.type, item.value
|
||||
if type_ in (cssutils.css.CSSColor,
|
||||
cssutils.css.CSSValue):
|
||||
# CSSColor or CSSValue if a CSSValueList
|
||||
out.append(val.cssText, type_, space=False, keepS=True)
|
||||
if hasattr(val, 'cssText'):
|
||||
# RGBColor or CSSValue if a CSSValueList
|
||||
out.append(val.cssText, type_)
|
||||
else:
|
||||
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
|
||||
out.append(val, type_, space=False, keepS=True)
|
||||
out.append(val, type_)
|
||||
|
||||
return out.value()
|
||||
|
||||
def do_css_CSSPrimitiveValue(self, cssvalue):
|
||||
"""Serialize a CSSPrimitiveValue"""
|
||||
# TODO: use self._valid(cssvalue)?
|
||||
if not cssvalue:
|
||||
return u''
|
||||
else:
|
||||
out = Out(self)
|
||||
|
||||
unary = None
|
||||
for item in cssvalue.seq:
|
||||
type_, val = item.type, item.value
|
||||
if 'CHAR' == type_ and val in u'+-':
|
||||
# save for next round
|
||||
unary = val
|
||||
continue
|
||||
if cssutils.css.CSSColor == type_:
|
||||
# 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():
|
||||
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:
|
||||
# add unary to val if not 0
|
||||
# TODO: only for lengths!
|
||||
if u'-' == unary:
|
||||
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
|
||||
|
||||
val = u'0' + d
|
||||
else:
|
||||
val = unicode(n) + d
|
||||
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()
|
||||
|
||||
def do_css_CSSColor(self, cssvalue):
|
||||
"""Serialize a CSSColor value"""
|
||||
def do_css_RGBColor(self, cssvalue):
|
||||
"""Serialize a RGBColor value"""
|
||||
if not cssvalue:
|
||||
return u''
|
||||
else:
|
||||
@ -910,21 +874,16 @@ class CSSSerializer(object):
|
||||
for item in cssvalue.seq:
|
||||
type_, val = item.type, item.value
|
||||
|
||||
# prepare
|
||||
if 'HASH' == type_:
|
||||
# TODO: add pref for this!
|
||||
if len(val) == 7 and val[1] == val[2] and \
|
||||
val[3] == val[4] and val[5] == val[6]:
|
||||
val = u'#%s%s%s' % (val[1], val[3], val[5])
|
||||
elif 'CHAR' == type_ and val in u'+-':
|
||||
# save - for next round
|
||||
if u'-' == val:
|
||||
# omit +
|
||||
unary = val
|
||||
continue
|
||||
elif unary:
|
||||
val = unary + val.cssText
|
||||
unary = None
|
||||
# # prepare
|
||||
# if 'CHAR' == type_ and val in u'+-':
|
||||
# # save - for next round
|
||||
# if u'-' == val:
|
||||
# # omit +
|
||||
# unary = val
|
||||
# continue
|
||||
# elif unary:
|
||||
# val = unary + val.cssText
|
||||
# unary = None
|
||||
|
||||
out.append(val, type_)
|
||||
|
||||
@ -960,3 +919,29 @@ class CSSSerializer(object):
|
||||
return u' '.join(out)
|
||||
else:
|
||||
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()
|
||||
|
||||
@ -1,16 +1,9 @@
|
||||
"""
|
||||
Document Object Model Level 2 Style Sheets
|
||||
"""Implements Document Object Model Level 2 Style Sheets
|
||||
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']
|
||||
__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 mediaquery import *
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
"""
|
||||
MediaList implements DOM Level 2 Style Sheets MediaList.
|
||||
"""MediaList implements DOM Level 2 Style Sheets MediaList.
|
||||
|
||||
TODO:
|
||||
- delete: maybe if deleting from all, replace *all* with all others?
|
||||
@ -7,49 +6,36 @@ TODO:
|
||||
"""
|
||||
__all__ = ['MediaList']
|
||||
__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 mediaquery import MediaQuery
|
||||
import cssutils
|
||||
import xml.dom
|
||||
|
||||
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
|
||||
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".
|
||||
|
||||
Properties
|
||||
==========
|
||||
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
|
||||
======
|
||||
::
|
||||
Format from CSS2.1::
|
||||
|
||||
medium [ COMMA S* medium ]*
|
||||
|
||||
New::
|
||||
New format with :class:`MediaQuery`::
|
||||
|
||||
<media_query> [, <media_query> ]*
|
||||
"""
|
||||
def __init__(self, mediaText=None, readonly=False):
|
||||
"""
|
||||
mediaText
|
||||
unicodestring of parsable comma separared media
|
||||
or a list of media
|
||||
:param mediaText:
|
||||
Unicodestring of parsable comma separared media
|
||||
or a (Python) list of media.
|
||||
:param readonly:
|
||||
Not used yet.
|
||||
"""
|
||||
super(MediaList, self).__init__()
|
||||
self._wellformed = False
|
||||
@ -62,27 +48,31 @@ class MediaList(cssutils.util.Base, cssutils.util.ListSeq):
|
||||
|
||||
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),
|
||||
doc="(DOM readonly) The number of media in the list.")
|
||||
doc="The number of media in the list (DOM readonly).")
|
||||
|
||||
def _getMediaText(self):
|
||||
"""
|
||||
returns serialized property mediaText
|
||||
"""
|
||||
return cssutils.ser.do_stylesheets_medialist(self)
|
||||
|
||||
def _setMediaText(self, mediaText):
|
||||
"""
|
||||
mediaText
|
||||
:param mediaText:
|
||||
simple value or comma-separated list of media
|
||||
|
||||
DOMException
|
||||
|
||||
- SYNTAX_ERR: (MediaQuery)
|
||||
Raised if the specified string value has a syntax error and is
|
||||
unparsable.
|
||||
- NO_MODIFICATION_ALLOWED_ERR: (self)
|
||||
Raised if this media list is readonly.
|
||||
:exceptions:
|
||||
- - :exc:`~xml.dom.SyntaxErr`:
|
||||
Raised if the specified string value has a syntax error and is
|
||||
unparsable.
|
||||
- - :exc:`~xml.dom.NoModificationAllowedErr`:
|
||||
Raised if this media list is readonly.
|
||||
"""
|
||||
self._checkReadonly()
|
||||
wellformed = True
|
||||
@ -121,55 +111,46 @@ class MediaList(cssutils.util.Base, cssutils.util.ListSeq):
|
||||
self._wellformed = True
|
||||
|
||||
mediaText = property(_getMediaText, _setMediaText,
|
||||
doc="""(DOM) The parsable textual representation of the media list.
|
||||
This is a comma-separated list of media.""")
|
||||
|
||||
wellformed = property(lambda self: self._wellformed)
|
||||
doc="The parsable textual representation of the media list.")
|
||||
|
||||
def __prepareset(self, newMedium):
|
||||
# used by appendSelector and __setitem__
|
||||
self._checkReadonly()
|
||||
|
||||
|
||||
if not isinstance(newMedium, MediaQuery):
|
||||
newMedium = MediaQuery(newMedium)
|
||||
|
||||
if newMedium.wellformed:
|
||||
return newMedium
|
||||
|
||||
|
||||
def __setitem__(self, index, newMedium):
|
||||
"""
|
||||
overwrites ListSeq.__setitem__
|
||||
|
||||
Any duplicate items are **not** removed.
|
||||
"""Overwriting ListSeq.__setitem__
|
||||
|
||||
Any duplicate items are **not yet** removed.
|
||||
"""
|
||||
newMedium = self.__prepareset(newMedium)
|
||||
if newMedium:
|
||||
self.seq[index] = newMedium
|
||||
# TODO: remove duplicates?
|
||||
|
||||
# TODO: remove duplicates?
|
||||
|
||||
def appendMedium(self, newMedium):
|
||||
"""
|
||||
(DOM)
|
||||
Adds the medium newMedium to the end of the list. If the newMedium
|
||||
is already used, it is first removed.
|
||||
|
||||
newMedium
|
||||
a string or a MediaQuery object
|
||||
|
||||
returns if newMedium is wellformed
|
||||
|
||||
DOMException
|
||||
|
||||
- INVALID_CHARACTER_ERR: (self)
|
||||
If the medium contains characters that are invalid in the
|
||||
underlying style language.
|
||||
- INVALID_MODIFICATION_ERR (self)
|
||||
If mediaText is "all" and a new medium is tried to be added.
|
||||
Exception is "handheld" which is set in any case (Opera does handle
|
||||
"all, handheld" special, this special case might be removed in the
|
||||
future).
|
||||
- NO_MODIFICATION_ALLOWED_ERR: (self)
|
||||
Raised if this list is readonly.
|
||||
"""Add the `newMedium` to the end of the list.
|
||||
If the `newMedium` is already used, it is first removed.
|
||||
|
||||
:param newMedium:
|
||||
a string or a :class:`~cssutils.stylesheets.MediaQuery`
|
||||
:returns: Wellformedness of `newMedium`.
|
||||
:exceptions:
|
||||
- :exc:`~xml.dom.InvalidCharacterErr`:
|
||||
If the medium contains characters that are invalid in the
|
||||
underlying style language.
|
||||
- :exc:`~xml.dom.InvalidModificationErr`:
|
||||
If mediaText is "all" and a new medium is tried to be added.
|
||||
Exception is "handheld" which is set in any case (Opera does handle
|
||||
"all, handheld" special, this special case might be removed in the
|
||||
future).
|
||||
- :exc:`~xml.dom.NoModificationAllowedErr`:
|
||||
Raised if this list is readonly.
|
||||
"""
|
||||
newMedium = self.__prepareset(newMedium)
|
||||
|
||||
@ -207,20 +188,19 @@ class MediaList(cssutils.util.Base, cssutils.util.ListSeq):
|
||||
return False
|
||||
|
||||
def append(self, newMedium):
|
||||
"overwrites ListSeq.append"
|
||||
"Same as :meth:`appendMedium`."
|
||||
self.appendMedium(newMedium)
|
||||
|
||||
|
||||
def deleteMedium(self, oldMedium):
|
||||
"""
|
||||
(DOM)
|
||||
Deletes the medium indicated by oldMedium from the list.
|
||||
"""Delete a medium from the list.
|
||||
|
||||
DOMException
|
||||
|
||||
- NO_MODIFICATION_ALLOWED_ERR: (self)
|
||||
Raised if this list is readonly.
|
||||
- NOT_FOUND_ERR: (self)
|
||||
Raised if oldMedium is not in the list.
|
||||
:param oldMedium:
|
||||
delete this medium from the list.
|
||||
:exceptions:
|
||||
- :exc:`~xml.dom.NotFoundErr`:
|
||||
Raised if `oldMedium` is not in the list.
|
||||
- :exc:`~xml.dom.NoModificationAllowedErr`:
|
||||
Raised if this list is readonly.
|
||||
"""
|
||||
self._checkReadonly()
|
||||
oldMedium = self._normalize(oldMedium)
|
||||
@ -232,25 +212,15 @@ class MediaList(cssutils.util.Base, cssutils.util.ListSeq):
|
||||
else:
|
||||
self._log.error(u'"%s" not in this MediaList' % oldMedium,
|
||||
error=xml.dom.NotFoundErr)
|
||||
# raise xml.dom.NotFoundErr(
|
||||
# u'"%s" not in this MediaList' % oldMedium)
|
||||
|
||||
def item(self, index):
|
||||
"""
|
||||
(DOM)
|
||||
Returns the mediaType of the index'th element in the list.
|
||||
If index is greater than or equal to the number of media in the
|
||||
list, returns None.
|
||||
"""Return the mediaType of the `index`'th element in the list.
|
||||
If `index` is greater than or equal to the number of media in the
|
||||
list, returns ``None``.
|
||||
"""
|
||||
try:
|
||||
return self[index].mediaType
|
||||
except IndexError:
|
||||
return None
|
||||
|
||||
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))
|
||||
wellformed = property(lambda self: self._wellformed)
|
||||
|
||||
@ -1,41 +1,22 @@
|
||||
"""
|
||||
MediaQuery, see http://www.w3.org/TR/css3-mediaqueries/
|
||||
"""Implements a DOM for MediaQuery, see
|
||||
http://www.w3.org/TR/css3-mediaqueries/.
|
||||
|
||||
A cssutils own implementation, not defined in official DOM
|
||||
|
||||
TODO:
|
||||
add possibility to
|
||||
|
||||
part of a media_query_list: <media_query> [, <media_query> ]*
|
||||
see stylesheets.MediaList
|
||||
A cssutils implementation, not defined in official DOM.
|
||||
"""
|
||||
__all__ = ['MediaQuery']
|
||||
__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 xml.dom
|
||||
import cssutils
|
||||
|
||||
class MediaQuery(cssutils.util.Base):
|
||||
"""
|
||||
A Media Query consists of a media type and one or more
|
||||
expressions involving media features.
|
||||
A Media Query consists of one of :const:`MediaQuery.MEDIA_TYPES`
|
||||
and one or more expressions involving media features.
|
||||
|
||||
Properties
|
||||
==========
|
||||
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
|
||||
======
|
||||
::
|
||||
Format::
|
||||
|
||||
media_query: [[only | not]? <media_type> [ and <expression> ]*]
|
||||
| <expression> [ and <expression> ]*
|
||||
@ -65,7 +46,7 @@ class MediaQuery(cssutils.util.Base):
|
||||
|
||||
def __init__(self, mediaText=None, readonly=False):
|
||||
"""
|
||||
mediaText
|
||||
:param mediaText:
|
||||
unicodestring of parsable media
|
||||
"""
|
||||
super(MediaQuery, self).__init__()
|
||||
@ -77,26 +58,30 @@ class MediaQuery(cssutils.util.Base):
|
||||
|
||||
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):
|
||||
"""
|
||||
returns serialized property mediaText
|
||||
"""
|
||||
return cssutils.ser.do_stylesheets_mediaquery(self)
|
||||
|
||||
def _setMediaText(self, mediaText):
|
||||
"""
|
||||
mediaText
|
||||
a single media query string, e.g. "print and (min-width: 25cm)"
|
||||
:param mediaText:
|
||||
a single media query string, e.g. ``print and (min-width: 25cm)``
|
||||
|
||||
DOMException
|
||||
|
||||
- SYNTAX_ERR: (self)
|
||||
Raised if the specified string value has a syntax error and is
|
||||
unparsable.
|
||||
- INVALID_CHARACTER_ERR: (self)
|
||||
Raised if the given mediaType is unknown.
|
||||
- NO_MODIFICATION_ALLOWED_ERR: (self)
|
||||
Raised if this media query is readonly.
|
||||
:exceptions:
|
||||
- :exc:`~xml.dom.SyntaxErr`:
|
||||
Raised if the specified string value has a syntax error and is
|
||||
unparsable.
|
||||
- :exc:`~xml.dom.InvalidCharacterErr`:
|
||||
Raised if the given mediaType is unknown.
|
||||
- :exc:`~xml.dom.NoModificationAllowedErr`:
|
||||
Raised if this media query is readonly.
|
||||
"""
|
||||
self._checkReadonly()
|
||||
tokenizer = self._tokenize2(mediaText)
|
||||
@ -171,29 +156,21 @@ class MediaQuery(cssutils.util.Base):
|
||||
self.seq = newseq
|
||||
|
||||
mediaText = property(_getMediaText, _setMediaText,
|
||||
doc="""(DOM) 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
|
||||
doc="The parsable textual representation of the media list.")
|
||||
|
||||
def _setMediaType(self, mediaType):
|
||||
"""
|
||||
mediaType
|
||||
one of MEDIA_TYPES
|
||||
:param mediaType:
|
||||
one of :attr:`MEDIA_TYPES`
|
||||
|
||||
DOMException
|
||||
|
||||
- SYNTAX_ERR: (self)
|
||||
Raised if the specified string value has a syntax error and is
|
||||
unparsable.
|
||||
- INVALID_CHARACTER_ERR: (self)
|
||||
Raised if the given mediaType is unknown.
|
||||
- NO_MODIFICATION_ALLOWED_ERR: (self)
|
||||
Raised if this media query is readonly.
|
||||
:exceptions:
|
||||
- :exc:`~xml.dom.SyntaxErr`:
|
||||
Raised if the specified string value has a syntax error and is
|
||||
unparsable.
|
||||
- :exc:`~xml.dom.InvalidCharacterErr`:
|
||||
Raised if the given mediaType is unknown.
|
||||
- :exc:`~xml.dom.NoModificationAllowedErr`:
|
||||
Raised if this media query is readonly.
|
||||
"""
|
||||
self._checkReadonly()
|
||||
nmediaType = self._normalize(mediaType)
|
||||
@ -223,15 +200,8 @@ class MediaQuery(cssutils.util.Base):
|
||||
else:
|
||||
self.seq.insert(0, mediaType)
|
||||
|
||||
mediaType = property(_getMediaType, _setMediaType,
|
||||
doc="""(DOM) media type (one of MediaQuery.MEDIA_TYPES) of this MediaQuery.""")
|
||||
mediaType = property(lambda self: self._mediaType, _setMediaType,
|
||||
doc="The media type of this MediaQuery (one of "
|
||||
":attr:`MEDIA_TYPES`).")
|
||||
|
||||
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))
|
||||
|
||||
@ -1,12 +1,10 @@
|
||||
"""
|
||||
StyleSheet implements DOM Level 2 Style Sheets StyleSheet.
|
||||
"""
|
||||
"""StyleSheet implements DOM Level 2 Style Sheets StyleSheet."""
|
||||
__all__ = ['StyleSheet']
|
||||
__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 urlparse
|
||||
|
||||
class StyleSheet(cssutils.util.Base2):
|
||||
"""
|
||||
@ -16,7 +14,7 @@ class StyleSheet(cssutils.util.Base2):
|
||||
|
||||
In HTML, the StyleSheet interface represents either an
|
||||
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
|
||||
an external style sheet, included via a style sheet
|
||||
@ -30,14 +28,8 @@ class StyleSheet(cssutils.util.Base2):
|
||||
ownerNode=None,
|
||||
parentStyleSheet=None):
|
||||
"""
|
||||
type: readonly
|
||||
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.
|
||||
type
|
||||
readonly
|
||||
href: readonly
|
||||
If the style sheet is a linked style sheet, the value
|
||||
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
|
||||
attribute is None.
|
||||
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__()
|
||||
|
||||
@ -92,10 +78,31 @@ class StyleSheet(cssutils.util.Base2):
|
||||
self.media = media
|
||||
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``.")
|
||||
|
||||
@ -1,18 +1,15 @@
|
||||
"""
|
||||
StyleSheetList implements DOM Level 2 Style Sheets StyleSheetList.
|
||||
"""
|
||||
"""StyleSheetList implements DOM Level 2 Style Sheets StyleSheetList."""
|
||||
__all__ = ['StyleSheetList']
|
||||
__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):
|
||||
"""
|
||||
Interface StyleSheetList (introduced in DOM Level 2)
|
||||
"""Interface `StyleSheetList` (introduced in DOM Level 2)
|
||||
|
||||
The StyleSheetList interface provides the abstraction of an ordered
|
||||
collection of style sheets.
|
||||
The `StyleSheetList` interface provides the abstraction of an ordered
|
||||
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.
|
||||
|
||||
This Python implementation is based on a standard Python list so e.g.
|
||||
@ -20,9 +17,9 @@ class StyleSheetList(list):
|
||||
"""
|
||||
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,
|
||||
this returns None.
|
||||
this returns ``None``.
|
||||
"""
|
||||
try:
|
||||
return self[index]
|
||||
@ -30,6 +27,6 @@ class StyleSheetList(list):
|
||||
return None
|
||||
|
||||
length = property(lambda self: len(self),
|
||||
doc="""The number of StyleSheets in the list. The range of valid
|
||||
child stylesheet indices is 0 to length-1 inclusive.""")
|
||||
doc="The number of :class:`StyleSheet` objects in the list. The range"
|
||||
" of valid child stylesheet indices is 0 to length-1 inclusive.")
|
||||
|
||||
|
||||
@ -4,11 +4,11 @@
|
||||
"""
|
||||
__all__ = ['Tokenizer', 'CSSProductions']
|
||||
__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 helper import normalize
|
||||
import re
|
||||
|
||||
class Tokenizer(object):
|
||||
"""
|
||||
@ -23,6 +23,8 @@ class Tokenizer(object):
|
||||
u'@page': CSSProductions.PAGE_SYM
|
||||
}
|
||||
_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):
|
||||
"""
|
||||
@ -38,7 +40,6 @@ class Tokenizer(object):
|
||||
productions))
|
||||
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.unicodesub = re.compile(r'\\[0-9a-fA-F]{1,6}(?:\r\n|[\t|\r|\n|\f|\x20])?').sub
|
||||
|
||||
def _expand_macros(self, macros, productions):
|
||||
"""returns macro expanded productions, order of productions is kept"""
|
||||
@ -150,6 +151,9 @@ class Tokenizer(object):
|
||||
# may contain unicode escape, replace with normal char
|
||||
# but do not _normalize (?)
|
||||
value = self.unicodesub(_repl, found)
|
||||
if name in ('STRING', 'INVALID'): #'URI'?
|
||||
# remove \ followed by nl (so escaped) from string
|
||||
value = self.cleanstring('', found)
|
||||
|
||||
else:
|
||||
if 'ATKEYWORD' == name:
|
||||
|
||||
@ -2,25 +2,85 @@
|
||||
"""
|
||||
__all__ = []
|
||||
__docformat__ = 'restructuredtext'
|
||||
__version__ = '$Id: util.py 1453 2008-09-08 20:57:19Z cthedot $'
|
||||
|
||||
import codecs
|
||||
from itertools import ifilter
|
||||
import types
|
||||
import urllib2
|
||||
import xml.dom
|
||||
__version__ = '$Id: util.py 1654 2009-02-03 20:16:20Z cthedot $'
|
||||
|
||||
from helper import normalize
|
||||
from itertools import ifilter
|
||||
import css
|
||||
import codec
|
||||
import codecs
|
||||
import errorhandler
|
||||
import tokenize2
|
||||
import cssutils
|
||||
import encutils
|
||||
import types
|
||||
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.**
|
||||
See cssutils.util.Base2
|
||||
|
||||
Base class for most CSS and StyleSheets classes
|
||||
|
||||
Contains helper methods for inheriting classes helping parsing
|
||||
|
||||
@ -28,9 +88,6 @@ class Base(object):
|
||||
"""
|
||||
__tokenizer2 = tokenize2.Tokenizer()
|
||||
|
||||
_log = cssutils.log
|
||||
_prods = tokenize2.CSSProductions
|
||||
|
||||
# for more on shorthand properties see
|
||||
# http://www.dustindiaz.com/css-shorthand/
|
||||
# format: shorthand: [(propname, mandatorycheck?)*]
|
||||
@ -66,14 +123,6 @@ class Base(object):
|
||||
"""
|
||||
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):
|
||||
"""
|
||||
returns tuple (text, dict-of-namespaces) or if no namespaces are
|
||||
@ -141,7 +190,7 @@ class Base(object):
|
||||
"""
|
||||
if token:
|
||||
value = token[1]
|
||||
return value.replace('\\'+value[0], value[0])[1:-1]
|
||||
return value.replace('\\' + value[0], value[0])[1: - 1]
|
||||
else:
|
||||
return None
|
||||
|
||||
@ -153,10 +202,10 @@ class Base(object):
|
||||
url("\"") => "
|
||||
"""
|
||||
if token:
|
||||
value = token[1][4:-1].strip()
|
||||
if value and (value[0] in '\'"') and (value[0] == value[-1]):
|
||||
value = token[1][4: - 1].strip()
|
||||
if value and (value[0] in '\'"') and (value[0] == value[ - 1]):
|
||||
# a string "..." or '...'
|
||||
value = value.replace('\\'+value[0], value[0])[1:-1]
|
||||
value = value.replace('\\' + value[0], value[0])[1: - 1]
|
||||
return value
|
||||
else:
|
||||
return None
|
||||
@ -190,7 +239,7 @@ class Base(object):
|
||||
|
||||
if blockstartonly: # {
|
||||
ends = u'{'
|
||||
brace = -1 # set to 0 with first {
|
||||
brace = - 1 # set to 0 with first {
|
||||
elif blockendonly: # }
|
||||
ends = u'}'
|
||||
brace = 1
|
||||
@ -205,7 +254,7 @@ class Base(object):
|
||||
# end of mediaquery which may be { or STRING
|
||||
# special case, see below
|
||||
ends = u'{'
|
||||
brace = -1 # set to 0 with first {
|
||||
brace = - 1 # set to 0 with first {
|
||||
endtypes = ('STRING',)
|
||||
elif semicolon:
|
||||
ends = u';'
|
||||
@ -254,7 +303,7 @@ class Base(object):
|
||||
if (brace == bracket == parant == 0) and (
|
||||
val in ends or typ in endtypes):
|
||||
break
|
||||
elif mediaqueryendonly and brace == -1 and (
|
||||
elif mediaqueryendonly and brace == - 1 and (
|
||||
bracket == parant == 0) and typ in endtypes:
|
||||
# mediaqueryendonly with STRING
|
||||
break
|
||||
@ -262,25 +311,12 @@ class Base(object):
|
||||
if separateEnd:
|
||||
# TODO: use this method as generator, then this makes sense
|
||||
if resulttokens:
|
||||
return resulttokens[:-1], resulttokens[-1]
|
||||
return resulttokens[: - 1], resulttokens[ - 1]
|
||||
else:
|
||||
return resulttokens, None
|
||||
else:
|
||||
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):
|
||||
"""
|
||||
adds default productions if not already present, used by
|
||||
@ -295,7 +331,7 @@ class Base(object):
|
||||
"default impl for unexpected @rule"
|
||||
if expected != 'EOF':
|
||||
# TODO: parentStyleSheet=self
|
||||
rule = cssutils.css.CSSUnknownRule()
|
||||
rule = css.CSSUnknownRule()
|
||||
rule.cssText = self._tokensupto2(tokenizer, token)
|
||||
if rule.wellformed:
|
||||
seq.append(rule)
|
||||
@ -307,7 +343,7 @@ class Base(object):
|
||||
|
||||
def COMMENT(expected, seq, token, tokenizer=None):
|
||||
"default implementation for COMMENT token adds CSSCommentRule"
|
||||
seq.append(cssutils.css.CSSComment([token]))
|
||||
seq.append(css.CSSComment([token]))
|
||||
return expected
|
||||
|
||||
def S(expected, seq, token, tokenizer=None):
|
||||
@ -351,7 +387,7 @@ class Base(object):
|
||||
returns (wellformed, expected) which the last prod might have set
|
||||
"""
|
||||
wellformed = True
|
||||
|
||||
|
||||
if initialtoken:
|
||||
# add initialtoken to tokenizer
|
||||
def tokens():
|
||||
@ -362,7 +398,7 @@ class Base(object):
|
||||
fulltokenizer = (t for t in tokens())
|
||||
else:
|
||||
fulltokenizer = tokenizer
|
||||
|
||||
|
||||
if fulltokenizer:
|
||||
prods = self._adddefaultproductions(productions, new)
|
||||
for token in fulltokenizer:
|
||||
@ -375,26 +411,15 @@ class Base(object):
|
||||
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):
|
||||
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):
|
||||
"""
|
||||
adds default productions if not already present, used by
|
||||
@ -409,10 +434,10 @@ class Base2(Base):
|
||||
"default impl for unexpected @rule"
|
||||
if expected != 'EOF':
|
||||
# TODO: parentStyleSheet=self
|
||||
rule = cssutils.css.CSSUnknownRule()
|
||||
rule = css.CSSUnknownRule()
|
||||
rule.cssText = self._tokensupto2(tokenizer, token)
|
||||
if rule.wellformed:
|
||||
seq.append(rule, cssutils.css.CSSRule.UNKNOWN_RULE,
|
||||
seq.append(rule, css.CSSRule.UNKNOWN_RULE,
|
||||
line=token[2], col=token[3])
|
||||
return expected
|
||||
else:
|
||||
@ -425,7 +450,7 @@ class Base2(Base):
|
||||
if expected == 'EOF':
|
||||
new['wellformed'] = False
|
||||
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
|
||||
|
||||
def S(expected, seq, token, tokenizer=None):
|
||||
@ -493,7 +518,7 @@ class Seq(object):
|
||||
else:
|
||||
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
|
||||
simply replace value or type
|
||||
@ -503,7 +528,13 @@ class Seq(object):
|
||||
else:
|
||||
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
|
||||
"""
|
||||
@ -511,15 +542,16 @@ class Seq(object):
|
||||
raise AttributeError('Seq is readonly.')
|
||||
else:
|
||||
old = self._seq[index]
|
||||
self._seq[index] = Item(old.value + val, old.type,
|
||||
self._seq[index] = Item(old.value + val, old.type,
|
||||
old.line, old.col)
|
||||
|
||||
def __repr__(self):
|
||||
"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__,
|
||||
u',\n '.join([u'%r' % item for item in self._seq]
|
||||
))
|
||||
), self._readonly)
|
||||
|
||||
def __str__(self):
|
||||
vals = []
|
||||
for v in self:
|
||||
@ -529,10 +561,10 @@ class Seq(object):
|
||||
vals.append(v.value[1])
|
||||
else:
|
||||
vals.append(str(v))
|
||||
|
||||
return "<cssutils.%s.%s object length=%r valuestring=%r at 0x%x>" % (
|
||||
self.__module__, self.__class__.__name__, len(self),
|
||||
u''.join(vals), id(self))
|
||||
|
||||
return "<cssutils.%s.%s object length=%r values=%r readonly=%r at 0x%x>" % (
|
||||
self.__module__, self.__class__.__name__, len(self),
|
||||
u''.join(vals), self._readonly, id(self))
|
||||
|
||||
class Item(object):
|
||||
"""
|
||||
@ -671,7 +703,7 @@ class _Namespaces(object):
|
||||
prefix = u'' # None or ''
|
||||
rule = self.__findrule(prefix)
|
||||
if not rule:
|
||||
self.parentStyleSheet.insertRule(cssutils.css.CSSNamespaceRule(
|
||||
self.parentStyleSheet.insertRule(css.CSSNamespaceRule(
|
||||
prefix=prefix,
|
||||
namespaceURI=namespaceURI),
|
||||
inOrder=True)
|
||||
@ -688,7 +720,12 @@ class _Namespaces(object):
|
||||
if rule.prefix == prefix:
|
||||
return rule
|
||||
|
||||
def __getNamespaces(self):
|
||||
@property
|
||||
def namespaces(self):
|
||||
"""
|
||||
A property holding only effective @namespace rules in
|
||||
self.parentStyleSheets.
|
||||
"""
|
||||
namespaces = {}
|
||||
for rule in ifilter(lambda r: r.type == r.NAMESPACE_RULE,
|
||||
reversed(self.parentStyleSheet.cssRules)):
|
||||
@ -696,10 +733,6 @@ class _Namespaces(object):
|
||||
namespaces[rule.prefix] = rule.namespaceURI
|
||||
return namespaces
|
||||
|
||||
namespaces = property(__getNamespaces,
|
||||
doc=u'Holds only effective @namespace rules in self.parentStyleSheets'
|
||||
'@namespace rules.')
|
||||
|
||||
def get(self, prefix, default):
|
||||
return self.namespaces.get(prefix, default)
|
||||
|
||||
@ -751,35 +784,6 @@ class _SimpleNamespaces(_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):
|
||||
"""
|
||||
Read cssText from url and decode it using all relevant methods (HTTP
|
||||
@ -824,9 +828,14 @@ def _readUrl(url, fetcher=None, overrideEncoding=None, parentEncoding=None):
|
||||
elif httpEncoding:
|
||||
enctype = 1 # 1. HTTP
|
||||
encoding = httpEncoding
|
||||
else:
|
||||
# check content
|
||||
contentEncoding, explicit = cssutils.codec.detectencoding_str(content)
|
||||
else:
|
||||
if isinstance(content, unicode):
|
||||
# no need to check content as unicode so no BOM
|
||||
explicit = False
|
||||
else:
|
||||
# check content
|
||||
contentEncoding, explicit = codec.detectencoding_str(content)
|
||||
|
||||
if explicit:
|
||||
enctype = 2 # 2. BOM/@charset: explicitly
|
||||
encoding = contentEncoding
|
||||
@ -838,18 +847,17 @@ def _readUrl(url, fetcher=None, overrideEncoding=None, parentEncoding=None):
|
||||
enctype = 5 # 5. assume UTF-8
|
||||
encoding = 'utf-8'
|
||||
|
||||
try:
|
||||
# encoding may still be wrong if encoding *is lying*!
|
||||
if isinstance(content, unicode):
|
||||
decodedCssText = content
|
||||
elif content is not None:
|
||||
if isinstance(content, unicode):
|
||||
decodedCssText = content
|
||||
else:
|
||||
try:
|
||||
# encoding may still be wrong if encoding *is lying*!
|
||||
decodedCssText = codecs.lookup("css")[1](content, encoding=encoding)[0]
|
||||
else:
|
||||
except UnicodeDecodeError, e:
|
||||
log.warn(e, neverraise=True)
|
||||
decodedCssText = None
|
||||
except UnicodeDecodeError, e:
|
||||
cssutils.log.warn(e, neverraise=True)
|
||||
decodedCssText = None
|
||||
|
||||
return encoding, enctype, decodedCssText
|
||||
else:
|
||||
return None, None, None
|
||||
|
||||
|
||||
903
upload.py
903
upload.py
@ -1,11 +1,30 @@
|
||||
#!/usr/bin/python
|
||||
import sys, os, shutil, time, tempfile, socket, fcntl, struct, cStringIO, pycurl, re
|
||||
sys.path.append('src')
|
||||
import subprocess
|
||||
from subprocess import check_call as _check_call
|
||||
from functools import partial
|
||||
from __future__ import with_statement
|
||||
__license__ = 'GPL 3'
|
||||
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
|
||||
__docformat__ = 'restructuredtext en'
|
||||
|
||||
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):
|
||||
import fcntl
|
||||
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
return socket.inet_ntoa(fcntl.ioctl(
|
||||
s.fileno(),
|
||||
@ -16,252 +35,668 @@ def get_ip_address(ifname):
|
||||
try:
|
||||
HOST=get_ip_address('eth0')
|
||||
except:
|
||||
HOST=get_ip_address('wlan0')
|
||||
PROJECT=os.path.basename(os.getcwd())
|
||||
try:
|
||||
HOST=get_ip_address('wlan0')
|
||||
except:
|
||||
HOST='unknown'
|
||||
|
||||
def newer(targets, sources):
|
||||
'''
|
||||
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
|
||||
|
||||
|
||||
from calibre import __version__, __appname__
|
||||
|
||||
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/'
|
||||
BUILD_SCRIPT ='''\
|
||||
#!/bin/bash
|
||||
export CALIBRE_BUILDBOT=1
|
||||
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)
|
||||
class OptionlessCommand(Command):
|
||||
user_options = []
|
||||
def initialize_options(self): pass
|
||||
def finalize_options(self): pass
|
||||
|
||||
def run(self):
|
||||
for cmd_name in self.get_sub_commands():
|
||||
self.run_command(cmd_name)
|
||||
|
||||
|
||||
def tag_release():
|
||||
print 'Tagging release'
|
||||
check_call('bzr tag '+__version__)
|
||||
check_call('bzr commit --unchanged -m "IGN:Tag release"')
|
||||
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):
|
||||
if ext in ('exe', 'dmg'):
|
||||
return 'dist/%s-%s.%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):
|
||||
ibp = os.path.abspath('installer/windows')
|
||||
sys.path.insert(0, ibp)
|
||||
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')
|
||||
class build_linux(OptionlessCommand):
|
||||
description = 'Build linux installer'
|
||||
def run(self):
|
||||
installer = installer_name('tar.bz2')
|
||||
locals = {}
|
||||
exec open('installer/linux/freeze.py') in locals
|
||||
locals['freeze']()
|
||||
if not os.path.exists(installer):
|
||||
raise Exception('Failed to build installer '+installer)
|
||||
return os.path.basename(installer)
|
||||
|
||||
def build_windows(shutdown=True):
|
||||
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)
|
||||
class VMInstaller(OptionlessCommand):
|
||||
|
||||
user_options = [('dont-shutdown', 'd', 'Dont shutdown Vm after build')]
|
||||
boolean_options = ['dont-shutdown']
|
||||
|
||||
def initialize_options(self):
|
||||
self.dont_shutdown = False
|
||||
|
||||
BUILD_SCRIPT = textwrap.dedent('''\
|
||||
#!/bin/bash
|
||||
export CALIBRE_BUILDBOT=1
|
||||
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=__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)
|
||||
|
||||
def build_osx(shutdown=True):
|
||||
installer = installer_name('dmg')
|
||||
vm = '/vmware/Mac OSX/Mac OSX.vmx'
|
||||
python = '/Library/Frameworks/Python.framework/Versions/Current/bin/python'
|
||||
start_vm(vm, 'osx', (BUILD_SCRIPT%('sudo %s setup.py develop'%python, python, 'installer/osx/freeze.py')).replace('rm ', 'sudo rm '))
|
||||
subprocess.check_call(('scp', 'osx:build/%s/dist/*.dmg'%PROJECT, 'dist'))
|
||||
if not os.path.exists(installer):
|
||||
raise Exception('Failed to build installer '+installer)
|
||||
if shutdown:
|
||||
subprocess.Popen(('ssh', 'osx', 'sudo', '/sbin/shutdown', '-h', 'now'))
|
||||
return os.path.basename(installer)
|
||||
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):
|
||||
installer = installer_name('tar.bz2')
|
||||
exec open('installer/linux/freeze.py')
|
||||
freeze()
|
||||
if not os.path.exists(installer):
|
||||
raise Exception('Failed to build installer '+installer)
|
||||
return os.path.basename(installer)
|
||||
|
||||
def build_installers():
|
||||
return build_linux(), build_windows(), build_osx()
|
||||
|
||||
def upload_demo():
|
||||
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,))
|
||||
check_call('cd src/calibre/ebooks/lrf/html/demo/ && zip -j /tmp/html-demo.zip * /tmp/html2lrf.lrf')
|
||||
check_call('''scp /tmp/html-demo.zip divok:%s/'''%(DOWNLOADS,))
|
||||
check_call('''txt2lrf -t 'Demonstration of txt2lrf' -a 'Kovid Goyal' '''
|
||||
'''--header -o /tmp/txt2lrf.lrf %s/demo.txt'''%(TXT2LRF,) )
|
||||
check_call('cd src/calibre/ebooks/lrf/txt/demo/ && zip -j /tmp/txt-demo.zip * /tmp/txt2lrf.lrf')
|
||||
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()
|
||||
class build_osx(VMInstaller):
|
||||
description = 'Build OS X app bundle'
|
||||
VM = '/vmware/Mac OSX/Mac OSX.vmx'
|
||||
if not os.path.exists(VM):
|
||||
VM = '/home/kovid/calibre_os_x/Mac OSX.vmx'
|
||||
|
||||
def get_build_script(self, subs):
|
||||
return (self.BUILD_SCRIPT%subs).replace('rm ', 'sudo rm ')
|
||||
|
||||
def run(self):
|
||||
installer = installer_name('dmg')
|
||||
python = '/Library/Frameworks/Python.framework/Versions/Current/bin/python'
|
||||
self.start_vm('osx', ('sudo %s setup.py develop'%python, python,
|
||||
'installer/osx/freeze.py'))
|
||||
check_call(('scp', 'osx:build/calibre/dist/*.dmg', 'dist'))
|
||||
if not os.path.exists(installer):
|
||||
raise Exception('Failed to build installer '+installer)
|
||||
if not self.dont_shutdown:
|
||||
Popen(('ssh', 'osx', 'sudo', '/sbin/shutdown', '-h', 'now'))
|
||||
return os.path.basename(installer)
|
||||
|
||||
|
||||
def curl_upload_file(stream, url):
|
||||
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:
|
||||
|
||||
class upload_installers(OptionlessCommand):
|
||||
description = 'Upload any installers present in dist/'
|
||||
def curl_list_dir(self, url=MOBILEREAD, listonly=1):
|
||||
import pycurl
|
||||
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()
|
||||
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 upload_installer(name):
|
||||
if not os.path.exists(name):
|
||||
return
|
||||
bname = os.path.basename(name)
|
||||
pat = re.compile(bname.replace(__version__, r'\d+\.\d+\.\d+'))
|
||||
for f in curl_list_dir():
|
||||
if pat.search(f):
|
||||
curl_delete_file('/calibre/'+f)
|
||||
curl_upload_file(open(name, 'rb'), MOBILEREAD+os.path.basename(name))
|
||||
|
||||
def upload_installers():
|
||||
for i in ('dmg', 'exe', 'tar.bz2'):
|
||||
upload_installer(installer_name(i))
|
||||
|
||||
check_call('''ssh divok echo %s \\> %s/latest_version'''%(__version__, DOWNLOADS))
|
||||
|
||||
|
||||
def upload_docs():
|
||||
check_call('''epydoc --config epydoc.conf''')
|
||||
check_call('''scp -r docs/html divok:%s/'''%(DOCS,))
|
||||
check_call('''epydoc -v --config epydoc-pdf.conf''')
|
||||
check_call('''scp docs/pdf/api.pdf divok:%s/'''%(DOCS,))
|
||||
|
||||
def upload_user_manual():
|
||||
check_call('python setup.py manual')
|
||||
check_call('scp -r src/calibre/manual/.build/html/* divok:%s'%USER_MANUAL)
|
||||
return b.getvalue().split() if listonly else b.getvalue().splitlines()
|
||||
|
||||
def build_src_tarball():
|
||||
check_call('bzr export dist/calibre-%s.tar.gz'%__version__)
|
||||
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.close()
|
||||
|
||||
|
||||
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(self, name):
|
||||
if not os.path.exists(name):
|
||||
return
|
||||
bname = os.path.basename(name)
|
||||
pat = re.compile(bname.replace(__version__, r'\d+\.\d+\.\d+'))
|
||||
for f in self.curl_list_dir():
|
||||
if pat.search(f):
|
||||
self.curl_delete_file('/calibre/'+f)
|
||||
self.curl_upload_file(open(name, 'rb'), MOBILEREAD+os.path.basename(name))
|
||||
|
||||
def upload_src_tarball():
|
||||
check_call('ssh divok rm -f %s/calibre-\*.tar.gz'%DOWNLOADS)
|
||||
check_call('scp dist/calibre-*.tar.gz divok:%s/'%DOWNLOADS)
|
||||
def run(self):
|
||||
print 'Uploading installers...'
|
||||
for i in ('dmg', 'exe', 'tar.bz2'):
|
||||
self.upload_installer(installer_name(i))
|
||||
|
||||
check_call('''ssh divok echo %s \\> %s/latest_version'''\
|
||||
%(__version__, DOWNLOADS), shell=True)
|
||||
|
||||
def stage_one():
|
||||
check_call('sudo rm -rf build src/calibre/plugins/*', shell=True)
|
||||
os.mkdir('build')
|
||||
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():
|
||||
subprocess.check_call('rm -rf dist/*', shell=True)
|
||||
build_installers()
|
||||
|
||||
def stage_three():
|
||||
print 'Uploading installers...'
|
||||
upload_installers()
|
||||
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():
|
||||
subprocess.check_call('rm -f dist/*', shell=True)
|
||||
build_installers()
|
||||
check_call('ssh divok rm -f /var/www/calibre.kovidgoyal.net/htdocs/downloads/betas/*')
|
||||
check_call('scp dist/* divok:/var/www/calibre.kovidgoyal.net/htdocs/downloads/betas/')
|
||||
|
||||
def main(args=sys.argv):
|
||||
print 'Starting stage one...'
|
||||
stage_one()
|
||||
print 'Starting stage two...'
|
||||
stage_two()
|
||||
print 'Starting stage three...'
|
||||
stage_three()
|
||||
print 'Finished'
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main())
|
||||
class upload_user_manual(OptionlessCommand):
|
||||
description = 'Build and upload the User Manual'
|
||||
sub_commands = [('manual', None)]
|
||||
|
||||
def run(self):
|
||||
OptionlessCommand.run(self)
|
||||
check_call(' '.join(['scp', '-r', 'src/calibre/manual/.build/html/*',
|
||||
'divok:%s'%USER_MANUAL]), shell=True)
|
||||
|
||||
class upload_to_pypi(OptionlessCommand):
|
||||
description = 'Upload eggs and source to PyPI'
|
||||
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())
|
||||
|
||||
class stage3(OptionlessCommand):
|
||||
description = 'Stage 3 of the build process'
|
||||
sub_commands = [
|
||||
('upload_installers', None),
|
||||
('upload_user_manual', None),
|
||||
('upload_to_pypi', None),
|
||||
]
|
||||
|
||||
@classmethod
|
||||
def misc(cls):
|
||||
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 run(self):
|
||||
OptionlessCommand.run(self)
|
||||
self.misc()
|
||||
|
||||
class stage2(OptionlessCommand):
|
||||
description = 'Stage 2 of the build process'
|
||||
sub_commands = [
|
||||
('build_linux', None),
|
||||
('build_windows', None),
|
||||
('build_osx', None)
|
||||
]
|
||||
|
||||
def run(self):
|
||||
check_call('rm -rf dist/*', shell=True)
|
||||
OptionlessCommand.run(self)
|
||||
|
||||
class stage1(OptionlessCommand):
|
||||
description = 'Stage 1 of the build process'
|
||||
sub_commands = [
|
||||
('update', None),
|
||||
('tag_release', None),
|
||||
('upload_demo', None),
|
||||
]
|
||||
|
||||
class upload(OptionlessCommand):
|
||||
description = 'Build and upload calibre to the servers'
|
||||
|
||||
sub_commands = [
|
||||
('stage1', None),
|
||||
('stage2', None),
|
||||
('stage3', None)
|
||||
]
|
||||
Loading…
x
Reference in New Issue
Block a user