mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Sync to trunk.
This commit is contained in:
commit
b79be74761
BIN
resources/images/news/variety.png
Normal file
BIN
resources/images/news/variety.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 332 B |
@ -12,7 +12,7 @@ from calibre.web.feeds.news import BasicNewsRecipe
|
||||
class DailyTelegraph(BasicNewsRecipe):
|
||||
title = u'Daily Telegraph'
|
||||
__author__ = u'AprilHare'
|
||||
language = 'en'
|
||||
language = 'en_AU'
|
||||
|
||||
description = u'News from down under'
|
||||
oldest_article = 2
|
||||
@ -45,4 +45,4 @@ class DailyTelegraph(BasicNewsRecipe):
|
||||
(u'NRL', u'http://feeds.news.com.au/public/rss/2.0/dtele_sports_nrl_345.xml'),
|
||||
(u'Rugby Union', u'http://feeds.news.com.au/public/rss/2.0/dtele_sports_rugby_union_342.xml'),
|
||||
(u'Soccer', u'http://feeds.news.com.au/public/rss/2.0/dtele_sports_soccer_344.xml')
|
||||
]
|
||||
]
|
||||
|
@ -87,4 +87,6 @@ class Economist(BasicNewsRecipe):
|
||||
feeds[key].append(article)
|
||||
|
||||
ans = [(key, feeds[key]) for key in ans if feeds.has_key(key)]
|
||||
if not ans:
|
||||
raise Exception('Could not find any articles. Has your subscription expired?')
|
||||
return ans
|
||||
|
@ -10,57 +10,116 @@ from calibre.web.feeds.news import BasicNewsRecipe
|
||||
|
||||
class ElUniversal(BasicNewsRecipe):
|
||||
title = 'El Universal'
|
||||
__author__ = 'Darko Miletic'
|
||||
__author__ = 'Darko Miletic and Sujata Raman'
|
||||
description = 'News from Mexico'
|
||||
oldest_article = 1
|
||||
max_articles_per_feed = 100
|
||||
publisher = 'El Universal'
|
||||
category = 'news, politics, Mexico'
|
||||
category = 'news, politics, Mexico'
|
||||
no_stylesheets = True
|
||||
use_embedded_content = False
|
||||
encoding = 'cp1252'
|
||||
remove_javascript = True
|
||||
language = 'es'
|
||||
|
||||
|
||||
html2lrf_options = [
|
||||
'--comment', description
|
||||
, '--category', category
|
||||
, '--publisher', publisher
|
||||
, '--ignore-tables'
|
||||
]
|
||||
|
||||
html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"\nlinearize_tables=True'
|
||||
extra_css = '''
|
||||
body{font-family:Arial,Helvetica,sans-serif; font-size:x-small;}
|
||||
.geoGris30{font-family:Georgia,"Times New Roman",Times,serif; font-size:large; color:#003366; font-weight:bold;}
|
||||
.arnegro16{font-family:Georgia,"Times New Roman",Times,serif; font-weight:bold; font-size:small;}
|
||||
.tbazull2{font-family:"trebuchet ms",Arial,Helvetica,sans-serif; color:#336699; font-size:xx-small;}
|
||||
.tbgrisf11{font-family:"trebuchet ms",Arial,Helvetica,sans-serif; color: #666666; font-size:xx-small;}
|
||||
.verrojo13{font-family:"trebuchet ms",Arial,Helvetica,sans-serif; color: #CC0033; font-size:xx-small;}
|
||||
.trnegro13{font-family:"trebuchet ms",Arial,Helvetica,sans-serif; font-size:xx-small;}
|
||||
.txt-fotogaleria{font-family:"trebuchet ms",Arial,Helvetica,sans-serif; font-size:xx-small;}
|
||||
'''
|
||||
keep_only_tags = [ dict(name='table', attrs={'width':"633"}),dict(name='table', attrs={'width':"629"}),]
|
||||
|
||||
remove_tags = [dict(name='link')]
|
||||
|
||||
feeds = [
|
||||
remove_tags = [
|
||||
dict(name='table', attrs={'bgcolor':"#f5f5f5"}),
|
||||
dict(name='td', attrs={'bgcolor':"#f7f8f9"}),
|
||||
dict(name='td', attrs={'bgcolor':"#f5f5f5"}),
|
||||
dict(name='table', attrs={'width':"302"}),
|
||||
dict(name='table', attrs={'width':"214"}),
|
||||
dict(name='table', attrs={'width':"112"}),
|
||||
dict(name='table', attrs={'width':"980"}),
|
||||
dict(name='td', attrs={'height':"1"}),
|
||||
dict(name='td', attrs={'height':"4"}),
|
||||
dict(name='td', attrs={'height':"20"}),
|
||||
dict(name='td', attrs={'height':"10"}),
|
||||
dict(name='td', attrs={'class':["trrojo11","trbris11","trrojo12","arrojo12s","tbazul13"]}),
|
||||
dict(name='div', attrs={'id':["mapg","ver_off_todosloscom","todosloscom"]}),
|
||||
dict(name='span', attrs={'class':["trazul18b","trrojo11","trnaranja11","trbris11","georojo18b","geogris18"]}),
|
||||
dict(name='span', attrs={'class':["detalles-opinion"]}),
|
||||
dict(name='a', attrs={'class':["arnaranja12b","trbris11","arazul12rel","trrojo10"]}),
|
||||
dict(name='img', src = "/img/icono_imprimir.gif"),
|
||||
dict(name='img', src = "/img/icono_enviar_mail.gif"),
|
||||
dict(name='img', src = "/img/icono_fuente_g.gif"),
|
||||
dict(name='img', src = "/img/icono_fuente_m.gif"),
|
||||
dict(name='img', src = "/img/icono_fuente_c.gif"),
|
||||
dict(name='img', src = "/img/icono_compartir.gif"),
|
||||
dict(name='img', src = "/img/icono_enviar_coment.gif"),
|
||||
dict(name='img', src = "http://www.eluniversal.com.mx/n_img/bot-notasrel.gif"),
|
||||
dict(name='img', src = "http://www.eluniversal.com.mx/n_img/fr.gif"),
|
||||
dict(name='img', src = "/img/espiral2.gif"),
|
||||
dict(name='img', src = "http://www.eluniversal.com.mx/n_img/b"),
|
||||
dict(name='img', src = "/img/icono_enviar_coment.gifot-notasrel.gif"),
|
||||
dict(name='img', src = "/n_img/icono_tipo3.gif"),
|
||||
dict(name='img', src = "/n_img/icono_tipo2.gif"),
|
||||
dict(name='img', src = "/n_img/icono_print.gif"),
|
||||
dict(name='img', src = "/n_img/icono_mail2.gif"),
|
||||
dict(name='img', src = "/n_img/im-comentarios-2a.gif"),
|
||||
dict(name='img', src = "/n_img/im-comentarios-1a.gif"),
|
||||
dict(name='img', src = "/img/icono_coment.gif"),
|
||||
dict(name='img', src = "http://www.eluniversal.com.mx/n_img/bot-sitiosrel.gif"),
|
||||
dict(name='img', src = "/n_img/icono_tipomenos.gif"),
|
||||
dict(name='img', src = "/img/futbol/19.jpg"),
|
||||
dict(name='img', alt = "Facebook"),
|
||||
dict(name='img', alt = "Twitter"),
|
||||
dict(name='img', alt = "Google"),
|
||||
dict(name='img', alt = "LinkedIn"),
|
||||
dict(name='img', alt = "Viadeo"),
|
||||
dict(name='img', alt = "Digg"),
|
||||
dict(name='img', alt = "Delicious"),
|
||||
dict(name='img', alt = "Meneame"),
|
||||
dict(name='img', alt = "Yahoo"),
|
||||
dict(name='img', alt = "Technorati"),
|
||||
dict(name='a',text =["Compartir","Facebook","Twitter","Google","LinkedIn","Viadeo","Digg","Delicious","Meneame","Yahoo","Technorati"]),
|
||||
dict(name='select'),
|
||||
dict(name='a', attrs={'class':"tbgriscompartir"}),
|
||||
]
|
||||
|
||||
feeds = [
|
||||
(u'Minuto por Minuto', u'http://www.eluniversal.com.mx/rss/universalmxm.xml' )
|
||||
,(u'Mundo' , u'http://www.eluniversal.com.mx/rss/mundo.xml' )
|
||||
,(u'Mexico' , u'http://www.eluniversal.com.mx/rss/mexico.xml' )
|
||||
,(u'Estados' , u'http://www.eluniversal.com.mx/rss/estados.xml' )
|
||||
,(u'Finanzas' , u'http://www.eluniversal.com.mx/rss/finanzas.xml' )
|
||||
,(u'Deportes' , u'http://www.eluniversal.com.mx/rss/deportes.xml' )
|
||||
(u'Deportes' , u'http://www.eluniversal.com.mx/rss/deportes.xml' )
|
||||
,(u'Espectaculos' , u'http://www.eluniversal.com.mx/rss/espectaculos.xml' )
|
||||
,(u'Cultura' , u'http://www.eluniversal.com.mx/rss/cultura.xml' )
|
||||
,(u'Ciencia' , u'http://www.eluniversal.com.mx/rss/ciencia.xml' )
|
||||
,(u'Computacion' , u'http://www.eluniversal.com.mx/rss/computo.xml' )
|
||||
,(u'Sociedad' , u'http://www.eluniversal.com.mx/rss/sociedad.xml' )
|
||||
]
|
||||
|
||||
def print_version(self, url):
|
||||
return url.replace('/notas/','/notas/vi_')
|
||||
|
||||
# def print_version(self, url):
|
||||
# return url.replace('/notas/','/notas/vi_')
|
||||
|
||||
def preprocess_html(self, soup):
|
||||
mtag = '<meta http-equiv="Content-Language" content="es-MX"/><meta http-equiv="Content-Type" content="text/html; charset=utf-8">'
|
||||
soup.head.insert(0,mtag)
|
||||
for item in soup.findAll(style=True):
|
||||
del item['style']
|
||||
for item in soup.findAll(font=True):
|
||||
del item['font']
|
||||
for item in soup.findAll(face=True):
|
||||
del item['face']
|
||||
for item in soup.findAll(helvetica=True):
|
||||
del item['helvetica']
|
||||
return soup
|
||||
|
||||
mtag = '<meta http-equiv="Content-Language" content="es-MX"/><meta http-equiv="Content-Type" content="text/html; charset=utf-8">'
|
||||
soup.head.insert(0,mtag)
|
||||
for tag in soup.findAll(name='td',attrs={'class': 'arazul50'}):
|
||||
tag.insert(0,"<h1>")
|
||||
tag.insert(2,"</h1>")
|
||||
|
||||
return soup
|
||||
|
||||
def postprocess_html(self, soup,first):
|
||||
|
||||
for tag in soup.findAll(name=['table', 'span','i']):
|
||||
tag.name = 'div'
|
||||
for item in soup.findAll(align = "right"):
|
||||
del item['align']
|
||||
|
||||
return soup
|
||||
|
||||
|
@ -14,7 +14,6 @@ class OutlookIndia(BasicNewsRecipe):
|
||||
encoding = 'utf-8'
|
||||
language = 'en_IN'
|
||||
|
||||
recursions = 1
|
||||
extra_css = '''
|
||||
body{font-family:Arial,Helvetica,sans-serif; font-size:xx-small;}
|
||||
.fspheading{color:#AF0E25 ; font-family:"Times New Roman",Times,serif; font-weight:bold ; font-size:large; }
|
||||
|
@ -34,7 +34,8 @@ class USAToday(BasicNewsRecipe):
|
||||
.vaTextBold{font-family:Arial,Helvetica,sans-serif; font-size:x-small;font-weight:bold; color:#666666;}
|
||||
'''
|
||||
remove_tags = [
|
||||
{'class':['tagListLabel','piped-taglist-string',]}
|
||||
{'class':['tagListLabel','piped-taglist-string','socialcontainer','social-wrapper',]},
|
||||
{'id':['topSocialButtons']},
|
||||
]
|
||||
|
||||
conversion_options = { 'linearize_tables' : True }
|
||||
|
46
resources/recipes/variety.recipe
Normal file
46
resources/recipes/variety.recipe
Normal file
@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
__license__ = 'GPL v3'
|
||||
__copyright__ = '2009, Darko Miletic <darko.miletic at gmail.com>'
|
||||
'''
|
||||
www.variety.com
|
||||
'''
|
||||
|
||||
from calibre.web.feeds.recipes import BasicNewsRecipe
|
||||
|
||||
class Variety(BasicNewsRecipe):
|
||||
title = 'Variety'
|
||||
__author__ = 'Darko Miletic'
|
||||
description = 'Breaking entertainment movie news, movie reviews, entertainment industry events, news and reviews from Cannes, Oscars, and Hollywood awards. Featuring box office charts, archives and more.'
|
||||
oldest_article = 2
|
||||
max_articles_per_feed = 100
|
||||
no_stylesheets = True
|
||||
use_embedded_content = False
|
||||
encoding = 'cp1252'
|
||||
publisher = 'Red Business Information'
|
||||
category = 'Entertainment Industry News, Daily Variety, Movie Reviews, TV, Awards, Oscars, Cannes, Box Office, Hollywood'
|
||||
language = 'en'
|
||||
|
||||
conversion_options = {
|
||||
'comments' : description
|
||||
,'tags' : category
|
||||
,'language' : language
|
||||
,'publisher' : publisher
|
||||
}
|
||||
|
||||
remove_tags = [dict(name=['object','link','map'])]
|
||||
|
||||
keep_only_tags = [dict(name='div', attrs={'id':'article'})]
|
||||
|
||||
feeds = [(u'News & Articles', u'http://feeds.feedburner.com/variety/headlines' )]
|
||||
|
||||
def print_version(self, url):
|
||||
rpt = url.rpartition('?')[0]
|
||||
artid = rpt.rpartition('/')[2]
|
||||
catidr = url.rpartition('categoryid=')[2]
|
||||
catid = catidr.partition('&')[0]
|
||||
return 'http://www.variety.com/index.asp?layout=print_story&articleid=' + artid + '&categoryid=' + catid
|
||||
|
||||
def get_article_url(self, article):
|
||||
return article.get('feedburner_origlink', None)
|
||||
|
@ -6,10 +6,9 @@ __license__ = 'GPL v3'
|
||||
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
|
||||
__docformat__ = 'restructuredtext en'
|
||||
|
||||
import os
|
||||
|
||||
from setup.installer import VMInstaller
|
||||
from setup import Command, installer_name
|
||||
from setup import Command
|
||||
|
||||
class Linux32(VMInstaller):
|
||||
|
||||
@ -21,17 +20,12 @@ class Linux32(VMInstaller):
|
||||
FREEZE_COMMAND = 'linux_freeze'
|
||||
|
||||
|
||||
class Linux64(Command):
|
||||
class Linux64(Linux32):
|
||||
|
||||
description = 'Build 64bit linux binary installer'
|
||||
|
||||
sub_commands = ['linux_freeze']
|
||||
|
||||
def run(self, opts):
|
||||
installer = installer_name('tar.bz2', True)
|
||||
if not os.path.exists(installer):
|
||||
raise Exception('Failed to build installer '+installer)
|
||||
return os.path.basename(installer)
|
||||
VM_NAME = 'gentoo64_build'
|
||||
VM = '/vmware/bin/gentoo64_build'
|
||||
IS_64_BIT = True
|
||||
|
||||
class Linux(Command):
|
||||
|
||||
|
@ -2,7 +2,7 @@ __license__ = 'GPL v3'
|
||||
__copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net'
|
||||
__docformat__ = 'restructuredtext en'
|
||||
__appname__ = 'calibre'
|
||||
__version__ = '0.6.19'
|
||||
__version__ = '0.6.20'
|
||||
__author__ = "Kovid Goyal <kovid@kovidgoyal.net>"
|
||||
|
||||
import re
|
||||
|
@ -371,6 +371,7 @@ from calibre.devices.prs505.driver import PRS505
|
||||
from calibre.devices.prs700.driver import PRS700
|
||||
from calibre.devices.android.driver import ANDROID
|
||||
from calibre.devices.eslick.driver import ESLICK
|
||||
from calibre.devices.nuut2.driver import NUUT2
|
||||
|
||||
plugins = [HTML2ZIP]
|
||||
plugins += [
|
||||
@ -425,7 +426,8 @@ plugins += [
|
||||
CYBOOK_OPUS,
|
||||
COOL_ER,
|
||||
SHINEBOOK,
|
||||
ESLICK
|
||||
ESLICK,
|
||||
NUUT2
|
||||
]
|
||||
plugins += [x for x in list(locals().values()) if isinstance(x, type) and \
|
||||
x.__name__.endswith('MetadataReader')]
|
||||
|
@ -157,6 +157,16 @@ def add_simple_plugin(path_to_plugin):
|
||||
def main(args=sys.argv):
|
||||
from calibre.constants import debug
|
||||
debug()
|
||||
if len(args) > 2 and args[1] in ('-e', '--exec-file'):
|
||||
sys.argv = [args[2]] + args[3:]
|
||||
ef = os.path.abspath(args[2])
|
||||
base = os.path.dirname(ef)
|
||||
sys.path.insert(0, base)
|
||||
g = globals()
|
||||
g['__name__'] = '__main__'
|
||||
execfile(ef, g)
|
||||
return
|
||||
|
||||
opts, args = option_parser().parse_args(args)
|
||||
if opts.gui:
|
||||
from calibre.gui2.main import main
|
||||
@ -164,13 +174,6 @@ def main(args=sys.argv):
|
||||
elif opts.command:
|
||||
sys.argv = args[:1]
|
||||
exec opts.command
|
||||
elif opts.exec_file:
|
||||
sys.argv = args
|
||||
base = os.path.dirname(os.path.abspath(opts.exec_file))
|
||||
sys.path.insert(0, base)
|
||||
g = globals()
|
||||
g['__name__'] = '__main__'
|
||||
execfile(opts.exec_file, g)
|
||||
elif opts.debug_device_driver:
|
||||
debug_device_driver()
|
||||
elif opts.migrate:
|
||||
|
2
src/calibre/devices/nuut2/__init__.py
Executable file
2
src/calibre/devices/nuut2/__init__.py
Executable file
@ -0,0 +1,2 @@
|
||||
__license__ = 'GPL v3'
|
||||
__copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
|
40
src/calibre/devices/nuut2/driver.py
Normal file
40
src/calibre/devices/nuut2/driver.py
Normal file
@ -0,0 +1,40 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
__license__ = 'GPL v3'
|
||||
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
|
||||
__docformat__ = 'restructuredtext en'
|
||||
|
||||
'''
|
||||
Device driver for the Nuut2
|
||||
'''
|
||||
|
||||
from calibre.devices.usbms.driver import USBMS
|
||||
|
||||
class NUUT2(USBMS):
|
||||
|
||||
name = 'Nuut2 Device Interface'
|
||||
gui_name = 'NeoLux Nuut2'
|
||||
description = _('Communicate with the Nuut2 eBook reader.')
|
||||
author = _('Kovid Goyal')
|
||||
supported_platforms = ['windows', 'osx', 'linux']
|
||||
|
||||
# Ordered list of supported formats
|
||||
FORMATS = ['epub', 'pdft', 'txt']
|
||||
DRM_FORMATS = ['epub']
|
||||
|
||||
VENDOR_ID = [0x140e]
|
||||
PRODUCT_ID = [0xb055]
|
||||
BCD = [0x318]
|
||||
|
||||
VENDOR_NAME = 'NEOLUX'
|
||||
WINDOWS_MAIN_MEM = 'NUUT2'
|
||||
|
||||
OSX_MAIN_MEM = 'NEXTPPRS MASS STORAGE Media'
|
||||
|
||||
MAIN_MEMORY_VOLUME_LABEL = 'NUUT2 Main Memory'
|
||||
STORAGE_CARD_VOLUME_LABEL = 'NUUT2 Storage Card'
|
||||
|
||||
EBOOK_DIR_MAIN = 'books'
|
||||
SUPPORTS_SUB_DIRS = True
|
||||
|
||||
|
@ -102,7 +102,6 @@ def render_html(path_to_html, width=590, height=750):
|
||||
page.mainFrame().setScrollBarPolicy(Qt.Horizontal, Qt.ScrollBarAlwaysOff)
|
||||
loop = QEventLoop()
|
||||
renderer = HTMLRenderer(page, loop)
|
||||
|
||||
page.connect(page, SIGNAL('loadFinished(bool)'), renderer,
|
||||
Qt.QueuedConnection)
|
||||
page.mainFrame().load(QUrl.fromLocalFile(path_to_html))
|
||||
|
@ -23,6 +23,7 @@ from calibre.customize.conversion import OptionRecommendation
|
||||
from calibre.constants import islinux
|
||||
from calibre import unicode_path
|
||||
from calibre.utils.localization import get_lang
|
||||
from calibre.utils.filenames import ascii_filename
|
||||
|
||||
class Link(object):
|
||||
'''
|
||||
@ -320,8 +321,8 @@ class HTMLInput(InputFormatPlugin):
|
||||
oeb.logger.warn('Title not specified')
|
||||
metadata.add('title', self.oeb.translate(__('Unknown')))
|
||||
|
||||
bookid = "urn:uuid:%s" % str(uuid.uuid4())
|
||||
metadata.add('identifier', bookid, id='calibre-uuid')
|
||||
bookid = str(uuid.uuid4())
|
||||
metadata.add('identifier', bookid, id='uuid_id', scheme='uuid')
|
||||
for ident in metadata.identifier:
|
||||
if 'id' in ident.attrib:
|
||||
self.oeb.uid = metadata.identifier[0]
|
||||
@ -333,9 +334,11 @@ class HTMLInput(InputFormatPlugin):
|
||||
htmlfile_map = {}
|
||||
for f in filelist:
|
||||
path = f.path
|
||||
print 111, path, repr(path), repr(os.path.dirname(path))
|
||||
oeb.container = DirContainer(os.path.dirname(path), log)
|
||||
bname = os.path.basename(path)
|
||||
id, href = oeb.manifest.generate(id='html', href=bname)
|
||||
id, href = oeb.manifest.generate(id='html',
|
||||
href=ascii_filename(bname))
|
||||
htmlfile_map[path] = href
|
||||
item = oeb.manifest.add(id, href, 'text/html')
|
||||
item.html_input_href = bname
|
||||
@ -409,6 +412,9 @@ class HTMLInput(InputFormatPlugin):
|
||||
link = os.path.abspath(link)
|
||||
if not os.access(link, os.R_OK):
|
||||
return link_
|
||||
if os.path.isdir(link):
|
||||
self.log.warn(link_, 'is a link to a directory. Ignoring.')
|
||||
return link_
|
||||
if not islinux:
|
||||
link = link.lower()
|
||||
if link not in self.added_resources:
|
||||
|
@ -11,16 +11,15 @@ from PyQt4.Qt import QUrl, QApplication, QSize, QEventLoop, \
|
||||
SIGNAL, QPainter, QImage, QObject, Qt
|
||||
from PyQt4.QtWebKit import QWebPage
|
||||
|
||||
|
||||
class HTMLTableRenderer(QObject):
|
||||
|
||||
def __init__(self, html, base_dir, width, height, dpi, factor):
|
||||
'''
|
||||
`width, height`: page width and height in pixels
|
||||
`base_dir`: The directory in which the HTML file that contains the table resides
|
||||
`base_dir`: The directory in which the HTML file that contains the table resides
|
||||
'''
|
||||
QObject.__init__(self)
|
||||
|
||||
|
||||
self.app = None
|
||||
self.width, self.height, self.dpi = width, height, dpi
|
||||
self.base_dir = base_dir
|
||||
@ -30,10 +29,10 @@ class HTMLTableRenderer(QObject):
|
||||
self.page = QWebPage()
|
||||
self.connect(self.page, SIGNAL('loadFinished(bool)'), self.render_html)
|
||||
self.page.mainFrame().setTextSizeMultiplier(factor)
|
||||
self.page.mainFrame().setHtml(html,
|
||||
self.page.mainFrame().setHtml(html,
|
||||
QUrl('file:'+os.path.abspath(self.base_dir)))
|
||||
|
||||
|
||||
|
||||
|
||||
def render_html(self, ok):
|
||||
try:
|
||||
if not ok:
|
||||
@ -61,7 +60,7 @@ class HTMLTableRenderer(QObject):
|
||||
self.images.append((f, img.width(), img.height()))
|
||||
finally:
|
||||
QApplication.quit()
|
||||
|
||||
|
||||
def render_table(soup, table, css, base_dir, width, height, dpi, factor=1.0):
|
||||
head = ''
|
||||
for e in soup.findAll(['link', 'style']):
|
||||
@ -85,10 +84,11 @@ def render_table(soup, table, css, base_dir, width, height, dpi, factor=1.0):
|
||||
images, tdir = do_render(html, base_dir, width, height, dpi, factor)
|
||||
atexit.register(shutil.rmtree, tdir)
|
||||
return images
|
||||
|
||||
|
||||
def do_render(html, base_dir, width, height, dpi, factor):
|
||||
if QApplication.instance() is None:
|
||||
QApplication([])
|
||||
from calibre.gui2 import is_ok_to_use_qt
|
||||
if not is_ok_to_use_qt():
|
||||
raise Exception('Not OK to use Qt')
|
||||
tr = HTMLTableRenderer(html, base_dir, width, height, dpi, factor)
|
||||
tr.loop.exec_()
|
||||
return tr.images, tr.tdir
|
||||
return tr.images, tr.tdir
|
||||
|
@ -218,7 +218,7 @@ class MetaInformation(object):
|
||||
'isbn', 'tags', 'cover_data', 'application_id', 'guide',
|
||||
'manifest', 'spine', 'toc', 'cover', 'language',
|
||||
'book_producer', 'timestamp', 'lccn', 'lcc', 'ddc',
|
||||
'pubdate', 'rights', 'publication_type'):
|
||||
'pubdate', 'rights', 'publication_type', 'uuid'):
|
||||
if hasattr(mi, attr):
|
||||
setattr(ans, attr, getattr(mi, attr))
|
||||
|
||||
@ -244,7 +244,7 @@ class MetaInformation(object):
|
||||
'series', 'series_index', 'rating', 'isbn', 'language',
|
||||
'application_id', 'manifest', 'toc', 'spine', 'guide', 'cover',
|
||||
'book_producer', 'timestamp', 'lccn', 'lcc', 'ddc', 'pubdate',
|
||||
'rights', 'publication_type',
|
||||
'rights', 'publication_type', 'uuid',
|
||||
):
|
||||
setattr(self, x, getattr(mi, x, None))
|
||||
|
||||
@ -264,7 +264,7 @@ class MetaInformation(object):
|
||||
'isbn', 'application_id', 'manifest', 'spine', 'toc',
|
||||
'cover', 'language', 'guide', 'book_producer',
|
||||
'timestamp', 'lccn', 'lcc', 'ddc', 'pubdate', 'rights',
|
||||
'publication_type'):
|
||||
'publication_type', 'uuid',):
|
||||
if hasattr(mi, attr):
|
||||
val = getattr(mi, attr)
|
||||
if val is not None:
|
||||
|
@ -432,6 +432,9 @@ class OPF(object):
|
||||
identifier_path = XPath('descendant::*[re:match(name(), "identifier", "i")]')
|
||||
application_id_path = XPath('descendant::*[re:match(name(), "identifier", "i") and '+
|
||||
'(re:match(@opf:scheme, "calibre|libprs500", "i") or re:match(@scheme, "calibre|libprs500", "i"))]')
|
||||
uuid_id_path = XPath('descendant::*[re:match(name(), "identifier", "i") and '+
|
||||
'(re:match(@opf:scheme, "uuid", "i") or re:match(@scheme, "uuid", "i"))]')
|
||||
|
||||
manifest_path = XPath('descendant::*[re:match(name(), "manifest", "i")]/*[re:match(name(), "item", "i")]')
|
||||
manifest_ppath = XPath('descendant::*[re:match(name(), "manifest", "i")]')
|
||||
spine_path = XPath('descendant::*[re:match(name(), "spine", "i")]/*[re:match(name(), "itemref", "i")]')
|
||||
@ -747,6 +750,25 @@ class OPF(object):
|
||||
|
||||
return property(fget=fget, fset=fset)
|
||||
|
||||
@dynamic_property
|
||||
def uuid(self):
|
||||
|
||||
def fget(self):
|
||||
for match in self.uuid_id_path(self.metadata):
|
||||
return self.get_text(match) or None
|
||||
|
||||
def fset(self, val):
|
||||
matches = self.uuid_id_path(self.metadata)
|
||||
if not matches:
|
||||
attrib = {'{%s}scheme'%self.NAMESPACES['opf']: 'uuid'}
|
||||
matches = [self.create_metadata_element('identifier',
|
||||
attrib=attrib)]
|
||||
self.set_text(matches[0], unicode(val))
|
||||
|
||||
return property(fget=fget, fset=fset)
|
||||
|
||||
|
||||
|
||||
@dynamic_property
|
||||
def book_producer(self):
|
||||
|
||||
@ -977,6 +999,9 @@ def metadata_to_opf(mi, as_string=True):
|
||||
if not mi.application_id:
|
||||
mi.application_id = str(uuid.uuid4())
|
||||
|
||||
if not mi.uuid:
|
||||
mi.uuid = str(uuid.uuid4())
|
||||
|
||||
if not mi.book_producer:
|
||||
mi.book_producer = __appname__ + ' (%s) '%__version__ + \
|
||||
'[http://calibre-ebook.com]'
|
||||
@ -986,13 +1011,14 @@ def metadata_to_opf(mi, as_string=True):
|
||||
|
||||
root = etree.fromstring(textwrap.dedent(
|
||||
'''
|
||||
<package xmlns="http://www.idpf.org/2007/opf" unique-identifier="%(a)s_id">
|
||||
<package xmlns="http://www.idpf.org/2007/opf" unique-identifier="uuid_id">
|
||||
<metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf">
|
||||
<dc:identifier opf:scheme="%(a)s" id="%(a)s_id">%(id)s</dc:identifier>
|
||||
<dc:identifier opf:scheme="uuid" id="uuid_id">%(uuid)s</dc:identifier>
|
||||
</metadata>
|
||||
<guide/>
|
||||
</package>
|
||||
'''%dict(a=__appname__, id=mi.application_id)))
|
||||
'''%dict(a=__appname__, id=mi.application_id, uuid=mi.uuid)))
|
||||
metadata = root[0]
|
||||
guide = root[1]
|
||||
metadata[0].tail = '\n'+(' '*8)
|
||||
|
@ -114,6 +114,8 @@ class OEBReader(object):
|
||||
except etree.XMLSyntaxError:
|
||||
data = re.sub(r'(?is)<tours>.+</tours>', '', data)
|
||||
self.logger.warn('OPF contains invalid tours section')
|
||||
data = data.replace('<dc-metadata>',
|
||||
'<dc-metadata xmlns:dc="http://purl.org/metadata/dublin_core">')
|
||||
opf = etree.fromstring(data)
|
||||
|
||||
ns = namespace(opf.tag)
|
||||
@ -139,10 +141,9 @@ class OEBReader(object):
|
||||
mi.book_producer = '%(a)s (%(v)s) [http://%(a)s.kovidgoyal.net]'%\
|
||||
dict(a=__appname__, v=__version__)
|
||||
meta_info_to_oeb_metadata(mi, self.oeb.metadata, self.logger)
|
||||
bookid = "urn:uuid:%s" % str(uuid.uuid4()) if mi.application_id is None \
|
||||
else mi.application_id
|
||||
self.oeb.metadata.add('identifier', bookid, id='calibre-uuid')
|
||||
self.oeb.uid = self.oeb.metadata.identifier[0]
|
||||
self.oeb.metadata.add('identifier', str(uuid.uuid4()), id='uuid_id',
|
||||
scheme='uuid')
|
||||
self.oeb.uid = self.oeb.metadata.identifier[-1]
|
||||
|
||||
def _manifest_prune_invalid(self):
|
||||
'''
|
||||
|
@ -6,14 +6,14 @@ __license__ = 'GPL v3'
|
||||
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
|
||||
__docformat__ = 'restructuredtext en'
|
||||
|
||||
from calibre.ebooks.oeb.base import OEB_DOCS, XPath
|
||||
from calibre.ebooks.oeb.base import OEB_DOCS, XPath, XHTML
|
||||
|
||||
class LinearizeTables(object):
|
||||
|
||||
def linearize(self, root):
|
||||
for x in XPath('//h:table|//h:td|//h:tr|//h:th|//h:caption|'
|
||||
'//h:tbody|//h:tfoot|//h:thead|//h:colgroup|//h:col')(root):
|
||||
x.tag = 'div'
|
||||
x.tag = XHTML('div')
|
||||
for attr in ('style', 'font', 'valign',
|
||||
'colspan', 'width', 'height',
|
||||
'rowspan', 'summary', 'align',
|
||||
|
@ -80,12 +80,19 @@ class MergeMetadata(object):
|
||||
def __call__(self, oeb, mi, opts):
|
||||
self.oeb, self.log = oeb, oeb.log
|
||||
m = self.oeb.metadata
|
||||
meta_info_to_oeb_metadata(mi, m, oeb.log)
|
||||
self.log('Merging user specified metadata...')
|
||||
meta_info_to_oeb_metadata(mi, m, oeb.log)
|
||||
cover_id = self.set_cover(mi, opts.prefer_metadata_cover)
|
||||
m.clear('cover')
|
||||
if cover_id is not None:
|
||||
m.add('cover', cover_id)
|
||||
if mi.uuid is not None:
|
||||
m.filter('identifier', lambda x:x.id=='uuid_id')
|
||||
self.oeb.metadata.add('identifier', mi.uuid, id='uuid_id',
|
||||
scheme='uuid')
|
||||
self.oeb.uid = self.oeb.metadata.identifier[-1]
|
||||
|
||||
|
||||
|
||||
|
||||
def set_cover(self, mi, prefer_metadata_cover):
|
||||
|
@ -18,7 +18,6 @@ from PyQt4.QtGui import QColor
|
||||
from PyQt4.QtGui import QImage
|
||||
from PyQt4.QtGui import QPainter
|
||||
from PyQt4.QtSvg import QSvgRenderer
|
||||
from PyQt4.QtGui import QApplication
|
||||
from calibre.ebooks.oeb.base import XHTML, XLINK
|
||||
from calibre.ebooks.oeb.base import SVG_MIME, PNG_MIME
|
||||
from calibre.ebooks.oeb.base import xml2str, xpath
|
||||
@ -30,8 +29,9 @@ KEEP_ATTRS = set(['class', 'style', 'width', 'height', 'align'])
|
||||
|
||||
class SVGRasterizer(object):
|
||||
def __init__(self):
|
||||
if QApplication.instance() is None:
|
||||
QApplication([])
|
||||
from calibre.gui2 import is_ok_to_use_qt
|
||||
if not is_ok_to_use_qt():
|
||||
raise Exception('Not OK to use Qt')
|
||||
|
||||
@classmethod
|
||||
def config(cls, cfg):
|
||||
|
@ -18,7 +18,7 @@ from calibre.ebooks.metadata import authors_to_string
|
||||
|
||||
from PyQt4 import QtCore
|
||||
from PyQt4.Qt import QUrl, QEventLoop, SIGNAL, QObject, \
|
||||
QApplication, QPrinter, QMetaObject, QSizeF, Qt
|
||||
QPrinter, QMetaObject, QSizeF, Qt
|
||||
from PyQt4.QtWebKit import QWebView
|
||||
|
||||
from pyPdf import PdfFileWriter, PdfFileReader
|
||||
@ -37,8 +37,9 @@ class PDFMetadata(object):
|
||||
|
||||
class PDFWriter(QObject):
|
||||
def __init__(self, opts, log):
|
||||
if QApplication.instance() is None:
|
||||
QApplication([])
|
||||
from calibre.gui2 import is_ok_to_use_qt
|
||||
if not is_ok_to_use_qt():
|
||||
raise Exception('Not OK to use Qt')
|
||||
QObject.__init__(self)
|
||||
|
||||
self.logger = log
|
||||
|
@ -130,7 +130,7 @@ class CopyButton(QPushButton):
|
||||
return
|
||||
except:
|
||||
pass
|
||||
return QPushButton.event(self, ev)
|
||||
QPushButton.keyPressEvent(self, ev)
|
||||
|
||||
|
||||
def keyReleaseEvent(self, ev):
|
||||
@ -139,7 +139,7 @@ class CopyButton(QPushButton):
|
||||
return
|
||||
except:
|
||||
pass
|
||||
return QPushButton.event(self, ev)
|
||||
QPushButton.keyReleaseEvent(self, ev)
|
||||
|
||||
def mouseReleaseEvent(self, ev):
|
||||
ev.accept()
|
||||
@ -528,12 +528,14 @@ class Application(QApplication):
|
||||
if set_qt_translator(self._translator):
|
||||
self.installTranslator(self._translator)
|
||||
|
||||
_store_app = None
|
||||
|
||||
def is_ok_to_use_qt():
|
||||
global gui_thread
|
||||
global gui_thread, _store_app
|
||||
if islinux and ':' not in os.environ.get('DISPLAY', ''):
|
||||
return False
|
||||
if QApplication.instance() is None:
|
||||
QApplication([])
|
||||
if _store_app is None and QApplication.instance() is None:
|
||||
_store_app = QApplication([])
|
||||
if gui_thread is None:
|
||||
gui_thread = QThread.currentThread()
|
||||
return gui_thread is QThread.currentThread()
|
||||
|
@ -98,7 +98,7 @@ class FontKeyChooser(QDialog, Ui_Dialog):
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
from PyQt4.Qt import QApplication
|
||||
QApplication([])
|
||||
from calibre.gui2 import is_ok_to_use_qt
|
||||
is_ok_to_use_qt()
|
||||
d = FontKeyChooser()
|
||||
d.exec_()
|
||||
|
@ -20,9 +20,9 @@ if pictureflow is not None:
|
||||
class EmptyImageList(pictureflow.FlowImages):
|
||||
def __init__(self):
|
||||
pictureflow.FlowImages.__init__(self)
|
||||
|
||||
|
||||
class FileSystemImages(pictureflow.FlowImages):
|
||||
|
||||
|
||||
def __init__(self, dirpath):
|
||||
pictureflow.FlowImages.__init__(self)
|
||||
self.images = []
|
||||
@ -33,58 +33,58 @@ if pictureflow is not None:
|
||||
if not img.isNull():
|
||||
self.images.append(img)
|
||||
self.captions.append(os.path.basename(f))
|
||||
|
||||
|
||||
def count(self):
|
||||
return len(self.images)
|
||||
|
||||
|
||||
def image(self, index):
|
||||
return self.images[index]
|
||||
|
||||
|
||||
def caption(self, index):
|
||||
return self.captions[index]
|
||||
|
||||
|
||||
def currentChanged(self, index):
|
||||
print 'current changed:', index
|
||||
|
||||
|
||||
class DatabaseImages(pictureflow.FlowImages):
|
||||
|
||||
|
||||
def __init__(self, model, buffer=20):
|
||||
pictureflow.FlowImages.__init__(self)
|
||||
self.model = model
|
||||
QObject.connect(self.model, SIGNAL('modelReset()'), self.reset)
|
||||
|
||||
|
||||
def count(self):
|
||||
return self.model.count()
|
||||
|
||||
|
||||
def caption(self, index):
|
||||
return self.model.title(index)
|
||||
|
||||
|
||||
def reset(self):
|
||||
self.emit(SIGNAL('dataChanged()'))
|
||||
|
||||
|
||||
def image(self, index):
|
||||
return self.model.cover(index)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class CoverFlow(pictureflow.PictureFlow):
|
||||
|
||||
|
||||
def __init__(self, height=300, parent=None, text_height=25):
|
||||
pictureflow.PictureFlow.__init__(self, parent,
|
||||
pictureflow.PictureFlow.__init__(self, parent,
|
||||
config['cover_flow_queue_length']+1)
|
||||
self.setSlideSize(QSize(int(2/3. * height), height))
|
||||
self.setMinimumSize(QSize(int(2.35*0.67*height), (5/3.)*height+text_height))
|
||||
self.setFocusPolicy(Qt.WheelFocus)
|
||||
self.setSizePolicy(QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum))
|
||||
|
||||
|
||||
def wheelEvent(self, ev):
|
||||
ev.accept()
|
||||
if ev.delta() < 0:
|
||||
self.showNext()
|
||||
elif ev.delta() > 0:
|
||||
self.showPrevious()
|
||||
|
||||
|
||||
|
||||
|
||||
else:
|
||||
CoverFlow = None
|
||||
DatabaseImages = None
|
||||
@ -105,7 +105,7 @@ if __name__ == '__main__':
|
||||
cf.setImages(model)
|
||||
cf.connect(cf, SIGNAL('currentChanged(int)'), model.currentChanged)
|
||||
w.setCentralWidget(cf)
|
||||
|
||||
|
||||
w.show()
|
||||
cf.setFocus(Qt.OtherFocusReason)
|
||||
sys.exit(app.exec_())
|
||||
|
@ -325,13 +325,15 @@ class EmailAccounts(QAbstractTableModel):
|
||||
|
||||
class ConfigDialog(ResizableDialog, Ui_Dialog):
|
||||
|
||||
def category_current_changed(self, n, p):
|
||||
self.stackedWidget.setCurrentIndex(n.row())
|
||||
|
||||
def __init__(self, window, db, server=None):
|
||||
ResizableDialog.__init__(self, window)
|
||||
self.ICON_SIZES = {0:QSize(48, 48), 1:QSize(32,32), 2:QSize(24,24)}
|
||||
self._category_model = CategoryModel()
|
||||
|
||||
self.category_view.currentChanged = \
|
||||
lambda n, p: self.stackedWidget.setCurrentIndex(n.row())
|
||||
self.category_view.currentChanged = self.category_current_changed
|
||||
self.category_view.setModel(self._category_model)
|
||||
self.db = db
|
||||
self.server = server
|
||||
@ -814,6 +816,6 @@ if __name__ == '__main__':
|
||||
from PyQt4.Qt import QApplication
|
||||
app = QApplication([])
|
||||
d=ConfigDialog(None, LibraryDatabase2('/tmp'))
|
||||
d.category_view.setCurrentIndex(d.category_view.model().index(2))
|
||||
d.category_view.setCurrentIndex(d.category_view.model().index(0))
|
||||
d.show()
|
||||
app.exec_()
|
||||
|
@ -9,7 +9,7 @@ Scheduler for automated recipe downloads
|
||||
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from PyQt4.Qt import QDialog, QApplication, SIGNAL, Qt, QTime, QObject, QMenu, \
|
||||
from PyQt4.Qt import QDialog, SIGNAL, Qt, QTime, QObject, QMenu, \
|
||||
QAction, QIcon, QMutex, QTimer
|
||||
|
||||
from calibre.gui2.dialogs.scheduler_ui import Ui_Dialog
|
||||
@ -306,7 +306,8 @@ class Scheduler(QObject):
|
||||
self.download(urn)
|
||||
|
||||
if __name__ == '__main__':
|
||||
QApplication([])
|
||||
from calibre.gui2 import is_ok_to_use_qt
|
||||
is_ok_to_use_qt()
|
||||
from calibre.library.database2 import LibraryDatabase2
|
||||
d = SchedulerDialog(RecipeModel(LibraryDatabase2('/home/kovid/documents/library')))
|
||||
d.exec_()
|
||||
|
@ -251,7 +251,7 @@ class %(classname)s(%(base_class)s):
|
||||
def add_builtin_recipe(self):
|
||||
from calibre.web.feeds.recipes.collection import \
|
||||
get_builtin_recipe_by_title, get_builtin_recipe_titles
|
||||
items = get_builtin_recipe_titles()
|
||||
items = sorted(get_builtin_recipe_titles())
|
||||
|
||||
|
||||
title, ok = QInputDialog.getItem(self, _('Pick recipe'), _('Pick the recipe to customize'),
|
||||
@ -259,15 +259,15 @@ class %(classname)s(%(base_class)s):
|
||||
if ok:
|
||||
title = unicode(title)
|
||||
profile = get_builtin_recipe_by_title(title)
|
||||
if self._model.has_title(title):
|
||||
if question_dialog(self, _('Replace recipe?'),
|
||||
_('A custom recipe named %s already exists. Do you want to '
|
||||
'replace it?')%title):
|
||||
self._model.replace_by_title(title, profile)
|
||||
if self._model.has_title(title):
|
||||
if question_dialog(self, _('Replace recipe?'),
|
||||
_('A custom recipe named %s already exists. Do you want to '
|
||||
'replace it?')%title):
|
||||
self._model.replace_by_title(title, profile)
|
||||
else:
|
||||
return
|
||||
else:
|
||||
return
|
||||
else:
|
||||
self.model.add(title, profile)
|
||||
self.model.add(title, profile)
|
||||
|
||||
self.clear()
|
||||
|
||||
@ -314,8 +314,8 @@ class %(classname)s(%(base_class)s):
|
||||
self.source_code.setText('')
|
||||
|
||||
if __name__ == '__main__':
|
||||
from PyQt4.Qt import QApplication
|
||||
QApplication([])
|
||||
from calibre.gui2 import is_ok_to_use_qt
|
||||
is_ok_to_use_qt()
|
||||
from calibre.library.database2 import LibraryDatabase2
|
||||
from calibre.web.feeds.recipes.model import RecipeModel
|
||||
d=UserProfiles(None, RecipeModel(LibraryDatabase2('/home/kovid/documents/library')))
|
||||
|
@ -11,7 +11,7 @@ from Queue import Empty, Queue
|
||||
|
||||
from PyQt4.Qt import QAbstractTableModel, QVariant, QModelIndex, Qt, \
|
||||
QTimer, SIGNAL, QIcon, QDialog, QAbstractItemDelegate, QApplication, \
|
||||
QSize, QStyleOptionProgressBarV2, QString, QStyle
|
||||
QSize, QStyleOptionProgressBarV2, QString, QStyle, QToolTip
|
||||
|
||||
from calibre.utils.ipc.server import Server
|
||||
from calibre.utils.ipc.job import ParallelJob
|
||||
@ -57,6 +57,28 @@ class JobManager(QAbstractTableModel):
|
||||
else:
|
||||
return QVariant(section+1)
|
||||
|
||||
def show_tooltip(self, arg):
|
||||
widget, pos = arg
|
||||
QToolTip.showText(pos, self.get_tooltip())
|
||||
|
||||
def get_tooltip(self):
|
||||
running_jobs = [j for j in self.jobs if j.run_state == j.RUNNING]
|
||||
waiting_jobs = [j for j in self.jobs if j.run_state == j.WAITING]
|
||||
lines = [_('There are %d running jobs:')%len(running_jobs)]
|
||||
for job in running_jobs:
|
||||
desc = job.description
|
||||
if not desc:
|
||||
desc = _('Unknown job')
|
||||
p = 100. if job.is_finished else job.percent
|
||||
lines.append('%s: %.0f%% done'%(desc, p))
|
||||
lines.extend(['', _('There are %d waiting jobs:')%len(waiting_jobs)])
|
||||
for job in waiting_jobs:
|
||||
desc = job.description
|
||||
if not desc:
|
||||
desc = _('Unknown job')
|
||||
lines.append(desc)
|
||||
return '\n'.join(['calibre', '']+ lines)
|
||||
|
||||
def data(self, index, role):
|
||||
try:
|
||||
if role not in (Qt.DisplayRole, Qt.DecorationRole):
|
||||
|
@ -11,7 +11,7 @@ from PyQt4.Qt import Qt, SIGNAL, QObject, QCoreApplication, QUrl, QTimer, \
|
||||
QModelIndex, QPixmap, QColor, QPainter, QMenu, QIcon, \
|
||||
QToolButton, QDialog, QDesktopServices, QFileDialog, \
|
||||
QSystemTrayIcon, QApplication, QKeySequence, QAction, \
|
||||
QMessageBox, QStackedLayout
|
||||
QMessageBox, QStackedLayout, QHelpEvent
|
||||
from PyQt4.QtSvg import QSvgRenderer
|
||||
|
||||
from calibre import prints, patheq
|
||||
@ -89,6 +89,18 @@ class Listener(Thread):
|
||||
except:
|
||||
pass
|
||||
|
||||
class SystemTrayIcon(QSystemTrayIcon):
|
||||
|
||||
def __init__(self, icon, parent):
|
||||
QSystemTrayIcon.__init__(self, icon, parent)
|
||||
|
||||
def event(self, ev):
|
||||
if ev.type() == ev.ToolTip:
|
||||
evh = QHelpEvent(ev)
|
||||
self.emit(SIGNAL('tooltip_requested(PyQt_PyObject)'),
|
||||
(self, evh.globalPos()))
|
||||
return True
|
||||
return QSystemTrayIcon.event(self, ev)
|
||||
|
||||
class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
||||
'The main GUI'
|
||||
@ -144,8 +156,11 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
||||
self.device_connected = False
|
||||
self.viewers = collections.deque()
|
||||
self.content_server = None
|
||||
self.system_tray_icon = QSystemTrayIcon(QIcon(I('library.png')), self)
|
||||
self.system_tray_icon = SystemTrayIcon(QIcon(I('library.png')), self)
|
||||
self.system_tray_icon.setToolTip('calibre')
|
||||
self.connect(self.system_tray_icon,
|
||||
SIGNAL('tooltip_requested(PyQt_PyObject)'),
|
||||
self.job_manager.show_tooltip)
|
||||
if not config['systray_icon']:
|
||||
self.system_tray_icon.hide()
|
||||
else:
|
||||
|
@ -282,9 +282,10 @@ class StatusBar(QStatusBar):
|
||||
|
||||
if __name__ == '__main__':
|
||||
# Used to create the animated status icon
|
||||
from PyQt4.Qt import QApplication, QPainter, QSvgRenderer, QColor
|
||||
from PyQt4.Qt import QPainter, QSvgRenderer, QColor
|
||||
from subprocess import check_call
|
||||
app = QApplication([])
|
||||
from calibre.gui2 import is_ok_to_use_qt
|
||||
is_ok_to_use_qt()
|
||||
|
||||
def create_pixmaps(path, size=16, delta=20):
|
||||
r = QSvgRenderer(path)
|
||||
|
@ -10,7 +10,7 @@ from BeautifulSoup import BeautifulSoup, Tag
|
||||
|
||||
|
||||
from PyQt4 import QtCore
|
||||
from PyQt4.Qt import QUrl, QEventLoop, SIGNAL, QObject, QApplication, Qt, \
|
||||
from PyQt4.Qt import QUrl, QEventLoop, SIGNAL, QObject, Qt, \
|
||||
QPrinter, QPrintPreviewDialog, QPrintDialog, QDialog, QMetaObject, Q_ARG
|
||||
from PyQt4.QtWebKit import QWebView
|
||||
|
||||
@ -18,8 +18,9 @@ PRINTCSS = 'body{width:100%;margin:0;padding:0;font-family:Arial;color:#000;back
|
||||
|
||||
class Printing(QObject):
|
||||
def __init__(self, spine, preview):
|
||||
if QApplication.instance() is None:
|
||||
QApplication([])
|
||||
from calibre.gui2 import is_ok_to_use_qt
|
||||
if not is_ok_to_use_qt():
|
||||
raise Exception('Not OK to use Qt')
|
||||
QObject.__init__(self)
|
||||
self.loop = QEventLoop()
|
||||
|
||||
|
@ -18,7 +18,9 @@ from calibre.library.database2 import LibraryDatabase2
|
||||
from calibre.ebooks.metadata.opf2 import OPFCreator, OPF
|
||||
from calibre.utils.genshi.template import MarkupTemplate
|
||||
|
||||
FIELDS = set(['title', 'authors', 'author_sort', 'publisher', 'rating', 'timestamp', 'size', 'tags', 'comments', 'series', 'series_index', 'formats', 'isbn', 'cover'])
|
||||
FIELDS = set(['title', 'authors', 'author_sort', 'publisher', 'rating',
|
||||
'timestamp', 'size', 'tags', 'comments', 'series', 'series_index',
|
||||
'formats', 'isbn', 'uuid', 'cover'])
|
||||
|
||||
XML_TEMPLATE = '''\
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
@ -26,6 +28,7 @@ XML_TEMPLATE = '''\
|
||||
<py:for each="record in data">
|
||||
<record>
|
||||
<id>${record['id']}</id>
|
||||
<uuid>${record['uuid']}</uuid>
|
||||
<title>${record['title']}</title>
|
||||
<authors sort="${record['author_sort']}">
|
||||
<py:for each="author in record['authors']">
|
||||
@ -71,7 +74,7 @@ STANZA_TEMPLATE='''\
|
||||
<py:for each="record in data">
|
||||
<entry>
|
||||
<title>${record['title']}</title>
|
||||
<id>urn:calibre:${record['id']}</id>
|
||||
<id>urn:calibre:${record['uuid']}</id>
|
||||
<author><name>${record['author_sort']}</name></author>
|
||||
<updated>${record['timestamp'].strftime('%Y-%m-%dT%H:%M:%SZ')}</updated>
|
||||
<link type="application/epub+zip" href="${quote(record['fmt_epub'].replace(sep, '/')).replace('http%3A', 'http:')}" />
|
||||
@ -227,7 +230,7 @@ def command_list(args, dbpath):
|
||||
if not set(fields).issubset(FIELDS):
|
||||
parser.print_help()
|
||||
print
|
||||
print >>sys.stderr, _('Invalid fields. Available fields:'), ','.join(FIELDS)
|
||||
print >>sys.stderr, _('Invalid fields. Available fields:'), ','.join(sorted(FIELDS))
|
||||
return 1
|
||||
|
||||
db = get_db(dbpath, opts)
|
||||
|
@ -59,7 +59,7 @@ copyfile = os.link if hasattr(os, 'link') else shutil.copyfile
|
||||
FIELD_MAP = {'id':0, 'title':1, 'authors':2, 'publisher':3, 'rating':4, 'timestamp':5,
|
||||
'size':6, 'tags':7, 'comments':8, 'series':9, 'series_index':10,
|
||||
'sort':11, 'author_sort':12, 'formats':13, 'isbn':14, 'path':15,
|
||||
'lccn':16, 'pubdate':17, 'flags':18, 'cover':19}
|
||||
'lccn':16, 'pubdate':17, 'flags':18, 'uuid':19, 'cover':20}
|
||||
INDEX_MAP = dict(zip(FIELD_MAP.values(), FIELD_MAP.keys()))
|
||||
|
||||
|
||||
@ -439,6 +439,8 @@ class LibraryDatabase2(LibraryDatabase):
|
||||
self.count = self.data.count
|
||||
|
||||
self.refresh()
|
||||
self.last_update_check = self.last_modified()
|
||||
|
||||
|
||||
def get_property(idx, index_is_id=False, loc=-1):
|
||||
row = self.data._data[idx] if index_is_id else self.data[idx]
|
||||
@ -447,7 +449,7 @@ class LibraryDatabase2(LibraryDatabase):
|
||||
|
||||
for prop in ('author_sort', 'authors', 'comment', 'comments', 'isbn',
|
||||
'publisher', 'rating', 'series', 'series_index', 'tags',
|
||||
'title', 'timestamp'):
|
||||
'title', 'timestamp', 'uuid'):
|
||||
setattr(self, prop, functools.partial(get_property,
|
||||
loc=FIELD_MAP['comments' if prop == 'comment' else prop]))
|
||||
|
||||
@ -622,12 +624,61 @@ class LibraryDatabase2(LibraryDatabase):
|
||||
END TRANSACTION;
|
||||
''')
|
||||
|
||||
def upgrade_version_7(self):
|
||||
'Add uuid column'
|
||||
self.conn.executescript('''
|
||||
BEGIN TRANSACTION;
|
||||
ALTER TABLE books ADD COLUMN uuid TEXT;
|
||||
DROP TRIGGER IF EXISTS books_insert_trg;
|
||||
DROP TRIGGER IF EXISTS books_update_trg;
|
||||
UPDATE books SET uuid=uuid4();
|
||||
|
||||
CREATE TRIGGER books_insert_trg AFTER INSERT ON books
|
||||
BEGIN
|
||||
UPDATE books SET sort=title_sort(NEW.title),uuid=uuid4() WHERE id=NEW.id;
|
||||
END;
|
||||
|
||||
CREATE TRIGGER books_update_trg AFTER UPDATE ON books
|
||||
BEGIN
|
||||
UPDATE books SET sort=title_sort(NEW.title) WHERE id=NEW.id;
|
||||
END;
|
||||
|
||||
DROP VIEW meta;
|
||||
CREATE VIEW meta AS
|
||||
SELECT id, title,
|
||||
(SELECT sortconcat(bal.id, name) FROM books_authors_link AS bal JOIN authors ON(author = authors.id) WHERE book = books.id) authors,
|
||||
(SELECT name FROM publishers WHERE publishers.id IN (SELECT publisher from books_publishers_link WHERE book=books.id)) publisher,
|
||||
(SELECT rating FROM ratings WHERE ratings.id IN (SELECT rating from books_ratings_link WHERE book=books.id)) rating,
|
||||
timestamp,
|
||||
(SELECT MAX(uncompressed_size) FROM data WHERE book=books.id) size,
|
||||
(SELECT concat(name) FROM tags WHERE tags.id IN (SELECT tag from books_tags_link WHERE book=books.id)) tags,
|
||||
(SELECT text FROM comments WHERE book=books.id) comments,
|
||||
(SELECT name FROM series WHERE series.id IN (SELECT series FROM books_series_link WHERE book=books.id)) series,
|
||||
series_index,
|
||||
sort,
|
||||
author_sort,
|
||||
(SELECT concat(format) FROM data WHERE data.book=books.id) formats,
|
||||
isbn,
|
||||
path,
|
||||
lccn,
|
||||
pubdate,
|
||||
flags,
|
||||
uuid
|
||||
FROM books;
|
||||
|
||||
END TRANSACTION;
|
||||
''')
|
||||
|
||||
|
||||
def last_modified(self):
|
||||
''' Return last modified time as a UTC datetime object'''
|
||||
return datetime.utcfromtimestamp(os.stat(self.dbpath).st_mtime)
|
||||
|
||||
def check_if_modified(self):
|
||||
if self.last_modified() > self.last_update_check:
|
||||
self.refresh()
|
||||
self.last_update_check = datetime.utcnow()
|
||||
|
||||
def path(self, index, index_is_id=False):
|
||||
'Return the relative path to the directory containing this books files as a unicode string.'
|
||||
row = self.data._data[index] if index_is_id else self.data[index]
|
||||
@ -785,6 +836,7 @@ class LibraryDatabase2(LibraryDatabase):
|
||||
mi.publisher = self.publisher(idx, index_is_id=index_is_id)
|
||||
mi.timestamp = self.timestamp(idx, index_is_id=index_is_id)
|
||||
mi.pubdate = self.pubdate(idx, index_is_id=index_is_id)
|
||||
mi.uuid = self.uuid(idx, index_is_id=index_is_id)
|
||||
tags = self.tags(idx, index_is_id=index_is_id)
|
||||
if tags:
|
||||
mi.tags = [i.strip() for i in tags.split(',')]
|
||||
@ -1530,7 +1582,9 @@ class LibraryDatabase2(LibraryDatabase):
|
||||
'''
|
||||
if prefix is None:
|
||||
prefix = self.library_path
|
||||
FIELDS = set(['title', 'authors', 'author_sort', 'publisher', 'rating', 'timestamp', 'size', 'tags', 'comments', 'series', 'series_index', 'isbn'])
|
||||
FIELDS = set(['title', 'authors', 'author_sort', 'publisher', 'rating',
|
||||
'timestamp', 'size', 'tags', 'comments', 'series', 'series_index',
|
||||
'isbn', 'uuid'])
|
||||
data = []
|
||||
for record in self.data:
|
||||
if record is None: continue
|
||||
|
@ -24,7 +24,7 @@ except ImportError:
|
||||
from calibre.constants import __version__, __appname__
|
||||
from calibre.utils.genshi.template import MarkupTemplate
|
||||
from calibre import fit_image, guess_type, prepare_string_for_xml, \
|
||||
strftime as _strftime
|
||||
strftime as _strftime, prints
|
||||
from calibre.library import server_config as config
|
||||
from calibre.library.database2 import LibraryDatabase2, FIELD_MAP
|
||||
from calibre.utils.config import config_dir
|
||||
@ -45,6 +45,8 @@ def expose(func):
|
||||
|
||||
def do(self, *args, **kwargs):
|
||||
dict.update(cherrypy.response.headers, {'Server':self.server_name})
|
||||
if not self.embedded:
|
||||
self.db.check_if_modified()
|
||||
return func(self, *args, **kwargs)
|
||||
|
||||
return cherrypy.expose(do)
|
||||
@ -77,6 +79,159 @@ class LibraryServer(object):
|
||||
</book>
|
||||
''')
|
||||
|
||||
MOBILE_UA = re.compile('(?i)(?:iPhone|Opera Mini|NetFront|webOS|Mobile|Android|imode|DoCoMo|Minimo|Blackberry|MIDP|Symbian)')
|
||||
|
||||
MOBILE_BOOK = textwrap.dedent('''\
|
||||
<tr xmlns:py="http://genshi.edgewall.org/">
|
||||
<td class="thumbnail">
|
||||
<img type="image/jpeg" src="/get/thumb/${r[0]}" border="0"/>
|
||||
</td>
|
||||
<td>
|
||||
<py:for each="format in r[13].split(',')">
|
||||
<span class="button"><a href="/get/${format}/${authors}-${r[1]}_${r[0]}.${format}">${format.lower()}</a></span>
|
||||
</py:for>
|
||||
${r[1]} by ${authors} - ${r[6]/1024}k - ${r[3] if r[3] else ''} ${pubdate} ${'['+r[7]+']' if r[7] else ''}
|
||||
</td>
|
||||
</tr>
|
||||
''')
|
||||
|
||||
MOBILE = MarkupTemplate(textwrap.dedent('''\
|
||||
<html xmlns:py="http://genshi.edgewall.org/">
|
||||
<head>
|
||||
<style>
|
||||
.navigation table.buttons {
|
||||
width: 100%;
|
||||
}
|
||||
.navigation .button {
|
||||
width: 50%;
|
||||
}
|
||||
.button a, .button:visited a {
|
||||
padding: 0.5em;
|
||||
font-size: 1.25em;
|
||||
border: 1px solid black;
|
||||
text-color: black;
|
||||
background-color: #ddd;
|
||||
border-top: 1px solid ThreeDLightShadow;
|
||||
border-right: 1px solid ButtonShadow;
|
||||
border-bottom: 1px solid ButtonShadow;
|
||||
border-left: 1 px solid ThreeDLightShadow;
|
||||
-moz-border-radius: 0.25em;
|
||||
-webkit-border-radius: 0.25em;
|
||||
}
|
||||
|
||||
.button:hover a {
|
||||
border-top: 1px solid #666;
|
||||
border-right: 1px solid #CCC;
|
||||
border-bottom: 1 px solid #CCC;
|
||||
border-left: 1 px solid #666;
|
||||
|
||||
|
||||
}
|
||||
div.navigation {
|
||||
padding-bottom: 1em;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
#search_box {
|
||||
border: 1px solid #393;
|
||||
-moz-border-radius: 0.5em;
|
||||
-webkit-border-radius: 0.5em;
|
||||
padding: 1em;
|
||||
margin-bottom: 0.5em;
|
||||
float: right;
|
||||
}
|
||||
|
||||
#listing {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
#listing td {
|
||||
padding: 0.25em;
|
||||
}
|
||||
|
||||
#listing td.thumbnail {
|
||||
height: 60px;
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
#listing tr:nth-child(even) {
|
||||
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
#listing .button a{
|
||||
display: inline-block;
|
||||
width: 2.5em;
|
||||
padding-left: 0em;
|
||||
padding-right: 0em;
|
||||
overflow: hidden;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#logo {
|
||||
float: left;
|
||||
}
|
||||
#spacer {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
</style>
|
||||
<link rel="icon" href="http://calibre.kovidgoyal.net/chrome/site/favicon.ico" type="image/x-icon" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="logo">
|
||||
<img src="/static/calibre.png" alt="Calibre" />
|
||||
</div>
|
||||
<div id="search_box">
|
||||
<form method="get" action="/mobile">
|
||||
Show <select name="num">
|
||||
<py:for each="option in [5,10,25,100]">
|
||||
<option py:if="option == num" value="${option}" SELECTED="SELECTED">${option}</option>
|
||||
<option py:if="option != num" value="${option}">${option}</option>
|
||||
</py:for>
|
||||
</select>
|
||||
books matching <input name="search" id="s" value="${search}" /> sorted by
|
||||
|
||||
<select name="sort">
|
||||
<py:for each="option in ['date','author','title','rating','size','tags','series']">
|
||||
<option py:if="option == sort" value="${option}" SELECTED="SELECTED">${option}</option>
|
||||
<option py:if="option != sort" value="${option}">${option}</option>
|
||||
</py:for>
|
||||
</select>
|
||||
<select name="order">
|
||||
<py:for each="option in ['ascending','descending']">
|
||||
<option py:if="option == order" value="${option}" SELECTED="SELECTED">${option}</option>
|
||||
<option py:if="option != order" value="${option}">${option}</option>
|
||||
</py:for>
|
||||
</select>
|
||||
<input id="go" type="submit" value="Search"/>
|
||||
</form>
|
||||
</div>
|
||||
<div class="navigation">
|
||||
<span style="display: block; text-align: center;">Books ${start} to ${ min((start+num-1) , total) } of ${total}</span>
|
||||
<table class="buttons">
|
||||
<tr>
|
||||
<td class="button" style="text-align:left;">
|
||||
<a py:if="start > 1" href="${url_base};start=1">First</a>
|
||||
<a py:if="start > 1" href="${url_base};start=${max(start-(num+1),1)}">Previous</a>
|
||||
</td>
|
||||
<td class="button" style="text-align: right;">
|
||||
<a py:if=" total > (start + num) " href="${url_base};start=${start+num}">Next</a>
|
||||
<a py:if=" total > (start + num) " href="${url_base};start=${total-num+1}">Last</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<hr class="spacer" />
|
||||
<table id="listing">
|
||||
<py:for each="book in books">
|
||||
${Markup(book)}
|
||||
</py:for>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
'''))
|
||||
|
||||
LIBRARY = MarkupTemplate(textwrap.dedent('''\
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<library xmlns:py="http://genshi.edgewall.org/" start="$start" num="${len(books)}" total="$total" updated="${updated.strftime('%Y-%m-%dT%H:%M:%S+00:00')}">
|
||||
@ -89,7 +244,7 @@ class LibraryServer(object):
|
||||
STANZA_ENTRY=MarkupTemplate(textwrap.dedent('''\
|
||||
<entry xmlns:py="http://genshi.edgewall.org/">
|
||||
<title>${record[FM['title']]}</title>
|
||||
<id>urn:calibre:${record[FM['id']]}</id>
|
||||
<id>urn:calibre:${urn}</id>
|
||||
<author><name>${authors}</name></author>
|
||||
<updated>${timestamp}</updated>
|
||||
<link type="${mimetype}" href="/get/${fmt}/${record[FM['id']]}" />
|
||||
@ -191,6 +346,7 @@ class LibraryServer(object):
|
||||
item
|
||||
break
|
||||
self.opts = opts
|
||||
self.embedded = embedded
|
||||
self.max_cover_width, self.max_cover_height = \
|
||||
map(int, self.opts.max_cover.split('x'))
|
||||
self.max_stanza_items = opts.max_opds_items
|
||||
@ -525,6 +681,7 @@ class LibraryServer(object):
|
||||
extra='\n'.join(extra),
|
||||
mimetype=mimetype,
|
||||
fmt=fmt,
|
||||
urn=record[FIELD_MAP['uuid']],
|
||||
timestamp=strftime('%Y-%m-%dT%H:%M:%S+00:00', record[5])
|
||||
)
|
||||
books.append(self.STANZA_ENTRY.generate(**data)\
|
||||
@ -534,6 +691,52 @@ class LibraryServer(object):
|
||||
next_link=next_link, updated=updated, id='urn:calibre:main').render('xml')
|
||||
|
||||
|
||||
@expose
|
||||
def mobile(self, start='1', num='25', sort='date', search='',
|
||||
_=None, order='descending'):
|
||||
'''
|
||||
Serves metadata from the calibre database as XML.
|
||||
|
||||
:param sort: Sort results by ``sort``. Can be one of `title,author,rating`.
|
||||
:param search: Filter results by ``search`` query. See :class:`SearchQueryParser` for query syntax
|
||||
:param start,num: Return the slice `[start:start+num]` of the sorted and filtered results
|
||||
:param _: Firefox seems to sometimes send this when using XMLHttpRequest with no caching
|
||||
'''
|
||||
try:
|
||||
start = int(start)
|
||||
except ValueError:
|
||||
raise cherrypy.HTTPError(400, 'start: %s is not an integer'%start)
|
||||
try:
|
||||
num = int(num)
|
||||
except ValueError:
|
||||
raise cherrypy.HTTPError(400, 'num: %s is not an integer'%num)
|
||||
ids = self.db.data.parse(search) if search and search.strip() else self.db.data.universal_set()
|
||||
ids = sorted(ids)
|
||||
items = [r for r in iter(self.db) if r[0] in ids]
|
||||
if sort is not None:
|
||||
self.sort(items, sort, (order.lower().strip() == 'ascending'))
|
||||
|
||||
book, books = MarkupTemplate(self.MOBILE_BOOK), []
|
||||
for record in items[(start-1):(start-1)+num]:
|
||||
aus = record[2] if record[2] else __builtin__._('Unknown')
|
||||
authors = '|'.join([i.replace('|', ',') for i in aus.split(',')])
|
||||
record[10] = fmt_sidx(float(record[10]))
|
||||
ts, pd = strftime('%Y/%m/%d %H:%M:%S', record[5]), \
|
||||
strftime('%Y/%m/%d %H:%M:%S', record[FIELD_MAP['pubdate']])
|
||||
books.append(book.generate(r=record, authors=authors, timestamp=ts,
|
||||
pubdate=pd).render('xml').decode('utf-8'))
|
||||
updated = self.db.last_modified()
|
||||
|
||||
cherrypy.response.headers['Content-Type'] = 'text/html; charset=utf-8'
|
||||
cherrypy.response.headers['Last-Modified'] = self.last_modified(updated)
|
||||
|
||||
|
||||
url_base = "/mobile?search=" + search+";order="+order+";sort="+sort+";num="+str(num)
|
||||
|
||||
return self.MOBILE.generate(books=books, start=start, updated=updated, search=search, sort=sort, order=order, num=num,
|
||||
total=len(ids), url_base=url_base).render('html')
|
||||
|
||||
|
||||
@expose
|
||||
def library(self, start='0', num='50', sort=None, search=None,
|
||||
_=None, order='ascending'):
|
||||
@ -584,10 +787,22 @@ class LibraryServer(object):
|
||||
cherrypy.request.headers.get('Stanza-Device-Name', 919) != 919 or \
|
||||
cherrypy.request.headers.get('Want-OPDS-Catalog', 919) != 919 or \
|
||||
ua.startswith('Stanza')
|
||||
return self.stanza(search=kwargs.get('search', None), sortby=kwargs.get('sortby',None), authorid=kwargs.get('authorid',None),
|
||||
|
||||
# A better search would be great
|
||||
want_mobile = self.MOBILE_UA.search(ua) is not None
|
||||
if self.opts.develop and not want_mobile:
|
||||
prints('User agent:', ua)
|
||||
|
||||
if want_opds:
|
||||
return self.stanza(search=kwargs.get('search', None), sortby=kwargs.get('sortby',None), authorid=kwargs.get('authorid',None),
|
||||
tagid=kwargs.get('tagid',None),
|
||||
seriesid=kwargs.get('seriesid',None),
|
||||
offset=kwargs.get('offset', 0)) if want_opds else self.static('index.html')
|
||||
offset=kwargs.get('offset', 0))
|
||||
|
||||
if want_mobile:
|
||||
return self.mobile()
|
||||
|
||||
return self.static('index.html')
|
||||
|
||||
|
||||
@expose
|
||||
|
@ -7,7 +7,7 @@ __docformat__ = 'restructuredtext en'
|
||||
Wrapper for multi-threaded access to a single sqlite database connection. Serializes
|
||||
all calls.
|
||||
'''
|
||||
import sqlite3 as sqlite, traceback, time
|
||||
import sqlite3 as sqlite, traceback, time, uuid
|
||||
from sqlite3 import IntegrityError
|
||||
from threading import Thread
|
||||
from Queue import Queue
|
||||
@ -121,6 +121,7 @@ class DBThread(Thread):
|
||||
self.conn.create_aggregate('concat', 1, Concatenate)
|
||||
self.conn.create_aggregate('sortconcat', 2, SortedConcatenate)
|
||||
self.conn.create_function('title_sort', 1, title_sort)
|
||||
self.conn.create_function('uuid4', 0, lambda : str(uuid.uuid4()))
|
||||
|
||||
def run(self):
|
||||
try:
|
||||
|
@ -301,15 +301,16 @@ Removing headers and footers
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
These options are useful primarily for conversion of PDF documents. Often, the conversion leaves
|
||||
behing page headers and footers in the text. These options use regular expressions to try and detect
|
||||
behind page headers and footers in the text. These options use regular expressions to try and detect
|
||||
the headers and footers and remove them. Remember that they operate on the intermediate XHTML produced
|
||||
by the conversion pipeline. There is also a wizard to help you customize the regular expressions for
|
||||
your document.
|
||||
|
||||
The header and footer regular expressions are used in conjunction with the remove header and footer options.
|
||||
If the remove option is not enabled the regular expression will not be applied to remove the matched text.
|
||||
As stated the removal works by using a python regular expression. All matched text is simply removed from
|
||||
the document. You can learn more about regular expressions and the syntax at http://docs.python.org/library/re.html
|
||||
The removal works by using a python regular expression. All matched text is simply removed from
|
||||
the document. You can learn more about regular expressions and their syntax at
|
||||
http://docs.python.org/library/re.html.
|
||||
|
||||
Miscellaneous
|
||||
~~~~~~~~~~~~~~
|
||||
@ -408,27 +409,28 @@ This will result in an automatically generated two level Table of Contents that
|
||||
Format specific tips
|
||||
----------------------
|
||||
|
||||
Here you will find tips specific to the conversion of particular formats.
|
||||
Here you will find tips specific to the conversion of particular formats. Options specific to particular
|
||||
format, whether input or output are available in the conversion dialog under their own section, for example
|
||||
`TXT Input` or `EPUB Output`.
|
||||
|
||||
Convert Microsoft Word documents
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|app| does not directly convert .doc files from Microsoft Word. However, in Word, you can save the document
|
||||
as HTML and then convert the resulting HTML file with |app|. When saving as HTML, be sure to use the
|
||||
"Save as filtered HTML" option as this will produce clean HTML that will convert well.
|
||||
"Save as Web Page, Filtered" option as this will produce clean HTML that will convert well.
|
||||
|
||||
There is a Word macro package that can automate the conversion of Word documents using |app|. It also makes
|
||||
generating the Table of Contents much simpler. It is called BookCreator and is available for free
|
||||
`here <http://www.mobileread.com/forums/showthread.php?t=36098>`_.
|
||||
`here <http://www.mobileread.com/forums/showthread.php?t=28313>`_.
|
||||
|
||||
Convert TXT documents
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
TXT documents can contain any imaginable layout. Since TXT documents provide no way to explicitly mark parts of
|
||||
the text, by default |app| only groups parts of the document into paragraphs. The default is to assume one or
|
||||
more blank lines are a paragraph boundary.
|
||||
|
||||
.. code-block:: txt
|
||||
TXT documents have no well defined way to specify formatting like bold, italics, etc, or document structure like paragraphs, headings, sections and so on.
|
||||
Since TXT documents provide no way to explicitly mark parts of
|
||||
the text, by default |app| only groups lines in the input document into paragraphs. The default is to assume one or
|
||||
more blank lines are a paragraph boundary::
|
||||
|
||||
This is the first.
|
||||
|
||||
@ -437,41 +439,38 @@ more blank lines are a paragraph boundary.
|
||||
|
||||
TXT input supports a number of options to differentiate how paragraphs are detected.
|
||||
|
||||
:guilabel:`Treat each line as a paragraph`
|
||||
Assumes that every line is a paragraph.
|
||||
|
||||
.. code-block:: txt
|
||||
|
||||
This is the first.
|
||||
This is the second.
|
||||
This is the third.
|
||||
|
||||
:guilabel:`Assume print formatting`
|
||||
Assumes that every paragraph starts with an indent (either a tab or 2+ spaces). Paragraphs end when
|
||||
the next line that starts with an indent is reached.
|
||||
|
||||
.. code-block:: txt
|
||||
|
||||
This is the
|
||||
first.
|
||||
This is the second.
|
||||
|
||||
This is the
|
||||
third.
|
||||
:guilabel:`Treat each line as a paragraph`
|
||||
Assumes that every line is a paragraph::
|
||||
|
||||
This is the first.
|
||||
This is the second.
|
||||
This is the third.
|
||||
|
||||
:guilabel:`Assume print formatting`
|
||||
Assumes that every paragraph starts with an indent (either a tab or 2+ spaces). Paragraphs end when
|
||||
the next line that starts with an indent is reached::
|
||||
|
||||
This is the
|
||||
first.
|
||||
This is the second.
|
||||
|
||||
This is the
|
||||
third.
|
||||
|
||||
:guilabel:`Process using markdown`
|
||||
|app| also supports running TXT input though a transformation preprocessor known as markdown. Markdown
|
||||
allows for basic formatting to be added to TXT documents, such as bold, italics, section headings, tables,
|
||||
loists, a Table of Contents, etc. Marking chapter headings with a leading # and setting the chapter XPath detection
|
||||
expression to "//h:h1" is the easiest way to have a proper table of contents generated from a TXT document.
|
||||
You can learn more about the markdown syntax at http://daringfireball.net/projects/markdown/syntax.
|
||||
|
||||
:guilabel:`Process using markdown`
|
||||
|app| also supports running TXT input though a transformation preprocessor known as markdown. Markdown
|
||||
allows for basic formatting to be added to the document and is an easy way to differentiate non-paragraph
|
||||
elements such as chapter headings. Marking chapter headings with # and settings the chapter XPath detection
|
||||
expression to "//h:h1" is the easiest way to have a proper table of contents generated from a TXT document.
|
||||
You can learn more about the markdown syntax at http://daringfireball.net/projects/markdown/syntax
|
||||
|
||||
Convert PDF documents
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
PDF documents are one of the worst formats to convert from. They are a fixed page size and text placement format.
|
||||
Meaning, it is very difficult to determine where one paragraph ends and another begins. |app| will try to unwrap
|
||||
paragraphs using a configurable, :guilabel:`Line Un-Wrapping Factor`. This is a scale used to determine the length at which a line should be unwrapped. Valid values are a decimal
|
||||
paragraphs using a configurable, :guilabel:`Line Un-Wrapping Factor`. This is a scale used to determine the length
|
||||
at which a line should be unwrapped. Valid values are a decimal
|
||||
between 0 and 1. The default is 0.5, this is the median line length. Lower this value to include more
|
||||
text in the unwrapping. Increase to include less.
|
||||
|
||||
@ -480,5 +479,5 @@ Use the options to remove headers and footers to mitigate this issue. If the hea
|
||||
removed from the text it can throw off the paragraph unwrapping.
|
||||
|
||||
Some limitations of PDF input is complex, multi-column, and image based documents are not supported.
|
||||
Extraction of SVG images from within the document is also not supported.
|
||||
Extraction of vector images and tables from within the document is also not supported.
|
||||
|
||||
|
@ -64,26 +64,27 @@ 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 <http://calibre.kovidgoyal.net>`_.
|
||||
This will create a :file:`my-changes` file in the current directory,
|
||||
simply attach that to a ticket on the |app| `bug tracker <http://calibre.kovidgoyal.net/newticket>`_.
|
||||
|
||||
If you plan to do a lot of development on |app|, then the best method is to create a
|
||||
`Launchpad <http://launchpad.net>`_ 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 <https://code.launchpad.net>`_ 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::
|
||||
`Launchpad <http://launchpad.net>`_ account. Once you have the account, you can use it to register
|
||||
your bzr branch created by the `bzr branch` command above with the |app| project. First run the
|
||||
following command to tell bzr about your launchpad account::
|
||||
|
||||
bzr push <URL of your launchpad branch>
|
||||
bzr launchpad-login your_launchpad_username
|
||||
|
||||
This will host your branch on launchpad. Now go to `calibre@Launchapd <http://code.launchpad.net/calibre>`_ and register
|
||||
your branch with the |app| project. Now whenever you commit changes to your branch with the command::
|
||||
Now, you have to setup SSH access to Launchpad. First create an SSH public/private keypair. Then upload
|
||||
the public key to Launchpad by going to your Launchpad account page. Instructions for setting up the
|
||||
private key in bzr are at http://bazaar-vcs.org/Bzr_and_SSH. Now you can upload your branch to the |app|
|
||||
project in Launchapd by following the instructions at https://help.launchpad.net/Code/UploadingABranch.
|
||||
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 <https://launchpad.net/~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.
|
||||
|
||||
discuss them on the mailing list or the #calibre IRC channel on Freenode to ensure that the changes will be accepted once you're done.
|
||||
|
||||
Windows development environment
|
||||
---------------------------------
|
||||
|
@ -7,14 +7,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: calibre\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-10-20 00:20+0000\n"
|
||||
"PO-Revision-Date: 2009-10-20 01:13+0000\n"
|
||||
"POT-Creation-Date: 2009-10-26 17:36+0000\n"
|
||||
"PO-Revision-Date: 2009-10-29 20:45+0000\n"
|
||||
"Last-Translator: Kovid Goyal <Unknown>\n"
|
||||
"Language-Team: Arabic <ar@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-10-20 07:08+0000\n"
|
||||
"X-Launchpad-Export-Date: 2009-10-30 08:26+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41
|
||||
@ -52,7 +52,7 @@ msgstr "لا يفعل شيءً"
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329
|
||||
#: /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/opf2.py:872
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:21
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29
|
||||
@ -106,13 +106,13 @@ msgstr "لا يفعل شيءً"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:126
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:543
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:769
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:772
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:771
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:774
|
||||
#: /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:431
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:156
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170
|
||||
#: /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:876
|
||||
@ -314,31 +314,31 @@ msgstr ""
|
||||
msgid "This profile is intended for the Amazon Kindle DX."
|
||||
msgstr "هذا الطور يستخدم مع Amazon Kindle DX"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:29
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:30
|
||||
msgid "Installed plugins"
|
||||
msgstr "ملحقات مثبتة"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:30
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:31
|
||||
msgid "Mapping for filetype plugins"
|
||||
msgstr "تعيين لملحقات أنواع الملفات"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:31
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32
|
||||
msgid "Local plugin customization"
|
||||
msgstr "تخصيص الملحقات المحلية"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33
|
||||
msgid "Disabled plugins"
|
||||
msgstr "ملحقات معطلة"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:74
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:75
|
||||
msgid "No valid plugin found in "
|
||||
msgstr "لا يجد ملحق صالح "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:232
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:233
|
||||
msgid "Initialization of plugin %s failed with traceback:"
|
||||
msgstr "فشل استهلال الملحق %s مع اقتفاء الأثر:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:362
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:363
|
||||
msgid ""
|
||||
" %prog options\n"
|
||||
"\n"
|
||||
@ -346,29 +346,29 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:368
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:369
|
||||
msgid "Add a plugin by specifying the path to the zip file containing it."
|
||||
msgstr "إضافة ملحق يتخصيص مسار إلى ملف zip الذي يحتويه."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:370
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:371
|
||||
msgid "Remove a custom plugin by name. Has no effect on builtin plugins"
|
||||
msgstr "حذف الملحق المخصص عن طريق اسمه. لا يؤثر على الملحقات المضمنة"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:372
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:373
|
||||
msgid ""
|
||||
"Customize plugin. Specify name of plugin and customization string separated "
|
||||
"by a comma."
|
||||
msgstr "تخصيص الملحق حدد اسم الملحق وسلسلة التخصيص وفرقهما بفاصلة."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:374
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:375
|
||||
msgid "List all installed plugins"
|
||||
msgstr "قائمة كل الملحقات المثبتة"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:376
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:377
|
||||
msgid "Enable the named plugin"
|
||||
msgstr "تمكين الملحق المسمى"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:378
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:379
|
||||
msgid "Disable the named plugin"
|
||||
msgstr "تعطيل الملحق المسمى"
|
||||
|
||||
@ -547,7 +547,7 @@ msgid "There is insufficient free space on the storage card"
|
||||
msgstr "لا توجد مساحة كافية في بطاقة التخزين"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:713
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:218
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1006
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1010
|
||||
@ -1120,7 +1120,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:123
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:111
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:113
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:98
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77
|
||||
msgid "Table of Contents:"
|
||||
@ -1658,7 +1658,7 @@ msgid ""
|
||||
"Fetch a cover image for the book identified by ISBN from LibraryThing.com\n"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1055
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1057
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1314
|
||||
msgid "Cover"
|
||||
msgstr "الغلاف"
|
||||
@ -1781,7 +1781,7 @@ msgstr ""
|
||||
msgid "Usage: ebook-convert INFILE OUTFILE [OPTIONS..]"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:38
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:39
|
||||
msgid "%s format books are not supported"
|
||||
msgstr "الكتب بتهيئة %s ليست مدعومة"
|
||||
|
||||
@ -2079,7 +2079,7 @@ msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:27
|
||||
msgid ""
|
||||
"Speciy the compression level to use. Scale 1 - 10. 1 being the lowest "
|
||||
"Specify the compression level to use. Scale 1 - 10. 1 being the lowest "
|
||||
"compression but the fastest and 10 being the highest compression but the "
|
||||
"slowest."
|
||||
msgstr ""
|
||||
@ -2340,7 +2340,7 @@ msgstr ""
|
||||
#: /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
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:88
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:99
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44
|
||||
@ -2453,16 +2453,17 @@ msgstr ""
|
||||
|
||||
#: /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/look_and_feel_ui.py:113
|
||||
#: /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
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:62
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:474
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:486
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:487
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:493
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556
|
||||
#: /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:361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375
|
||||
@ -2541,20 +2542,46 @@ msgstr ""
|
||||
msgid "&Inline TOC"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:15
|
||||
msgid "Look & Feel"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:99
|
||||
msgid "Font rescaling wizard"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:17
|
||||
msgid "Control the look and feel of the output"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:100
|
||||
msgid ""
|
||||
"<p>This wizard will help you choose an appropriate font size key for your "
|
||||
"needs. Just enter the base font size of the input document and then enter an "
|
||||
"input font size. The wizard will display what font size it will be mapped "
|
||||
"to, by the font rescaling algorithm. You can adjust the algorithm by "
|
||||
"adjusting the output base font size and font key below. When you find values "
|
||||
"suitable for you, click OK.</p>\n"
|
||||
"<p>By default, if the output base font size is zero and/or no font size key "
|
||||
"is specified, calibre will use the values from the current Output Profile. "
|
||||
"</p>\n"
|
||||
"<p>See the <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/user_manual/conversion.html#font-size-"
|
||||
"rescaling\">User Manual</a> for a discussion of how font size rescaling "
|
||||
"works.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:89
|
||||
msgid "Base &font size:"
|
||||
msgstr "حجم الخط& الأساسي:"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:103
|
||||
msgid "&Output document"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:90
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:92
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:104
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:109
|
||||
msgid "&Base font size:"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:105
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:108
|
||||
msgid "Font size &key:"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:106
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:110
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:112
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:101
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:103
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:118
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:120
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:125
|
||||
@ -2565,43 +2592,75 @@ msgstr "حجم الخط& الأساسي:"
|
||||
msgid " pt"
|
||||
msgstr " pt"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:91
|
||||
msgid "Line &height:"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:107
|
||||
msgid "Use &default values"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:93
|
||||
msgid "Remove &spacing between paragraphs"
|
||||
msgstr "حذف الفراغات& بين الفقرات"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:94
|
||||
msgid "No text &justification"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:108
|
||||
msgid "&Input document"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:95
|
||||
msgid "&Linearize tables"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:111
|
||||
msgid "&Font size: "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:96
|
||||
msgid "&Transliterate unicode characters to ASCII."
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:113
|
||||
msgid " will map to size: "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:97
|
||||
msgid "Font size &key:"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:114
|
||||
msgid "0.0 pt"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:98
|
||||
msgid "Input character &encoding"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:16
|
||||
msgid "Look & Feel"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:99
|
||||
msgid "&Disable font size rescaling"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:18
|
||||
msgid "Control the look and feel of the output"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:100
|
||||
msgid "Base &font size:"
|
||||
msgstr "حجم الخط& الأساسي:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:102
|
||||
msgid "Line &height:"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:104
|
||||
msgid "Remove &spacing between paragraphs"
|
||||
msgstr "حذف الفراغات& بين الفقرات"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:105
|
||||
msgid "No text &justification"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:106
|
||||
msgid "&Linearize tables"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:107
|
||||
msgid "&Transliterate unicode characters to ASCII."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:109
|
||||
msgid "Input character &encoding:"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:110
|
||||
msgid "&Disable font size rescaling"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:111
|
||||
msgid "Insert &blank line"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:101
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:112
|
||||
msgid "Wizard to help you choose an appropriate font size key"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:114
|
||||
msgid "Extra &CSS"
|
||||
msgstr ""
|
||||
|
||||
@ -3314,9 +3373,9 @@ msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:598
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:696
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:817
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:698
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:812
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819
|
||||
msgid "No suitable formats"
|
||||
msgstr ""
|
||||
|
||||
@ -3353,30 +3412,30 @@ msgstr ""
|
||||
msgid "Sent news to"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:697
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:699
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813
|
||||
msgid "Auto convert the following books before uploading to the device?"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:728
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:730
|
||||
msgid "Sending news to device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:780
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:782
|
||||
msgid "Sending books to device."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820
|
||||
msgid ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found. Convert the book(s) to a format supported by your device first."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:868
|
||||
msgid "No space on device"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:867
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869
|
||||
msgid ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
@ -3509,127 +3568,127 @@ msgstr ""
|
||||
msgid "new email address"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:467
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:797
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:465
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:795
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:140
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1045
|
||||
#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53
|
||||
msgid "Error"
|
||||
msgstr "خطأ"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:468
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:466
|
||||
msgid "Failed to install command line tools."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:471
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:469
|
||||
msgid "Command line tools installed"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:470
|
||||
msgid "Command line tools installed in"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:471
|
||||
msgid ""
|
||||
"If you move calibre.app, you have to re-install the command line tools."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:524
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:522
|
||||
msgid "No valid plugin path"
|
||||
msgstr "مسار الملحق غير صالح"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:525
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:523
|
||||
msgid "%s is not a valid plugin path"
|
||||
msgstr "%s ليس مسار لملحق صالح"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:528
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:526
|
||||
msgid "Choose plugin"
|
||||
msgstr "إختيار الملحق"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:540
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538
|
||||
msgid "Plugin cannot be disabled"
|
||||
msgstr "لا يمكن تعطيل الملحق"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:541
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539
|
||||
msgid "The plugin: %s cannot be disabled"
|
||||
msgstr "الملحق: %s لا يمكن تعطيله"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:548
|
||||
msgid "Plugin not customizable"
|
||||
msgstr "لا يمكن تخصيص الملحق"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:549
|
||||
msgid "Plugin: %s does not need customization"
|
||||
msgstr "الملحق: %s لا يحتاج التخصيص"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:575
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:573
|
||||
msgid "Customize %s"
|
||||
msgstr "تخصيص %s"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:585
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:583
|
||||
msgid "Cannot remove builtin plugin"
|
||||
msgstr "لم يمكن حذف الملحق المضمن"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:586
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:584
|
||||
msgid " cannot be removed. It is a builtin plugin. Try disabling it instead."
|
||||
msgstr " لا يمكن حذفه. هذا ملحق مضمن في البرنامج. حاول تعطيله بدلاً من حذفه."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:619
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:617
|
||||
msgid "Error log:"
|
||||
msgstr "سجل الأخطاء:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:626
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:624
|
||||
msgid "Access log:"
|
||||
msgstr "سجل النفاذ:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:654
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:652
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:589
|
||||
msgid "Failed to start content server"
|
||||
msgstr "فشل في تشغيل خادم المحتوى"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:678
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:503
|
||||
msgid "Select location for books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:686
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:684
|
||||
msgid "Invalid size"
|
||||
msgstr "حجم غير صالح"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:687
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:685
|
||||
msgid "The size %s is invalid. must be of the form widthxheight"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:738
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:743
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:736
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:741
|
||||
msgid "Invalid database location"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:739
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:737
|
||||
msgid "Invalid database location "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:740
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:738
|
||||
msgid "<br>Must be a directory."
|
||||
msgstr "<br>يجب أن يكون دليل."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:744
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:742
|
||||
msgid "Invalid database location.<br>Cannot write to "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:778
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:776
|
||||
msgid "Checking database integrity"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:798
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:796
|
||||
msgid "Failed to check database integrity"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:803
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:801
|
||||
msgid "Some inconsistencies found"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802
|
||||
msgid ""
|
||||
"The following books had formats listed in the database that are not actually "
|
||||
"available. The entries for the formats have been removed. You should check "
|
||||
@ -3727,240 +3786,240 @@ msgstr ""
|
||||
msgid "&Saving books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:471
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:490
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:368
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:173
|
||||
msgid "Preferences"
|
||||
msgstr "التفضيلات"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:491
|
||||
msgid ""
|
||||
"&Location of ebooks (The ebooks are stored in folders sorted by author and "
|
||||
"metadata is stored in the file metadata.db)"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:492
|
||||
msgid "Browse for the new database location"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:475
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:494
|
||||
msgid "Show notification when &new version is available"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:476
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:495
|
||||
msgid "Default network &timeout:"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:477
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:496
|
||||
msgid ""
|
||||
"Set the default timeout for network fetches (i.e. anytime we go out to the "
|
||||
"internet to get information)"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:478
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:497
|
||||
msgid " seconds"
|
||||
msgstr " ثانية"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:479
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:498
|
||||
msgid "Choose &language (requires restart):"
|
||||
msgstr "إختر ال&لغة (يحتاج إعادة تشغيل):"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:480
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:499
|
||||
msgid "Normal"
|
||||
msgstr "عادي"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:481
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:500
|
||||
msgid "High"
|
||||
msgstr "مرتفع"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:482
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501
|
||||
msgid "Low"
|
||||
msgstr "منخفض"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:483
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502
|
||||
msgid "Job &priority:"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503
|
||||
msgid "Preferred &output format:"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504
|
||||
msgid "Preferred &input format order:"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:488
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507
|
||||
msgid "Use &Roman numerals for series number"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:489
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508
|
||||
msgid "Enable system &tray icon (needs restart)"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:490
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509
|
||||
msgid "Show ¬ifications in system tray"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:491
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510
|
||||
msgid "Show cover &browser in a separate window (needs restart)"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:492
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511
|
||||
msgid "Search as you type"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:493
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512
|
||||
msgid "Automatically send downloaded &news to ebook reader"
|
||||
msgstr "إرسال الأخبار& التي تم تنزيلها آلياً إلى قارئ الكتب الإلكترونية"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:494
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513
|
||||
msgid "&Delete news from library when it is automatically sent to reader"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:495
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514
|
||||
msgid "&Number of covers to show in browse mode (needs restart):"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:496
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515
|
||||
msgid "Toolbar"
|
||||
msgstr "شريط الأدوات"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:497
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516
|
||||
msgid "Large"
|
||||
msgstr "كبير"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:498
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517
|
||||
msgid "Medium"
|
||||
msgstr "متوسط"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:499
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518
|
||||
msgid "Small"
|
||||
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:519
|
||||
msgid "&Button size in toolbar"
|
||||
msgstr "&حجم الأزرار على شريط الأدوات"
|
||||
|
||||
#: /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:520
|
||||
msgid "Show &text in toolbar buttons"
|
||||
msgstr "إظهار النص& على أزرار شريط الأدوات"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521
|
||||
msgid "Select visible &columns in library view"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524
|
||||
msgid "Use internal &viewer for:"
|
||||
msgstr "استخدم المستعرض& الداخلي في:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525
|
||||
msgid "Add an email address to which to send books"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526
|
||||
msgid "&Add email"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527
|
||||
msgid "Make &default"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528
|
||||
msgid "&Remove email"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529
|
||||
msgid "calibre can send your books to you (or your reader) by email"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530
|
||||
msgid "&Maximum number of waiting worker processes (needs restart):"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531
|
||||
msgid "&Check database integrity"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532
|
||||
msgid "&Install command line tools"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533
|
||||
msgid "Open calibre &configuration directory"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534
|
||||
msgid ""
|
||||
"calibre contains a network server that allows you to access your book "
|
||||
"collection using a browser from anywhere in the world. Any changes to the "
|
||||
"settings will only take effect after a server restart."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535
|
||||
msgid "Server &port:"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117
|
||||
msgid "&Username:"
|
||||
msgstr "&اسم المستخدم:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119
|
||||
msgid "&Password:"
|
||||
msgstr "&كلمة السرّ"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538
|
||||
msgid ""
|
||||
"If you leave the password blank, anyone will be able to access your book "
|
||||
"collection using the web interface."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539
|
||||
msgid ""
|
||||
"The maximum size (widthxheight) for displayed covers. Larger covers are "
|
||||
"resized. "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540
|
||||
msgid "Max. &cover size:"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212
|
||||
msgid "&Show password"
|
||||
msgstr "إظهار& كلمة السرّ"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542
|
||||
msgid "Max. &OPDS items per query:"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543
|
||||
msgid "&Start Server"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544
|
||||
msgid "St&op Server"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545
|
||||
msgid "&Test Server"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546
|
||||
msgid "Run server &automatically on startup"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547
|
||||
msgid "View &server logs"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46
|
||||
msgid ""
|
||||
"<p>Remember to leave calibre running as the server only runs as long as "
|
||||
@ -3971,33 +4030,33 @@ msgid ""
|
||||
"the IP address of the computer calibre is running on."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550
|
||||
msgid ""
|
||||
"Here you can customize the behavior of Calibre by controlling what plugins "
|
||||
"it uses."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551
|
||||
msgid "Enable/&Disable plugin"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552
|
||||
msgid "&Customize plugin"
|
||||
msgstr "ت&خصيص الملحق"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553
|
||||
msgid "&Remove plugin"
|
||||
msgstr "&حذف الملحق"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554
|
||||
msgid "Add new plugin"
|
||||
msgstr "إضافة ملحق جديد"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555
|
||||
msgid "Plugin &file:"
|
||||
msgstr "&ملف الملحق:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557
|
||||
msgid "&Add"
|
||||
msgstr "&إضافة"
|
||||
|
||||
@ -4338,28 +4397,36 @@ msgstr ""
|
||||
msgid "Aborting..."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:155
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:117
|
||||
msgid "Need username and password"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:118
|
||||
msgid "You must provide a username and/or password to use this news source."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:169
|
||||
msgid "Created by: "
|
||||
msgstr "أنشأه: "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:162
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:176
|
||||
msgid "Last downloaded: never"
|
||||
msgstr "آخر تنزيل: لم ينزّل من قبل"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:191
|
||||
msgid "%d days, %d hours and %d minutes ago"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:179
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:193
|
||||
msgid "Last downloaded"
|
||||
msgstr "آخر تنزيل"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:199
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:213
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:190
|
||||
msgid "Schedule news download"
|
||||
msgstr "جدولة تنزيل الأخبار"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:202
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:216
|
||||
msgid "Add a custom news source"
|
||||
msgstr ""
|
||||
|
||||
@ -5647,7 +5714,7 @@ msgstr ""
|
||||
msgid "No matches found for this book"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:71
|
||||
msgid "Search"
|
||||
msgstr "بحث"
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -7,14 +7,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: de\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-10-20 00:20+0000\n"
|
||||
"PO-Revision-Date: 2009-10-20 01:10+0000\n"
|
||||
"POT-Creation-Date: 2009-10-26 17:36+0000\n"
|
||||
"PO-Revision-Date: 2009-10-29 20:46+0000\n"
|
||||
"Last-Translator: Kovid Goyal <Unknown>\n"
|
||||
"Language-Team: American English <kde-i18n-doc@lists.kde.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-10-20 07:09+0000\n"
|
||||
"X-Launchpad-Export-Date: 2009-10-30 08:27+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"Generated-By: pygettext.py 1.5\n"
|
||||
|
||||
@ -53,7 +53,7 @@ msgstr "Mach absolut garnichts"
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329
|
||||
#: /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/opf2.py:872
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:21
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29
|
||||
@ -107,13 +107,13 @@ msgstr "Mach absolut garnichts"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:126
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:543
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:769
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:772
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:771
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:774
|
||||
#: /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:431
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:156
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170
|
||||
#: /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:876
|
||||
@ -332,31 +332,31 @@ msgstr ""
|
||||
msgid "This profile is intended for the Amazon Kindle DX."
|
||||
msgstr "Dieses Profil ist für den Amazon Kindle DX bestimmt."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:29
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:30
|
||||
msgid "Installed plugins"
|
||||
msgstr "Installierte Plugins"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:30
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:31
|
||||
msgid "Mapping for filetype plugins"
|
||||
msgstr "Mapping für Dateityp Plugins"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:31
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32
|
||||
msgid "Local plugin customization"
|
||||
msgstr "Lokale Plugin Anpassung"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33
|
||||
msgid "Disabled plugins"
|
||||
msgstr "Ausgeschaltene Plugins"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:74
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:75
|
||||
msgid "No valid plugin found in "
|
||||
msgstr "Kein gültiges Plugin gefunden in "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:232
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:233
|
||||
msgid "Initialization of plugin %s failed with traceback:"
|
||||
msgstr "Staren des Plugins %s schlug fehl. Traceback:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:362
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:363
|
||||
msgid ""
|
||||
" %prog options\n"
|
||||
"\n"
|
||||
@ -368,19 +368,19 @@ msgstr ""
|
||||
" Calibre anpassen durch das Laden externer Plugins.\n"
|
||||
" "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:368
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:369
|
||||
msgid "Add a plugin by specifying the path to the zip file containing it."
|
||||
msgstr ""
|
||||
"Plugin hinzufügen durch die Angabe des Pfads zur ZIP Datei, die das Plugin "
|
||||
"enthält."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:370
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:371
|
||||
msgid "Remove a custom plugin by name. Has no effect on builtin plugins"
|
||||
msgstr ""
|
||||
"Anpassbares Plugin entfernen. Dies hat keinen Einfluss auf festinstallierte "
|
||||
"Plugins"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:372
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:373
|
||||
msgid ""
|
||||
"Customize plugin. Specify name of plugin and customization string separated "
|
||||
"by a comma."
|
||||
@ -388,15 +388,15 @@ msgstr ""
|
||||
"Plugin anpassen. Geben Sie den Namen des Pugins und die Anpassung durch ein "
|
||||
"Komma getrennt an."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:374
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:375
|
||||
msgid "List all installed plugins"
|
||||
msgstr "Installierte Plugins auflisten"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:376
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:377
|
||||
msgid "Enable the named plugin"
|
||||
msgstr "Gewähltes Plugin einschalten"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:378
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:379
|
||||
msgid "Disable the named plugin"
|
||||
msgstr "Gewähltes Plugin ausschalten"
|
||||
|
||||
@ -577,7 +577,7 @@ msgid "There is insufficient free space on the storage card"
|
||||
msgstr "Nicht genügend freier Speicherplatz auf der Speicherkarte"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:713
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:218
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1006
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1010
|
||||
@ -1320,7 +1320,7 @@ msgstr ""
|
||||
"aus."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:123
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:111
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:113
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:98
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77
|
||||
msgid "Table of Contents:"
|
||||
@ -1937,7 +1937,7 @@ msgstr ""
|
||||
"Umschlagbild des Buches mit der angegebenen ISBN von LibraryThing.com "
|
||||
"abrufen\n"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1055
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1057
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1314
|
||||
msgid "Cover"
|
||||
msgstr "Umschlagbild"
|
||||
@ -2063,7 +2063,7 @@ msgstr "Hilfreich bei der Fehlersuche."
|
||||
msgid "Usage: ebook-convert INFILE OUTFILE [OPTIONS..]"
|
||||
msgstr "Benutzung: ebook-convert INFILE OUTFILE [OPTIONS..]"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:38
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:39
|
||||
msgid "%s format books are not supported"
|
||||
msgstr "Bücher im %s Format werden nicht unterstützt"
|
||||
|
||||
@ -2441,13 +2441,18 @@ msgstr ""
|
||||
msgid ""
|
||||
"Specify the character encoding of the output document. The default is utf-8."
|
||||
msgstr ""
|
||||
"Geben Sie die Zeichenkodierung für das Ausgabe Dokument an. Die "
|
||||
"Voreinstellung ist utf-8."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:27
|
||||
msgid ""
|
||||
"Speciy the compression level to use. Scale 1 - 10. 1 being the lowest "
|
||||
"Specify the compression level to use. Scale 1 - 10. 1 being the lowest "
|
||||
"compression but the fastest and 10 being the highest compression but the "
|
||||
"slowest."
|
||||
msgstr ""
|
||||
"Geben Sie die Kompressionsstärke auf einer Skala von 1 - 10 an. 1 bedeutet "
|
||||
"wenig komprimiert, dafür aber schneller, und 10 bedeutet höchstkomprimiert, "
|
||||
"dafür aber langsamer."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:32
|
||||
msgid ""
|
||||
@ -2735,7 +2740,7 @@ msgstr "Eingabe"
|
||||
#: /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
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:88
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:99
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44
|
||||
@ -2853,16 +2858,17 @@ msgstr ""
|
||||
|
||||
#: /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/look_and_feel_ui.py:113
|
||||
#: /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
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:62
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:474
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:486
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:487
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:493
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556
|
||||
#: /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:361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375
|
||||
@ -2945,20 +2951,60 @@ msgstr "FB2 Ausgabe"
|
||||
msgid "&Inline TOC"
|
||||
msgstr "M&itwachsendes Inhaltsverzeichnis"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:15
|
||||
msgid "Look & Feel"
|
||||
msgstr "Layout"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:99
|
||||
msgid "Font rescaling wizard"
|
||||
msgstr "Schriftskalierungs-Assistent"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:17
|
||||
msgid "Control the look and feel of the output"
|
||||
msgstr "Kontrolle des Layouts der Ausgabe"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:100
|
||||
msgid ""
|
||||
"<p>This wizard will help you choose an appropriate font size key for your "
|
||||
"needs. Just enter the base font size of the input document and then enter an "
|
||||
"input font size. The wizard will display what font size it will be mapped "
|
||||
"to, by the font rescaling algorithm. You can adjust the algorithm by "
|
||||
"adjusting the output base font size and font key below. When you find values "
|
||||
"suitable for you, click OK.</p>\n"
|
||||
"<p>By default, if the output base font size is zero and/or no font size key "
|
||||
"is specified, calibre will use the values from the current Output Profile. "
|
||||
"</p>\n"
|
||||
"<p>See the <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/user_manual/conversion.html#font-size-"
|
||||
"rescaling\">User Manual</a> for a discussion of how font size rescaling "
|
||||
"works.</p>"
|
||||
msgstr ""
|
||||
"<p>Dieser Assistent hilft, die richtige Schriftgröße für Ihre Bedürfnisse zu "
|
||||
"wählen. Geben Sie die Basis-Schriftgröße des Eingabe Dokuments an und geben "
|
||||
"eine Eingabe Schriftgröße an. Der Assistent zeigt durch den "
|
||||
"Schriftskalierungs-Algorithmus an, auf welche Schriftgröße sie abgebildet "
|
||||
"wird. Sie können den Algorithmus anpassen, indem Sie die Ausgabe Basis-"
|
||||
"Schriftgröße und den Schriftschlüssel unten verändern. Wenn die Werte für "
|
||||
"Sie passend sind, klicken Sie auf OK.</p>\n"
|
||||
"<p>Voreingestellt wird Calibre, falls die Ausgabe Basis-Schriftgröße gleich "
|
||||
"null ist und/oder keine Schriftgrößenschlüssel angegeben wird, die Werte des "
|
||||
"aktuellen Ausgabe Profils verwenden. </p>\n"
|
||||
"<p>Sehen Sie sich das englischsprachige <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/user_manual/conversion.html#font-size-"
|
||||
"rescaling\">Benutzerhandbuch</a> für eine Diskussion, wie die Schriftgrößen-"
|
||||
"Skalierung funktioniert, an.</p>"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:89
|
||||
msgid "Base &font size:"
|
||||
msgstr "Ausgangsschrift&größe:"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:103
|
||||
msgid "&Output document"
|
||||
msgstr "Ausgabe D&okument"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:90
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:92
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:104
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:109
|
||||
msgid "&Base font size:"
|
||||
msgstr "&Basis-Schriftgröße:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:105
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:108
|
||||
msgid "Font size &key:"
|
||||
msgstr "Schrift&größenschlüssel:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:106
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:110
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:112
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:101
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:103
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:118
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:120
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:125
|
||||
@ -2969,43 +3015,77 @@ msgstr "Ausgangsschrift&größe:"
|
||||
msgid " pt"
|
||||
msgstr " Punkt"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:91
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:107
|
||||
msgid "Use &default values"
|
||||
msgstr "Voreingestellte Werte verwen&den"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:108
|
||||
msgid "&Input document"
|
||||
msgstr "E&ingabe Dokument"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:111
|
||||
msgid "&Font size: "
|
||||
msgstr "Schri&ftgröße: "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:113
|
||||
msgid " will map to size: "
|
||||
msgstr " wird abgebildet auf Größe: "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:114
|
||||
msgid "0.0 pt"
|
||||
msgstr "0.0 pt"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:16
|
||||
msgid "Look & Feel"
|
||||
msgstr "Layout"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:18
|
||||
msgid "Control the look and feel of the output"
|
||||
msgstr "Kontrolle des Layouts der Ausgabe"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:100
|
||||
msgid "Base &font size:"
|
||||
msgstr "Ausgangsschrift&größe:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:102
|
||||
msgid "Line &height:"
|
||||
msgstr "Zeilen&höhe:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:93
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:104
|
||||
msgid "Remove &spacing between paragraphs"
|
||||
msgstr "&Abstand zwischen Paragrafen entfernen"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:94
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:105
|
||||
msgid "No text &justification"
|
||||
msgstr "Kein &Blocksatz"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:95
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:106
|
||||
msgid "&Linearize tables"
|
||||
msgstr "Tabellen &linearisieren"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:96
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:107
|
||||
msgid "&Transliterate unicode characters to ASCII."
|
||||
msgstr "Unicode Zeichen in ASCII umse&tzen."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:97
|
||||
msgid "Font size &key:"
|
||||
msgstr "Schrift&größenschlüssel:"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:109
|
||||
msgid "Input character &encoding:"
|
||||
msgstr "Eingabe Z&eichenkodierung:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:98
|
||||
msgid "Input character &encoding"
|
||||
msgstr "Zeichenkodi&erung der Eingabe"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:99
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:110
|
||||
msgid "&Disable font size rescaling"
|
||||
msgstr "Schriftgrößen&skalierung ausschalten"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:100
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:111
|
||||
msgid "Insert &blank line"
|
||||
msgstr "&Leerzeile einfügen"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:101
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:112
|
||||
msgid "Wizard to help you choose an appropriate font size key"
|
||||
msgstr ""
|
||||
"Assistent, der Sie bei der Auswahl des richtigen Schriftgrößen-Schlüssels "
|
||||
"unterstützt"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:114
|
||||
msgid "Extra &CSS"
|
||||
msgstr "Extra &CSS"
|
||||
|
||||
@ -3745,9 +3825,9 @@ msgstr "Sende eMail an"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:598
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:696
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:817
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:698
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:812
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819
|
||||
msgid "No suitable formats"
|
||||
msgstr "Keine geeigneten Formate"
|
||||
|
||||
@ -3786,21 +3866,21 @@ msgstr "Im Anhang ist"
|
||||
msgid "Sent news to"
|
||||
msgstr "Nachrichten senden an"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:697
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:699
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813
|
||||
msgid "Auto convert the following books before uploading to the device?"
|
||||
msgstr ""
|
||||
"Die folgenden Bücher vor dem Laden auf das Gerät automatisch konvertieren?"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:728
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:730
|
||||
msgid "Sending news to device."
|
||||
msgstr "Sende Nachrichten an das Gerät."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:780
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:782
|
||||
msgid "Sending books to device."
|
||||
msgstr "Sende Bücher an das Gerät."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820
|
||||
msgid ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found. Convert the book(s) to a format supported by your device first."
|
||||
@ -3809,11 +3889,11 @@ msgstr ""
|
||||
"fehlen. Konvertieren Sie die Bücher zuerst in ein von Ihrem Gerät "
|
||||
"unterstütztes Format."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:868
|
||||
msgid "No space on device"
|
||||
msgstr "Gerätespeicher voll"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:867
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869
|
||||
msgid ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
@ -3954,132 +4034,132 @@ msgstr ""
|
||||
msgid "new email address"
|
||||
msgstr "Neue eMail Adresse"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:467
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:797
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:465
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:795
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:140
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1045
|
||||
#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53
|
||||
msgid "Error"
|
||||
msgstr "Fehler"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:468
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:466
|
||||
msgid "Failed to install command line tools."
|
||||
msgstr "Die Installation der Befehlszeilen-Tools schlug fehl."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:471
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:469
|
||||
msgid "Command line tools installed"
|
||||
msgstr "Kommandozeilen-Tools installiert"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:470
|
||||
msgid "Command line tools installed in"
|
||||
msgstr "Kommandozeilen-Tools installiert in"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:471
|
||||
msgid ""
|
||||
"If you move calibre.app, you have to re-install the command line tools."
|
||||
msgstr ""
|
||||
"Wenn Sie Calibre.app verschieben, müssen Sie die Befehlszeilen-Tools neu "
|
||||
"installieren."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:524
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:522
|
||||
msgid "No valid plugin path"
|
||||
msgstr "Kein gültiger Plugin Pfad"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:525
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:523
|
||||
msgid "%s is not a valid plugin path"
|
||||
msgstr "%s ist kein gültiger Plugin Pfad"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:528
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:526
|
||||
msgid "Choose plugin"
|
||||
msgstr "Plugin wählen"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:540
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538
|
||||
msgid "Plugin cannot be disabled"
|
||||
msgstr "Plugin kann nicht ausgeschaltet werden"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:541
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539
|
||||
msgid "The plugin: %s cannot be disabled"
|
||||
msgstr "Das Plugin: %s kann nicht ausgeschaltet werden"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:548
|
||||
msgid "Plugin not customizable"
|
||||
msgstr "Plugin nicht anpassbar"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:549
|
||||
msgid "Plugin: %s does not need customization"
|
||||
msgstr "Plugin: %s bedarf keines Anpassens"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:575
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:573
|
||||
msgid "Customize %s"
|
||||
msgstr "Anpassen von %s"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:585
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:583
|
||||
msgid "Cannot remove builtin plugin"
|
||||
msgstr "Kann festinstalliertes Plugin nicht entfernen"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:586
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:584
|
||||
msgid " cannot be removed. It is a builtin plugin. Try disabling it instead."
|
||||
msgstr ""
|
||||
" kann nicht entfernt werden, da es ein festinstalliertes Plugin ist. "
|
||||
"Versuchen Sie, es auszuschalten."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:619
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:617
|
||||
msgid "Error log:"
|
||||
msgstr "Fehler Log:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:626
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:624
|
||||
msgid "Access log:"
|
||||
msgstr "Zugriffs-Protokolldatei:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:654
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:652
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:589
|
||||
msgid "Failed to start content server"
|
||||
msgstr "Content Server konnte nicht gestartet werden"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:678
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:503
|
||||
msgid "Select location for books"
|
||||
msgstr "Speicherort für Bücher wählen"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:686
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:684
|
||||
msgid "Invalid size"
|
||||
msgstr "Ungültige Größe"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:687
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:685
|
||||
msgid "The size %s is invalid. must be of the form widthxheight"
|
||||
msgstr ""
|
||||
"Die Größe %s ist ungültig. Sie muss der Form BreitexHöhe entsprechen."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:738
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:743
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:736
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:741
|
||||
msgid "Invalid database location"
|
||||
msgstr "Ortsangabe der Datenbank ungültig"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:739
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:737
|
||||
msgid "Invalid database location "
|
||||
msgstr "Ortsangabe der Datenbank ungültig "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:740
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:738
|
||||
msgid "<br>Must be a directory."
|
||||
msgstr "<br>Muss ein Verzeichnis sein."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:744
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:742
|
||||
msgid "Invalid database location.<br>Cannot write to "
|
||||
msgstr "Ortsangabe der Datenbank ungültig.<br>Speichern nicht möglich "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:778
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:776
|
||||
msgid "Checking database integrity"
|
||||
msgstr "Überprüfe Vollständigkeit der Datenbank"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:798
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:796
|
||||
msgid "Failed to check database integrity"
|
||||
msgstr "Überprüfung der Vollständigkeit der Datenbank schlug fehl"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:803
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:801
|
||||
msgid "Some inconsistencies found"
|
||||
msgstr "Einige Inkonsistenzen gefunden."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802
|
||||
msgid ""
|
||||
"The following books had formats listed in the database that are not actually "
|
||||
"available. The entries for the formats have been removed. You should check "
|
||||
@ -4192,13 +4272,13 @@ msgstr "Pfade in K&leinschreibung umwandeln"
|
||||
msgid "&Saving books"
|
||||
msgstr "Bücher &speichern"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:471
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:490
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:368
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:173
|
||||
msgid "Preferences"
|
||||
msgstr "Einstellungen"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:491
|
||||
msgid ""
|
||||
"&Location of ebooks (The ebooks are stored in folders sorted by author and "
|
||||
"metadata is stored in the file metadata.db)"
|
||||
@ -4207,19 +4287,19 @@ msgstr ""
|
||||
"sortiert gespeichert und die Metadaten werden in der Datei metadata.db "
|
||||
"gespeichert)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:492
|
||||
msgid "Browse for the new database location"
|
||||
msgstr "Zu einem neuen Ort der Datenbank wechseln"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:475
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:494
|
||||
msgid "Show notification when &new version is available"
|
||||
msgstr "Benachrichtigung anzeigen, wenn &neue Version verfügbar ist"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:476
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:495
|
||||
msgid "Default network &timeout:"
|
||||
msgstr "Voreinstellung für Zei&tüberschreitung bei Netzwerkverbindungen:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:477
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:496
|
||||
msgid ""
|
||||
"Set the default timeout for network fetches (i.e. anytime we go out to the "
|
||||
"internet to get information)"
|
||||
@ -4227,147 +4307,147 @@ msgstr ""
|
||||
"Voreinstellung der Zeitüberschreitung für Netzwerkabrufe festsetzen (Gilt "
|
||||
"immer dann, wenn aus dem Internet Informationen abgerufen werden sollen)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:478
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:497
|
||||
msgid " seconds"
|
||||
msgstr " Sekunden"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:479
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:498
|
||||
msgid "Choose &language (requires restart):"
|
||||
msgstr "Sprache wäh&len (erfordert Neustart):"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:480
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:499
|
||||
msgid "Normal"
|
||||
msgstr "Normal"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:481
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:500
|
||||
msgid "High"
|
||||
msgstr "Hoch"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:482
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501
|
||||
msgid "Low"
|
||||
msgstr "Niedrig"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:483
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502
|
||||
msgid "Job &priority:"
|
||||
msgstr "Auftrags&priorität:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503
|
||||
msgid "Preferred &output format:"
|
||||
msgstr "Bev&orzugtes Ausgabeformat:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504
|
||||
msgid "Preferred &input format order:"
|
||||
msgstr "Bevorzugte Reihenfolge des E&ingabe Formats:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:488
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507
|
||||
msgid "Use &Roman numerals for series number"
|
||||
msgstr "&Römische Ziffern für Reihen Nummerierung verwenden"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:489
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508
|
||||
msgid "Enable system &tray icon (needs restart)"
|
||||
msgstr ""
|
||||
"Symbol im Sys&tembereich der Kontrollleiste aktivieren (erfordert Neustart)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:490
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509
|
||||
msgid "Show ¬ifications in system tray"
|
||||
msgstr "Be&nachrichtigungen im Systembereich der Kontrollleiste anzeigen"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:491
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510
|
||||
msgid "Show cover &browser in a separate window (needs restart)"
|
||||
msgstr "Zeige Cover-Ansicht in einem eigenen Fenster (erfordert Neustart)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:492
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511
|
||||
msgid "Search as you type"
|
||||
msgstr "Suchen während der Eingabe"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:493
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512
|
||||
msgid "Automatically send downloaded &news to ebook reader"
|
||||
msgstr "Geladene &Nachrichten automatisch an das Gerät senden"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:494
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513
|
||||
msgid "&Delete news from library when it is automatically sent to reader"
|
||||
msgstr ""
|
||||
"Nachrichten nach der automatischen Übertragung auf das Gerät aus der "
|
||||
"Bibliothek &löschen"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:495
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514
|
||||
msgid "&Number of covers to show in browse mode (needs restart):"
|
||||
msgstr ""
|
||||
"A&nzahl der anzuzeigenden Umschlagbilder in der Cover-Ansicht (erfordert "
|
||||
"Neustart):"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:496
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515
|
||||
msgid "Toolbar"
|
||||
msgstr "Symbolleiste"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:497
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516
|
||||
msgid "Large"
|
||||
msgstr "Groß"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:498
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517
|
||||
msgid "Medium"
|
||||
msgstr "Mittel"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:499
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518
|
||||
msgid "Small"
|
||||
msgstr "Klein"
|
||||
|
||||
#: /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:519
|
||||
msgid "&Button size in toolbar"
|
||||
msgstr "&Größe der Schaltflächen in der Symbolleiste"
|
||||
|
||||
#: /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:520
|
||||
msgid "Show &text in toolbar buttons"
|
||||
msgstr "Zeige &Text in Schaltflächen der Symbolleiste"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521
|
||||
msgid "Select visible &columns in library view"
|
||||
msgstr "Si&chtbare Spalten in Bibliothek-Ansicht wählen"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524
|
||||
msgid "Use internal &viewer for:"
|
||||
msgstr "Internen &Viewer verwenden für:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525
|
||||
msgid "Add an email address to which to send books"
|
||||
msgstr "Eine eMail Adresse hinzufügen, an die die Bücher gesendet werden"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526
|
||||
msgid "&Add email"
|
||||
msgstr "eM&ail hinzufügen"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527
|
||||
msgid "Make &default"
|
||||
msgstr "Als Voreinstellung verwenden"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528
|
||||
msgid "&Remove email"
|
||||
msgstr "eMail entfe&rnen"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529
|
||||
msgid "calibre can send your books to you (or your reader) by email"
|
||||
msgstr ""
|
||||
"Calibre kann Ihre Bücher an Sie (oder Ihr Lesegerät) per eMail versenden"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530
|
||||
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:512
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531
|
||||
msgid "&Check database integrity"
|
||||
msgstr "Vollständigkeit der &Datenbank überprüfen"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532
|
||||
msgid "&Install command line tools"
|
||||
msgstr "Kommandozeilen-Tools &installieren"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533
|
||||
msgid "Open calibre &configuration directory"
|
||||
msgstr ""
|
||||
msgstr "&Calibre Einstellungsverzeichnis öffnen"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534
|
||||
msgid ""
|
||||
"calibre contains a network server that allows you to access your book "
|
||||
"collection using a browser from anywhere in the world. Any changes to the "
|
||||
@ -4377,25 +4457,25 @@ msgstr ""
|
||||
"von überall aus mit Hilfe eines Browsers auf Ihre Büchersammlung zugreifen "
|
||||
"können. Einstellungsänderungen erfolgen erst nach einem Neustart des Servers."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535
|
||||
msgid "Server &port:"
|
||||
msgstr "Server &Port:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117
|
||||
msgid "&Username:"
|
||||
msgstr "Ben&utzername:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119
|
||||
msgid "&Password:"
|
||||
msgstr "&Passwort:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538
|
||||
msgid ""
|
||||
"If you leave the password blank, anyone will be able to access your book "
|
||||
"collection using the web interface."
|
||||
@ -4403,7 +4483,7 @@ msgstr ""
|
||||
"Wenn Sie das Kennwort leer lassen, kann jeder auf Ihre Büchersammlung über "
|
||||
"das Webinterface zugreifen."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539
|
||||
msgid ""
|
||||
"The maximum size (widthxheight) for displayed covers. Larger covers are "
|
||||
"resized. "
|
||||
@ -4411,41 +4491,41 @@ msgstr ""
|
||||
"Maximale Größe (BreitexHöhe) der angezeigten Umschlagbilder. Größere "
|
||||
"Umschlagbilder werden verkleinert. "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540
|
||||
msgid "Max. &cover size:"
|
||||
msgstr "Maximale Ums&chlagbild-Größe:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212
|
||||
msgid "&Show password"
|
||||
msgstr "Pa&sswort anzeigen"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542
|
||||
msgid "Max. &OPDS items per query:"
|
||||
msgstr "Maximale &ODPS Einträge pro Anfrage:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543
|
||||
msgid "&Start Server"
|
||||
msgstr "Server &starten"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544
|
||||
msgid "St&op Server"
|
||||
msgstr "Server st&oppen"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545
|
||||
msgid "&Test Server"
|
||||
msgstr "Server &testen"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546
|
||||
msgid "Run server &automatically on startup"
|
||||
msgstr "Server &automatisch beim Starten hochfahren"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547
|
||||
msgid "View &server logs"
|
||||
msgstr "Server Logs ansehen"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46
|
||||
msgid ""
|
||||
"<p>Remember to leave calibre running as the server only runs as long as "
|
||||
@ -4463,7 +4543,7 @@ msgstr ""
|
||||
"vollständige Servername oder die IP Adresse des Rechners sein, auf dem "
|
||||
"Calibre läuft."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550
|
||||
msgid ""
|
||||
"Here you can customize the behavior of Calibre by controlling what plugins "
|
||||
"it uses."
|
||||
@ -4471,27 +4551,27 @@ msgstr ""
|
||||
"Hier können Sie das Verhalten von Calibrie anpassen, indem sie festlegen, "
|
||||
"welche Plugins verwendet werden."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551
|
||||
msgid "Enable/&Disable plugin"
|
||||
msgstr "Plugin &ein-/ausschalten"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552
|
||||
msgid "&Customize plugin"
|
||||
msgstr "Plugin &anpassen"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553
|
||||
msgid "&Remove plugin"
|
||||
msgstr "Plugin entfe&rnen"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554
|
||||
msgid "Add new plugin"
|
||||
msgstr "Neues Plugin hinzufügen"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555
|
||||
msgid "Plugin &file:"
|
||||
msgstr "&Plugin Datei:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557
|
||||
msgid "&Add"
|
||||
msgstr "&Hinzufügen"
|
||||
|
||||
@ -4851,28 +4931,38 @@ msgstr "Passwort erforderlich"
|
||||
msgid "Aborting..."
|
||||
msgstr "Abbruch läuft ..."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:155
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:117
|
||||
msgid "Need username and password"
|
||||
msgstr "Benötige Benutzernamen und Passwort"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:118
|
||||
msgid "You must provide a username and/or password to use this news source."
|
||||
msgstr ""
|
||||
"Sie müssen einen Benutzernamen und/oder ein Passwort für die Verwendung "
|
||||
"dieser Nachrichtenquelle angeben."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:169
|
||||
msgid "Created by: "
|
||||
msgstr "Erstellt von: "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:162
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:176
|
||||
msgid "Last downloaded: never"
|
||||
msgstr "Zuletzt geladen: niemals"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:191
|
||||
msgid "%d days, %d hours and %d minutes ago"
|
||||
msgstr "Vor %d Tagen, %d Stunden und %d Minuten"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:179
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:193
|
||||
msgid "Last downloaded"
|
||||
msgstr "Zuletzt geladen"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:199
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:213
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:190
|
||||
msgid "Schedule news download"
|
||||
msgstr "Zeitgesteuerter Nachrichten Download"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:202
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:216
|
||||
msgid "Add a custom news source"
|
||||
msgstr "Neue individuelle Nachrichtenquelle hinzufügen"
|
||||
|
||||
@ -6269,7 +6359,7 @@ msgstr "Buch hat weder Titel noch ISBN"
|
||||
msgid "No matches found for this book"
|
||||
msgstr "Keine Treffer für dieses Buch"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:71
|
||||
msgid "Search"
|
||||
msgstr "Suche"
|
||||
|
||||
@ -7781,6 +7871,7 @@ msgstr "Nachrichtenquelle unbekannt"
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:507
|
||||
msgid "The \"%s\" recipe needs a username and password."
|
||||
msgstr ""
|
||||
"Das \"%s\" Downloadschema benötigt einen Benutzernamen und ein Passwort."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:590
|
||||
msgid "Download finished"
|
||||
@ -9952,6 +10043,9 @@ msgstr "Zeige detailierte Ausgabeinformation. Hilfreich zur Fehlersuche."
|
||||
#~ msgid "Portuguese"
|
||||
#~ msgstr "Portugiesisch"
|
||||
|
||||
#~ msgid "Input character &encoding"
|
||||
#~ msgstr "Zeichenkodi&erung der Eingabe"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Average line length for line breaking if the HTML is from a previous partial "
|
||||
#~ "conversion of a PDF file."
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -6,14 +6,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: calibre 0.4.22\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-10-20 00:20+0000\n"
|
||||
"PO-Revision-Date: 2009-10-20 01:11+0000\n"
|
||||
"POT-Creation-Date: 2009-10-26 17:36+0000\n"
|
||||
"PO-Revision-Date: 2009-10-29 20:47+0000\n"
|
||||
"Last-Translator: Kovid Goyal <Unknown>\n"
|
||||
"Language-Team: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-10-20 07:08+0000\n"
|
||||
"X-Launchpad-Export-Date: 2009-10-30 08:27+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"Generated-By: pygettext.py 1.5\n"
|
||||
|
||||
@ -52,7 +52,7 @@ msgstr "Ne fait strictement rien"
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329
|
||||
#: /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/opf2.py:872
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:21
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29
|
||||
@ -106,13 +106,13 @@ msgstr "Ne fait strictement rien"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:126
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:543
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:769
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:772
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:771
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:774
|
||||
#: /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:431
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:156
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170
|
||||
#: /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:876
|
||||
@ -331,31 +331,31 @@ msgstr ""
|
||||
msgid "This profile is intended for the Amazon Kindle DX."
|
||||
msgstr "Ce profil est prévu pour le Kindle DX d'Amazon."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:29
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:30
|
||||
msgid "Installed plugins"
|
||||
msgstr "Plugins installés"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:30
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:31
|
||||
msgid "Mapping for filetype plugins"
|
||||
msgstr "Liaisons pour les plugins d'import/export"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:31
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32
|
||||
msgid "Local plugin customization"
|
||||
msgstr "Personnalisation des plugins locaux"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33
|
||||
msgid "Disabled plugins"
|
||||
msgstr "Plugins désactivés."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:74
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:75
|
||||
msgid "No valid plugin found in "
|
||||
msgstr "Absence de plugin valide "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:232
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:233
|
||||
msgid "Initialization of plugin %s failed with traceback:"
|
||||
msgstr "L'initialisation du plugin %s a échoué en laissant une trace:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:362
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:363
|
||||
msgid ""
|
||||
" %prog options\n"
|
||||
"\n"
|
||||
@ -367,18 +367,18 @@ msgstr ""
|
||||
" Personnaliser Calibre en chargeant des modules additionnels externes.\n"
|
||||
" "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:368
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:369
|
||||
msgid "Add a plugin by specifying the path to the zip file containing it."
|
||||
msgstr ""
|
||||
"Ajouter un plugin en précisant le chemin vers le fichier zip qui le contient."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:370
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:371
|
||||
msgid "Remove a custom plugin by name. Has no effect on builtin plugins"
|
||||
msgstr ""
|
||||
"Suppression d'un plugin personnalisé d'après son nom. Ceci n'a pas d'effet "
|
||||
"sur les plugins intégrés."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:372
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:373
|
||||
msgid ""
|
||||
"Customize plugin. Specify name of plugin and customization string separated "
|
||||
"by a comma."
|
||||
@ -386,15 +386,15 @@ msgstr ""
|
||||
"Personnaliser le plugin. Spécifier le nom du plugin et la chaîne de "
|
||||
"personnalisation séparés par une virgule."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:374
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:375
|
||||
msgid "List all installed plugins"
|
||||
msgstr "Lister tous les plugins installés"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:376
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:377
|
||||
msgid "Enable the named plugin"
|
||||
msgstr "Activer le plugin nommé"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:378
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:379
|
||||
msgid "Disable the named plugin"
|
||||
msgstr "Désactive le plugin nommé"
|
||||
|
||||
@ -575,7 +575,7 @@ msgid "There is insufficient free space on the storage card"
|
||||
msgstr "Espace insuffisant sur la carte mémoire"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:713
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:218
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1006
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1010
|
||||
@ -894,6 +894,8 @@ msgid ""
|
||||
"algorithm uses these sizes to intelligently rescale fonts. The default is to "
|
||||
"use a mapping based on the output profile you chose."
|
||||
msgstr ""
|
||||
"es these sizes to intelligently rescale fonts. The default is to use a "
|
||||
"mapping based on the output profile you chose."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:151
|
||||
msgid "Disable all rescaling of font sizes."
|
||||
@ -1306,7 +1308,7 @@ msgstr ""
|
||||
"les auteurs, etc. Cette option désactive la génération de cette couverture."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:123
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:111
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:113
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:98
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77
|
||||
msgid "Table of Contents:"
|
||||
@ -1919,7 +1921,7 @@ msgstr ""
|
||||
"Chercher une image de couverture du livre identifié par ISBN sur "
|
||||
"LibraryThing.com\n"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1055
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1057
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1314
|
||||
msgid "Cover"
|
||||
msgstr "Couverture"
|
||||
@ -2048,7 +2050,7 @@ msgstr "Utile pour déboguer"
|
||||
msgid "Usage: ebook-convert INFILE OUTFILE [OPTIONS..]"
|
||||
msgstr "Utilisation: ebook-convert FICHIERENTREE FICHIERSORTIE [OPTIONS..]"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:38
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:39
|
||||
msgid "%s format books are not supported"
|
||||
msgstr "Les livres au format %s ne sont pas supportés"
|
||||
|
||||
@ -2416,7 +2418,7 @@ msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:27
|
||||
msgid ""
|
||||
"Speciy the compression level to use. Scale 1 - 10. 1 being the lowest "
|
||||
"Specify the compression level to use. Scale 1 - 10. 1 being the lowest "
|
||||
"compression but the fastest and 10 being the highest compression but the "
|
||||
"slowest."
|
||||
msgstr ""
|
||||
@ -2707,7 +2709,7 @@ msgstr "entrée"
|
||||
#: /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
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:88
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:99
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44
|
||||
@ -2825,16 +2827,17 @@ msgstr ""
|
||||
|
||||
#: /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/look_and_feel_ui.py:113
|
||||
#: /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
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:62
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:474
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:486
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:487
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:493
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556
|
||||
#: /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:361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375
|
||||
@ -2916,20 +2919,46 @@ msgstr "Sortie FB2"
|
||||
msgid "&Inline TOC"
|
||||
msgstr "TDM intégrée"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:15
|
||||
msgid "Look & Feel"
|
||||
msgstr "Présentation"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:99
|
||||
msgid "Font rescaling wizard"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:17
|
||||
msgid "Control the look and feel of the output"
|
||||
msgstr "Contrôler l'apparence de la sortie"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:100
|
||||
msgid ""
|
||||
"<p>This wizard will help you choose an appropriate font size key for your "
|
||||
"needs. Just enter the base font size of the input document and then enter an "
|
||||
"input font size. The wizard will display what font size it will be mapped "
|
||||
"to, by the font rescaling algorithm. You can adjust the algorithm by "
|
||||
"adjusting the output base font size and font key below. When you find values "
|
||||
"suitable for you, click OK.</p>\n"
|
||||
"<p>By default, if the output base font size is zero and/or no font size key "
|
||||
"is specified, calibre will use the values from the current Output Profile. "
|
||||
"</p>\n"
|
||||
"<p>See the <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/user_manual/conversion.html#font-size-"
|
||||
"rescaling\">User Manual</a> for a discussion of how font size rescaling "
|
||||
"works.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:89
|
||||
msgid "Base &font size:"
|
||||
msgstr "Taille de &police par défaut :"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:103
|
||||
msgid "&Output document"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:90
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:92
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:104
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:109
|
||||
msgid "&Base font size:"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:105
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:108
|
||||
msgid "Font size &key:"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:106
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:110
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:112
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:101
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:103
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:118
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:120
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:125
|
||||
@ -2940,43 +2969,75 @@ msgstr "Taille de &police par défaut :"
|
||||
msgid " pt"
|
||||
msgstr " pt"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:91
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:107
|
||||
msgid "Use &default values"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:108
|
||||
msgid "&Input document"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:111
|
||||
msgid "&Font size: "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:113
|
||||
msgid " will map to size: "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:114
|
||||
msgid "0.0 pt"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:16
|
||||
msgid "Look & Feel"
|
||||
msgstr "Présentation"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:18
|
||||
msgid "Control the look and feel of the output"
|
||||
msgstr "Contrôler l'apparence de la sortie"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:100
|
||||
msgid "Base &font size:"
|
||||
msgstr "Taille de &police par défaut :"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:102
|
||||
msgid "Line &height:"
|
||||
msgstr "&Hauteur de la ligne:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:93
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:104
|
||||
msgid "Remove &spacing between paragraphs"
|
||||
msgstr "&Supprimer l'interligne entre les paragraphes"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:94
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:105
|
||||
msgid "No text &justification"
|
||||
msgstr "Pas de &justification de texte"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:95
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:106
|
||||
msgid "&Linearize tables"
|
||||
msgstr "&Linéariser les tables"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:96
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:107
|
||||
msgid "&Transliterate unicode characters to ASCII."
|
||||
msgstr "Translittérer les caractères unicode vers ASCII."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:97
|
||||
msgid "Font size &key:"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:109
|
||||
msgid "Input character &encoding:"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:98
|
||||
msgid "Input character &encoding"
|
||||
msgstr "&Encodage des caractères en entrée"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:99
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:110
|
||||
msgid "&Disable font size rescaling"
|
||||
msgstr "&Désactiver le redimensionnement de la taille de fonte"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:100
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:111
|
||||
msgid "Insert &blank line"
|
||||
msgstr "Insérer une ligne blanche"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:101
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:112
|
||||
msgid "Wizard to help you choose an appropriate font size key"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:114
|
||||
msgid "Extra &CSS"
|
||||
msgstr "&CSS complémentaire"
|
||||
|
||||
@ -3715,9 +3776,9 @@ msgstr "Envoi d'un email à"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:598
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:696
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:817
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:698
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:812
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819
|
||||
msgid "No suitable formats"
|
||||
msgstr "Pas de format convenable"
|
||||
|
||||
@ -3758,22 +3819,22 @@ msgstr "Le fichier attaché est"
|
||||
msgid "Sent news to"
|
||||
msgstr "Envoi des News vers"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:697
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:699
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813
|
||||
msgid "Auto convert the following books before uploading to the device?"
|
||||
msgstr ""
|
||||
"Convertir automatiquement les livres suivants avant de les télécharger dans "
|
||||
"l'appareil ?"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:728
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:730
|
||||
msgid "Sending news to device."
|
||||
msgstr "Envoi les News vers l'appareil."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:780
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:782
|
||||
msgid "Sending books to device."
|
||||
msgstr "Envoie les livres dans l'appareil."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820
|
||||
msgid ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found. Convert the book(s) to a format supported by your device first."
|
||||
@ -3782,11 +3843,11 @@ msgstr ""
|
||||
"convenable n'a été trouvé. Convertissez avant le(s) livre(s) vers un format "
|
||||
"supporté par votre appareil."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:868
|
||||
msgid "No space on device"
|
||||
msgstr "Le lecteur électronique n'a plus d'espace mémoire disponible"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:867
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869
|
||||
msgid ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
@ -3928,131 +3989,131 @@ msgstr ""
|
||||
msgid "new email address"
|
||||
msgstr "Nouvelle adresse email"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:467
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:797
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:465
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:795
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:140
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1045
|
||||
#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53
|
||||
msgid "Error"
|
||||
msgstr "Erreur"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:468
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:466
|
||||
msgid "Failed to install command line tools."
|
||||
msgstr "L'installation des outils en ligne de commande a échouée."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:471
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:469
|
||||
msgid "Command line tools installed"
|
||||
msgstr "Outils en ligne de commande installés."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:470
|
||||
msgid "Command line tools installed in"
|
||||
msgstr "Outils en ligne de commande installés dans"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:471
|
||||
msgid ""
|
||||
"If you move calibre.app, you have to re-install the command line tools."
|
||||
msgstr ""
|
||||
"Si vous déplacez calibre.app, vous devez réinstaller les outils en ligne de "
|
||||
"commande."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:524
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:522
|
||||
msgid "No valid plugin path"
|
||||
msgstr "Pas de répertoire valide pour les plugins"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:525
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:523
|
||||
msgid "%s is not a valid plugin path"
|
||||
msgstr "%s n'est pas un répertoire valide pour les plugins"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:528
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:526
|
||||
msgid "Choose plugin"
|
||||
msgstr "Choisir le plugin"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:540
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538
|
||||
msgid "Plugin cannot be disabled"
|
||||
msgstr "Le plugin ne peut pas être désactivé"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:541
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539
|
||||
msgid "The plugin: %s cannot be disabled"
|
||||
msgstr "Le plugin %s ne peut pas être désactivé"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:548
|
||||
msgid "Plugin not customizable"
|
||||
msgstr "Le plugin ne peut pas être personnalisé"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:549
|
||||
msgid "Plugin: %s does not need customization"
|
||||
msgstr "Le plugin %s ne peut pas être personnalisé"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:575
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:573
|
||||
msgid "Customize %s"
|
||||
msgstr "Personnalise %s"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:585
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:583
|
||||
msgid "Cannot remove builtin plugin"
|
||||
msgstr "Impossible de supprimer les plugins natifs"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:586
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:584
|
||||
msgid " cannot be removed. It is a builtin plugin. Try disabling it instead."
|
||||
msgstr ""
|
||||
" ne peut pas être retiré. C'est un plugin natif. Essayer plutôt de le "
|
||||
"désactiver"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:619
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:617
|
||||
msgid "Error log:"
|
||||
msgstr "Journal d'erreur:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:626
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:624
|
||||
msgid "Access log:"
|
||||
msgstr "Journal des accès:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:654
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:652
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:589
|
||||
msgid "Failed to start content server"
|
||||
msgstr "A échoué lors du démarrage du serveur de contenu"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:678
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:503
|
||||
msgid "Select location for books"
|
||||
msgstr "Sélectionner l'emplacement pour les livres"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:686
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:684
|
||||
msgid "Invalid size"
|
||||
msgstr "Taille invalide"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:687
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:685
|
||||
msgid "The size %s is invalid. must be of the form widthxheight"
|
||||
msgstr "La taille %s est invalide. Doit être au format largeurxhauteur"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:738
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:743
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:736
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:741
|
||||
msgid "Invalid database location"
|
||||
msgstr "Chemin de la database invalide"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:739
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:737
|
||||
msgid "Invalid database location "
|
||||
msgstr "Chemin de la database invalide "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:740
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:738
|
||||
msgid "<br>Must be a directory."
|
||||
msgstr "<br>Doit être un répertoire."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:744
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:742
|
||||
msgid "Invalid database location.<br>Cannot write to "
|
||||
msgstr "Chemin de la database invalide.<br>Erreur en écriture "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:778
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:776
|
||||
msgid "Checking database integrity"
|
||||
msgstr "Vérifier l'intégrité de la base de données"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:798
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:796
|
||||
msgid "Failed to check database integrity"
|
||||
msgstr "La vérification de l'intégrité de la base de données a échouée"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:803
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:801
|
||||
msgid "Some inconsistencies found"
|
||||
msgstr "Des incohérences ont été trouvées"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802
|
||||
msgid ""
|
||||
"The following books had formats listed in the database that are not actually "
|
||||
"available. The entries for the formats have been removed. You should check "
|
||||
@ -4165,13 +4226,13 @@ msgstr "Changer les chemins en miniscu&le"
|
||||
msgid "&Saving books"
|
||||
msgstr "&Sauvegarde de livres"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:471
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:490
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:368
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:173
|
||||
msgid "Preferences"
|
||||
msgstr "Préférences"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:491
|
||||
msgid ""
|
||||
"&Location of ebooks (The ebooks are stored in folders sorted by author and "
|
||||
"metadata is stored in the file metadata.db)"
|
||||
@ -4179,19 +4240,19 @@ msgstr ""
|
||||
"&Localisation des ebooks (Les ebooks sont stockés dans les répertoires triés "
|
||||
"par auteur et les métadonnées sont stockées dans le fichier metadata.db)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:492
|
||||
msgid "Browse for the new database location"
|
||||
msgstr "Choisir un nouvel emplacement pour la base de données"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:475
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:494
|
||||
msgid "Show notification when &new version is available"
|
||||
msgstr "Envoyer une notification quand une nouvelle version est disponible."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:476
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:495
|
||||
msgid "Default network &timeout:"
|
||||
msgstr "&Timeout par défaut pour les connexions réseau :"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:477
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:496
|
||||
msgid ""
|
||||
"Set the default timeout for network fetches (i.e. anytime we go out to the "
|
||||
"internet to get information)"
|
||||
@ -4199,149 +4260,149 @@ msgstr ""
|
||||
"Indiquer le timeout par défaut pour les recherches réseau (c-à-d le temps "
|
||||
"utilisé pour aller rechercher l'information par internet)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:478
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:497
|
||||
msgid " seconds"
|
||||
msgstr " secondes"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:479
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:498
|
||||
msgid "Choose &language (requires restart):"
|
||||
msgstr "Choisir la &langue (nécessite un redémarrage):"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:480
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:499
|
||||
msgid "Normal"
|
||||
msgstr "Normale"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:481
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:500
|
||||
msgid "High"
|
||||
msgstr "Haute"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:482
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501
|
||||
msgid "Low"
|
||||
msgstr "Basse"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:483
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502
|
||||
msgid "Job &priority:"
|
||||
msgstr "&Priorité du travail:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503
|
||||
msgid "Preferred &output format:"
|
||||
msgstr "Format de &sortie préféré:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504
|
||||
msgid "Preferred &input format order:"
|
||||
msgstr "Ordre préféré pour le format d'entrée"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:488
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507
|
||||
msgid "Use &Roman numerals for series number"
|
||||
msgstr "Utiliser les chiffres &romains pour les numéros de séries"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:489
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508
|
||||
msgid "Enable system &tray icon (needs restart)"
|
||||
msgstr ""
|
||||
"Ac&tiver l'affichage dans la zone de notification (redémarrage nécessaire)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:490
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509
|
||||
msgid "Show ¬ifications in system tray"
|
||||
msgstr "Afficher les alertes dans la zone de ¬ification"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:491
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510
|
||||
msgid "Show cover &browser in a separate window (needs restart)"
|
||||
msgstr ""
|
||||
"Afficher la navigation par couverture dans une fenêtre séparée (redémarrage "
|
||||
"nécessaire)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:492
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511
|
||||
msgid "Search as you type"
|
||||
msgstr "Rechercher lors de la saisie"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:493
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512
|
||||
msgid "Automatically send downloaded &news to ebook reader"
|
||||
msgstr "Envoyer automatiquement les i&nformations vers le lecteur d'ebook"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:494
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513
|
||||
msgid "&Delete news from library when it is automatically sent to reader"
|
||||
msgstr ""
|
||||
"Supprimer les News de la librairie lorsque l'envoi est automatique vers "
|
||||
"l'appareil"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:495
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514
|
||||
msgid "&Number of covers to show in browse mode (needs restart):"
|
||||
msgstr ""
|
||||
"&Nombre de couvertures à afficher dans le mode navigation (nécessite un "
|
||||
"redémarrage):"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:496
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515
|
||||
msgid "Toolbar"
|
||||
msgstr "Barre d'outils"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:497
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516
|
||||
msgid "Large"
|
||||
msgstr "Large"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:498
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517
|
||||
msgid "Medium"
|
||||
msgstr "Moyen"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:499
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518
|
||||
msgid "Small"
|
||||
msgstr "Petit"
|
||||
|
||||
#: /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:519
|
||||
msgid "&Button size in toolbar"
|
||||
msgstr "Taille des boutons dans la barre d'outils"
|
||||
|
||||
#: /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:520
|
||||
msgid "Show &text in toolbar buttons"
|
||||
msgstr "Afficher le &texte pour les boutons de la barre d'outils"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521
|
||||
msgid "Select visible &columns in library view"
|
||||
msgstr "Sélectionner les &colonnes visibles dans la vue librairie"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524
|
||||
msgid "Use internal &viewer for:"
|
||||
msgstr "Utiliser l'afficheur interne pour:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525
|
||||
msgid "Add an email address to which to send books"
|
||||
msgstr "Ajouter une adresse email où les livres seront envoyés"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526
|
||||
msgid "&Add email"
|
||||
msgstr "&Ajouter un email"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527
|
||||
msgid "Make &default"
|
||||
msgstr "Par &défaut"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528
|
||||
msgid "&Remove email"
|
||||
msgstr "&Supprimer un email"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529
|
||||
msgid "calibre can send your books to you (or your reader) by email"
|
||||
msgstr ""
|
||||
"calibre peut envoyer vos livres vers vous (ou votre lecteur) par email"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530
|
||||
msgid "&Maximum number of waiting worker processes (needs restart):"
|
||||
msgstr ""
|
||||
"Nombre &maximum de processus de travail en attente (nécessite un "
|
||||
"redémarrage):"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531
|
||||
msgid "&Check database integrity"
|
||||
msgstr "Vérifier l'intégrité de la base de données"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532
|
||||
msgid "&Install command line tools"
|
||||
msgstr "&Installer les outils en ligne de commande"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533
|
||||
msgid "Open calibre &configuration directory"
|
||||
msgstr ""
|
||||
msgstr "Ouvrir le répertoire de &configuration de calibre"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534
|
||||
msgid ""
|
||||
"calibre contains a network server that allows you to access your book "
|
||||
"collection using a browser from anywhere in the world. Any changes to the "
|
||||
@ -4352,25 +4413,25 @@ msgstr ""
|
||||
"monde. Toutes modifications des paramètres ne prendra effet qu'après un "
|
||||
"redémarrage du serveur."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535
|
||||
msgid "Server &port:"
|
||||
msgstr "&Port du serveur:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117
|
||||
msgid "&Username:"
|
||||
msgstr "Nom d'&utilisateur:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119
|
||||
msgid "&Password:"
|
||||
msgstr "Mot de &passe :"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538
|
||||
msgid ""
|
||||
"If you leave the password blank, anyone will be able to access your book "
|
||||
"collection using the web interface."
|
||||
@ -4378,7 +4439,7 @@ msgstr ""
|
||||
"Si vous laisser le mot de passe à vide, tout le monde pourra accéder à votre "
|
||||
"collection de livres en utilisant une interface web."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539
|
||||
msgid ""
|
||||
"The maximum size (widthxheight) for displayed covers. Larger covers are "
|
||||
"resized. "
|
||||
@ -4386,41 +4447,41 @@ msgstr ""
|
||||
"Taille maximale (largeurxhauteur) pour l'affichage des couvertures. Les "
|
||||
"couvertures plus larges sont redimensionnées. "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540
|
||||
msgid "Max. &cover size:"
|
||||
msgstr "Taille max. de la couverture:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212
|
||||
msgid "&Show password"
|
||||
msgstr "&Montrer le mot de passe"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542
|
||||
msgid "Max. &OPDS items per query:"
|
||||
msgstr "Nombre d'articles OPDS max. par requête:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543
|
||||
msgid "&Start Server"
|
||||
msgstr "Démarrer le &Serveur"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544
|
||||
msgid "St&op Server"
|
||||
msgstr "Arrêter le serveur"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545
|
||||
msgid "&Test Server"
|
||||
msgstr "&Tester le serveur"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546
|
||||
msgid "Run server &automatically on startup"
|
||||
msgstr "Lancer &automatiquement le serveur au démarrage"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547
|
||||
msgid "View &server logs"
|
||||
msgstr "Afficher les logs du &serveur"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46
|
||||
msgid ""
|
||||
"<p>Remember to leave calibre running as the server only runs as long as "
|
||||
@ -4437,7 +4498,7 @@ msgstr ""
|
||||
"Stanza de votre iPhone. Ici nomhote doit être le nom d'hôte complet ou "
|
||||
"l'adresse IP de l'ordinateur sur lequel calibre est démarré."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550
|
||||
msgid ""
|
||||
"Here you can customize the behavior of Calibre by controlling what plugins "
|
||||
"it uses."
|
||||
@ -4445,27 +4506,27 @@ msgstr ""
|
||||
"Ici vous pouvez personnaliser le comportement de Calibre en choisissant les "
|
||||
"plugins que vous souhaitez utiliser."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551
|
||||
msgid "Enable/&Disable plugin"
|
||||
msgstr "Activer/Désactiver le plugin"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552
|
||||
msgid "&Customize plugin"
|
||||
msgstr "Personnaliser le plugin"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553
|
||||
msgid "&Remove plugin"
|
||||
msgstr "Supprimer le plugin"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554
|
||||
msgid "Add new plugin"
|
||||
msgstr "Ajouter un nouveau plugin"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555
|
||||
msgid "Plugin &file:"
|
||||
msgstr "&Fichier plugin:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557
|
||||
msgid "&Add"
|
||||
msgstr "&Ajouter"
|
||||
|
||||
@ -4829,28 +4890,38 @@ msgstr "Mot de passe nécessaire"
|
||||
msgid "Aborting..."
|
||||
msgstr "Abandon..."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:155
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:117
|
||||
msgid "Need username and password"
|
||||
msgstr "Nécessite un nom d'utilisateur et un mot de passe"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:118
|
||||
msgid "You must provide a username and/or password to use this news source."
|
||||
msgstr ""
|
||||
"Vous devez fournir un nom d'utilisateur et un mode passe pour utiliser cette "
|
||||
"source de News."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:169
|
||||
msgid "Created by: "
|
||||
msgstr "Créé par: "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:162
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:176
|
||||
msgid "Last downloaded: never"
|
||||
msgstr "Dernier téléchargé: jamais"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:191
|
||||
msgid "%d days, %d hours and %d minutes ago"
|
||||
msgstr "il y a %d jours, %d heures et %d minutes"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:179
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:193
|
||||
msgid "Last downloaded"
|
||||
msgstr "Dernier téléchargé"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:199
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:213
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:190
|
||||
msgid "Schedule news download"
|
||||
msgstr "Planifier le téléchargement des News"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:202
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:216
|
||||
msgid "Add a custom news source"
|
||||
msgstr "Ajouter une source personnalisée de News"
|
||||
|
||||
@ -6244,7 +6315,7 @@ msgstr "Le livre n'a ni titre ni ISBN"
|
||||
msgid "No matches found for this book"
|
||||
msgstr "Aucune correspondance pour ce livre"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:71
|
||||
msgid "Search"
|
||||
msgstr "Trouver"
|
||||
|
||||
@ -7755,6 +7826,7 @@ msgstr "Source de News inconnue"
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:507
|
||||
msgid "The \"%s\" recipe needs a username and password."
|
||||
msgstr ""
|
||||
"La recette \"%s\" a besoin d'un nom d'utilisateur et d'un mot de passe."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:590
|
||||
msgid "Download finished"
|
||||
@ -9868,6 +9940,9 @@ msgstr "Affiche des informations détaillées. Utile pour le débogage"
|
||||
#~ msgid "Starting conversion of %d books"
|
||||
#~ msgstr "Commence la conversion de %d livres"
|
||||
|
||||
#~ msgid "Input character &encoding"
|
||||
#~ msgstr "&Encodage des caractères en entrée"
|
||||
|
||||
#~ msgid "Catalan"
|
||||
#~ msgstr "Catalan"
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -7,14 +7,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: calibre\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-10-20 00:20+0000\n"
|
||||
"POT-Creation-Date: 2009-10-21 01:30+0000\n"
|
||||
"PO-Revision-Date: 2009-10-20 01:11+0000\n"
|
||||
"Last-Translator: Bartosz Kaszubowski <gosimek@gmail.com>\n"
|
||||
"Language-Team: Polish <pl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-10-20 07:09+0000\n"
|
||||
"X-Launchpad-Export-Date: 2009-10-21 07:27+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41
|
||||
@ -52,7 +52,7 @@ msgstr "Ta opcja nic nie zmienia"
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329
|
||||
#: /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/opf2.py:872
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:21
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29
|
||||
@ -112,7 +112,7 @@ msgstr "Ta opcja nic nie zmienia"
|
||||
#: /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:431
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:156
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170
|
||||
#: /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:876
|
||||
@ -556,7 +556,7 @@ msgid "There is insufficient free space on the storage card"
|
||||
msgstr "Na karcie pamięci jest niewystarczająca ilość wolnego miejsca"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:713
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:218
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1006
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1010
|
||||
@ -1706,7 +1706,7 @@ msgid ""
|
||||
"Fetch a cover image for the book identified by ISBN from LibraryThing.com\n"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1055
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1057
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1314
|
||||
msgid "Cover"
|
||||
msgstr "Okładka"
|
||||
@ -1833,7 +1833,7 @@ msgstr "Użyteczne dla debugowania."
|
||||
msgid "Usage: ebook-convert INFILE OUTFILE [OPTIONS..]"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:38
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:39
|
||||
msgid "%s format books are not supported"
|
||||
msgstr "książki formatu %s nie są wspierane"
|
||||
|
||||
@ -4407,28 +4407,36 @@ msgstr "Wymagane hasło"
|
||||
msgid "Aborting..."
|
||||
msgstr "Przerywanie..."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:155
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:117
|
||||
msgid "Need username and password"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:118
|
||||
msgid "You must provide a username and/or password to use this news source."
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:169
|
||||
msgid "Created by: "
|
||||
msgstr "Stworzone przez: "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:162
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:176
|
||||
msgid "Last downloaded: never"
|
||||
msgstr "Ostatnio pobrano: nigdy"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:191
|
||||
msgid "%d days, %d hours and %d minutes ago"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:179
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:193
|
||||
msgid "Last downloaded"
|
||||
msgstr "Ostatnio pobrano"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:199
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:213
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:190
|
||||
msgid "Schedule news download"
|
||||
msgstr "Zaplanuj pobieranie aktualności"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:202
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:216
|
||||
msgid "Add a custom news source"
|
||||
msgstr "Dodaj własne źródło aktualności"
|
||||
|
||||
@ -5734,7 +5742,7 @@ msgstr "Książka nie ma, ani tytułu, ani kodu ISBN"
|
||||
msgid "No matches found for this book"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:71
|
||||
msgid "Search"
|
||||
msgstr "Szukaj"
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -7,14 +7,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: calibre\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-10-20 00:20+0000\n"
|
||||
"PO-Revision-Date: 2009-10-20 03:49+0000\n"
|
||||
"Last-Translator: Kyle WANG <waxaca@163.com>\n"
|
||||
"POT-Creation-Date: 2009-10-26 17:36+0000\n"
|
||||
"PO-Revision-Date: 2009-10-29 20:48+0000\n"
|
||||
"Last-Translator: irvenwindson <Yuexi.Chen@gmail.com>\n"
|
||||
"Language-Team: Simplified Chinese <zh_CN@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-10-20 07:09+0000\n"
|
||||
"X-Launchpad-Export-Date: 2009-10-30 08:28+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41
|
||||
@ -52,7 +52,7 @@ msgstr "不做任何处理"
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329
|
||||
#: /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/opf2.py:872
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:21
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29
|
||||
@ -106,13 +106,13 @@ msgstr "不做任何处理"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:126
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:543
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:552
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:769
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:772
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:771
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:774
|
||||
#: /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:431
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:156
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170
|
||||
#: /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:876
|
||||
@ -312,31 +312,31 @@ msgstr "该配置文件适用 SONY PRS 产品线,如 500/505/700 型号等,
|
||||
msgid "This profile is intended for the Amazon Kindle DX."
|
||||
msgstr "该配置文件适用 Amazon Kindle DX。"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:29
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:30
|
||||
msgid "Installed plugins"
|
||||
msgstr "已安装插件"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:30
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:31
|
||||
msgid "Mapping for filetype plugins"
|
||||
msgstr "关联插件文件类型"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:31
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32
|
||||
msgid "Local plugin customization"
|
||||
msgstr "本地插件定制"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33
|
||||
msgid "Disabled plugins"
|
||||
msgstr "禁用插件"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:74
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:75
|
||||
msgid "No valid plugin found in "
|
||||
msgstr "无有效插件位于 "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:232
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:233
|
||||
msgid "Initialization of plugin %s failed with traceback:"
|
||||
msgstr "插件 %s 初始化返回失败回溯:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:362
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:363
|
||||
msgid ""
|
||||
" %prog options\n"
|
||||
"\n"
|
||||
@ -348,29 +348,29 @@ msgstr ""
|
||||
" 通过加载外部插件定制 Calibre。\n"
|
||||
" "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:368
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:369
|
||||
msgid "Add a plugin by specifying the path to the zip file containing it."
|
||||
msgstr "添加插件,指定包含其 zip 文件的路径。"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:370
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:371
|
||||
msgid "Remove a custom plugin by name. Has no effect on builtin plugins"
|
||||
msgstr "按名称移除自定义插件(对内置插件无效)。"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:372
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:373
|
||||
msgid ""
|
||||
"Customize plugin. Specify name of plugin and customization string separated "
|
||||
"by a comma."
|
||||
msgstr "定制插件,指定插件名和自定制字符串,使用逗号分隔。"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:374
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:375
|
||||
msgid "List all installed plugins"
|
||||
msgstr "列出全部已装插件"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:376
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:377
|
||||
msgid "Enable the named plugin"
|
||||
msgstr "启用该名称插件"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:378
|
||||
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:379
|
||||
msgid "Disable the named plugin"
|
||||
msgstr "禁用该名称插件"
|
||||
|
||||
@ -549,7 +549,7 @@ msgid "There is insufficient free space on the storage card"
|
||||
msgstr "存储卡上的空间不足"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:713
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:218
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:122
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1006
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1010
|
||||
@ -1148,7 +1148,7 @@ msgid ""
|
||||
msgstr "正常情况下,如果输入文件没有封面,您也未指定,会生成一个默认封面带有标题、作者等信息。选定此选项可以禁用生成默认封面。"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:123
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:111
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:113
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:98
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77
|
||||
msgid "Table of Contents:"
|
||||
@ -1711,7 +1711,7 @@ msgstr ""
|
||||
"\n"
|
||||
"通过书籍的ISBN从LibraryThing.com获得书籍的封面图片\n"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1055
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1057
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1314
|
||||
msgid "Cover"
|
||||
msgstr "封面"
|
||||
@ -1834,7 +1834,7 @@ msgstr "有利调试。"
|
||||
msgid "Usage: ebook-convert INFILE OUTFILE [OPTIONS..]"
|
||||
msgstr "用法: ebook-convert INFILE OUTFILE [OPTIONS..]"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:38
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:39
|
||||
msgid "%s format books are not supported"
|
||||
msgstr "不支持 %s 格式电子书"
|
||||
|
||||
@ -2177,10 +2177,10 @@ msgstr "指定输出文档的字符集编码。默认为 utf-8。"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:27
|
||||
msgid ""
|
||||
"Speciy the compression level to use. Scale 1 - 10. 1 being the lowest "
|
||||
"Specify the compression level to use. Scale 1 - 10. 1 being the lowest "
|
||||
"compression but the fastest and 10 being the highest compression but the "
|
||||
"slowest."
|
||||
msgstr "指定使用的压缩水平。从1到10。1压缩率最低但最快,10压缩率最高但最慢。"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:32
|
||||
msgid ""
|
||||
@ -2441,7 +2441,7 @@ msgstr "输入"
|
||||
#: /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
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:88
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:99
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44
|
||||
@ -2554,16 +2554,17 @@ msgstr "选择文件夹放置调试输出。如果您选择文件夹,将在期
|
||||
|
||||
#: /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/look_and_feel_ui.py:113
|
||||
#: /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
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:62
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:474
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:486
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:487
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:493
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556
|
||||
#: /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:361
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375
|
||||
@ -2642,20 +2643,46 @@ msgstr "FB2 输出"
|
||||
msgid "&Inline TOC"
|
||||
msgstr "内置目录(&I)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:15
|
||||
msgid "Look & Feel"
|
||||
msgstr "外观"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:99
|
||||
msgid "Font rescaling wizard"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:17
|
||||
msgid "Control the look and feel of the output"
|
||||
msgstr "控制输出文件外观"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:100
|
||||
msgid ""
|
||||
"<p>This wizard will help you choose an appropriate font size key for your "
|
||||
"needs. Just enter the base font size of the input document and then enter an "
|
||||
"input font size. The wizard will display what font size it will be mapped "
|
||||
"to, by the font rescaling algorithm. You can adjust the algorithm by "
|
||||
"adjusting the output base font size and font key below. When you find values "
|
||||
"suitable for you, click OK.</p>\n"
|
||||
"<p>By default, if the output base font size is zero and/or no font size key "
|
||||
"is specified, calibre will use the values from the current Output Profile. "
|
||||
"</p>\n"
|
||||
"<p>See the <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/user_manual/conversion.html#font-size-"
|
||||
"rescaling\">User Manual</a> for a discussion of how font size rescaling "
|
||||
"works.</p>"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:89
|
||||
msgid "Base &font size:"
|
||||
msgstr "基准字体大小(&f):"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:103
|
||||
msgid "&Output document"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:90
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:92
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:104
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:109
|
||||
msgid "&Base font size:"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:105
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:108
|
||||
msgid "Font size &key:"
|
||||
msgstr "字体大小 Key(&K):"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:106
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:110
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:112
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:101
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:103
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:118
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:120
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:125
|
||||
@ -2666,43 +2693,75 @@ msgstr "基准字体大小(&f):"
|
||||
msgid " pt"
|
||||
msgstr " pt"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:91
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:107
|
||||
msgid "Use &default values"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:108
|
||||
msgid "&Input document"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:111
|
||||
msgid "&Font size: "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:113
|
||||
msgid " will map to size: "
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:114
|
||||
msgid "0.0 pt"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:16
|
||||
msgid "Look & Feel"
|
||||
msgstr "外观"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:18
|
||||
msgid "Control the look and feel of the output"
|
||||
msgstr "控制输出文件外观"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:100
|
||||
msgid "Base &font size:"
|
||||
msgstr "基准字体大小(&f):"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:102
|
||||
msgid "Line &height:"
|
||||
msgstr "行高(&H):"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:93
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:104
|
||||
msgid "Remove &spacing between paragraphs"
|
||||
msgstr "删除段间空行(&S)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:94
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:105
|
||||
msgid "No text &justification"
|
||||
msgstr "关闭文字调整(&j)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:95
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:106
|
||||
msgid "&Linearize tables"
|
||||
msgstr "线性化重整表格(&L)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:96
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:107
|
||||
msgid "&Transliterate unicode characters to ASCII."
|
||||
msgstr "将unicode字符转换为ASCII字符."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:97
|
||||
msgid "Font size &key:"
|
||||
msgstr "字体大小 Key(&K):"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:109
|
||||
msgid "Input character &encoding:"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:98
|
||||
msgid "Input character &encoding"
|
||||
msgstr "输入字符编码(&E)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:99
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:110
|
||||
msgid "&Disable font size rescaling"
|
||||
msgstr "关闭文字大小缩放(&D)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:100
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:111
|
||||
msgid "Insert &blank line"
|
||||
msgstr "插入空行(&B)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:101
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:112
|
||||
msgid "Wizard to help you choose an appropriate font size key"
|
||||
msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:114
|
||||
msgid "Extra &CSS"
|
||||
msgstr "额外CSS样式(&C)"
|
||||
|
||||
@ -3423,9 +3482,9 @@ msgstr "正在发送邮件至"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:598
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:696
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:810
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:817
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:698
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:812
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819
|
||||
msgid "No suitable formats"
|
||||
msgstr "无合适格式"
|
||||
|
||||
@ -3462,30 +3521,30 @@ msgstr "附加"
|
||||
msgid "Sent news to"
|
||||
msgstr "将新闻发送到"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:697
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:811
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:699
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813
|
||||
msgid "Auto convert the following books before uploading to the device?"
|
||||
msgstr "上传到设备之前自动转换如下书籍?"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:728
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:730
|
||||
msgid "Sending news to device."
|
||||
msgstr "将新闻传送到设备."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:780
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:782
|
||||
msgid "Sending books to device."
|
||||
msgstr "传送书籍到设备。"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:818
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820
|
||||
msgid ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found. Convert the book(s) to a format supported by your device first."
|
||||
msgstr "无法上传下列书籍到设备,未找到何时格式。请先将书籍转换为设备支持的格式。"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:866
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:868
|
||||
msgid "No space on device"
|
||||
msgstr "设备存储空间不足"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:867
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869
|
||||
msgid ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr "<p>由于设备存储空间不足无法将书籍传送到设备上 "
|
||||
@ -3620,127 +3679,127 @@ msgstr "如选中, 下载的新闻奖自动被发送到 <br>该邮件地址 (使
|
||||
msgid "new email address"
|
||||
msgstr "新邮件地址"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:467
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:797
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:465
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:795
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:140
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1045
|
||||
#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53
|
||||
msgid "Error"
|
||||
msgstr "错误"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:468
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:466
|
||||
msgid "Failed to install command line tools."
|
||||
msgstr "安装命令行工具失败。"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:471
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:469
|
||||
msgid "Command line tools installed"
|
||||
msgstr "命令行工具已安装"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:470
|
||||
msgid "Command line tools installed in"
|
||||
msgstr "命令行工具安装于"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:471
|
||||
msgid ""
|
||||
"If you move calibre.app, you have to re-install the command line tools."
|
||||
msgstr "如果您移动 calibre.app,您必须重新安装命令行工具。"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:524
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:522
|
||||
msgid "No valid plugin path"
|
||||
msgstr "不合法的插件路径"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:525
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:523
|
||||
msgid "%s is not a valid plugin path"
|
||||
msgstr "%s 不是合法的插件路径"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:528
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:526
|
||||
msgid "Choose plugin"
|
||||
msgstr "选择插件"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:540
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538
|
||||
msgid "Plugin cannot be disabled"
|
||||
msgstr "该插件不能被禁用"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:541
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539
|
||||
msgid "The plugin: %s cannot be disabled"
|
||||
msgstr "插件: %s 不能被禁用"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:548
|
||||
msgid "Plugin not customizable"
|
||||
msgstr "无法个性化插件"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:549
|
||||
msgid "Plugin: %s does not need customization"
|
||||
msgstr "插件: %s 无需个性化设置"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:575
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:573
|
||||
msgid "Customize %s"
|
||||
msgstr "个性化 %s"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:585
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:583
|
||||
msgid "Cannot remove builtin plugin"
|
||||
msgstr "不能移除内置插件"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:586
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:584
|
||||
msgid " cannot be removed. It is a builtin plugin. Try disabling it instead."
|
||||
msgstr " 无法移除. 该插件是内置插件. 您可以尝试禁用它而非移除."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:619
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:617
|
||||
msgid "Error log:"
|
||||
msgstr "错误日志:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:626
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:624
|
||||
msgid "Access log:"
|
||||
msgstr "访问日志:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:654
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:652
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:589
|
||||
msgid "Failed to start content server"
|
||||
msgstr "无法启动内容服务器"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:678
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:503
|
||||
msgid "Select location for books"
|
||||
msgstr "选择书籍位置"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:686
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:684
|
||||
msgid "Invalid size"
|
||||
msgstr "无效的尺寸"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:687
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:685
|
||||
msgid "The size %s is invalid. must be of the form widthxheight"
|
||||
msgstr "尺寸大小 %s 不合法. 合法的格式为 宽度x高度"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:738
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:743
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:736
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:741
|
||||
msgid "Invalid database location"
|
||||
msgstr "不合法的数据库路径"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:739
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:737
|
||||
msgid "Invalid database location "
|
||||
msgstr "不合法的数据库路径 "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:740
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:738
|
||||
msgid "<br>Must be a directory."
|
||||
msgstr "<br>必须是文件目录."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:744
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:742
|
||||
msgid "Invalid database location.<br>Cannot write to "
|
||||
msgstr "不合法的数据库路径.<br>无法写入到 "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:778
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:776
|
||||
msgid "Checking database integrity"
|
||||
msgstr "检查数据库完整性"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:798
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:796
|
||||
msgid "Failed to check database integrity"
|
||||
msgstr "检查数据库完整性失败"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:803
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:801
|
||||
msgid "Some inconsistencies found"
|
||||
msgstr "找到部分不一致"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802
|
||||
msgid ""
|
||||
"The following books had formats listed in the database that are not actually "
|
||||
"available. The entries for the formats have been removed. You should check "
|
||||
@ -3840,240 +3899,240 @@ msgstr "将路径名改为小写(&L)"
|
||||
msgid "&Saving books"
|
||||
msgstr "保存书籍(&S)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:471
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:490
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:368
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:173
|
||||
msgid "Preferences"
|
||||
msgstr "首选项"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:472
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:491
|
||||
msgid ""
|
||||
"&Location of ebooks (The ebooks are stored in folders sorted by author and "
|
||||
"metadata is stored in the file metadata.db)"
|
||||
msgstr "电子书位置(&L)(电子书籍按作者排序存储在文件目录中,元数据存储在 metadata.db)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:473
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:492
|
||||
msgid "Browse for the new database location"
|
||||
msgstr "选择新的数据库路径"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:475
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:494
|
||||
msgid "Show notification when &new version is available"
|
||||
msgstr "新版程序可用时提示(&N)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:476
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:495
|
||||
msgid "Default network &timeout:"
|
||||
msgstr "默认网络超时(&t)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:477
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:496
|
||||
msgid ""
|
||||
"Set the default timeout for network fetches (i.e. anytime we go out to the "
|
||||
"internet to get information)"
|
||||
msgstr "设置网络访问的默认超时限制 (例如在从互联网获取信息时的超时)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:478
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:497
|
||||
msgid " seconds"
|
||||
msgstr " 秒"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:479
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:498
|
||||
msgid "Choose &language (requires restart):"
|
||||
msgstr "选择界面语言, 需重启(&l):"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:480
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:499
|
||||
msgid "Normal"
|
||||
msgstr "普通"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:481
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:500
|
||||
msgid "High"
|
||||
msgstr "高"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:482
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501
|
||||
msgid "Low"
|
||||
msgstr "低"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:483
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502
|
||||
msgid "Job &priority:"
|
||||
msgstr "进程优先级(&p):"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:484
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503
|
||||
msgid "Preferred &output format:"
|
||||
msgstr "首选输出格式(&O):"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:485
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504
|
||||
msgid "Preferred &input format order:"
|
||||
msgstr "首选输入格式顺序(&I):"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:488
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507
|
||||
msgid "Use &Roman numerals for series number"
|
||||
msgstr "使用罗马数字作为序列数(&R)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:489
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508
|
||||
msgid "Enable system &tray icon (needs restart)"
|
||||
msgstr "显示系统托盘图标, 需重启生效(&t)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:490
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509
|
||||
msgid "Show ¬ifications in system tray"
|
||||
msgstr "在系统托盘除显示和提醒"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:491
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510
|
||||
msgid "Show cover &browser in a separate window (needs restart)"
|
||||
msgstr "在单独的窗口显示封面浏览界面, 需重启生效(&b)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:492
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511
|
||||
msgid "Search as you type"
|
||||
msgstr "即时搜索"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:493
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512
|
||||
msgid "Automatically send downloaded &news to ebook reader"
|
||||
msgstr "自动将下载的新闻传输到电子书阅读器上(&n)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:494
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513
|
||||
msgid "&Delete news from library when it is automatically sent to reader"
|
||||
msgstr "在将新闻传送到设备上后从书库中删除(&D)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:495
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514
|
||||
msgid "&Number of covers to show in browse mode (needs restart):"
|
||||
msgstr "浏览模式下显示的书籍封面数量(&N), 须重启生效;"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:496
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515
|
||||
msgid "Toolbar"
|
||||
msgstr "工具栏"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:497
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516
|
||||
msgid "Large"
|
||||
msgstr "大"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:498
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517
|
||||
msgid "Medium"
|
||||
msgstr "中"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:499
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518
|
||||
msgid "Small"
|
||||
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:519
|
||||
msgid "&Button size in toolbar"
|
||||
msgstr "工具栏按钮大小(&B)"
|
||||
|
||||
#: /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:520
|
||||
msgid "Show &text in toolbar buttons"
|
||||
msgstr "在工具栏显示按钮文字(&t)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521
|
||||
msgid "Select visible &columns in library view"
|
||||
msgstr "选择在书库界面中显示的新系列(&c)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524
|
||||
msgid "Use internal &viewer for:"
|
||||
msgstr "使用内部浏览器显示"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525
|
||||
msgid "Add an email address to which to send books"
|
||||
msgstr "将电子邮件地址添加到书籍发送目的"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526
|
||||
msgid "&Add email"
|
||||
msgstr "添加邮件地址(&A)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527
|
||||
msgid "Make &default"
|
||||
msgstr "设为默认(&d)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528
|
||||
msgid "&Remove email"
|
||||
msgstr "删除邮件地址(&R)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529
|
||||
msgid "calibre can send your books to you (or your reader) by email"
|
||||
msgstr "Calibre 可以通过电子邮件将电子书籍发送给您或您的设备"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530
|
||||
msgid "&Maximum number of waiting worker processes (needs restart):"
|
||||
msgstr "等待中的工作进程最大值(需要重启)(&M)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531
|
||||
msgid "&Check database integrity"
|
||||
msgstr "检查数据库完整性(&C)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532
|
||||
msgid "&Install command line tools"
|
||||
msgstr "安装命令行工具(&I)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533
|
||||
msgid "Open calibre &configuration directory"
|
||||
msgstr "打开 calibre 配置目录(&C)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534
|
||||
msgid ""
|
||||
"calibre contains a network server that allows you to access your book "
|
||||
"collection using a browser from anywhere in the world. Any changes to the "
|
||||
"settings will only take effect after a server restart."
|
||||
msgstr "Calibre 带有一个网络服务器程序,您可以由此使用浏览器访问你的书库。对服务器程序配置的修改需要重启服务器程序生效。"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535
|
||||
msgid "Server &port:"
|
||||
msgstr "服务器端口(&p):"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117
|
||||
msgid "&Username:"
|
||||
msgstr "用户名(&U):"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119
|
||||
msgid "&Password:"
|
||||
msgstr "密码(&P):"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538
|
||||
msgid ""
|
||||
"If you leave the password blank, anyone will be able to access your book "
|
||||
"collection using the web interface."
|
||||
msgstr "如果您使用空密码将导致其他人可以从web界面访问您的书籍库."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539
|
||||
msgid ""
|
||||
"The maximum size (widthxheight) for displayed covers. Larger covers are "
|
||||
"resized. "
|
||||
msgstr "显示书籍封面的最大尺寸(宽度x高度). 过大的封面将会被相应缩小. "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540
|
||||
msgid "Max. &cover size:"
|
||||
msgstr "最大封面大小(&c):"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212
|
||||
msgid "&Show password"
|
||||
msgstr "显示密码(&S)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542
|
||||
msgid "Max. &OPDS items per query:"
|
||||
msgstr "每次请求最大 OPDS 项(&O):"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543
|
||||
msgid "&Start Server"
|
||||
msgstr "启动服务器(&S)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544
|
||||
msgid "St&op Server"
|
||||
msgstr "停止服务器(&o)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545
|
||||
msgid "&Test Server"
|
||||
msgstr "测试服务器(&T)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546
|
||||
msgid "Run server &automatically on startup"
|
||||
msgstr "在系统启动时自动启动服务器(&a)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547
|
||||
msgid "View &server logs"
|
||||
msgstr "查看服务器日志(&s)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46
|
||||
msgid ""
|
||||
"<p>Remember to leave calibre running as the server only runs as long as "
|
||||
@ -4088,33 +4147,33 @@ msgstr ""
|
||||
"http://myhostname:8080 作为新类目。此时 myhostname 应该为有效主机名,或者您 Calibre 程序所运行计算机的 IP "
|
||||
"地址。"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550
|
||||
msgid ""
|
||||
"Here you can customize the behavior of Calibre by controlling what plugins "
|
||||
"it uses."
|
||||
msgstr "从可以通过配置插件的启用与否来调整Calibre的功能特性."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551
|
||||
msgid "Enable/&Disable plugin"
|
||||
msgstr "启用/禁用插件(&D)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552
|
||||
msgid "&Customize plugin"
|
||||
msgstr "定制插件(&C)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553
|
||||
msgid "&Remove plugin"
|
||||
msgstr "移除插件(&R)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554
|
||||
msgid "Add new plugin"
|
||||
msgstr "添加插件"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555
|
||||
msgid "Plugin &file:"
|
||||
msgstr "插件文件(&F):"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557
|
||||
msgid "&Add"
|
||||
msgstr "添加(&A)"
|
||||
|
||||
@ -4457,28 +4516,36 @@ msgstr "需要密码"
|
||||
msgid "Aborting..."
|
||||
msgstr "正在中止..."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:155
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:117
|
||||
msgid "Need username and password"
|
||||
msgstr "需要用户名和密码"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:118
|
||||
msgid "You must provide a username and/or password to use this news source."
|
||||
msgstr "您必须为该新闻源提供用户名和/或密码"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:169
|
||||
msgid "Created by: "
|
||||
msgstr "创建者: "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:162
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:176
|
||||
msgid "Last downloaded: never"
|
||||
msgstr "最后下载:无"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:177
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:191
|
||||
msgid "%d days, %d hours and %d minutes ago"
|
||||
msgstr "%d 天 %d 小时 %d 分钟前"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:179
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:193
|
||||
msgid "Last downloaded"
|
||||
msgstr "最后下载"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:199
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:213
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:190
|
||||
msgid "Schedule news download"
|
||||
msgstr "计划新闻下载"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:202
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:216
|
||||
msgid "Add a custom news source"
|
||||
msgstr "添加自定义新闻源"
|
||||
|
||||
@ -5808,7 +5875,7 @@ msgstr "书籍既没有标题也没有 ISBN 编号"
|
||||
msgid "No matches found for this book"
|
||||
msgstr "未找到匹配此书信息"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:60
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:71
|
||||
msgid "Search"
|
||||
msgstr "搜索"
|
||||
|
||||
@ -7461,6 +7528,9 @@ msgstr "显示详细输出信息。有利调试"
|
||||
#~ "conversion of a PDF file."
|
||||
#~ msgstr "如果该HTML由PDF转换而来, 请指定平均行长度."
|
||||
|
||||
#~ msgid "Input character &encoding"
|
||||
#~ msgstr "输入字符编码(&E)"
|
||||
|
||||
#~ msgid "&Header regular expression:"
|
||||
#~ msgstr "页眉正则表达式(&H):"
|
||||
|
||||
@ -7505,3 +7575,9 @@ msgstr "显示详细输出信息。有利调试"
|
||||
|
||||
#~ msgid "Chinese"
|
||||
#~ msgstr "中文"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Speciy the compression level to use. Scale 1 - 10. 1 being the lowest "
|
||||
#~ "compression but the fastest and 10 being the highest compression but the "
|
||||
#~ "slowest."
|
||||
#~ msgstr "指定使用的压缩水平。从1到10。1压缩率最低但最快,10压缩率最高但最慢。"
|
||||
|
@ -65,6 +65,7 @@ def split(src):
|
||||
|
||||
|
||||
def files_and_dirs(prefix, allowed_exts=[]):
|
||||
prefix = os.path.expanduser(prefix)
|
||||
for i in glob.iglob(prefix+'*'):
|
||||
_, ext = os.path.splitext(i)
|
||||
ext = ext.lower().replace('.', '')
|
||||
|
Loading…
x
Reference in New Issue
Block a user