diff --git a/.project b/.project deleted file mode 100644 index 684c2fe798..0000000000 --- a/.project +++ /dev/null @@ -1,18 +0,0 @@ - - - libprs500 - - - ipython - - - - org.python.pydev.PyDevBuilder - - - - - - org.python.pydev.pythonNature - - diff --git a/.pydevproject b/.pydevproject deleted file mode 100644 index 509137a36a..0000000000 --- a/.pydevproject +++ /dev/null @@ -1,10 +0,0 @@ - - - - -python 2.6 - -/calibre-pluginize/src - -Default - diff --git a/resources/images/news/business_standard.png b/resources/images/news/business_standard.png new file mode 100644 index 0000000000..1edff420c0 Binary files /dev/null and b/resources/images/news/business_standard.png differ diff --git a/resources/images/news/lemonde_dip.png b/resources/images/news/lemonde_dip.png new file mode 100644 index 0000000000..1f3b4c12c0 Binary files /dev/null and b/resources/images/news/lemonde_dip.png differ diff --git a/setup.py b/setup.py index b0acff3963..d8bd0267ee 100644 --- a/setup.py +++ b/setup.py @@ -41,7 +41,14 @@ def clean_backups(): def main(args=sys.argv): if len(args) == 1 or args[1] in ('-h', '--help'): print 'Usage: python', args[0], 'command', '[options]' - print '\nWhere command is one of:', ', '.join(commands.__all__) + print '\nWhere command is one of:' + print + for x in sorted(commands.__all__): + print '%-20s -'%x, + c = getattr(commands, x) + desc = getattr(c, 'short_description', c.description) + print desc + print '\nTo get help on a particular command, run:' print '\tpython', args[0], 'command -h' return 1 @@ -83,7 +90,7 @@ def main(args=sys.argv): prints('There were', len(warnings), 'warning(s):') print for args, kwargs in warnings: - prints(*args, **kwargs) + prints('*', *args, **kwargs) print return 0 diff --git a/setup/__init__.py b/setup/__init__.py index 714a3bcb85..d7b9d2321d 100644 --- a/setup/__init__.py +++ b/setup/__init__.py @@ -111,6 +111,7 @@ class Command(object): self.b = os.path.basename self.s = os.path.splitext self.e = os.path.exists + self.orig_euid = os.geteuid() if hasattr(os, 'geteuid') else None self.real_uid = os.environ.get('SUDO_UID', None) self.real_gid = os.environ.get('SUDO_GID', None) self.real_user = os.environ.get('SUDO_USER', None) @@ -121,19 +122,19 @@ class Command(object): if self.real_user is not None: self.info('Dropping privileges to those of', self.real_user+':', self.real_uid) + if self.real_gid is not None: + os.setegid(int(self.real_gid)) if self.real_uid is not None: os.seteuid(int(self.real_uid)) - #if self.real_gid is not None: - # os.setegid(int(self.real_gid)) def regain_privileges(self): if not islinux or isosx: return - if os.geteuid() != 0: + if os.geteuid() != 0 and self.orig_euid == 0: self.info('Trying to get root privileges') os.seteuid(0) - #if os.getegid() != 0: - # os.setegid(0) + if os.getegid() != 0: + os.setegid(0) def pre_sub_commands(self, opts): pass diff --git a/setup/build_environment.py b/setup/build_environment.py index 42fdea5d07..f5bc969581 100644 --- a/setup/build_environment.py +++ b/setup/build_environment.py @@ -6,7 +6,7 @@ __license__ = 'GPL v3' __copyright__ = '2009, Kovid Goyal ' __docformat__ = 'restructuredtext en' -import os, socket, struct, subprocess +import os, socket, struct, subprocess, glob from distutils.spawn import find_executable from PyQt4 import pyqtconfig @@ -84,6 +84,7 @@ ft_lib_dirs = [] ft_libs = [] jpg_libs = [] jpg_lib_dirs = [] +poppler_objs = [] fc_inc = '/usr/include/fontconfig' fc_lib = '/usr/lib' podofo_inc = '/usr/include/podofo' @@ -102,7 +103,8 @@ if iswindows: (r'C:\cygwin\home\kovid\poppler\poppler-build\qt4\src\Release;' r'C:\cygwin\home\kovid\poppler\poppler-build\Release')) popplerqt4_lib_dirs = poppler_lib_dirs - poppler_libs = ['poppler', 'poppler-qt4'] + poppler_libs = [] + poppler_objs = glob.glob(r'C:\cygwin\home\kovid\poppler\poppler-build\poppler.dir\Release\*.obj') popplerqt4_libs = poppler_libs + ['QtCore4', 'QtGui4'] png_inc_dirs = [r'C:\cygwin\home\\kovid\gnuwin32\include'] png_lib_dirs = [r'C:\cygwin\home\\kovid\gnuwin32\lib'] @@ -120,14 +122,22 @@ elif isosx: fc_inc = '/Users/kovid/fontconfig/include/fontconfig' fc_lib = '/Users/kovid/fontconfig/lib' poppler_inc_dirs = consolidate('POPPLER_INC_DIR', - '/Volumes/sw/build/poppler-0.10.7/poppler') + '/Volumes/sw/build/poppler-0.12.0/poppler:/Volumes/sw/build/poppler-0.12.0') popplerqt4_inc_dirs = poppler_inc_dirs + [poppler_inc_dirs[0]+'/qt4'] poppler_lib_dirs = consolidate('POPPLER_LIB_DIR', - '/Users/kovid/poppler/lib') + '/Volumes/sw/lib') popplerqt4_lib_dirs = poppler_lib_dirs poppler_libs = popplerqt4_libs = ['poppler'] podofo_inc = '/usr/local/include/podofo' podofo_lib = '/usr/local/lib' + magick_inc_dirs = consolidate('MAGICK_INC', + '/Users/kovid/ImageMagick/include/ImageMagick') + magick_lib_dirs = consolidate('MAGICK_LIB', + '/Users/kovid/ImageMagick/lib') + magick_libs = ['MagickWand', 'MagickCore'] + png_inc_dirs = consolidate('PNG_INC_DIR', '/usr/local/include') + png_lib_dirs = consolidate('PNG_LIB_DIR', '/usr/local/lib') + png_libs = ['png'] else: # Include directories poppler_inc_dirs = pkgconfig_include_dirs('poppler', diff --git a/setup/check.py b/setup/check.py index 75a6d82530..14992b1628 100644 --- a/setup/check.py +++ b/setup/check.py @@ -37,6 +37,8 @@ def check_for_python_errors(filename, builtins): class Check(Command): + description = 'Check for errors in the calibre source code' + BUILTINS = ['_', '__', 'dynamic_property', 'I', 'P'] CACHE = '.check-cache.pickle' diff --git a/setup/extensions.py b/setup/extensions.py index 2c1aa07815..7228cf3d03 100644 --- a/setup/extensions.py +++ b/setup/extensions.py @@ -16,7 +16,7 @@ from setup.build_environment import fc_inc, fc_lib, \ fc_error, poppler_libs, poppler_lib_dirs, poppler_inc_dirs, podofo_inc, \ podofo_lib, podofo_error, poppler_error, pyqt, OSX_SDK, NMAKE, \ leopard_build, QMAKE, msvc, MT, win_inc, win_lib, png_inc_dirs, \ - magick_inc_dirs, magick_lib_dirs, png_lib_dirs, png_libs, \ + magick_inc_dirs, magick_lib_dirs, png_lib_dirs, png_libs, poppler_objs, \ magick_error, magick_libs, ft_lib_dirs, ft_libs, jpg_libs, jpg_lib_dirs MT isunix = islinux or isosx @@ -39,6 +39,7 @@ class Extension(object): self.sip_files = self.absolutize(kwargs.get('sip_files', [])) self.inc_dirs = self.absolutize(kwargs.get('inc_dirs', [])) self.lib_dirs = self.absolutize(kwargs.get('lib_dirs', [])) + self.extra_objs = self.absolutize(kwargs.get('extra_objs', [])) self.error = kwargs.get('error', None) self.libraries = kwargs.get('libraries', []) self.cflags = kwargs.get('cflags', []) @@ -60,6 +61,7 @@ extensions = [ libraries=poppler_libs+magick_libs+png_libs+ft_libs+jpg_libs+pdfreflow_libs, lib_dirs=poppler_lib_dirs+magick_lib_dirs+png_lib_dirs+ft_lib_dirs+jpg_lib_dirs, inc_dirs=poppler_inc_dirs+magick_inc_dirs+png_inc_dirs, + extra_objs=poppler_objs, error=reflow_error, cflags=['-DPNG_SKIP_SETJMP_CHECK'] if islinux else [] ), @@ -148,6 +150,7 @@ if isosx: x, p = ('x86_64', 'ppc64') if leopard_build else ('i386', 'ppc') archs = ['-arch', x, '-arch', p, '-isysroot', OSX_SDK] + cflags.append('-D_OSX') cflags.extend(archs) ldflags.extend(archs) ldflags.extend('-bundle -undefined dynamic_lookup'.split()) @@ -159,6 +162,9 @@ if iswindows: cc = cxx = msvc.cc cflags = '/c /nologo /Ox /MD /W3 /EHsc /DNDEBUG'.split() ldflags = '/DLL /nologo /INCREMENTAL:NO'.split() + #cflags = '/c /nologo /Ox /MD /W3 /EHsc /Zi'.split() + #ldflags = '/DLL /nologo /INCREMENTAL:NO /DEBUG'.split() + for p in win_inc: cflags.append('-I'+p) for p in win_lib: @@ -169,6 +175,8 @@ if iswindows: class Build(Command): + short_description = 'Build calibre C/C++ extension modules' + description = textwrap.dedent('''\ calibre depends on several python extensions written in C/C++. This command will compile them. You can influence the compile @@ -268,9 +276,9 @@ class Build(Command): cmd = [linker] if iswindows: cmd += ldflags + ext.ldflags + elib + xlib + \ - ['/EXPORT:init'+ext.name] + objects + ['/OUT:'+dest] + ['/EXPORT:init'+ext.name] + objects + ext.extra_objs + ['/OUT:'+dest] else: - cmd += objects + ['-o', dest] + ldflags + ext.ldflags + elib + xlib + cmd += objects + ext.extra_objs + ['-o', dest] + ldflags + ext.ldflags + elib + xlib self.info('\n\n', ' '.join(cmd), '\n\n') subprocess.check_call(cmd) if iswindows: diff --git a/setup/gui.py b/setup/gui.py index a73c3466e3..058a3f052f 100644 --- a/setup/gui.py +++ b/setup/gui.py @@ -6,7 +6,7 @@ __license__ = 'GPL v3' __copyright__ = '2009, Kovid Goyal ' __docformat__ = 'restructuredtext en' -import os, cStringIO, re +import os from setup import Command, __appname__ @@ -17,6 +17,8 @@ class GUI(Command): @classmethod def find_forms(cls): + from calibre.gui2 import find_forms + return find_forms(cls.SRC) forms = [] for root, _, files in os.walk(cls.PATH): for name in files: @@ -27,7 +29,8 @@ class GUI(Command): @classmethod def form_to_compiled_form(cls, form): - return form.rpartition('.')[0]+'_ui.py' + from calibre.gui2 import form_to_compiled_form + return form_to_compiled_form(form) def run(self, opts): self.build_forms() @@ -53,38 +56,8 @@ class GUI(Command): def build_forms(self): - from PyQt4.uic import compileUi - forms = self.find_forms() - pat = re.compile(r'''(['"]):/images/([^'"]+)\1''') - def sub(match): - ans = 'I(%s%s%s)'%(match.group(1), match.group(2), match.group(1)) - return ans - - 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: - self.info('\tCompiling form', form) - buf = cStringIO.StringIO() - compileUi(form, buf) - dat = buf.getvalue() - dat = dat.replace('__appname__', __appname__) - dat = dat.replace('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 = dat.replace('from convert.xpath_wizard import', - 'from calibre.gui2.convert.xpath_wizard import') - dat = re.compile(r'QtGui.QApplication.translate\(.+?,\s+"(.+?)(?' __docformat__ = 'restructuredtext en' -import sys, os, textwrap, subprocess, shutil, tempfile, atexit +import sys, os, textwrap, subprocess, shutil, tempfile, atexit, stat from setup import Command, islinux, basenames, modules, functions, \ __appname__, __version__ @@ -19,28 +19,26 @@ This is the standard runscript for all of calibre's tools. Do not modify it unless you know what you are doing. """ -import sys +import sys, os + +path = os.environ.get('CALIBRE_PYTHON_PATH', {path!r}) +sys.path.insert(0, path) + +sys.resources_location = os.environ.get('CALIBRE_RESOURCES_PATH', {resources!r}) +sys.extensions_location = os.environ.get('CALIBRE_EXTENSIONS_PATH', {extensions!r}) + ''' TEMPLATE = HEADER+''' -sys.path.insert(0, {path!r}) - -sys.resources_location = {resources!r} -sys.extensions_location = {extensions!r} - from {module} import {func!s} sys.exit({func!s}()) ''' COMPLETE_TEMPLATE = HEADER+''' -import os -sys.path.insert(0, {path!r}) -sys.path.insert(0, os.path.join({path!r}, 'calibre', 'utils')) +sys.path.insert(0, os.path.join(path, 'calibre', 'utils')) import complete sys.path = sys.path[1:] -sys.resources_location = {resources!r} -sys.extensions_location = {extensions!r} sys.exit(complete.main()) ''' @@ -53,96 +51,145 @@ class Develop(Command): the prefix of your python installation. This can be controlled via the --prefix option. ''') + short_description = 'Setup a development environment for calibre' MODE = 0755 sub_commands = ['build', 'resources', 'gui'] + def add_postinstall_options(self, parser): + parser.add_option('--make-errors-fatal', action='store_true', default=False, + dest='fatal_errors', help='If set die on post install errors.') + parser.add_option('--no-postinstall', action='store_false', + dest='postinstall', default=True, + help='Don\'t run post install actions like creating MAN pages, setting'+ + ' up desktop integration and so on') + + def add_options(self, parser): parser.add_option('--prefix', help='Binaries will be installed in /bin') - self.root = '' + self.add_postinstall_options(parser) + + def consolidate_paths(self): + opts = self.opts + if not opts.prefix: + opts.prefix = sys.prefix + for x in ('prefix', 'libdir', 'bindir', 'sharedir', 'staging_root', + 'staging_libdir', 'staging_bindir', 'staging_sharedir'): + o = getattr(opts, x, None) + if o: + setattr(opts, x, os.path.abspath(o)) + self.libdir = getattr(opts, 'libdir', None) + if self.libdir is None: + self.libdir = self.j(opts.prefix, 'lib') + self.bindir = getattr(opts, 'bindir', None) + if self.bindir is None: + self.bindir = self.j(opts.prefix, 'bin') + self.sharedir = getattr(opts, 'sharedir', None) + if self.sharedir is None: + self.sharedir = self.j(opts.prefix, 'share') + if not getattr(opts, 'staging_root', None): + opts.staging_root = opts.prefix + self.staging_libdir = getattr(opts, 'staging_libdir', None) + if self.staging_libdir is None: + self.staging_libdir = opts.staging_libdir = self.j(opts.staging_root, 'lib') + self.staging_bindir = getattr(opts, 'staging_bindir', None) + if self.staging_bindir is None: + self.staging_bindir = opts.staging_bindir = self.j(opts.staging_root, 'bin') + self.staging_sharedir = getattr(opts, 'staging_sharedir', None) + if self.staging_sharedir is None: + self.staging_sharedir = opts.staging_sharedir = self.j(opts.staging_root, 'share') + + self.staging_libdir = opts.staging_libdir = self.j(self.staging_libdir, 'calibre') + self.staging_sharedir = opts.staging_sharedir = self.j(self.staging_sharedir, 'calibre') + + if self.__class__.__name__ == 'Develop': + self.libdir = self.SRC + self.sharedir = self.RESOURCES + else: + self.libdir = self.j(self.libdir, 'calibre') + self.sharedir = self.j(self.sharedir, 'calibre') + self.info('INSTALL paths:') + self.info('\tLIB:', self.staging_libdir) + self.info('\tSHARE:', self.staging_sharedir) + def pre_sub_commands(self, opts): if not islinux: - self.info('\nSetting up a development environment is only ' - 'supported on linux. On other platforms, install the calibre ' - 'binary and use the calibre-debug command.') + self.info('\nSetting up a source based development environment is only ' + 'supported on linux. On other platforms, see the User Manual' + ' for help with setting up a development environment.') raise SystemExit(1) - if not os.geteuid() == 0: - self.info('\nError: This command must be run as root.') - raise SystemExit(1) - self.drop_privileges() + if os.geteuid() == 0: + self.drop_privileges() + # Ensure any calibre config files are created as correct user + import calibre.utils.config as c + c def run(self, opts): + self.manifest = [] + self.opts = opts self.regain_privileges() - self.find_locations(opts) - self.write_templates(opts) + self.consolidate_paths() + self.write_templates() self.setup_mount_helper() - self.install_files(opts) + self.install_files() self.run_postinstall() self.success() def setup_mount_helper(self): def warn(): self.warn('Failed to compile mount helper. Auto mounting of', - 'devices will not work') + ' devices will not work') if os.geteuid() != 0: - return warn() - import stat + return self.warn('Must be run as root to compile mount helper. Auto ' + 'mounting of devices will not work.') src = os.path.join(self.SRC, 'calibre', 'devices', 'linux_mount_helper.c') - dest = self.root + os.path.join(self.bindir, 'calibre-mount-helper') + dest = os.path.join(self.staging_bindir, 'calibre-mount-helper') self.info('Installing mount helper to '+ dest) - p = subprocess.Popen(['gcc', '-Wall', src, '-o', dest]) + p = subprocess.Popen(['gcc', '-Wall', '-pedantic', src, '-o', dest]) ret = p.wait() if ret != 0: return warn() os.chown(dest, 0, 0) - os.chmod(dest, - stat.S_ISUID|stat.S_ISGID|stat.S_IRUSR|stat.S_IWUSR|stat.S_IXUSR|stat.S_IXGRP|stat.S_IXOTH) + os.chmod(dest, stat.S_ISUID|stat.S_ISGID|stat.S_IRUSR|stat.S_IWUSR|\ + stat.S_IXUSR|stat.S_IXGRP|stat.S_IXOTH) + self.manifest.append(dest) return dest - def install_files(self, opts): + def install_files(self): pass def run_postinstall(self): - env = dict(**os.environ) - env['DESTDIR'] = self.prefix - subprocess.check_call(['calibre_postinstall', '--use-destdir'], env=env) + if self.opts.postinstall: + from calibre.linux import PostInstall + PostInstall(self.opts, info=self.info, warn=self.warn, + manifest=self.manifest) def success(self): self.info('\nDevelopment environment successfully setup') - def find_locations(self, opts): - self.prefix = opts.prefix - if self.prefix is None: - self.prefix = sys.prefix - self.path = self.SRC - self.resources = self.j(self.d(self.SRC), 'resources') - self.extensions = self.j(self.SRC, 'calibre', 'plugins') - self.bindir = self.j(self.prefix, 'bin') - - def write_templates(self, opts): + def write_templates(self): for typ in ('console', 'gui'): for name, mod, func in zip(basenames[typ], modules[typ], functions[typ]): - self.write_template(opts, name, mod, func) - if islinux: - self.write_template(opts, 'calibre_postinstall', 'calibre.linux', 'main') + self.write_template(name, mod, func) - def write_template(self, opts, name, mod, func): + def write_template(self, name, mod, func): template = COMPLETE_TEMPLATE if name == 'calibre-complete' else TEMPLATE script = template.format( module=mod, func=func, - path=self.path, resources=self.resources, - extensions=self.extensions) - path = self.root + self.j(self.bindir, name) - if not os.path.exists(self.bindir): - os.makedirs(self.bindir) + path=self.libdir, resources=self.sharedir, + extensions=self.j(self.libdir, 'calibre', 'plugins')) + path = self.j(self.staging_bindir, name) + if not os.path.exists(self.staging_bindir): + os.makedirs(self.staging_bindir) self.info('Installing binary:', path) open(path, 'wb').write(script) os.chmod(path, self.MODE) + self.manifest.append(path) class Install(Develop): @@ -154,52 +201,52 @@ class Install(Develop): The default is the prefix of your python installation. ''') + short_description = 'Install calibre from source' sub_commands = ['build', 'gui'] def add_options(self, parser): - parser.add_option('--prefix', help='Installation prefix') - parser.add_option('--libdir', help='Where to put calibre library files') - parser.add_option('--bindir', help='Where to install calibre binaries') - parser.add_option('--sharedir', help='Where to install calibre data files') - parser.add_option('--root', default='', - help='Use a different installation root (mainly for packaging)') - self.root = '' + parser.add_option('--prefix', help='Installation prefix.') + parser.add_option('--libdir', + help='Where to put calibre library files. Default is /lib') + parser.add_option('--bindir', + help='Where to put the calibre binaries. Default is /bin') + parser.add_option('--sharedir', + help='Where to put the calibre data files. Default is /share') + parser.add_option('--staging-root', '--root', default=None, + help=('Use a different installation root (mainly for packaging).' + ' The prefix option controls the paths written into ' + 'the launcher scripts. This option controls the prefix ' + 'to which the install will actually copy files. By default ' + 'it is set to the value of --prefix.')) + parser.add_option('--staging-libdir', + help='Where to put calibre library files. Default is /lib') + parser.add_option('--staging-bindir', + help='Where to put the calibre binaries. Default is /bin') + parser.add_option('--staging-sharedir', + help='Where to put the calibre data files. Default is /share') + self.add_postinstall_options(parser) - def find_locations(self, opts): - if opts.prefix is None: - opts.prefix = sys.prefix - if opts.libdir is None: - opts.libdir = self.j(opts.prefix, 'lib', 'calibre') - if opts.bindir is None: - opts.bindir = self.j(opts.prefix, 'bin') - if opts.sharedir is None: - opts.sharedir = self.j(opts.prefix, 'share', 'calibre') - self.prefix = opts.prefix - self.bindir = opts.bindir - self.path = opts.libdir - self.resources = opts.sharedir - self.extensions = self.j(self.path, 'calibre', 'plugins') - self.root = opts.root - - def install_files(self, opts): - dest = self.root + self.path + def install_files(self): + dest = self.staging_libdir if os.path.exists(dest): shutil.rmtree(dest) - shutil.copytree(self.SRC, dest) - for x in ('calibre/manual', 'calibre/trac', - 'calibre/ebooks/lrf/html/demo'): - x = self.j(dest, x) - if os.path.exists(dest): - shutil.rmtree(x) - for x in os.walk(dest): + self.info('Installing code to', dest) + self.manifest.append(dest) + for x in os.walk(self.SRC): + reldir = os.path.relpath(x[0], self.SRC) + destdir = os.path.join(dest, reldir) for f in x[-1]: - if os.path.splitext(f)[1] in ('.c', '.cpp', '.h'): - os.remove(self.j(x[0], f)) - dest = self.root + self.resources + if os.path.splitext(f)[1] in ('.py', '.so'): + if not os.path.exists(destdir): + os.makedirs(destdir) + shutil.copy2(self.j(x[0], f), destdir) + dest = self.staging_sharedir if os.path.exists(dest): shutil.rmtree(dest) + self.info('Installing resources to', dest) shutil.copytree(self.RESOURCES, dest) + self.manifest.append(dest) def success(self): self.info('\n\ncalibre successfully installed. You can start' @@ -215,6 +262,7 @@ class Sdist(Command): if not self.e(self.d(self.DEST)): os.makedirs(self.d(self.DEST)) tdir = tempfile.mkdtemp() + tdir = self.j(tdir, 'calibre') atexit.register(shutil.rmtree, tdir) self.info('\tRunning bzr export...') subprocess.check_call(['bzr', 'export', '--format', 'dir', tdir]) @@ -237,8 +285,8 @@ class Sdist(Command): shutil.copy2(f, dest) self.info('\tCreating tarfile...') - subprocess.check_call(' '.join(['tar', '-czf', self.a(self.DEST), '*']), - cwd=tdir, shell=True) + subprocess.check_call(['tar', '-czf', self.a(self.DEST), + 'calibre'], cwd=self.d(tdir)) def clean(self): if os.path.exists(self.DEST): diff --git a/setup/installer/linux/__init__.py b/setup/installer/linux/__init__.py index f3819af913..46014dfac6 100644 --- a/setup/installer/linux/__init__.py +++ b/setup/installer/linux/__init__.py @@ -13,6 +13,8 @@ from setup import Command, installer_name class Linux32(VMInstaller): + description = 'Build 32bit linux binary installer' + INSTALLER_EXT = 'tar.bz2' VM_NAME = 'gentoo32_build' VM = '/vmware/bin/gentoo32_build' @@ -21,6 +23,8 @@ class Linux32(VMInstaller): class Linux64(Command): + description = 'Build 64bit linux binary installer' + sub_commands = ['linux_freeze'] def run(self, opts): @@ -31,4 +35,6 @@ class Linux64(Command): class Linux(Command): + description = 'Build linux binary installers' + sub_commands = ['linux64', 'linux32'] diff --git a/setup/installer/linux/freeze.py b/setup/installer/linux/freeze.py index abf51a9750..c9c380bec1 100644 --- a/setup/installer/linux/freeze.py +++ b/setup/installer/linux/freeze.py @@ -60,7 +60,7 @@ class LinuxFreeze(Command): arch), '/usr/lib/libpng12.so.0', '/usr/lib/libexslt.so.0', - '/usr/lib/libMagickWand.so', + '/usr/lib/libMagickWand.so.2', '/usr/lib/libMagickCore.so.2', '/usr/lib/libgcrypt.so.11', '/usr/lib/libgpg-error.so.0', @@ -83,8 +83,7 @@ class LinuxFreeze(Command): self.info('Freezing calibre located at', CALIBRESRC) entry_points = entry_points['console_scripts'] + entry_points['gui_scripts'] - entry_points = ['calibre_postinstall=calibre.linux:binary_install', - 'calibre-parallel=calibre.parallel:main'] + entry_points + entry_points = ['calibre_postinstall=calibre.linux:main'] + entry_points executables = {} for ep in entry_points: executables[ep.split('=')[0].strip()] = (ep.split('=')[1].split(':')[0].strip(), @@ -147,6 +146,9 @@ class LinuxFreeze(Command): sys.frozen_path = DIR_NAME sys.extensions_location = os.path.join(DIR_NAME, 'plugins') sys.resources_location = os.path.join(DIR_NAME, 'resources') + dfv = os.environ.get('CALIBRE_DEVELOP_FROM', None) + if dfv and os.path.exists(dfv): + sys.path.insert(0, dfv) executables = %(executables)s @@ -250,7 +252,6 @@ class LinuxFreeze(Command): exes = list(executables.keys()) exes.remove('calibre_postinstall') - exes.remove('calibre-parallel') open(os.path.join(FREEZE_DIR, 'manifest'), 'wb').write('\n'.join(exes)) self.info('Creating archive...') diff --git a/setup/installer/osx/__init__.py b/setup/installer/osx/__init__.py index 5089859978..e5e689244a 100644 --- a/setup/installer/osx/__init__.py +++ b/setup/installer/osx/__init__.py @@ -12,6 +12,8 @@ from setup.installer import VMInstaller class OSX(Command): + description = 'Build OS X binary installers' + sub_commands = ['osx32'] def run(self, opts): @@ -20,6 +22,8 @@ class OSX(Command): class OSX32(VMInstaller): + description = 'Build 32 bit OS X binary installer' + INSTALLER_EXT = 'dmg' VM_NAME = 'tiger_build' VM = '/vmware/bin/%s'%VM_NAME diff --git a/setup/installer/osx/freeze.py b/setup/installer/osx/freeze.py index 985f7ccaf8..1c0e766d21 100644 --- a/setup/installer/osx/freeze.py +++ b/setup/installer/osx/freeze.py @@ -21,6 +21,8 @@ info = warn = None class OSX32_Freeze(Command): + description = 'Freeze OSX calibre installation' + def run(self, opts): global info, warn info, warn = self.info, self.warn @@ -46,10 +48,16 @@ qt_plugins = os.path.join(os.path.realpath(base_dir), 'MacOS') loader_path = os.path.join(dirpath, base_name+'.py') loader = open(loader_path, 'w') site_packages = glob.glob(resources_dir+'/lib/python*/site-packages.zip')[0] +devf = os.environ.get('CALIBRE_DEVELOP_FROM', None) +do_devf = devf and os.path.exists(devf) +if do_devf: + devf = os.path.abspath(devf) print >>loader, 'import sys' print >>loader, 'sys.argv[0] =', repr(os.path.basename(path)) print >>loader, 'if', repr(dirpath), 'in sys.path: sys.path.remove(', repr(dirpath), ')' print >>loader, 'sys.path.append(', repr(site_packages), ')' +if do_devf: + print >>loader, 'sys.path.insert(0, '+repr(devf)+')' print >>loader, 'sys.frozen = "macosx_app"' print >>loader, 'sys.frameworks_dir =', repr(frameworks_dir) print >>loader, 'sys.extensions_location =', repr(extensions_dir) @@ -195,6 +203,11 @@ os.execv(python, args) for f in x[-1]: if f.endswith('.so'): modules.append(os.path.join(x[0], f)) + for x in os.walk(os.path.join(frameworks_dir, 'plugins')): + for f in x[-1]: + if f.endswith('.so'): + modules.append(os.path.join(x[0], f)) + deps = {} for x in ('Core.1', 'Wand.1'): modules.append(os.path.join(root, 'lib', 'libMagick%s.dylib'%x)) @@ -235,12 +248,25 @@ os.execv(python, args) shutil.copyfile(pdf, os.path.join(frameworks_dir, os.path.basename(pdf))) info('\nAdding poppler') - for x in ('pdftohtml', 'libpoppler.4.dylib', 'libpoppler-qt4.3.dylib'): - tgt = os.path.join(frameworks_dir, x) - os.link(os.path.join(os.path.expanduser('~/poppler'), x), tgt) - self.fix_qt_dependencies(tgt, self.qt_dependencies(tgt)) - - + popps = [] + for x in ('bin/pdftohtml', 'lib/libpoppler.5.dylib'): + dest = os.path.join(frameworks_dir, os.path.basename(x)) + popps.append(dest) + shutil.copy2(os.path.join('/Volumes/sw', x), dest) + subprocess.check_call(['install_name_tool', '-change', + '/usr/local/lib/libfontconfig.1.dylib', + '@executable_path/../Frameworks/libfontconfig.1.dylib', + os.path.join(frameworks_dir, 'pdftohtml')]) + x ='libpng12.0.dylib' + shutil.copy2('/usr/local/lib/'+x, frameworks_dir) + subprocess.check_call(['install_name_tool', '-id', + '@executable_path/../Frameworks/'+x, os.path.join(frameworks_dir, x)]) + self.fix_misc_dependencies(popps) + subprocess.check_call(['install_name_tool', '-change', + '/usr/local/lib/libfontconfig.1.dylib', + '@executable_path/../Frameworks/libfontconfig.1.dylib', popps[1]]) + subprocess.check_call(['install_name_tool', '-id', + '@executable_path/../Frameworks/'+os.path.basename(popps[1]), popps[1]]) loader_path = os.path.join(resource_dir, 'loaders') if not os.path.exists(loader_path): @@ -286,6 +312,9 @@ os.execv(python, args) if os.path.exists(dest): shutil.rmtree(dest) shutil.copytree(os.path.expanduser('~/ImageMagick'), dest, True) + shutil.rmtree(os.path.join(dest, 'include')) + shutil.rmtree(os.path.join(dest, 'share', 'doc')) + shutil.rmtree(os.path.join(dest, 'share', 'man')) shutil.copyfile('/usr/local/lib/libpng12.0.dylib', os.path.join(dest, 'lib', 'libpng12.0.dylib')) self.fix_image_magick_deps(dest) @@ -302,6 +331,11 @@ os.execv(python, args) sys.frameworks_dir = os.path.join(os.path.dirname(os.environ['RESOURCEPATH']), 'Frameworks') sys.resources_location = os.path.join(os.environ['RESOURCEPATH'], 'resources') sys.extensions_location = os.path.join(sys.frameworks_dir, 'plugins') +devf = os.environ.get('CALIBRE_DEVELOP_FROM', None) +do_devf = devf and os.path.exists(devf) +if do_devf: + devf = os.path.abspath(devf) + sys.path.insert(0, devf) ''') + r'\n\1', src) f = open(launcher_path, 'w') print >>f, 'import sys, os' @@ -362,7 +396,7 @@ def main(): 'calibre.ebooks.metadata.amazon', ], 'packages' : ['PIL', 'Authorization', 'lxml', 'dns'], - 'excludes' : ['IPython'], + 'excludes' : ['IPython', 'PyQt4.uic.port_v3.proxy_base'], 'plist' : { 'CFBundleGetInfoString' : '''calibre, an E-book management application.''' ''' Visit http://calibre.kovidgoyal.net for details.''', 'CFBundleIdentifier':'net.kovidgoyal.calibre', diff --git a/setup/installer/windows/__init__.py b/setup/installer/windows/__init__.py index 31973194d1..17667368c7 100644 --- a/setup/installer/windows/__init__.py +++ b/setup/installer/windows/__init__.py @@ -14,6 +14,8 @@ from setup.installer.windows import build_installer class Win(Command): + description = 'Build windows binary installers' + sub_commands = ['win32'] def run(self, opts): @@ -22,6 +24,8 @@ class Win(Command): class Win32(VMInstaller): + description = 'Build 32bit windows binary installer' + INSTALLER_EXT = 'exe' VM_NAME = 'xp_build' VM = '/vmware/bin/%s'%VM_NAME diff --git a/setup/installer/windows/calibre/calibre.mpi b/setup/installer/windows/calibre/calibre.mpi index 2309a1129c..860eae62f2 100644 --- a/setup/installer/windows/calibre/calibre.mpi +++ b/setup/installer/windows/calibre/calibre.mpi @@ -235,9 +235,6 @@ File ::8E5D85A4-7608-47A1-CF7C-309060D5FF40 -filemethod {Always overwrite files} File ::FC870EE7-667B-481F-113B-B4504DFCCFA5 -type dir -name bin -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 File ::377C588B-B324-CA09-ED49-4DB5F82A15ED -type dir -name etc -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 File ::55DE4B9F-0881-FF51-E2BA-EC72B5D3425C -type dir -name fonts -parent 377C588B-B324-CA09-ED49-4DB5F82A15ED -File ::A27B68D9-43A6-B994-3091-E829AFBA340D -type dir -name conf.d -parent 55DE4B9F-0881-FF51-E2BA-EC72B5D3425C -File ::974ADD48-88E5-BC7A-1963-928A245F133A -type dir -name conf.avail -parent 55DE4B9F-0881-FF51-E2BA-EC72B5D3425C -File ::5E5273D8-3423-8DC8-83C4-BE000069A803 -name fonts.dtd -parent 55DE4B9F-0881-FF51-E2BA-EC72B5D3425C File ::32D7DBE0-E0B1-5BDD-66C5-2A13D8BC8F90 -name fonts.conf -parent 55DE4B9F-0881-FF51-E2BA-EC72B5D3425C File ::B95D03D4-EA59-F00E-59E1-BA05758879DA -type dir -name imageformats -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 File ::A624029D-AE0F-49A5-4DAC-7720CDCAB271 -name qmng4.dll -parent B95D03D4-EA59-F00E-59E1-BA05758879DA @@ -393,7 +390,6 @@ File ::E8A4442D-D0D3-31CD-997A-3CEB641CF5B7 -name IM_MOD_RL_mtv_.dll -parent 8E5 File ::0CA87D0B-5A04-1439-AEE8-C97072D47BA7 -name CORE_RL_tiff_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 File ::AC24F520-88D4-D1CF-5797-27C715CE8ACA -name pyexpat.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 File ::16848F38-71CD-55B8-4D96-1537F6773744 -name IM_MOD_RL_dps_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::33A46CC5-BAC4-5863-C83D-303DCCA0CAA1 -name tk85.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 File ::81116DD3-1715-AA87-472F-544FC616EDAF -name IM_MOD_RL_dcm_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 File ::335A4CFB-5C2D-44E4-C438-7018E8244C3D -name ebook-viewer.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 File ::62A16C3B-ED9C-5187-2807-58857DF3A990 -name calibre-debug.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 @@ -413,7 +409,6 @@ File ::C3466B70-23C3-31C9-3B4F-1B3B56E4D013 -name markdown-calibre.exe.local -pa File ::6ED1C675-C4D5-6BFF-7C8A-9AB4BF39D00C -name _hashlib.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 File ::21F7F333-3063-71E3-85F5-5C88584B15CC -name IM_MOD_RL_tga_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 File ::26741B21-C241-E100-8BB1-8B679BC3E662 -name configure.xml -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::7D491E89-C6D3-1E6E-F4BD-8E55260FE33E -name libexpat.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 File ::476CB977-5155-D56F-26CA-EB243AEBBA99 -name unrar.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 File ::2E2A9EDA-5386-444E-8479-557386794552 -name IM_MOD_RL_uil_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 File ::D3301E15-1B1A-E2AB-1B04-30A601B3FB44 -name IM_MOD_RL_cut_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 @@ -507,7 +502,6 @@ File ::9BA85EE5-1754-67AF-736D-481CDCC72DD2 -name _imagingft.pyd -parent 8E5D85A File ::6254DD0C-8F2C-D4AE-2107-2597D542C181 -name IM_MOD_RL_matte_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 File ::F159D566-88D6-C347-3E3C-55C2DDFC5FD0 -name IM_MOD_RL_mono_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 File ::B873CAA2-011F-94C3-7977-FF344E53C44F -name CORE_RL_jbig_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::7004FCB8-C6F4-C7AF-08E4-B6151B2F7050 -name tcl85.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 File ::6921F62A-4015-4C9F-98A6-BCBBC43B698E -name msvcm90.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 File ::7276E0CA-C205-4B18-19A3-157F1B8523FB -name IM_MOD_RL_xtrn_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 File ::7B9624A9-88B4-C61E-6771-9A34FB6CA3B5 -name PyQt4.QtGui.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 @@ -570,10 +564,11 @@ File ::8D7A36A6-4517-E995-E989-2E522E7A1438 -name calibre-smtp.exe.local -parent File ::9E4E5E8F-30C0-E631-9516-2AE01A5CA0E9 -name ebook-device.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 File ::7BE6B538-70D5-A7EB-5F91-E14CE57B394B -name calibre-complete.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 File ::C4E40030-3EE0-8B05-E6B9-89E81433EE1F -name phonon4.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::9E84342F-36ED-7ED3-8F90-1EC55267BCFC -name poppler-qt4.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 File ::C9967023-A4C2-856C-1D90-DC710105EBCD -name jpeg62.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 File ::B1560042-C99B-9803-552E-21C15F0DFD85 -type dir -name resources -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 File ::DEDE8BE9-D712-2770-A1EC-7E9164CC6D29 -name libpng12.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 +File ::2A8619DB-B715-CBF8-E711-C6B0C5FD9EF4 -name _elementtree.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 +File ::0924A77D-EDD2-FF33-560A-983053637A47 -name libexpat-1.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 Component ::F6829AB7-9F66-4CEE-CA0E-21F54C6D3609 -setup Install -active Yes -platforms {AIX-ppc FreeBSD-4-x86 FreeBSD-x86 HPUX-hppa Linux-x86 Solaris-sparc Windows FreeBSD-5-x86 FreeBSD-6-x86 FreeBSD-7-x86 Linux-x86_64 Solaris-x86} -name Main -parent Components SetupType ::D9ADE41C-B744-690C-2CED-CF826BF03D2E -setup Install -active Yes -platforms {AIX-ppc FreeBSD-4-x86 FreeBSD-x86 HPUX-hppa Linux-x86 Solaris-sparc Windows FreeBSD-5-x86 FreeBSD-6-x86 FreeBSD-7-x86 Linux-x86_64 Solaris-x86} -name Typical -parent SetupTypes diff --git a/setup/installer/windows/freeze.py b/setup/installer/windows/freeze.py index 704f3b3b7b..10bd05000b 100644 --- a/setup/installer/windows/freeze.py +++ b/setup/installer/windows/freeze.py @@ -52,6 +52,8 @@ info = warn = None class Win32Freeze(Command): + description = 'Freeze windows calibre installation' + def run(self, opts): global info, warn info, warn = self.info, self.warn @@ -121,6 +123,9 @@ base = os.path.dirname(sys.executable.decode(fenc)) sys.resources_location = os.path.join(base, 'resources') sys.extensions_location = os.path.join(base, 'plugins') +dv = os.environ.get('CALIBRE_DEVELOP_FROM', None) +if dv and os.path.exists(dv): + sys.path.insert(0, os.path.abspath(dv)) del sys ''' @@ -189,9 +194,8 @@ class BuildEXE(bc): print '\tAdding unrar' shutil.copyfile(LIBUNRAR, os.path.join(PY2EXE_DIR, os.path.basename(LIBUNRAR))) print '\tAdding poppler' - for x in (r'utils\Release\pdftohtml.exe', - r'qt4\src\Release\poppler-qt4.dll'): - shutil.copyfile(os.path.join(POPPLER, x), + for x in (r'pdftohtml.exe', 'freetype.dll'): + shutil.copyfile(os.path.join(r'C:\cygwin\home\kovid\poppler-old\bin', x), os.path.join(PY2EXE_DIR, os.path.basename(x))) for x in ('jpeg62', 'zlib1', 'libpng12'): shutil.copy2(os.path.join(GNUWIN32, 'bin', x+'.dll'), PY2EXE_DIR) @@ -279,9 +283,12 @@ def main(args=sys.argv): 'packages' : ['PIL', 'lxml', 'cherrypy', 'dateutil', 'dns'], 'excludes' : ["Tkconstants", "Tkinter", "tcl", - "_imagingtk", "ImageTk", "FixTk" + "_imagingtk", "ImageTk", + "FixTk", + 'PyQt4.uic.port_v3.proxy_base' ], - 'dll_excludes' : ['mswsock.dll'], + 'dll_excludes' : ['mswsock.dll', 'tcl85.dll', + 'tk85.dll'], }, }, diff --git a/setup/resources.py b/setup/resources.py index 39416d88c6..253876989e 100644 --- a/setup/resources.py +++ b/setup/resources.py @@ -24,6 +24,8 @@ def get_opts_from_parser(parser): class Resources(Command): + description = 'Compile various needed calibre resources' + def get_recipes(self): sdir = os.path.join('src', 'calibre', 'web', 'feeds', 'recipes') resources= {} diff --git a/setup/translations.py b/setup/translations.py index 5ba84c4a5e..658ad0f4f5 100644 --- a/setup/translations.py +++ b/setup/translations.py @@ -196,6 +196,7 @@ class GetTranslations(Translations): class ISO639(Command): + description = 'Compile translations for ISO 639 codes' XML = '/usr/lib/python2.6/site-packages/pycountry/databases/iso639.xml' def run(self, opts): diff --git a/setup/upload.py b/setup/upload.py index 6580544ad6..b99e80ca18 100644 --- a/setup/upload.py +++ b/setup/upload.py @@ -127,6 +127,8 @@ class UploadDemo(Command): class UploadToServer(Command): + description = 'Upload miscellaneous data to calibre server' + def run(self, opts): 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) diff --git a/src/calibre/constants.py b/src/calibre/constants.py index a68cfdb9d3..8d3b310b73 100644 --- a/src/calibre/constants.py +++ b/src/calibre/constants.py @@ -2,7 +2,7 @@ __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' __docformat__ = 'restructuredtext en' __appname__ = 'calibre' -__version__ = '0.6.13' +__version__ = '0.6.14' __author__ = "Kovid Goyal " import re diff --git a/src/calibre/debug.py b/src/calibre/debug.py index d9912e61d8..575308fe14 100644 --- a/src/calibre/debug.py +++ b/src/calibre/debug.py @@ -6,10 +6,9 @@ __copyright__ = '2008, Kovid Goyal ' Embedded console for debugging. ''' -import sys, os, re, shutil +import sys, os from calibre.utils.config import OptionParser from calibre.constants import iswindows, isosx -from calibre.libunzip import update from calibre import prints def option_parser(): @@ -18,11 +17,6 @@ def option_parser(): Run an embedded python interpreter. ''') - parser.add_option('-u', '--update-module', default=False, - action='store_true', - help='Update the specified module in the frozen library. '+ - 'Module specifications are of the form full.name.of.module path_to_module.py', - ) parser.add_option('-c', '--command', help='Run python code.', default=None) parser.add_option('-e', '--exec-file', default=None, help='Run the python code in file.') parser.add_option('-d', '--debug-device-driver', default=False, action='store_true', @@ -41,39 +35,17 @@ Run an embedded python interpreter. parser.add_option('--pdfreflow', default=None, help='Path to PDF file to try and reflow. Output will be placed in ' 'current directory. ') + parser.add_option('-f', '--develop-from', default=None, + help=('Develop calibre from the specified path. ' + 'The path should point to the src sub-directory in the ' + 'calibre source tree.')) return parser -def update_zipfile(zipfile, mod, path): - if 'win32' in sys.platform: - print 'WARNING: On Windows Vista using this option may cause windows to put library.zip into the Virtual Store (typically located in c:\Users\username\AppData\Local\VirtualStore). If it does this you must delete it from there after you\'re done debugging).' - pat = re.compile(mod.replace('.', '/')+r'\.py[co]*') - name = mod.replace('.', '/') + os.path.splitext(path)[-1] - update(zipfile, [pat], [path], [name]) - -def update_site_packages(sp, mod, path): - dest = os.path.join(sp, *mod.split('.'))+'.py' - shutil.copy2(path, dest) - -def update_module(mod, path): - if not hasattr(sys, 'frozen'): - raise RuntimeError('Modules can only be updated in frozen installs.') - zp = None - if iswindows: - zp = os.path.join(os.path.dirname(sys.executable), 'library.zip') - elif getattr(sys, 'new_app_bundle', False): - update_site_packages(sys.site_packages, mod, path) - elif isosx: - zp = os.path.join(os.path.dirname(getattr(sys, 'frameworks_dir')), - 'Resources', 'lib', - 'python'+'.'.join(map(str, sys.version_info[:2])), - 'site-packages.zip') - else: - zp = os.path.join(getattr(sys, 'frozen_path'), 'loader.zip') - if zp is not None: - update_zipfile(zp, mod, path) - else: - raise ValueError('Updating modules is not supported on this platform.') +def develop_from(path): + from calibre.gui2 import build_forms + print 'Compiling .ui forms...' + build_forms(path) def migrate(old, new): from calibre.utils.config import prefs @@ -189,9 +161,6 @@ def main(args=sys.argv): if opts.gui: from calibre.gui2.main import main main(['calibre']) - elif opts.update_module: - mod, path = args[1:3] - update_module(mod, os.path.expanduser(path)) elif opts.command: sys.argv = args[:1] exec opts.command @@ -210,14 +179,16 @@ def main(args=sys.argv): elif opts.add_simple_plugin is not None: add_simple_plugin(opts.add_simple_plugin) elif opts.paths: - prints('CALIBRE_RESOURCES_LOCATION='+sys.resources_location) - prints('CALIBRE_EXTENSIONS_LOCATION='+sys.extensions_location) + prints('CALIBRE_RESOURCES_PATH='+sys.resources_location) + prints('CALIBRE_EXTENSIONS_PATH='+sys.extensions_location) prints('CALIBRE_PYTHON_PATH='+os.pathsep.join(sys.path)) elif opts.pdfreflow: from calibre.ebooks.pdf.reflow import option_parser as px, run from calibre.utils.logging import default_log opts2, args = px().parse_args(['xxxx', '-vvvv', opts.pdfreflow]) run(opts2, opts.pdfreflow, default_log) + elif opts.develop_from is not None: + develop_from(opts.develop_from) else: from IPython.Shell import IPShellEmbed ipshell = IPShellEmbed() diff --git a/src/calibre/devices/linux_mount_helper.c b/src/calibre/devices/linux_mount_helper.c index 41dab3fada..23bab36389 100644 --- a/src/calibre/devices/linux_mount_helper.c +++ b/src/calibre/devices/linux_mount_helper.c @@ -27,6 +27,7 @@ int get_root() { int do_mount(char *dev, char *mp) { char options[1000]; char marker[2000]; + int errsv; if (exists(dev) == 0) { fprintf(stderr, "Specified device node does not exist\n"); return EXIT_FAILURE; @@ -55,19 +56,19 @@ int do_mount(char *dev, char *mp) { return EXIT_FAILURE; } execlp("mount", "mount", "-t", "vfat", "-o", options, dev, mp, NULL); - int errsv = errno; + errsv = errno; fprintf(stderr, "Failed to mount with error: %s\n", strerror(errsv)); return EXIT_FAILURE; } int do_eject(char *dev, char*mp) { char marker[2000]; - int status = EXIT_FAILURE, ret; + int status = EXIT_FAILURE, ret, pid, errsv, i, rmd; if (get_root() != 0) { fprintf(stderr, "Failed to elevate to root privileges\n"); return EXIT_FAILURE; } - int pid = fork(); + pid = fork(); if (pid == -1) { fprintf(stderr, "Failed to fork\n"); return EXIT_FAILURE; @@ -78,11 +79,10 @@ int do_eject(char *dev, char*mp) { return EXIT_FAILURE; } execlp("eject", "eject", "-s", dev, NULL); - int errsv = errno; + errsv = errno; fprintf(stderr, "Failed to eject with error: %s\n", strerror(errsv)); return EXIT_FAILURE; } else { - int i; for (i =0; i < 7; i++) { sleep(1); ret = waitpid(pid, &status, WNOHANG); @@ -99,7 +99,7 @@ int do_eject(char *dev, char*mp) { fprintf(stderr, "Failed to unlink marker: %s\n", strerror(errno)); return EXIT_FAILURE; } - int rmd = rmdir(mp); + rmd = rmdir(mp); if (rmd == -1) { fprintf(stderr, "Failed to remove mount point: %s\n", strerror(errno)); return EXIT_FAILURE; diff --git a/src/calibre/devices/usbms/device.py b/src/calibre/devices/usbms/device.py index ff07b36691..1dce5fbec2 100644 --- a/src/calibre/devices/usbms/device.py +++ b/src/calibre/devices/usbms/device.py @@ -564,13 +564,13 @@ class Device(DeviceConfig, DevicePlugin): try: self.open_windows() except DeviceError: - time.sleep(3) + time.sleep(5) self.open_windows() if isosx: try: self.open_osx() except DeviceError: - time.sleep(3) + time.sleep(7) self.open_osx() def eject_windows(self): @@ -675,13 +675,52 @@ class Device(DeviceConfig, DevicePlugin): raise FreeSpaceError(_("There is insufficient free space on the storage card")) return path - def create_upload_path(self, root, mdata, ext, id): - from calibre.library.save_to_disk import config, get_components - opts = config().parse() - components = get_components(opts.template, mdata, id, opts.timefmt, 250) - components = [str(x) for x in components] - components = shorten_components_to(250 - len(root), components) - filepath = '%s%s' % (os.path.join(root, *components), ext) + def create_upload_path(self, path, mdata, fname): + path = os.path.abspath(path) + newpath = path + extra_components = [] + + if self.SUPPORTS_SUB_DIRS and self.settings().use_subdirs: + if 'tags' in mdata.keys(): + for tag in mdata['tags']: + if tag.startswith(_('News')): + extra_components.append('news') + c = sanitize(mdata.get('title', '')) + if c: + extra_components.append(c) + c = sanitize(mdata.get('timestamp', '')) + if c: + extra_components.append(c) + break + elif tag.startswith('/'): + for c in tag.split('/'): + c = sanitize(c) + if not c: continue + extra_components.append(c) + break + + if not extra_components: + c = sanitize(mdata.get('authors', _('Unknown'))) + if c: + extra_components.append(c) + c = sanitize(mdata.get('title', _('Unknown'))) + if c: + extra_components.append(c) + newpath = os.path.join(newpath, c) + + fname = sanitize(fname) + extra_components.append(fname) + extra_components = [str(x) for x in extra_components] + def remove_trailing_periods(x): + ans = x + while ans.endswith('.'): + ans = ans[:-1] + if not ans: + ans = 'x' + return ans + extra_components = list(map(remove_trailing_periods, extra_components)) + components = shorten_components_to(250 - len(path), extra_components) + filepath = os.path.join(path, *components) filedir = os.path.dirname(filepath) if not self.SUPPORTS_SUB_DIRS or not self.settings().use_subdirs: diff --git a/src/calibre/ebooks/lit/writer.py b/src/calibre/ebooks/lit/writer.py index e0cc691ad1..6dd5068032 100644 --- a/src/calibre/ebooks/lit/writer.py +++ b/src/calibre/ebooks/lit/writer.py @@ -152,7 +152,11 @@ class ReBinary(object): def write(self, *values): for value in values: if isinstance(value, (int, long)): - value = unichr(value) + try: + value = unichr(value) + except OverflowError: + self.logger.warn('Unicode overflow for integer:', value) + value = u'?' self.buf.write(value.encode('utf-8')) def is_block(self, style): diff --git a/src/calibre/ebooks/lrf/input.py b/src/calibre/ebooks/lrf/input.py index 9ec1ba0b8e..f511ba7f09 100644 --- a/src/calibre/ebooks/lrf/input.py +++ b/src/calibre/ebooks/lrf/input.py @@ -176,7 +176,7 @@ class TextBlock(etree.XSLTExtension): def process_child(self, child): if child.tag == 'CR': - if self.parent == self.root: + if self.parent == self.root or self.parent.tag == 'p': self.parent = self.root.makeelement('p') self.root.append(self.parent) self.add_text_to = (self.parent, 'text') @@ -365,6 +365,8 @@ class LRFInput(InputFormatPlugin): d = LRFDocument(stream) d.parse() xml = d.to_xml(write_files=True) + if options.verbose > 2: + open('lrs.xml', 'wb').write(xml.encode('utf-8')) parser = etree.XMLParser(recover=True, no_network=True) doc = etree.fromstring(xml, parser=parser) char_button_map = {} diff --git a/src/calibre/ebooks/oeb/base.py b/src/calibre/ebooks/oeb/base.py index 5ee829c8f4..5e3d2296ae 100644 --- a/src/calibre/ebooks/oeb/base.py +++ b/src/calibre/ebooks/oeb/base.py @@ -912,23 +912,27 @@ class Manifest(object): if key == 'lang' or key.endswith('}lang'): body.attrib.pop(key) + def remove_elem(a): + p = a.getparent() + idx = p.index(a) -1 + p.remove(a) + if a.tail: + if idx <= 0: + if p.text is None: + p.text = '' + p.text += a.tail + else: + if p[idx].tail is None: + p[idx].tail = '' + p[idx].tail += a.tail + # Remove hyperlinks with no content as they cause rendering # artifacts in browser based renderers - for a in xpath(data, '//h:a[@href]'): + # Also remove empty and tags + for a in xpath(data, '//h:a[@href]|//h:i|//h:b'): if a.get('id', None) is None and a.get('name', None) is None \ and len(a) == 0 and not a.text: - p = a.getparent() - idx = p.index(a) -1 - p.remove(a) - if a.tail: - if idx <= 0: - if p.text is None: - p.text = '' - p.text += a.tail - else: - if p[idx].tail is None: - p[idx].tail = '' - p[idx].tail += a.tail + remove_elem(a) return data diff --git a/src/calibre/ebooks/pdf/images.cpp b/src/calibre/ebooks/pdf/images.cpp index 2899da8307..b3b062e1f4 100644 --- a/src/calibre/ebooks/pdf/images.cpp +++ b/src/calibre/ebooks/pdf/images.cpp @@ -340,17 +340,17 @@ void PNGMemWriter::init(vector *buf, int width, int height) { } - +/* void calibre_jpeg_error_exit (j_common_ptr cinfo) { - /* cinfo->err really points to a my_error_mgr struct, so coerce pointer */ + // cinfo->err really points to a my_error_mgr struct, so coerce pointer calibre_jpeg_err_mgr *err = (calibre_jpeg_err_mgr *)(cinfo->err); - /* Always display the message. */ - /* We could postpone this until after returning, if we chose. */ + // Always display the message. + // We could postpone this until after returning, if we chose. //(*cinfo->err->output_message) (cinfo); - /* Return control to the setjmp point */ + // Return control to the setjmp point longjmp(err->setjmp_buffer, 1); } @@ -366,7 +366,7 @@ JPEGWriter::JPEGWriter() { void JPEGWriter::init(int width, int height) { cinfo.image_width = width; cinfo.image_height = height; - cinfo.input_components = 3; /* # of color components per pixel */ + cinfo.input_components = 3; // # of color components per pixel cinfo.in_color_space = JCS_RGB; jpeg_set_defaults(&this->cinfo); this->check(); @@ -387,7 +387,7 @@ void JPEGWriter::check() { void JPEGWriter::raise() { char buffer[JMSG_LENGTH_MAX]; - /* Create the message */ + // Create the message (*this->cinfo.err->format_message) ((jpeg_common_struct *)(&this->cinfo), buffer); jpeg_destroy_compress(&this->cinfo); throw ReflowException(buffer); @@ -422,3 +422,4 @@ void JPEGWriter::write_splash_bitmap(SplashBitmap *bitmap) { JPEGWriter::~JPEGWriter() { jpeg_destroy_compress(&this->cinfo); } +*/ diff --git a/src/calibre/ebooks/pdf/images.h b/src/calibre/ebooks/pdf/images.h index b6e8407ac9..2bdbc09d8d 100644 --- a/src/calibre/ebooks/pdf/images.h +++ b/src/calibre/ebooks/pdf/images.h @@ -99,11 +99,11 @@ namespace calibre_reflow { vector str() const; void clear(); }; - +/* struct calibre_jpeg_err_mgr { - struct jpeg_error_mgr pub; /* "public" fields */ + struct jpeg_error_mgr pub; // "public" fields - jmp_buf setjmp_buffer; /* for return to caller */ + jmp_buf setjmp_buffer; // for return to caller }; class JPEGWriter { @@ -125,6 +125,6 @@ namespace calibre_reflow { void write_image(JSAMPARRAY image_buffer, JDIMENSION number_of_scanlines); void write_splash_bitmap(SplashBitmap *bitmap); }; +*/ } - #endif diff --git a/src/calibre/ebooks/pdf/main.cpp b/src/calibre/ebooks/pdf/main.cpp index bde406dd49..5102a5c774 100644 --- a/src/calibre/ebooks/pdf/main.cpp +++ b/src/calibre/ebooks/pdf/main.cpp @@ -47,29 +47,32 @@ extern "C" { if (!PyArg_ParseTuple(args, "s#O", &pdfdata, &size, &cover)) return NULL; + Reflow *reflow = NULL; try { - Reflow reflow(pdfdata, static_cast(size)); - info = reflow.get_info(); + reflow = new Reflow(pdfdata, size); + info = reflow->get_info(); if (PyObject_IsTrue(cover)) { - if (!reflow.is_locked()) { - vector *data = reflow.render_first_page(); - if (data->size() > 0) { + if (!reflow->is_locked() && reflow->numpages() > 0) { + vector *data = reflow->render_first_page(); + if (data && data->size() > 0) { PyObject *d = PyBytes_FromStringAndSize(&((*data)[0]), data->size()); delete data; - if (d == NULL) return PyErr_NoMemory(); - if (PyDict_SetItemString(ans, "cover", d) == -1) return NULL; + if (d == NULL) {delete reflow; return PyErr_NoMemory();} + if (PyDict_SetItemString(ans, "cover", d) == -1) {delete reflow; return NULL;} Py_XDECREF(d); } } else { - if (PyDict_SetItemString(ans, "cover", Py_None) == -1) return NULL; + if (PyDict_SetItemString(ans, "cover", Py_None) == -1) {delete reflow; return NULL;} } } } catch (std::exception &e) { - PyErr_SetString(PyExc_RuntimeError, e.what()); return NULL; + PyErr_SetString(PyExc_RuntimeError, e.what()); delete reflow; return NULL; } catch (...) { PyErr_SetString(PyExc_RuntimeError, - "Unknown exception raised while getting metadata from PDF"); return NULL; + "Unknown exception raised while getting metadata from PDF"); delete reflow; return NULL; } + delete reflow; reflow = NULL; + for (map::const_iterator it = info.begin() ; it != info.end(); it++ ) { PyObject *key = PyUnicode_Decode((*it).first.c_str(), (*it).first.size(), "UTF-8", "replace"); diff --git a/src/calibre/ebooks/pdf/reflow.cpp b/src/calibre/ebooks/pdf/reflow.cpp index 3b3dba4f34..86a33ced8e 100644 --- a/src/calibre/ebooks/pdf/reflow.cpp +++ b/src/calibre/ebooks/pdf/reflow.cpp @@ -3,11 +3,6 @@ * License: GNU GPL v3 */ -#ifdef _WIN32 -#include -#else -#include -#endif #include #include #include @@ -25,6 +20,8 @@ static const char* info_keys[num_info_keys] = { "Title", "Subject", "Keywords", "Author", "Creator", "Producer", "CreationDate", "ModDate" }; +static char encoding[10] = "UTF-8"; +static char yes[10] = "yes"; //------------------------------------------------------------------------ @@ -684,30 +681,16 @@ void XMLOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, colorMap, interpolate, maskColors, inlineImg); } -static char stream_pdf[15] = "stream.pdf"; - -class MemInStream : public MemStream { - private: - GooString stream_name; - - public: - MemInStream(char *buf, size_t st, size_t sz, Object *obj) : - MemStream(buf, st, sz, obj), stream_name(stream_pdf) {} - ~MemInStream() {} - GooString *getFileName() { return &this->stream_name; } -}; - Reflow::Reflow(char *pdfdata, size_t sz) : - pdfdata(pdfdata), current_font_size(-1), doc(NULL) + pdfdata(pdfdata), current_font_size(-1), doc(NULL), obj() { - Object obj; - obj.initNull(); + this->obj.initNull(); if (globalParams == NULL) { globalParams = new GlobalParams(); if (!globalParams) throw ReflowException("Failed to allocate Globalparams"); } - MemInStream *str = new MemInStream(pdfdata, 0, sz, &obj); + MemStream *str = new MemStream(pdfdata, 0, sz, &this->obj); this->doc = new PDFDoc(str, NULL, NULL); if (!this->doc->isOk()) { @@ -730,7 +713,6 @@ Reflow::render() { if (!this->doc->okToCopy()) cout << "Warning, this document has the copy protection flag set, ignoring." << endl; - char encoding[10] = "UTF-8"; globalParams->setTextEncoding(encoding); int first_page = 1; @@ -808,7 +790,6 @@ map Reflow::get_info() { Object info; map ans; string val; - char encoding[10] = "UTF-8"; globalParams->setTextEncoding(encoding); this->doc->getDocInfo(&info); @@ -832,7 +813,7 @@ string Reflow::decode_info_string(Dict *info, const char *key) const { int i, n; ostringstream oss; char *tmp = new char[strlen(key)+1]; - strcpy(tmp, key); + strncpy(tmp, key, strlen(key)+1); UnicodeMap *umap; if (!(umap = globalParams->getTextEncoding())) { throw ReflowException("Failed to allocate unicode map."); @@ -871,8 +852,7 @@ string Reflow::decode_info_string(Dict *info, const char *key) const { vector* Reflow::render_first_page(bool use_crop_box, double x_res, double y_res) { if (this->is_locked()) throw ReflowException("Document is locked."); - char encoding[10] = "UTF-8"; - char yes[10] = "yes"; + if (this->numpages() < 1) throw ReflowException("Document has no pages."); globalParams->setTextEncoding(encoding); globalParams->setEnableFreeType(yes); globalParams->setAntialias(yes); @@ -882,37 +862,45 @@ vector* Reflow::render_first_page(bool use_crop_box, double x_res, paper_color[0] = 255; paper_color[1] = 255; paper_color[2] = 255; - SplashOutputDev *out = new SplashOutputDev(splashModeRGB8, 4, false, paper_color); + SplashOutputDev *out = new SplashOutputDev(splashModeRGB8, 4, false, paper_color, true, true); + out->setVectorAntialias(true); if (!out) { throw ReflowException("Failed to allocate SplashOutputDev"); } - out->startDoc(doc->getXRef()); + try { + out->startDoc(doc->getXRef()); + out->startPage(1, NULL); - double pg_w, pg_h; - int pg = 1; + double pg_w, pg_h; + int pg = 1; - if (use_crop_box) { - pg_w = this->doc->getPageCropWidth(pg); - pg_h = this->doc->getPageCropHeight(pg); - } else { - pg_w = this->doc->getPageMediaWidth(pg); - pg_h = this->doc->getPageMediaHeight(pg); - } + if (use_crop_box) { + pg_w = this->doc->getPageCropWidth(pg); + pg_h = this->doc->getPageCropHeight(pg); + } else { + pg_w = this->doc->getPageMediaWidth(pg); + pg_h = this->doc->getPageMediaHeight(pg); + } - pg_w *= x_res/72.; - pg_h *= x_res/72.; + pg_w *= x_res/72.; + pg_h *= x_res/72.; - int x=0, y=0; - this->doc->displayPageSlice(out, pg, x_res, y_res, 0, - !use_crop_box, false, false, x, y, pg_w, pg_h); + int x=0, y=0; + this->doc->displayPageSlice(out, pg, x_res, y_res, 0, + !use_crop_box, false, false, x, y, pg_w, pg_h); + } catch(...) { delete out; throw; } - SplashBitmap *bmp = out->getBitmap(); + SplashBitmap *bmp = out->takeBitmap(); + out->endPage(); + delete out; out = NULL; PNGMemWriter writer; vector *buf = new vector(); - writer.init(buf, bmp->getWidth(), bmp->getHeight()); - writer.write_splash_bitmap(bmp); - writer.close(); - delete out; + try { + writer.init(buf, bmp->getWidth(), bmp->getHeight()); + writer.write_splash_bitmap(bmp); + writer.close(); + } catch(...) { delete buf; delete bmp; throw; } + delete bmp; return buf; } @@ -967,4 +955,3 @@ string Reflow::set_info(map sinfo) { return ans; } - diff --git a/src/calibre/ebooks/pdf/reflow.h b/src/calibre/ebooks/pdf/reflow.h index 458d452b72..fd629602b2 100644 --- a/src/calibre/ebooks/pdf/reflow.h +++ b/src/calibre/ebooks/pdf/reflow.h @@ -8,6 +8,14 @@ #define CALIBRE_REFLOW #define UNICODE +#ifdef _WIN32 +#include +#elif defined(_OSX) +#include +#else +#include +#endif + #include #include #include @@ -23,7 +31,6 @@ #include #include #include -#include #include #include #include @@ -49,6 +56,7 @@ class Reflow { char *pdfdata; double current_font_size; PDFDoc *doc; + Object obj; string decode_info_string(Dict *info, const char *key) const; void outline_level(ostringstream *oss, GooList *items, @@ -76,6 +84,9 @@ class Reflow { /* Set the info dictionary. Currently broken. */ string set_info(map info); + + /* Number of pages in the document */ + int numpages() { return this->doc->getNumPages(); } }; class XMLString { diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index 2d3a294c5b..ff30fff2c1 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -525,3 +525,53 @@ def is_ok_to_use_qt(): gui_thread = QThread.currentThread() return gui_thread is QThread.currentThread() +def find_forms(srcdir): + base = os.path.join(srcdir, 'calibre', 'gui2') + forms = [] + for root, _, files in os.walk(base): + for name in files: + if name.endswith('.ui'): + forms.append(os.path.abspath(os.path.join(root, name))) + + return forms + +def form_to_compiled_form(form): + return form.rpartition('.')[0]+'_ui.py' + +def build_forms(srcdir, info=None): + import re, cStringIO + from PyQt4.uic import compileUi + forms = find_forms(srcdir) + if info is None: + from calibre import prints + info = prints + pat = re.compile(r'''(['"]):/images/([^'"]+)\1''') + def sub(match): + ans = 'I(%s%s%s)'%(match.group(1), match.group(2), match.group(1)) + return ans + + for form in forms: + compiled_form = form_to_compiled_form(form) + if not os.path.exists(compiled_form) or os.stat(form).st_mtime > os.stat(compiled_form).st_mtime: + info('\tCompiling form', form) + buf = cStringIO.StringIO() + compileUi(form, buf) + dat = buf.getvalue() + dat = dat.replace('__appname__', 'calibre') + dat = dat.replace('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 = dat.replace('from convert.xpath_wizard import', + 'from calibre.gui2.convert.xpath_wizard import') + dat = re.compile(r'QtGui.QApplication.translate\(.+?,\s+"(.+?)(?0 0 879 - 711 + 710 @@ -177,7 +177,7 @@ - + Rating of this book. 0-5 stars @@ -325,7 +325,7 @@ - + Publishe&d: @@ -338,14 +338,14 @@ - + true - + false @@ -358,7 +358,7 @@ - + MMM yyyy @@ -375,6 +375,29 @@ + + + + dd MMM yyyy + + + true + + + + + + + &Date: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + date + + + @@ -695,18 +718,21 @@ remove_series_button series_index isbn + date pubdate comments fetch_metadata_button - formats add_format_button remove_format_button cover_path cover_button reset_cover fetch_cover_button - scrollArea + button_set_cover + formats + button_set_metadata button_box + scrollArea diff --git a/src/calibre/gui2/library.py b/src/calibre/gui2/library.py index 643c2b3471..cc3fcb3f7d 100644 --- a/src/calibre/gui2/library.py +++ b/src/calibre/gui2/library.py @@ -717,7 +717,7 @@ class BooksView(TableView): self.setItemDelegateForColumn(cm.index('series'), self.series_delegate) def set_context_menu(self, edit_metadata, send_to_device, convert, view, - save, open_folder, book_details, similar_menu=None): + save, open_folder, book_details, delete, similar_menu=None): self.setContextMenuPolicy(Qt.DefaultContextMenu) self.context_menu = QMenu(self) if edit_metadata is not None: @@ -730,6 +730,8 @@ class BooksView(TableView): self.context_menu.addAction(save) if open_folder is not None: self.context_menu.addAction(open_folder) + if delete is not None: + self.context_menu.addAction(delete) if book_details is not None: self.context_menu.addAction(book_details) if similar_menu is not None: diff --git a/src/calibre/gui2/lrf_renderer/text.py b/src/calibre/gui2/lrf_renderer/text.py index 4db7d505d7..f094bd64ac 100644 --- a/src/calibre/gui2/lrf_renderer/text.py +++ b/src/calibre/gui2/lrf_renderer/text.py @@ -23,12 +23,12 @@ class PixmapItem(QGraphicsPixmapItem): w, h = p.width(), p.height() p = p.copy(x0, y0, min(w, x1-x0), min(h, y1-y0)) if p.width() != xsize or p.height() != ysize: - p = p.scaled(xsize, ysize, Qt.IgnoreAspectRatio, Qt.SmoothTransformation) + p = p.scaled(xsize, ysize, Qt.IgnoreAspectRatio, Qt.SmoothTransformation) QGraphicsPixmapItem.__init__(self, p) self.height, self.width = ysize, xsize self.setTransformationMode(Qt.SmoothTransformation) self.setShapeMode(QGraphicsPixmapItem.BoundingRectShape) - + def resize(self, width, height): p = self.pixmap() self.setPixmap(p.scaled(width, height, Qt.IgnoreAspectRatio, Qt.SmoothTransformation)) @@ -36,7 +36,7 @@ class PixmapItem(QGraphicsPixmapItem): class Plot(PixmapItem): - + def __init__(self, plot, dpi): img = plot.refobj xsize, ysize = dpi*plot.attrs['xsize']/720., dpi*plot.attrs['ysize']/720. @@ -46,19 +46,19 @@ class Plot(PixmapItem): class FontLoader(object): - + font_map = { 'Swis721 BT Roman' : 'Liberation Sans', 'Dutch801 Rm BT Roman' : 'Liberation Serif', 'Courier10 BT Roman' : 'Liberation Mono', } - + def __init__(self, font_map, dpi): self.face_map = {} self.cache = {} self.dpi = dpi self.face_map = font_map - + def font(self, text_style): device_font = text_style.fontfacename in FONT_MAP try: @@ -68,7 +68,7 @@ class FontLoader(object): face = self.face_map[text_style.fontfacename] except KeyError: # Bad fontfacename field in LRF face = self.font_map['Dutch801 Rm BT Roman'] - + sz = text_style.fontsize wt = text_style.fontweight style = text_style.fontstyle @@ -76,37 +76,37 @@ class FontLoader(object): if font in self.cache: rfont = self.cache[font] else: - italic = font[2] == QFont.StyleItalic + italic = font[2] == QFont.StyleItalic rfont = QFont(font[0], font[3], font[1], italic) rfont.setPixelSize(font[3]) rfont.setBold(wt>=69) self.cache[font] = rfont qfont = rfont if text_style.emplinetype != 'none': - qfont = QFont(rfont) + qfont = QFont(rfont) qfont.setOverline(text_style.emplineposition == 'before') qfont.setUnderline(text_style.emplineposition == 'after') return qfont class Style(object): map = collections.defaultdict(lambda : NULL) - + def __init__(self, style, dpi): self.fdpi = dpi/720. self.update(style.as_dict()) - + def update(self, *args, **kwds): if len(args) > 0: kwds = args[0] for attr in kwds: setattr(self, attr, self.__class__.map[attr](kwds[attr], self.fdpi)) - + def copy(self): return copy.copy(self) - + class TextStyle(Style): - + map = collections.defaultdict(lambda : NULL, fontsize = operator.mul, fontwidth = operator.mul, @@ -121,9 +121,9 @@ class TextStyle(Style): parskip = operator.mul, textlinewidth = operator.mul, charspace = operator.mul, - linecolor = COLOR, + linecolor = COLOR, ) - + def __init__(self, style, font_loader, ruby_tags): self.font_loader = font_loader self.fontstyle = QFont.StyleNormal @@ -131,38 +131,38 @@ class TextStyle(Style): setattr(self, attr, ruby_tags[attr]) Style.__init__(self, style, font_loader.dpi) self.emplinetype = 'none' - self.font = self.font_loader.font(self) - - + self.font = self.font_loader.font(self) + + def update(self, *args, **kwds): Style.update(self, *args, **kwds) self.font = self.font_loader.font(self) - - + + class BlockStyle(Style): map = collections.defaultdict(lambda : NULL, bgcolor = COLOR, framecolor = COLOR, ) - + class ParSkip(object): def __init__(self, parskip): self.height = parskip - + def __str__(self): return 'Parskip: '+str(self.height) class TextBlock(object): - + class HeightExceeded(Exception): pass - + has_content = property(fget=lambda self: self.peek_index < len(self.lines)-1) - XML_ENTITIES = dict(zip(Tag.XML_SPECIAL_CHARS_TO_ENTITIES.values(), Tag.XML_SPECIAL_CHARS_TO_ENTITIES.keys())) + XML_ENTITIES = dict(zip(Tag.XML_SPECIAL_CHARS_TO_ENTITIES.values(), Tag.XML_SPECIAL_CHARS_TO_ENTITIES.keys())) XML_ENTITIES["quot"] = '"' - - def __init__(self, tb, font_loader, respect_max_y, text_width, logger, + + def __init__(self, tb, font_loader, respect_max_y, text_width, logger, opts, ruby_tags, link_activated): self.block_id = tb.id self.bs, self.ts = BlockStyle(tb.style, font_loader.dpi), \ @@ -182,37 +182,37 @@ class TextBlock(object): self.max_y = self.bs.blockheight if (respect_max_y or self.bs.blockrule.lower() in ('vert-fixed', 'block-fixed')) else sys.maxint self.height = 0 self.peek_index = -1 - + try: self.populate(tb.content) self.end_line() except TextBlock.HeightExceeded, err: pass #logger.warning('TextBlock height exceeded, skipping line:\n%s'%(err,)) - + def peek(self): return self.lines[self.peek_index+1] - + def commit(self): self.peek_index += 1 - + def reset(self): self.peek_index = -1 - + def create_link(self, refobj): if self.current_line is None: self.create_line() self.current_line.start_link(refobj, self.link_activated) self.link_activated(refobj, on_creation=True) - + def end_link(self): if self.current_line is not None: self.current_line.end_link() - + def close_valign(self): if self.current_line is not None: self.current_line.valign = None - + def populate(self, tb): self.create_line() open_containers = collections.deque() @@ -221,7 +221,7 @@ class TextBlock(object): if isinstance(i, basestring): self.process_text(i) elif i is None: - if len(open_containers) > 0: + if len(open_containers) > 0: for a, b in open_containers.pop(): if callable(a): a(*b) @@ -229,9 +229,9 @@ class TextBlock(object): setattr(self, a, b) elif i.name == 'P': open_containers.append((('in_para', False),)) - self.in_para = True + self.in_para = True elif i.name == 'CR': - if self.in_para: + if self.in_para: self.end_line() self.create_line() else: @@ -243,10 +243,10 @@ class TextBlock(object): self.first_line = True elif i.name == 'Span': open_containers.append((('current_style', self.current_style.copy()),)) - self.current_style.update(i.attrs) + self.current_style.update(i.attrs) elif i.name == 'CharButton': open_containers.append(((self.end_link, []),)) - self.create_link(i.attrs['refobj']) + self.create_link(i.attrs['refobj']) elif i.name == 'Italic': open_containers.append((('current_style', self.current_style.copy()),)) self.current_style.update(fontstyle=QFont.StyleItalic) @@ -262,8 +262,8 @@ class TextBlock(object): if self.current_line is None: self.create_line() self.current_line.valign = i.name - open_containers.append(((self.close_valign, []),)) - elif i.name == 'Space': + open_containers.append(((self.close_valign, []),)) + elif i.name == 'Space' and self.current_line is not None: self.current_line.add_space(i.attrs['xsize']) elif i.name == 'EmpLine': if i.attrs: @@ -273,7 +273,7 @@ class TextBlock(object): self.logger.warning('Unhandled TextTag %s'%(i.name,)) if not i.self_closing: open_containers.append([]) - + def end_line(self): if self.current_line is not None: self.height += self.current_line.finalize(self.current_style.baselineskip, @@ -281,21 +281,21 @@ class TextBlock(object): self.opts.visual_debug) if self.height > self.max_y+10: raise TextBlock.HeightExceeded(str(self.current_line)) - self.lines.append(self.current_line) + self.lines.append(self.current_line) self.current_line = None - + def create_line(self): line_length = self.line_length line_offset = self.line_offset if self.first_line: line_length -= self.current_style.parindent line_offset += self.current_style.parindent - self.current_line = Line(line_length, line_offset, - self.current_style.linespace, - self.current_style.align, + self.current_line = Line(line_length, line_offset, + self.current_style.linespace, + self.current_style.align, self.opts.hyphenate, self.block_id) self.first_line = False - + def process_text(self, raw): for ent, rep in TextBlock.XML_ENTITIES.items(): raw = raw.replace(u'&%s;'%ent, rep) @@ -306,11 +306,11 @@ class TextBlock(object): raw = raw[pos:] if line_filled: self.end_line() - - + + def __iter__(self): for line in self.lines: yield line - + def __str__(self): s = '' for line in self: @@ -320,7 +320,7 @@ class TextBlock(object): class Link(QGraphicsRectItem): inactive_brush = QBrush(QColor(0xff, 0xff, 0xff, 0xff)) active_brush = QBrush(QColor(0x00, 0x00, 0x00, 0x59)) - + def __init__(self, parent, start, stop, refobj, slot): QGraphicsRectItem.__init__(self, start, 0, stop-start, parent.height, parent) self.refobj = refobj @@ -329,28 +329,28 @@ class Link(QGraphicsRectItem): self.setPen(QPen(Qt.NoPen)) self.setCursor(Qt.PointingHandCursor) self.setAcceptsHoverEvents(True) - + def hoverEnterEvent(self, event): self.brush = self.__class__.active_brush self.parentItem().update() - + def hoverLeaveEvent(self, event): self.brush = self.__class__.inactive_brush self.parentItem().update() - + def mousePressEvent(self, event): self.hoverLeaveEvent(None) self.slot(self.refobj) class Line(QGraphicsItem): whitespace = re.compile(r'\s+') - + def __init__(self, line_length, offset, linespace, align, hyphenate, block_id): QGraphicsItem.__init__(self) - + self.line_length, self.offset, self.line_space = line_length, offset, linespace self.align, self.hyphenate, self.block_id = align, hyphenate, block_id - + self.tokens = collections.deque() self.current_width = 0 self.length_in_space = 0 @@ -358,25 +358,25 @@ class Line(QGraphicsItem): self.links = collections.deque() self.current_link = None self.valign = None - + def start_link(self, refobj, slot): self.current_link = [self.current_width, sys.maxint, refobj, slot] - + def end_link(self): if self.current_link is not None: self.current_link[1] = self.current_width self.links.append(self.current_link) self.current_link = None - + def can_add_plot(self, plot): return self.line_length - self.current_width >= plot.width - + def add_plot(self, plot): self.tokens.append(plot) self.current_width += plot.width self.height = max(self.height, plot.height) self.add_space(6) - + def populate(self, phrase, ts, process_space=True): phrase_pos = 0 processed = False @@ -401,7 +401,7 @@ class Line(QGraphicsItem): self.add_space(space_width) phrase_pos = right continue - + # Word doesn't fit on line if self.hyphenate and len(word) > 3: tokens = hyphenate_word(word) @@ -420,23 +420,23 @@ class Line(QGraphicsItem): return phrase_pos + len(part)-1, True # Failed to add word. return phrase_pos, True - + if not processed: return self.populate(phrase+' ', ts, False) - + return phrase_pos, False - + def commit(self, word, width, height, descent, ts, font): self.tokens.append(Word(word, width, height, ts, font, self.valign)) self.current_width += width self.height = max(self.height, height) self.descent = max(self.descent, descent) - + def add_space(self, min_width): self.tokens.append(min_width) self.current_width += min_width self.length_in_space += min_width - + def justify(self): delta = self.line_length - self.current_width if self.length_in_space > 0: @@ -445,33 +445,33 @@ class Line(QGraphicsItem): if isinstance(self.tokens[i], (int, float)): self.tokens[i] *= frac self.current_width = self.line_length - + def finalize(self, baselineskip, linespace, vdebug): if self.current_link is not None: self.end_link() - + # We justify if line is small and it doesn't have links in it - # If it has links, justification would cause the boundingrect of the link to + # If it has links, justification would cause the boundingrect of the link to # be too small if self.current_width >= 0.85 * self.line_length and len(self.links) == 0: self.justify() - + self.width = float(self.current_width) if self.height == 0: self.height = baselineskip self.height = float(self.height) - + self.vdebug = vdebug - + for link in self.links: Link(self, *link) - - + + return self.height - + def boundingRect(self): return QRectF(0, 0, self.width, self.height) - + def paint(self, painter, option, widget): x, y = 0, 0+self.height-self.descent if self.vdebug: @@ -509,16 +509,16 @@ class Line(QGraphicsItem): painter.drawPixmap(x, 0, tok.pixmap()) x += tok.width painter.restore() - + def words(self): for w in self.tokens: if isinstance(w, Word): yield w - + def search(self, phrase): tokens = phrase.lower().split() if len(tokens) < 1: return None - + words = self.words() matches = [] try: @@ -538,16 +538,16 @@ class Line(QGraphicsItem): return self except StopIteration: return None - - + + def getx(self, textwidth): if self.align == 'head': return self.offset if self.align == 'foot': return textwidth - self.width - if self.align == 'center': + if self.align == 'center': return (textwidth-self.width)/2. - + def __unicode__(self): s = u'' for tok in self.tokens: @@ -555,23 +555,23 @@ class Line(QGraphicsItem): s += ' ' elif isinstance(tok, Word): s += qstring_to_unicode(tok.string) - return s - + return s + def __str__(self): return unicode(self).encode('utf-8') - + class Word(object): - + def __init__(self, string, width, height, ts, font, valign): self.string, self.width, self.height = QString(string), width, height self.font = font self.text_color = ts.textcolor self.highlight = False self.valign = valign - + def main(args=sys.argv): return 0 if __name__ == '__main__': - sys.exit(main()) \ No newline at end of file + sys.exit(main()) diff --git a/src/calibre/gui2/main.py b/src/calibre/gui2/main.py index 7b68667444..a8ad9ef83c 100644 --- a/src/calibre/gui2/main.py +++ b/src/calibre/gui2/main.py @@ -390,13 +390,14 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI): self.action_save, self.action_open_containing_folder, self.action_show_book_details, + self.action_del, similar_menu=similar_menu) self.memory_view.set_context_menu(None, None, None, - self.action_view, self.action_save, None, None) + self.action_view, self.action_save, None, None, self.action_del) self.card_a_view.set_context_menu(None, None, None, - self.action_view, self.action_save, None, None) + self.action_view, self.action_save, None, None, self.action_del) self.card_b_view.set_context_menu(None, None, None, - self.action_view, self.action_save, None, None) + self.action_view, self.action_save, None, None, self.action_del) QObject.connect(self.library_view, SIGNAL('files_dropped(PyQt_PyObject)'), self.files_dropped, Qt.QueuedConnection) diff --git a/src/calibre/gui2/tag_view.py b/src/calibre/gui2/tag_view.py index e76259cdef..4a6545053e 100644 --- a/src/calibre/gui2/tag_view.py +++ b/src/calibre/gui2/tag_view.py @@ -6,9 +6,13 @@ __docformat__ = 'restructuredtext en' ''' Browsing book collection by tags. ''' -from PyQt4.Qt import QStandardItemModel, Qt, QTreeView, QStandardItem, \ - QFont, SIGNAL, QSize, QIcon, QPoint, QPixmap -from calibre.gui2 import config + +from itertools import izip + +from PyQt4.Qt import Qt, QTreeView, \ + QFont, SIGNAL, QSize, QIcon, QPoint, \ + QAbstractItemModel, QVariant, QModelIndex +from calibre.gui2 import config, NONE class TagsView(QTreeView): @@ -19,7 +23,7 @@ class TagsView(QTreeView): self.setIconSize(QSize(30, 30)) def set_database(self, db, match_all, popularity): - self._model = TagsModel(db) + self._model = TagsModel(db, parent=self) self.popularity = popularity self.match_all = match_all self.setModel(self._model) @@ -47,56 +51,87 @@ class TagsView(QTreeView): if ci.isValid(): self.scrollTo(ci, QTreeView.PositionAtTop) -class CategoryItem(QStandardItem): +class TagTreeItem(object): - def __init__(self, category, display_text, tags, icon, font, icon_map): - self.category = category - self.tags = tags - QStandardItem.__init__(self, icon, display_text) - self.setFont(font) - self.setSelectable(False) - self.setSizeHint(QSize(100, 40)) - self.setEditable(False) - for tag in tags: - self.appendRow(TagItem(tag, icon_map)) + CATEGORY = 0 + TAG = 1 + ROOT = 2 -class TagItem(QStandardItem): + def __init__(self, data=None, tag=None, category_icon=None, icon_map=None, parent=None): + self.parent = parent + self.children = [] + if self.parent is not None: + self.parent.append(self) + if data is None: + self.type = self.ROOT + else: + self.type = self.TAG if category_icon is None else self.CATEGORY + if self.type == self.CATEGORY: + self.name, self.icon = map(QVariant, (data, category_icon)) + self.py_name = data + self.bold_font = QFont() + self.bold_font.setBold(True) + self.bold_font = QVariant(self.bold_font) + elif self.type == self.TAG: + self.tag, self.icon_map = data, list(map(QVariant, icon_map)) - def __init__(self, tag, icon_map): - self.icon_map = icon_map - self.tag = tag - QStandardItem.__init__(self, tag.as_string()) - self.set_icon() - self.setEditable(False) - self.setSelectable(False) + def row(self): + if self.parent is not None: + return self.parent.children.index(self) + return 0 + + def append(self, child): + child.parent = self + self.children.append(child) + + def data(self, role): + if self.type == self.TAG: + return self.tag_data(role) + if self.type == self.CATEGORY: + return self.category_data(role) + return NONE + + def category_data(self, role): + if role == Qt.DisplayRole: + return self.name + if role == Qt.DecorationRole: + return self.icon + if role == Qt.FontRole: + return self.bold_font + return NONE + + def tag_data(self, role): + if role == Qt.DisplayRole: + return QVariant('[%d] %s'%(self.tag.count, self.tag.name)) + if role == Qt.DecorationRole: + return self.icon_map[self.tag.state] + return NONE def toggle(self): - self.tag.state = (self.tag.state + 1)%3 - self.set_icon() - - def set_icon(self): - self.setIcon(self.icon_map[self.tag.state]) - - -class TagsModel(QStandardItemModel): + if self.type == self.TAG: + self.tag.state = (self.tag.state + 1)%3 +class TagsModel(QAbstractItemModel): categories = [_('Authors'), _('Series'), _('Formats'), _('Publishers'), _('News'), _('Tags')] row_map = ['author', 'series', 'format', 'publisher', 'news', 'tag'] - def __init__(self, db): + def __init__(self, db, parent=None): + QAbstractItemModel.__init__(self, parent) self.cmap = tuple(map(QIcon, [I('user_profile.svg'), I('series.svg'), I('book.svg'), I('publisher.png'), I('news.svg'), I('tags.svg')])) - p = QPixmap(30, 30) - p.fill(Qt.transparent) - self.icon_map = [QIcon(p), QIcon(I('plus.svg')), + self.icon_map = [QIcon(), QIcon(I('plus.svg')), QIcon(I('minus.svg'))] - QStandardItemModel.__init__(self) self.db = db self.ignore_next_search = 0 - self._data = {} - self.bold_font = QFont() - self.bold_font.setBold(True) + self.root_item = TagTreeItem() + data = self.db.get_categories(config['sort_by_popularity']) + for i, r in enumerate(self.row_map): + c = TagTreeItem(parent=self.root_item, + data=self.categories[i], category_icon=self.cmap[i]) + for tag in data[r]: + t = TagTreeItem(parent=c, data=tag, icon_map=self.icon_map) + self.refresh() self.db.add_listener(self.database_changed) @@ -104,72 +139,102 @@ class TagsModel(QStandardItemModel): self.refresh() def refresh(self): - old_data = self._data - self._data = self.db.get_categories(config['sort_by_popularity']) - for key in old_data.keys(): - for tag in old_data[key]: - try: - index = self._data[key].index(tag) - if index > -1: - self._data[key][index].state = tag.state - except: - continue - self.clear() - root = self.invisibleRootItem() - for r, category in enumerate(self.row_map): - tags = self._data.get(category, []) - root.appendRow(CategoryItem(category, self.categories[r], - self._data[category], self.cmap[r], self.bold_font, self.icon_map)) - #self.reset() + data = self.db.get_categories(config['sort_by_popularity']) + for i, r in enumerate(self.row_map): + category = self.root_item.children[i] + names = [t.tag.name for t in category.children] + states = [t.tag.state for t in category.children] + state_map = dict(izip(names, states)) + category_index = self.index(i, 0, QModelIndex()) + if len(category.children) > 0: + self.beginRemoveRows(category_index, 0, + len(category.children)-1) + category.children = [] + self.endRemoveRows() + if len(data[r]) > 0: + self.beginInsertRows(category_index, 0, len(data[r])-1) + for tag in data[r]: + tag.state = state_map.get(tag.name, 0) + t = TagTreeItem(parent=category, data=tag, icon_map=self.icon_map) + self.endInsertRows() + + def columnCount(self, parent): + return 1 + + def data(self, index, role): + if not index.isValid(): + return NONE + item = index.internalPointer() + return item.data(role) + + def index(self, row, column, parent): + if not self.hasIndex(row, column, parent): + return QModelIndex() + + if not parent.isValid(): + parent_item = self.root_item + else: + parent_item = parent.internalPointer() + + try: + child_item = parent_item.children[row] + except IndexError: + return QModelIndex() + + ans = self.createIndex(row, column, child_item) + return ans + + def parent(self, index): + if not index.isValid(): + return QModelIndex() + + child_item = index.internalPointer() + parent_item = child_item.parent + + if parent_item is self.root_item or parent_item is None: + return QModelIndex() + + ans = self.createIndex(parent_item.row(), 0, parent_item) + return ans + + def rowCount(self, parent): + if parent.column() > 0: + return 0 + + if not parent.isValid(): + parent_item = self.root_item + else: + parent_item = parent.internalPointer() + + return len(parent_item.children) def reset_all_states(self): - changed_indices = [] - for category in self._data.values(): - Category = self.find_category(category) - for tag in category: + for i in xrange(self.rowCount(QModelIndex())): + category_index = self.index(i, 0, QModelIndex()) + category_item = category_index.internalPointer() + for j in xrange(self.rowCount(category_index)): + tag_index = self.index(j, 0, category_index) + tag_item = tag_index.internalPointer() + tag = tag_item.tag if tag.state != 0: tag.state = 0 - if Category is not None: - Tag = self.find_tag(tag, Category) - if Tag is not None: - changed_indices.append(Tag.index()) - for idx in changed_indices: - if idx.isValid(): - self.emit(SIGNAL('dataChanged(QModelIndex,QModelIndex)'), - idx, idx) + self.emit(SIGNAL('dataChanged(QModelIndex,QModelIndex)'), + tag_index, tag_index) def clear_state(self): - for category in self._data.values(): - for tag in category: - tag.state = 0 self.reset_all_states() - def find_category(self, name): - root = self.invisibleRootItem() - for i in range(root.rowCount()): - child = root.child(i) - if getattr(child, 'category', None) == name: - return child - - def find_tag(self, tag, category): - for i in range(category.rowCount()): - child = category.child(i) - if getattr(child, 'tag', None) == tag: - return child - - def reinit(self, *args, **kwargs): if self.ignore_next_search == 0: self.reset_all_states() else: self.ignore_next_search -= 1 - def toggle(self, index): - if index.parent().isValid(): - category = self.row_map[index.parent().row()] - tag = self._data[category][index.row()] - self.invisibleRootItem().child(index.parent().row()).child(index.row()).toggle() + if not index.isValid(): return False + item = index.internalPointer() + if item.type == TagTreeItem.TAG: + item.toggle() self.ignore_next_search = 2 self.emit(SIGNAL('dataChanged(QModelIndex,QModelIndex)'), index, index) return True @@ -177,12 +242,14 @@ class TagsModel(QStandardItemModel): def tokens(self): ans = [] - for key in self.row_map: - for tag in self._data[key]: + for i, key in enumerate(self.row_map): + category_item = self.root_item.children[i] + for tag_item in category_item.children: + tag = tag_item.tag category = key if key != 'news' else 'tag' if tag.state > 0: prefix = ' not ' if tag.state == 2 else '' - ans.append('%s%s:"%s"'%(prefix, category, tag)) + ans.append('%s%s:"%s"'%(prefix, category, tag.name)) return ans diff --git a/src/calibre/library/database2.py b/src/calibre/library/database2.py index d7adcd7fee..ef5583fee9 100644 --- a/src/calibre/library/database2.py +++ b/src/calibre/library/database2.py @@ -365,16 +365,14 @@ class ResultCache(SearchQueryParser): self._map_filtered = [id for id in self._map if id in matches] -class Tag(unicode): +class Tag(object): - def __new__(cls, *args): - obj = super(Tag, cls).__new__(cls, *args) - obj.count = 0 - obj.state = 0 - return obj + def __init__(self, name, id=None, count=0, state=0): + self.name = name + self.id = id + self.count = count + self.state = state - def as_string(self): - return u'[%d] %s'%(self.count, self) class LibraryDatabase2(LibraryDatabase): ''' @@ -987,15 +985,19 @@ class LibraryDatabase2(LibraryDatabase): tags = categories[category] if name != 'data': for tag in tags: - id = self.conn.get('SELECT id FROM %s WHERE %s=?'%(name, field), (tag,), all=False) + id = self.conn.get('SELECT id FROM %s WHERE %s=?'%(name, + field), (tag.name,), all=False) tag.id = id for tag in tags: if tag.id is not None: tag.count = self.conn.get('SELECT COUNT(id) FROM books_%s_link WHERE %s=?'%(name, category), (tag.id,), all=False) else: for tag in tags: - tag.count = self.conn.get('SELECT COUNT(format) FROM data WHERE format=?', (tag,), all=False) - tags.sort(reverse=sort_on_count, cmp=(lambda x,y:cmp(x.count,y.count)) if sort_on_count else cmp) + tag.count = self.conn.get('SELECT COUNT(format) FROM data WHERE format=?', + (tag.name,), all=False) + tags.sort(reverse=sort_on_count, cmp=(lambda + x,y:cmp(x.count,y.count)) if sort_on_count else (lambda + x,y:cmp(x.name, y.name))) for x in (('authors', 'author'), ('tags', 'tag'), ('publishers', 'publisher'), ('series', 'series')): get(*x) @@ -1011,7 +1013,7 @@ class LibraryDatabase2(LibraryDatabase): pass categories['news'] = list(map(Tag, newspapers)) for tag in categories['news']: - tag.count = self.conn.get('SELECT COUNT(id) FROM books_tags_link WHERE tag IN (SELECT DISTINCT id FROM tags WHERE name=?)', (tag,), all=False) + tag.count = self.conn.get('SELECT COUNT(id) FROM books_tags_link WHERE tag IN (SELECT DISTINCT id FROM tags WHERE name=?)', (tag.name,), all=False) return categories diff --git a/src/calibre/linux.py b/src/calibre/linux.py index fd2903c94b..62af807f4c 100644 --- a/src/calibre/linux.py +++ b/src/calibre/linux.py @@ -1,17 +1,13 @@ __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal ' + ''' Post installation script for linux ''' -import sys, os, shutil + +import sys, os, shutil, cPickle, textwrap, stat from subprocess import check_call -from calibre import __version__, __appname__ -from calibre.customize.ui import device_plugins +from calibre import __version__, __appname__, prints -DEVICES = device_plugins() - -DESTDIR = '' -if os.environ.has_key('DESTDIR'): - DESTDIR = os.environ['DESTDIR'] entry_points = { 'console_scripts': [ \ @@ -40,6 +36,380 @@ entry_points = { ], } +UNINSTALL = '''\ +#!{python} +euid = {euid} + +import os, subprocess, shutil + +if os.geteuid() != euid: + print 'WARNING: uninstaller must be run as', euid, 'to remove all files' + +for x in {manifest!r}: + if not os.path.exists(x): continue + print 'Removing', x + try: + if os.path.isdir(x): + shutil.rmtree(x) + else: + os.unlink(x) + except Exception, e: + print 'Failed to delete', x + print '\t', e + +icr = {icon_resources!r} +for context, name, size in icr: + cmd = ['xdg-icon-resource', 'uninstall', '--context', context, '--size', size, name] + if (context, name) != icr[-1]: + cmd.insert(2, '--noupdate') + ret = subprocess.call(cmd) + if ret != 0: + print 'WARNING: Failed to remove icon', name + +mr = {menu_resources!r} +for f in mr: + cmd = ['xdg-desktop-menu', 'uninstall', f] + ret = subprocess.call(cmd) + if ret != 0: + print 'WARNING: Failed to remove menu item', f + +os.remove(os.path.abspath(__file__)) +''' + +class PostInstall: + + def task_failed(self, msg): + self.warn(msg, 'with error:') + import traceback + tb = '\n\t'.join(traceback.format_exc().splitlines()) + self.info('\t'+tb) + print + + def warning(self, *args, **kwargs): + print '\n'+'_'*20, 'WARNING','_'*20 + prints(*args, **kwargs) + print '_'*50 + self.warnings.append((args, kwargs)) + sys.stdout.flush() + + + def __init__(self, opts, info=prints, warn=None, manifest=None): + self.opts = opts + self.info = info + self.warn = warn + self.warnings = [] + if self.warn is None: + self.warn = self.warning + + if not self.opts.staging_bindir: + self.opts.staging_bindir = os.path.join(self.opts.staging_root, + 'bin') + if not self.opts.staging_sharedir: + self.opts.staging_sharedir = os.path.join(self.opts.staging_root, + 'share', 'calibre') + self.opts.staging_etc = '/etc' if self.opts.staging_root == '/usr' else \ + os.path.join(self.opts.staging_root, 'etc') + + scripts = cPickle.loads(P('scripts.pickle', data=True)) + if getattr(sys, 'frozen_path', False): + self.info('Creating symlinks...') + for exe in scripts.keys(): + dest = os.path.join(self.opts.staging_bindir, exe) + if os.path.exists(dest): + os.unlink(dest) + tgt = os.path.join(getattr(sys, 'frozen_path'), exe) + self.info('\tSymlinking %s to %s'%(tgt, dest)) + os.symlink(tgt, dest) + + if manifest is None: + manifest = [os.path.abspath(os.path.join(opts.staging_bindir, x)) for x in + scripts.keys()] + self.manifest = manifest + self.icon_resources = [] + self.menu_resources = [] + self.mime_resources = [] + self.setup_completion() + self.setup_udev_rules() + self.install_man_pages() + self.setup_desktop_integration() + self.create_uninstaller() + + from calibre.utils.config import config_dir + if os.path.exists(config_dir): + os.chdir(config_dir) + for f in os.listdir('.'): + if os.stat(f).st_uid == 0: + os.rmdir(f) if os.path.isdir(f) else os.unlink(f) + if os.stat(config_dir).st_uid == 0: + os.rmdir(config_dir) + + if warn is None and self.warnings: + self.info('There were %d warnings'%len(self.warnings)) + for args, kwargs in self.warnings: + self.info('*', *args, **kwargs) + print + + def create_uninstaller(self): + dest = os.path.join(self.opts.staging_bindir, 'calibre-uninstall') + raw = UNINSTALL.format(python=os.path.abspath(sys.executable), euid=os.geteuid(), + manifest=self.manifest, icon_resources=self.icon_resources, + menu_resources=self.menu_resources) + try: + with open(dest, 'wb') as f: + f.write(raw) + os.chmod(dest, stat.S_IRWXU|stat.S_IRGRP|stat.S_IROTH) + if os.geteuid() == 0: + os.chown(dest, 0, 0) + except: + if self.opts.fatal_errors: + raise + self.task_failed('Creating uninstaller failed') + + + def setup_completion(self): + try: + self.info('Setting up bash completion...') + from calibre.ebooks.metadata.cli import option_parser as metaop, filetypes as meta_filetypes + from calibre.ebooks.lrf.lrfparser import option_parser as lrf2lrsop + from calibre.gui2.lrf_renderer.main import option_parser as lrfviewerop + from calibre.web.fetch.simple import option_parser as web2disk + from calibre.web.feeds.recipes import titles as feed_titles + from calibre.ebooks.metadata.fetch import option_parser as fem_op + from calibre.gui2.main import option_parser as guiop + from calibre.utils.smtp import option_parser as smtp_op + any_formats = ['epub', 'htm', 'html', 'xhtml', 'xhtm', 'rar', 'zip', + 'txt', 'lit', 'rtf', 'pdf', 'prc', 'mobi', 'fb2', 'odt'] + bc = os.path.join(os.path.dirname(self.opts.staging_sharedir), + 'bash-completion') + if os.path.exists(bc): + f = os.path.join(bc, 'calibre') + else: + f = os.path.join(self.opts.staging_etc, 'bash_completion.d/calibre') + if not os.path.exists(os.path.dirname(f)): + os.makedirs(os.path.dirname(f)) + self.manifest.append(f) + self.info('Installing bash completion to', f) + with open(f, 'wb') as f: + f.write('# calibre Bash Shell Completion\n') + f.write(opts_and_exts('calibre', guiop, any_formats)) + f.write(opts_and_exts('lrf2lrs', lrf2lrsop, ['lrf'])) + f.write(opts_and_exts('ebook-meta', metaop, list(meta_filetypes()))) + f.write(opts_and_exts('lrfviewer', lrfviewerop, ['lrf'])) + f.write(opts_and_words('web2disk', web2disk, feed_titles)) + f.write(opts_and_words('fetch-ebook-metadata', fem_op, [])) + f.write(opts_and_words('calibre-smtp', smtp_op, [])) + f.write(textwrap.dedent(''' + _ebook_device_ls() + { + local pattern search listing prefix + pattern="$1" + search="$1" + if [[ -n "{$pattern}" ]]; then + if [[ "${pattern:(-1)}" == "/" ]]; then + pattern="" + else + pattern="$(basename ${pattern} 2> /dev/null)" + search="$(dirname ${search} 2> /dev/null)" + fi + fi + + if [[ "x${search}" == "x" || "x${search}" == "x." ]]; then + search="/" + fi + + listing="$(ebook-device ls ${search} 2>/dev/null)" + + prefix="${search}" + if [[ "x${prefix:(-1)}" != "x/" ]]; then + prefix="${prefix}/" + fi + + echo $(compgen -P "${prefix}" -W "${listing}" "${pattern}") + } + + _ebook_device() + { + local cur prev + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + COMPREPLY=() + case "${prev}" in + ls|rm|mkdir|touch|cat ) + COMPREPLY=( $(_ebook_device_ls "${cur}") ) + return 0 + ;; + cp ) + if [[ ${cur} == prs500:* ]]; then + COMPREPLY=( $(_ebook_device_ls "${cur:7}") ) + return 0 + else + _filedir + return 0 + fi + ;; + prs500 ) + COMPREPLY=( $(compgen -W "cp ls rm mkdir touch cat info books df" "${cur}") ) + return 0 + ;; + * ) + if [[ ${cur} == prs500:* ]]; then + COMPREPLY=( $(_ebook_device_ls "${cur:7}") ) + return 0 + else + if [[ ${prev} == prs500:* ]]; then + _filedir + return 0 + else + COMPREPLY=( $(compgen -W "prs500:" "${cur}") ) + return 0 + fi + return 0 + fi + ;; + esac + } + complete -o nospace -F _ebook_device ebook-device + + complete -o nospace -C calibre-complete ebook-convert + ''')) + except TypeError, err: + if 'resolve_entities' in str(err): + print 'You need python-lxml >= 2.0.5 for calibre' + sys.exit(1) + raise + except: + if self.opts.fatal_errors: + raise + self.task_failed('Setting up completion failed') + + def setup_udev_rules(self): + self.info('Trying to setup udev rules...') + try: + group_file = os.path.join(self.opts.staging_etc, 'group') + if not os.path.exists(group_file): + group_file = '/etc/group' + groups = open(group_file, 'rb').read() + group = 'plugdev' if 'plugdev' in groups else 'usb' + old_udev = '/etc/udev/rules.d/95-calibre.rules' + if not os.path.exists(old_udev): + old_udev = os.path.join(self.opts.staging_etc, 'udev/rules.d/95-calibre.rules') + if os.path.exists(old_udev): + try: + os.remove(old_udev) + except: + self.warn('Old udev rules found, please delete manually:', + old_udev) + if self.opts.staging_root == '/usr': + base = '/lib' + else: + base = os.path.join(self.opts.staging_root, 'lib') + base = os.path.join(base, 'udev', 'rules.d') + if not os.path.exists(base): + os.makedirs(base) + with open(os.path.join(base, '95-calibre.rules'), 'wb') as udev: + self.manifest.append(udev.name) + udev.write('''# Sony Reader PRS-500\n''' + '''BUS=="usb", SYSFS{idProduct}=="029b", SYSFS{idVendor}=="054c", MODE="660", GROUP="%s"\n'''%(group,) + ) + except: + if self.opts.fatal_errors: + raise + self.task_failed('Setting up udev rules failed') + + def install_man_pages(self): + try: + from calibre.utils.help2man import create_man_page + manpath = os.path.join(self.opts.staging_sharedir, 'man/man1') + if not os.path.exists(manpath): + os.makedirs(manpath) + self.info('Installing MAN pages...') + for src in entry_points['console_scripts']: + prog, right = src.split('=') + prog = prog.strip() + module = __import__(right.split(':')[0].strip(), fromlist=['a']) + parser = getattr(module, 'option_parser', None) + if parser is None: + continue + parser = parser() + raw = create_man_page(prog, parser) + manfile = os.path.join(manpath, prog+'.1'+__appname__+'.bz2') + self.info('\tInstalling MAN page for', prog) + open(manfile, 'wb').write(raw) + self.manifest.append(manfile) + except: + if self.opts.fatal_errors: + raise + self.task_failed('Installing MAN pages failed') + + def setup_desktop_integration(self): + try: + from PyQt4.QtCore import QFile + from tempfile import mkdtemp + + self.info('Setting up desktop integration...') + + + tdir = mkdtemp() + cwd = os.getcwdu() + try: + os.chdir(tdir) + render_svg(QFile(I('mimetypes/lrf.svg')), os.path.join(tdir, 'calibre-lrf.png')) + check_call('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-lrf.png application-lrf', shell=True) + self.icon_resources.append(('mimetypes', 'application-lrf', '128')) + check_call('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-lrf.png text-lrs', shell=True) + self.icon_resources.append(('mimetypes', 'application-lrs', + '128')) + QFile(I('library.png')).copy(os.path.join(tdir, 'calibre-gui.png')) + check_call('xdg-icon-resource install --noupdate --size 128 calibre-gui.png calibre-gui', shell=True) + self.icon_resources.append(('apps', 'calibre-gui', '128')) + render_svg(QFile(I('viewer.svg')), os.path.join(tdir, 'calibre-viewer.png')) + check_call('xdg-icon-resource install --size 128 calibre-viewer.png calibre-viewer', shell=True) + self.icon_resources.append(('apps', 'calibre-viewer', '128')) + + f = open('calibre-lrfviewer.desktop', 'wb') + f.write(VIEWER) + f.close() + f = open('calibre-ebook-viewer.desktop', 'wb') + f.write(EVIEWER) + f.close() + f = open('calibre-gui.desktop', 'wb') + f.write(GUI) + f.close() + des = ('calibre-gui.desktop', 'calibre-lrfviewer.desktop', + 'calibre-ebook-viewer.desktop') + for x in des: + cmd = ['xdg-desktop-menu', 'install', './'+x] + if x != des[-1]: + cmd.insert(2, '--noupdate') + check_call(' '.join(cmd), shell=True) + self.menu_resources.append(x) + f = open('calibre-mimetypes', 'wb') + f.write(MIME) + f.close() + self.mime_resources.append('calibre-mimetypes') + check_call('xdg-mime install ./calibre-mimetypes', shell=True) + finally: + os.chdir(cwd) + shutil.rmtree(tdir) + except Exception, err: + if self.opts.fatal_errors: + raise + self.task_failed('Setting up desktop integration failed') + +def option_parser(): + from calibre.utils.config import OptionParser + parser = OptionParser() + parser.add_option('--make-errors-fatal', action='store_true', default=False, + dest='fatal_errors', help='If set die on errors.') + parser.add_option('--root', dest='staging_root', default='/usr', + help='Prefix under which to install files') + parser.add_option('--bindir', default=None, dest='staging_bindir', + help='Location where calibre launcher scripts were installed. Typically /usr/bin') + parser.add_option('--sharedir', default=None, dest='staging_sharedir', + help='Location where calibre resources were installed, typically /usr/share/calibre') + + return parser + def options(option_parser): parser = option_parser() @@ -121,242 +491,6 @@ def opts_and_exts(name, op, exts): } complete -o filenames -F _'''%(opts,exts) + name + ' ' + name +"\n\n" -use_destdir = False - -def open_file(path, mode='wb'): - if use_destdir: - if os.path.isabs(path): - path = path[1:] - path = os.path.join(DESTDIR, path) - if not os.path.exists(os.path.dirname(path)): - os.makedirs(os.path.dirname(path)) - return open(path, mode) - -def setup_completion(fatal_errors): - manifest = [] - try: - print 'Setting up bash completion...', - sys.stdout.flush() - from calibre.ebooks.metadata.cli import option_parser as metaop, filetypes as meta_filetypes - from calibre.ebooks.lrf.lrfparser import option_parser as lrf2lrsop - from calibre.gui2.lrf_renderer.main import option_parser as lrfviewerop - from calibre.web.fetch.simple import option_parser as web2disk - from calibre.web.feeds.recipes import titles as feed_titles - from calibre.ebooks.metadata.fetch import option_parser as fem_op - from calibre.gui2.main import option_parser as guiop - from calibre.utils.smtp import option_parser as smtp_op - any_formats = ['epub', 'htm', 'html', 'xhtml', 'xhtm', 'rar', 'zip', - 'txt', 'lit', 'rtf', 'pdf', 'prc', 'mobi', 'fb2', 'odt'] - if os.path.exists('/usr/share/bash-completion'): - f = open_file('/usr/share/bash-completion/calibre') - else: - f = open_file('/etc/bash_completion.d/calibre') - manifest.append(f.name) - - f.write('# calibre Bash Shell Completion\n') - f.write(opts_and_exts('calibre', guiop, any_formats)) - f.write(opts_and_exts('lrf2lrs', lrf2lrsop, ['lrf'])) - f.write(opts_and_exts('ebook-meta', metaop, list(meta_filetypes()))) - f.write(opts_and_exts('lrfviewer', lrfviewerop, ['lrf'])) - f.write(opts_and_words('web2disk', web2disk, feed_titles)) - f.write(opts_and_words('fetch-ebook-metadata', fem_op, [])) - f.write(opts_and_words('calibre-smtp', smtp_op, [])) - f.write(''' -_prs500_ls() -{ - local pattern search listing prefix - pattern="$1" - search="$1" - if [[ -n "{$pattern}" ]]; then - if [[ "${pattern:(-1)}" == "/" ]]; then - pattern="" - else - pattern="$(basename ${pattern} 2> /dev/null)" - search="$(dirname ${search} 2> /dev/null)" - fi - fi - - if [[ "x${search}" == "x" || "x${search}" == "x." ]]; then - search="/" - fi - - listing="$(prs500 ls ${search} 2>/dev/null)" - - prefix="${search}" - if [[ "x${prefix:(-1)}" != "x/" ]]; then - prefix="${prefix}/" - fi - - echo $(compgen -P "${prefix}" -W "${listing}" "${pattern}") -} - -_prs500() -{ - local cur prev - cur="${COMP_WORDS[COMP_CWORD]}" - prev="${COMP_WORDS[COMP_CWORD-1]}" - COMPREPLY=() - case "${prev}" in - ls|rm|mkdir|touch|cat ) - COMPREPLY=( $(_prs500_ls "${cur}") ) - return 0 - ;; - cp ) - if [[ ${cur} == prs500:* ]]; then - COMPREPLY=( $(_prs500_ls "${cur:7}") ) - return 0 - else - _filedir - return 0 - fi - ;; - prs500 ) - COMPREPLY=( $(compgen -W "cp ls rm mkdir touch cat info books df" "${cur}") ) - return 0 - ;; - * ) - if [[ ${cur} == prs500:* ]]; then - COMPREPLY=( $(_prs500_ls "${cur:7}") ) - return 0 - else - if [[ ${prev} == prs500:* ]]; then - _filedir - return 0 - else - COMPREPLY=( $(compgen -W "prs500:" "${cur}") ) - return 0 - fi - return 0 - fi - ;; - esac -} -complete -o nospace -F _prs500 ebook-device - -complete -o nospace -C calibre-complete ebook-convert -''') - f.close() - print 'done' - except TypeError, err: - if 'resolve_entities' in str(err): - print 'You need python-lxml >= 2.0.5 for calibre' - sys.exit(1) - raise - except: - if fatal_errors: - raise - print 'failed' - import traceback - traceback.print_exc() - return manifest - -def setup_udev_rules(group_file, reload, fatal_errors): - print 'Trying to setup udev rules...' - manifest = [] - sys.stdout.flush() - groups = open(group_file, 'rb').read() - group = 'plugdev' if 'plugdev' in groups else 'usb' - old_udev = '/etc/udev/rules.d/95-calibre.rules' - if os.path.exists(old_udev): - os.remove(old_udev) - if os.path.exists('/lib/udev/rules.d'): - udev = open_file('/lib/udev/rules.d/95-calibre.rules') - else: - udev = open_file(old_udev) - manifest.append(udev.name) - udev.write('''# Sony Reader PRS-500\n''' - '''BUS=="usb", SYSFS{idProduct}=="029b", SYSFS{idVendor}=="054c", MODE="660", GROUP="%s"\n'''%(group,) - ) - udev.close() - return manifest - -def option_parser(): - from optparse import OptionParser - parser = OptionParser() - parser.add_option('--use-destdir', action='store_true', default=False, dest='destdir', - help='If set, respect the environment variable DESTDIR when installing files') - parser.add_option('--do-not-reload-udev-hal', action='store_true', dest='dont_reload', default=False, - help='Does nothing. Present for legacy reasons.') - parser.add_option('--group-file', default='/etc/group', dest='group_file', - help='File from which to read group information. Default: %default') - parser.add_option('--dont-check-root', action='store_true', default=False, dest='no_root', - help='If set, do not check if we are root.') - parser.add_option('--make-errors-fatal', action='store_true', default=False, - dest='fatal_errors', help='If set die on errors.') - parser.add_option('--save-manifest-to', default=None, - help='Save a manifest of all installed files to the specified location') - return parser - -def install_man_pages(fatal_errors, use_destdir=False): - from calibre.utils.help2man import create_man_page - prefix = os.environ.get('DESTDIR', '/') if use_destdir else '/' - manpath = os.path.join(prefix, 'usr/share/man/man1') - if not os.path.exists(manpath): - os.makedirs(manpath) - print 'Installing MAN pages...' - manifest = [] - for src in entry_points['console_scripts']: - prog, right = src.split('=') - prog = prog.strip() - module = __import__(right.split(':')[0].strip(), fromlist=['a']) - parser = getattr(module, 'option_parser', None) - if parser is None: - continue - parser = parser() - raw = create_man_page(prog, parser) - manfile = os.path.join(manpath, prog+'.1'+__appname__+'.bz2') - print '\tInstalling MAN page for', prog - open(manfile, 'wb').write(raw) - manifest.append(manfile) - return manifest - -def post_install(): - parser = option_parser() - opts = parser.parse_args()[0] - - global use_destdir - use_destdir = opts.destdir - manifest = [] - setup_desktop_integration(opts.fatal_errors) - if opts.no_root or os.geteuid() == 0: - manifest += install_man_pages(opts.fatal_errors, use_destdir) - manifest += setup_udev_rules(opts.group_file, not opts.dont_reload, opts.fatal_errors) - manifest += setup_completion(opts.fatal_errors) - else: - print "Skipping udev, completion, and man-page install for non-root user." - - try: - from PyQt4 import Qt - if Qt.PYQT_VERSION < int('0x40402', 16): - print 'WARNING: You need PyQt >= 4.4.2 for the GUI. You have', Qt.PYQT_VERSION_STR, '\nYou may experience crashes or other strange behavior.' - except ImportError: - print 'WARNING: You do not have PyQt4 installed. The GUI will not work.' - - if opts.save_manifest_to: - open(opts.save_manifest_to, 'wb').write('\n'.join(manifest)+'\n') - - from calibre.utils.config import config_dir - if os.path.exists(config_dir): - os.chdir(config_dir) - for f in os.listdir('.'): - if os.stat(f).st_uid == 0: - os.rmdir(f) if os.path.isdir(f) else os.unlink(f) - if os.stat(config_dir).st_uid == 0: - os.rmdir(config_dir) - -def binary_install(): - manifest = os.path.join(getattr(sys, 'frozen_path'), 'manifest') - exes = [x.strip() for x in open(manifest).readlines()] - print 'Creating symlinks...' - for exe in exes: - dest = os.path.join('/usr', 'bin', exe) - if os.path.exists(dest): - os.unlink(dest) - tgt = os.path.join(getattr(sys, 'frozen_path'), exe) - print '\tSymlinking %s to %s'%(tgt, dest) - os.symlink(tgt, dest) - post_install() - return 0 VIEWER = '''\ [Desktop Entry] @@ -431,50 +565,12 @@ def render_svg(image, dest): painter.end() image.save(dest) -def setup_desktop_integration(fatal_errors): - try: - from PyQt4.QtCore import QFile - from tempfile import mkdtemp - - print 'Setting up desktop integration...' +def main(): + p = option_parser() + opts, args = p.parse_args() + PostInstall(opts) + return 0 - tdir = mkdtemp() - cwd = os.getcwdu() - try: - os.chdir(tdir) - render_svg(QFile(I('mimetypes/lrf.svg')), os.path.join(tdir, 'calibre-lrf.png')) - check_call('xdg-icon-resource install --context mimetypes --size 128 calibre-lrf.png application-lrf', shell=True) - check_call('xdg-icon-resource install --context mimetypes --size 128 calibre-lrf.png text-lrs', shell=True) - QFile(I('library.png')).copy(os.path.join(tdir, 'calibre-gui.png')) - check_call('xdg-icon-resource install --size 128 calibre-gui.png calibre-gui', shell=True) - render_svg(QFile(I('viewer.svg')), os.path.join(tdir, 'calibre-viewer.png')) - check_call('xdg-icon-resource install --size 128 calibre-viewer.png calibre-viewer', shell=True) - - f = open('calibre-lrfviewer.desktop', 'wb') - f.write(VIEWER) - f.close() - f = open('calibre-ebook-viewer.desktop', 'wb') - f.write(EVIEWER) - f.close() - f = open('calibre-gui.desktop', 'wb') - f.write(GUI) - f.close() - check_call('xdg-desktop-menu install ./calibre-gui.desktop ./calibre-lrfviewer.desktop', shell=True) - f = open('calibre-mimetypes', 'wb') - f.write(MIME) - f.close() - check_call('xdg-mime install calibre-mimetypes', shell=True) - finally: - os.chdir(cwd) - shutil.rmtree(tdir) - except Exception, err: - if fatal_errors: - raise - print >>sys.stderr, 'Could not setup desktop integration. Error:' - print err - -main = post_install if __name__ == '__main__': - post_install() - + sys.exit(main()) diff --git a/src/calibre/manual/custom.py b/src/calibre/manual/custom.py index 0df8ea4fa8..1af97bf349 100644 --- a/src/calibre/manual/custom.py +++ b/src/calibre/manual/custom.py @@ -9,7 +9,7 @@ sys.path.insert(0, os.path.abspath('../../')) sys.extensions_location = '../plugins' sys.resources_location = '../../../resources' -from sphinx.builder import StandaloneHTMLBuilder +from sphinx.builders.html import StandaloneHTMLBuilder from qthelp import QtHelpBuilder from epub import EPUBHelpBuilder from sphinx.util import rpartition diff --git a/src/calibre/manual/develop.rst b/src/calibre/manual/develop.rst new file mode 100644 index 0000000000..626a784142 --- /dev/null +++ b/src/calibre/manual/develop.rst @@ -0,0 +1,191 @@ +.. include:: global.rst + +.. _develop: + +Setting up a |app| development environment +=========================================== + +|app| is completely open source, licensed under the `GNU GPL v3 `_. +This means that you are free to download and modify the program to your hearts content. In this section, +you will learn how to get a |app| development environment setup on the operating system of your choice. +|app| is written primarily in `Python `_ with some C/C++ code for speed and system interfacing. + +.. contents:: Contents + :depth: 2 + :local: + +Design philosophy +------------------- + +|app| has its roots in the Unix world, which means that it's design is highly modular. +The modules interact with each other via well defined interfaces. This makes adding new features and fixing +bugs in |app| very easy, resulting in a frenetic pace of development. Because of its roots, |app| has a +comprehensive command line interface for all its functions, documented in :ref:`cli`. + +The modular design of |app| is expressed via ``Plugins``. There is a :ref:`tutorial ` on writing |app| plugins. +For example, adding support for a new device to |app| typically involves writing less than a 100 lines of code in the form of +a device driver plugin. You can browse the +`built-in drivers `_. Similarly, adding support +for new conversion formats involves writing input/output format plugins. Another example of the modular design is the :ref:`recipe system ` for +fetching news. + +Code layout +^^^^^^^^^^^^^^ + +All the |app| python code is in the ``calibre`` package. This package contains the following main sub-packages + + * devices - All the device drivers. Just look through some of the built-in drivers to get an idea for how they work. + * ebooks - All the ebook conversion code. A good starting point is ``calibre.ebooks.conversion.cli`` which is the + module powering the :command:`ebook-convert` command. + * library - The database backed and the content server. + * gui2 - The Graphical User Interface. + +Getting the code +------------------ + +|app| uses `Bazaar `_ a distributed version control system. Bazaar is available on all the platforms |app| supports. +After installing Bazaar, you can get the calibre source code with the command:: + + bzr branch lp:calibre + +On Windows you will need the complete path name, that will be something like :file:`C:\\Program Files\\Bazaar\\bzr.exe`. To update a branch +to the latest code, use the command:: + + bzr merge + +Submitting your changes to be included +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +If you only plan to only make a few small changes, you can make your changes and create a +"merge directive" which you can then attach to a ticket in the |app| bug tracker for consideration. To do +this, make your changes, then run:: + + bzr commit -m "Comment describing your changes" + bzr send -o my-changes + +This will create a my-changes file in the current directory, simply attach that to a ticket on the |app| `bug tracker `_. + +If you plan to do a lot of development on |app|, then the best method is to create a +`Launchpad `_ account. Once you have the account, you can create your own +branch in which you do |app| development. To do that go to `Launchpad code `_ and click +"Register a branch" (choose a branch type of "Hosted"). Once the branch is setup you can associate it +with the code you checked out in the previous step running the following command in any directory +in the |app| code you checked out:: + + bzr push + +This will host your branch on launchpad. Now go to `calibre@Launchapd `_ and register +your branch with the |app| project. Now whenever you commit changes to your branch with the command:: + + bzr commit -m "Comment describing your change" + +I can merge it directly from you branch into the main |app| source tree. You should also subscribe to the |app| +developers mailing list `calibre-devs `_. Before making major changes, you should +discuss them on the mailing list to ensure that the changes will be accepted once you're done. + + +Windows development environment +--------------------------------- + +Install |app| normally, using the windows installer. Then, open a Command Prompt and change to +the previously checked out calibre code directory, for example:: + + cd C:\Users\kovid\work\calibre + +calibre is the directory that contains the src and resources sub directories. Then, run the following command:: + + calibre-debug --develop-from src + +This assumes that the location of the calibre install (typically ``C:\Program Files\calibre``) is in your PATH. +The next step is to set the environment variable ``CALIBRE_DEVELOP_FROM`` to the absolute path to the src directory. +So, following the example above, it would be ``C:\Users\kovid\work\calibre\src``. A short +`guide `_ to setting environment +variables on windows. + +Once you have set the environment variable, open a new Command Prompt and check that it was correctly set by using +the command:: + + echo %CALIBRE_DEVELOP_FROM% + +Setting this environment variable means that |app| will now load all its Python code from the specified location. + +That's it! You are now ready to start hacking on the |app| code. For example, open the file :file:`src\\calibre\\__init__.py` +in your favorite editor and add the line:: + + print "Hello, world!" + +near the top of the file. Now run the command :command:`calibredb`. The very first line of output should be ``Hello, world!``. +Note that if you make changes to any .ui files (these files define the |app| Graphical User Interface), you have to re-run the +``calibre-debug --develop-from src`` command, which will compile the .ui files, so that your changes show up. + +OS X development environment +------------------------------ + +Install |app| normally, using the provided .dmg. Then, open a Terminal and change to +the previously checked out calibre code directory, for example:: + + cd /Users/kovid/work/calibre + +calibre is the directory that contains the src and resources sub directories. Then, run the following command:: + + calibre-debug --develop-from src + +This assumes that you have installed the |app| command line tools. This can be done via Preferences->Advanced in the |app| GUI. +The next step is to set the environment variable ``CALIBRE_DEVELOP_FROM`` to the absolute path to the src directory. +So, following the example above, it would be ``/Users/kovid/work/calibre/src``. Apple +`documentation `_ +on how to set environment variables. + +Once you have set the environment variable, open a new Terminal and check that it was correctly set by using +the command:: + + echo $CALIBRE_DEVELOP_FROM + +Setting this environment variable means that |app| will now load all its Python code from the specified location. + +That's it! You are now ready to start hacking on the |app| code. For example, open the file :file:`src/calibre/__init__.py` +in your favorite editor and add the line:: + + print "Hello, world!" + +near the top of the file. Now run the command :command:`calibredb`. The very first line of output should be ``Hello, world!``. +Note that if you make changes to any .ui files (these files define the |app| Graphical User Interface), you have to re-run the +``calibre-debug --develop-from src`` command, which will compile the .ui files, so that your changes show up. + +Linux development environment +------------------------------ + +|app| is primarily developed on linux. You have two choices in setting up the development environment. You can install the +|app| binary as normal and use that as a runtime environment to do your development. This approach is similar to that +used in windows and linux. Alternatively, you can install |app| from source. Instructions for setting up a development +environment from source are in the INSTALL file in the source tree. Here we will address using the binary a runtime. + +Install the |app| using the binary installer. The opena terminal and change to the previously checked out |app| code directory, for example:: + + cd /home/kovid/work/calibre + +calibre is the directory that contains the src and resources sub directories. Then, run the following command:: + + calibre-debug --develop-from src + +The next step is to set the environment variable ``CALIBRE_DEVELOP_FROM`` to the absolute path to the src directory. +So, following the example above, it would be ``/home/kovid/work/calibre/src``. How to set environment variables depends on +your linux distribution and what shell you are using. + +Once you have set the environment variable, open a new terminal and check that it was correctly set by using +the command:: + + echo $CALIBRE_DEVELOP_FROM + +Setting this environment variable means that |app| will now load all its Python code from the specified location. + +That's it! You are now ready to start hacking on the |app| code. For example, open the file :file:`src/calibre/__init__.py` +in your favorite editor and add the line:: + + print "Hello, world!" + +near the top of the file. Now run the command :command:`calibredb`. The very first line of output should be ``Hello, world!``. +Note that if you make changes to any .ui files (these files define the |app| Graphical User Interface), you have to re-run the +``calibre-debug --develop-from src`` command, which will compile the .ui files, so that your changes show up. + + diff --git a/src/calibre/manual/index.rst b/src/calibre/manual/index.rst index a8281ef57f..83ff7b0bfe 100644 --- a/src/calibre/manual/index.rst +++ b/src/calibre/manual/index.rst @@ -35,6 +35,7 @@ Sections xpath customize cli/cli-index + develop glossary diff --git a/src/calibre/trac/plugins/download.py b/src/calibre/trac/plugins/download.py index 2962658097..75ea6a5913 100644 --- a/src/calibre/trac/plugins/download.py +++ b/src/calibre/trac/plugins/download.py @@ -19,7 +19,7 @@ DEPENDENCIES = [ ('python-dateutil', '1.4.1', 'python-dateutil', 'python-dateutil', 'python-dateutil'), ('BeautifulSoup', '3.0.5', 'beautifulsoup', 'python-beautifulsoup', 'python-BeautifulSoup'), ('dnspython', '1.6.0', 'dnspython', 'dnspython', 'dnspython', 'dnspython'), - ('poppler-qt4', '0.10.6', 'poppler-qt4', 'poppler-qt4', 'poppler-qt4', 'poppler-qt4'), + ('poppler', '0.12.0', 'poppler', 'poppler', 'poppler', 'poppler'), ('podofo', '0.7', 'podofo', 'podofo', 'podofo', 'podofo'), ('libwmf', '0.2.8', 'libwmf', 'libwmf', 'libwmf', 'libwmf'), ] @@ -186,7 +186,7 @@ else: data = dict(version = version, name='osx', installer_name='OS X universal dmg', title='Download %s for OS X'%(__appname__), - compatibility='%s works on OS X Tiger and Leopard, but not Snow Leopard (It might work on Snow Leopard if run with Rosetta).'%(__appname__,), + compatibility='%s works on OS X Tiger, Leopard, and Snow Leopard.'%(__appname__,), path=MOBILEREAD+file, app=__appname__, note=Markup(\ u''' diff --git a/src/calibre/translations/ar.po b/src/calibre/translations/ar.po index 7275454cfa..f7acae8901 100644 --- a/src/calibre/translations/ar.po +++ b/src/calibre/translations/ar.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" -"PO-Revision-Date: 2009-09-15 05:40+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" +"PO-Revision-Date: 2009-09-18 19:18+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Arabic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:45+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:42+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "لا يفعل شيءً" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -612,40 +612,43 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "تعطيل التشحيذ." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." msgstr "" "تعطيل اقتصاص صفحات الرسم. لبعضهم، الاقتصاص قد يتسبب بحذف محتوى وحدود." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "لا تقسم صور عرضية إلى صورتين طوليتين." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -653,13 +656,13 @@ msgstr "" "تستخدم لمنشورات يمين إلى يسار مثل المانغا اليابانية، إلخ. يتسبب بتقسيم صور " "عرضية إلى صور طولية من اليمين إلى اليسار." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -667,12 +670,19 @@ msgstr "" "لا ترتّب ملفات موجودة في الرسومات أبجدياً، بل استخدم الترتيب المستخدم في " "الرسومات." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "صفحة" @@ -2292,7 +2302,7 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2320,60 +2330,65 @@ msgstr "" msgid "Form" msgstr "استمارة" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "&عدد الألوان:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "تعطيل تشحيذ&" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "تعطيل اقتصاص&" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "&عرضي" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "&يمين إلى يسار" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2893,10 +2908,6 @@ msgstr "حوار" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" diff --git a/src/calibre/translations/bg.po b/src/calibre/translations/bg.po index 49a0fb21a1..4f5bd4430b 100644 --- a/src/calibre/translations/bg.po +++ b/src/calibre/translations/bg.po @@ -6,14 +6,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre 0.4.51\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" "PO-Revision-Date: 2008-05-24 06:23+0000\n" "Last-Translator: Kovid Goyal \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-09-18 09:46+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:42+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Generated-By: pygettext.py 1.5\n" @@ -28,7 +28,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -610,62 +610,72 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "" @@ -2265,7 +2275,7 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2293,60 +2303,65 @@ msgstr "" msgid "Form" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2864,10 +2879,6 @@ msgstr "" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" diff --git a/src/calibre/translations/ca.po b/src/calibre/translations/ca.po index 46640d7747..44eed0704c 100644 --- a/src/calibre/translations/ca.po +++ b/src/calibre/translations/ca.po @@ -10,14 +10,14 @@ msgid "" msgstr "" "Project-Id-Version: ca\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" "PO-Revision-Date: 2009-05-21 15:19+0000\n" "Last-Translator: Kovid Goyal \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-09-18 09:46+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:42+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -31,7 +31,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -613,62 +613,72 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "" @@ -2273,7 +2283,7 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2301,60 +2311,65 @@ msgstr "" msgid "Form" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2875,10 +2890,6 @@ msgstr "" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" diff --git a/src/calibre/translations/calibre.pot b/src/calibre/translations/calibre.pot index 8ee08e70cf..09c03f9b70 100644 --- a/src/calibre/translations/calibre.pot +++ b/src/calibre/translations/calibre.pot @@ -4,9 +4,9 @@ # msgid "" msgstr "" -"Project-Id-Version: calibre 0.6.13\n" -"POT-Creation-Date: 2009-09-18 12:45+MDT\n" -"PO-Revision-Date: 2009-09-18 12:45+MDT\n" +"Project-Id-Version: calibre 0.6.14\n" +"POT-Creation-Date: 2009-09-28 17:09+MDT\n" +"PO-Revision-Date: 2009-09-28 17:09+MDT\n" "Last-Translator: Automatically generated\n" "Language-Team: LANGUAGE\n" "MIME-Version: 1.0\n" @@ -51,8 +51,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:870 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:34 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:76 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:21 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:44 @@ -66,7 +65,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:886 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:891 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:947 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:951 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:135 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 @@ -109,31 +108,29 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:106 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:139 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:410 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:42 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:874 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1000 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:876 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1002 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:211 #: /home/kovid/work/calibre/src/calibre/library/cli.py:277 #: /home/kovid/work/calibre/src/calibre/library/database.py:917 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:654 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:666 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1061 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1098 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1428 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:652 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:664 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1063 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1100 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1539 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1432 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1541 #: /home/kovid/work/calibre/src/calibre/library/server.py:493 #: /home/kovid/work/calibre/src/calibre/library/server.py:565 #: /home/kovid/work/calibre/src/calibre/utils/localization.py:103 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77 -#: /home/kovid/work/calibre/src/calibre/utils/poppler/__init__.py:28 -#: /home/kovid/work/calibre/src/calibre/utils/poppler/__init__.py:32 msgid "Unknown" msgstr "" @@ -313,11 +310,11 @@ msgstr "" msgid "No valid plugin found in " msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:229 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:232 msgid "Initialization of plugin %s failed with traceback:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:359 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:362 msgid "" " %prog options\n" "\n" @@ -325,27 +322,27 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:365 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:368 msgid "Add a plugin by specifying the path to the zip file containing it." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:367 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:370 msgid "Remove a custom plugin by name. Has no effect on builtin plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:369 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:372 msgid "Customize plugin. Specify name of plugin and customization string separated by a comma." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:371 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:374 msgid "List all installed plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:373 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:376 msgid "Enable the named plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:375 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:378 msgid "Disable the named plugin" msgstr "" @@ -524,10 +521,10 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:686 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:434 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:83 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1005 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1009 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1332 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:115 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1007 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1011 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1334 msgid "News" msgstr "" @@ -951,7 +948,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:122 #: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:111 #: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:72 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:78 msgid "Table of Contents:" msgstr "" @@ -1241,7 +1238,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:388 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1066 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1068 msgid "Title" msgstr "" @@ -1249,7 +1246,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:159 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:393 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1067 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1069 msgid "Author(s)" msgstr "" @@ -1276,10 +1273,10 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:338 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1010 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1070 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1012 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1072 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:115 msgid "Tags" msgstr "" @@ -1287,7 +1284,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:115 msgid "Series" msgstr "" @@ -1296,7 +1293,7 @@ msgid "Language" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1009 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1011 msgid "Timestamp" msgstr "" @@ -1438,7 +1435,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1055 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1310 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1314 msgid "Cover" msgstr "" @@ -1467,70 +1464,70 @@ msgstr "" msgid "All articles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1311 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1315 msgid "Title Page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1312 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1316 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:51 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:168 msgid "Table of Contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1313 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1317 msgid "Index" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1314 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1318 msgid "Glossary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1315 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1319 msgid "Acknowledgements" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1316 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1320 msgid "Bibliography" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1317 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1321 msgid "Colophon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1318 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1322 msgid "Copyright" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1319 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1323 msgid "Dedication" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1320 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1324 msgid "Epigraph" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1321 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1325 msgid "Foreword" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1322 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1326 msgid "List of Illustrations" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1323 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1327 msgid "List of Tables" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1324 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 msgid "Notes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1325 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 msgid "Preface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1326 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 msgid "Main Text" msgstr "" @@ -2038,7 +2035,7 @@ msgid "input" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:28 @@ -2133,7 +2130,7 @@ msgid "Debug the conversion process." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:38 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:51 msgid "Choose debug folder" msgstr "" @@ -2145,12 +2142,12 @@ msgstr "" msgid "Failed to create debug directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:50 msgid "Choose a folder to put the debug output into. If you specify a folder, calibre will place a lot of debug output into it. This will be useful in understanding the conversion process and figuring out the correct values for conversion parameters like Table of Contents and Chapter Detection." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:48 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170 #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:44 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:61 @@ -2161,14 +2158,14 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:500 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:343 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:380 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:396 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:126 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:128 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:131 @@ -2182,6 +2179,10 @@ msgstr "" msgid "..." msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 +msgid "The debug process outputs the intermediate HTML generated at various stages of the conversion process. This HTML can sometimes serve as a good starting point for hand editing a conversion." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:15 msgid "EPUB Output" msgstr "" @@ -2390,7 +2391,7 @@ msgid " is not a valid picture" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:391 msgid "Book Cover" msgstr "" @@ -2399,28 +2400,28 @@ msgid "Use cover from &source file" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:168 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:392 msgid "Change &cover image:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:169 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 msgid "Browse for an image to use as the cover of this book." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:352 msgid "&Title: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Change the title of this book" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:135 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:344 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:356 msgid "&Author(s): " msgstr "" @@ -2434,24 +2435,24 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "&Publisher: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:177 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid "Ta&gs: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "Tags categorize the book. This is particularly useful while searching.

They can be any words or phrases, separated by commas." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 msgid "&Series:" msgstr "" @@ -2459,13 +2460,13 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:359 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "List of known series. You can add new series." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "Book " msgstr "" @@ -2580,7 +2581,7 @@ msgid "RB Output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1321 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1322 msgid "Choose the format to view" msgstr "" @@ -3073,7 +3074,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:345 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1005 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1007 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:56 msgid "Path" msgstr "" @@ -3085,7 +3086,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:344 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:115 msgid "Formats" msgstr "" @@ -3188,7 +3189,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:461 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:788 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:140 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1004 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1005 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "" @@ -3258,7 +3259,7 @@ msgid "Access log:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:645 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:574 msgid "Failed to start content server" msgstr "" @@ -3738,7 +3739,7 @@ msgid "Edit Meta information" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:134 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:339 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:351 msgid "Meta information" msgstr "" @@ -3751,24 +3752,24 @@ msgid "Author s&ort: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "Specify how the author(s) of this book should be sorted. For example Charles Dickens should be sorted as Dickens, Charles." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:361 msgid "&Rating:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:350 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:351 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "Rating of this book. 0-5 stars" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 msgid " stars" msgstr "" @@ -3778,8 +3779,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:368 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "Open Tag Editor" msgstr "" @@ -3829,114 +3830,122 @@ msgstr "" msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:459 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:467 msgid "Downloading cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:471 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:476 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:490 msgid "Cannot fetch cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:472 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:491 msgid "Could not fetch cover.
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:473 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:481 msgid "The download timed out." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:477 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:485 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:489 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:497 msgid "Bad cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:490 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:498 msgid "The cover is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:538 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:539 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:576 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:591 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:577 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:592 msgid "Could not open %s. Is it being used by another program?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:350 msgid "Edit Meta Information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:354 msgid "Swap the author and title" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 msgid "Author S&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:347 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:359 msgid "Automatically create the author sort entry based on the current author entry" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:361 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 msgid "Remove unused series (Series that have no books)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 msgid "IS&BN:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 msgid "Publishe&d:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 -msgid "&Comments" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:379 +msgid "dd MMM yyyy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:368 -msgid "&Fetch metadata from server" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 -msgid "Available Formats" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 -msgid "Add a new format for this book to the database" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 -msgid "Remove the selected formats for this book from the database." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 -msgid "Set the cover for the book from the selected format" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 -msgid "Update metadata from the metadata in the selected format" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:380 +msgid "&Date:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:381 -msgid "Reset cover to default" +msgid "&Comments" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:382 +msgid "&Fetch metadata from server" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:383 +msgid "Available Formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 +msgid "Add a new format for this book to the database" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:386 +msgid "Remove the selected formats for this book from the database." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 +msgid "Set the cover for the book from the selected format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 +msgid "Update metadata from the metadata in the selected format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:395 +msgid "Reset cover to default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 msgid "Download &cover" msgstr "" @@ -4492,12 +4501,12 @@ msgid " - Jobs" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1068 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1070 msgid "Size (MB)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library.py:161 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1069 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1071 msgid "Date" msgstr "" @@ -4516,19 +4525,19 @@ msgstr "" msgid "Book %s of %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:832 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:834 msgid "Not allowed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:833 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:835 msgid "Dropping onto a device is not supported. First add the book to the calibre library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1004 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1006 msgid "Format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1058 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1060 msgid "Double click to edit me

" msgstr "" @@ -4682,7 +4691,7 @@ msgid "Save to disk in a single directory" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1423 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1424 msgid "Save only %s format to disk" msgstr "" @@ -4711,42 +4720,42 @@ msgstr "" msgid "Similar books..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:424 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:425 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:426 msgid "Bad database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:427 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:428 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:477 msgid "Calibre Library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:437 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1566 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1567 msgid "Choose a location for your ebook library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:616 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:617 msgid "Browse by covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:723 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:724 msgid "Device: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:725 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:726 msgid " detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:747 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:748 msgid "Connected " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:759 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:760 msgid "Device database corrupted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:760 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:761 msgid "" "\n" "

The database of books on the reader is corrupted. Try the following:\n" @@ -4757,297 +4766,297 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:836 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:879 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:837 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:880 msgid "Uploading books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:844 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:845 msgid "Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:845 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:846 msgid "EPUB Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:846 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:847 msgid "LRF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:847 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:848 msgid "HTML Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:848 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:849 msgid "LIT Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:849 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:850 msgid "MOBI Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:850 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:851 msgid "Text books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:851 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:852 msgid "PDF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:852 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:853 msgid "Comics" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:853 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:854 msgid "Archives" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:888 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:889 msgid "Failed to read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:889 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:890 msgid "Failed to read metadata from the following" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:908 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:909 msgid "The selected books will be permanently deleted and the files removed from your computer. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:935 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:936 msgid "Deleting books from device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:966 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:967 msgid "Cannot download metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:967 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1015 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1073 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1185 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:968 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1016 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1049 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1074 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1186 msgid "No books selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:976 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:977 msgid "covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:976 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:977 msgid "metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:978 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:979 msgid "Downloading %s for %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:999 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1000 msgid "Failed to download some metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1000 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1001 msgid "Failed to download metadata for the following:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1003 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1004 msgid "Failed to download metadata:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1014 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1047 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1015 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1048 msgid "Cannot edit metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1073 msgid "Cannot save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1075 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1076 msgid "Choose destination directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1102 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1103 msgid "Error while saving" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1104 msgid "There was an error while saving." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1110 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1111 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1112 msgid "Could not save some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1112 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1113 msgid "Click the show details button to see which ones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1131 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1132 msgid "Fetching news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1144 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1145 msgid " fetched." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1184 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1185 msgid "Cannot convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1315 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1334 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1316 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1335 msgid "No book selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1315 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1365 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1316 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1366 msgid "Cannot view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1333 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1334 msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1350 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1351 msgid "Multiple Books Selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1351 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1352 msgid "You are attempting to open %d books. Opening too many books at once can be slow and have a negative effect on the responsiveness of your computer. Once started the process cannot be stopped until complete. Do you wish to continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1366 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1367 msgid "%s has no available formats." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1407 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1408 msgid "Cannot configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1408 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1409 msgid "Cannot configure while there are running jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1451 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1452 msgid "No detailed info available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1452 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1453 msgid "No detailed information is available for books on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1504 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1505 msgid "Error talking to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1505 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1506 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:1528 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1546 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1529 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1547 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1529 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1530 msgid "

Could not convert: %s

It is a DRMed book. You must first remove the DRM using third party tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1547 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1548 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1575 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1576 msgid "Invalid library location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1576 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1577 msgid "Could not access %s. Using %s as the library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1623 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1624 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:1647 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1648 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1650 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1651 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" " Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1654 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1655 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1705 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1706 msgid "will keep running in the system tray. To close it, choose Quit in the context menu of the system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1724 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1725 msgid "Latest version: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1732 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1733 msgid "Update available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1733 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1734 msgid "%s has been updated to version %s. See the new features. Visit the download page?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1751 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1752 msgid "Use the library located at the specified path." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1753 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1754 msgid "Start minimized to system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1755 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1756 msgid "Log debugging information to console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1757 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1758 msgid "Do not check for updates" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1805 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1806 msgid "If you are sure it is not running" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1807 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1808 msgid "Cannot Start " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1808 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1809 msgid "%s is already running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1811 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1812 msgid "may be running in the system tray, in the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1813 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1814 msgid "upper right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1815 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1816 msgid "lower right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1818 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1819 msgid "try rebooting your computer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1820 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1832 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1821 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1833 msgid "try deleting the file" msgstr "" @@ -5225,11 +5234,11 @@ msgstr "" msgid "Click to browse books by tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:115 msgid "Authors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:115 msgid "Publishers" msgstr "" @@ -6125,27 +6134,27 @@ msgid "" "For help on an individual command: %%prog command --help\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1565 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1567 msgid "

Migrating old database to ebook library in %s

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1594 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1596 msgid "Copying %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1611 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1613 msgid "Compacting database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1699 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1701 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1736 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1738 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1760 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1762 msgid "Checked id" msgstr "" @@ -6342,6 +6351,7 @@ msgid "Traditional Chinese" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:99 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nytimes.py:17 msgid "English" msgstr "" @@ -6478,6 +6488,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_lamujerdemivida.py:60 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_laprensa_ni.py:64 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_monitor.py:79 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_nin.py:95 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_pobjeda.py:84 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/recipe_republika.py:67 msgid "Fetching feed" @@ -6497,50 +6508,50 @@ msgstr "" msgid "Skipping filtered article: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:452 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 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:461 msgid "Base directory into which URL is saved. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Timeout in seconds to wait for a response from the server. Default: %default s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 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:470 msgid "The maximum number of files to download. This only applies to files from tags. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:466 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 msgid "Minimum interval in seconds between consecutive fetches. Default is %default s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 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/fetch/simple.py:470 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476 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 one regexp, it will be followed. By default all links are followed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:478 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 a link, it will be ignored.By default, no links are ignored. If both --filter-regexp and --match-regexp are specified, then --filter-regexp is applied first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:480 msgid "Do not download CSS stylesheets." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "Show detailed output information. Useful for debugging" msgstr "" diff --git a/src/calibre/translations/cs.po b/src/calibre/translations/cs.po index d70dc434ee..9c5b262b71 100644 --- a/src/calibre/translations/cs.po +++ b/src/calibre/translations/cs.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" -"PO-Revision-Date: 2009-09-04 22:22+0000\n" -"Last-Translator: Kovid Goyal \n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" +"PO-Revision-Date: 2009-09-22 17:00+0000\n" +"Last-Translator: Plazec \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:46+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:42+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "Nedělá vůbec nic" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -170,6 +170,8 @@ msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." msgstr "" +"Kódování vstupních HTML souborů. Bežně používané kódování jsou např. cp1252, " +"latin1 iso-8859-1 nebo UTF-8." #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:56 msgid "Extract cover from comic files" @@ -282,7 +284,7 @@ msgstr "Tento profil je určený pro Cybook G3." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:118 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:278 msgid "This profile is intended for the Cybook Opus." -msgstr "" +msgstr "Tento profil je určen pro Cybook Opus." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:130 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:289 @@ -292,12 +294,12 @@ msgstr "Tento profil je určený pro Amazon Kindle." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:142 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:322 msgid "This profile is intended for the Irex Illiad." -msgstr "" +msgstr "Tento profil je určen pro Irex Illiad." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:154 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:335 msgid "This profile is intended for the IRex Digital Reader 1000." -msgstr "" +msgstr "Tento profil je určen pro Irex Digital Reader 1000." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:172 msgid "Output profile" @@ -315,7 +317,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:206 msgid "This profile is intended for the 5-inch JetBook." -msgstr "" +msgstr "Tento profil je určen pro 5\" Jetbook" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:217 msgid "" @@ -394,19 +396,19 @@ msgstr "Deaktivovat modul podle jména" #: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:13 msgid "Communicate with Android phones." -msgstr "" +msgstr "Komunikace s telefony Android." #: /home/kovid/work/calibre/src/calibre/devices/bebook/driver.py:19 msgid "Communicate with the BeBook eBook reader." -msgstr "" +msgstr "Komunikace s zařízením BeBook." #: /home/kovid/work/calibre/src/calibre/devices/bebook/driver.py:95 msgid "Communicate with the BeBook Mini eBook reader." -msgstr "" +msgstr "Komunikace s zařízením BeBookMini." #: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:12 msgid "Communicate with the Blackberry smart phone." -msgstr "" +msgstr "Komunikace s telefony BlackBerry." #: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 @@ -418,7 +420,7 @@ msgstr "Kovid Goyal" #: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:21 msgid "Communicate with the Cybook Gen 3 eBook reader." -msgstr "" +msgstr "Komunikace s zařízením Cybook Gen 3." #: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:22 #: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:86 @@ -440,23 +442,23 @@ msgstr "John Schember" #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:99 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:101 msgid "Transferring books to device..." -msgstr "" +msgstr "Přenos knih do zařízení..." #: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:85 msgid "Communicate with the Cybook Opus eBook reader." -msgstr "" +msgstr "Komunikace s zařízením Cybook Opus." #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:23 msgid "Communicate with the EB600 eBook reader." -msgstr "" +msgstr "Komunikace s zařízením EB600." #: /home/kovid/work/calibre/src/calibre/devices/eslick/driver.py:16 msgid "Communicate with the ESlick eBook reader." -msgstr "" +msgstr "Komunikace s zařízením ESlick eBook." #: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:16 msgid "Communicate with the IRex Iliad eBook reader." -msgstr "" +msgstr "Komunikace s zařízením Irex Illiad." #: /home/kovid/work/calibre/src/calibre/devices/interface.py:20 msgid "Device Interface" @@ -464,11 +466,11 @@ msgstr "Rozhraní zařízení" #: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:16 msgid "Communicate with the IRex Digital Reader 1000 eBook reader." -msgstr "" +msgstr "Komunikace s zařízením Irex Digital Reader 1000." #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:22 msgid "Communicate with the JetBook eBook reader." -msgstr "" +msgstr "Komunikace s zařízením JetBook." #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:23 msgid "James Ralston" @@ -476,16 +478,16 @@ msgstr "James Ralston" #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:21 msgid "Communicate with the Kindle eBook reader." -msgstr "" +msgstr "Komunikace s zařízením Amazon Kindle." #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:66 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:77 msgid "Communicate with the Kindle 2 eBook reader." -msgstr "" +msgstr "Komunikace s zařízením Amazon Kindle 2." #: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:87 msgid "Communicate with the Sony PRS-500 eBook reader." -msgstr "" +msgstr "Komunikace s zařízením Sony PRS-500." #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:150 #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:93 @@ -499,11 +501,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:74 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:78 msgid "Getting list of books on device..." -msgstr "" +msgstr "Získávám seynam knih na zařízení..." #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:26 msgid "Communicate with the Sony PRS-300/505 eBook reader." -msgstr "" +msgstr "Komunikace s zařízením Sony PRS-300/505." #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:27 #: /home/kovid/work/calibre/src/calibre/devices/prs700/driver.py:18 @@ -524,7 +526,7 @@ msgstr "Odesílám metadata do zařízení..." #: /home/kovid/work/calibre/src/calibre/devices/prs700/driver.py:17 msgid "Communicate with the Sony PRS-600/700 eBook reader." -msgstr "" +msgstr "Komunikace s zařízením Sony PRS-600/700" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:285 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:357 @@ -533,7 +535,7 @@ msgstr "Nepodařilo se najít disk %s. Zkuste reboot." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:425 msgid "Unable to detect the %s disk drive." -msgstr "" +msgstr "Nemohu detekovat disk %s." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:518 msgid "Could not find mount helper: %s." @@ -544,10 +546,12 @@ msgid "" "Unable to detect the %s disk drive. Your kernel is probably exporting a " "deprecated version of SYSFS." msgstr "" +"Nemohu detekovat disk %s. Váš Kernel pravděpodobně exportuje zastaralou " +"verzi SYSFS." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:538 msgid "Unable to mount main memory (Error code: %d)" -msgstr "" +msgstr "Nemohu připojit hlavní paměť (Kód chyby: %d)" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:643 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:645 @@ -556,7 +560,7 @@ msgstr "Čtečka nemá v tomto slotu žádnou pamětovou kartu." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:647 msgid "Selected slot: %s is not supported." -msgstr "" +msgstr "Vybraný slot: %s není podporováno." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:671 msgid "There is insufficient free space in main memory" @@ -578,7 +582,7 @@ msgstr "Zprávy" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:11 msgid "Configure Device" -msgstr "" +msgstr "Konfigurovat zařízení" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:16 msgid "settings for device drivers" @@ -590,16 +594,16 @@ msgstr "Setříděný seznam formátů, které toto zařízení přijme." #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:18 msgid "Place files in sub directories if the device supports them" -msgstr "" +msgstr "Uložit soubory do podadresářů pokud je zařízení podporuje." #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:19 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:64 msgid "Read metadata from files on device" -msgstr "" +msgstr "Číst metadata ze souborů zařízení" #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:29 msgid "Communicate with an eBook reader." -msgstr "" +msgstr "Komunikace s čtecím zařízením." #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:41 msgid "Get device information..." @@ -608,12 +612,12 @@ msgstr "Zjistit informace o zařízení..." #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:107 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:115 msgid "Adding books to device metadata listing..." -msgstr "" +msgstr "Přidávám knihy do seznamu metadat v zařízení..." #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:138 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:143 msgid "Removing books from device metadata listing..." -msgstr "" +msgstr "Odebírám knihy ze seznamu metadat v zařízení..." #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:196 msgid "Rendered %s" @@ -629,40 +633,49 @@ msgid "" "\n" "%s" msgstr "" +"Selhalo zpracování komiksu: \n" +"\n" +"%s" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -"Počet odstínů šedé barvy použitý při převodu obrázků. Standardní hodnota: " -"%default" +"Počet barev pro převod obrácku ve stupních šedi. Výchozí: %default. Hodnoty " +"menší než 256 mohou vyůstit v rozostřený text na vašem zařízení pokud " +"vytváříte komiks v EPUB formátu." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Vypnutí normalizace (vylepšení kontrastu) rozsahu barev obrázku. Standardně " "je normalizace zapnutá." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" "Zachovat poměr stran obrázků. Standardně obrazky vyplní celou obrazovku." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "Vypnout zvyšování ostrosti obrázků." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." msgstr "" +"Neořezávat stránky komiksů. U některých komiksů může ořezávání kromě okraje " +"stránky odstranit i část kresby." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "Nerozdělovat obrázky \"na šířku\" na dva obrázky \"na výsku\"" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -670,7 +683,7 @@ msgstr "" "Zachovat poměr stran a přizpůsobit šířku obrázku výšce obrazovky pro " "prohlížení \"na šířku\"" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -678,7 +691,7 @@ msgstr "" "Pužívané pro publikace čtené zleva doprava, jako např. manga. Obrázky \"na " "šířku\" budou rozdělené na obrázky \"na výšku\" v pořadí zprava doleva." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." @@ -686,7 +699,7 @@ msgstr "" "Zapnout filtr šumu. Odstraňuje šum v oblastech plynulých přechodů. Může " "výrazně prodloužit čas na zpracování." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -694,14 +707,21 @@ msgstr "" "Neřadit soubory komiksu abecedně. Použít pořadí v kterém byli přidané do " "komiksu." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "Obrázek nijak neupravovat" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" -msgstr "" +msgstr "Strana" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:19 msgid "" @@ -731,23 +751,23 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:97 msgid "INPUT OPTIONS" -msgstr "" +msgstr "NASTAVENÍ VSTUPU" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:98 msgid "Options to control the processing of the input %s file" -msgstr "" +msgstr "Možnosti nastavení zpracování vstupního souboru %s" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:104 msgid "OUTPUT OPTIONS" -msgstr "" +msgstr "NASTAVENÏ VÝSTUPU" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:105 msgid "Options to control the processing of the output %s" -msgstr "" +msgstr "Možnosti nastavení zpracování výstupního souboru %s" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:119 msgid "Options to control the look and feel of the output" -msgstr "" +msgstr "Možnosti nastavení vzheldu výstupu" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:135 msgid "Control auto-detection of document structure." @@ -762,7 +782,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:155 msgid "Options to set metadata in the output" -msgstr "" +msgstr "Nastevení výstupních metadat" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:158 msgid "Options to help with debugging the conversion" @@ -770,7 +790,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:183 msgid "List builtin recipes" -msgstr "" +msgstr "Vypiš zabudované recepty" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:251 msgid "Output saved to" @@ -1552,7 +1572,7 @@ msgstr "Časová značka" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:162 msgid "Published" -msgstr "" +msgstr "Publikováno" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 msgid "Rights" @@ -2357,7 +2377,7 @@ msgstr "" msgid "input" msgstr "vstup" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2385,60 +2405,65 @@ msgstr "vstup" msgid "Form" msgstr "Z" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "Počet &barev" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "Vypnout &normalizaci" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "Zachov&at poměr stran" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "Vypnout zao&střování" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "Širo&ké" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "Na šíř&ku" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "Zp&rava doleva" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "&Netřídit" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "Čistíci &filtr" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "&Výstupní formát:" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2577,7 +2602,7 @@ msgstr " bodů" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:91 msgid "Line &height:" -msgstr "" +msgstr "Výš&ka řádku" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:93 msgid "Remove &spacing between paragraphs" @@ -2593,7 +2618,7 @@ msgstr "Převést tabulky na řádky" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:96 msgid "&Transliterate unicode characters to ASCII." -msgstr "" +msgstr "Překódova&t znaky unicode do ASCII." #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:97 msgid "Font size &key:" @@ -2605,11 +2630,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:99 msgid "&Disable font size rescaling" -msgstr "" +msgstr "&Zakázat změnu velikosti písma" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:100 msgid "Insert &blank line" -msgstr "" +msgstr "Vložit &prázdný řádek" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:101 msgid "Extra &CSS" @@ -2863,7 +2888,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:39 msgid "Treat each &line as a paragraph" -msgstr "" +msgstr "Považovat každý řádek za odstavec" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:33 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:42 @@ -2958,10 +2983,6 @@ msgstr "Dialog" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "&Výstupní formát:" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -3104,11 +3125,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:56 msgid "&Maximum line length:" -msgstr "" +msgstr "&Maximální délka řádku:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:57 msgid "Force maximum line lenght" -msgstr "" +msgstr "Vynutit maximální délku řádku" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:42 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:62 @@ -3269,15 +3290,15 @@ msgstr "Odeslat na pamětovou kartu B" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:335 msgid "Send specific format to main memory" -msgstr "" +msgstr "Odeslat určitý formát do hlavní paměti" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:337 msgid "Send specific format to storage card A" -msgstr "" +msgstr "Odeslat určitý formát na paměťovou kartu A" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 msgid "Send specific format to storage card B" -msgstr "" +msgstr "Odeslat určitý formát na paměťovou kartu B" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:482 msgid "No books" @@ -3285,11 +3306,11 @@ msgstr "Žádné knihy" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:483 msgid "selected to send" -msgstr "" +msgstr "vybrané k odeslání" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:488 msgid "Choose format to send to device" -msgstr "" +msgstr "Vyberte formát k odeslání do zařízení" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No device" @@ -3328,7 +3349,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:564 msgid "Sending email to" -msgstr "" +msgstr "Odeslat email" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:594 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:601 @@ -3483,7 +3504,7 @@ msgstr "Rozhraní" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:197 msgid "Add/Save" -msgstr "" +msgstr "Přidat/Uložit" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:197 msgid "" @@ -3509,7 +3530,7 @@ msgstr "Moduly" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 msgid "Auto send" -msgstr "" +msgstr "Automaticky odeslat" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 msgid "Email" @@ -3539,7 +3560,7 @@ msgstr "Chyba" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:462 msgid "Failed to install command line tools." -msgstr "" +msgstr "Selhala Instalce nástrojů pro příkazovou řádku." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:465 msgid "Command line tools installed" @@ -3698,7 +3719,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:106 msgid "Save &cover separately" -msgstr "" +msgstr "Uložit &obálku odděleně" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:107 msgid "Update &metadata in saved copies" @@ -3710,19 +3731,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:109 msgid "Convert non-English characters to &English equivalents" -msgstr "" +msgstr "Převést neAnglické znaky na Anglické &ekvivalenty" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:110 msgid "Format &dates as:" -msgstr "" +msgstr "Formát data:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:111 msgid "File &formats to save:" -msgstr "" +msgstr "&Formáty souborů k uložení:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:112 msgid "Save &template" -msgstr "" +msgstr "Uložit šablonu" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:113 msgid "" @@ -3735,19 +3756,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:114 msgid "Available variables:" -msgstr "" +msgstr "Dostupné proměné:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:115 msgid "Replace space with &underscores" -msgstr "" +msgstr "Nahradit mezer&u podtržitkem" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:116 msgid "Change paths to &lowercase" -msgstr "" +msgstr "Změnit cesty na malá písmena" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:117 msgid "&Saving books" -msgstr "" +msgstr "&Ukládám Knihy" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:468 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:367 @@ -3813,7 +3834,7 @@ msgstr "Upřednostňovaný výstupní formát:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:482 msgid "Preferred &input format order:" -msgstr "" +msgstr "Pořadí preference &vstupních formátů:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:485 msgid "Use &Roman numerals for series number" @@ -3833,7 +3854,7 @@ msgstr "Zobrazit prohlížec &obálek v samostatném okně (vyžaduje restart)" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:489 msgid "Search as you type" -msgstr "" +msgstr "Vyhledávat při zadávání" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:490 msgid "Automatically send downloaded &news to ebook reader" @@ -3881,7 +3902,7 @@ msgstr "Použít interní &prohlížec pro:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 msgid "Add an email address to which to send books" -msgstr "" +msgstr "Přdat emailovou adresu na kterou posílat knihy" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 msgid "&Add email" @@ -4430,7 +4451,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:427 msgid "Add a custom news source" -msgstr "" +msgstr "Přidat vlastní zdroj zpráv" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:166 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:222 @@ -4702,7 +4723,7 @@ msgstr "Vyberte soubor s receptem" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:248 msgid "Add custom news source" -msgstr "Pžidejte vlastní zdroj zpráv" +msgstr "Přidat vlastní zdroj zpráv" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:249 msgid "Available user recipes" @@ -5133,7 +5154,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:241 msgid "Add Empty book. (Book entry with no formats)" -msgstr "" +msgstr "Přidat prázdnou knihu. (Položka knihy bez žádných formátů)" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:278 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:353 @@ -6789,7 +6810,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:32 msgid "The published date" -msgstr "" +msgstr "Datum publikování" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:33 msgid "The calibre internal id" @@ -7024,7 +7045,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:40 msgid "Unknown News Source" -msgstr "" +msgstr "Neznámý zdroj zpráv" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:588 msgid "Download finished" @@ -7587,6 +7608,11 @@ msgstr "" #~ msgid "Converting from %s to LRF is not supported." #~ msgstr "Převod z %s do LRF není podporovaný" +#~ msgid "Number of colors for grayscale image conversion. Default: %default" +#~ msgstr "" +#~ "Počet odstínů šedé barvy použitý při převodu obrázků. Standardní hodnota: " +#~ "%default" + #~ msgid "" #~ "Set the author in the metadata of the generated ebook. Default is %default" #~ msgstr "" diff --git a/src/calibre/translations/da.po b/src/calibre/translations/da.po index f499d34e92..398690d5f5 100644 --- a/src/calibre/translations/da.po +++ b/src/calibre/translations/da.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" -"PO-Revision-Date: 2009-09-15 04:02+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" +"PO-Revision-Date: 2009-09-18 19:21+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Danish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:46+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:42+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "Gør absolut ingenting" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -638,26 +638,28 @@ msgstr "" "%s" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -"Antal farver for billedkonvertering til gråtone. Standardværdi: %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Deaktiver normalisering (forbedrer kontrasten) af farveområdet for billeder. " "Standardværdi: Falsk" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "Bevar billedformat. Standardværdien er at fylde skærmen." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "Slå skærpning fra." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." @@ -665,11 +667,11 @@ msgstr "" "Slå trimning af tegneserie sider fra. For nogle tegneserier kan trimning " "fjerne del af indholdet, såvel som kanter." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "Split ikke landskabsbilleder op i to portrætbilleder" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -677,7 +679,7 @@ msgstr "" "Behold højde-bredde-forhold og skaler billede med skærmens højde som " "billedets bredde for visning i landskabstilstand." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -685,7 +687,7 @@ msgstr "" "Bruges til højre-mod-venstre publikationer som ex. manga. Forårsager at " "landskabssider splittes i portrætsider fra højre mod venstre." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." @@ -693,7 +695,7 @@ msgstr "" "Aktiver Despeckle. Reducerer billedstøj. Kan forøge behandlingstid " "væsentligt." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -701,12 +703,19 @@ msgstr "" "Sortér ikke de fundne filer i en tegneserie alfabetisk efter navn. Benyt i " "stedet for den rækkefølge de blev tilføjet til tegneserien." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "Processer ikke billedet" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "Side" @@ -2367,7 +2376,7 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2395,60 +2404,65 @@ msgstr "" msgid "Form" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2970,10 +2984,6 @@ msgstr "" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -7737,6 +7747,10 @@ msgstr "Vis detaljeret output information. Nyttig til fejlfinding" #~ "Options to control the conversion of comics (CBR, CBZ) files into ebooks" #~ msgstr "Indstillinger for konvertering af tegneserier(CBR, CBZ) til e-bøger" +#~ msgid "Number of colors for grayscale image conversion. Default: %default" +#~ msgstr "" +#~ "Antal farver for billedkonvertering til gråtone. Standardværdi: %default" + #~ msgid "" #~ "Set the author in the metadata of the generated ebook. Default is %default" #~ msgstr "" diff --git a/src/calibre/translations/de.po b/src/calibre/translations/de.po index 6982ad6de7..b5fc1ae53f 100644 --- a/src/calibre/translations/de.po +++ b/src/calibre/translations/de.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" -"PO-Revision-Date: 2009-09-15 03:47+0000\n" -"Last-Translator: Kovid Goyal \n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" +"PO-Revision-Date: 2009-09-19 21:13+0000\n" +"Last-Translator: S. Dorscht \n" "Language-Team: American English \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:46+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Generated-By: pygettext.py 1.5\n" @@ -29,7 +29,7 @@ msgstr "Mach absolut garnichts" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -461,7 +461,7 @@ msgstr "Kommunikation mit dem EB600 eBook Reader." #: /home/kovid/work/calibre/src/calibre/devices/eslick/driver.py:16 msgid "Communicate with the ESlick eBook reader." -msgstr "" +msgstr "Kommunikation mit dem ESlick eBook Reader." #: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:16 msgid "Communicate with the IRex Iliad eBook reader." @@ -646,29 +646,30 @@ msgstr "" "%s" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -"Anzahl der Farben für die Konvertierung von Graustufenbildern. " -"Voreinstellung: %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Deaktivieren der Normalisierung (verbessert den Kontrast) des Farbbereichs " "für Bilder. Voreinstellung: False" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" "Seitenverhältnis des Bildes beibehalten. Voreinstellung ist " "bildschirmfüllende Darstellung." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "Schärfen deaktivieren." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." @@ -676,11 +677,11 @@ msgstr "" "Beschneiden von Comic-Seiten ausschalten. Bei einigen Comics könnte sonst " "neben dem Rahmen auch Inhalt entfernt werden." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "Bilder im Querformat nicht in zwei Bilder im Hochformat aufteilen." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -688,7 +689,7 @@ msgstr "" "Seitenverhältnis beibehalten und Bild so skalieren, dass die Bildschirmhöhe " "als Bildbreite in der Querformatansicht verwendet wird." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -696,7 +697,7 @@ msgstr "" "Benutzt für rechts-nach-links Publikationen wie Mangas. Querformatige Seiten " "werden von rechts nach links in mehrere hochformatige Seiten unterteilt." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." @@ -704,7 +705,7 @@ msgstr "" "Entkörnung einschalten. Reduziert die Körnigkeit. Kann die Bearbeitungszeit " "stark verlängern." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -713,12 +714,19 @@ msgstr "" "sortieren, sondern die Reihenfolge verwenden, in der sie zum Comic " "hinzugefügt wurden." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "Auf das Bild keine Verarbeitung anwenden" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "Seite" @@ -2556,7 +2564,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:85 msgid "Maximum number of waiting worker processes" -msgstr "" +msgstr "Maximale Anzahl der Arbeitsprozesse in der Warteschlange" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:397 @@ -2573,7 +2581,7 @@ msgstr "In die Zwischenablage kopieren" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:381 msgid "Choose Files" -msgstr "" +msgstr "Dateien wählen" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:52 msgid "Searching in" @@ -2593,7 +2601,7 @@ msgstr "Hinzugefügt" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:257 msgid "Adding failed" -msgstr "Hinzufügen gescheitert" +msgstr "Hinzufügen schlug fehl" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:258 msgid "" @@ -2665,7 +2673,7 @@ msgstr "Einstellungen für" msgid "input" msgstr "Eingabe" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2693,60 +2701,65 @@ msgstr "Eingabe" msgid "Form" msgstr "Art" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "A&nzahl der Farben:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "&Normalisieren deaktivieren" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "Verhältnis &beibehalten" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "&Schärfen deaktivieren" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "Beschneiden ausschal&ten" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "&Weite" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "&Querformat" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "Von &rechts nach links" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "Nicht so&rtieren" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "Ent&körnung" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "&Comic Verarbeitung ausschalten" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "Ausgabef&ormat:" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "Fehlersuche" @@ -3278,10 +3291,6 @@ msgstr "Dialog" msgid "&Input format:" msgstr "E&ingabeformat:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "Ausgabef&ormat:" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -4279,6 +4288,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" +"&Maximale Anzahl der Arbeitsprozesse in der Warteschlange (erfordert " +"Neustart):" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "&Check database integrity" @@ -4522,7 +4533,7 @@ msgstr "Zeige Auftrag&details" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:47 msgid "Stop &all jobs" -msgstr "" +msgstr "&Alle Aufträge abbrechen" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:133 msgid "Edit Meta information" @@ -4624,7 +4635,7 @@ msgstr "Das Umschlagbild im Format %s ist ungültig" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:268 msgid "Abort the editing of all remaining books" -msgstr "" +msgstr "Editieren aller verbleibenden Bücher abbrechen" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:459 msgid "Downloading cover..." @@ -5994,7 +6005,7 @@ msgstr "Informationen zur Fehlersuche in Konsole aufzeichnen" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1757 msgid "Do not check for updates" -msgstr "" +msgstr "Nicht nach Updates suchen" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1805 msgid "If you are sure it is not running" @@ -6251,11 +6262,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123 msgid "Queueing books for bulk conversion" -msgstr "" +msgstr "Bücher sammeln und zusammen konvertieren" #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:183 msgid "Queueing " -msgstr "" +msgstr "Sammle " #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:237 msgid "You must set a username and password for %s" @@ -8606,6 +8617,11 @@ msgstr "Zeige detailierte Ausgabeinformation. Hilfreich zur Fehlersuche." #~ msgid "Very verbose output, useful for debugging." #~ msgstr "Sehr ausführliche Ausgabe, hilfreich bei der Fehlersuche." +#~ msgid "Number of colors for grayscale image conversion. Default: %default" +#~ msgstr "" +#~ "Anzahl der Farben für die Konvertierung von Graustufenbildern. " +#~ "Voreinstellung: %default" + #~ msgid "The format to use when saving single files to disk" #~ msgstr "" #~ "Das zu verwendende Format bei der Speicherung einzelner Dateie auf die " diff --git a/src/calibre/translations/el.po b/src/calibre/translations/el.po index 3f41b9c772..23345e3792 100644 --- a/src/calibre/translations/el.po +++ b/src/calibre/translations/el.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" "PO-Revision-Date: 2009-05-21 15:22+0000\n" "Last-Translator: Thanos Petkakis \n" "Language-Team: Greek \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:46+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -610,62 +610,72 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "" @@ -2265,7 +2275,7 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2293,60 +2303,65 @@ msgstr "" msgid "Form" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2864,10 +2879,6 @@ msgstr "" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" diff --git a/src/calibre/translations/en_GB.po b/src/calibre/translations/en_GB.po index 2c3752ef8e..ae0fc0de58 100644 --- a/src/calibre/translations/en_GB.po +++ b/src/calibre/translations/en_GB.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" "PO-Revision-Date: 2009-09-05 19:12+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: English (United Kingdom) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:48+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:45+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "Does absolutely nothing" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -619,24 +619,27 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" -msgstr "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." +msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Disable normalize (improve contrast) color range for pictures. Default: False" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "Maintain picture aspect ratio. Default is to fill the screen." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "Disable sharpening." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." @@ -644,11 +647,11 @@ msgstr "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "Don't split landscape images into two portrait images" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -656,7 +659,7 @@ msgstr "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -664,7 +667,7 @@ msgstr "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." @@ -672,7 +675,7 @@ msgstr "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -680,12 +683,19 @@ msgstr "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "Apply no processing to the image" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "" @@ -2357,7 +2367,7 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2385,60 +2395,65 @@ msgstr "" msgid "Form" msgstr "Form" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "&Number of Colors:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "Disable &normalize" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "Keep &aspect ratio" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "Disable &Sharpening" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "Disable &Trimming" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "&Wide" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "&Landscape" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "&Right to left" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "Don't so&rt" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "De&speckle" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2960,10 +2975,6 @@ msgstr "Dialog" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -7338,6 +7349,9 @@ msgstr "Do not download CSS stylesheets." msgid "Show detailed output information. Useful for debugging" msgstr "Show detailed output information. Useful for debugging" +#~ msgid "Number of colors for grayscale image conversion. Default: %default" +#~ msgstr "Number of colors for grayscale image conversion. Default: %default" + #~ msgid "Frequently used directories" #~ msgstr "Frequently used directories" diff --git a/src/calibre/translations/es.po b/src/calibre/translations/es.po index 828ffd04fd..c8533ed0e7 100644 --- a/src/calibre/translations/es.po +++ b/src/calibre/translations/es.po @@ -10,14 +10,14 @@ msgid "" msgstr "" "Project-Id-Version: es\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" -"PO-Revision-Date: 2009-09-15 11:17+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" +"PO-Revision-Date: 2009-09-19 12:32+0000\n" "Last-Translator: Jellby \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-09-18 09:48+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -31,7 +31,7 @@ msgstr "No hacer nada en absoluto" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -649,29 +649,33 @@ msgstr "" "%s" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -"Número de colores para conversión de imágenes a escala de grises. Por " -"defecto es %default" +"Número de colores para conversión de imágenes a escala de grises. Valor por " +"defecto: %default. Los valores menores de 256 pueden hacer que el texto se " +"vea borroso en su dispositivo si crea los cómics en formato EPUB." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Deshabilitar normalizar (mejora el contraste) el rango de color para " "imágenes. Por defecto: desactivado" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" "Mantener la proporción de la imagen. El valor por defecto es rellenar la " "pantalla." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "Deshabilitar enfocar." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." @@ -679,11 +683,11 @@ msgstr "" "Desactivar el recortado de páginas de cómics. Para algunos cómics, el " "recortado puede eliminar contenido además de bordes." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "No dividir imágenes apaisadas en dos imágenes verticales" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -691,7 +695,7 @@ msgstr "" "Mantener la proporción y escalar la imagen usando la altura de la pantalla " "como ancho de imagen, para verla en modo de visualización apaisado." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -700,7 +704,7 @@ msgstr "" "páginas apaisadas sean divididas en páginas verticales de derecha a " "izquierda." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." @@ -708,7 +712,7 @@ msgstr "" "Activa eliminación de artefactos (despeckle). Reduce el ruido de artefactos " "en imágenes. Puede incrementar bastante el tiempo de procesamiento." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -716,12 +720,22 @@ msgstr "" "No ordenar los ficheros encontrados en el cómic por nombre alfabético. En su " "lugar usar el orden en el que fueron agregados al cómic." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" +"El formato al que se convierten las imágenes en los libros creados. Puede " +"hacer pruebas para ver qué formato proporciona una mejor relación entre " +"tamaño y calidad para su dispositivo." + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "Dejar imágenes sin procesar" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "Página" @@ -2652,7 +2666,7 @@ msgstr "Opciones específicas para" msgid "input" msgstr "entrada" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2680,60 +2694,65 @@ msgstr "entrada" msgid "Form" msgstr "Formulario" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "Número de &colores" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "Desactivar &normalización" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "Mantener &proporción" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "Desactivar &enfoque" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "Desactivar &recortado" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "A&justar al ancho" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "&Apaisado" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "Derecha a &izquierda" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "No &ordenar" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "Despec&kle (eliminar artefactos en imágenes)" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "&Desactivar procesamiento de cómics" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "Formato de &salida:" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "Depurar" @@ -3264,10 +3283,6 @@ msgstr "Diálogo" msgid "&Input format:" msgstr "Formato de &entrada:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "Formato de &salida:" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -8596,6 +8611,11 @@ msgstr "Mostrar información de salida detallada. Útil para la depuración" #~ "Debe ser un numero no-negativo. 0 implica que no se seguirá ningún enlace en " #~ "el archivo HTML raiz." +#~ msgid "Number of colors for grayscale image conversion. Default: %default" +#~ msgstr "" +#~ "Número de colores para conversión de imágenes a escala de grises. Por " +#~ "defecto es %default" + #~ msgid "Usage: imp-meta file.imp" #~ msgstr "Uso: imp-meta file.imp" diff --git a/src/calibre/translations/fr.po b/src/calibre/translations/fr.po index b830bddf39..7263e705d6 100644 --- a/src/calibre/translations/fr.po +++ b/src/calibre/translations/fr.po @@ -6,14 +6,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre 0.4.22\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" -"PO-Revision-Date: 2009-09-15 05:46+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" +"PO-Revision-Date: 2009-09-18 19:32+0000\n" "Last-Translator: Kovid Goyal \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-09-18 09:46+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Generated-By: pygettext.py 1.5\n" @@ -28,7 +28,7 @@ msgstr "Ne fait strictement rien" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -641,27 +641,28 @@ msgstr "" "%s" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -"Nombre de teintes pour la conversion de l'image en échelle de gris. Défaut: " -"%default" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Désactiver l'effet de normalisation (améliore le contraste) de la gamme de " "couleurs pour les images. Par défaut : False" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "Maintient le ratio pour l'image. Par défaut : Plein écran." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "Désactiver l'effet d'accentuation." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." @@ -669,12 +670,12 @@ msgstr "" "Désactive le découpage des pages de BD. Pour certaines BD, le découpage peut " "supprimer le contenu aussi bien que les bordures." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "" "Ne pas diviser les images au format paysage en deux images au format portrait" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -682,7 +683,7 @@ msgstr "" "Garde la proportion d'image et redimensionne en utilisant la hauteur d'écran " "comme largeur d'image en mode paysage." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -691,7 +692,7 @@ msgstr "" "Peut entrainer une division des pages au format paysage en pages au format " "portrait affichées de droite à gauche." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." @@ -699,7 +700,7 @@ msgstr "" "Autoriser le flou. Réduit le bruit. Peut augmenter sensiblement les durées " "d'exécutions." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -708,12 +709,19 @@ msgstr "" "l'ordre alphabétique. Utiliser plutôt l'ordre dans lequel ils ont été " "ajoutés dans la bande dessinée." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "N'applique aucun traitement sur l'image" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "Page" @@ -2617,7 +2625,7 @@ msgstr "Options spécifiques à" msgid "input" msgstr "entrée" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2645,60 +2653,65 @@ msgstr "entrée" msgid "Form" msgstr "Formulaire" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "&Nombre de couleurs:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "désactive &normalize" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "Garde proportion &aspect" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "Désactive &Sharpening" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "Désactive &Trimming" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "&Large" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "&Paysage" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "De d&roite à gauche" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "Pas de t&ri" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "&Flou" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "&Désactiver le traitement des bandes dessinées" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "Format de &sortie:" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "Déboguer" @@ -3229,10 +3242,6 @@ msgstr "Boîte de dialogue" msgid "&Input format:" msgstr "Format d'&entrée:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "Format de &sortie:" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -8357,6 +8366,11 @@ msgstr "Affiche des informations détaillées. Utile pour le débogage" #~ msgid "Output directory. Defaults to current directory." #~ msgstr "Dossier de récupération. Par défaut, il s'agit du dossier actuel." +#~ msgid "Number of colors for grayscale image conversion. Default: %default" +#~ msgstr "" +#~ "Nombre de teintes pour la conversion de l'image en échelle de gris. Défaut: " +#~ "%default" + #~ msgid "Path to the cover to be used for this book" #~ msgstr "Chemin de la couverture à utiliser pour ce livre" diff --git a/src/calibre/translations/gl.po b/src/calibre/translations/gl.po index a3e6b95498..0994382c35 100644 --- a/src/calibre/translations/gl.po +++ b/src/calibre/translations/gl.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" "PO-Revision-Date: 2009-09-04 22:08+0000\n" "Last-Translator: Marcos X. \n" "Language-Team: Galician \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:46+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "Non facer nada" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -610,62 +610,72 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "" @@ -2265,7 +2275,7 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2293,60 +2303,65 @@ msgstr "" msgid "Form" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2864,10 +2879,6 @@ msgstr "" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" diff --git a/src/calibre/translations/he.po b/src/calibre/translations/he.po index 2e07fa04c1..9a5ff3a6fb 100644 --- a/src/calibre/translations/he.po +++ b/src/calibre/translations/he.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" "PO-Revision-Date: 2009-05-21 15:24+0000\n" "Last-Translator: nikitajy \n" "Language-Team: Hebrew \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:46+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "לא עושה דבר" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -612,62 +612,72 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "" @@ -2267,7 +2277,7 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2295,60 +2305,65 @@ msgstr "" msgid "Form" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2866,10 +2881,6 @@ msgstr "" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" diff --git a/src/calibre/translations/hr.po b/src/calibre/translations/hr.po index f07e38ce39..1a21c0555b 100644 --- a/src/calibre/translations/hr.po +++ b/src/calibre/translations/hr.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" -"PO-Revision-Date: 2009-09-16 03:20+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" +"PO-Revision-Date: 2009-09-18 19:18+0000\n" "Last-Translator: Miro Glavić \n" "Language-Team: Croatian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:47+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "Uopće ne funkcionira" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -643,25 +643,28 @@ msgstr "" "%s" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" -msgstr "Broj boja za grayscale pretvorbu slike. Standardno: %default." +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." +msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Onesposobi normaliziranje (poboljšanje kontrasta) opsega boja za slike. " "Standardno: Pogrešno" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "Održi proporcije slike. Standardno je da se popuni zaslon." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "Onesposobi izoštravanje." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." @@ -669,11 +672,11 @@ msgstr "" "Onesposobi podrezivanje stranica stripova. Kod nekih stripova podrezivanje " "može izbrisati i sadržaj i obrub." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "Ne cijepaj pejsažne slike u dvije portretne slike." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -681,7 +684,7 @@ msgstr "" "Održi proporcije i promijeni veličinu slike koristeći visinu zaslona kao " "širinu slike za pregledavanje u pejsažnom modu." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -690,7 +693,7 @@ msgstr "" "Uzrokuje cijepanje pejsažnih stranica u portretne stranice sa desna na " "lijevo." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." @@ -698,7 +701,7 @@ msgstr "" "Osposobi Uklanjanje Mrlja. Umanjuje pretjerane mrlje. Može uvelike povećati " "vrijeme procesiranja." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -706,12 +709,19 @@ msgstr "" "Ne sortiraj datoteke pronađene u stripu abecedno po imenu. Upotrijebi " "redoslijed kojim su dodavane u strip." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "Ne primijenjuj procesiranje slike." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "Stranica" @@ -2599,7 +2609,7 @@ msgstr "Opcije specifične za" msgid "input" msgstr "unos" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2627,60 +2637,65 @@ msgstr "unos" msgid "Form" msgstr "Form" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "&Broj Boja:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "Onesposobi &normalize" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "Održi &aspect ratio" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "Onesposobi &Sharpening" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "Onesposobi &Podrezivanje" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "&Širok" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "&Pejsaž" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "&S desna na lijevo" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "Ne so&rt" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "Oč&isti mrlje" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "&Onemogući procesiranje stripova" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "&Izlazni format:" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "Ukloni grešku" @@ -3208,10 +3223,6 @@ msgstr "Diajlog" msgid "&Input format:" msgstr "&Ulazni format:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "&Izlazni format:" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -8203,6 +8214,9 @@ msgstr "Prikaži detaljne izlazne podatke. Korisno kod otkrivanja grešaka." #~ msgid "Converting from %s to LRF is not supported." #~ msgstr "Pretvaranje sa %s na LRF nije podržano." +#~ msgid "Number of colors for grayscale image conversion. Default: %default" +#~ msgstr "Broj boja za grayscale pretvorbu slike. Standardno: %default." + #~ msgid "" #~ "Set the author in the metadata of the generated ebook. Default is %default" #~ msgstr "" diff --git a/src/calibre/translations/hu.po b/src/calibre/translations/hu.po index 83986f5791..89c264cb5c 100644 --- a/src/calibre/translations/hu.po +++ b/src/calibre/translations/hu.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" -"PO-Revision-Date: 2009-09-16 11:48+0000\n" -"Last-Translator: Devilinside \n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" +"PO-Revision-Date: 2009-09-18 19:23+0000\n" +"Last-Translator: Kovid Goyal \n" "Language-Team: Hungarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:47+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "Semmit nem csinál" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -641,26 +641,28 @@ msgstr "" "%s" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -"Szürkeárnyalatok száma a képek konvertálásához. Alapértelmezés: %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Normalizálás tiltása az élénk színű képeknél (növeli a kontrasztot). " "Alapértelmezett: Nincs" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "A képméretarány megtartása. Alapértelmezett: kijelző kitöltése" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "Képélesítés letiltása." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." @@ -668,17 +670,17 @@ msgstr "" "Képregény lapok vágásának tiltása. Néhány képregénynél a vágás nem csak a " "szegélyt, hanem a tartalom egy részét is eltünteti." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "Fekvő képeket ne vágja szét két álló képre." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." msgstr "Képméretarány megtartása és a képméret növelése fekvő nézethez." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -686,7 +688,7 @@ msgstr "" "Jobbról balra haladó kiadványoknál (pl. Manga) portréoldalakba hasítás " "jobbról balra." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." @@ -694,7 +696,7 @@ msgstr "" "Szemcseszűrés bekapcsolása. A szemcse típusú zajt jelentősen csökkenti, de " "sokkal nagyobb feldolgozási időt eredményezhet." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -702,12 +704,19 @@ msgstr "" "A képregény csomagban talált fájlokat a képregényhez való hozzáadás " "sorrendje alapján rendezze a névsorrend helyett." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "Képek változatlan megtartása módosítás nélkül." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "Oldal" @@ -2595,7 +2604,7 @@ msgstr "Beállítás:" msgid "input" msgstr "bemenet" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2623,60 +2632,65 @@ msgstr "bemenet" msgid "Form" msgstr "Űrlap" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "&Színek száma:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "Normalizálás tiltása" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "Az oldal&arány megtartása" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "Képélesítés letiltása" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "Lapvágás tiltása" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "Méretnövelés fekvő nézethez" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "Fekvő nézetű képek megtartása" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "Jobbról balra" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "Ne rendezze sorba" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "Szemcseszűrés" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "Képregény átalakító műveletek tiltása" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "Kimeneti formátum" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "Hibakeresés" @@ -3204,10 +3218,6 @@ msgstr "Párbeszédablak" msgid "&Input format:" msgstr "Bemeneti formátum:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "Kimeneti formátum" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -8135,6 +8145,10 @@ msgstr "" #~ "New Roman\"\n" #~ " " +#~ msgid "Number of colors for grayscale image conversion. Default: %default" +#~ msgstr "" +#~ "Szürkeárnyalatok száma a képek konvertálásához. Alapértelmezés: %default" + #~ msgid "" #~ "Set the author in the metadata of the generated ebook. Default is %default" #~ msgstr "Szerző a fájl metaadataiban. Alapértelmezés: %default" diff --git a/src/calibre/translations/it.po b/src/calibre/translations/it.po index a6739d13e4..c7e128f1f3 100644 --- a/src/calibre/translations/it.po +++ b/src/calibre/translations/it.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre_calibre-it\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" -"PO-Revision-Date: 2009-09-15 02:57+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" +"PO-Revision-Date: 2009-09-18 19:29+0000\n" "Last-Translator: Kovid Goyal \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-09-18 09:47+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Generated-By: pygettext.py 1.5\n" @@ -30,7 +30,7 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -623,39 +623,40 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -"Numero di colori per conversione immagine in scala di grigi. Predefinito: " -"%default" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Disabilita la normalizzazione dell'intervallo dei colori per le immagini " "(migliora il contrasto). Predefinito: falso." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" "Mantieni le proporzioni dell'immagine. Predefinito: riempimento dello " "schermo." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "Disabilita maschera di nitidezza." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "Non dividere le immagini orizzontali in due immagini verticali" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -663,7 +664,7 @@ msgstr "" "Mantieni le proporzioni e scala l'immagine usando l'altezza dello schermo " "come larghezza dell'immagine per la visualizzazione in orizzontale." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -672,7 +673,7 @@ msgstr "" "divisione di una pagina orizzontale in due pagine verticali orientate da " "destra a sinistra." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." @@ -680,7 +681,7 @@ msgstr "" "Abilita Despeckle. Riduce il rumore speckle. Può aumentare di molto il tempo " "di processamento." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -688,12 +689,19 @@ msgstr "" "Non ordinare i file trovati nel fumetto alfabeticamente per nome. Usa invece " "l'ordine in cui sono stati aggiunti al fumetto." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "" @@ -2357,7 +2365,7 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2385,60 +2393,65 @@ msgstr "" msgid "Form" msgstr "Formato" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "&Numero di colori:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "Disabilita normali&zzazione" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "Ma&ntieni proporzioni" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "Disabilita masc&hera di nitidezza" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "&Largo" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "&Orizzontale" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "&Da destra a sinistra" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "&Non ordinare" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "De&speckle" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2962,10 +2975,6 @@ msgstr "Finestra di dialogo" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -8175,6 +8184,11 @@ msgstr "Mostra un output dettagliato. Utile per il debugging" #~ msgid "Copying library to " #~ msgstr "Copia biblioteca in " +#~ msgid "Number of colors for grayscale image conversion. Default: %default" +#~ msgstr "" +#~ "Numero di colori per conversione immagine in scala di grigi. Predefinito: " +#~ "%default" + #~ msgid "The format to use when saving single files to disk" #~ msgstr "Formato da utilizzare per il salvataggio di singoli file sul disco" diff --git a/src/calibre/translations/ja.po b/src/calibre/translations/ja.po index 55f64cb6d9..025914a542 100644 --- a/src/calibre/translations/ja.po +++ b/src/calibre/translations/ja.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" "PO-Revision-Date: 2009-09-04 22:21+0000\n" "Last-Translator: MASA.H \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:47+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "まったく何もしません。(何も影響しません。)" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -612,62 +612,72 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "" @@ -2267,7 +2277,7 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2295,60 +2305,65 @@ msgstr "" msgid "Form" msgstr "フォーム" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2866,10 +2881,6 @@ msgstr "" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" diff --git a/src/calibre/translations/nb.po b/src/calibre/translations/nb.po index d11a3a74d1..ebfe1a19cb 100644 --- a/src/calibre/translations/nb.po +++ b/src/calibre/translations/nb.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" -"PO-Revision-Date: 2009-09-16 19:49+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" +"PO-Revision-Date: 2009-09-19 16:40+0000\n" "Last-Translator: Øyvind Øritsland \n" "Language-Team: Norwegian Bokmal \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:47+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "Gjør absolutt ingenting" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -459,7 +459,7 @@ msgstr "Kommuniser med EB600 eBook-leser." #: /home/kovid/work/calibre/src/calibre/devices/eslick/driver.py:16 msgid "Communicate with the ESlick eBook reader." -msgstr "" +msgstr "Kommuniser med ESlick eBook reader" #: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:16 msgid "Communicate with the IRex Iliad eBook reader." @@ -643,26 +643,31 @@ msgstr "" "%s" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -"Antall farger brukt for gråskala bildekonvertering. Standard er %default" +"Antall farger for konvertering til grå-skalering. Standard %default. " +"Verdier på mindre enn 256 kan resultere i uskarp tekst i enheten din dersom " +"du oppretter dine tegneserier til EPUB format." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Forhindre normalisering (forbedre kontrasten) av farge rangering for bilder. " "Standard: False" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "Beholde bilde sideforhold. Standard er å fylle hele skjermen." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "Ikke foreta skjerping av bilder" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." @@ -670,11 +675,11 @@ msgstr "" "Slå av finjusteringen av tegneseriesider. For noen tegneserier, kan " "finjustering fjerne innhold og kantrammer." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "Ikke splitt landskapsbilder i to portrett bilder" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -682,7 +687,7 @@ msgstr "" "Behold apparisjonsfaktor og skaleringsbilde ved å benytte skjermhøyde som " "bildevidde, for bruk av landskapsmodus." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -691,7 +696,7 @@ msgstr "" "landskapssider blir splittet til portrettbilder som leses fra høyre til " "venstre." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." @@ -699,7 +704,7 @@ msgstr "" "Slå på kantutjevning. Reduserer ujevne kanter. Dette valget kan påvirke " "prosesstiden betraktelig." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -707,12 +712,22 @@ msgstr "" "Ikke sorter filene i tegneserien alfabetisk etter navn. Bruk rekkefølgen " "filene ble lagt til i tegneserien." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" +"Formatet som bildene i den opprettede e-boken er konvertert til. Du kan " +"eksperimentere deg frem til å se hvilket format som gir den mest optimale " +"størrelsen og det beste utseendet i din enhet." + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "Ikke legg prosesser til bildet" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "Side" @@ -1326,6 +1341,9 @@ msgid "" "Average line length for line breaking if the HTML is from a previous partial " "conversion of a PDF file. Default is %default which disables this." msgstr "" +"Gjennomsnittlig linjelengde for linjebryting dersom HTML filen er fra en " +"tidligere delvis konvertering fra en PDF fil. Standard er %default som slår " +"av dette valget." #: /home/kovid/work/calibre/src/calibre/ebooks/lit/from_any.py:47 msgid "Creating LIT file from EPUB..." @@ -2065,6 +2083,10 @@ msgid "" "spaces) represents a paragraph. Paragraphs end when the next line that " "starts with an indent is reached." msgstr "" +"Normalt behandler Calibre blanke linjer som avsnittmerker. Med dette valget " +"vil Calibre regne med at hver linje som starter med et innrykk (enten " +"tabulator eller flere en 2 mellomrom) representerer et avsnitt. Avsnittet " +"slutter der neste linje med et innrykk begynner." #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/output.py:23 msgid "Format to use inside the pdb container. Choices are:" @@ -2499,7 +2521,7 @@ msgstr "Standard oppgaver som gjøres når send til enhet-knappen er klikket" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:85 msgid "Maximum number of waiting worker processes" -msgstr "" +msgstr "Maksumum antall ventende arbeidsprosesser" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:397 @@ -2516,7 +2538,7 @@ msgstr "Kopier til utklippstavlen" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:381 msgid "Choose Files" -msgstr "" +msgstr "Velg filer" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:52 msgid "Searching in" @@ -2607,7 +2629,7 @@ msgstr "Valg spesifisert til" msgid "input" msgstr "Inndata" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2635,60 +2657,65 @@ msgstr "Inndata" msgid "Form" msgstr "Form" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "&Antall Farger:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "Slå av &normaliser" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "Behold &størrelsesforhold" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "Slå av &kontrastøkning" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "Slå av &Justering" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "&Bredde" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "&Landskap" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "&Høyre til venstre" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "Ikke so&rter" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "Kant&utgjevning" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "&Slå av tegneserieprossessering" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "&Utdataformat:" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "Feilsøk" @@ -2832,7 +2859,7 @@ msgstr " punkter" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:91 msgid "Line &height:" -msgstr "Linje &høyde" +msgstr "Linje&hløyde" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:93 msgid "Remove &spacing between paragraphs" @@ -2840,7 +2867,7 @@ msgstr "Fjern &mellomrom mellom avsnitt" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:94 msgid "No text &justification" -msgstr "Ingen tekst &justeringer" +msgstr "Ingen tekst&justeringer" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:95 msgid "&Linearize tables" @@ -2852,15 +2879,15 @@ msgstr "&Omskriv unicodetegn til ASCII." #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:97 msgid "Font size &key:" -msgstr "Fontstørrelse &nøkkel:" +msgstr "Fontstørrelse&nøkkel:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:98 msgid "Input character &encoding" -msgstr "Tegnsett for inndata &omkoding" +msgstr "Tegnsett for &omkoding av inndata" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:99 msgid "&Disable font size rescaling" -msgstr "&Slå av fontstørrelse omskalering" +msgstr "&Slå av omskalering av fontstørrelse" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:100 msgid "Insert &blank line" @@ -3217,10 +3244,6 @@ msgstr "Dialog" msgid "&Input format:" msgstr "&Inndataformat:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "&Utdataformat:" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -3273,7 +3296,7 @@ msgstr "XPath uttrykket %s er ugyldig." #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:60 msgid "Chapter &mark:" -msgstr "Kapittell &merke:" +msgstr "Kapittel&merke:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:61 msgid "Remove first &image" @@ -4118,7 +4141,7 @@ msgstr "Bruk &Romerske tall for seriell numerering" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:486 msgid "Enable system &tray icon (needs restart)" -msgstr "Slå på system &oppgavepanelikonet (trenger omstart)" +msgstr "Slå på oppgave&panelikonet" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:487 msgid "Show ¬ifications in system tray" @@ -4194,11 +4217,11 @@ msgstr "&Fjern e-post" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 msgid "calibre can send your books to you (or your reader) by email" -msgstr "Calibre kan sende deg bøker til deg (eller din leser) via e-post" +msgstr "Calibre kan sende bøker til deg (eller din leser) via e-post" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "&Maximum number of waiting worker processes (needs restart):" -msgstr "" +msgstr "&Maximum antall ventende arbeidsprosesser (omstart behøves):" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "&Check database integrity" @@ -4264,7 +4287,7 @@ msgstr "&Vis passord" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Max. &OPDS items per query:" -msgstr "" +msgstr "Maksimum &OPDS enheter per spørring:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "&Start Server" @@ -4438,7 +4461,7 @@ msgstr "Vis oppgave&detaljer" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:47 msgid "Stop &all jobs" -msgstr "" +msgstr "Stopp &alle jobber" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:133 msgid "Edit Meta information" @@ -4538,7 +4561,7 @@ msgstr "Omslaget i %s format er ikke gyldig" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:268 msgid "Abort the editing of all remaining books" -msgstr "" +msgstr "Avbryt redigering av alle gjenværende bøker" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:459 msgid "Downloading cover..." @@ -4590,7 +4613,7 @@ msgstr "Kunne ikke åpne %s. Blir den benyttet i et annet program?" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:338 msgid "Edit Meta Information" -msgstr "Rediger metadatainformasjon" +msgstr "Rediger metadata" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:342 msgid "Swap the author and title" @@ -5173,7 +5196,7 @@ msgstr "" "qt-block-indent:0; text-indent:0px;\">Legg inn et regulært uttrykksmønster " "til bruk når du forsøker å gjette e-bok metadata fra filnavnet.

\n" "

A En referanse av " "syntaksen dersom et regulært uttrykk er tilgjengelig.

\n" @@ -5412,7 +5435,7 @@ msgstr "Lagre et enkelt format til lagringsenhet..." #: /home/kovid/work/calibre/src/calibre/gui2/main.py:124 msgid "Search (For Advanced Search click the button to the left)" -msgstr "Søk (For Avansert Søk klikk på knappen til venstre)" +msgstr "Søk (For avansert søk, klikk på knappen til venstre)" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:141 msgid "Error communicating with device" @@ -5456,11 +5479,11 @@ msgstr "Last ned metadata og omslag" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:230 msgid "Download only metadata" -msgstr "Last kun ned metadata" +msgstr "Last bare ned metadata" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:231 msgid "Download only covers" -msgstr "Last kun ned omslag" +msgstr "Last bare ned omslag" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:234 msgid "Add books from a single directory" @@ -5519,7 +5542,7 @@ msgstr "Samlet konvertering" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:331 msgid "Run welcome wizard" -msgstr "Kjør velkommenveiviser" +msgstr "Kjør velkomstveiviser" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:365 msgid "Similar books..." @@ -5890,7 +5913,7 @@ msgstr "Logg debugging informasjon til konsollen" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1757 msgid "Do not check for updates" -msgstr "" +msgstr "Ikke søk etter oppdateringer" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:1805 msgid "If you are sure it is not running" @@ -5985,7 +6008,7 @@ msgstr "Slett" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:350 msgid "Edit meta information" -msgstr "Rediger metadatainformasjon" +msgstr "Rediger metadata" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:351 msgid "E" @@ -6145,11 +6168,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:123 msgid "Queueing books for bulk conversion" -msgstr "" +msgstr "Kø bøker for samlet konvertering" #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:183 msgid "Queueing " -msgstr "" +msgstr "Kø " #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:237 msgid "You must set a username and password for %s" @@ -6817,7 +6840,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:111 msgid "Mail &Server" -msgstr "E-post &Server" +msgstr "E-post&server" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 msgid "calibre can optionally use a server to send mail" @@ -6937,6 +6960,8 @@ msgid "" "The maximum number of matches to return per OPDS query. This affects Stanza, " "WordPlayer, etc. integration." msgstr "" +"Maksimum antall treff som resultat per OPDS spørring. Dette affekterer " +"Stanza, WordPlayer osv integrering." #: /home/kovid/work/calibre/src/calibre/library/cli.py:117 msgid "" @@ -8000,6 +8025,10 @@ msgstr "Vis detaljert utdatainformasjon. Benyttes for feilsøking" #~ "Uthentet markup fra lesbart format. Dette kan medføre at mellomrom, " #~ "tabulatorer og linjeskift blir modifisert." +#~ msgid "Number of colors for grayscale image conversion. Default: %default" +#~ msgstr "" +#~ "Antall farger brukt for gråskala bildekonvertering. Standard er %default" + #~ msgid "Rendering comic pages..." #~ msgstr "Prosesserer tegneserie sider..." diff --git a/src/calibre/translations/nds.po b/src/calibre/translations/nds.po index 75c38c4698..de4c5f3e5f 100644 --- a/src/calibre/translations/nds.po +++ b/src/calibre/translations/nds.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" "PO-Revision-Date: 2009-09-04 22:11+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: American English \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:47+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Generated-By: pygettext.py 1.5\n" @@ -29,7 +29,7 @@ msgstr "Macht gar nix" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -644,29 +644,30 @@ msgstr "" "%s" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -"Anzahl der Farben für die Konvertierung von Graustufenbildern. " -"Voreinstellung: %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Deaktivieren der Normalisierung (verbessert den Kontrast) des Farbbereichs " "für Bilder. Voreinstellung: False" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" "Seitenverhältnis des Bildes beibehalten. Voreinstellung ist " "bildschirmfüllende Darstellung." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "Schärfen deaktivieren." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." @@ -674,11 +675,11 @@ msgstr "" "Beschneiden von Comic-Seiten ausschalten. Bei einigen Comics könnte sonst " "neben dem Rahmen auch Inhalt entfernt werden." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "Bilder im Querformat nicht in zwei Bilder im Hochformat aufteilen." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -686,7 +687,7 @@ msgstr "" "Seitenverhältnis beibehalten und Bild so skalieren, dass die Bildschirmhöhe " "als Bildbreite in der Querformatansicht verwendet wird." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -694,7 +695,7 @@ msgstr "" "Benutzt für rechts-nach-links Publikationen wie Mangas. Querformatige Seiten " "werden von rechts nach links in mehrere hochformatige Seiten unterteilt." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." @@ -702,7 +703,7 @@ msgstr "" "Entkörnung einschalten. Reduziert die Körnigkeit. Kann die Bearbeitungszeit " "stark verlängern." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -711,12 +712,19 @@ msgstr "" "sortieren, sondern die Reihenfolge verwenden, in der sie zum Comic " "hinzugefügt wurden." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "Auf das Bild keine Verarbeitung anwenden" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "Seite" @@ -2622,7 +2630,7 @@ msgstr "Einstellungen für" msgid "input" msgstr "Eingabe" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2650,60 +2658,65 @@ msgstr "Eingabe" msgid "Form" msgstr "Art" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "A&nzahl der Farben:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "&Normalisieren deaktivieren" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "Verhältnis &beibehalten" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "&Schärfen deaktivieren" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "Beschneiden ausschal&ten" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "&Weite" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "&Querformat" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "Von &rechts nach links" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "Nicht so&rtieren" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "Ent&körnung" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "&Comic Verarbeitung ausschalten" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "Ausgabef&ormat:" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -3228,10 +3241,6 @@ msgstr "Dialog" msgid "&Input format:" msgstr "E&ingabeformat:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "Ausgabef&ormat:" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -8480,6 +8489,11 @@ msgstr "Zeige detailierte Ausgabeinformation. Hilfreich zur Fehlersuche." #~ msgid "Very verbose output, useful for debugging." #~ msgstr "Sehr ausführliche Ausgabe, hilfreich bei der Fehlersuche." +#~ msgid "Number of colors for grayscale image conversion. Default: %default" +#~ msgstr "" +#~ "Anzahl der Farben für die Konvertierung von Graustufenbildern. " +#~ "Voreinstellung: %default" + #~ msgid "The format to use when saving single files to disk" #~ msgstr "" #~ "Das zu verwendende Format bei der Speicherung einzelner Dateie auf die " diff --git a/src/calibre/translations/nl.po b/src/calibre/translations/nl.po index dc26cb0b73..1fa25fcccd 100644 --- a/src/calibre/translations/nl.po +++ b/src/calibre/translations/nl.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" "PO-Revision-Date: 2009-09-15 05:43+0000\n" "Last-Translator: Yentl \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:46+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:42+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "Doet absoluut niets." #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -622,36 +622,38 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -"Aantal kleuren voor beeld conversie naar grijstinten. Standaard: %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Geen kleur normalisatie (contrast verbetering) voor afbeeldingen. Standaard: " "Nee (False)" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "Behoudt afbeelding aspect ratio. Standaard is beeldvullend." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "Geen aanscherpen." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "Splits landscape afbeeldingen niet in twee portret afbeeldingen" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -659,7 +661,7 @@ msgstr "" "Behoudt aspect ratio en schaal afbeelding aan de hand van de schermhoogte " "als beeld breedte voor het bekijken in landscape modus." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -667,7 +669,7 @@ msgstr "" "Gebruik voor rechts-naar-links publicaties zoals manga. Hierdoor worden " "landscape paginas gesplitst in portret paginas van rechts naar links." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." @@ -675,7 +677,7 @@ msgstr "" "Activeer ontspikkelen. Verminderd spikkel ruis. Dit kan de verwerkingstijd " "flink verlengen." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -683,12 +685,19 @@ msgstr "" "Sorteer de bestanden in de comic niet alfabetisch op naam - gebruik de " "voldorde waarin ze zijn toegevoegd aan de comic." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "" @@ -2328,7 +2337,7 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2356,60 +2365,65 @@ msgstr "" msgid "Form" msgstr "Formulier" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "Aantal &Kleuren:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "Schakel &normalisatie uit" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "&Aspectverhouding behouden" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "Schakel ver&scherping uit" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "&Wijd" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "&Landscape" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "&Rechts naar links" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "Niet so&rteren" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "Ont&spikkel" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2932,10 +2946,6 @@ msgstr "Dialoogvenster" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -8150,6 +8160,10 @@ msgstr "" #~ "Opties voor de configuratie van de conversie van comics (CBR, CBZ) bestanden " #~ "naar eboek" +#~ msgid "Number of colors for grayscale image conversion. Default: %default" +#~ msgstr "" +#~ "Aantal kleuren voor beeld conversie naar grijstinten. Standaard: %default" + #~ msgid "The format to use when saving single files to disk" #~ msgstr "" #~ "Het formaat te gebruiken voor het wegschrijven van enkele bestanden naar " diff --git a/src/calibre/translations/pl.po b/src/calibre/translations/pl.po index 46ac506a57..dfd09bba02 100644 --- a/src/calibre/translations/pl.po +++ b/src/calibre/translations/pl.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" -"PO-Revision-Date: 2009-09-15 05:42+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" +"PO-Revision-Date: 2009-09-18 19:32+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:47+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "Ta opcja nic nie zmienia" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -616,36 +616,38 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -"Liczba kolorów dla konwersji grafiki na czarno-białą. Domyślnie: %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Nie zezwalaj na normalizowanie (poprawianie kontrastu) głębi kolorów. " "Domyślne: Fałsz" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "Wyłącz wyostrzanie" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "Nie dziel grafik panoramicznych na dwie części" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -653,30 +655,37 @@ msgstr "" "Zachowaj format i skalę obrazu używając wysokości ekranu jako szerokość " "obrazu podczas wyświetlania w trybie panoramicznym." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "Strona" @@ -2318,7 +2327,7 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2346,60 +2355,65 @@ msgstr "" msgid "Form" msgstr "Formularz" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "Liczba kolorów:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "Wyłącz normalizację" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "Zachowaj &proporcje" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "Wyłącz wyostrzanie" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "Pozioma" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "&Prawa do lewej" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "Nie so&tuj" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2917,10 +2931,6 @@ msgstr "Okno dialogowe" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -7589,6 +7599,10 @@ msgstr "" #~ msgid "Click to see the list of books available on your computer" #~ msgstr "Kliknij, aby zobaczyć listę książek dostepnych na twoim komputerze" +#~ msgid "Number of colors for grayscale image conversion. Default: %default" +#~ msgstr "" +#~ "Liczba kolorów dla konwersji grafiki na czarno-białą. Domyślnie: %default" + #~ msgid "" #~ "any2lrf [options] myfile\n" #~ "\n" diff --git a/src/calibre/translations/pt.po b/src/calibre/translations/pt.po index ad83aed808..743a8f5d79 100644 --- a/src/calibre/translations/pt.po +++ b/src/calibre/translations/pt.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" "PO-Revision-Date: 2009-09-15 05:39+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:47+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "Não faz absolutamente nada" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -642,28 +642,29 @@ msgstr "" "%s" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -"Número de cores para a conversão de imagens em escala de cinza. A " -"predefinição é: %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Desactivar a normalização (melhoria do contraste) do campo de cores das " "imagens. A predefinição é: False" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" "Manter a relação de aspecto da imagem. A predefinição é preencher o écran." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "Desactivar a nitidez." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." @@ -671,12 +672,12 @@ msgstr "" "Desactivar o aparar das páginas de banda desenhada. Em certas bandas " "desenhadas aparar pode remover conteúdos além das margens." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "" "Não dividir as imagens em modo de paisagem em duas imagens em modo de retrato" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -684,7 +685,7 @@ msgstr "" "Manter a relação de aspecto e escala da imagem usando a altura do écran como " "largura da imagem para visualização em modo paisagem." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -693,7 +694,7 @@ msgstr "" "páginas em modo de paisagem a serem divididas em páginas em modo de retrato " "da direita para a esquerda." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." @@ -701,7 +702,7 @@ msgstr "" "Activar Limpar Irregularidades. Reduz as irregularidades. Pode aumentar " "muito o tempo de processamento." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -710,12 +711,19 @@ msgstr "" "nome. Em vez disso, usar a ordem pela qual foram adicionados à banda " "desenhada." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "Não aplicar processamento à imagem" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "Página" @@ -2632,7 +2640,7 @@ msgstr "Opções específicas a" msgid "input" msgstr "ficheiro de origem" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2660,60 +2668,65 @@ msgstr "ficheiro de origem" msgid "Form" msgstr "Formulário" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "Número de &cores:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "Desactivar nor&malizar" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "Manter a &relação de aspecto" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "Desactivar &nitidez" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "Desactivar &aparar" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "&Largo" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "Paisa&gem" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "&Direita para a esquerda" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "Não &ordenar" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "Limpar &irregularidades" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "Desactivar o &processamento de banda desenhada" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "Formato de &destino:" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "Depurar" @@ -3243,10 +3256,6 @@ msgstr "Caixa de diálogo" msgid "&Input format:" msgstr "Formato de &origem:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "Formato de &destino:" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -9215,6 +9224,11 @@ msgstr "Mostrar informação detalhada. Útil para depurar." #~ "Opções para controlar a conversão de ficheiros de banda desenhada (CBR, CBZ) " #~ "em livros" +#~ msgid "Number of colors for grayscale image conversion. Default: %default" +#~ msgstr "" +#~ "Número de cores para a conversão de imagens em escala de cinza. A " +#~ "predefinição é: %default" + #~ msgid "Options to control the fetching of periodical content from the web." #~ msgstr "Opções para controlar a recolha de conteúdos periódicos da rede." diff --git a/src/calibre/translations/pt_BR.po b/src/calibre/translations/pt_BR.po index a5fd3f4a3e..32238ebb3d 100644 --- a/src/calibre/translations/pt_BR.po +++ b/src/calibre/translations/pt_BR.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" "PO-Revision-Date: 2009-09-05 19:10+0000\n" "Last-Translator: matheusoveral \n" "Language-Team: Brazilian Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:48+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:45+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "Faz absolutamente nada" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -634,24 +634,26 @@ msgstr "" "%s" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -"Número de cores para conversão de imagens em tons de cinza. Padrão: %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "Manter a proporção da imagem. O padrão é para preencher a tela." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." @@ -659,29 +661,29 @@ msgstr "" "Desativar corte de páginas de quadrinhos. Para alguns quadrinhos, o corte " "pode remover conteúdo bem como bordas." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -689,12 +691,19 @@ msgstr "" "Não listar alfabeticamente por nome os arquivos encontrados no gibi. " "Utilizar a sequencia pela qual foram adicionados ao arquivo." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "Página" @@ -2340,7 +2349,7 @@ msgstr "" msgid "input" msgstr "entrada" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2368,60 +2377,65 @@ msgstr "entrada" msgid "Form" msgstr "Formulário" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "&Desativar processamento de gibis" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2939,10 +2953,6 @@ msgstr "" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -7134,6 +7144,10 @@ msgstr "" #~ msgid "Communicate with the Sony PRS-700 eBook reader." #~ msgstr "Comunicar com o leitor de eBooks Sony PRS-700." +#~ msgid "Number of colors for grayscale image conversion. Default: %default" +#~ msgstr "" +#~ "Número de cores para conversão de imagens em tons de cinza. Padrão: %default" + #~ msgid "/Unknown" #~ msgstr "/Desconhecido" diff --git a/src/calibre/translations/ro.po b/src/calibre/translations/ro.po index 2aed5afdbb..00ed474818 100644 --- a/src/calibre/translations/ro.po +++ b/src/calibre/translations/ro.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" "PO-Revision-Date: 2009-05-21 15:31+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Romanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:47+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "Nu face absolut nimic" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -615,62 +615,72 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "" @@ -2285,7 +2295,7 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2313,60 +2323,65 @@ msgstr "" msgid "Form" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2884,10 +2899,6 @@ msgstr "" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" diff --git a/src/calibre/translations/ru.po b/src/calibre/translations/ru.po index 1be3c68bb1..9646179ecd 100644 --- a/src/calibre/translations/ru.po +++ b/src/calibre/translations/ru.po @@ -6,14 +6,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre 0.4.55\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" -"PO-Revision-Date: 2009-09-15 05:26+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" +"PO-Revision-Date: 2009-09-18 19:23+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: American English \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:47+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: RUSSIAN FEDERATION\n" "X-Poedit-Language: Russian\n" @@ -32,7 +32,7 @@ msgstr "Ничего не делает" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -635,25 +635,26 @@ msgstr "" "%s" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -"Количество цветов для преобразования изображения в оттенки серого. По " -"умолчанию: %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "Задать формат картинки. По умолчанию на весь экран." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "Отменить повышение резкости." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." @@ -661,11 +662,11 @@ msgstr "" "Отключить обрезку страниц комиксов. В некоторых коммиксах данная опция может " "удалять содержимое вместе с границами." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "Не разделять альбомную картинку на две портретных" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -673,7 +674,7 @@ msgstr "" "Сохранить формат картинки и масштаб, используя высоту экрана как ширину для " "просмотра в альбомном режиме." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -681,7 +682,7 @@ msgstr "" "Используется для публикаций справа налево, таких, как манга (японские " "комиксы). Альбомные страницы разделяются на портретные справа налево." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." @@ -689,7 +690,7 @@ msgstr "" "Разрешить подчистку. Уменьшает пятнистый шум. Может значительно увеличить " "время обработки." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -698,12 +699,19 @@ msgstr "" "Вместо этого использовать тот порядок, в котором они были добавлены в " "комиксы." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "Не обрабатывать изображения" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "Страница" @@ -2363,7 +2371,7 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2391,60 +2399,65 @@ msgstr "" msgid "Form" msgstr "Форма" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "&Количество цветов:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "Блокировать &упорядочивание" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "Сохранить &соотношение сторон" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "Блокировать повышение &резкости" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "Выключить обрезку" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "&Широкий" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "&Альбомная" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "&Справа на лево" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "Не сорт&ировать" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "Конт&раст" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2965,10 +2978,6 @@ msgstr "Диалог" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -9116,3 +9125,8 @@ msgstr "Показать детальную информацию. Использ #~ msgid "Communicate with the Sony PRS-700 eBook reader." #~ msgstr "Соединяться с Sony PRS-700." + +#~ msgid "Number of colors for grayscale image conversion. Default: %default" +#~ msgstr "" +#~ "Количество цветов для преобразования изображения в оттенки серого. По " +#~ "умолчанию: %default" diff --git a/src/calibre/translations/sk.po b/src/calibre/translations/sk.po index 77c311c4b1..5879a2e0c7 100644 --- a/src/calibre/translations/sk.po +++ b/src/calibre/translations/sk.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" "PO-Revision-Date: 2009-09-05 19:23+0000\n" "Last-Translator: Michael Gallo \n" "Language-Team: Slovak \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:47+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "Nerobí vôbec nič" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -632,28 +632,29 @@ msgstr "" "%s" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -"Počet odtieňov sivej použitý pri prevode obrázkov. Predvolená hodnota: " -"%default" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Vypnutie normalizácie (zvýšenia kontrastu) rozsahu farieb obrázkov. " "Štandardne je normalizácia zapnutá." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" "Zachovať pomer strán obrázkov. Štandardne obrázky vyplnia celú obrazovku." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "Vypnúť zvyšovanie ostrosti obrázkov." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." @@ -661,11 +662,11 @@ msgstr "" "Neorezávať strany komiksov. Pre niektoré komiksy, orezávanie môže okrem " "okraja strany odstrániť aj časti kresby." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "Nerozdeľovať obrázky \"na šírku\" na dva obrázky \"na výšku\"." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -673,7 +674,7 @@ msgstr "" "Zachovať pomer strán a prispôsobiť šírku obrázka výške obrazovky na " "prezeranie \"na šírku\"." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -681,7 +682,7 @@ msgstr "" "Užitočné pre publikácie čítané zprava doľava, ako napr. manga. Obrázky \"na " "šírku\" budú rozdelené na obrázky \"na výšku\" v poradí zprava doľava." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." @@ -689,7 +690,7 @@ msgstr "" "Zapnúť filter šumu. Odstraňuje šum v oblastiach plynulých prechodov. Môže " "výrazne predĺžiť čas potrebný na spracovanie." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -697,12 +698,19 @@ msgstr "" "Netriediť súbory komiksu abecedne. Použiť poradie v ktorom boli pridané do " "komiksu." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "Obrázok nijak neupravovať" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "Strana" @@ -2363,7 +2371,7 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2391,60 +2399,65 @@ msgstr "" msgid "Form" msgstr "Z" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "Počet &farieb:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "Vypnúť &normalizáciu" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "Zachovať &pomer strán" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "Vypnúť &zaostrovanie" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "Širo&ké obrázky" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "Na ší&rku" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "&Sprava doľava" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "&Netriediť" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "Čistiaci &filter" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2965,10 +2978,6 @@ msgstr "Dialog" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -8406,6 +8415,11 @@ msgstr "" #~ "listovania v LRF súbore. Táto možnosť je teda ignorovaná ak aktuálna stránka " #~ "má len pár elementov." +#~ msgid "Number of colors for grayscale image conversion. Default: %default" +#~ msgstr "" +#~ "Počet odtieňov sivej použitý pri prevode obrázkov. Predvolená hodnota: " +#~ "%default" + #~ msgid "Set defaults for conversion of comics" #~ msgstr "Štandardné nastavenie prevodu komiksov" diff --git a/src/calibre/translations/sl.po b/src/calibre/translations/sl.po index 56d52cae49..7efc9ccb2b 100644 --- a/src/calibre/translations/sl.po +++ b/src/calibre/translations/sl.po @@ -6,14 +6,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre 0.4.17\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" "PO-Revision-Date: 2009-09-04 21:49+0000\n" "Last-Translator: Ketrin \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-09-18 09:48+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Generated-By: pygettext.py 1.5\n" @@ -28,7 +28,7 @@ msgstr "Ne naredi popolnoma nič" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -610,36 +610,39 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" -msgstr "Število barv za sivinsko pretvorbo slike. Privzeto: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." +msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Onemogoči normalizacijo (izboljšaj kontrast) barvnega razpona za slike. " "Privzeto: False" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" "Obdrži razmerje slike. Privzeto je da se prilagodi velikosti zaslona." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "Onemogoči ostrenje." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "Ne razdeli panoramskih slik v dve portretni" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -647,7 +650,7 @@ msgstr "" "Obdrži razmerje pri skaliranju slik in uporabi višino zaslona za širino " "slike pri pregledovanju v panoramskem načinu." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -655,13 +658,13 @@ msgstr "" "Uporablja se za izdaje, ki se berejo od desne proti levi tako kot manga. " "Panoramske slike se razdelijo v portretne strani od desne proti levi." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -669,12 +672,19 @@ msgstr "" "Ne razvrščaj datotek, ki se nahajajo v arhivu stripa po imenu. Upoštevaj " "vrstni red v katerem so bile dane v strip." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "" @@ -2308,7 +2318,7 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2336,60 +2346,65 @@ msgstr "" msgid "Form" msgstr "Forma" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "&Število Barv:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "Izklopi &normalizacijo" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "Ohrani r&azmerje" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "Onemogoči O&strenje" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "&Široko" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "&Panorama" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "Od desne p&roti levi" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "Ne &razvrščaj" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "De&speckle" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2910,10 +2925,6 @@ msgstr "Dialog" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -7490,6 +7501,9 @@ msgstr "Podrobneje prikaži izhodne informacije. Koristno za razhroščevanje." #~ msgstr "" #~ "Nastavi avtorja v meta podatkih ustvarjene eknjige. Privzeto je %default" +#~ msgid "Number of colors for grayscale image conversion. Default: %default" +#~ msgstr "Število barv za sivinsko pretvorbo slike. Privzeto: %default" + #~ msgid "Don't show progress bar." #~ msgstr "Ne pokaži indikatorja napredka." diff --git a/src/calibre/translations/sv.po b/src/calibre/translations/sv.po index e042a48ba3..95d4e882c1 100644 --- a/src/calibre/translations/sv.po +++ b/src/calibre/translations/sv.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" "PO-Revision-Date: 2009-05-21 15:34+0000\n" "Last-Translator: nicke \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:48+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "Gör ingenting" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -610,62 +610,72 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "" @@ -2265,7 +2275,7 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2293,60 +2303,65 @@ msgstr "" msgid "Form" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2864,10 +2879,6 @@ msgstr "" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" diff --git a/src/calibre/translations/te.po b/src/calibre/translations/te.po index 6ddf2daf59..902447d93d 100644 --- a/src/calibre/translations/te.po +++ b/src/calibre/translations/te.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" "PO-Revision-Date: 2009-05-21 15:34+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Telugu \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:48+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -610,62 +610,72 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "" @@ -2265,7 +2275,7 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2293,60 +2303,65 @@ msgstr "" msgid "Form" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2864,10 +2879,6 @@ msgstr "" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" diff --git a/src/calibre/translations/uk.po b/src/calibre/translations/uk.po index e265d16a0b..ea85508617 100644 --- a/src/calibre/translations/uk.po +++ b/src/calibre/translations/uk.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" -"PO-Revision-Date: 2009-09-04 22:00+0000\n" -"Last-Translator: Kovid Goyal \n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" +"PO-Revision-Date: 2009-09-20 20:55+0000\n" +"Last-Translator: Bohdan \n" "Language-Team: Ukrainian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:48+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "Робить абсолютно нічого" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -170,6 +170,8 @@ msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." msgstr "" +"Кодування символів для вхідних HTML файлів. Зазвичай варіанти бувають: " +"cp1252, latin1, iso-8859-1 і utf-8." #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:56 msgid "Extract cover from comic files" @@ -239,6 +241,8 @@ msgid "" "If specified, the output plugin will try to create output that is as human " "readable as possible. May not have any effect for some output plugins." msgstr "" +"Якщо вказано, вихідний втулок спробує створити зручні для читання вихідні " +"дані. Може не мати жодного ефекту для деяких втулків." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:44 msgid "Input profile" @@ -253,37 +257,37 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:56 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 msgid "This profile is intended for the SONY PRS line. The 500/505/700 etc." -msgstr "" +msgstr "Цей профіль призначено для лінійки SONY PRS. 500/505/700 і ін." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:69 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:229 msgid "This profile is intended for the Microsoft Reader." -msgstr "" +msgstr "Цей профіль призначено для Microsoft Reader." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:240 msgid "This profile is intended for the Mobipocket books." -msgstr "" +msgstr "Цей профіль призначено для Mobipocket books." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:93 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:253 msgid "This profile is intended for the Hanlin V3 and its clones." -msgstr "" +msgstr "Цей профіль призначено для Hanlin V3 та його клонів." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:105 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:265 msgid "This profile is intended for the Cybook G3." -msgstr "" +msgstr "Цей профіль призначено для Cybook G3." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:118 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:278 msgid "This profile is intended for the Cybook Opus." -msgstr "" +msgstr "Цей профіль призначено для Cybook Opus." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:130 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:289 msgid "This profile is intended for the Amazon Kindle." -msgstr "" +msgstr "Цей профіль призначено для Amazon Kindle." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:142 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:322 @@ -622,62 +626,72 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "" @@ -2279,7 +2293,7 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2307,60 +2321,65 @@ msgstr "" msgid "Form" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2878,10 +2897,6 @@ msgstr "" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" diff --git a/src/calibre/translations/yi.po b/src/calibre/translations/yi.po index ee38f044f9..d3f957c165 100644 --- a/src/calibre/translations/yi.po +++ b/src/calibre/translations/yi.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" "PO-Revision-Date: 2009-09-04 22:02+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Yiddish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:48+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:45+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -610,62 +610,72 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "" @@ -2265,7 +2275,7 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2293,60 +2303,65 @@ msgstr "" msgid "Form" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2864,10 +2879,6 @@ msgstr "" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" diff --git a/src/calibre/translations/zh_CN.po b/src/calibre/translations/zh_CN.po index 9a11c7dcee..cb807650c9 100644 --- a/src/calibre/translations/zh_CN.po +++ b/src/calibre/translations/zh_CN.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" -"PO-Revision-Date: 2009-09-15 19:06+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" +"PO-Revision-Date: 2009-09-18 19:28+0000\n" "Last-Translator: Thruth Wang \n" "Language-Team: Simplified Chinese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:48+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:45+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "不做任何处理" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -617,62 +617,72 @@ msgstr "" "%s" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" -msgstr "转化输出图片的灰度阶数。默认值:%default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." +msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "禁用图片色阶规范化(提升图片对比度)。默认:关闭" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "维持图片长宽比。 默认为缩放至屏幕大小。" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "禁用锐化。" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." msgstr "关闭漫画自动切边功能。对于一些漫画,切边会丢失某些内容。" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "不要将横向图片分割为两张纵向图片" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." msgstr "在将纵向图片旋转缩放到横向浏览模式时保持长宽比。" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." msgstr "开启从右至左的漫画切分模式。该功能会将横向图片页面且分为多个从右至左的纵向页面。" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "开启除噪点功能。该功能将去除噪点。可能会大幅度增加处理时间。" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." msgstr "不要按照文件名字母排序动画文件列表。而使用文件被添加的顺序。" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "不对图片进行处理" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "页" @@ -2391,7 +2401,7 @@ msgstr "选项适用于" msgid "input" msgstr "输入" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2419,60 +2429,65 @@ msgstr "输入" msgid "Form" msgstr "来自" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "颜色数(&N):" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "关闭图像规范化(&N)" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "保持宽高比(&A)" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "关闭锐化(&S)" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "关闭切边(&T)" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "宽度(&W)" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "横向(&L)" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "从右向左(&R)" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "不要排序(&R)" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "除噪点(&S)" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "关闭漫画处理(&D)" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "输出格式(&O):" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "调试" @@ -2990,10 +3005,6 @@ msgstr "对话框" msgid "&Input format:" msgstr "输入格式(&I):" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "输出格式(&O):" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -7326,6 +7337,9 @@ msgstr "显示详细输出信息。有利调试" #~ msgid "Communicate with the Sony PRS-700 eBook reader." #~ msgstr "与 Sony PRS-700 eBook reader 通信。" +#~ msgid "Number of colors for grayscale image conversion. Default: %default" +#~ msgstr "转化输出图片的灰度阶数。默认值:%default" + #~ msgid "French" #~ msgstr "法语" diff --git a/src/calibre/translations/zh_HK.po b/src/calibre/translations/zh_HK.po index bab23cc95d..f0ffaf252b 100644 --- a/src/calibre/translations/zh_HK.po +++ b/src/calibre/translations/zh_HK.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" "PO-Revision-Date: 2009-09-05 19:14+0000\n" "Last-Translator: pikoman \n" "Language-Team: Chinese (Hong Kong) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:48+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:45+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "不要做任何事情" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -610,62 +610,72 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "" @@ -2265,7 +2275,7 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2293,60 +2303,65 @@ msgstr "" msgid "Form" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2864,10 +2879,6 @@ msgstr "" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" diff --git a/src/calibre/translations/zh_TW.po b/src/calibre/translations/zh_TW.po index e5d2e02928..44646a06a7 100644 --- a/src/calibre/translations/zh_TW.po +++ b/src/calibre/translations/zh_TW.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-09-18 06:45+0000\n" +"POT-Creation-Date: 2009-09-18 19:33+0000\n" "PO-Revision-Date: 2009-09-05 19:09+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Traditional Chinese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-09-18 09:48+0000\n" +"X-Launchpad-Export-Date: 2009-09-23 09:45+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 @@ -28,7 +28,7 @@ msgstr "English" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:703 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:706 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:403 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 @@ -610,62 +610,72 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 -msgid "Number of colors for grayscale image conversion. Default: %default" +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "Disable sharpening." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "Don't split landscape images into two portrait images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:427 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 msgid "Page" msgstr "" @@ -2265,7 +2275,7 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 @@ -2293,60 +2303,65 @@ msgstr "" msgid "Form" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +msgid "&Output format:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2864,10 +2879,6 @@ msgstr "" msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 -msgid "&Output format:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" diff --git a/src/calibre/utils/PythonMagickWand.py b/src/calibre/utils/PythonMagickWand.py index 93c1ddf1fa..91c37e42ba 100644 --- a/src/calibre/utils/PythonMagickWand.py +++ b/src/calibre/utils/PythonMagickWand.py @@ -85,7 +85,7 @@ elif iswindows: if isfrozen else 'CORE_RL_wand_' else: if isfrozen: - _lib = os.path.join(sys.frozen_path, 'libMagickWand.so') + _lib = os.path.join(sys.frozen_path, 'libMagickWand.so.2') else: _lib = util.find_library('MagickWand') if _lib is None: diff --git a/src/calibre/web/feeds/recipes/__init__.py b/src/calibre/web/feeds/recipes/__init__.py index b48b4054ea..cb52d41111 100644 --- a/src/calibre/web/feeds/recipes/__init__.py +++ b/src/calibre/web/feeds/recipes/__init__.py @@ -58,7 +58,8 @@ recipe_modules = ['recipe_' + r for r in ( 'esquire', 'livemint', 'thedgesingapore', 'darknet', 'rga', 'intelligencer', 'theoldfoodie', 'hln_be', 'honvedelem', 'the_new_republic', 'philly', 'salon', 'tweakers', 'smashing', - 'thestar', + 'thestar', 'business_standard', 'lemonde_dip', 'javalobby', + 'serverside', 'infoworld' )] diff --git a/src/calibre/web/feeds/recipes/recipe_business_standard.py b/src/calibre/web/feeds/recipes/recipe_business_standard.py new file mode 100644 index 0000000000..75b2e0af8f --- /dev/null +++ b/src/calibre/web/feeds/recipes/recipe_business_standard.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__copyright__ = '2009, Darko Miletic ' +''' +www.business-standard.com +''' + +from calibre.web.feeds.recipes import BasicNewsRecipe + +class BusinessStandard(BasicNewsRecipe): + title = 'Business Standard' + __author__ = 'Darko Miletic' + description = "India's most respected business daily" + oldest_article = 7 + max_articles_per_feed = 100 + no_stylesheets = True + use_embedded_content = False + encoding = 'cp1252' + publisher = 'Business Standard Limited' + category = 'news, business, money, india, world' + language = 'en_IN' + + conversion_options = { + 'comments' : description + ,'tags' : category + ,'language' : language + ,'publisher' : publisher + ,'linearize_tables': True + } + + remove_attributes=['style'] + remove_tags = [dict(name=['object','link','script','iframe'])] + + feeds = [ + (u'News Now' , u'http://feeds.business-standard.com/News-Now.xml' ) + ,(u'Banking & finance' , u'http://feeds.business-standard.com/Banking-Finance-All.xml' ) + ,(u'Companies & Industry', u'http://feeds.business-standard.com/Companies-Industry-All.xml') + ,(u'Economy & Policy' , u'http://feeds.business-standard.com/Economy-Policy-All.xml' ) + ,(u'Tech World' , u'http://feeds.business-standard.com/Tech-World-All.xml' ) + ,(u'Life & Leisure' , u'http://feeds.business-standard.com/Life-Leisure-All.xml' ) + ,(u'Markets & Investing' , u'http://feeds.business-standard.com/Markets-Investing-All.xml' ) + ,(u'Management & Mktg' , u'http://feeds.business-standard.com/Management-Mktg-All.xml' ) + ,(u'Automobiles' , u'http://feeds.business-standard.com/Automobiles.xml' ) + ,(u'Aviation' , u'http://feeds.business-standard.com/Aviation.xml' ) + ] + + def print_version(self, url): + autono = url.rpartition('autono=')[2] + tp = 'on' + hk = url.rpartition('bKeyFlag=')[1] + if hk == '': + tp = '' + return 'http://www.business-standard.com/india/printpage.php?autono=' + autono + '&tp=' + tp + + def get_article_url(self, article): + return article.get('guid', None) diff --git a/src/calibre/web/feeds/recipes/recipe_danas.py b/src/calibre/web/feeds/recipes/recipe_danas.py index 0eb2ee868b..4de308a57d 100644 --- a/src/calibre/web/feeds/recipes/recipe_danas.py +++ b/src/calibre/web/feeds/recipes/recipe_danas.py @@ -19,8 +19,7 @@ class Danas(BasicNewsRecipe): max_articles_per_feed = 100 no_stylesheets = False use_embedded_content = False - language = 'sr' - + language = 'sr' lang = 'sr-Latn-RS' direction = 'ltr' 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}' @@ -29,7 +28,7 @@ class Danas(BasicNewsRecipe): 'comment' : description , 'tags' : category , 'publisher' : publisher - , 'language' : lang + , 'language' : language , 'pretty_print' : True } @@ -43,7 +42,10 @@ class Danas(BasicNewsRecipe): ,dict(name=['object','link']) ] - feeds = [ (u'Vesti', u'http://www.danas.rs/rss/rss.asp')] + feeds = [ + (u'Vesti' , u'http://www.danas.rs/rss/rss.asp' ) + ,(u'Periskop', u'http://www.danas.rs/rss/rss.asp?column_id=4') + ] def preprocess_html(self, soup): mlang = Tag(soup,'meta',[("http-equiv","Content-Language"),("content",self.lang)]) diff --git a/src/calibre/web/feeds/recipes/recipe_infoworld.py b/src/calibre/web/feeds/recipes/recipe_infoworld.py new file mode 100644 index 0000000000..b98649eeda --- /dev/null +++ b/src/calibre/web/feeds/recipes/recipe_infoworld.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__copyright__ = '2009, Rick Kellogg' +''' +Infoworld.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class Engadget(BasicNewsRecipe): + title = u'Infoworld.com' + __author__ = 'Rick Kellogg' + description = 'news' + language = 'en' + oldest_article = 7 + max_articles_per_feed = 100 + no_stylesheets = True + use_embedded_content = False + + remove_tags = [ dict(name='div', attrs={'class':["articleTools clearfix","relatedContent","pagination clearfix","addResources"]}), + dict(name='div', attrs={'id':["post-socialPromoBlock"]})] + + keep_only_tags = [dict(name='div', attrs={'class':["article"]})] + + feeds = [ (u'Top Tech Stories', u'http://infoworld.com/homepage/feed'), + (u'Today\'s Tech Headlines', u'http://www.infoworld.com/news/feed') ] + + def get_article_url(self, article): + + url = article.get('link', None) + + return url + + diff --git a/src/calibre/web/feeds/recipes/recipe_javalobby.py b/src/calibre/web/feeds/recipes/recipe_javalobby.py new file mode 100644 index 0000000000..55198e8321 --- /dev/null +++ b/src/calibre/web/feeds/recipes/recipe_javalobby.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__copyright__ = '2009, Rick Kellogg' +''' +java.dzone.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class Engadget(BasicNewsRecipe): + title = u'Javalobby' + __author__ = 'Rick Kellogg' + description = 'news' + language = 'en' + oldest_article = 7 + max_articles_per_feed = 100 + no_stylesheets = True + use_embedded_content = False + + remove_tags = [ dict(name='div', attrs={'class':["fivestar-static-form-item","relatedContent","pagination clearfix","addResources"]}), + dict(name='div', attrs={'id':["comments"]})] + + keep_only_tags = [dict(name='div', attrs={'id':["article"]})] + + feeds = [ (u'news', u'http://feeds.dzone.com/javalobby/frontpage')] + + def get_article_url(self, article): + + url = article.get('link', None) + + return url + + diff --git a/src/calibre/web/feeds/recipes/recipe_lemonde_dip.py b/src/calibre/web/feeds/recipes/recipe_lemonde_dip.py new file mode 100644 index 0000000000..fa20e43aa2 --- /dev/null +++ b/src/calibre/web/feeds/recipes/recipe_lemonde_dip.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__copyright__ = '2008-2009, Darko Miletic ' +''' +mondediplo.com +''' + +import urllib +from calibre import strftime +from calibre.web.feeds.news import BasicNewsRecipe + +class LeMondeDiplomatiqueEn(BasicNewsRecipe): + title = 'Le Monde diplomatique - English edition' + __author__ = 'Darko Miletic' + description = 'Real journalism making sense of the world around us' + publisher = 'Le Monde diplomatique' + category = 'news, politics, world' + no_stylesheets = True + oldest_article = 31 + delay = 1 + encoding = 'utf-8' + needs_subscription = True + PREFIX = 'http://mondediplo.com/' + LOGIN = PREFIX + '2009/09/02congo' + INDEX = PREFIX + strftime('%Y/%m/') + use_embedded_content = False + language = 'en' + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + + def get_browser(self): + br = BasicNewsRecipe.get_browser() + br.open(self.LOGIN) + if self.username is not None and self.password is not None: + data = urllib.urlencode({ 'login':self.username + ,'pass':self.password + ,'enter':'enter' + }) + br.open(self.LOGIN,data) + return br + + keep_only_tags =[dict(name='div', attrs={'id':'contenu'})] + remove_tags = [dict(name=['object','link','script','iframe','base'])] + + def parse_index(self): + articles = [] + soup = self.index_to_soup(self.INDEX) + cnt = soup.find('div',attrs={'class':'som_num'}) + for item in cnt.findAll('li'): + description = '' + feed_link = item.find('a') + desc = item.find('div',attrs={'class':'chapo'}) + if desc: + description = desc.string + if feed_link and feed_link.has_key('href'): + url = self.PREFIX + feed_link['href'].partition('/../')[2] + title = self.tag_to_string(feed_link) + date = strftime(self.timefmt) + articles.append({ + 'title' :title + ,'date' :date + ,'url' :url + ,'description':description + }) + return [(soup.head.title.string, articles)] + diff --git a/src/calibre/web/feeds/recipes/recipe_nin.py b/src/calibre/web/feeds/recipes/recipe_nin.py index 0dff2f5b8a..535652b6a0 100644 --- a/src/calibre/web/feeds/recipes/recipe_nin.py +++ b/src/calibre/web/feeds/recipes/recipe_nin.py @@ -7,6 +7,7 @@ nin.co.rs ''' import re, urllib +from calibre import strftime from calibre.web.feeds.news import BasicNewsRecipe from calibre.ebooks.BeautifulSoup import Tag @@ -25,10 +26,8 @@ class Nin(BasicNewsRecipe): PREFIX = 'http://www.nin.co.rs' INDEX = PREFIX + '/?change_lang=ls' LOGIN = PREFIX + '/?logout=true' - FEED = PREFIX + '/misc/rss.php?feed=RSS2.0' use_embedded_content = False - language = 'sr' - + language = 'sr' lang = 'sr-Latn-RS' direction = 'ltr' 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} .artTitle{font-size: x-large; font-weight: bold} .columnhead{font-size: small; font-weight: bold}' @@ -37,7 +36,7 @@ class Nin(BasicNewsRecipe): 'comment' : description , 'tags' : category , 'publisher' : publisher - , 'language' : lang + , 'language' : language , 'pretty_print' : True } @@ -57,12 +56,11 @@ class Nin(BasicNewsRecipe): keep_only_tags =[dict(name='td', attrs={'width':'520'})] remove_tags_after =dict(name='html') - feeds =[(u'NIN', FEED)] def get_cover_url(self): cover_url = None soup = self.index_to_soup(self.INDEX) - link_item = soup.find('img',attrs={'width':'100','height':'137','border':'0'}) + link_item = soup.find('img',attrs={'width':'100','border':'0'}) if link_item: cover_url = self.PREFIX + link_item['src'] return cover_url @@ -71,7 +69,7 @@ class Nin(BasicNewsRecipe): soup.html['lang'] = self.lang soup.html['dir' ] = self.direction mlang = Tag(soup,'meta',[("http-equiv","Content-Language"),("content",self.lang)]) - mcharset = Tag(soup,'meta',[("http-equiv","Content-Type"),("content","text/html; charset=UTF-8")]) + mcharset = Tag(soup,'meta',[("http-equiv","Content-Type"),("content","text/html; charset=utf-8")]) soup.head.insert(0,mlang) soup.head.insert(1,mcharset) attribs = [ 'style','font','valign' @@ -87,6 +85,28 @@ class Nin(BasicNewsRecipe): del item[attrib] return soup - def get_article_url(self, article): - raw = article.get('link', None) - return raw.replace('.co.yu','.co.rs') + def parse_index(self): + articles = [] + soup = self.index_to_soup(self.PREFIX) + for item in soup.findAll('a',attrs={'class':'lmeninavFont'}): + section = self.tag_to_string(item) + feedlink = self.PREFIX + item['href'] + feedpage = self.index_to_soup(feedlink) + self.report_progress(0, _('Fetching feed')+' %s...'%(section)) + inarts = [] + for art in feedpage.findAll('span',attrs={'class':'artTitle'}): + alink = art.parent + url = self.PREFIX + alink['href'] + title = self.tag_to_string(art) + sparent = alink.parent + alink.extract() + description = self.tag_to_string(sparent) + date = strftime(self.timefmt) + inarts.append({ + 'title' :title + ,'date' :date + ,'url' :url + ,'description':description + }) + articles.append((section,inarts)) + return articles diff --git a/src/calibre/web/feeds/recipes/recipe_nytimes.py b/src/calibre/web/feeds/recipes/recipe_nytimes.py index c21145ac07..af78856010 100644 --- a/src/calibre/web/feeds/recipes/recipe_nytimes.py +++ b/src/calibre/web/feeds/recipes/recipe_nytimes.py @@ -16,7 +16,7 @@ class NYTimes(BasicNewsRecipe): __author__ = 'GRiker' language = _('English') description = 'Top Stories from the New York Times' - + # List of sections typically included in Top Stories. Use a keyword from the # right column in the excludeSectionKeywords[] list to skip downloading that section sections = { @@ -39,7 +39,7 @@ class NYTimes(BasicNewsRecipe): 'world' : 'World' } - # By default, no sections are skipped. + # By default, no sections are skipped. excludeSectionKeywords = [] # Add section keywords from the right column above to skip that section @@ -49,7 +49,7 @@ class NYTimes(BasicNewsRecipe): # excludeSectionKeywords = ['Arts','Dining','Editorials','Health','Magazine','Media','Region','Op-Ed','Politics','Science','Sports','Top Stories','Travel','U.S.','World'] # Fetch only Top Stories # excludeSectionKeywords = ['Arts','Business','Dining','Editorials','Health','Magazine','Media','Region','Op-Ed','Politics','Science','Sports','Technology','Travel','U.S.','World'] - + # The maximum number of articles that will be downloaded max_articles_per_feed = 40 @@ -63,7 +63,7 @@ class NYTimes(BasicNewsRecipe): dict(attrs={ 'id':['toolsRight','inlineBox','sidebarArticles', 'portfolioInline','articleInline','readerscomment', 'nytRating']}) ] - + encoding = 'cp1252' no_stylesheets = True extra_css = '.headline {text-align: left;}\n \ @@ -105,13 +105,13 @@ class NYTimes(BasicNewsRecipe): _raw = url_or_raw if raw: return _raw - + if not isinstance(_raw, unicode) and self.encoding: _raw = _raw.decode(docEncoding, 'replace') massage = list(BeautifulSoup.MARKUP_MASSAGE) massage.append((re.compile(r'&(\S+?);'), lambda match: entity_to_unicode(match, encoding=self.encoding))) return BeautifulSoup(_raw, markupMassage=massage) - + # Entry point soup = get_the_soup( self.encoding, url_or_raw ) contentType = soup.find(True,attrs={'http-equiv':'Content-Type'}) @@ -122,7 +122,7 @@ class NYTimes(BasicNewsRecipe): if self.verbose > 2: self.log( " document encoding: '%s'" % docEncoding) if docEncoding != self.encoding : - soup = get_the_soup(docEncoding, url_or_raw) + soup = get_the_soup(docEncoding, url_or_raw) return soup @@ -133,7 +133,7 @@ class NYTimes(BasicNewsRecipe): feed = key = 'All Top Stories' articles[key] = [] ans.append(key) - + soup = self.index_to_soup('http://www.nytimes.com/pages/todaysheadlines/') # Fetch the outer table @@ -242,10 +242,10 @@ class NYTimes(BasicNewsRecipe): if url == article['url'] : duplicateFound = True break - - if duplicateFound: + + if duplicateFound: # Continue fetching, don't add this article - continue + continue if not articles.has_key(feed): articles[feed] = [] @@ -254,7 +254,7 @@ class NYTimes(BasicNewsRecipe): description=description, author=author, content='')) ans = self.sort_index_by(ans, {'Top Stories':-1}) - ans = [(key, articles[key]) for key in ans if articles.has_key(key)] + ans = [(key, articles[key]) for key in ans if articles.has_key(key)] return ans def strip_anchors(self,soup): @@ -270,7 +270,7 @@ class NYTimes(BasicNewsRecipe): # refresh = soup.find('meta', {'http-equiv':'refresh'}) # if refresh is None: # return self.strip_anchors(soup) -# +# # content = refresh.get('content').partition('=')[2] # raw = self.browser.open('http://www.nytimes.com'+content).read() # soup = BeautifulSoup(raw.decode('cp1252', 'replace')) @@ -280,7 +280,7 @@ class NYTimes(BasicNewsRecipe): content = refresh.get('content').partition('=')[2] raw = self.browser.open('http://www.nytimes.com'+content).read() soup = BeautifulSoup(raw.decode('cp1252', 'replace')) - + soup = self.strip_anchors(soup) # Test for empty content @@ -291,7 +291,7 @@ class NYTimes(BasicNewsRecipe): return soup else: print "no allowed content found, removing article" - raise StringError + raise Exception() def postprocess_html(self,soup, True): @@ -334,7 +334,7 @@ class NYTimes(BasicNewsRecipe): bTag = Tag(soup, "b") bTag.insert(0, subhead.contents[0]) subhead.replaceWith(bTag) - + # Synthesize a section header dsk = soup.find('meta', attrs={'name':'dsk'}) if dsk is not None and dsk.has_key('content'): @@ -343,12 +343,12 @@ class NYTimes(BasicNewsRecipe): hTag.insert(0,NavigableString(dsk['content'])) articleTag = soup.find(True, attrs={'id':'article'}) articleTag.insert(0,hTag) - + # Add class="articleBody" to
so we can format with CSS divTag = soup.find('div',attrs={'id':'articleBody'}) if divTag is not None : divTag['class'] = divTag['id'] - + # Add class="authorId" to
so we can format with CSS divTag = soup.find('div',attrs={'id':'authorId'}) if divTag is not None : diff --git a/src/calibre/web/feeds/recipes/recipe_salon.py b/src/calibre/web/feeds/recipes/recipe_salon.py index a13acb8ad3..ed7ec98f10 100644 --- a/src/calibre/web/feeds/recipes/recipe_salon.py +++ b/src/calibre/web/feeds/recipes/recipe_salon.py @@ -8,6 +8,7 @@ __docformat__ = 'restructuredtext en' from calibre.web.feeds.news import BasicNewsRecipe + class Salon_com(BasicNewsRecipe): title = 'Salon.com' __author__ = 'cix3' @@ -23,19 +24,23 @@ class Salon_com(BasicNewsRecipe): remove_tags_before = dict(name='h2') feeds = [ - ('All News & Politics', 'http://feeds.salon.com/salon/news'), + ('News & Politics', 'http://feeds.salon.com/salon/news'), ('War Room', 'http://feeds.salon.com/salon/war_room'), - ('All Arts & Entertainment', 'http://feeds.salon.com/salon/ent'), + ('Arts & Entertainment', 'http://feeds.salon.com/salon/ent'), ('I Like to Watch', 'http://feeds.salon.com/salon/iltw'), + ('Beyond Multiplex', 'http://feeds.salon.com/salon/btm'), ('Book Reviews', 'http://feeds.salon.com/salon/books'), - ('All Life stories', 'http://feeds.salon.com/salon/mwt'), - ('Broadsheet', 'http://feeds.salon.com/salon/broadsheet'), + ('All Life', 'http://feeds.salon.com/salon/mwt'), ('All Opinion', 'http://feeds.salon.com/salon/opinion'), + ('Glenn Greenwald', 'http://feeds.salon.com/salon/greenwald'), + ('Garrison Keillor', 'http://dir.salon.com/topics/garrison_keillor/index.rss'), + ('Joan Walsh', 'http://www.salon.com/rss/walsh.rss'), ('All Sports', 'http://feeds.salon.com/salon/sports'), - ('All Tech & Business', 'http://feeds.salon.com/salon/tech'), - ('Ask the Pilot', 'http://feeds.salon.com/salon/ask_the_pilot'), - ('How the World Works', 'http://feeds.salon.com/salon/htww') + ('Tech & Business', 'http://feeds.salon.com/salon/tech'), + ('How World Works', 'http://feeds.salon.com/salon/htww') ] def print_version(self, url): return url.replace('/index.html', '/print.html') + + diff --git a/src/calibre/web/feeds/recipes/recipe_serverside.py b/src/calibre/web/feeds/recipes/recipe_serverside.py new file mode 100644 index 0000000000..13a56e772e --- /dev/null +++ b/src/calibre/web/feeds/recipes/recipe_serverside.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__copyright__ = '2009, Rick Kellogg' +''' +TheServerSide.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class Engadget(BasicNewsRecipe): + title = u'TheServerSide.com' + __author__ = 'Rick Kellogg' + description = 'news' + language = 'en' + oldest_article = 7 + max_articles_per_feed = 100 + no_stylesheets = True + use_embedded_content = False + + remove_tags = [ dict(name='table', attrs={'class':["head"]})] + + feeds = [ (u'News', u'http://feeds.feedburner.com/techtarget/tsscom/home')] + + def get_article_url(self, article): + + url = article.get('guid', None) + + return url + + def print_version(self, url): + return url.replace('http://www.theserverside.com/news/thread.tss?thread_id=', 'http://www.theserverside.com/common/printthread.tss?thread_id=') + diff --git a/src/calibre/web/feeds/recipes/recipe_smashing.py b/src/calibre/web/feeds/recipes/recipe_smashing.py index cc4edd2c77..04436a05ef 100644 --- a/src/calibre/web/feeds/recipes/recipe_smashing.py +++ b/src/calibre/web/feeds/recipes/recipe_smashing.py @@ -1,51 +1,50 @@ -#!/usr/bin/env python - -__license__ = 'GPL v3' -__copyright__ = '2009, Darko Miletic ' -''' -www.smashingmagazine.com -''' - -from calibre.web.feeds.news import BasicNewsRecipe -from calibre.ebooks.BeautifulSoup import Tag - -class SmashingMagazine(BasicNewsRecipe): - title = 'Smashing Magazine' - __author__ = 'Darko Miletic' - description = 'We smash you with the information that will make your life easier, really' - oldest_article = 20 - language = 'en' - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - publisher = 'Smashing Magazine' - category = 'news, web, IT, css, javascript, html' - encoding = 'utf-8' - - conversion_options = { - 'comments' : description - ,'tags' : category - ,'publisher' : publisher - } - - keep_only_tags = [dict(name='div', attrs={'id':'leftcolumn'})] - remove_tags_after = dict(name='ul',attrs={'class':'social'}) - remove_tags = [ - dict(name=['link','object']) - ,dict(name='h1',attrs={'class':'logo'}) - ,dict(name='div',attrs={'id':'booklogosec'}) - ,dict(attrs={'src':'http://media2.smashingmagazine.com/wp-content/uploads/images/the-smashing-book/smbook6.gif'}) - ] - - feeds = [(u'Articles', u'http://rss1.smashingmagazine.com/feed/')] - - def preprocess_html(self, soup): - for iter in soup.findAll('div',attrs={'class':'leftframe'}): - it = iter.find('h1') - if it == None: - iter.extract() - for item in soup.findAll('img'): - oldParent = item.parent - if oldParent.name == 'a': - oldParent.name = 'div' - return soup +#!/usr/bin/env python + +__license__ = 'GPL v3' +__copyright__ = '2009, Darko Miletic ' +''' +www.smashingmagazine.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class SmashingMagazine(BasicNewsRecipe): + title = 'Smashing Magazine' + __author__ = 'Darko Miletic' + description = 'We smash you with the information that will make your life easier, really' + oldest_article = 20 + language = 'en' + max_articles_per_feed = 100 + no_stylesheets = True + use_embedded_content = False + publisher = 'Smashing Magazine' + category = 'news, web, IT, css, javascript, html' + encoding = 'utf-8' + + conversion_options = { + 'comments' : description + ,'tags' : category + ,'publisher' : publisher + } + + keep_only_tags = [dict(name='div', attrs={'id':'leftcolumn'})] + remove_tags_after = dict(name='ul',attrs={'class':'social'}) + remove_tags = [ + dict(name=['link','object']) + ,dict(name='h1',attrs={'class':'logo'}) + ,dict(name='div',attrs={'id':'booklogosec'}) + ,dict(attrs={'src':'http://media2.smashingmagazine.com/wp-content/uploads/images/the-smashing-book/smbook6.gif'}) + ] + + feeds = [(u'Articles', u'http://rss1.smashingmagazine.com/feed/')] + + def preprocess_html(self, soup): + for iter in soup.findAll('div',attrs={'class':'leftframe'}): + it = iter.find('h1') + if it == None: + iter.extract() + for item in soup.findAll('img'): + oldParent = item.parent + if oldParent.name == 'a': + oldParent.name = 'div' + return soup diff --git a/src/calibre/web/feeds/recipes/recipe_thestar.py b/src/calibre/web/feeds/recipes/recipe_thestar.py index 99f024e964..5e662441ef 100644 --- a/src/calibre/web/feeds/recipes/recipe_thestar.py +++ b/src/calibre/web/feeds/recipes/recipe_thestar.py @@ -1,47 +1,47 @@ -#!/usr/bin/env python - -__license__ = 'GPL v3' -__copyright__ = '2009, Darko Miletic ' -''' -www.thestar.com -''' - -from calibre.web.feeds.news import BasicNewsRecipe - -class TheTorontoStar(BasicNewsRecipe): - title = 'The Toronto Star' - __author__ = 'Darko Miletic' - description = "Canada's largest daily newspaper" - oldest_article = 2 - language = 'en_CA' - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - publisher = 'The Toronto Star' - category = "Toronto Star,Canada's largest daily newspaper,breaking news,classifieds,careers,GTA,Toronto Maple Leafs,sports,Toronto,news,editorial,The Star,Ontario,information,columnists,business,entertainment,births,deaths,automotive,rentals,weather,archives,Torstar,technology,Joseph Atkinson" - encoding = 'utf-8' - extra_css = ' .headlineArticle{font-size: x-large; font-weight: bold} .navbar{text-align:center} ' - - conversion_options = { - 'comments' : description - ,'tags' : category - ,'publisher' : publisher - } - - keep_only_tags = [dict(name='div', attrs={'id':'AssetWebPart1'})] - remove_attributes= ['style'] - - feeds = [ - (u'News' , u'http://www.thestar.com/rss/0?searchMode=Query&categories=296' ) - ,(u'Opinions' , u'http://www.thestar.com/rss/0?searchMode=Query&categories=311' ) - ,(u'Business' , u'http://www.thestar.com/rss/0?searchMode=Query&categories=294' ) - ,(u'Sports' , u'http://www.thestar.com/rss/0?searchMode=Query&categories=295' ) - ,(u'Entertainment', u'http://www.thestar.com/rss/0?searchMode=Query&categories=296' ) - ,(u'Living' , u'http://www.thestar.com/rss/0?searchMode=Query&categories=296' ) - ,(u'Travel' , u'http://www.thestar.com/rss/82858?searchMode=Lineup' ) - ,(u'Science' , u'http://www.thestar.com/rss/82848?searchMode=Query&categories=300') - ] - - def print_version(self, url): - return url.replace('/article/','/printArticle/') - +#!/usr/bin/env python + +__license__ = 'GPL v3' +__copyright__ = '2009, Darko Miletic ' +''' +www.thestar.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class TheTorontoStar(BasicNewsRecipe): + title = 'The Toronto Star' + __author__ = 'Darko Miletic' + description = "Canada's largest daily newspaper" + oldest_article = 2 + language = 'en_CA' + max_articles_per_feed = 100 + no_stylesheets = True + use_embedded_content = False + publisher = 'The Toronto Star' + category = "Toronto Star,Canada's largest daily newspaper,breaking news,classifieds,careers,GTA,Toronto Maple Leafs,sports,Toronto,news,editorial,The Star,Ontario,information,columnists,business,entertainment,births,deaths,automotive,rentals,weather,archives,Torstar,technology,Joseph Atkinson" + encoding = 'utf-8' + extra_css = ' .headlineArticle{font-size: x-large; font-weight: bold} .navbar{text-align:center} ' + + conversion_options = { + 'comments' : description + ,'tags' : category + ,'publisher' : publisher + } + + keep_only_tags = [dict(name='div', attrs={'id':'AssetWebPart1'})] + remove_attributes= ['style'] + + feeds = [ + (u'News' , u'http://www.thestar.com/rss/0?searchMode=Query&categories=296' ) + ,(u'Opinions' , u'http://www.thestar.com/rss/0?searchMode=Query&categories=311' ) + ,(u'Business' , u'http://www.thestar.com/rss/0?searchMode=Query&categories=294' ) + ,(u'Sports' , u'http://www.thestar.com/rss/0?searchMode=Query&categories=295' ) + ,(u'Entertainment', u'http://www.thestar.com/rss/0?searchMode=Query&categories=296' ) + ,(u'Living' , u'http://www.thestar.com/rss/0?searchMode=Query&categories=296' ) + ,(u'Travel' , u'http://www.thestar.com/rss/82858?searchMode=Lineup' ) + ,(u'Science' , u'http://www.thestar.com/rss/82848?searchMode=Query&categories=300') + ] + + def print_version(self, url): + return url.replace('/article/','/printArticle/') + diff --git a/src/calibre/web/fetch/simple.py b/src/calibre/web/fetch/simple.py index fdf4e81095..27ac735053 100644 --- a/src/calibre/web/fetch/simple.py +++ b/src/calibre/web/fetch/simple.py @@ -41,10 +41,16 @@ class closing(object): _browser_lock = RLock() +bad_url_counter = 0 def basename(url): - parts = urlparse.urlsplit(url) - path = url2pathname(parts.path) - res = os.path.basename(path) + try: + parts = urlparse.urlsplit(url) + path = url2pathname(parts.path) + res = os.path.basename(path) + except: + global bad_url_counter + bad_url_counter += 1 + return 'bad_url_%d.html'%bad_url_counter if not os.path.splitext(res)[1]: return 'index.html' return res