From 150acaffef9aa90aa55d9e42bee2e3a2e4f35c7b Mon Sep 17 00:00:00 2001 From: Timothy Legge Date: Wed, 2 Jun 2010 21:43:09 -0300 Subject: [PATCH 001/275] New KOBO driver. Displays and allows kobo books to be deleted from the sqlite database --- src/calibre/__init__.py | 1 + src/calibre/devices/kobo/books.py | 112 +++++++++++ src/calibre/devices/kobo/driver.py | 302 ++++++++++++++++++++++++++++- 3 files changed, 413 insertions(+), 2 deletions(-) create mode 100644 src/calibre/devices/kobo/books.py diff --git a/src/calibre/__init__.py b/src/calibre/__init__.py index ff4bab6a9a..65618aaff4 100644 --- a/src/calibre/__init__.py +++ b/src/calibre/__init__.py @@ -41,6 +41,7 @@ mimetypes.add_type('application/vnd.palm', '.pdb') mimetypes.add_type('application/x-mobipocket-ebook', '.mobi') mimetypes.add_type('application/x-mobipocket-ebook', '.prc') mimetypes.add_type('application/x-mobipocket-ebook', '.azw') +mimetypes.add_type('application/x-koboreader-ebook', '.kobo') mimetypes.add_type('image/wmf', '.wmf') guess_type = mimetypes.guess_type import cssutils diff --git a/src/calibre/devices/kobo/books.py b/src/calibre/devices/kobo/books.py new file mode 100644 index 0000000000..95daec58a9 --- /dev/null +++ b/src/calibre/devices/kobo/books.py @@ -0,0 +1,112 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Timothy Legge ' +''' +''' + +import os +import re +import time + +from calibre.ebooks.metadata import MetaInformation +from calibre.devices.interface import BookList as _BookList +from calibre.constants import filesystem_encoding, preferred_encoding +from calibre import isbytestring + +class Book(MetaInformation): + + BOOK_ATTRS = ['lpath', 'size', 'mime', 'device_collections'] + + JSON_ATTRS = [ + 'lpath', 'title', 'authors', 'mime', 'size', 'tags', 'author_sort', + 'title_sort', 'comments', 'category', 'publisher', 'series', + 'series_index', 'rating', 'isbn', 'language', 'application_id', + 'book_producer', 'lccn', 'lcc', 'ddc', 'rights', 'publication_type', + 'uuid', + ] + + def __init__(self, mountpath, path, title, authors, mime, date, ContentType, ImageID, other=None): + + MetaInformation.__init__(self, '') + self.device_collections = [] + + self.title = title + if not authors: + self.authors = [''] + else: + self.authors = [authors] + self.mime = mime + self.path = path + try: + self.size = os.path.getsize(path) + except OSError: + self.size = 0 + try: + if ContentType == '6': + self.datetime = time.strptime(date, "%Y-%m-%dT%H:%M:%S.%f") + else: + self.datetime = time.gmtime(os.path.getctime(path)) + except ValueError: + self.datetime = time.gmtime() + except OSError: + self.datetime = time.gmtime() + self.lpath = path + + self.thumbnail = ImageWrapper(mountpath + '.kobo/images/' + ImageID + ' - iPhoneThumbnail.parsed') + self.tags = [] + if other: + self.smart_update(other) + + def __eq__(self, other): + return self.path == getattr(other, 'path', None) + + @dynamic_property + def db_id(self): + doc = '''The database id in the application database that this file corresponds to''' + def fget(self): + match = re.search(r'_(\d+)$', self.lpath.rpartition('.')[0]) + if match: + return int(match.group(1)) + return None + return property(fget=fget, doc=doc) + + @dynamic_property + def title_sorter(self): + doc = '''String to sort the title. If absent, title is returned''' + def fget(self): + return re.sub('^\s*A\s+|^\s*The\s+|^\s*An\s+', '', self.title).rstrip() + return property(doc=doc, fget=fget) + + @dynamic_property + def thumbnail(self): + return None + + def smart_update(self, other): + ''' + Merge the information in C{other} into self. In case of conflicts, the information + in C{other} takes precedence, unless the information in C{other} is NULL. + ''' + + MetaInformation.smart_update(self, other) + + for attr in self.BOOK_ATTRS: + if hasattr(other, attr): + val = getattr(other, attr, None) + setattr(self, attr, val) + + def to_json(self): + json = {} + for attr in self.JSON_ATTRS: + val = getattr(self, attr) + if isbytestring(val): + enc = filesystem_encoding if attr == 'lpath' else preferred_encoding + val = val.decode(enc, 'replace') + elif isinstance(val, (list, tuple)): + val = [x.decode(preferred_encoding, 'replace') if + isbytestring(x) else x for x in val] + json[attr] = val + return json + +class ImageWrapper(object): + def __init__(self, image_path): + self.image_path = image_path + diff --git a/src/calibre/devices/kobo/driver.py b/src/calibre/devices/kobo/driver.py index 4b14b2bf8e..a480b8de2a 100644 --- a/src/calibre/devices/kobo/driver.py +++ b/src/calibre/devices/kobo/driver.py @@ -2,17 +2,26 @@ # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai __license__ = 'GPL v3' -__copyright__ = '2010, Kovid Goyal ' +__copyright__ = '2010, Timothy Legge and Kovid Goyal ' __docformat__ = 'restructuredtext en' +import os + +import cStringIO +import sqlite3 as sqlite +from calibre.devices.usbms.books import BookList +from calibre.devices.kobo.books import Book +from calibre.devices.kobo.books import ImageWrapper +from calibre.devices.mime import mime_type_ext from calibre.devices.usbms.driver import USBMS + class KOBO(USBMS): name = 'Kobo Reader Device Interface' gui_name = 'Kobo Reader' description = _('Communicate with the Kobo Reader') - author = 'Kovid Goyal' + author = 'Timothy Legge and Kovid Goyal' supported_platforms = ['windows', 'osx', 'linux'] @@ -29,3 +38,292 @@ class KOBO(USBMS): EBOOK_DIR_MAIN = '' SUPPORTS_SUB_DIRS = True + def initialize(self): + USBMS.initialize(self) + self.book_class = Book + + def books(self, oncard=None, end_session=True): + from calibre.ebooks.metadata.meta import path_to_ext + + dummy_bl = BookList(None, None, None) + + if oncard == 'carda' and not self._card_a_prefix: + self.report_progress(1.0, _('Getting list of books on device...')) + return dummy_bl + elif oncard == 'cardb' and not self._card_b_prefix: + self.report_progress(1.0, _('Getting list of books on device...')) + return dummy_bl + elif oncard and oncard != 'carda' and oncard != 'cardb': + self.report_progress(1.0, _('Getting list of books on device...')) + return dummy_bl + + prefix = self._card_a_prefix if oncard == 'carda' else \ + self._card_b_prefix if oncard == 'cardb' \ + else self._main_prefix + + ebook_dirs = self.EBOOK_DIR_CARD_A if oncard == 'carda' else \ + self.EBOOK_DIR_CARD_B if oncard == 'cardb' else \ + self.get_main_ebook_dir() + + # get the metadata cache + bl = self.booklist_class(oncard, prefix, self.settings) + need_sync = self.parse_metadata_cache(bl, prefix, self.METADATA_CACHE) + + # make a dict cache of paths so the lookup in the loop below is faster. + bl_cache = {} + for idx,b in enumerate(bl): + bl_cache[b.lpath] = idx + + def update_booklist(mountpath, ContentID, filename, title, authors, mime, date, ContentType, ImageID): + changed = False + # if path_to_ext(filename) in self.FORMATS: + try: + # lpath = os.path.join(path, filename).partition(self.normalize_path(prefix))[2] + # if lpath.startswith(os.sep): + # lpath = lpath[len(os.sep):] + # lpath = lpath.replace('\\', '/') + idx = bl_cache.get(filename, None) + if idx is not None: + bl[idx].thumbnail = ImageWrapper(mountpath + '.kobo/images/' + ImageID + ' - iPhoneThumbnail.parsed') + bl_cache[filename] = None + if ContentType != '6': + if self.update_metadata_item(bl[idx]): + # print 'update_metadata_item returned true' + changed = True + else: + book = Book(mountpath, filename, title, authors, mime, date, ContentType, ImageID) + # print 'Update booklist' + if bl.add_book(book, replace_metadata=False): + changed = True + except: # Probably a filename encoding error + import traceback + traceback.print_exc() + return changed + + connection = sqlite.connect(self._main_prefix + '.kobo/KoboReader.sqlite') + cursor = connection.cursor() + + query = 'select count(distinct volumeId) from volume_shortcovers' + cursor.execute(query) + for row in (cursor): + numrows = row[0] + cursor.close() + + query= 'select Title, Attribution, DateCreated, ContentID, MimeType, ContentType, ' \ + 'ImageID from content where ContentID in (select distinct volumeId from volume_shortcovers)' + + cursor.execute (query) + + changed = False + + for i, row in enumerate(cursor): + self.report_progress((i+1) / float(numrows), _('Getting list of books on device...')) + + filename = row[3] + if row[5] == "6": + filename = filename + '.kobo' + mime = mime_type_ext(path_to_ext(row[3])) + + if oncard != 'carda' and oncard != 'cardb': + if row[5] == '6': + # print "shortbook: " + filename + changed = update_booklist(self._main_prefix, row[3], filename, row[0], row[1], mime, row[2], row[5], row[6]) + if changed: + need_sync = True + else: + if filename.startswith("file:///mnt/onboard/"): + filename = filename.replace("file:///mnt/onboard/", self._main_prefix) + # print "Internal: " + filename + changed = update_booklist(self._main_prefix, row[3], filename, row[0], row[1], mime, row[2], row[5], row[6]) + if changed: + need_sync = True + elif oncard == 'carda': + if filename.startswith("file:///mnt/sd/"): + filename = filename.replace("file:///mnt/sd/", self._card_a_prefix) + # print "SD Card: " + filename + changed = update_booklist(self._card_a_prefix, row[3], filename, row[0], row[1], mime, row[2], row[5], row[6]) + if changed: + need_sync = True + else: + print "Add card b support" + + #FIXME - NOT NEEDED flist.append({'filename': filename, 'path':row[3]}) + #bl.append(book) + + cursor.close() + connection.close() + + # Remove books that are no longer in the filesystem. Cache contains + # indices into the booklist if book not in filesystem, None otherwise + # Do the operation in reverse order so indices remain valid + for idx in sorted(bl_cache.itervalues(), reverse=True): + if idx is not None: + need_sync = True + del bl[idx] + + print "count found in cache: %d, count of files in metadata: %d, need_sync: %s" % \ + (len(bl_cache), len(bl), need_sync) + if need_sync: #self.count_found_in_bl != len(bl) or need_sync: + if oncard == 'cardb': + self.sync_booklists((None, None, bl)) + elif oncard == 'carda': + self.sync_booklists((None, bl, None)) + else: + self.sync_booklists((bl, None, None)) + + self.report_progress(1.0, _('Getting list of books on device...')) + return bl + + def delete_via_sql(self, ContentID, ContentType): + # Delete Order: + # 1) shortcover_page + # 2) volume_shorcover + # 2) content + + connection = sqlite.connect(self._main_prefix + '.kobo/KoboReader.sqlite') + cursor = connection.cursor() + t = (ContentID,) + cursor.execute('select ImageID from content where ContentID = ?', t) + + for row in cursor: + # First get the ImageID to delete the images + ImageID = row[0] + cursor.close() + + cursor = connection.cursor() + if ContentType == 6: + # Delete the shortcover_pages first + cursor.execute('delete from shortcover_page where shortcoverid in (select ContentID from content where BookID = ?)', t) + + #Delete the volume_shortcovers second + cursor.execute('delete from volume_shortcovers where volumeid = ?', t) + + # Delete the chapters associated with the book next + t = (ContentID,ContentID,) + cursor.execute('delete from content where BookID = ? or ContentID = ?', t) + + connection.commit() + + cursor.close() + connection.close() + # If all this succeeds we need to delete the images files via the ImageID + return ImageID + + def delete_images(self, ImageID): + path_prefix = '.kobo/images/' + path = self._main_prefix + path_prefix + ImageID + + file_endings = (' - iPhoneThumbnail.parsed', ' - bbMediumGridList.parsed', ' - NickelBookCover.parsed',) + + for ending in file_endings: + fpath = path + ending + fpath = self.normalize_path(fpath) + + if os.path.exists(fpath): + # print 'Image File Exists: ' + fpath + os.unlink(fpath) + + def delete_books(self, paths, end_session=True): + for i, path in enumerate(paths): + self.report_progress((i+1) / float(len(paths)), _('Removing books from device...')) + path = self.normalize_path(path) + extension = os.path.splitext(path)[1] + + if extension == '.kobo': + # Kobo books do not have book files. They do have some images though + #print "kobo book" + ContentType = 6 + ContentID = os.path.splitext(path)[0] + # Remove the prefix on the file. it could be either + ContentID = ContentID.replace(self._main_prefix, '') + if self._card_a_prefix is not None: + ContentID = ContentID.replace(self._card_a_prefix, '') + + ImageID = self.delete_via_sql(ContentID, ContentType) + #print " We would now delete the Images for" + ImageID + self.delete_images(ImageID) + if extension == '.pdf' or extension == '.epub': + # print "ePub or pdf" + ContentType = 16 + #print "Path: " + path + ContentID = path + ContentID = ContentID.replace(self._main_prefix, "file:///mnt/onboard/") + if self._card_a_prefix is not None: + ContentID = ContentID.replace(self._card_a_prefix, "file:///mnt/sd/") + # print "ContentID: " + ContentID + ImageID = self.delete_via_sql(ContentID, ContentType) + #print " We would now delete the Images for" + ImageID + self.delete_images(ImageID) + + if os.path.exists(path): + # Delete the ebook + # print "Delete the ebook: " + path + os.unlink(path) + + filepath = os.path.splitext(path)[0] + for ext in self.DELETE_EXTS: + if os.path.exists(filepath + ext): + # print "Filename: " + filename + os.unlink(filepath + ext) + if os.path.exists(path + ext): + # print "Filename: " + filename + os.unlink(path + ext) + + if self.SUPPORTS_SUB_DIRS: + try: + # print "removed" + os.removedirs(os.path.dirname(path)) + except: + pass + self.report_progress(1.0, _('Removing books from device...')) + + def remove_books_from_metadata(self, paths, booklists): + for i, path in enumerate(paths): + self.report_progress((i+1) / float(len(paths)), _('Removing books from device metadata listing...')) + for bl in booklists: + for book in bl: + #print "Book Path: " + book.path + if path.endswith(book.path): + #print " Remove: " + book.path + bl.remove_book(book) + self.report_progress(1.0, _('Removing books from device metadata listing...')) + + def add_books_to_metadata(self, locations, metadata, booklists): + metadata = iter(metadata) + for i, location in enumerate(locations): + self.report_progress((i+1) / float(len(locations)), _('Adding books to device metadata listing...')) + info = metadata.next() + blist = 2 if location[1] == 'cardb' else 1 if location[1] == 'carda' else 0 + + # Extract the correct prefix from the pathname. To do this correctly, + # we must ensure that both the prefix and the path are normalized + # so that the comparison will work. Book's __init__ will fix up + # lpath, so we don't need to worry about that here. + path = self.normalize_path(location[0]) + if self._main_prefix: + prefix = self._main_prefix if \ + path.startswith(self.normalize_path(self._main_prefix)) else None + if not prefix and self._card_a_prefix: + prefix = self._card_a_prefix if \ + path.startswith(self.normalize_path(self._card_a_prefix)) else None + if not prefix and self._card_b_prefix: + prefix = self._card_b_prefix if \ + path.startswith(self.normalize_path(self._card_b_prefix)) else None + if prefix is None: + prints('in add_books_to_metadata. Prefix is None!', path, + self._main_prefix) + continue + lpath = path.partition(prefix)[2] + if lpath.startswith('/') or lpath.startswith('\\'): + lpath = lpath[1:] + #book = self.book_class(prefix, lpath, other=info) + book = Book(prefix, lpath, '', '', '', '', '', '', other=info) + if book.size is None: + book.size = os.stat(self.normalize_path(path)).st_size + booklists[blist].add_book(book, replace_metadata=True) + self.report_progress(1.0, _('Adding books to device metadata listing...')) + +#class ImageWrapper(object): +# def __init__(self, image_path): +# self.image_path = image_path + From bb0c44693a8e43a6dfcc72eabfe04660dc41c6a7 Mon Sep 17 00:00:00 2001 From: Timothy Legge Date: Tue, 8 Jun 2010 19:38:27 -0300 Subject: [PATCH 002/275] Few changes for silly path differences in Windows and darn tabs versus spaces --- src/calibre/devices/kobo/books.py | 34 ++++----- src/calibre/devices/kobo/driver.py | 117 ++++++++++++++++------------- 2 files changed, 83 insertions(+), 68 deletions(-) diff --git a/src/calibre/devices/kobo/books.py b/src/calibre/devices/kobo/books.py index 95daec58a9..2ed95a4116 100644 --- a/src/calibre/devices/kobo/books.py +++ b/src/calibre/devices/kobo/books.py @@ -24,34 +24,34 @@ class Book(MetaInformation): 'uuid', ] - def __init__(self, mountpath, path, title, authors, mime, date, ContentType, ImageID, other=None): + def __init__(self, mountpath, path, title, authors, mime, date, ContentType, thumbnail_name, other=None): MetaInformation.__init__(self, '') self.device_collections = [] - self.title = title - if not authors: - self.authors = [''] - else: - self.authors = [authors] + self.title = title + if not authors: + self.authors = [''] + else: + self.authors = [authors] self.mime = mime - self.path = path - try: - self.size = os.path.getsize(path) - except OSError: - self.size = 0 + self.path = path try: - if ContentType == '6': - self.datetime = time.strptime(date, "%Y-%m-%dT%H:%M:%S.%f") - else: + self.size = os.path.getsize(path) + except OSError: + self.size = 0 + try: + if ContentType == '6': + self.datetime = time.strptime(date, "%Y-%m-%dT%H:%M:%S.%f") + else: self.datetime = time.gmtime(os.path.getctime(path)) except ValueError: self.datetime = time.gmtime() - except OSError: + except OSError: self.datetime = time.gmtime() self.lpath = path - self.thumbnail = ImageWrapper(mountpath + '.kobo/images/' + ImageID + ' - iPhoneThumbnail.parsed') + self.thumbnail = ImageWrapper(thumbnail_name) self.tags = [] if other: self.smart_update(other) @@ -108,5 +108,5 @@ class Book(MetaInformation): class ImageWrapper(object): def __init__(self, image_path): - self.image_path = image_path + self.image_path = image_path diff --git a/src/calibre/devices/kobo/driver.py b/src/calibre/devices/kobo/driver.py index a480b8de2a..35847cdbf8 100644 --- a/src/calibre/devices/kobo/driver.py +++ b/src/calibre/devices/kobo/driver.py @@ -82,14 +82,20 @@ class KOBO(USBMS): # if lpath.startswith(os.sep): # lpath = lpath[len(os.sep):] # lpath = lpath.replace('\\', '/') + print "Filename: " + filename + filename = self.normalize_path(filename) + print "Normalized FileName: " + filename + idx = bl_cache.get(filename, None) if idx is not None: - bl[idx].thumbnail = ImageWrapper(mountpath + '.kobo/images/' + ImageID + ' - iPhoneThumbnail.parsed') + imagename = self.normalize_path(mountpath + '.kobo/images/' + ImageID + ' - iPhoneThumbnail.parsed') + print "Image name Normalized: " + imagename + bl[idx].thumbnail = ImageWrapper(imagename) bl_cache[filename] = None if ContentType != '6': - if self.update_metadata_item(bl[idx]): - # print 'update_metadata_item returned true' - changed = True + if self.update_metadata_item(bl[idx]): + # print 'update_metadata_item returned true' + changed = True else: book = Book(mountpath, filename, title, authors, mime, date, ContentType, ImageID) # print 'Update booklist' @@ -103,21 +109,21 @@ class KOBO(USBMS): connection = sqlite.connect(self._main_prefix + '.kobo/KoboReader.sqlite') cursor = connection.cursor() - query = 'select count(distinct volumeId) from volume_shortcovers' - cursor.execute(query) - for row in (cursor): - numrows = row[0] - cursor.close() + #query = 'select count(distinct volumeId) from volume_shortcovers' + #cursor.execute(query) + #for row in (cursor): + # numrows = row[0] + #cursor.close() query= 'select Title, Attribution, DateCreated, ContentID, MimeType, ContentType, ' \ - 'ImageID from content where ContentID in (select distinct volumeId from volume_shortcovers)' + 'ImageID from content where ContentID in (select distinct volumeId from volume_shortcovers)' cursor.execute (query) changed = False for i, row in enumerate(cursor): - self.report_progress((i+1) / float(numrows), _('Getting list of books on device...')) + # self.report_progress((i+1) / float(numrows), _('Getting list of books on device...')) filename = row[3] if row[5] == "6": @@ -125,18 +131,18 @@ class KOBO(USBMS): mime = mime_type_ext(path_to_ext(row[3])) if oncard != 'carda' and oncard != 'cardb': - if row[5] == '6': - # print "shortbook: " + filename - changed = update_booklist(self._main_prefix, row[3], filename, row[0], row[1], mime, row[2], row[5], row[6]) + if row[5] == '6': + # print "shortbook: " + filename + changed = update_booklist(self._main_prefix, row[3], filename, row[0], row[1], mime, row[2], row[5], row[6]) + if changed: + need_sync = True + else: + if filename.startswith("file:///mnt/onboard/"): + filename = filename.replace("file:///mnt/onboard/", self._main_prefix) + # print "Internal: " + filename + changed = update_booklist(self._main_prefix, row[3], filename, row[0], row[1], mime, row[2], row[5], row[6]) if changed: need_sync = True - else: - if filename.startswith("file:///mnt/onboard/"): - filename = filename.replace("file:///mnt/onboard/", self._main_prefix) - # print "Internal: " + filename - changed = update_booklist(self._main_prefix, row[3], filename, row[0], row[1], mime, row[2], row[5], row[6]) - if changed: - need_sync = True elif oncard == 'carda': if filename.startswith("file:///mnt/sd/"): filename = filename.replace("file:///mnt/sd/", self._card_a_prefix) @@ -145,14 +151,14 @@ class KOBO(USBMS): if changed: need_sync = True else: - print "Add card b support" + print "Add card b support" #FIXME - NOT NEEDED flist.append({'filename': filename, 'path':row[3]}) #bl.append(book) - + cursor.close() connection.close() - + # Remove books that are no longer in the filesystem. Cache contains # indices into the booklist if book not in filesystem, None otherwise # Do the operation in reverse order so indices remain valid @@ -185,48 +191,56 @@ class KOBO(USBMS): t = (ContentID,) cursor.execute('select ImageID from content where ContentID = ?', t) + ImageID = None for row in cursor: # First get the ImageID to delete the images ImageID = row[0] cursor.close() - - cursor = connection.cursor() - if ContentType == 6: - # Delete the shortcover_pages first - cursor.execute('delete from shortcover_page where shortcoverid in (select ContentID from content where BookID = ?)', t) + + if ImageID != None: + cursor = connection.cursor() + if ContentType == 6: + # Delete the shortcover_pages first + cursor.execute('delete from shortcover_page where shortcoverid in (select ContentID from content where BookID = ?)', t) - #Delete the volume_shortcovers second - cursor.execute('delete from volume_shortcovers where volumeid = ?', t) + #Delete the volume_shortcovers second + cursor.execute('delete from volume_shortcovers where volumeid = ?', t) - # Delete the chapters associated with the book next - t = (ContentID,ContentID,) - cursor.execute('delete from content where BookID = ? or ContentID = ?', t) + # Delete the chapters associated with the book next + t = (ContentID,ContentID,) + cursor.execute('delete from content where BookID = ? or ContentID = ?', t) - connection.commit() + connection.commit() + + cursor.close() + else: + print "Error condition ImageID was not found" + print "You likely tried to delete a book that the kobo has not yet added to the database" - cursor.close() connection.close() # If all this succeeds we need to delete the images files via the ImageID return ImageID def delete_images(self, ImageID): - path_prefix = '.kobo/images/' - path = self._main_prefix + path_prefix + ImageID + if ImageID == None: + path_prefix = '.kobo/images/' + path = self._main_prefix + path_prefix + ImageID - file_endings = (' - iPhoneThumbnail.parsed', ' - bbMediumGridList.parsed', ' - NickelBookCover.parsed',) + file_endings = (' - iPhoneThumbnail.parsed', ' - bbMediumGridList.parsed', ' - NickelBookCover.parsed',) - for ending in file_endings: - fpath = path + ending - fpath = self.normalize_path(fpath) + for ending in file_endings: + fpath = path + ending + fpath = self.normalize_path(fpath) - if os.path.exists(fpath): - # print 'Image File Exists: ' + fpath - os.unlink(fpath) + if os.path.exists(fpath): + # print 'Image File Exists: ' + fpath + os.unlink(fpath) def delete_books(self, paths, end_session=True): for i, path in enumerate(paths): self.report_progress((i+1) / float(len(paths)), _('Removing books from device...')) path = self.normalize_path(path) + print "Delete file normalized path: " + path extension = os.path.splitext(path)[1] if extension == '.kobo': @@ -238,7 +252,7 @@ class KOBO(USBMS): ContentID = ContentID.replace(self._main_prefix, '') if self._card_a_prefix is not None: ContentID = ContentID.replace(self._card_a_prefix, '') - + ContentID = ContentID.replace("\\", '/') ImageID = self.delete_via_sql(ContentID, ContentType) #print " We would now delete the Images for" + ImageID self.delete_images(ImageID) @@ -250,6 +264,7 @@ class KOBO(USBMS): ContentID = ContentID.replace(self._main_prefix, "file:///mnt/onboard/") if self._card_a_prefix is not None: ContentID = ContentID.replace(self._card_a_prefix, "file:///mnt/sd/") + ContentID = ContentID.replace("\\", '/') # print "ContentID: " + ContentID ImageID = self.delete_via_sql(ContentID, ContentType) #print " We would now delete the Images for" + ImageID @@ -313,17 +328,17 @@ class KOBO(USBMS): prints('in add_books_to_metadata. Prefix is None!', path, self._main_prefix) continue + print "Add book to metatdata: " + print "prefix: " + prefix lpath = path.partition(prefix)[2] if lpath.startswith('/') or lpath.startswith('\\'): lpath = lpath[1:] + print "path: " + lpath #book = self.book_class(prefix, lpath, other=info) - book = Book(prefix, lpath, '', '', '', '', '', '', other=info) + lpath = self.normalize_path(prefix + lpath) + book = Book(prefix, lpath, '', '', '', '', '', '', other=info) if book.size is None: book.size = os.stat(self.normalize_path(path)).st_size booklists[blist].add_book(book, replace_metadata=True) self.report_progress(1.0, _('Adding books to device metadata listing...')) -#class ImageWrapper(object): -# def __init__(self, image_path): -# self.image_path = image_path - From 7b9823e80d8e4c7f96b2ced9752c3a4e1c991546 Mon Sep 17 00:00:00 2001 From: Timothy Legge Date: Tue, 8 Jun 2010 21:07:13 -0300 Subject: [PATCH 003/275] Fix silly bug --- src/calibre/devices/kobo/driver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/devices/kobo/driver.py b/src/calibre/devices/kobo/driver.py index 35847cdbf8..42d6cdc295 100644 --- a/src/calibre/devices/kobo/driver.py +++ b/src/calibre/devices/kobo/driver.py @@ -222,7 +222,7 @@ class KOBO(USBMS): return ImageID def delete_images(self, ImageID): - if ImageID == None: + if ImageID != None: path_prefix = '.kobo/images/' path = self._main_prefix + path_prefix + ImageID From 330c9ef1ba0196d3a1ff41bfd3cce30aff48b922 Mon Sep 17 00:00:00 2001 From: Timothy Legge Date: Tue, 8 Jun 2010 21:12:35 -0300 Subject: [PATCH 004/275] remove debugging statements --- src/calibre/devices/kobo/driver.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/calibre/devices/kobo/driver.py b/src/calibre/devices/kobo/driver.py index 42d6cdc295..10261351a8 100644 --- a/src/calibre/devices/kobo/driver.py +++ b/src/calibre/devices/kobo/driver.py @@ -82,14 +82,14 @@ class KOBO(USBMS): # if lpath.startswith(os.sep): # lpath = lpath[len(os.sep):] # lpath = lpath.replace('\\', '/') - print "Filename: " + filename + # print "Filename: " + filename filename = self.normalize_path(filename) - print "Normalized FileName: " + filename + # print "Normalized FileName: " + filename idx = bl_cache.get(filename, None) if idx is not None: imagename = self.normalize_path(mountpath + '.kobo/images/' + ImageID + ' - iPhoneThumbnail.parsed') - print "Image name Normalized: " + imagename + # print "Image name Normalized: " + imagename bl[idx].thumbnail = ImageWrapper(imagename) bl_cache[filename] = None if ContentType != '6': @@ -240,7 +240,7 @@ class KOBO(USBMS): for i, path in enumerate(paths): self.report_progress((i+1) / float(len(paths)), _('Removing books from device...')) path = self.normalize_path(path) - print "Delete file normalized path: " + path + # print "Delete file normalized path: " + path extension = os.path.splitext(path)[1] if extension == '.kobo': From 54d360e95acf37d22c9f51b0ec2082d6875e7bd7 Mon Sep 17 00:00:00 2001 From: Timothy Legge Date: Mon, 14 Jun 2010 23:01:16 -0300 Subject: [PATCH 005/275] Simplify path to ContentID --- src/calibre/devices/kobo/driver.py | 46 ++++++++++++++++-------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/src/calibre/devices/kobo/driver.py b/src/calibre/devices/kobo/driver.py index 10261351a8..dce72d0fba 100644 --- a/src/calibre/devices/kobo/driver.py +++ b/src/calibre/devices/kobo/driver.py @@ -74,7 +74,7 @@ class KOBO(USBMS): for idx,b in enumerate(bl): bl_cache[b.lpath] = idx - def update_booklist(mountpath, ContentID, filename, title, authors, mime, date, ContentType, ImageID): + def update_booklist(mountpath, filename, title, authors, mime, date, ContentType, ImageID): changed = False # if path_to_ext(filename) in self.FORMATS: try: @@ -89,7 +89,7 @@ class KOBO(USBMS): idx = bl_cache.get(filename, None) if idx is not None: imagename = self.normalize_path(mountpath + '.kobo/images/' + ImageID + ' - iPhoneThumbnail.parsed') - # print "Image name Normalized: " + imagename + print "Image name Normalized: " + imagename bl[idx].thumbnail = ImageWrapper(imagename) bl_cache[filename] = None if ContentType != '6': @@ -133,21 +133,21 @@ class KOBO(USBMS): if oncard != 'carda' and oncard != 'cardb': if row[5] == '6': # print "shortbook: " + filename - changed = update_booklist(self._main_prefix, row[3], filename, row[0], row[1], mime, row[2], row[5], row[6]) + changed = update_booklist(self._main_prefix, filename, row[0], row[1], mime, row[2], row[5], row[6]) if changed: need_sync = True else: if filename.startswith("file:///mnt/onboard/"): filename = filename.replace("file:///mnt/onboard/", self._main_prefix) # print "Internal: " + filename - changed = update_booklist(self._main_prefix, row[3], filename, row[0], row[1], mime, row[2], row[5], row[6]) + changed = update_booklist(self._main_prefix, filename, row[0], row[1], mime, row[2], row[5], row[6]) if changed: need_sync = True elif oncard == 'carda': if filename.startswith("file:///mnt/sd/"): filename = filename.replace("file:///mnt/sd/", self._card_a_prefix) # print "SD Card: " + filename - changed = update_booklist(self._card_a_prefix, row[3], filename, row[0], row[1], mime, row[2], row[5], row[6]) + changed = update_booklist(self._card_a_prefix, filename, row[0], row[1], mime, row[2], row[5], row[6]) if changed: need_sync = True else: @@ -247,28 +247,16 @@ class KOBO(USBMS): # Kobo books do not have book files. They do have some images though #print "kobo book" ContentType = 6 - ContentID = os.path.splitext(path)[0] - # Remove the prefix on the file. it could be either - ContentID = ContentID.replace(self._main_prefix, '') - if self._card_a_prefix is not None: - ContentID = ContentID.replace(self._card_a_prefix, '') - ContentID = ContentID.replace("\\", '/') - ImageID = self.delete_via_sql(ContentID, ContentType) - #print " We would now delete the Images for" + ImageID - self.delete_images(ImageID) + ContentID = self.contentid_from_path(path, ContentType) if extension == '.pdf' or extension == '.epub': # print "ePub or pdf" ContentType = 16 #print "Path: " + path - ContentID = path - ContentID = ContentID.replace(self._main_prefix, "file:///mnt/onboard/") - if self._card_a_prefix is not None: - ContentID = ContentID.replace(self._card_a_prefix, "file:///mnt/sd/") - ContentID = ContentID.replace("\\", '/') + ContentID = self.contentid_from_path(path, ContentType) # print "ContentID: " + ContentID - ImageID = self.delete_via_sql(ContentID, ContentType) - #print " We would now delete the Images for" + ImageID - self.delete_images(ImageID) + ImageID = self.delete_via_sql(ContentID, ContentType) + #print " We would now delete the Images for" + ImageID + self.delete_images(ImageID) if os.path.exists(path): # Delete the ebook @@ -342,3 +330,17 @@ class KOBO(USBMS): booklists[blist].add_book(book, replace_metadata=True) self.report_progress(1.0, _('Adding books to device metadata listing...')) + def contentid_from_path(self, path, ContentType): + if ContentType == 6: + ContentID = os.path.splitext(path)[0] + # Remove the prefix on the file. it could be either + ContentID = ContentID.replace(self._main_prefix, '') + if self._card_a_prefix is not None: + ContentID = ContentID.replace(self._card_a_prefix, '') + else: # ContentType = 16 + ContentID = path + ContentID = ContentID.replace(self._main_prefix, "file:///mnt/onboard/") + if self._card_a_prefix is not None: + ContentID = ContentID.replace(self._card_a_prefix, "file:///mnt/sd/") + ContentID = ContentID.replace("\\", '/') + return ContentType From 5c093f846eab08fb84c5a15e29e2db2ce5c12aa4 Mon Sep 17 00:00:00 2001 From: Timothy Legge Date: Thu, 17 Jun 2010 22:01:08 -0300 Subject: [PATCH 006/275] Remove debugging --- src/calibre/devices/kobo/driver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/devices/kobo/driver.py b/src/calibre/devices/kobo/driver.py index dce72d0fba..bb1e01283c 100644 --- a/src/calibre/devices/kobo/driver.py +++ b/src/calibre/devices/kobo/driver.py @@ -89,7 +89,7 @@ class KOBO(USBMS): idx = bl_cache.get(filename, None) if idx is not None: imagename = self.normalize_path(mountpath + '.kobo/images/' + ImageID + ' - iPhoneThumbnail.parsed') - print "Image name Normalized: " + imagename + #print "Image name Normalized: " + imagename bl[idx].thumbnail = ImageWrapper(imagename) bl_cache[filename] = None if ContentType != '6': From ff3433cde9767f9d2dd3aee4a8fab43533105e9f Mon Sep 17 00:00:00 2001 From: Timothy Legge Date: Thu, 17 Jun 2010 22:58:58 -0300 Subject: [PATCH 007/275] Simplify ContentID to path conversion --- src/calibre/devices/kobo/driver.py | 49 +++++++++++++++--------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/src/calibre/devices/kobo/driver.py b/src/calibre/devices/kobo/driver.py index bb1e01283c..1b2630c06f 100644 --- a/src/calibre/devices/kobo/driver.py +++ b/src/calibre/devices/kobo/driver.py @@ -22,6 +22,7 @@ class KOBO(USBMS): gui_name = 'Kobo Reader' description = _('Communicate with the Kobo Reader') author = 'Timothy Legge and Kovid Goyal' + version = (1, 0, 1) supported_platforms = ['windows', 'osx', 'linux'] @@ -121,40 +122,22 @@ class KOBO(USBMS): cursor.execute (query) changed = False - for i, row in enumerate(cursor): # self.report_progress((i+1) / float(numrows), _('Getting list of books on device...')) - filename = row[3] - if row[5] == "6": - filename = filename + '.kobo' + path = self.path_from_contentid(row[3], row[5], oncard) mime = mime_type_ext(path_to_ext(row[3])) if oncard != 'carda' and oncard != 'cardb': - if row[5] == '6': - # print "shortbook: " + filename - changed = update_booklist(self._main_prefix, filename, row[0], row[1], mime, row[2], row[5], row[6]) - if changed: - need_sync = True - else: - if filename.startswith("file:///mnt/onboard/"): - filename = filename.replace("file:///mnt/onboard/", self._main_prefix) - # print "Internal: " + filename - changed = update_booklist(self._main_prefix, filename, row[0], row[1], mime, row[2], row[5], row[6]) - if changed: - need_sync = True + # print "shortbook: " + filename + changed = update_booklist(self._main_prefix, path, row[0], row[1], mime, row[2], row[5], row[6]) elif oncard == 'carda': - if filename.startswith("file:///mnt/sd/"): - filename = filename.replace("file:///mnt/sd/", self._card_a_prefix) - # print "SD Card: " + filename - changed = update_booklist(self._card_a_prefix, filename, row[0], row[1], mime, row[2], row[5], row[6]) - if changed: - need_sync = True + changed = update_booklist(self._card_a_prefix, path, row[0], row[1], mime, row[2], row[5], row[6]) else: print "Add card b support" - #FIXME - NOT NEEDED flist.append({'filename': filename, 'path':row[3]}) - #bl.append(book) + if changed: + need_sync = True cursor.close() connection.close() @@ -344,3 +327,21 @@ class KOBO(USBMS): ContentID = ContentID.replace(self._card_a_prefix, "file:///mnt/sd/") ContentID = ContentID.replace("\\", '/') return ContentType + + + def path_from_contentid(self, ContentID, ContentType, oncard): + path = ContentID + + if oncard != 'carda' and oncard != 'cardb': + if ContentType == "6": + path = path + '.kobo' + else: + if path.startswith("file:///mnt/onboard/"): + path = path.replace("file:///mnt/onboard/", self._main_prefix) + # print "Internal: " + filename + elif oncard == 'carda': + if path.startswith("file:///mnt/sd/"): + path = path.replace("file:///mnt/sd/", self._card_a_prefix) + # print "SD Card: " + filename + + return path From 5562b12d095b15b3d80261810b2c5bd03bcde349 Mon Sep 17 00:00:00 2001 From: GRiker Date: Fri, 18 Jun 2010 15:21:12 -0600 Subject: [PATCH 008/275] GwR revisions 0.7.0 --- src/calibre/devices/apple/driver.py | 41 ++++++++++++++++------------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/src/calibre/devices/apple/driver.py b/src/calibre/devices/apple/driver.py index a646b282f2..28f7758f72 100644 --- a/src/calibre/devices/apple/driver.py +++ b/src/calibre/devices/apple/driver.py @@ -6,8 +6,7 @@ __docformat__ = 'restructuredtext en' import cStringIO, ctypes, datetime, os, re, shutil, subprocess, sys, tempfile, time - -from calibre.constants import DEBUG +from calibre.constants import __appname__, __version__, DEBUG from calibre import fit_image from calibre.constants import isosx, iswindows from calibre.devices.errors import UserFeedback @@ -79,7 +78,7 @@ class ITUNES(DevicePlugin): supported_platforms = ['osx','windows'] author = 'GRiker' #: The version of this plugin as a 3-tuple (major, minor, revision) - version = (0,6,0) + version = (0,7,0) OPEN_FEEDBACK_MESSAGE = _( 'Apple device detected, launching iTunes, please wait ...') @@ -294,7 +293,7 @@ class ITUNES(DevicePlugin): 'author':[book.artist()], 'lib_book':library_books[this_book.path] if this_book.path in library_books else None, 'dev_book':book, - 'uuid': book.album() + 'uuid': book.composer() } if self.report_progress is not None: @@ -330,7 +329,7 @@ class ITUNES(DevicePlugin): 'title':book.Name, 'author':book.Artist, 'lib_book':library_books[this_book.path] if this_book.path in library_books else None, - 'uuid': book.Album + 'uuid': book.Composer } if self.report_progress is not None: @@ -1426,10 +1425,10 @@ class ITUNES(DevicePlugin): attempts = 9 while attempts: # Try by uuid - only one hit - hits = dev_books.Search(search['uuid'],self.SearchField.index('Albums')) + hits = dev_books.Search(search['uuid'],self.SearchField.index('All')) if hits: hit = hits[0] - self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Album)) + self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Composer)) return hit # Try by author - there could be multiple hits @@ -1438,7 +1437,7 @@ class ITUNES(DevicePlugin): for hit in hits: if hit.Name == search['title']: if DEBUG: - self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Album)) + self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Composer)) return hit attempts -= 1 @@ -1493,11 +1492,11 @@ class ITUNES(DevicePlugin): if 'uuid' in search: if DEBUG: self.log.info(" searching by uuid '%s' ..." % search['uuid']) - hits = lib_books.Search(search['uuid'],self.SearchField.index('Albums')) + hits = lib_books.Search(search['uuid'],self.SearchField.index('All')) if hits: hit = hits[0] if DEBUG: - self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Album)) + self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Composer)) return hit if DEBUG: @@ -1507,7 +1506,7 @@ class ITUNES(DevicePlugin): for hit in hits: if hit.Name == search['title']: if DEBUG: - self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Album)) + self.log.info(" found '%s' by %s (%s)" % (hit.Name, hit.Artist, hit.Composer)) return hit attempts -= 1 @@ -1925,6 +1924,7 @@ class ITUNES(DevicePlugin): self.log.error(" could not confirm valid iTunes.media_dir from %s" % 'com.apple.itunes') self.log.error(" media_dir: %s" % media_dir) if DEBUG: + self.log.info(" %s %s" % (__appname__, __version__)) self.log.info(" [OSX %s - %s (%s), driver version %d.%d.%d]" % (self.iTunes.name(), self.iTunes.version(), self.initial_status, self.version[0],self.version[1],self.version[2])) @@ -1954,6 +1954,7 @@ class ITUNES(DevicePlugin): self.log.error(" '%s' not found" % media_dir) if DEBUG: + self.log.info(" %s %s" % (__appname__, __version__)) self.log.info(" [Windows %s - %s (%s), driver version %d.%d.%d]" % (self.iTunes.Windows[0].name, self.iTunes.Version, self.initial_status, self.version[0],self.version[1],self.version[2])) @@ -2041,7 +2042,7 @@ class ITUNES(DevicePlugin): elif iswindows: dev_pl = self._get_device_books_playlist() - hits = dev_pl.Search(cached_book['uuid'],self.SearchField.index('Albums')) + hits = dev_pl.Search(cached_book['uuid'],self.SearchField.index('All')) if hits: hit = hits[0] if False: @@ -2095,7 +2096,7 @@ class ITUNES(DevicePlugin): self.iTunes.delete(cached_book['lib_book']) except: if DEBUG: - self.log.info(" '%s' not found in iTunes" % cached_book['title']) + self.log.info(" unable to remove '%s' from iTunes" % cached_book['title']) elif iswindows: ''' @@ -2134,7 +2135,7 @@ class ITUNES(DevicePlugin): book.Delete() except: if DEBUG: - self.log.info(" '%s' not found in iTunes" % cached_book['title']) + self.log.info(" unable to remove '%s' from iTunes" % cached_book['title']) def _update_epub_metadata(self, fpath, metadata): ''' @@ -2241,14 +2242,16 @@ class ITUNES(DevicePlugin): if isosx: if lb_added: - lb_added.album.set(metadata.uuid) + lb_added.album.set(metadata.title) + lb_added.composer.set(metadata.uuid) lb_added.description.set("%s %s" % (self.description_prefix,strftime('%Y-%m-%d %H:%M:%S'))) lb_added.enabled.set(True) lb_added.sort_artist.set(metadata.author_sort.title()) lb_added.sort_name.set(this_book.title_sorter) if db_added: - db_added.album.set(metadata.uuid) + db_added.album.set(metadata.title) + db_added.composer.set(metadata.uuid) db_added.description.set("%s %s" % (self.description_prefix,strftime('%Y-%m-%d %H:%M:%S'))) db_added.enabled.set(True) db_added.sort_artist.set(metadata.author_sort.title()) @@ -2296,14 +2299,16 @@ class ITUNES(DevicePlugin): elif iswindows: if lb_added: - lb_added.Album = metadata.uuid + lb_added.Album = metadata.title + lb_added.Composer = metadata.uuid lb_added.Description = ("%s %s" % (self.description_prefix,strftime('%Y-%m-%d %H:%M:%S'))) lb_added.Enabled = True lb_added.SortArtist = (metadata.author_sort.title()) lb_added.SortName = (this_book.title_sorter) if db_added: - db_added.Album = metadata.uuid + db_added.Album = metadata.title + db_added.Composer = metadata.uuid db_added.Description = ("%s %s" % (self.description_prefix,strftime('%Y-%m-%d %H:%M:%S'))) db_added.Enabled = True db_added.SortArtist = (metadata.author_sort.title()) From da83447900d61d10f14d2f13f6286fc220309745 Mon Sep 17 00:00:00 2001 From: Timothy Legge Date: Fri, 18 Jun 2010 22:37:16 -0300 Subject: [PATCH 009/275] Additional clean up and conver to using path and lpath correctly - more review of lpath and path needed --- src/calibre/devices/kobo/books.py | 15 ++++++++---- src/calibre/devices/kobo/driver.py | 38 +++++++++++++++++------------- 2 files changed, 31 insertions(+), 22 deletions(-) diff --git a/src/calibre/devices/kobo/books.py b/src/calibre/devices/kobo/books.py index 2ed95a4116..f2ec8e2bf4 100644 --- a/src/calibre/devices/kobo/books.py +++ b/src/calibre/devices/kobo/books.py @@ -24,32 +24,37 @@ class Book(MetaInformation): 'uuid', ] - def __init__(self, mountpath, path, title, authors, mime, date, ContentType, thumbnail_name, other=None): + def __init__(self, prefix, lpath, title, authors, mime, date, ContentType, thumbnail_name, other=None): MetaInformation.__init__(self, '') self.device_collections = [] + self.path = os.path.join(prefix, lpath) + if os.sep == '\\': + self.path = self.path.replace('/', '\\') + self.lpath = lpath.replace('\\', '/') + else: + self.lpath = lpath + self.title = title if not authors: self.authors = [''] else: self.authors = [authors] self.mime = mime - self.path = path try: - self.size = os.path.getsize(path) + self.size = os.path.getsize(self.path) except OSError: self.size = 0 try: if ContentType == '6': self.datetime = time.strptime(date, "%Y-%m-%dT%H:%M:%S.%f") else: - self.datetime = time.gmtime(os.path.getctime(path)) + self.datetime = time.gmtime(os.path.getctime(self.path)) except ValueError: self.datetime = time.gmtime() except OSError: self.datetime = time.gmtime() - self.lpath = path self.thumbnail = ImageWrapper(thumbnail_name) self.tags = [] diff --git a/src/calibre/devices/kobo/driver.py b/src/calibre/devices/kobo/driver.py index 1b2630c06f..2a3ebfaea5 100644 --- a/src/calibre/devices/kobo/driver.py +++ b/src/calibre/devices/kobo/driver.py @@ -22,7 +22,7 @@ class KOBO(USBMS): gui_name = 'Kobo Reader' description = _('Communicate with the Kobo Reader') author = 'Timothy Legge and Kovid Goyal' - version = (1, 0, 1) + version = (1, 0, 2) supported_platforms = ['windows', 'osx', 'linux'] @@ -75,34 +75,35 @@ class KOBO(USBMS): for idx,b in enumerate(bl): bl_cache[b.lpath] = idx - def update_booklist(mountpath, filename, title, authors, mime, date, ContentType, ImageID): + def update_booklist(prefix, path, title, authors, mime, date, ContentType, ImageID): changed = False - # if path_to_ext(filename) in self.FORMATS: + # if path_to_ext(path) in self.FORMATS: try: - # lpath = os.path.join(path, filename).partition(self.normalize_path(prefix))[2] - # if lpath.startswith(os.sep): - # lpath = lpath[len(os.sep):] - # lpath = lpath.replace('\\', '/') - # print "Filename: " + filename - filename = self.normalize_path(filename) - # print "Normalized FileName: " + filename + lpath = path.partition(self.normalize_path(prefix))[2] + if lpath.startswith(os.sep): + lpath = lpath[len(os.sep):] + lpath = lpath.replace('\\', '/') +# print "LPATH: " + lpath - idx = bl_cache.get(filename, None) + path = self.normalize_path(path) + # print "Normalized FileName: " + path + + idx = bl_cache.get(lpath, None) if idx is not None: - imagename = self.normalize_path(mountpath + '.kobo/images/' + ImageID + ' - iPhoneThumbnail.parsed') + imagename = self.normalize_path(prefix + '.kobo/images/' + ImageID + ' - iPhoneThumbnail.parsed') #print "Image name Normalized: " + imagename bl[idx].thumbnail = ImageWrapper(imagename) - bl_cache[filename] = None + bl_cache[lpath] = None if ContentType != '6': if self.update_metadata_item(bl[idx]): # print 'update_metadata_item returned true' changed = True else: - book = Book(mountpath, filename, title, authors, mime, date, ContentType, ImageID) + book = Book(prefix, lpath, title, authors, mime, date, ContentType, ImageID) # print 'Update booklist' if bl.add_book(book, replace_metadata=False): changed = True - except: # Probably a filename encoding error + except: # Probably a path encoding error import traceback traceback.print_exc() return changed @@ -129,7 +130,7 @@ class KOBO(USBMS): mime = mime_type_ext(path_to_ext(row[3])) if oncard != 'carda' and oncard != 'cardb': - # print "shortbook: " + filename + # print "shortbook: " + path changed = update_booklist(self._main_prefix, path, row[0], row[1], mime, row[2], row[5], row[6]) elif oncard == 'carda': changed = update_booklist(self._card_a_prefix, path, row[0], row[1], mime, row[2], row[5], row[6]) @@ -334,7 +335,10 @@ class KOBO(USBMS): if oncard != 'carda' and oncard != 'cardb': if ContentType == "6": - path = path + '.kobo' + # This is a hack as the kobo files do not exist + # but the path is required to make a unique id + # for calibre's reference + path = self._main_prefix + os.sep + path + '.kobo' else: if path.startswith("file:///mnt/onboard/"): path = path.replace("file:///mnt/onboard/", self._main_prefix) From 7a157dc3b618941ab174fb78560ecfd1e695908a Mon Sep 17 00:00:00 2001 From: GRiker Date: Sat, 19 Jun 2010 10:29:51 -0600 Subject: [PATCH 010/275] GwR wip --- resources/recipes/nytimes.recipe | 2 + resources/recipes/nytimes_sub.recipe | 51 +++------ src/calibre/web/feeds/news.py | 8 +- src/calibre/web/feeds/templates.py | 156 ++++++++++++++++++--------- 4 files changed, 127 insertions(+), 90 deletions(-) diff --git a/resources/recipes/nytimes.recipe b/resources/recipes/nytimes.recipe index 9fbcf6d3d1..527f19839c 100644 --- a/resources/recipes/nytimes.recipe +++ b/resources/recipes/nytimes.recipe @@ -79,6 +79,7 @@ class NYTimes(BasicNewsRecipe): 'doubleRule', 'dottedLine', 'entry-meta', + 'entry-response module', 'icon enlargeThis', 'leftNavTabs', 'module box nav', @@ -110,6 +111,7 @@ class NYTimes(BasicNewsRecipe): 'navigation', 'portfolioInline', 'relatedArticles', + 'respond', 'side_search', 'side_index', 'side_tool', diff --git a/resources/recipes/nytimes_sub.recipe b/resources/recipes/nytimes_sub.recipe index bcec51ce97..f63611f6e3 100644 --- a/resources/recipes/nytimes_sub.recipe +++ b/resources/recipes/nytimes_sub.recipe @@ -66,6 +66,7 @@ class NYTimes(BasicNewsRecipe): 'doubleRule', 'dottedLine', 'entry-meta', + 'entry-response module', 'icon enlargeThis', 'leftNavTabs', 'module box nav', @@ -97,6 +98,7 @@ class NYTimes(BasicNewsRecipe): 'navigation', 'portfolioInline', 'relatedArticles', + 'respond', 'side_search', 'side_index', 'side_tool', @@ -417,12 +419,11 @@ class NYTimes(BasicNewsRecipe): return soup - def postprocess_book(self, oeb, opts, log) : - print "\npostprocess_book()\n" - - def extract_byline(href) : - # :' + articlebody = soup.find('div',attrs={'class':'articlebody'}) + if not articlebody: + print 'postprocess_book.extract_description(): Did not find
:' print soup.prettify() return None - paras = articleBody.findAll('p') + paras = articlebody.findAll('p') for p in paras: if p.renderContents() > '' : return self.massageNCXText(self.tag_to_string(p,use_alt=False)) return None - # Method entry point here - # Single section toc looks different than multi-section tocs - if oeb.toc.depth() == 2 : - for article in oeb.toc : - if article.author is None : - article.author = extract_byline(article.href) - if article.description is None : - article.description = extract_description(article.href).decode('utf-8') - elif oeb.toc.depth() == 3 : - for section in oeb.toc : - for article in section : - if article.author is None : - article.author = extract_byline(article.href) - if article.description is None : - article.description = extract_description(article.href) + article.author = extract_author(soup) + article.summary = article.text_summary = extract_description(soup) def strip_anchors(self,soup): paras = soup.findAll(True) diff --git a/src/calibre/web/feeds/news.py b/src/calibre/web/feeds/news.py index 73e0fae8e8..9264d3d0a3 100644 --- a/src/calibre/web/feeds/news.py +++ b/src/calibre/web/feeds/news.py @@ -752,7 +752,8 @@ class BasicNewsRecipe(Recipe): - def feed2index(self, feed): + def feed2index(self, f, feeds): + feed = feeds[f] if feed.image_url is not None: # Download feed image imgdir = os.path.join(self.output_dir, 'images') if not os.path.isdir(imgdir): @@ -808,7 +809,8 @@ class BasicNewsRecipe(Recipe): templ = templates.TouchscreenFeedTemplate() css = touchscreen_css + '\n\n' + (self.extra_css if self.extra_css else '') - return templ.generate(feed, self.description_limiter, + + return templ.generate(f, feeds, self.description_limiter, extra_css=css).render(doctype='xhtml') @@ -951,7 +953,7 @@ class BasicNewsRecipe(Recipe): #feeds.restore_duplicates() for f, feed in enumerate(feeds): - html = self.feed2index(feed) + html = self.feed2index(f,feeds) feed_dir = os.path.join(self.output_dir, 'feed_%d'%f) with open(os.path.join(feed_dir, 'index.html'), 'wb') as fi: fi.write(html) diff --git a/src/calibre/web/feeds/templates.py b/src/calibre/web/feeds/templates.py index 7ebf7294ae..45e713a9ac 100644 --- a/src/calibre/web/feeds/templates.py +++ b/src/calibre/web/feeds/templates.py @@ -107,32 +107,66 @@ class TouchscreenNavBarTemplate(Template): align = 'center' if center else 'left' navbar = DIV(CLASS('calibre_navbar', 'calibre_rescale_100', style='text-align:'+align)) - if bottom: - navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) - text = 'This article was downloaded by ' - p = PT(text, STRONG(__appname__), A(url, href=url), style='text-align:left') - p[0].tail = ' from ' - navbar.append(p) - navbar.append(BR()) - navbar.append(BR()) + + if False: + if bottom: + navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) + text = 'This article was downloaded by ' + p = PT(text, STRONG(__appname__), A(url, href=url), style='text-align:left') + p[0].tail = ' from ' + navbar.append(p) + navbar.append(BR()) + navbar.append(BR()) + else: + next = 'feed_%d'%(feed+1) if art == number_of_articles_in_feed - 1 \ + else 'article_%d'%(art+1) + up = '../..' if art == number_of_articles_in_feed - 1 else '..' + href = '%s%s/%s/index.html'%(prefix, up, next) + navbar.text = '| ' + navbar.append(A('Next', href=href)) + + href = '%s../index.html#article_%d'%(prefix, art) + navbar.iterchildren(reversed=True).next().tail = ' | ' + navbar.append(A('Section Menu', href=href)) + href = '%s../../index.html#feed_%d'%(prefix, feed) + navbar.iterchildren(reversed=True).next().tail = ' | ' + navbar.append(A("Sections", href=href)) + if art > 0 and not bottom: + href = '%s../article_%d/index.html'%(prefix, art-1) + navbar.iterchildren(reversed=True).next().tail = ' | ' + navbar.append(A('Previous', href=href)) else: + if bottom: + navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) + text = 'This article was downloaded by ' + p = PT(text, STRONG(__appname__), A(url, href=url), style='text-align:left') + p[0].tail = ' from ' + navbar.append(p) + navbar.append(BR()) + navbar.append(BR()) + else: + # | Previous + if art > 0 and not bottom: + href = '%s../article_%d/index.html'%(prefix, art-1) + navbar.text = '| ' + navbar.append(A('Previous', href=href)) + + # | Section | Main | + href = '%s../index.html#article_%d'%(prefix, art) + if art > 0: + navbar.iterchildren(reversed=True).next().tail = ' | ' + navbar.append(A('Articles', href=href)) + href = '%s../../index.html#feed_%d'%(prefix, feed) + navbar.iterchildren(reversed=True).next().tail = ' | ' + navbar.append(A("Sections", href=href)) + + # | Next next = 'feed_%d'%(feed+1) if art == number_of_articles_in_feed - 1 \ else 'article_%d'%(art+1) up = '../..' if art == number_of_articles_in_feed - 1 else '..' href = '%s%s/%s/index.html'%(prefix, up, next) - navbar.text = '| ' - navbar.append(A('Next', href=href)) - - href = '%s../index.html#article_%d'%(prefix, art) - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Section Menu', href=href)) - href = '%s../../index.html#feed_%d'%(prefix, feed) - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Main Menu', href=href)) - if art > 0 and not bottom: - href = '%s../article_%d/index.html'%(prefix, art-1) navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Previous', href=href)) + navbar.append(A('Next', href=href)) navbar.iterchildren(reversed=True).next().tail = ' | ' if not bottom: @@ -200,7 +234,8 @@ class TouchscreenIndexTemplate(Template): class FeedTemplate(Template): - def _generate(self, feed, cutoff, extra_css=None, style=None): + def _generate(self, f, feeds, cutoff, extra_css=None, style=None): + feed = feeds[f] head = HEAD(TITLE(feed.title)) if style: head.append(STYLE(style, type='text/css')) @@ -250,7 +285,41 @@ class FeedTemplate(Template): class TouchscreenFeedTemplate(Template): - def _generate(self, feed, cutoff, extra_css=None, style=None): + def _generate(self, f, feeds, cutoff, extra_css=None, style=None): + + def trim_title(title,clip=15): + if len(title)>clip: + tokens = title.split(' ') + new_title_tokens = [] + new_title_len = 0 + for token in tokens: + if len(token) + new_title_len < clip: + new_title_tokens.append(token) + new_title_len += len(token) + 1 + else: + new_title_tokens.append('...') + title = ' '.join(new_title_tokens) + break + return title + + feed = feeds[f] + + # Construct the navbar + navbar = DIV('| ', CLASS('calibre_navbar', 'calibre_rescale_100'),style='text-align:center') + if f > 0: + link = A(trim_title(feeds[f-1].title), href = '../feed_%d/index.html' % int(f-1)) + link.tail = ' |' + navbar.append(link) + + link = A("Sections", href="../index.html") + link.tail = ' |' + navbar.append(link) + if f < len(feeds)-1: + link = A(trim_title(feeds[f+1].title), href = '../feed_%d/index.html' % int(f+1)) + link.tail = ' |' + navbar.append(link) + + # Build the page head = HEAD(TITLE(feed.title)) if style: head.append(STYLE(style, type='text/css')) @@ -262,6 +331,7 @@ class TouchscreenFeedTemplate(Template): DIV(style="border-top:1px solid gray;border-bottom:1em solid white") ) body.append(div) + if getattr(feed, 'image', None): div.append(DIV(IMG( alt = feed.image_alt if feed.image_alt else '', @@ -280,41 +350,21 @@ class TouchscreenFeedTemplate(Template): continue tr = TR() - if True: - div_td = DIV( - A(article.title, CLASS('summary_headline','calibre_rescale_120', - href=article.url)), - style="display:inline-block") - if article.author: - div_td.append(DIV(article.author, - CLASS('summary_byline', 'calibre_rescale_100'))) - if article.summary: - div_td.append(DIV(cutoff(article.text_summary), - CLASS('summary_text', 'calibre_rescale_100'))) - tr.append(TD(div_td)) - else: - td = TD( - A(article.title, CLASS('summary_headline','calibre_rescale_120', - href=article.url)) - ) - if article.author: - td.append(DIV(article.author, - CLASS('summary_byline', 'calibre_rescale_100'))) - if article.summary: - td.append(DIV(cutoff(article.text_summary), - CLASS('summary_text', 'calibre_rescale_100'))) - - tr.append(td) + div_td = DIV( + A(article.title, CLASS('summary_headline','calibre_rescale_120', + href=article.url)), + style="display:inline-block") + if article.author: + div_td.append(DIV(article.author, + CLASS('summary_byline', 'calibre_rescale_100'))) + if article.summary: + div_td.append(DIV(cutoff(article.text_summary), + CLASS('summary_text', 'calibre_rescale_100'))) + tr.append(TD(div_td)) toc.append(tr) div.append(toc) - - navbar = DIV('| ', CLASS('calibre_navbar', 'calibre_rescale_100'),style='text-align:center') - link = A('Up one level', href="../index.html") - link.tail = ' |' - navbar.append(link) div.append(navbar) - self.root = HTML(head, body) class EmbeddedContent(Template): From b9cb28b88086cdbabbcedba232bc83f87b8e408e Mon Sep 17 00:00:00 2001 From: GRiker Date: Sat, 19 Jun 2010 17:22:32 -0600 Subject: [PATCH 011/275] GwR revisions --- src/calibre/devices/apple/driver.py | 15 +- src/calibre/library/custom_columns.py | 6 +- src/calibre/web/feeds/news.py | 11 + src/calibre/web/feeds/templates.py | 441 +++++++++++++++----------- 4 files changed, 279 insertions(+), 194 deletions(-) diff --git a/src/calibre/devices/apple/driver.py b/src/calibre/devices/apple/driver.py index 28f7758f72..a994efb0f6 100644 --- a/src/calibre/devices/apple/driver.py +++ b/src/calibre/devices/apple/driver.py @@ -1557,6 +1557,10 @@ class ITUNES(DevicePlugin): return thumb.getvalue() except: self.log.error(" error generating thumb for '%s'" % book.name()) + try: + zfw.close() + except: + pass return None elif iswindows: @@ -1586,6 +1590,10 @@ class ITUNES(DevicePlugin): return thumb.getvalue() except: self.log.error(" error generating thumb for '%s'" % book.Name) + try: + zfw.close() + except: + pass return None def _get_device_book_size(self, file, compressed_size): @@ -2108,13 +2116,14 @@ class ITUNES(DevicePlugin): path = book.Location except: book = self._find_library_book(cached_book) + path = book.Location if book: - storage_path = os.path.split(book.Location) - if book.Location.startswith(self.iTunes_media): + storage_path = os.path.split(path) + if path.startswith(self.iTunes_media): if DEBUG: self.log.info(" removing '%s' at %s" % - (cached_book['title'], book.Location)) + (cached_book['title'], path)) try: os.remove(path) except: diff --git a/src/calibre/library/custom_columns.py b/src/calibre/library/custom_columns.py index c0ba91e252..823a240065 100644 --- a/src/calibre/library/custom_columns.py +++ b/src/calibre/library/custom_columns.py @@ -467,7 +467,8 @@ class CustomColumns(object): books_ratings_link as bl, ratings as r WHERE {lt}.value={table}.id and bl.book={lt}.book and - r.id = bl.rating and r.rating <> 0) avg_rating + r.id = bl.rating and r.rating <> 0) avg_rating, + value AS sort FROM {table}; CREATE VIEW tag_browser_filtered_{table} AS SELECT @@ -481,7 +482,8 @@ class CustomColumns(object): ratings as r WHERE {lt}.value={table}.id AND bl.book={lt}.book AND r.id = bl.rating AND r.rating <> 0 AND - books_list_filter(bl.book)) avg_rating + books_list_filter(bl.book)) avg_rating, + value AS sort FROM {table}; '''.format(lt=lt, table=table), diff --git a/src/calibre/web/feeds/news.py b/src/calibre/web/feeds/news.py index 9264d3d0a3..972617f422 100644 --- a/src/calibre/web/feeds/news.py +++ b/src/calibre/web/feeds/news.py @@ -805,6 +805,17 @@ class BasicNewsRecipe(Recipe): font-family:monospace; } + /* + .touchscreen_navbar { + -webkit-border-radius:4px; + background:#ccc; + border:#ccc 1px solid; + margin-left: 25%; + margin-right: 25%; + width: 50%; + } + */ + ''' templ = templates.TouchscreenFeedTemplate() diff --git a/src/calibre/web/feeds/templates.py b/src/calibre/web/feeds/templates.py index 45e713a9ac..0b99002ad6 100644 --- a/src/calibre/web/feeds/templates.py +++ b/src/calibre/web/feeds/templates.py @@ -14,6 +14,7 @@ def CLASS(*args, **kwargs): # class is a reserved word in Python kwargs['class'] = ' '.join(args) return kwargs +# Regular templates class Template(object): IS_HTML = True @@ -44,135 +45,30 @@ class Template(object): return etree.tostring(self.root, encoding='utf-8', xml_declaration=True, pretty_print=True) -class NavBarTemplate(Template): +class EmbeddedContent(Template): - def _generate(self, bottom, feed, art, number_of_articles_in_feed, - two_levels, url, __appname__, prefix='', center=True, - extra_css=None, style=None): - head = HEAD(TITLE('navbar')) + def _generate(self, article, style=None, extra_css=None): + content = article.content if article.content else '' + summary = article.summary if article.summary else '' + text = content if len(content) > len(summary) else summary + head = HEAD(TITLE(article.title)) if style: head.append(STYLE(style, type='text/css')) if extra_css: head.append(STYLE(extra_css, type='text/css')) - if prefix and not prefix.endswith('/'): - prefix += '/' - align = 'center' if center else 'left' - navbar = DIV(CLASS('calibre_navbar', 'calibre_rescale_70', - style='text-align:'+align)) - if bottom: - navbar.append(HR()) - text = 'This article was downloaded by ' - p = PT(text, STRONG(__appname__), A(url, href=url), style='text-align:left') - p[0].tail = ' from ' - navbar.append(p) - navbar.append(BR()) - navbar.append(BR()) - else: - next = 'feed_%d'%(feed+1) if art == number_of_articles_in_feed - 1 \ - else 'article_%d'%(art+1) - up = '../..' if art == number_of_articles_in_feed - 1 else '..' - href = '%s%s/%s/index.html'%(prefix, up, next) - navbar.text = '| ' - navbar.append(A('Next', href=href)) - href = '%s../index.html#article_%d'%(prefix, art) - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Section Menu', href=href)) - href = '%s../../index.html#feed_%d'%(prefix, feed) - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Main Menu', href=href)) - if art > 0 and not bottom: - href = '%s../article_%d/index.html'%(prefix, art-1) - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Previous', href=href)) - navbar.iterchildren(reversed=True).next().tail = ' | ' - if not bottom: - navbar.append(HR()) - - self.root = HTML(head, BODY(navbar)) - -class TouchscreenNavBarTemplate(Template): - - def _generate(self, bottom, feed, art, number_of_articles_in_feed, - two_levels, url, __appname__, prefix='', center=True, - extra_css=None, style=None): - head = HEAD(TITLE('navbar')) - if style: - head.append(STYLE(style, type='text/css')) - if extra_css: - head.append(STYLE(extra_css, type='text/css')) - - if prefix and not prefix.endswith('/'): - prefix += '/' - align = 'center' if center else 'left' - navbar = DIV(CLASS('calibre_navbar', 'calibre_rescale_100', - style='text-align:'+align)) - - if False: - if bottom: - navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) - text = 'This article was downloaded by ' - p = PT(text, STRONG(__appname__), A(url, href=url), style='text-align:left') - p[0].tail = ' from ' - navbar.append(p) - navbar.append(BR()) - navbar.append(BR()) - else: - next = 'feed_%d'%(feed+1) if art == number_of_articles_in_feed - 1 \ - else 'article_%d'%(art+1) - up = '../..' if art == number_of_articles_in_feed - 1 else '..' - href = '%s%s/%s/index.html'%(prefix, up, next) - navbar.text = '| ' - navbar.append(A('Next', href=href)) - - href = '%s../index.html#article_%d'%(prefix, art) - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Section Menu', href=href)) - href = '%s../../index.html#feed_%d'%(prefix, feed) - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A("Sections", href=href)) - if art > 0 and not bottom: - href = '%s../article_%d/index.html'%(prefix, art-1) - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Previous', href=href)) - else: - if bottom: - navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) - text = 'This article was downloaded by ' - p = PT(text, STRONG(__appname__), A(url, href=url), style='text-align:left') - p[0].tail = ' from ' - navbar.append(p) - navbar.append(BR()) - navbar.append(BR()) - else: - # | Previous - if art > 0 and not bottom: - href = '%s../article_%d/index.html'%(prefix, art-1) - navbar.text = '| ' - navbar.append(A('Previous', href=href)) - - # | Section | Main | - href = '%s../index.html#article_%d'%(prefix, art) - if art > 0: - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Articles', href=href)) - href = '%s../../index.html#feed_%d'%(prefix, feed) - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A("Sections", href=href)) - - # | Next - next = 'feed_%d'%(feed+1) if art == number_of_articles_in_feed - 1 \ - else 'article_%d'%(art+1) - up = '../..' if art == number_of_articles_in_feed - 1 else '..' - href = '%s%s/%s/index.html'%(prefix, up, next) - navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Next', href=href)) - - navbar.iterchildren(reversed=True).next().tail = ' | ' - if not bottom: - navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) - - self.root = HTML(head, BODY(navbar)) + if isbytestring(text): + text = text.decode('utf-8', 'replace') + elements = html.fragments_fromstring(text) + self.root = HTML(head, + BODY(H2(article.title), DIV())) + div = self.root.find('body').find('div') + if elements and isinstance(elements[0], unicode): + div.text = elements[0] + elements = list(elements)[1:] + for elem in elements: + elem.getparent().remove(elem) + div.append(elem) class IndexTemplate(Template): @@ -198,40 +94,6 @@ class IndexTemplate(Template): CLASS('calibre_rescale_100')) self.root = HTML(head, BODY(div)) -class TouchscreenIndexTemplate(Template): - - def _generate(self, title, masthead, datefmt, feeds, extra_css=None, style=None): - if isinstance(datefmt, unicode): - datefmt = datefmt.encode(preferred_encoding) - date = '%s, %s %s, %s' % (strftime('%A'), strftime('%B'), strftime('%d').lstrip('0'), strftime('%Y')) - masthead_p = etree.Element("p") - masthead_p.set("style","text-align:center") - masthead_img = etree.Element("img") - masthead_img.set("src",masthead) - masthead_img.set("alt","masthead") - masthead_p.append(masthead_img) - - head = HEAD(TITLE(title)) - if style: - head.append(STYLE(style, type='text/css')) - if extra_css: - head.append(STYLE(extra_css, type='text/css')) - - toc = TABLE(CLASS('toc'),width="100%",border="0",cellpadding="3px") - for i, feed in enumerate(feeds): - if feed: - tr = TR() - tr.append(TD( CLASS('calibre_rescale_120'), A(feed.title, href='feed_%d/index.html'%i))) - tr.append(TD( '%s' % len(feed.articles), style="text-align:right")) - toc.append(tr) - div = DIV( - masthead_p, - PT(date, style='text-align:center'), - #DIV(style="border-color:gray;border-top-style:solid;border-width:thin"), - DIV(style="border-top:1px solid gray;border-bottom:1em solid white"), - toc) - self.root = HTML(head, BODY(div)) - class FeedTemplate(Template): def _generate(self, f, feeds, cutoff, extra_css=None, style=None): @@ -283,11 +145,95 @@ class FeedTemplate(Template): self.root = HTML(head, body) +class NavBarTemplate(Template): + + def _generate(self, bottom, feed, art, number_of_articles_in_feed, + two_levels, url, __appname__, prefix='', center=True, + extra_css=None, style=None): + head = HEAD(TITLE('navbar')) + if style: + head.append(STYLE(style, type='text/css')) + if extra_css: + head.append(STYLE(extra_css, type='text/css')) + + if prefix and not prefix.endswith('/'): + prefix += '/' + align = 'center' if center else 'left' + + navbar = DIV(CLASS('calibre_navbar', 'calibre_rescale_70', + style='text-align:'+align)) + if bottom: + navbar.append(HR()) + text = 'This article was downloaded by ' + p = PT(text, STRONG(__appname__), A(url, href=url), style='text-align:left') + p[0].tail = ' from ' + navbar.append(p) + navbar.append(BR()) + navbar.append(BR()) + else: + next = 'feed_%d'%(feed+1) if art == number_of_articles_in_feed - 1 \ + else 'article_%d'%(art+1) + up = '../..' if art == number_of_articles_in_feed - 1 else '..' + href = '%s%s/%s/index.html'%(prefix, up, next) + navbar.text = '| ' + navbar.append(A('Next', href=href)) + href = '%s../index.html#article_%d'%(prefix, art) + navbar.iterchildren(reversed=True).next().tail = ' | ' + navbar.append(A('Section Menu', href=href)) + href = '%s../../index.html#feed_%d'%(prefix, feed) + navbar.iterchildren(reversed=True).next().tail = ' | ' + navbar.append(A('Main Menu', href=href)) + if art > 0 and not bottom: + href = '%s../article_%d/index.html'%(prefix, art-1) + navbar.iterchildren(reversed=True).next().tail = ' | ' + navbar.append(A('Previous', href=href)) + navbar.iterchildren(reversed=True).next().tail = ' | ' + if not bottom: + navbar.append(HR()) + + self.root = HTML(head, BODY(navbar)) + + +# Touchscreen templates +class TouchscreenIndexTemplate(Template): + + def _generate(self, title, masthead, datefmt, feeds, extra_css=None, style=None): + if isinstance(datefmt, unicode): + datefmt = datefmt.encode(preferred_encoding) + date = '%s, %s %s, %s' % (strftime('%A'), strftime('%B'), strftime('%d').lstrip('0'), strftime('%Y')) + masthead_p = etree.Element("p") + masthead_p.set("style","text-align:center") + masthead_img = etree.Element("img") + masthead_img.set("src",masthead) + masthead_img.set("alt","masthead") + masthead_p.append(masthead_img) + + head = HEAD(TITLE(title)) + if style: + head.append(STYLE(style, type='text/css')) + if extra_css: + head.append(STYLE(extra_css, type='text/css')) + + toc = TABLE(CLASS('toc'),width="100%",border="0",cellpadding="3px") + for i, feed in enumerate(feeds): + if feed: + tr = TR() + tr.append(TD( CLASS('calibre_rescale_120'), A(feed.title, href='feed_%d/index.html'%i))) + tr.append(TD( '%s' % len(feed.articles), style="text-align:right")) + toc.append(tr) + div = DIV( + masthead_p, + PT(date, style='text-align:center'), + #DIV(style="border-color:gray;border-top-style:solid;border-width:thin"), + DIV(style="border-top:1px solid gray;border-bottom:1em solid white"), + toc) + self.root = HTML(head, BODY(div)) + class TouchscreenFeedTemplate(Template): def _generate(self, f, feeds, cutoff, extra_css=None, style=None): - def trim_title(title,clip=15): + def trim_title(title,clip=18): if len(title)>clip: tokens = title.split(' ') new_title_tokens = [] @@ -295,7 +241,7 @@ class TouchscreenFeedTemplate(Template): for token in tokens: if len(token) + new_title_len < clip: new_title_tokens.append(token) - new_title_len += len(token) + 1 + new_title_len += len(token) else: new_title_tokens.append('...') title = ' '.join(new_title_tokens) @@ -305,19 +251,42 @@ class TouchscreenFeedTemplate(Template): feed = feeds[f] # Construct the navbar - navbar = DIV('| ', CLASS('calibre_navbar', 'calibre_rescale_100'),style='text-align:center') - if f > 0: - link = A(trim_title(feeds[f-1].title), href = '../feed_%d/index.html' % int(f-1)) - link.tail = ' |' - navbar.append(link) + if False: + navbar = DIV('', CLASS('calibre_navbar', 'calibre_rescale_100'),style='text-align:center') + if f > 0: + link = A(trim_title('< ' + feeds[f-1].title + ' '), href = '../feed_%d/index.html' % int(f-1)) + #link.tail = ' |' + navbar.append(link) - link = A("Sections", href="../index.html") - link.tail = ' |' - navbar.append(link) - if f < len(feeds)-1: - link = A(trim_title(feeds[f+1].title), href = '../feed_%d/index.html' % int(f+1)) - link.tail = ' |' + link = A("| Sections |", href="../index.html") + #link.tail = ' |' navbar.append(link) + if f < len(feeds)-1: + link = A(trim_title(' '+feeds[f+1].title) + ' >', href = '../feed_%d/index.html' % int(f+1)) + #link.tail = ' |' + navbar.append(link) + else: + navbar_t = TABLE(width="100%", align="center", border="0", + cellspacing="3px", cellpadding="3px") + navbar_tr = TR() + + link = '' + if f > 0: + link = A(trim_title('<' + feeds[f-1].title), + href = '../feed_%d/index.html' % int(f-1)) + navbar_tr.append(TD(link, width="40%", align="right")) + + link = A("Sections", href="../index.html") + navbar_tr.append(TD(link,width="20%", align="center")) + + link = '' + if f < len(feeds)-1: + link = A(trim_title(feeds[f+1].title) + '>', + href = '../feed_%d/index.html' % int(f+1)) + navbar_tr.append(TD(link, width="40%", align="left")) + + navbar_t.append(navbar_tr) + navbar = navbar_t # Build the page head = HEAD(TITLE(feed.title)) @@ -361,34 +330,128 @@ class TouchscreenFeedTemplate(Template): div_td.append(DIV(cutoff(article.text_summary), CLASS('summary_text', 'calibre_rescale_100'))) tr.append(TD(div_td)) - toc.append(tr) + div.append(toc) + div.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) div.append(navbar) self.root = HTML(head, body) -class EmbeddedContent(Template): +class TouchscreenNavBarTemplate(Template): - def _generate(self, article, style=None, extra_css=None): - content = article.content if article.content else '' - summary = article.summary if article.summary else '' - text = content if len(content) > len(summary) else summary - head = HEAD(TITLE(article.title)) + def _generate(self, bottom, feed, art, number_of_articles_in_feed, + two_levels, url, __appname__, prefix='', center=True, + extra_css=None, style=None): + head = HEAD(TITLE('navbar')) if style: head.append(STYLE(style, type='text/css')) if extra_css: head.append(STYLE(extra_css, type='text/css')) - if isbytestring(text): - text = text.decode('utf-8', 'replace') - elements = html.fragments_fromstring(text) - self.root = HTML(head, - BODY(H2(article.title), DIV())) - div = self.root.find('body').find('div') - if elements and isinstance(elements[0], unicode): - div.text = elements[0] - elements = list(elements)[1:] - for elem in elements: - elem.getparent().remove(elem) - div.append(elem) + if prefix and not prefix.endswith('/'): + prefix += '/' + align = 'center' if center else 'left' + if False: + navbar = DIV(CLASS('calibre_navbar', 'calibre_rescale_100', + style='text-align:'+align)) + + if bottom and False: + navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) + text = 'This article was downloaded by ' + p = PT(text, STRONG(__appname__), A(url, href=url), style='text-align:left') + p[0].tail = ' from ' + navbar.append(p) + navbar.append(BR()) + navbar.append(BR()) + + # | Previous + if art > 0: + href = '%s../article_%d/index.html'%(prefix, art-1) + navbar.append(A('< Previous', href=href)) + + # | Articles | Sections | + href = '%s../index.html#article_%d'%(prefix, art) + navbar.iterchildren(reversed=True).next().tail = ' | ' + navbar.append(A('Articles', href=href)) + + href = '%s../../index.html#feed_%d'%(prefix, feed) + navbar.iterchildren(reversed=True).next().tail = ' | ' + navbar.append(A("Sections", href=href)) + + # | Next + next = 'feed_%d'%(feed+1) if art == number_of_articles_in_feed - 1 \ + else 'article_%d'%(art+1) + up = '../..' if art == number_of_articles_in_feed - 1 else '..' + href = '%s%s/%s/index.html'%(prefix, up, next) + navbar.iterchildren(reversed=True).next().tail = ' | ' + navbar.append(A('Next >', href=href)) + + #navbar.iterchildren(reversed=True).next().tail = ' | ' + if not bottom: + navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) + else: + ''' + table.touchscreen_navbar { + -webkit-border-radius:4px; + background:#ccc; + border:#ccc 1px solid; + margin-left: 25%; + margin-right: 25%; + width: 50%;} + + + + + + + + + +
< Articles Sections >
+ + ''' + + navbar = DIV(CLASS('calibre_navbar', 'calibre_rescale_120')) + + if bottom: + navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) + + navbar_t = TABLE( + align="center", + border="0", + cellpadding="3px", + cellspacing="3px", + width="100%" + ) + + navbar_tr = TR() + # | Previous + if art > 0: + href = '%s../article_%d/index.html'%(prefix, art-1) + navbar_tr.append(TD(A(' ', href=href),width="32%", align="left")) + navbar_t.append(navbar_tr) + navbar.append(navbar_t) + #print "\n%s\n" % etree.tostring(navbar, pretty_print=True) + + if not bottom: + navbar.append(DIV(style="border-top:1px solid gray;border-bottom:1em solid white")) + + self.root = HTML(head, BODY(navbar)) From 4b4f047c41b03d6dddc1862c5498e58510a04f12 Mon Sep 17 00:00:00 2001 From: Translators <> Date: Sun, 20 Jun 2010 04:33:45 +0100 Subject: [PATCH 012/275] Launchpad automatic translations update. --- src/calibre/translations/ar.po | 48 +- src/calibre/translations/cs.po | 48 +- src/calibre/translations/fr.po | 128 +- src/calibre/translations/gl.po | 48 +- src/calibre/translations/he.po | 48 +- src/calibre/translations/it.po | 3132 ++++++++++++++++------------- src/calibre/translations/lv.po | 48 +- src/calibre/translations/pl.po | 104 +- src/calibre/translations/pt_BR.po | 93 +- src/calibre/translations/ru.po | 48 +- src/calibre/translations/sq.po | 48 +- src/calibre/translations/sr.po | 63 +- src/calibre/translations/tr.po | 48 +- src/calibre/translations/vi.po | 250 ++- src/calibre/translations/zh_CN.po | 48 +- src/calibre/translations/zh_TW.po | 48 +- 16 files changed, 2313 insertions(+), 1937 deletions(-) diff --git a/src/calibre/translations/ar.po b/src/calibre/translations/ar.po index d401ff50df..dfe6c9269f 100644 --- a/src/calibre/translations/ar.po +++ b/src/calibre/translations/ar.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-06-18 17:57+0000\n" -"PO-Revision-Date: 2010-06-18 17:27+0000\n" +"POT-Creation-Date: 2010-06-20 00:56+0000\n" +"PO-Revision-Date: 2010-06-20 00:42+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Arabic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-19 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-20 03:31+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -475,55 +475,55 @@ msgstr "" msgid "Communicate with S60 phones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:78 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:77 msgid "Communicate with iBooks through iTunes." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:84 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:83 msgid "Apple device detected, launching iTunes, please wait ..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:227 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:230 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:226 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:229 msgid "Updating device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:301 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:338 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:842 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:876 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:300 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:337 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:841 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:875 msgid "%d of %d" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:345 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:881 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:344 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:880 msgid "finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:519 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:518 msgid "" "Some books not found in iTunes database.\n" "Delete using the iBooks app.\n" "Click 'Show Details' for a list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:742 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:741 #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:28 msgid "settings for device drivers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:744 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:743 #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:30 msgid "Ordered list of formats the device will accept" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:813 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:812 msgid "" "Some cover art could not be converted.\n" "Click 'Show Details' for a list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2168 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2178 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:810 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:816 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:844 @@ -1495,7 +1495,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:86 msgid "" "Do not use SVG for the book cover. Use this option if your EPUB is going to " -"be used ona device that does not support SVG, like the iPhone or the " +"be used on a device that does not support SVG, like the iPhone or the " "JetBook Lite. Without this option, such devices will display the cover as a " "blank page." msgstr "" @@ -1812,10 +1812,10 @@ msgstr "المنتج" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:385 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:34 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:201 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:202 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:207 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:214 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:215 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 @@ -3253,7 +3253,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:22 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:44 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:309 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:116 @@ -3298,7 +3298,7 @@ msgstr "" msgid "None" msgstr "بدون" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:301 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:308 msgid "Click to open Book Details window" msgstr "" diff --git a/src/calibre/translations/cs.po b/src/calibre/translations/cs.po index 65d3cfe0a7..7d744ea6e2 100644 --- a/src/calibre/translations/cs.po +++ b/src/calibre/translations/cs.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-06-18 17:57+0000\n" -"PO-Revision-Date: 2010-06-18 17:14+0000\n" +"POT-Creation-Date: 2010-06-20 00:56+0000\n" +"PO-Revision-Date: 2010-06-20 00:33+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-19 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-20 03:31+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -479,55 +479,55 @@ msgstr "" msgid "Communicate with S60 phones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:78 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:77 msgid "Communicate with iBooks through iTunes." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:84 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:83 msgid "Apple device detected, launching iTunes, please wait ..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:227 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:230 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:226 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:229 msgid "Updating device metadata listing..." msgstr "Záznamy metadat v zařízení se aktualizují..." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:301 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:338 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:842 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:876 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:300 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:337 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:841 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:875 msgid "%d of %d" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:345 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:881 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:344 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:880 msgid "finished" msgstr "hotovo" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:519 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:518 msgid "" "Some books not found in iTunes database.\n" "Delete using the iBooks app.\n" "Click 'Show Details' for a list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:742 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:741 #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:28 msgid "settings for device drivers" msgstr "nastavení ovladačů zařízení" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:744 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:743 #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:30 msgid "Ordered list of formats the device will accept" msgstr "Setříděný seznam formátů, které toto zařízení přijme." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:813 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:812 msgid "" "Some cover art could not be converted.\n" "Click 'Show Details' for a list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2168 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2178 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:810 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:816 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:844 @@ -1609,7 +1609,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:86 msgid "" "Do not use SVG for the book cover. Use this option if your EPUB is going to " -"be used ona device that does not support SVG, like the iPhone or the " +"be used on a device that does not support SVG, like the iPhone or the " "JetBook Lite. Without this option, such devices will display the cover as a " "blank page." msgstr "" @@ -1939,10 +1939,10 @@ msgstr "Producent" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:385 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:34 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:201 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:202 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:207 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:214 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:215 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 @@ -3399,7 +3399,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:22 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:44 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:309 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:116 @@ -3444,7 +3444,7 @@ msgstr "" msgid "None" msgstr "Žádné" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:301 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:308 msgid "Click to open Book Details window" msgstr "" diff --git a/src/calibre/translations/fr.po b/src/calibre/translations/fr.po index 4fa07711e3..1b996919a8 100644 --- a/src/calibre/translations/fr.po +++ b/src/calibre/translations/fr.po @@ -6,14 +6,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre 0.4.22\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-18 17:57+0000\n" -"PO-Revision-Date: 2010-06-18 20:01+0000\n" -"Last-Translator: sengian \n" +"POT-Creation-Date: 2010-06-20 00:56+0000\n" +"PO-Revision-Date: 2010-06-20 00:37+0000\n" +"Last-Translator: Kovid Goyal \n" "Language-Team: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-19 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-20 03:32+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Bookmarks: 1177,-1,-1,-1,-1,-1,-1,-1,-1,-1\n" "Generated-By: pygettext.py 1.5\n" @@ -417,7 +417,7 @@ msgstr "Plugins désactivés." #: /home/kovid/work/calibre/src/calibre/customize/ui.py:35 msgid "Enabled plugins" -msgstr "" +msgstr "Plugins activés" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:83 msgid "No valid plugin found in " @@ -486,32 +486,32 @@ msgstr "" msgid "Communicate with S60 phones." msgstr "Communiquer avec les téléphones S60" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:78 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:77 msgid "Communicate with iBooks through iTunes." msgstr "Communiquer avec iBooks à travers iTunes." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:84 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:83 msgid "Apple device detected, launching iTunes, please wait ..." msgstr "Appareil Apple détecté, lancement d'iTunes, veuillez patienter..." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:227 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:230 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:226 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:229 msgid "Updating device metadata listing..." msgstr "Mise à jour de la liste des métadonnées de l'appareil..." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:301 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:338 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:842 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:876 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:300 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:337 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:841 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:875 msgid "%d of %d" msgstr "%d sur %d" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:345 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:881 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:344 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:880 msgid "finished" msgstr "Terminé" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:519 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:518 msgid "" "Some books not found in iTunes database.\n" "Delete using the iBooks app.\n" @@ -521,17 +521,17 @@ msgstr "" "Les supprimer en utilisant l'application iBooks.\n" "Cliquer 'Afficher détails' pour obtenir la liste." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:742 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:741 #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:28 msgid "settings for device drivers" msgstr "paramètres pour les pilotes de périphériques" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:744 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:743 #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:30 msgid "Ordered list of formats the device will accept" msgstr "Liste de formats triés acceptés par l'appareil" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:813 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:812 msgid "" "Some cover art could not be converted.\n" "Click 'Show Details' for a list." @@ -539,7 +539,7 @@ msgstr "" "Certaines illustrations de couverture n'ont pu être converties.\n" "Cliquer sur 'Afficher Détails' pour une liste." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2168 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2178 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:810 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:816 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:844 @@ -575,7 +575,7 @@ msgstr "Communiquer avec le lecteur d'ebook EB600" #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:207 msgid "Communicate with the PocketBook 301 reader." -msgstr "" +msgstr "Communiquer avec le lecteur PocketBook 301" #: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 msgid "Entourage Edge" @@ -620,6 +620,8 @@ msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used." msgstr "" +"Liste des répertoires séparés par une virgule utilisés pour envoyer les " +"livres électroniques à l'appareil. Le premier qui existe sera utilisé." #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:18 msgid "Communicate with the Hanvon N520 eBook reader." @@ -812,7 +814,7 @@ msgstr "Lire les métadonnées à partir des fichiers dans l'appareil" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:36 msgid "Use author sort instead of author" -msgstr "" +msgstr "Utiliser la clé de tri d'auteur au lieu de l'auteur" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:38 msgid "Template to control how books are saved" @@ -1695,14 +1697,10 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:86 msgid "" "Do not use SVG for the book cover. Use this option if your EPUB is going to " -"be used ona device that does not support SVG, like the iPhone or the " +"be used on a device that does not support SVG, like the iPhone or the " "JetBook Lite. Without this option, such devices will display the cover as a " "blank page." msgstr "" -"Ne pas utiliser SVG pour la couverture du livre. Utiliser cette option si " -"votre EPUB doit être utilisé sur un appareil qui ne supporte pas SVG, comme " -"l'iPhone ou le Jetbook Lite. Sans cette option, ces appareils afficheront la " -"couverture comme une page vide." #: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:94 msgid "" @@ -2054,10 +2052,10 @@ msgstr "Producteur" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:385 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:34 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:201 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:202 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:207 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:214 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:215 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 @@ -2238,7 +2236,7 @@ msgstr "Aucune couverture trouvée" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/douban.py:41 msgid "Downloads metadata from Douban.com" -msgstr "" +msgstr "Télécharger les métadonnées depuis Douban.com" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:33 msgid "Metadata download" @@ -2283,6 +2281,7 @@ msgstr "Télécharge les métadonnées sociales à partir d'amazon.com" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:205 msgid "Downloads series information from librarything.com" msgstr "" +"Télécharger les informations sur les séries à partir de librarything.com" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:94 msgid "" @@ -2960,7 +2959,7 @@ msgstr "Utiliser les chiffres romains pour les numéros de séries" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Sort tags list by name, popularity, or rating" -msgstr "" +msgstr "Trier la liste d'étiquettes par nom, popularité ou note (classement)" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Number of covers to show in the cover browsing mode" @@ -3050,7 +3049,7 @@ msgstr "La présentation de l'interface utilisateur" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:105 msgid "Show the average rating per item indication in the tag browser" -msgstr "" +msgstr "Afficher la note moyenne par article dans le navigateur d'étiquettes" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:476 @@ -3204,7 +3203,7 @@ msgstr "Impossible de lire les métadonnées à partir de" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:427 #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:432 msgid "Add to library" -msgstr "" +msgstr "Ajouter à la bibliothèqye" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:427 #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:457 @@ -3215,7 +3214,7 @@ msgstr "Aucun livre sélectionné" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:432 msgid "No book files found" -msgstr "" +msgstr "Aucun fichier de livres trouvé" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:454 msgid "Cannot delete" @@ -3231,15 +3230,15 @@ msgstr "Choisir les formats à ne pas supprimer" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:505 msgid "Cannot delete books" -msgstr "" +msgstr "Impossible d'effacer les livres" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:506 msgid "No device is connected" -msgstr "" +msgstr "Aucun appareil n'est connecté" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:516 msgid "Main memory" -msgstr "" +msgstr "Mémoire principale" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:517 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:418 @@ -3255,11 +3254,11 @@ msgstr "Carte mémoire B" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:523 msgid "No books to delete" -msgstr "" +msgstr "Aucun livre à effacer" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:524 msgid "None of the selected books are on the device" -msgstr "" +msgstr "Aucun des livres sélectionnés n'est sur l'appareil" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:541 #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:598 @@ -3707,7 +3706,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:22 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:44 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:309 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:116 @@ -3752,9 +3751,9 @@ msgstr "Cliquer pour ouvrir" msgid "None" msgstr "Aucun" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:301 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:308 msgid "Click to open Book Details window" -msgstr "" +msgstr "Cliquer pour ouvrir la fenêtre Détail du livre" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 msgid "CSV/XML Options" @@ -5200,7 +5199,7 @@ msgstr "Utiliser les sous-répertoires" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:83 msgid "Use author sort for author" -msgstr "" +msgstr "Utiliser la clé de tri d'auteur comme auteur" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:85 msgid "Save &template:" @@ -5770,7 +5769,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Show &average ratings in the tags browser" -msgstr "" +msgstr "Afficher la note moyenne dans le navigateur d'étiquettes" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Search as you type" @@ -6277,7 +6276,7 @@ msgstr "ERREUR" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:69 msgid "Location" -msgstr "" +msgstr "Emplacement" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:70 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1041 @@ -6286,15 +6285,15 @@ msgstr "Format" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device_ui.py:50 msgid "Delete from device" -msgstr "" +msgstr "Effacer de l'appareil" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:29 msgid "Author sort" -msgstr "" +msgstr "Clé de tri d'auteur" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:47 msgid "Manage authors" -msgstr "" +msgstr "Gérer les auteurs" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63 msgid "Author Sort" @@ -7640,7 +7639,7 @@ msgstr "Supprimer les couvertures des livres sélectionnés" #: /home/kovid/work/calibre/src/calibre/gui2/init.py:136 msgid "Remove matching books from device" -msgstr "" +msgstr "Supprimer les livres correspondant de l'appareil" #: /home/kovid/work/calibre/src/calibre/gui2/init.py:153 msgid "Convert individually" @@ -7664,7 +7663,7 @@ msgstr "Livres similaires..." #: /home/kovid/work/calibre/src/calibre/gui2/init.py:230 msgid "Add books to library" -msgstr "" +msgstr "Ajouter des livres à la bibliothèque" #: /home/kovid/work/calibre/src/calibre/gui2/init.py:309 msgid "Cover Browser" @@ -8321,11 +8320,11 @@ msgstr "Raccourci &alternatif:" #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:190 msgid "Rename '%s'" -msgstr "" +msgstr "Renommer '%s'" #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:194 msgid "Edit sort for '%s'" -msgstr "" +msgstr "Editer la recherche our '%s'" #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:199 msgid "Hide category %s" @@ -8342,7 +8341,7 @@ msgstr "Afficher toutes les catégories" #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:213 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:217 msgid "Manage %s" -msgstr "" +msgstr "Gérer %s" #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:220 msgid "Manage Saved Searches" @@ -8368,15 +8367,15 @@ msgstr "Le nom de la recherche sauvegardé %s est déjà utilisé" #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:726 msgid "Sort by name" -msgstr "" +msgstr "Trier par nom" #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:726 msgid "Sort by popularity" -msgstr "" +msgstr "Trier par popularité" #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:727 msgid "Sort by average rating" -msgstr "" +msgstr "Trier par note moyenne" #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:733 msgid "Match all" @@ -10141,7 +10140,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/database2.py:70 msgid "%sAverage rating is %3.1f" -msgstr "" +msgstr "La note moyenne de %sest %3.1f" #: /home/kovid/work/calibre/src/calibre/library/database2.py:520 msgid "Main" @@ -10592,7 +10591,7 @@ msgstr "Anglais (Pakistan)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:106 msgid "English (Israel)" -msgstr "" +msgstr "Anglais (Israël)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 msgid "English (Singapore)" @@ -13204,6 +13203,17 @@ msgstr "Ne pas télécharger les feuilles de style CSS." #~ msgid "original" #~ msgstr "original" +#~ msgid "" +#~ "Do not use SVG for the book cover. Use this option if your EPUB is going to " +#~ "be used ona device that does not support SVG, like the iPhone or the " +#~ "JetBook Lite. Without this option, such devices will display the cover as a " +#~ "blank page." +#~ msgstr "" +#~ "Ne pas utiliser SVG pour la couverture du livre. Utiliser cette option si " +#~ "votre EPUB doit être utilisé sur un appareil qui ne supporte pas SVG, comme " +#~ "l'iPhone ou le Jetbook Lite. Sans cette option, ces appareils afficheront la " +#~ "couverture comme une page vide." + #~ msgid "Editing meta information for %d books" #~ msgstr "Edite les informations de métadonnées pour les livres %d" diff --git a/src/calibre/translations/gl.po b/src/calibre/translations/gl.po index b2ed13c62b..4319ba2790 100644 --- a/src/calibre/translations/gl.po +++ b/src/calibre/translations/gl.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-06-18 17:57+0000\n" -"PO-Revision-Date: 2010-06-18 17:25+0000\n" +"POT-Creation-Date: 2010-06-20 00:56+0000\n" +"PO-Revision-Date: 2010-06-20 00:46+0000\n" "Last-Translator: Imendez \n" "Language-Team: Galician \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-19 03:48+0000\n" +"X-Launchpad-Export-Date: 2010-06-20 03:32+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -485,50 +485,50 @@ msgstr "" msgid "Communicate with S60 phones." msgstr "Comunicar con teléfonos S60" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:78 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:77 msgid "Communicate with iBooks through iTunes." msgstr "Comunicar con iBooks a través do iTunes." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:84 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:83 msgid "Apple device detected, launching iTunes, please wait ..." msgstr "" "Detectouse un dispositivo de Apple. Estase a iniciar o iTunes, agarde..." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:227 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:230 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:226 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:229 msgid "Updating device metadata listing..." msgstr "Actualizando a relación de metadatos..." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:301 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:338 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:842 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:876 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:300 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:337 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:841 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:875 msgid "%d of %d" msgstr "%d de %d" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:345 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:881 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:344 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:880 msgid "finished" msgstr "ramtouse" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:519 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:518 msgid "" "Some books not found in iTunes database.\n" "Delete using the iBooks app.\n" "Click 'Show Details' for a list." msgstr "Algúns libros non se acharon na base de datos do iTunes-" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:742 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:741 #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:28 msgid "settings for device drivers" msgstr "Configuración para os controladores de dispositivo" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:744 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:743 #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:30 msgid "Ordered list of formats the device will accept" msgstr "Lista ordenada de formatos que o dispositivo aceptará" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:813 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:812 msgid "" "Some cover art could not be converted.\n" "Click 'Show Details' for a list." @@ -536,7 +536,7 @@ msgstr "" "Algunhas portadas non se converteron. \n" "Prema \"Amosar detalles\" para relacionalas." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2168 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2178 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:810 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:816 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:844 @@ -1659,7 +1659,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:86 msgid "" "Do not use SVG for the book cover. Use this option if your EPUB is going to " -"be used ona device that does not support SVG, like the iPhone or the " +"be used on a device that does not support SVG, like the iPhone or the " "JetBook Lite. Without this option, such devices will display the cover as a " "blank page." msgstr "" @@ -2002,10 +2002,10 @@ msgstr "Produtor" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:385 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:34 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:201 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:202 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:207 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:214 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:215 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 @@ -3562,7 +3562,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:22 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:44 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:309 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:116 @@ -3607,7 +3607,7 @@ msgstr "" msgid "None" msgstr "Ningún" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:301 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:308 msgid "Click to open Book Details window" msgstr "" diff --git a/src/calibre/translations/he.po b/src/calibre/translations/he.po index 9487b1627d..045cffd496 100644 --- a/src/calibre/translations/he.po +++ b/src/calibre/translations/he.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-06-18 17:57+0000\n" -"PO-Revision-Date: 2010-06-18 16:52+0000\n" +"POT-Creation-Date: 2010-06-20 00:56+0000\n" +"PO-Revision-Date: 2010-06-20 00:21+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Hebrew \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-19 03:48+0000\n" +"X-Launchpad-Export-Date: 2010-06-20 03:32+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -463,55 +463,55 @@ msgstr "רשימת ספריות מופרדות בפסיקל שליחת ספרש msgid "Communicate with S60 phones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:78 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:77 msgid "Communicate with iBooks through iTunes." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:84 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:83 msgid "Apple device detected, launching iTunes, please wait ..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:227 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:230 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:226 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:229 msgid "Updating device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:301 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:338 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:842 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:876 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:300 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:337 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:841 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:875 msgid "%d of %d" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:345 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:881 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:344 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:880 msgid "finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:519 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:518 msgid "" "Some books not found in iTunes database.\n" "Delete using the iBooks app.\n" "Click 'Show Details' for a list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:742 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:741 #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:28 msgid "settings for device drivers" msgstr "הגדרות דרייברים למכשיר." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:744 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:743 #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:30 msgid "Ordered list of formats the device will accept" msgstr "רשימת סוגי קבצים שהמכשיר מסוגל לקבל." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:813 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:812 msgid "" "Some cover art could not be converted.\n" "Click 'Show Details' for a list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2168 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2178 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:810 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:816 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:844 @@ -1466,7 +1466,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:86 msgid "" "Do not use SVG for the book cover. Use this option if your EPUB is going to " -"be used ona device that does not support SVG, like the iPhone or the " +"be used on a device that does not support SVG, like the iPhone or the " "JetBook Lite. Without this option, such devices will display the cover as a " "blank page." msgstr "" @@ -1772,10 +1772,10 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:385 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:34 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:201 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:202 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:207 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:214 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:215 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 @@ -3213,7 +3213,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:22 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:44 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:309 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:116 @@ -3258,7 +3258,7 @@ msgstr "" msgid "None" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:301 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:308 msgid "Click to open Book Details window" msgstr "" diff --git a/src/calibre/translations/it.po b/src/calibre/translations/it.po index 5f0196b75a..fe83011a91 100644 --- a/src/calibre/translations/it.po +++ b/src/calibre/translations/it.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre_calibre-it\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-11 22:51+0000\n" -"PO-Revision-Date: 2010-06-11 18:44+0000\n" -"Last-Translator: Kovid Goyal \n" +"POT-Creation-Date: 2010-06-20 00:56+0000\n" +"PO-Revision-Date: 2010-06-19 19:35+0000\n" +"Last-Translator: Sheldon Pax \n" "Language-Team: italiano\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-12 03:42+0000\n" +"X-Launchpad-Export-Date: 2010-06-20 03:32+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Bookmarks: -1,-1,-1,-1,-1,1105,-1,1312,-1,-1\n" "Generated-By: pygettext.py 1.5\n" @@ -26,11 +26,11 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:46 #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:72 -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:54 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:75 #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70 #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:71 #: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:431 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:432 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:385 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:98 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:101 @@ -43,12 +43,12 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:230 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:270 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:373 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:19 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:235 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:382 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:20 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:21 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46 @@ -57,8 +57,8 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:123 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:125 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:943 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1055 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:945 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1057 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:28 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:23 @@ -104,44 +104,46 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:286 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:295 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:809 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:812 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:170 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:134 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:665 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:674 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:955 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:958 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:866 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1156 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1159 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:491 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:492 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:368 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:843 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1015 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1300 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1303 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:351 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:861 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1037 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 #: /home/kovid/work/calibre/src/calibre/library/cli.py:213 #: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:302 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:314 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:880 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:917 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1515 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1517 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1639 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:330 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:342 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:916 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:985 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1586 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1588 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1710 #: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:268 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:131 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:134 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:137 #: /home/kovid/work/calibre/src/calibre/library/server/xml.py:68 -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:114 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:115 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77 @@ -178,7 +180,7 @@ msgid "" msgstr "" "Segue tutti i collegamenti in un file HTML e crea un file ZIP contenente " "tutti i file collegati. Questo plug-in viene eseguito ogni volta che si " -"aggiunge un file HTML alla libreria." +"aggiunge un file HTML alla biblioteca." #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:50 msgid "" @@ -194,9 +196,9 @@ msgid "" "directory pmlname_img or images. This plugin is run every time you add a PML " "file to the library." msgstr "" -"Creare un archivio PMLZ che contiene il documento PML e tutte le immagini " -"nella cartella /pmlname_img or /images. Questo plug-in è eseguito ogni volta " -"che si aggiunge un documento PML alla libreria." +"Crea un archivio PMLZ che contiene il documento PML e tutte le immagini " +"nella cartella pmlname_img o in images. Questo plug-in è eseguito ogni volta " +"che si aggiunge un documento PML alla biblioteca." #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:89 msgid "Extract cover from comic files" @@ -297,62 +299,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "Questo profilo è adatto per il Sony PRS 300." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:78 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:300 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:301 msgid "This profile is intended for the SONY PRS-900." msgstr "Questo profilo è adatto per il Sony PRS-900." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:86 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:330 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:331 msgid "This profile is intended for the Microsoft Reader." msgstr "Questo profilo è adatto per il Microsoft Reader." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:97 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:341 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:342 msgid "This profile is intended for the Mobipocket books." msgstr "Questo profilo è adatto per i libri in formato Mobipocket." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:110 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:354 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:355 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Questo profilo è adatto per l'Hanlin V3 ed i suoi cloni." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:122 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:366 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:367 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Questo profilo è adatto per Hanlin V5 e i suoi cloni." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:132 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:374 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:375 msgid "This profile is intended for the Cybook G3." msgstr "Questo profilo è adatto per il Cybook G3." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:145 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:387 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:388 msgid "This profile is intended for the Cybook Opus." msgstr "Questo profilo è adatto per il Cybook Opus." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:157 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:398 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:399 msgid "This profile is intended for the Amazon Kindle." msgstr "Questo profilo è adatto per il Kindle di Amazon." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:169 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:433 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:434 msgid "This profile is intended for the Irex Illiad." msgstr "Questo profilo è adatto per l'Irex di Illiad." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:181 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:446 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:447 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "Questo profilo è adatto per l'IRex Digital Reader 1000." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:460 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:461 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Il profilo è adatto per l'IRex Digital Reader 800" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:206 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:474 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 msgid "This profile is intended for the B&N Nook." msgstr "Questo profilo è adatto per il Nook B&N." @@ -379,15 +381,15 @@ msgstr "Inteso per iPad e simili dispositivi con una risoluzione di 768x1024" msgid "This profile is intended for the Kobo Reader." msgstr "Questo profilo e' inteso per il dispositivo Kobo Reader" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:291 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:292 msgid "This profile is intended for the SONY PRS-300." msgstr "Questo profilo è adatto per il Sony PRS-300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:309 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:310 msgid "This profile is intended for the 5-inch JetBook." msgstr "Questo profilo è adatto per il JetBook 5-inch." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:318 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:319 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -395,7 +397,7 @@ msgstr "" "Questo profilo è adatto per la linea SONY PRS. Il 500/505/700 etc., in " "modalità landscape. Utile principalmente per i fumetti." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:416 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:417 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Questo profilo è adatto per il Kindle DX di Amazon." @@ -415,15 +417,19 @@ msgstr "Personalizzazione dei plug-in locali" msgid "Disabled plugins" msgstr "Plugin disabilitati" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:77 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:35 +msgid "Enabled plugins" +msgstr "Plugin attivati" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:83 msgid "No valid plugin found in " msgstr "Nessun plug-in valido trovato in " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:278 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:460 msgid "Initialization of plugin %s failed with traceback:" msgstr "Inizializzazione del plugin %s fallita con messaggio:" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:433 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:493 msgid "" " %prog options\n" "\n" @@ -435,17 +441,17 @@ msgstr "" " Personalizza Calibre con l'utilizzo di plugin esterni\n" " " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:439 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:499 msgid "Add a plugin by specifying the path to the zip file containing it." msgstr "" "Aggiunge un plug-in specificando il percorso al file zip che lo contiene." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:441 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:501 msgid "Remove a custom plugin by name. Has no effect on builtin plugins" msgstr "" "Rimuovi un plugin personalizzato dal nome. Non ha effetto sui plugin inclusi" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:443 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:503 msgid "" "Customize plugin. Specify name of plugin and customization string separated " "by a comma." @@ -453,15 +459,15 @@ msgstr "" "Personalizza un plug-in. Specificare il nome del plug-in e la stringa di " "personalizzazione separati da una virgola." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:445 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:505 msgid "List all installed plugins" msgstr "Elenca tutti i plug-in installati" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:447 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:507 msgid "Enable the named plugin" msgstr "Abilita il plug-in" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:449 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:509 msgid "Disable the named plugin" msgstr "Disabilita il plug-in" @@ -474,66 +480,81 @@ msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" msgstr "" -"Listato delle cartelle in formato separato da virgole da inviare come e-book " -"al dispositivo di lettura. Si uerá Il primo nella lista esistente." +"Lista delle cartelle separate da virgole da inviare come e-book al " +"dispositivo. Verrà usata Ia prima esistente." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:68 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:70 msgid "Communicate with S60 phones." -msgstr "" +msgstr "Comunica con i telefoni S60." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:75 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:77 msgid "Communicate with iBooks through iTunes." -msgstr "" +msgstr "Comunica con iBooks attraverso iTunes." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:81 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:83 msgid "Apple device detected, launching iTunes, please wait ..." -msgstr "" +msgstr "Dispositivo Apple individuato, avvio di iTunes, attendere prego ..." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:196 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:214 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:217 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:226 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:229 msgid "Updating device metadata listing..." -msgstr "" +msgstr "Aggiornamento dei metadata sul dispositivo" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:282 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:318 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:921 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:947 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:300 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:337 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:841 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:875 msgid "%d of %d" -msgstr "" +msgstr "%d di %d" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:325 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:952 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:344 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:880 msgid "finished" -msgstr "" +msgstr "completato" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:499 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:518 msgid "" "Some books not found in iTunes database.\n" "Delete using the iBooks app.\n" "Click 'Show Details' for a list." msgstr "" +"Alcuni libri non sono stati trovati nel database di iTunes.\n" +"Eliminarli utilizzando l'app iBooks.\n" +"Fare clic su 'Mostra dettagli' per una lista." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:703 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:741 #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:28 msgid "settings for device drivers" -msgstr "Impostazioni dei driver del dispositivo di lettura" +msgstr "Impostazioni per il driver del dispositivo" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:705 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:743 #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:30 msgid "Ordered list of formats the device will accept" -msgstr "" -"Lista ordinata dei formati che il dispositivo di lettura può accettare." +msgstr "Lista ordinata dei formati che il dispositivo può accettare." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:776 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:812 msgid "" "Some cover art could not be converted.\n" "Click 'Show Details' for a list." msgstr "" +"Alcune copertine non possono essere converite.\n" +"Fare clic su 'Mostra dettagli' per una lista." + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2178 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:810 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:816 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:844 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:239 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:167 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:180 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1470 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:128 +msgid "News" +msgstr "Notizie" #: /home/kovid/work/calibre/src/calibre/devices/binatone/driver.py:17 msgid "Communicate with the Binatone Readme eBook reader." -msgstr "Comunica con il dispositivo di lettura Binatone Readme" +msgstr "Comunica con il lettore Binatone Readme." #: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 msgid "Communicate with the Blackberry smart phone." @@ -547,11 +568,15 @@ msgstr "Kovid Goyal" #: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:22 msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." -msgstr "Comunica con Cybook Gen 3 / Opus ebook reader" +msgstr "Comunica con il lettore Cybook Gen 3 / Opus." #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." -msgstr "Comunica con il lettore eBook EB600." +msgstr "Comunica con il lettore EB600." + +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:207 +msgid "Communicate with the PocketBook 301 reader." +msgstr "Comunica con il lettore PocketBook 301." #: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 msgid "Entourage Edge" @@ -559,16 +584,20 @@ msgstr "Entourage Edge" #: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:18 msgid "Communicate with the Entourage Edge." -msgstr "Comunica con Entourage Edge" +msgstr "Comunica con Entourage Edge." #: /home/kovid/work/calibre/src/calibre/devices/eslick/driver.py:16 msgid "Communicate with the ESlick eBook reader." -msgstr "Comunica con l'ESlick eBook reader." +msgstr "Comunica con il lettore ESlick." + +#: /home/kovid/work/calibre/src/calibre/devices/eslick/driver.py:49 +msgid "Communicate with the Sigmatek eBook reader." +msgstr "Comunica con il lettore Sigmatek eBook." #: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:16 #: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:30 msgid "Use an arbitrary folder as a device." -msgstr "" +msgstr "Usa una cartella a scelta come dispositivo." #: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:26 #: /home/kovid/work/calibre/src/calibre/devices/interface.py:23 @@ -579,37 +608,45 @@ msgstr "Interfaccia del Dispositivo" msgid "Communicate with Hanlin V3 eBook readers." msgstr "Comunica con i lettori Hanlin V3." -#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:90 +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:87 msgid "Communicate with Hanlin V5 eBook readers." msgstr "Comunica con i lettori Hanlin V5." -#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:109 +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:106 msgid "Communicate with the BOOX eBook reader." msgstr "Comunica con i lettori BOOX." +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:121 +msgid "" +"Comma separated list of directories to send e-books to on the device. The " +"first one that exists will be used." +msgstr "" +"Lista di cartelle separate da virgole per inviare gli e-books al " +"dispositivo. Verrà utilizzata la prima esistente." + #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:18 msgid "Communicate with the Hanvon N520 eBook reader." -msgstr "Comunica con il dispositivo di lettura Hanvon N520" +msgstr "Comunica con il lettore Hanvon N520." #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:40 msgid "Communicate with The Book reader." -msgstr "" +msgstr "Comunica con il lettore The Book." #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:51 msgid "Communicate with the SpringDesign Alex eBook reader." -msgstr "" +msgstr "Comunica con il lettore SpringDesign Alex." #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:67 msgid "Communicate with the Azbooka" -msgstr "" +msgstr "Comunica con l'Azbooka" #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:80 msgid "Communicate with the Elonex EB 511 eBook reader." -msgstr "Comunica con il Elonex EB 511 eBook reader" +msgstr "Comunica con il lettore Elonex EB 511." #: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:16 msgid "Communicate with the IRex Iliad eBook reader." -msgstr "Comunica con il lettore eBook IRex Iliad." +msgstr "Comunica con il lettore IRex Iliad." #: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:17 #: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:18 @@ -619,43 +656,43 @@ msgstr "John Schember" #: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:16 msgid "Communicate with the IRex Digital Reader 1000 eBook reader." -msgstr "Comunica con il lettore eBook IRex Digital Reader." +msgstr "Comunica con il lettore IRex Digital Reader." #: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:42 msgid "Communicate with the IRex Digital Reader 800" -msgstr "Comunica con il IRex Digital Reader 800" +msgstr "Comunica con il lettore IRex Digital Reader 800." #: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 msgid "Communicate with the Iriver Story reader." -msgstr "Comunicare con il Iriver Story reader." +msgstr "Comunica con il lettore Iriver Story." #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:20 msgid "Communicate with the JetBook eBook reader." -msgstr "Comunicare con il JetBook eBook reader" +msgstr "Comunica con il lettore JetBook." -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:21 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:42 msgid "Communicate with the Kindle eBook reader." -msgstr "Comunicare con il Kindle eBook reader" +msgstr "Comunica con il lettore Kindle." -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:147 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:169 msgid "Communicate with the Kindle 2 eBook reader." -msgstr "Comunicare con il Kindle 2 eBook reader." +msgstr "Comunica con il lettore Kindle 2." -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:157 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:210 msgid "Communicate with the Kindle DX eBook reader." -msgstr "Comunicazione in corso con in Kindle DX" +msgstr "Comunica con il lettore Kindle DX." #: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:14 msgid "Communicate with the Kobo Reader" -msgstr "" +msgstr "Comunica con il Kobo Reader" #: /home/kovid/work/calibre/src/calibre/devices/misc.py:15 msgid "Communicate with the Palm Pre" -msgstr "" +msgstr "Comunica con il Palm Pre" #: /home/kovid/work/calibre/src/calibre/devices/misc.py:35 msgid "Communicate with the Booq Avant" -msgstr "" +msgstr "Comunica con il Booq Avant" #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." @@ -663,7 +700,7 @@ msgstr "Comunica con il Nokia 770 Internet Tablet." #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:40 msgid "Communicate with the Nokia 810 internet tablet." -msgstr "Comunica con il Nokia 810 internet Tablet" +msgstr "Comunica con il Nokia 810 internet Tablet." #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:20 msgid "The Nook" @@ -671,21 +708,21 @@ msgstr "Il lettore Nook" #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:21 msgid "Communicate with the Nook eBook reader." -msgstr "Comunica con il Nook Ebook Reader." +msgstr "Comunica con il lettore Nook." #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." -msgstr "Comunicare con il Nuut2 eBook reader." +msgstr "Comunica con il lettore Nuut2." #: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:89 msgid "Communicate with the Sony PRS-500 eBook reader." -msgstr "Comunicare con il Sony PRS-500 eBook reader." +msgstr "Comunica con il lettore Sony PRS-500." #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:22 msgid "Communicate with all the Sony eBook readers." -msgstr "" +msgstr "Comunica con tutti i lettori Sony." -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:60 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:61 msgid "" "Comma separated list of metadata fields to turn into collections on the " "device. Possibilities include: " @@ -693,45 +730,45 @@ msgstr "" "Lista di campi \"metadata\" separati da virgole da convertire in collezioni " "sul dispositivo. Fra le possibilità: " -#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:142 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:143 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:68 msgid "Unnamed" msgstr "Senza nome" #: /home/kovid/work/calibre/src/calibre/devices/sne/driver.py:17 msgid "Communicate with the Samsung SNE eBook reader." -msgstr "" +msgstr "Comunica con il lettore Samsung SNE." #: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:11 msgid "Communicate with the Teclast K3 reader." -msgstr "Comunica con il Teclast K3 reader." +msgstr "Comunica con il lettore Teclast K3." #: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:37 msgid "Communicate with the Newsmy reader." -msgstr "" +msgstr "Comunica con il lettore Newsmy." #: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:49 msgid "Communicate with the iPapyrus reader." -msgstr "" +msgstr "Comunica con il lettore iPapyrus." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:247 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:248 msgid "Unable to detect the %s disk drive. Try rebooting." msgstr "Impossibile individuare il disco %s. Provare a riavviare." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:427 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:428 msgid "Unable to detect the %s mount point. Try rebooting." msgstr "" "Impossibile individuare il %s mount Point. Provo ad effettuare un reboot" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:492 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:493 msgid "Unable to detect the %s disk drive." msgstr "Impossibile rilevare il disco %s." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:585 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:586 msgid "Could not find mount helper: %s." msgstr "Non é stato possibile trovare l'assistente di installazione: %s" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:597 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:598 msgid "" "Unable to detect the %s disk drive. Your kernel is probably exporting a " "deprecated version of SYSFS." @@ -739,69 +776,61 @@ msgstr "" "mpossibile rilevare il disco %s. Il kernel in uso sta probabilmente " "esportando una versione obsoleta di SYSFS." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:605 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:606 msgid "Unable to mount main memory (Error code: %d)" msgstr "Impossibile montare la memoria principale (Codice errore: %d)" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:742 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:744 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:743 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:745 msgid "The reader has no storage card in this slot." msgstr "Il reader non contiene una scheda di memoria in questo slot." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:746 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:747 msgid "Selected slot: %s is not supported." msgstr "Lo slot selezionato: %s non è supportato." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:775 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:776 msgid "There is insufficient free space in main memory" msgstr "Non c'è spazio sufficiente nella memoria principale" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:777 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:779 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:778 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:780 msgid "There is insufficient free space on the storage card" msgstr "Non c'è spazio sufficiente nella scheda di memoria" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:809 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:815 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:843 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:239 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:141 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:152 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1399 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:120 -msgid "News" -msgstr "Notizie" - #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:12 msgid "Configure Device" -msgstr "Configura il dispositivo di lettura" +msgstr "Configura dispositivo" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:32 msgid "Place files in sub directories if the device supports them" -msgstr "" -"Metti i file in sotto cartelle se il dispositivo di lettura le supporta" +msgstr "Metti i file in sotto cartelle se il dispositivo le supporta" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:34 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:81 msgid "Read metadata from files on device" -msgstr "Legge i metadati dai file sul dispositivo di lettura" +msgstr "Legge i metadati dai file sul dispositivo" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:36 +msgid "Use author sort instead of author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:38 msgid "Template to control how books are saved" msgstr "Modello per controllare come i libri vengono salvati" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:39 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:84 msgid "Extra customization" msgstr "Ulteriori personalizzazioni" #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:37 msgid "Communicate with an eBook reader." -msgstr "Comunicare wcon un eBook reader." +msgstr "Comunicare con un lettore di eBook." #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:53 msgid "Get device information..." -msgstr "Reperimento informazioni del dispositivo di lettura in corso..." +msgstr "Recupero informazioni del dispositivo..." #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:64 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:67 @@ -810,35 +839,31 @@ msgstr "Reperimento informazioni del dispositivo di lettura in corso..." #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:137 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:160 msgid "Getting list of books on device..." -msgstr "" -"Reperimento della lista dei libri sul dispositivo di lettura in corso..." +msgstr "Recupero della lista dei libri sul dispositivo..." #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:188 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:190 msgid "Transferring books to device..." -msgstr "Trasferimento dei libri nel dispositivo di lettura in corso..." +msgstr "Trasferimento dei libri nel dispositivo..." #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:208 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:237 msgid "Adding books to device metadata listing..." -msgstr "" -"Aggiunta libri alla lista metadata nel dispositivo di lettura in corso..." +msgstr "Aggiunta dei libri alla lista metadati del dispositivo..." #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:243 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:261 msgid "Removing books from device..." -msgstr "Rimozione dei libri dal dispositivo di lettura in corso..." +msgstr "Rimozione dei libri dal dispositivo..." #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:268 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:273 msgid "Removing books from device metadata listing..." -msgstr "" -"Cancellazione libri dalla lista metadata nel dispositivo di lettura in " -"corso..." +msgstr "Cancellazione libri dalla lista metadati del dispositivo..." #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:294 msgid "Sending metadata to device..." -msgstr "Invio dei metadata al dispositivo di lettura in corso..." +msgstr "Invio dei metadati al dispositivo..." #: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:41 msgid "%prog [options] mybook.chm" @@ -952,8 +977,8 @@ msgid "" "creating your comics in EPUB format." msgstr "" "Numero dei colori per la conversione delle immagini in scala di grigi. " -"Default: %default. Valori inferiori a 256 potrebbero generare testo sfuocato " -"sul dispositivo di lettura in caso di conversione di fumetti in formato EPUB." +"Predefinito: %default. Valori inferiori a 256 potrebbero generare testo " +"sfocato sul dispositivo in caso di fumetti in formato EPUB." #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 msgid "" @@ -1024,9 +1049,9 @@ msgid "" "experiment to see which format gives you optimal size and look on your " "device." msgstr "" -"Formato in cui sono convertite le immagini nell'ebook generato. E' possibile " -"sperimentare vari formati per trovare la dimesione e l'aspetto ottimale per " -"il dispositivo di lettura in uso." +"Formato in cui sono convertite le immagini nell'ebook generato. È possibile " +"sperimentare vari formati per trovare la dimensione e l'aspetto ottimale per " +"il dispositivo in uso." #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:313 msgid "Apply no processing to the image" @@ -1176,9 +1201,9 @@ msgid "" msgstr "" "Specificare il profilo di output. Il profilo di output fornisce al sistema " "di conversione informazioni su come ottimizzare il documento creato per il " -"dispositivo di lettura specificato. In alcuni casi, un profilo di output e' " -"richiesto per produrre documenti leggibili da un determinato dispositivo. " -"per esempio EPUB su un lettore SONY. Le scelte sono:" +"dispositivo specificato. In alcuni casi, un profilo di output è richiesto " +"per produrre documenti leggibili da un determinato dispositivo. Per esempio " +"EPUB su un lettore SONY. Le opzioni sono:" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:133 msgid "" @@ -1389,6 +1414,11 @@ msgid "" "\"original\" (the default) does not change justification in the source file. " "Note that only some output formats support justification." msgstr "" +"Cambia allineamento del testo. Impostato a \"sinistra\" il testo della " +"sorgente verrà covertito con un allineamento a sinistra. Impostato a " +"\"giustificato\" il testo verrà distribuito per larghezza della pagina. " +"Impostato a \"originale\" (predefinito) l'allineamento non verrà cambiato. " +"Notare che solo alcuni formati di output supportano il testo giustificato." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:316 msgid "" @@ -1439,8 +1469,8 @@ msgid "" "Insert the book metadata at the start of the book. This is useful if your " "ebook reader does not support displaying/searching metadata directly." msgstr "" -"Inserisce i metadata del libro all'inizio. Utile se il dispositivo di " -"lettura non supporta direttamente la visualizzazione/ricerca di metadata." +"Inserisce i metadati del libro all'inizio. Utile se il dispositivo non " +"supporta la visualizzazione/ricerca di metadati direttamente." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:359 msgid "" @@ -1502,6 +1532,12 @@ msgid "" "corresponding pair of normal characters. This option will preserve them " "instead." msgstr "" +"Mantieni i legami presenti nel documento di input. Un legame è una speciale " +"formattazione di una coppia di caratteri come ff, fi, fl eccetera. La " +"maggior parte del lettori non supportano i legami con i font predefiniti, " +"così questi non verranno letti correttamente. Calibre converte " +"automaticamente un legame nei corrispondenti due caratteri. Questa opzione " +"manterrà i legami nel documento generato." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:428 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:38 @@ -1655,7 +1691,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:86 msgid "" "Do not use SVG for the book cover. Use this option if your EPUB is going to " -"be used ona device that does not support SVG, like the iPhone or the " +"be used on a device that does not support SVG, like the iPhone or the " "JetBook Lite. Without this option, such devices will display the cover as a " "blank page." msgstr "" @@ -1668,10 +1704,15 @@ msgid "" "and bottom of the image, but the image will never be distorted. Without this " "option the image may be slightly distorted, but there will be no borders." msgstr "" +"Quando viene usata una copertina SVG, questa opzione ridimensiona la " +"copertina per coprire l'area dello schermo, ma preservando le proporzioni. " +"Questo significa che potrebbero esserci dei bordi bianchi intorno alla " +"copertina, ma questa non verrà distorta. Senza questa opzione l'immagine " +"potrebbe essere sproporzionata anche se non avrà bordi bianchi." #: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:169 msgid "Start" -msgstr "" +msgstr "Avvio" #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:144 #: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:102 @@ -1972,84 +2013,88 @@ msgstr "La famiglia di caratteri a spaziatura fissa da includere" msgid "Comic" msgstr "Comic" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:381 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:69 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:55 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:345 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:848 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:866 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:543 msgid "Title" msgstr "Titolo" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:373 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:382 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:62 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:350 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:849 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:867 msgid "Author(s)" msgstr "Autore(i)" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:374 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:383 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:62 msgid "Publisher" msgstr "Editore" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:384 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "Produttore" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:376 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:214 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:215 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1034 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:104 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1056 msgid "Comments" msgstr "Commenti" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:384 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:295 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1030 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:103 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1052 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:139 msgid "Tags" msgstr "Tag" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:386 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:64 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:311 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1039 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:102 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:312 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1061 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:87 msgid "Series" msgstr "Serie" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:387 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:396 msgid "Language" msgstr "Lingua" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:389 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1022 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1044 msgid "Timestamp" msgstr "Timestamp" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:391 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:400 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:66 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:60 msgid "Published" msgstr "Pubblicato" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:393 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:402 msgid "Rights" msgstr "Privilegi" @@ -2057,7 +2102,7 @@ msgstr "Privilegi" msgid "EDITORIAL REVIEW" msgstr "Rassegna Editoriale" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/archive.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/archive.py:41 msgid "" "Extract common e-book formats from archives (zip/rar) files. Also try to " "autodetect if they are actually cbz/cbr files." @@ -2181,6 +2226,10 @@ msgstr "Copertina salvata in" msgid "No cover found" msgstr "Nessuna copertina trovata" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/douban.py:41 +msgid "Downloads metadata from Douban.com" +msgstr "Scarica i metadati da Douban.com" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:33 msgid "Metadata download" msgstr "Scarica i metadati" @@ -2221,6 +2270,10 @@ msgstr "" msgid "Downloads social metadata from amazon.com" msgstr "Scaricare i metadati sociali da amazon.com." +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:205 +msgid "Downloads series information from librarything.com" +msgstr "Scarica informazioni sulla serie da librarything.com" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:94 msgid "" "\n" @@ -2295,7 +2348,7 @@ msgstr "" "Scarica un'immagine di copertina per il libro identificato dall'ISBN da " "LibraryThing.com\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1220 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1222 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1371 msgid "Cover" msgstr "Copertina" @@ -2336,7 +2389,7 @@ msgstr "Tutti gli articoli" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:258 msgid "This is an Amazon Topaz book. It cannot be processed." -msgstr "" +msgstr "Questo è un libro Amazon Topaz. Non può essere elaborato." #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1372 msgid "Title Page" @@ -2633,6 +2686,8 @@ msgstr "" "Ottieni i dettagli del PDF.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:29 msgid "Author" msgstr "Autore" @@ -2769,6 +2824,8 @@ msgid "" "Preserve the aspect ratio of the cover, instead of stretching it to fill the " "ull first page of the generated pdf." msgstr "" +"Conserva le proporzioni della copertina, invece di espanderla per ricoprire " +"la prima pagina del pdf generato." #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/pdftohtml.py:55 msgid "Could not find pdftohtml, check it is in your PATH" @@ -2813,6 +2870,8 @@ msgid "" "Normally extra spaces are condensed into a single space. With this option " "all spaces will be displayed." msgstr "" +"Normalmente gli spazi multipli vengono trasformati in uno unico. Con questa " +"opzioni vergono visualizzati tutti gli spazi." #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:36 msgid "" @@ -2899,8 +2958,8 @@ msgid "Use Roman numerals for series number" msgstr "Usa numeri romani per i numeri delle serie" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 -msgid "Sort tags list by popularity" -msgstr "Ordina la lista dei tag per popolarità" +msgid "Sort tags list by name, popularity, or rating" +msgstr "Ordina i tag per nome, popolarità o voto" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Number of covers to show in the cover browsing mode" @@ -2938,13 +2997,12 @@ msgstr "Mostra un'icona nel vassoio di sistema" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "Upload downloaded news to device" -msgstr "Invia le notizie scaricate al dispositivo di lettura" +msgstr "Invia le notizie scaricate al dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Delete books from library after uploading to device" msgstr "" -"Elimina i libri dalla biblioteca dopo averle caricate sul dispositivo di " -"lettura" +"Elimina i libri dalla biblioteca dopo averli caricati sul dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "" @@ -2961,8 +3019,8 @@ msgstr "Disabilita messaggi dall'icona nella barra di sistema" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:71 msgid "Default action to perform when send to device button is clicked" msgstr "" -"Azione predefinita da attuare quando si seleziona il tasto di invio al " -"dispositivo di lettura." +"Azione predefinita da eseguire quando viene cliccato il pulsante di invio al " +"dispositivo." #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 msgid "Maximum number of waiting worker processes" @@ -2982,29 +3040,437 @@ msgstr "Limita il massimo numero di job simultanei al numero delle CPU." #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:101 msgid "tag browser categories not to display" -msgstr "" +msgstr "categorie del browser di tag da non visualizzare" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:103 msgid "The layout of the user interface" -msgstr "" +msgstr "L'aspetto dell'interfaccia grafica" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:105 +msgid "Show the average rating per item indication in the tag browser" +msgstr "Visualizza il voto medio per elemento nel browser dei tag" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:476 msgid "Copied" msgstr "Copiato" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:187 msgid "Copy" msgstr "Copia" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:187 msgid "Copy to Clipboard" msgstr "Copia negli appunti" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:397 msgid "Choose Files" msgstr "Seleziona documenti" +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:242 +msgid "Use library only" +msgstr "Usare solo la biblioteca" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:243 +msgid "User annotations generated from main library only" +msgstr "Annotazioni utente generate solo dalla biblioteca principale" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:609 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:666 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:704 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:723 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:854 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:919 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1037 +msgid "No books selected" +msgstr "Nessun libro selezionato" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:74 +msgid "No books selected to fetch annotations from" +msgstr "Nessun libro selezionato da cui prendere annotazioni" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:99 +msgid "Merging user annotations into database" +msgstr "Fondi le annotazioni utente nel database" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:127 +msgid "%s
Last Page Read: %d (%d%%)" +msgstr "%s
Ultima Pagina Letta: %d (%d%%)" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:133 +msgid "%s
Last Page Read: Location %d (%d%%)" +msgstr "%s
Ultima Pagina Letta: Posizione %d (%d%%)" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:152 +msgid "Location %d • %s
%s
" +msgstr "Posizione %d • %s
%s
" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:161 +msgid "Page %d • %s
" +msgstr "Pagina %d • %s
" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:166 +msgid "Location %d • %s
" +msgstr "Posizione %d • %s
" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:288 +msgid "How many empty books?" +msgstr "Quanti libri vuoti?" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:289 +msgid "How many empty books should be added?" +msgstr "quanti libri vuoti si desidera aggiungere?" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:388 +msgid "Uploading books to device." +msgstr "Invio dei libri al dispositivo." + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139 +msgid "Books" +msgstr "Libri" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:349 +msgid "EPUB Books" +msgstr "Libri EPUB" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:350 +msgid "LRF Books" +msgstr "Libri LRF" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:351 +msgid "HTML Books" +msgstr "Libri HTML" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:352 +msgid "LIT Books" +msgstr "Libri LIT" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:353 +msgid "MOBI Books" +msgstr "Libri MOBI" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:354 +msgid "Topaz books" +msgstr "Libri Topaz" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:355 +msgid "Text books" +msgstr "Libri TXT" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:356 +msgid "PDF Books" +msgstr "Libri PDF" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:357 +msgid "Comics" +msgstr "Fumetti" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:358 +msgid "Archives" +msgstr "Archivi" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:362 +msgid "Supported books" +msgstr "Libri supportati" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:397 +msgid "Merged some books" +msgstr "Uniti alcuni libri" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:398 +msgid "" +"Some duplicates were found and merged into the following existing books:" +msgstr "Alcune copie sono state trovate e unite con i seguenti libri:" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:407 +msgid "Failed to read metadata" +msgstr "Non é stato possibile leggere i metadati" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:408 +msgid "Failed to read metadata from the following" +msgstr "Non é stato possibile leggere i metadati dai seguenti:" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:427 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:432 +msgid "Add to library" +msgstr "Aggiungi alla biblioteca" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:427 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:457 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1189 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1214 +msgid "No book selected" +msgstr "Nessun libro selezionato" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:432 +msgid "No book files found" +msgstr "Nessun libro trovato" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:454 +msgid "Cannot delete" +msgstr "Non si può cancellare" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:467 +msgid "Choose formats to be deleted" +msgstr "Seleziona i formati da cancellare" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:485 +msgid "Choose formats not to be deleted" +msgstr "Seleziona i formati da non cancellare" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:505 +msgid "Cannot delete books" +msgstr "Impossibile eliminare i libri" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:506 +msgid "No device is connected" +msgstr "Nessun dispositivo collegato" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:516 +msgid "Main memory" +msgstr "Memoria principale" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:418 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:427 +msgid "Storage Card A" +msgstr "Scheda di memoria A" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:420 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:429 +msgid "Storage Card B" +msgstr "Scheda di memoria B" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:523 +msgid "No books to delete" +msgstr "Nessun libro da eliminare" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:524 +msgid "None of the selected books are on the device" +msgstr "Nessuno dei libri selezionati è sul device" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:598 +msgid "Deleting books from device." +msgstr "Cancellazione dei libri dal dispositivo." + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:562 +msgid "" +"The selected books will be permanently deleted and the files removed " +"from your computer. Are you sure?" +msgstr "" +"I libri selezionati saranno cancellati permanentemente e i documenti " +"rimossi dal computer. Siete sicuri?" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:583 +msgid "" +"The selected books will be permanently deleted from your device. Are " +"you sure?" +msgstr "" +"I libri selezionati verranno cancellati definitivamente

dal " +"dispositivo. Confermare?" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:608 +msgid "Cannot download metadata" +msgstr "Non é possibile scaricare i metadati" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:624 +msgid "social metadata" +msgstr "metadati sociali" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:626 +msgid "covers" +msgstr "copertine" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:626 +msgid "metadata" +msgstr "metadati" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:628 +msgid "Downloading %s for %d book(s)" +msgstr "Scaricamento %s per %d libri" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:650 +msgid "Failed to download some metadata" +msgstr "Non si é riusciti a scaricare alcuni metadati" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:651 +msgid "Failed to download metadata for the following:" +msgstr "Non si é riusciti a scaricare i metadati per i seguenti:" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:654 +msgid "Failed to download metadata:" +msgstr "Lo scaricamento dei metadati é fallito:" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:655 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:946 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 +msgid "Error" +msgstr "Errore" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:665 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:703 +msgid "Cannot edit metadata" +msgstr "Impossibile modificare i metadati" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:722 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:725 +msgid "Cannot merge books" +msgstr "Impossibile unire i libri" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:726 +msgid "At least two books must be selected for merging" +msgstr "Devono essere selezionati almeno due libri per essere uniti" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:730 +msgid "" +"All book formats and metadata from the selected books will be added to the " +"first selected book.

The second and subsequently selected " +"books will not be deleted or changed.

Please confirm you want to " +"proceed." +msgstr "" +"Tutti i formati e metadati dei libri selezionati verranno aggiunti al " +"primo libro selezionato.

Gli altri libri non verranno " +"cancellati o modificati.

Procedere con l'operazione?" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:741 +msgid "" +"All book formats and metadata from the selected books will be merged into " +"the first selected book.

After merger the second and " +"subsequently selected books will be deleted.

All book formats " +"of the first selected book will be kept and any duplicate formats in the " +"second and subsequently selected books will be permanently deleted " +"from your computer.

Are you sure you want to proceed?" +msgstr "" +"Tutti i formati e metadati dei libri selezionati verranno uniti nel primo " +"libro selezionato.

Dopo l'unione gli altri libri verranno " +"cancellati.

Tutti i formati del primo libro selezionato verranno " +"conservati e ogni formato duplicato degli altri libri selezionati " +"verràpermantentemente cancellato dal computer.

Procedere " +"l'operazione?" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:753 +msgid "" +"You are about to merge more than 5 books. Are you sure you want to " +"proceed?" +msgstr "Verranno uniti più di 5 libri. Confermare l'unione?" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:853 +msgid "Cannot save to disk" +msgstr "Impossibile salvare sul disco" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:856 +msgid "Choose destination directory" +msgstr "Scegliere la cartella di destinazione" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:889 +msgid "Error while saving" +msgstr "Errore durante il salvataggio" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:890 +msgid "There was an error while saving." +msgstr "Si é verificato un errore durante il salvataggio" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:897 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:898 +msgid "Could not save some books" +msgstr "Non é stato possibile salvare tutti i libri" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:899 +msgid "Click the show details button to see which ones." +msgstr "Fare clic sul pulsante dettagli per vedere quali." + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:920 +msgid "No books selected to generate catalog for" +msgstr "Nessun libro selezionato per la generazione del catalogo" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:937 +msgid "Generating %s catalog..." +msgstr "Generando %s catalogo..." + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:942 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +msgid "No books found" +msgstr "Nessun libro trovato" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:943 +msgid "" +"No books to catalog\n" +"Check exclude tags" +msgstr "" +"Nessun libro da catalogare\n" +"Controlla i tag esclusi" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:953 +msgid "Catalog generated." +msgstr "Catalogo generato" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:956 +msgid "Export Catalog Directory" +msgstr "Esporta il catalogo" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:957 +msgid "Select destination for %s.%s" +msgstr "Selezionare una destinazione per %s.%s" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:973 +msgid "Fetching news from " +msgstr "Scaricamento notizie da " + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:987 +msgid " fetched." +msgstr " preso." + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1036 +msgid "Cannot convert" +msgstr "Impossibile convertire" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1065 +msgid "Starting conversion of %d book(s)" +msgstr "Conversione di %d libro/libri incominciata" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1189 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1250 +msgid "Cannot view" +msgstr "Impossibile leggere" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1195 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:76 +msgid "Choose the format to view" +msgstr "Scegliere il formato da leggere" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1203 +msgid "Multiple Books Selected" +msgstr "Piú di un libro selezionato" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1204 +msgid "" +"You are attempting to open %d books. Opening too many books at once can be " +"slow and have a negative effect on the responsiveness of your computer. Once " +"started the process cannot be stopped until complete. Do you wish to " +"continue?" +msgstr "" +"State tentando di aprire %d libri. Aprire molti libri allo stesso tempo puó " +"essere molto lento e causare effetti indesiderati nella responsivitá del " +"vostro computer. Una volta cominciato questa azione non puó essere fermata " +"finché il processo é completato. Siete sicuri di voler continuare?" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1213 +msgid "Cannot open folder" +msgstr "Impossibile aprire la cartella" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1251 +msgid "%s has no available formats." +msgstr "%s non ha formati disponibili" + #: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 msgid "Searching in" msgstr "Cercando in" @@ -3026,15 +3492,10 @@ msgid "The specified directory could not be processed." msgstr "Non é possibile elaborare la cartella indicata." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:260 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:809 msgid "No books" msgstr "Nessun libro." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1432 -msgid "No books found" -msgstr "Nessun libro trovato" - #: /home/kovid/work/calibre/src/calibre/gui2/add.py:327 msgid "Added" msgstr "Aggiunto" @@ -3078,32 +3539,32 @@ msgstr "Salvato" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:57 msgid "Searching for sub-folders" -msgstr "" +msgstr "Ricerca di sottocartelle" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:62 msgid "Searching for books" -msgstr "" +msgstr "Ricerca di libri" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:74 msgid "Looking for duplicates based on file hash" -msgstr "" +msgstr "Cerca i duplicati in base all'hash" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:65 msgid "Choose root folder" -msgstr "" +msgstr "Selezionare la cartella principale" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:137 msgid "Invalid root folder" -msgstr "" +msgstr "Cartella principale non valida" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:138 msgid "is not a valid root folder" -msgstr "" +msgstr "non è una cartella principale valida" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:148 msgid "Add books to calibre" -msgstr "" +msgstr "Aggiungi libri a calibre" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:57 @@ -3116,19 +3577,19 @@ msgstr "Pagina dell'assistente" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:22 msgid "Scanning root folder for books" -msgstr "" +msgstr "Ricerca di libri nella cartella principale" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:23 msgid "This may take a few minutes" -msgstr "" +msgstr "Questo richiederà alcuni minuti" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:58 msgid "Choose the location to add books from" -msgstr "" +msgstr "Selezionare la posizione dalla quale aggiungere i libri" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:59 msgid "Select a folder on your hard disk" -msgstr "" +msgstr "Selezionare una cartella sul disco" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:60 msgid "" @@ -3141,16 +3602,26 @@ msgid "" "

Make sure that the folder you chose for your calibre library is " "not under the root folder you choose.

" msgstr "" +"

calibre può cercare automaticamente i libri sul computer. Questi libri " +"verranno copiati nella biblioteca di calibre. Questa procedura " +"aiuterà a personalizzare il processo di ricerca e importazione della " +"collezione di libri esistenti.

\n" +"

Selezionare una cartella principale. I libri verranno cercati sono in " +"questa cartella e nelle sue sottocartelle.

\n" +"

Assicurarsi che la cartella selezionata per la biblioteca di calibre " +"non sia all'interno della cartella principale selezionata.

" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:63 msgid "&Root folder:" -msgstr "" +msgstr "&Cartella principale" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:64 msgid "" "This folder and its sub-folders will be scanned for books to import into " "calibre's library" msgstr "" +"In questa cartella e le sue sottocartelle saranno cercati i libri da " +"importare nella biblioteca di calibre" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:66 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:52 @@ -3158,17 +3629,17 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:577 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:578 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:614 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:584 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:588 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:628 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 @@ -3187,8 +3658,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:128 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:131 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:135 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:77 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:267 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:269 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:270 @@ -3206,18 +3677,73 @@ msgstr "..." #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:67 msgid "Handle multiple files per book" -msgstr "" +msgstr "Gestisce più file per libro" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:68 msgid "" "&One book per folder, assumes every ebook file in a folder is the same book " "in a different format" msgstr "" +"&Un libro per cartella, si presume che ogni file in una cartella sia lo " +"stesso libro ma con un diverso formato" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:69 msgid "" "&Multiple books per folder, assumes every ebook file is a different book" msgstr "" +"&Più libri per cartella, si presume che ogni file sia un libro diverso" + +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:22 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:309 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1042 +msgid "Path" +msgstr "Percorso" + +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:219 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:301 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:96 +msgid "Formats" +msgstr "Formati" + +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:870 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1045 +msgid "Collections" +msgstr "Raccolte" + +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:55 +msgid "Click to open" +msgstr "Fare clic per aprire" + +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:300 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1051 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1055 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:416 +msgid "None" +msgstr "Nessuno" + +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:308 +msgid "Click to open Book Details window" +msgstr "Fare clic per visualizzare i dettagli del libro" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 msgid "CSV/XML Options" @@ -3278,7 +3804,7 @@ msgstr "output" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:35 #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:106 @@ -3296,8 +3822,8 @@ msgstr "Opzioni per il libro elettronico" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 #: /home/kovid/work/calibre/src/calibre/library/catalog.py:222 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1362 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1380 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1433 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1451 msgid "Catalog" msgstr "Catalogo" @@ -3504,7 +4030,7 @@ msgstr "Nessuna cover &SVG" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:52 msgid "Preserve cover &aspect ratio" -msgstr "" +msgstr "Mantieni le &proporzioni della copertina" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:53 msgid "Split files &larger than:" @@ -3625,15 +4151,15 @@ msgstr "Controlla l'aspetto dell'output" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:30 msgid "Original" -msgstr "" +msgstr "Originale" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:31 msgid "Left align" -msgstr "" +msgstr "Allinea a sinistra" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:32 msgid "Justify text" -msgstr "" +msgstr "Testo giustificato" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:120 msgid "&Disable font size rescaling" @@ -3680,7 +4206,7 @@ msgstr " em" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:133 msgid "Text justification:" -msgstr "" +msgstr "Giustificazione testo:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:134 msgid "&Linearize tables" @@ -3692,7 +4218,7 @@ msgstr "&CSS addizionale" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:136 msgid "&Transliterate unicode characters to ASCII" -msgstr "" +msgstr "&Transcodifica i caratteri unicode in ASCII" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:137 msgid "Insert &blank line" @@ -3700,7 +4226,7 @@ msgstr "Inserimento di righe &vuote" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:138 msgid "Keep &ligatures" -msgstr "" +msgstr "Mantieni &legami" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:19 msgid "LRF Output" @@ -4014,17 +4540,12 @@ msgstr "&Orientazione:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:45 msgid "Preserve &aspect ratio of cover" -msgstr "" +msgstr "Mantieni le &proporzioni della copertina" #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:14 msgid "RB Output" msgstr "Output RB" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1677 -msgid "Choose the format to view" -msgstr "Scegliere il formato da leggere" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:82 msgid "Cannot build regex using the GUI builder without a book." msgstr "" @@ -4226,7 +4747,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:51 msgid "Preserve &spaces" -msgstr "" +msgstr "Mantieni gli &spazi" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:16 msgid "TXT Output" @@ -4332,14 +4853,19 @@ msgid "" "tag.

To learn more advanced usage of XPath see the XPath Tutorial." msgstr "" -"Selezionare i formati disponibili e il loro ordine per questo dispositivo di " -"lettura." +"

Ad esempio, per trovare tutti i tag h2 che hanno class=\"chapter\", " +"impostare tag a h2, attributo a class e valore a " +"chapter.

Con l'attributo in bianco verrà trovato ogni attributo " +"e lasciando in bianco il valore verrà trovato ogni valore. Impostando il tag " +"a * verrà trovato ogni tag.

Per imparare concetti più avanzati di " +"XPath consultare il Tutorial di XPath." -#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:119 msgid "Cover browser could not be loaded" -msgstr "" +msgstr "Impossibile caricare il browser di copertine" -#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:171 msgid "Browse by covers" msgstr "Sfoglia per copertine" @@ -4354,7 +4880,7 @@ msgstr "Sfoglia per copertine" #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:238 #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:242 msgid "Undefined" -msgstr "" +msgstr "Non definito" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:131 @@ -4370,295 +4896,302 @@ msgstr "No" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:115 msgid "star(s)" -msgstr "" +msgstr "stelle" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:116 msgid "Unrated" -msgstr "" +msgstr "Non votato" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:357 msgid "Remove all tags" -msgstr "" +msgstr "Elimina tutte le etichette" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:378 msgid "tags to add" -msgstr "" +msgstr "etichette da aggiungere" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:383 msgid "tags to remove" -msgstr "" +msgstr "etichette da eliminare" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:45 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "Nessun dettaglio disponibile." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:145 msgid "Device no longer connected." -msgstr "Il dispositivo di lettura non più collegato." +msgstr "Dispositivo non più collegato." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:248 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:250 msgid "Get device information" -msgstr "Ottieni informazioni sul dispositivo di lettura" +msgstr "Recupera informazioni sul dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:276 msgid "Get list of books on device" -msgstr "Ottieni la lista dei libri del dispositivo di lettura" +msgstr "Recupera la lista dei libri del dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:286 msgid "Get annotations from device" msgstr "Ricevi annotazioni dal dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:295 msgid "Send metadata to device" -msgstr "Invia metadati al dispositivo di lettura" +msgstr "Invia metadati al dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:304 msgid "Upload %d books to device" -msgstr "Invia %d libri nel dispositivo di lettura" +msgstr "Invia %d libri al dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:317 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:319 msgid "Delete books from device" -msgstr "Cancella i libri dal dispositivo di lettura" +msgstr "Cancella i libri dal dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:336 msgid "Download books from device" -msgstr "Scarica libri dal dispositivo di lettura" +msgstr "Scarica libri dal dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:344 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:346 msgid "View book on device" -msgstr "Visualizza libro sul dispositivo di lettura" +msgstr "Visualizza libro sul dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:381 msgid "Set default send to device action" -msgstr "Azione che specifica l'invio predefinito al dispositivo di lettura." +msgstr "Imposta azione predefinita di invio al dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:385 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:392 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:387 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:394 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:398 msgid "Email to" msgstr "Invia messaggio elettronico a" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:398 msgid " and delete from library" -msgstr "" +msgstr " ed elimina dalla biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:407 msgid "Send to main memory" msgstr "Invia alla memoria principale" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:409 msgid "Send to storage card A" msgstr "Invia alla scheda di memoria A" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:409 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:411 msgid "Send to storage card B" msgstr "Invia alla scheda di memoria B" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:414 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:423 -msgid "Main Memory" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:425 -msgid "Storage Card A" -msgstr "" +msgid "Main Memory" +msgstr "Memoria principale" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:418 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:427 -msgid "Storage Card B" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:441 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:443 msgid "Send and delete from library" -msgstr "" +msgstr "Invia ed elimina dalla biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:442 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:444 msgid "Send specific format" -msgstr "" +msgstr "Invia uno specifico formato" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:483 msgid "Connect to folder" -msgstr "" +msgstr "Connetti alla cartella" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:488 msgid "Disconnect from folder" -msgstr "" +msgstr "Disconnetti dalla cartella" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:494 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:496 msgid "Fetch annotations (experimental)" msgstr "Prendi annotazioni (sperimentale)" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:609 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:606 +msgid "Error communicating with device" +msgstr "Errore di comunicazione col dispositivo" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:627 +msgid "Select folder to open as device" +msgstr "Selezionare la cartella da aprire come dispositivo" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:669 +msgid "Failed" +msgstr "Fallito" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:675 +msgid "Error talking to device" +msgstr "Errore di comunicazione col dispositivo" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 +msgid "" +"There was a temporary error talking to the device. Please unplug and " +"reconnect the device and or reboot." +msgstr "" +"Si è verificato un errore di comunicazione temporaneo col dispositivo. " +"Disconnettere e riconnettere il dispositivo e/o riavviare." + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:717 +msgid "Device: " +msgstr "Dispositivo: " + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:719 +msgid " detected." +msgstr " individuato." + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:742 +msgid "Connected " +msgstr "Connesso " + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:810 msgid "selected to send" msgstr "Selezione per l'invio" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:614 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:815 msgid "Choose format to send to device" -msgstr "Selezionare il formato da inviare al dispositivo di lettura" +msgstr "Selezionare il formato da inviare al dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:622 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:823 msgid "No device" -msgstr "Nessun dispositivo di lettura" +msgstr "Nessun dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:623 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:824 msgid "Cannot send: No device is connected" -msgstr "Non é possibile inviare: nessun dispositivo di lettura connesso" +msgstr "Impossibile inviare: nessun dispositivo connesso" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:626 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:630 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:831 msgid "No card" msgstr "Nessuna scheda" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:627 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:631 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:832 msgid "Cannot send: Device has no storage card" -msgstr "" -"Non é possibile inviare: il dispositivo di lettura non ha schede di memoria" +msgstr "Impossibile inviare: il dispositivo non ha schede di memoria" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:672 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:873 msgid "E-book:" msgstr "Libro elettronico" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:675 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:876 msgid "Attached, you will find the e-book" msgstr "Troverete allegato il libro elettronico" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:877 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:180 msgid "by" msgstr "di" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:677 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:878 msgid "in the %s format." msgstr "nel formato %s" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:690 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:891 msgid "Sending email to" msgstr "Spedizione di un messaggio elettronico a" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:727 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:880 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:999 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1006 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:921 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:928 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1020 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1081 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1200 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1207 msgid "No suitable formats" msgstr "Nessun formato adatto" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:721 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:922 msgid "Auto convert the following books before sending via email?" msgstr "" "Convertire automaticamente i libri selezionati prima di inviare con posta " "eletrronica?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:728 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:929 msgid "" "Could not email the following books as no suitable formats were found:" msgstr "" "Non é stato possibile inviare ilibri indicati via posta elettronica poiché " "non sono stati trovati formati adatti:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:746 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:947 msgid "Failed to email books" msgstr "Non é stato possibile inviare dei libri via posta elettronica" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:747 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:948 msgid "Failed to email the following books:" msgstr "Non é stato possibile inviare via posta elettronica questi libri:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:751 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:952 msgid "Sent by email:" msgstr "Inviato per posta elettronica" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:778 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:979 msgid "News:" msgstr "Notizie:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:779 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:980 msgid "Attached is the" msgstr "Allegato c'é" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:790 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:991 msgid "Sent news to" msgstr "Notizie inviate a" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:881 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1000 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1021 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1082 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 msgid "Auto convert the following books before uploading to the device?" msgstr "" -"Convertire automaticamente i libri seguenti prima di inviare al dispositivo " -"di lettura?" +"Convertire automaticamente i libri seguenti prima di inviarli al dispositivo?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:849 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending catalogs to device." msgstr "Inviando i cataloghi al dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:912 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1113 msgid "Sending news to device." -msgstr "Invio notizie al dispositivo di lettura in corso." +msgstr "Invio delle notizie al dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:966 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1167 msgid "Sending books to device." -msgstr "Invio libri al dispositivo di lettura." +msgstr "Invio dei libri al dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1007 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1208 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 "" -"Non é possibile inviare i libri seguenti al dispositivo di lettura, poiché " -"nessun formato adequato é stato trovato. É necessario convertire il libro o " -"i libri in un formato supportato dal vostro dispositivo." +"Non é possibile inviare i libri seguenti al dispositivo, poiché non è stato " +"trovato un formato adeguato. É prima necessario convertire i libri in un " +"formato supportato dal dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1055 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1256 msgid "No space on device" -msgstr "Spazio insufficiente sul dispositivo di lettura" +msgstr "Spazio sul dispositivo insufficiente" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1056 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1257 msgid "" "

Cannot upload books to device there is no more free space available " msgstr "" -"

Impossibile salvare libri sul dispositivo di lettura perché non c'è più " -"spazio disponibile " +"

Impossibile inviare i libri al dispositivo poiché non c'è spazio " +"sufficiente " -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:78 msgid "Select available formats and their order for this device" msgstr "" -"Selezione dei formati disponibili e il loro ordine per questo dispositivo di " -"lettura." +"Selezionare i formati disponibili e il loro ordine per questo dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:82 msgid "Use sub directories" msgstr "Utilizza sotto cartelle" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:83 +msgid "Use author sort for author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:85 msgid "Save &template:" msgstr "Salva &template" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:302 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1020 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:99 -msgid "Path" -msgstr "Percorso" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:118 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:219 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:301 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:100 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:91 -msgid "Formats" -msgstr "Formati" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 msgid "Fit &cover to view" msgstr "Ridimensiona &cover per la visualizzazione" @@ -4730,7 +5263,7 @@ msgstr "&Profilo:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comments_dialog_ui.py:41 msgid "Edit Comments" -msgstr "" +msgstr "Modifica Commenti" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:173 msgid "%(plugin_type)s %(plugins)s" @@ -4813,171 +5346,177 @@ msgstr "" msgid "new email address" msgstr "nuovo indirizzo di posta elettronica." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:490 -msgid "System port selected" -msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:489 +msgid "Wide" +msgstr "Largo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:491 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:490 +msgid "Narrow" +msgstr "Stretto" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:500 +msgid "System port selected" +msgstr "Porta di sistema selezionata" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:501 msgid "" "The value %d you have chosen for the content server port is a system " "port. Your operating system may not allow the server to run on this " "port. To be safe choose a port number larger than 1024." msgstr "" +"Il valore %d selezionato per la porta del server di contenuti è una " +"porta di sistema. Il sistema operativo potrebbe non permettere al " +"server di funzionare su questa porta. Per essere sicuri selezionare un " +"numero di porta maggiore di 1024." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:510 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:933 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1144 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 -msgid "Error" -msgstr "Errore" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:521 msgid "Failed to install command line tools." msgstr "" "Non é stato possibile installare gli strumenti per i comandi di linea." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:524 msgid "Command line tools installed" msgstr "Strumenti per i comandi di linea installati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:525 msgid "Command line tools installed in" msgstr "Strumenti per i comandi di linea installati in" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:526 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" "Se muovete calibre.app, sará necessario reinstallare anche gli strumenti per " "i comandi di linea." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:577 msgid "No valid plugin path" msgstr "Percorso del plugin non valido" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:578 msgid "%s is not a valid plugin path" msgstr "%s non é un percorso di plugin valido" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:581 msgid "Choose plugin" msgstr "Selezionare plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:583 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:593 msgid "Plugin cannot be disabled" msgstr "Il plugin non puó essere disattivato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:584 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:594 msgid "The plugin: %s cannot be disabled" msgstr "il plugin: %s non puó essere disattivato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:593 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:603 msgid "Plugin not customizable" msgstr "Non é possibile personalizzare il plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:594 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:604 msgid "Plugin: %s does not need customization" msgstr "Plugin: %s non richiede personalizzazione" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:602 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:612 msgid "Customize" msgstr "Personalizzazione" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:640 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:650 msgid "Cannot remove builtin plugin" msgstr "Non é possibile rimuovere un plugin incorporato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:651 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" " Non é possibile rimuoverlo. Questo é un plugin incorporato. Provate invece " "a disattivarlo." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:672 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:682 msgid "You must select a column to delete it" -msgstr "" +msgstr "Selezionare una colonna da eliminare" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:687 msgid "The selected column is not a custom column" -msgstr "" +msgstr "La colonna selezionata non è una colonna personalizzata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:678 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:688 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:48 msgid "Are you sure?" msgstr "Si è sicuri?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:679 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:689 msgid "Do you really want to delete column %s and all its data?" -msgstr "" +msgstr "Eliminare veramente la colonna %s e tutti i sui dati?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:746 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:756 msgid "Error log:" msgstr "File di log degli errori:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:753 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 msgid "Access log:" msgstr "File di log degli accessi:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:781 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:419 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:791 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:343 msgid "Failed to start content server" msgstr "Avvio del server dei contenuti fallito" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:805 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:815 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:587 msgid "Select location for books" msgstr "Selezionare un percorso per i libri" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:812 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 msgid "Invalid size" msgstr "Dimensione non valida" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:813 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" "La dimensione %s non è valida. Deve essere nella forma larghezzaxaltezza" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:868 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:873 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:886 msgid "Invalid database location" msgstr "Percorso database non valido" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:869 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:882 msgid "Invalid database location " msgstr "Percorso database non valido " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:870 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:883 msgid "
Must be a directory." msgstr "
Deve essere una cartella" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:874 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:887 msgid "Invalid database location.
Cannot write to " msgstr "Percorso database non valido.
Impossibile scrivere su " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:879 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:892 msgid "Must restart" -msgstr "" +msgstr "Necessario riavviare" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:880 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:893 msgid "" "The changes you made require that Calibre be restarted. Please restart as " "soon as practical." msgstr "" +"Le modifiche effettuate richiedono il riavvio di Calibre. Riavviare il prima " +"possibile." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:914 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:927 msgid "Checking database integrity" msgstr "Controllo dell'integritá del database." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:934 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:947 msgid "Failed to check database integrity" msgstr "Controllo dell'integritá del database fallito." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:939 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:952 msgid "Some inconsistencies found" msgstr "Sono stati trovati problemi di consistenza" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:940 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:953 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 " @@ -4986,8 +5525,8 @@ msgid "" msgstr "" "I libri indicati hanno formati elencati nel database che non sono " "disponibili. I riferimenti ai formati sono stati rimossi ed é suggerito di " -"controllarli manualmente. Questo problem puó emergere se i documenti nella " -"cartella della libreria sono modificati direttamente." +"controllarli manualmente. Questo problema puó sorgere se i documenti nella " +"cartella della biblioteca vengono modificati direttamente." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:103 msgid "TabWidget" @@ -5105,22 +5644,23 @@ msgid "" "Send to Device button. This setting can be overriden for individual devices " "by customizing the device interface plugins in Preferences->Plugins" msgstr "" -"Qui e' possibile cambiare come Calibre salva i vostri libri con il tasto di " -"Invio al dispositivo di lettura. Le opzioni possono essere sovrascritte per " -"ogni dispositivo personalizzando il plugin di controllo dei dispositivi in " -"Preferenze -> Plugins" +"Qui è possibile cambiare come Calibre salverà i libri quando verrà cliccato " +"il pulsante di Invio al dispositivo. Queste opzioni possono essere " +"sovrascritte per ogni dispositivo personalizzando il plugin di controllo dei " +"dispositivi in Preferenze->Plugins" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:126 msgid "Sending to &device" msgstr "Invio al &dispositivo" -#: /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:548 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:166 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:297 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:201 msgid "Preferences" msgstr "Preferenze" -#: /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:549 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" @@ -5128,28 +5668,28 @@ msgstr "" "Per&corso dei libri (I libri sono salvati in cartelle salvate per autore e i " "metadati sono salvati nel file metadata.db)" -#: /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:550 msgid "Browse for the new database location" msgstr "Sfoglia per specificare una nuova posizione del database" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "Show notification when &new version is available" msgstr "&Visualizza un avvertimento quando è disponibile una nuova versione" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" "Scarica i metadati &sociali (etichette, valutazioni, etc.) automaticamente" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 msgid "&Overwrite author and title by default when fetching metadata" msgstr "&Sovrascrivi autore e titolo quando si scaricano i metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 msgid "Default network &timeout:" msgstr "&Timeout predefinito della rete:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" @@ -5157,141 +5697,148 @@ msgstr "" "Imposta il timeout predefinito per gli scaricamenti dalla rete (cioè ogni " "volta che si usa Internet per prelevare informazioni)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid " seconds" msgstr " secondi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Choose &language (requires restart):" msgstr "Ling&ua (richiede il riavvio):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 msgid "Normal" msgstr "Normale" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "High" msgstr "Massima" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "Low" msgstr "Minima" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "Job &priority:" msgstr "&Priorità dei lavori:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "Preferred &output format:" msgstr "Formato preferito per l'&output:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Preferred &input format order:" msgstr "Ordine dei formati preferiti per l'&input:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 msgid "Use &Roman numerals for series number" msgstr "&Usa numeri romani per i numeri di serie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "Enable system &tray icon (needs restart)" msgstr "Abilita l'icona nel vassoio di sistema (richiede il riavvio)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Show ¬ifications in system tray" msgstr "Visualizza le ¬ifiche nella barra di sistema." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "Show &splash screen at startup" -msgstr "" +msgstr "Visualizza lo &splash screen all'avvio" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "Show cover &browser in a separate window (needs restart)" msgstr "" "Visualizza il &browser di copertine in una finestra separata (richiede il " "riavvio)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 +msgid "Show &average ratings in the tags browser" +msgstr "Visualizza la &media dei voti nel browser dei tag" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Search as you type" msgstr "Cerca mentre si scrive" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 msgid "Automatically send downloaded &news to ebook reader" msgstr "Invia automaticamente le noti&zie scaricate al lettore di libri" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" -"&Rimuovi le notizie dalla libreria dopo averle inviate automaticamente al " -"dispositivo di lettura." +"&Rimuovi le notizie dalla biblioteca dopo averle inviate automaticamente al " +"dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:576 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" -"&Number di copertine da visualizzare in modalitá sfoglia (richiede rilancio " -"del programma):" +"&Numero di copertine da visualizzare in modalitá sfoglia (richiede riavvio):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:577 msgid "Toolbar" msgstr "Barra degli strumenti" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:578 msgid "Large" msgstr "Grande" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:579 msgid "Medium" msgstr "Media" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:580 msgid "Small" msgstr "Piccola" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:581 msgid "&Button size in toolbar" msgstr "&Dimensione bottoni nella barra degli strumenti" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:582 msgid "Show &text in toolbar buttons" msgstr "&Mostra testo nei bottoni della barra degli strumenti" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:583 msgid "Select visible &columns in library view" msgstr "&Selezionare le colonne visibili nella vista biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:585 msgid "Remove a user-defined column" -msgstr "" +msgstr "Elimina una colonna personalizzata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:587 msgid "Add a user-defined column" -msgstr "" +msgstr "Aggiungi una colonna personalizzata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:576 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:589 msgid "Edit settings of a user-defined column" -msgstr "" +msgstr "Modifica le opzioni di una colonna personalizzata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:579 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:592 msgid "Use internal &viewer for:" msgstr "Utilizza il &visualizzatore interno per:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:580 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:593 +msgid "User Interface &layout (needs restart):" +msgstr "&Aspetto interfaccia grafica (richiede riavvio):" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:594 msgid "Add an email address to which to send books" msgstr "Aggiungi un indirizzo di posta elettronica a cui inviare i libri" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:595 msgid "&Add email" msgstr "&Aggiungi email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:582 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:596 msgid "Make &default" msgstr "Crea &default" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:583 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:597 msgid "&Remove email" msgstr "&Elimina email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:584 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:598 msgid "" "calibre can send your books to you (or your reader) by email. Emails will be " "automatically sent for downloaded news to all email addresses that have Auto-" @@ -5301,63 +5848,63 @@ msgstr "" "email saranno automaticamente inviate per ogni notizia scaricata a tutti gli " "indirizzi email a cui hai abilitato l'invio automatico" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:585 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:599 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" "Numero &massimo di elaboratori di processi in attesa (richiede rilancio del " "programma):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:600 msgid "&Check database integrity" msgstr "&Controllo dell'integritá del database" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:587 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:601 msgid "&Install command line tools" msgstr "&Installa gli strumenti per i comandi di linea" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:588 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:602 msgid "Open calibre &configuration directory" msgstr "Apri la cartella per la &configurazione di Calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:589 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:603 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" "Limita il massimo numero di job simultanei al numero dei &processori " "disponibili" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:604 msgid "Debug &device detection" msgstr "&Debug e riconoscimento dei dispositivi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:605 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 include un server che ti permette di accedere alla tua collezione di " -"libri usando un browser in qualunque parte del mondo. Qualsiasi cambiamento " -"nella configurazione verrà attivato solo dopo il riavvio del server." +"Calibre include un server che permette di accedere alla collezione di libri " +"usando un browser in qualunque parte del mondo. Qualsiasi cambiamento nella " +"configurazione verrà attivato solo dopo il riavvio del server." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:592 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:606 msgid "Server &port:" msgstr "&Porta del server:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:593 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:607 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "&Nome utente:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:594 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:608 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:213 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "&Password:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:609 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." @@ -5365,7 +5912,7 @@ msgstr "" "Se si lascia la password in bianco, chiunque potrà accedere alla propria " "collezione di libri utilizzando l'interfaccia web." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:610 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " @@ -5373,45 +5920,45 @@ msgstr "" "La dimensione massima (larghezzaxaltezza) per le copertine visualizzate. Le " "copertine più larghe vengono ridimensionate. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:611 msgid "Max. &cover size:" msgstr "Dimensi&one massima copertina:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:612 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:214 msgid "&Show password" msgstr "&Mostra password" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:599 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:613 msgid "Max. &OPDS items per query:" msgstr "Massimo elementi &OPDS per richiesta:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:614 msgid "Max. OPDS &ungrouped items:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:601 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:615 msgid "&Start Server" msgstr "A&vvia il server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:602 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:616 msgid "St&op Server" msgstr "&Ferma il server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:603 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:617 msgid "&Test Server" msgstr "&Test sul server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:604 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:618 msgid "Run server &automatically on startup" msgstr "Avvia a&utomaticamente il server all'apertura" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:605 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:619 msgid "View &server logs" msgstr "Visualizza i file di l&og del server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:620 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -5428,7 +5975,7 @@ msgstr "" "un nuovo catalogo sul tuo iPhone. In questo caso myhostname é da intendersi " "come il valore IP appropriato del computer su cui Calibre é attivo." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:622 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." @@ -5436,49 +5983,49 @@ msgstr "" "Qui è possibile personalizzare le funzioni di Calibre modificando quali " "plugin sono usati dal programma." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:609 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:623 msgid "Enable/&Disable plugin" msgstr "Attivare/&Disattiva il plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:610 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:624 msgid "&Customize plugin" msgstr "&Configura il plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:611 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:625 msgid "&Remove plugin" msgstr "&Rimuovi il plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:626 msgid "Add new plugin" msgstr "Aggiungi un nuovo plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:627 msgid "Plugin &file:" msgstr "Plugin &file:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:615 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:629 msgid "&Add" msgstr "&Aggiungi" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:125 msgid "Create Tag-based Column" -msgstr "" +msgstr "Crea colonne basate sui tag" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:126 msgid "Lookup name" -msgstr "" +msgstr "Parola chiave" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:127 msgid "Column heading" -msgstr "" +msgstr "Titolo colonna" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:128 msgid "Column type" -msgstr "" +msgstr "Tipo di colonna" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:129 msgid "Use brackets" -msgstr "" +msgstr "Usa parentesi" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:130 msgid "Values can be edited" @@ -5486,130 +6033,138 @@ msgstr "I valori possono essere modificati" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:135 msgid "Text" -msgstr "" +msgstr "Testo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:136 msgid "Number" -msgstr "" +msgstr "Numero" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:137 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:70 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:850 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:868 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:542 msgid "Date" msgstr "Data" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:138 msgid "Tag on book" -msgstr "" +msgstr "Tag del libro" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:139 msgid "Explanation text added in create_ct_column.py" -msgstr "" +msgstr "Testo di spiegazione aggiunto in create_ct_column.py" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:140 msgid "Create and edit tag-based columns" -msgstr "" +msgstr "Crea e modifica colonne basate sul tag" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:19 msgid "Text, column shown in the tag browser" -msgstr "" +msgstr "Testo, colonna visualizzata nel browser dei tag" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:22 msgid "Comma separated text, like tags, shown in the tag browser" msgstr "" +"Testo separato da vrigole, come i tag, visualizzato nel browser dei tag" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:25 msgid "Long text, like comments, not shown in the tag browser" -msgstr "" +msgstr "Testo esteso, come i commenti, non visualizzato nel browserdei tag" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:30 msgid "Floating point numbers" -msgstr "" +msgstr "Numeri in virgola mobile" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:32 msgid "Integers" -msgstr "" +msgstr "Interi" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:34 msgid "Ratings, shown with stars" -msgstr "" +msgstr "Votazione, visualizza con le stelle" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:37 msgid "Yes/No" -msgstr "" +msgstr "Sì/no" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:61 msgid "No column selected" -msgstr "" +msgstr "Nessuna colonna selezionata" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:62 msgid "No column has been selected" -msgstr "" +msgstr "Non è stata selezionata nessuna colonna" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:66 msgid "Selected column is not a user-defined column" -msgstr "" +msgstr "La colonna selezionata non è una colonna personalizzata" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:97 msgid "No lookup name was provided" -msgstr "" +msgstr "Non è stata fornita alcuna parola chiave" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:99 msgid "" "The label must contain only letters, digits and underscores, and start with " "a letter" msgstr "" +"L'etichetta può contenere sono lettere, numeri e underscore, e deve iniziare " +"con una lettera" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:108 msgid "No column heading was provided" -msgstr "" +msgstr "Nessun titolo per la colonna specificato" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:114 msgid "The lookup name %s is already used" -msgstr "" +msgstr "La parola chiave %s è già in uso" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:124 msgid "The heading %s is already used" -msgstr "" +msgstr "Il titolo %s è già in uso" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:126 msgid "" "The lookup name must be lower case and cannot contain \":\"s or spaces" msgstr "" +"La parola chiave deve essere composta da lettere minuscole e non può " +"contentere \":\" o spazi" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:101 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:117 msgid "Create or edit custom columns" -msgstr "" +msgstr "Crea o modifica colonne personalizzate" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:102 msgid "&Lookup name" -msgstr "" +msgstr "&Parola chiave" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:103 msgid "Column &heading" -msgstr "" +msgstr "&Titolo colonna" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:104 msgid "" "Used for searching the column. Must contain only digits and lower case " "letters." msgstr "" +"Usato per cercare la colonna. Può contere solo numberi e lettere minuscole." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:105 msgid "" "Column heading in the library view and category name in the tag browser" msgstr "" +"Titolo colonne nella vista biblioteca e nome categoria nel browser dei tag" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:106 msgid "Column &type" -msgstr "" +msgstr "&Tipo di colonna" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:107 msgid "What kind of information will be kept in the column." -msgstr "" +msgstr "Che tipo di informazione verrà mantenuto nella colonna." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:108 msgid "" @@ -5621,18 +6176,25 @@ msgid "" "

  • dd MMMM yy gives 05 January 10
  • \n" " " msgstr "" +"

    Formato data. Usare 1-4 'd's per il giorno, 1-4 'M's per il mese e 2 o 4 " +"'y's per l'anno.

    \n" +"

    Per esempio:\n" +"

      \n" +"
    • ddd, d MMM yyyy diventa Lun, 5 Gen 2010
    • \n" +"
    • dd MMMM yy diventa 05 Gen 10
    • \n" +"
    " #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:114 msgid "Use MMM yyyy for month + year, yyyy for year only" -msgstr "" +msgstr "Usare MMM yyyy per il mese + anno, yyyy solamente per l'anno" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:115 msgid "Default: dd MMM yyyy." -msgstr "" +msgstr "Predefinito: dd MMM yyyy." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:116 msgid "Format for &dates" -msgstr "" +msgstr "Formato per le &date" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:21 msgid "Getting debug information" @@ -5682,12 +6244,33 @@ msgstr "Scaricamento dei metadati sociali, per favore attendere..." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:50 msgid "&Show this warning again" -msgstr "&Show ancora questa avvertenza" +msgstr "&Visualizza ancora questa avvertenza" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/conversion_error_ui.py:42 msgid "ERROR" msgstr "ERRORE" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:69 +msgid "Location" +msgstr "Posizione" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1041 +msgid "Format" +msgstr "Formato" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device_ui.py:50 +msgid "Delete from device" +msgstr "Elimina dal dispositivo" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:29 +msgid "Author sort" +msgstr "Ordinamento per autore" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:47 +msgid "Manage authors" +msgstr "Gestione autori" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63 msgid "Author Sort" msgstr "Classificazione autore" @@ -5784,19 +6367,19 @@ msgstr "Lavori attivi" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:45 msgid "&Stop selected job" -msgstr "I&nterrompi il lavoro selezionato" +msgstr "&Interrompi il lavoro selezionato" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:46 msgid "Show job &details" -msgstr "Visualizza i &details del processo in corso" +msgstr "Mostra i &dettagli del lavoro" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:47 msgid "Stop &all jobs" -msgstr "Ferma &all i processi in corso" +msgstr "&Ferma tutti i lavori" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:24 msgid "Editing meta information for %d books" -msgstr "" +msgstr "Modifica metadati per %d libri" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 msgid "Edit Meta information" @@ -5865,7 +6448,7 @@ msgstr "Cancella for&mato:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:178 msgid "&Swap title and author" -msgstr "&Swap titolo per autore" +msgstr "&Scambia titolo e autore" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:179 msgid "" @@ -5874,10 +6457,14 @@ msgid "" "So if you selected Book A and then Book B,\n" "Book A will have series number 1 and Book B series number 2." msgstr "" +"I libri selezionati verranno automaticamente numerati,\n" +"in base all'ordine di selezione.\n" +"Quindi se è stato selezionato prima A e poi B,\n" +"il libro A avrà numero di serie 1 e B numero di serie 2." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:183 msgid "Automatically number books in this series" -msgstr "" +msgstr "Numera automaticamente i libri in questa serie" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:184 msgid "" @@ -5885,20 +6472,24 @@ msgid "" "\n" "Future conversion of these books will use the default settings." msgstr "" +"Elimina le impostazione di conversione per i libri selezionati.\n" +"\n" +"Per le prossime conversioni di questi libri verranno usate le impostazioni " +"predefinite." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:187 msgid "Remove &stored conversion settings for the selected books" -msgstr "" +msgstr "Elimina le impostazioni di &conversione per i libri selezionati" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:188 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:412 msgid "&Basic metadata" -msgstr "" +msgstr "Metadati &principali" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:189 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:413 msgid "&Custom metadata" -msgstr "" +msgstr "Metadati &aggiuntivi" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 msgid "Not a valid picture" @@ -5908,11 +6499,6 @@ msgstr "L'immagine non ee valida" msgid "Choose formats for " msgstr "Selezionare formati per: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:139 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:876 -msgid "Books" -msgstr "Libri" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:167 msgid "No permission" msgstr "Non ci sono privilegi" @@ -5951,70 +6537,78 @@ msgstr "La copertina nel formato %s é invalida." msgid "Abort the editing of all remaining books" msgstr "Interrompere la modifica di tutti i libri rimanenti" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:444 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:449 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:445 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:450 msgid "This ISBN number is valid" msgstr "Questo numero ISBN è valido" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:452 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:453 msgid "This ISBN number is invalid" msgstr "Questo numero ISBN è valido" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:532 +msgid "Cannot use tag editor" +msgstr "Impossibile utilizzare l'editor di tag" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:533 +msgid "The tags editor cannot be used if you have modified the tags" +msgstr "Non si può utilizzare l'editor di tag se i tag sono stati modificati" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:553 msgid "Downloading cover..." msgstr "Scaricamento della copertina..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:560 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:565 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:576 msgid "Cannot fetch cover" msgstr "Impossibile scaricare la copertina" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:561 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:577 msgid "Could not fetch cover.
    " msgstr "Impossibile scaricare la copertina
    " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:567 msgid "The download timed out." msgstr "Lo scaricamento ha raggiunto il limite di tempo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" "Non é stato possibile trovare una copertina per questo libro. Si provi a " "specificare il codice ISBN." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:578 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:583 msgid "Bad cover" msgstr "Copertina inutilizzabile" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:579 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:584 msgid "The cover is not a valid picture" msgstr "La copertina non é un'immagine accettabile." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:617 msgid "There were errors" msgstr "Si sono verificati errori" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:618 msgid "There were errors downloading social metadata" msgstr "Si sono verficiati errori nello scaricamento dei metadati sociali" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:642 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:647 msgid "Cannot fetch metadata" msgstr "Non é possibile scaricare i metadati." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:643 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:648 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" "Dovete specificare alemno uno fra codice ISBN, titolo, autore o editore" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:714 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:719 msgid "Permission denied" msgstr "Permesso negato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:715 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:720 msgid "Could not open %s. Is it being used by another program?" msgstr "" "Non é possibile aprire %s. Potrebbe essere in uso in un altro programma." @@ -6052,7 +6646,7 @@ msgstr "IS&BN:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "Publishe&d:" -msgstr "Pubblicato&d:" +msgstr "&Pubblicato:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 msgid "dd MMM yyyy" @@ -6110,34 +6704,36 @@ msgstr "Interruzione..." msgid "" "The current saved search will be permanently deleted. Are you sure?" msgstr "" +"La ricerca corrente salvata verrà definitivamente cancellata. " +"Continuare?" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:83 msgid "Saved Search Editor" -msgstr "" +msgstr "Editor di ricerche salvate" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:84 msgid "Saved Search: " -msgstr "" +msgstr "Ricerche salvate: " #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:85 msgid "Select a saved search to edit" -msgstr "" +msgstr "Selezionare una ricerca salvata da modificare" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:86 msgid "Delete this selected saved search" -msgstr "" +msgstr "Elimina la ricerca salvata selezionata" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:88 msgid "Enter a new saved search name." -msgstr "" +msgstr "Inserire un nuovo nome per la ricerca salvata" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:89 msgid "Add the new saved search" -msgstr "" +msgstr "Aggiungi una nuova ricerca salvata" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:91 msgid "Change the contents of the saved search" -msgstr "" +msgstr "Cambia il contenuto della ricerca salvata" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:119 msgid "Need username and password" @@ -6176,7 +6772,7 @@ msgstr "Aggiungi una fonte di notizie personalizzata" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:224 msgid "Download all scheduled new sources" -msgstr "" +msgstr "Scarica tutte le nuove sorgenti programmate" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:321 msgid "No internet connection" @@ -6388,71 +6984,75 @@ msgid "Choose formats" msgstr "Seleziona i formati" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:46 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:72 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:76 msgid "Authors" msgstr "Autori" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:46 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:101 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:107 msgid "Publishers" msgstr "Editori" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:110 msgid " (not on any book)" -msgstr "" +msgstr " (non su ogni libro)" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:162 msgid "" "The current tag category will be permanently deleted. Are you sure?" msgstr "" +"La categoria di tag corrente verrà definitivamente eliminata. " +"Continuare?" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:153 msgid "User Categories Editor" -msgstr "" +msgstr "Editor delle categorie utente" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:154 msgid "A&vailable items" -msgstr "" +msgstr "Elementi &disponibili" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:155 msgid "Apply tags to current tag category" -msgstr "" +msgstr "Applica i tag alla categoria di tag corrente" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:157 msgid "A&pplied items" -msgstr "" +msgstr "Elementi a&pplicati" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:158 msgid "Unapply (remove) tag from current tag category" -msgstr "" +msgstr "Togli il tag dalla categoria di tag corrente" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:160 msgid "Category name: " -msgstr "" +msgstr "Nome categoria: " #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:161 msgid "Select a category to edit" -msgstr "" +msgstr "Selezionare una categoria da modificare" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:162 msgid "Delete this selected tag category" -msgstr "" +msgstr "Elimina la categoria di tag selezionata" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:164 msgid "Enter a new category name. Select the kind before adding it." msgstr "" +"Inserire il nome della nuova categoria. Selezionare il tipo prima di " +"aggiungerla." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:165 msgid "Add the new category" -msgstr "" +msgstr "Aggiungi la nuova categoria" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:167 msgid "Category filter: " -msgstr "" +msgstr "Filtro categoria: " #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:168 msgid "Select the content kind of the new category" -msgstr "" +msgstr "Selezionare il tipo di contenuto della nuova categoria" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:68 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:93 @@ -6512,64 +7112,67 @@ msgid "Add tag to available tags and apply it to current book" msgstr "Aggiungi il tag a quelli disponibili e applicalo al libro corrente" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:441 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:500 msgid "Item is blank" -msgstr "" +msgstr "L'elemento è vuoto" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:442 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:501 msgid "An item cannot be set to nothing. Delete it instead." msgstr "" +"Un elemento non può essere impostato a niente. Cancellarlo piuttosto." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:66 msgid "Item already used" -msgstr "" +msgstr "Elemento già usato" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:67 msgid "The item %s is already used." -msgstr "" +msgstr "L'elemento %s è già stato usato." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:79 msgid "No item selected" -msgstr "" +msgstr "Nessun elemento selezionato" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:80 msgid "You must select one item from the list of Available items." -msgstr "" +msgstr "Selezionare un elemento dalla lista degli elementi disponibili." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:89 msgid "No items selected" -msgstr "" +msgstr "Nessun elemento selezionato" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:90 msgid "You must select at least one items from the list." -msgstr "" +msgstr "Selezionare almeno un elemento dalla lista." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:94 msgid "Are you certain you want to delete the following items?" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:71 -msgid "Category Editor" -msgstr "" +msgstr "Eliminare veramente i seguenti elementi?" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:72 -msgid "Items in use" -msgstr "" +msgid "Category Editor" +msgstr "Editor di categoria" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:73 +msgid "Items in use" +msgstr "Elementi da usare" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:74 msgid "" "Delete item from database. This will unapply the item from all books and " "then remove it from the database." msgstr "" +"Elimina l'elemento dal database. Questo toglierà l'elemento da tutti i libri " +"e lo eliminerà dal database." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:76 msgid "Rename the item in every book where it is used." -msgstr "" +msgstr "Rinomina l'elemento in ogni libro dove è presente." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:78 msgid "Ctrl+S" -msgstr "" +msgstr "Ctrl+S" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:51 msgid "Test email settings" @@ -6884,47 +7487,47 @@ msgstr "ISBN:" msgid "Regular expression (?P)" msgstr "Espressione regolare (?P)" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:36 msgid "Save single format to disk..." msgstr "Salvataggio di formato individuale sul disco..." -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:52 msgid "Edit metadata individually" msgstr "Modifica metadati individualmente" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:55 msgid "Edit metadata in bulk" msgstr "Modifica metadati in gruppo" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:58 msgid "Download metadata and covers" msgstr "Scarica i metadati e le copertine" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:60 msgid "Download only metadata" msgstr "Scarica solo i metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:62 msgid "Download only covers" msgstr "Scarica solo le copertine" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:65 msgid "Download only social metadata" msgstr "Scarica solo i metadati sociali" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:68 -msgid "Merge into first selected book - delete others" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/init.py:71 -msgid "Merge into first selected book - keep others" -msgstr "" +msgid "Merge into first selected book - delete others" +msgstr "Unisci nel primo libro selezionato - elimina gli altri" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:74 +msgid "Merge into first selected book - keep others" +msgstr "Unisci nel primo libro selezionato - mantieni gli altri" + +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:82 msgid "Add books from a single directory" msgstr "Aggiungi libri da una singola cartella" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:84 msgid "" "Add books from directories, including sub-directories (One book per " "directory, assumes every ebook file is the same book in a different format)" @@ -6933,7 +7536,7 @@ msgstr "" "cartella, si assume che ogni documento di libro elettronico é lo stesso " "libro in formati differenti)." -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:88 msgid "" "Add books from directories, including sub directories (Multiple books per " "directory, assumes every ebook file is a different book)" @@ -6941,89 +7544,94 @@ msgstr "" "Aggiungi libri da cartelle includendo le sotto-cartelle (Piú di un libro per " "cartella, si assume che ogni documento di libro elettronico é differente)." -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:91 msgid "Add Empty book. (Book entry with no formats)" msgstr "Aggiungi un libro vuoto (Libro senza formati iniziali)" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:101 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:283 msgid "Save to disk" msgstr "Salva su disco" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:103 msgid "Save to disk in a single directory" msgstr "Salva su disco in una singola cartella" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:102 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1782 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:105 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:405 msgid "Save only %s format to disk" msgstr "Salva sul disco solo il formato %s" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:106 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1785 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:408 msgid "Save only %s format to disk in a single directory" -msgstr "" +msgstr "Salva solo il formato %s su disco in una cartella unica" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:289 msgid "View" msgstr "Leggi" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:119 msgid "View specific format" msgstr "Leggi uno specifico formato" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:125 msgid "Remove selected books" msgstr "Cancella i libri selezionati" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:127 msgid "Remove files of a specific format from selected books.." msgstr "Cancella i file di un formato specifico dai libri selezionati" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:130 msgid "Remove all formats from selected books, except..." msgstr "Cancella tutti i formati dai libri selezionati, tranne..." -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:133 msgid "Remove covers from selected books" msgstr "Cancella le copertine dai libri selezionati" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:136 +msgid "Remove matching books from device" +msgstr "Rimuovi i libri corrispondenti dal dispositivo" + +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:153 msgid "Convert individually" msgstr "Converti individualmente" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:155 msgid "Bulk convert" msgstr "Converti in gruppo" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:159 msgid "Create catalog of books in your calibre library" msgstr "Crea un catologo di libri dalla vostra collezione in Calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:167 msgid "Run welcome wizard" msgstr "Fai partire l'assistente di configurazione iniziale" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:199 msgid "Similar books..." msgstr "Libri simili..." -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:297 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:230 +msgid "Add books to library" +msgstr "Aggiungi i libri alla biblioteca" + +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:309 msgid "Cover Browser" -msgstr "" +msgstr "Browser delle copertine" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:315 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:327 msgid "Tag Browser" -msgstr "" +msgstr "Browser dei tag" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:336 -msgid "Side bar" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:384 msgid "Book Details" -msgstr "" +msgstr "Dettagli del libro" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:60 msgid "Job" @@ -7062,8 +7670,7 @@ msgstr "Impossibile terminare il lavoro" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:217 msgid "Cannot kill jobs that communicate with the device" -msgstr "" -"Impossibile annullare i processi che comunicano col dispositivo di lettura" +msgstr "Impossibile annullare i processi che comunicano col dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:220 msgid "Job has already run" @@ -7073,29 +7680,29 @@ msgstr "Il lavoro è già stato avviato" msgid "Unavailable" msgstr "Non disponibile" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:278 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:280 msgid "Jobs:" msgstr "Lavori:" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:298 msgid "Click to see list of active jobs." msgstr "Fare clic per vedere una lista dei lavori attivi" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:358 msgid " - Jobs" msgstr " - Lavori" #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:284 msgid "N" -msgstr "" +msgstr "N" #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:284 msgid "Y" -msgstr "" +msgstr "S" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:56 msgid "On Device" -msgstr "" +msgstr "Sul dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:58 msgid "Size (MB)" @@ -7105,106 +7712,84 @@ msgstr "Dimensione (MB)" msgid "Rating" msgstr "Giudizio" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:294 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:300 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:305 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1029 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1033 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:73 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:416 -msgid "None" -msgstr "Nessuno" - -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:311 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1039 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1061 msgid "Book %s of %s." msgstr "Libro %s di %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:656 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1097 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:662 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1128 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:398 msgid "The lookup/search name is \"{0}\"" -msgstr "" +msgstr "La parola chiave è \"{0}\"" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:847 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:865 msgid "In Library" -msgstr "" +msgstr "Nella biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:851 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:869 msgid "Size" -msgstr "" +msgstr "Dimensione" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:852 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1023 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:101 -msgid "Collections" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1019 -msgid "Format" -msgstr "Formato" - -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1079 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1108 msgid "Marked for deletion" -msgstr "" +msgstr "Marcato per l'eliminazione" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1082 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1111 msgid "Double click to edit me

    " msgstr "Doppio clic per modificarmi

    " #: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:110 msgid "Hide column %s" -msgstr "" +msgstr "Nascondi colonna %s" #: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:115 msgid "Sort on %s" -msgstr "" +msgstr "Ordina per %s" #: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:116 msgid "Ascending" -msgstr "" +msgstr "Ascendente" #: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:119 msgid "Descending" -msgstr "" +msgstr "Discendente" #: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:131 msgid "Change text alignment for %s" -msgstr "" +msgstr "Cambia allineamento del testo per %s" #: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:133 msgid "Left" -msgstr "" +msgstr "Sinistra" #: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:133 msgid "Right" -msgstr "" +msgstr "Destra" #: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:134 msgid "Center" -msgstr "" +msgstr "Centrato" #: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 msgid "Show column" -msgstr "" +msgstr "Mostra colonna" #: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:165 msgid "Restore default layout" -msgstr "" +msgstr "Ripristina layout perdefinito" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:509 msgid "Not allowed" msgstr "Non permesso" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:510 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." msgstr "" -"Copiare direttamente sul dispositivo di lettura non é supportato. Prima é " -"necessario aggiungere il libro nella libreria di Calibre." +"La copia diretta sul dispositivo non é supportata. Prima è necessario " +"aggiungere il libro alla biblioteca di calibre." #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:47 msgid "Configure Viewer" @@ -7299,36 +7884,37 @@ msgstr "Non controllare gli aggiornamenti" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:595 msgid "Calibre Library" -msgstr "Libreria di Calibre" +msgstr "Biblioteca di calibre" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:84 msgid "Choose a location for your calibre e-book library" -msgstr "" +msgstr "Selezionare una posizione per la biblioteca di e-book calibre" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "Failed to create library" -msgstr "" +msgstr "Impossibile creare la biblioteca" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:94 msgid "Failed to create calibre library at: %r." -msgstr "" +msgstr "Impossibile creare la biblioteca in: %r." #: /home/kovid/work/calibre/src/calibre/gui2/main.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:182 msgid "Choose a location for your new calibre e-book library" -msgstr "" +msgstr "Selezionare una posizione per la nuova biblioteca di calibre" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:151 msgid "Initializing user interface..." -msgstr "" +msgstr "Inizializzazione interfaccia grafica..." #: /home/kovid/work/calibre/src/calibre/gui2/main.py:176 msgid "Repairing failed" -msgstr "" +msgstr "Ripristino fallito" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:177 msgid "The database repair failed. Starting with a new empty library." msgstr "" +"Riparazione del database fallita. Avvio con una nuova biblioteca vuota." #: /home/kovid/work/calibre/src/calibre/gui2/main.py:191 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:224 @@ -7337,11 +7923,11 @@ msgstr "Percorso del database sbagliato" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:192 msgid "Bad database location %r. calibre will now quit." -msgstr "" +msgstr "Posizione del database %s non valida. calibre verrà chiuso." #: /home/kovid/work/calibre/src/calibre/gui2/main.py:205 msgid "Corrupted database" -msgstr "" +msgstr "Database corrotto" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:206 msgid "" @@ -7349,20 +7935,26 @@ msgid "" "and repair it automatically? If you say No, a new empty calibre library will " "be created." msgstr "" +"Il database di calibre sembra corrotto. Tentare una riparazione automatica? " +"Altrimenti verrà creata una nuova biblioteca di calibre vuota." #: /home/kovid/work/calibre/src/calibre/gui2/main.py:212 msgid "" "Repairing database. This can take a very long time for a large collection" msgstr "" +"Riparazione database. Questo potrebbe richiedere molto tempo in caso di una " +"grande collezione" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:225 msgid "" "Bad database location %r. Will start with a new, empty calibre library" msgstr "" +"Posizione del database %s non valida. Verrà avviata una nuova biblioteca " +"calibre vuota." #: /home/kovid/work/calibre/src/calibre/gui2/main.py:236 msgid "Starting %s: Loading books..." -msgstr "" +msgstr "Avvio di %s: Caricamento libri..." #: /home/kovid/work/calibre/src/calibre/gui2/main.py:281 msgid "If you are sure it is not running" @@ -7403,12 +7995,14 @@ msgstr "calibre" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:255 msgid "&Restrict to:" -msgstr "" +msgstr "&Limitato a:" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:256 msgid "" "Books display will be restricted to those matching the selected saved search" msgstr "" +"I libri visualizzati saranno limitati a quelli corrispondenti alla ricerca " +"salvata selezionata" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:257 msgid "set in ui.py" @@ -7453,7 +8047,7 @@ msgstr "Salva ricerca corrente sotto il nome indicato nella casella" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:271 msgid "Delete current saved search" -msgstr "" +msgstr "Elimina ricerca salvata corrente" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:273 msgid "Add books" @@ -7482,15 +8076,15 @@ msgstr "E" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:280 msgid "Merge book records" -msgstr "" +msgstr "Unisci i record dei libri" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:281 msgid "M" -msgstr "" +msgstr "M" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:282 msgid "Send to device" -msgstr "Invia al dispositivo di lettura" +msgstr "Invia al dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:284 msgid "S" @@ -7576,26 +8170,27 @@ msgstr "Il Libro non ha ne titolo ne ISBN" msgid "No matches found for this book" msgstr "Nessun risultato é stato trovato per questo libro" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:86 -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:249 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:251 msgid "Search" msgstr "Cerca" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:304 msgid "The selected search will be permanently deleted. Are you sure?" msgstr "" +"La ricerca selezionata verrà definitivamente eliminata. Continuare?" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:344 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:346 msgid "Search (For Advanced Search click the button to the left)" msgstr "Cerca (Per la ricerca avanzata fare clic sul bottone a sinistra)" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:379 msgid "Saved Searches" msgstr "Ricerche Salvate" #: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:46 msgid "({0} of {1})" -msgstr "" +msgstr "({0} di {1})" #: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:52 msgid "(all books)" @@ -7603,7 +8198,7 @@ msgstr "(tutti i libri)" #: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:54 msgid "({0} of all)" -msgstr "" +msgstr "({0} di tutti)" #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:58 msgid "Press a key..." @@ -7665,63 +8260,76 @@ msgstr "Svuota" msgid "&Alternate shortcut:" msgstr "Scorciatoia &alternativa" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:150 -msgid "Rename" -msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:190 +msgid "Rename '%s'" +msgstr "Rinomina '%s'" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:194 +msgid "Edit sort for '%s'" +msgstr "Modifica ordinamento per '%s'" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:199 msgid "Hide category %s" -msgstr "" +msgstr "Nascondi categoria %s" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 msgid "Show category" -msgstr "" +msgstr "Visualizza categoria" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:206 msgid "Show all categories" -msgstr "" +msgstr "Visualizza tutte le categorie" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:169 -msgid "Manage " -msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:213 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:217 +msgid "Manage %s" +msgstr "Gestione %s" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:220 msgid "Manage Saved Searches" -msgstr "" +msgstr "Gestione ricerche salvate" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:180 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:231 msgid "Manage User Categories" -msgstr "" +msgstr "Gestione categorie utente" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:377 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:238 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:432 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:266 msgid "Searches" msgstr "Ricerche" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:510 msgid "Duplicate search name" -msgstr "" +msgstr "Duplica parola chiave" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:452 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:511 msgid "The saved search name %s is already used." -msgstr "" +msgstr "Il nome della ricerca salvata %s è già in uso." -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:652 -msgid "Sort by &popularity" -msgstr "Ordina per p&opolarità" +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:726 +msgid "Sort by name" +msgstr "Ordina per nome" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:726 +msgid "Sort by popularity" +msgstr "Ordina per popolarità" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:727 +msgid "Sort by average rating" +msgstr "Ordina per voto medio" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:733 msgid "Match all" msgstr "Fai corrispondere tutti" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:733 msgid "Match any" msgstr "Fai corrispondere uno qualsiasi" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:738 msgid "Manage &user categories" -msgstr "" +msgstr "Gestione categorie &utente" #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:182 @@ -7766,461 +8374,63 @@ msgstr "" "I libri nella lista sono giá stati convertiti nel formato %s. Volete " "convertirli nuovamente?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:172 -msgid "Error communicating with device" -msgstr "Errore di comunicazione col dispositivo di lettura" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:162 msgid "&Restore" msgstr "&Ripristina" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:191 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:164 msgid "&Donate to support calibre" msgstr "&donate per supportare Calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:167 msgid "&Eject connected device" -msgstr "" +msgstr "&Espelli dispositivo connesso" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:172 msgid "&Restart" msgstr "&Riavvia" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:240 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:206 msgid "

    For help see the: User Manual
    " msgstr "" "

    Per maggiori informazioni e aiuto vedere il: Manuale " "d'uso
    " -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:212 msgid "%s: %s by Kovid Goyal %%(version)s
    %%(device)s

    " msgstr "%s: %s di Kovid Goyal %%(version)s
    %%(device)s

    " -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:240 msgid "Calibre Quick Start Guide" msgstr "Guida rapida di Calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:347 -msgid "Select folder to open as device" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 -msgid "Device: " -msgstr "Dispositivo di lettura: " - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:487 -msgid " detected." -msgstr " individuato." - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:519 -msgid "Connected " -msgstr "Connesso " - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:531 -msgid "Device database corrupted" -msgstr "Database del dispositivo di lettura corrotto" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:532 -msgid "" -"\n" -"

    The database of books on the reader is corrupted. Try the " -"following:\n" -"

      \n" -"
    1. Unplug the reader. Wait for it to finish regenerating " -"the database (i.e. wait till it is ready to be used). Plug it back in. Now " -"it should work with %(app)s. If not try the next step.
    2. \n" -"
    3. Quit %(app)s. Find the file media.xml in the reader's " -"main memory. Delete it. Unplug the reader. Wait for it to regenerate the " -"file. Re-connect it and start %(app)s.
    4. \n" -"
    \n" -" " -msgstr "" -"\n" -"

    Il database dei libri nel lettore è corrotto. Prova con i " -"seguente passi:\n" -"

      \n" -"
    1. Scollega il lettore. Aspetta che abbia finito la " -"rigenerazione del database (cioè aspetta finché non è pronto per l'uso). " -"Ricollegalo. Ora dovrebbe funzionare con %(app)s, altrimenti provare il " -"passo successivo.
    2. \n" -"
    3. Chiudere %(app)s. Trovare il file media.xml nella " -"memoria principale del lettore e cancellarlo. Scollegare il lettore e " -"aspettare che rigeneri il file. Ricollegarlo e avviare %(app)s
    4. \n" -"
    \n" -" " - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:595 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:772 -msgid "Use library only" -msgstr "Usare solo la biblioteca" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:596 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:773 -msgid "User annotations generated from main library only" -msgstr "Annotazioni utente generate solo dalla biblioteca principale" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:603 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1098 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1155 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1193 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1214 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1409 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1527 -msgid "No books selected" -msgstr "Nessun libro selezionato" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:604 -msgid "No books selected to fetch annotations from" -msgstr "Nessun libro selezionato da cui prendere annotazioni" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:629 -msgid "Merging user annotations into database" -msgstr "Fondi le annotazioni utente nel database" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:657 -msgid "%s
    Last Page Read: %d (%d%%)" -msgstr "%s
    Ultima Pagina Letta: %d (%d%%)" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:663 -msgid "%s
    Last Page Read: Location %d (%d%%)" -msgstr "%s
    Ultima Pagina Letta: Posizione %d (%d%%)" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:682 -msgid "Location %d • %s
    %s
    " -msgstr "Posizione %d • %s
    %s
    " - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:691 -msgid "Page %d • %s
    " -msgstr "Pagina %d • %s
    " - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:696 -msgid "Location %d • %s
    " -msgstr "Posizione %d • %s
    " - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:816 -msgid "How many empty books?" -msgstr "Quanti libri vuoti?" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:817 -msgid "How many empty books should be added?" -msgstr "quanti libri vuoti si desidera aggiungere?" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:865 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:916 -msgid "Uploading books to device." -msgstr "Invio libri al dispositivo di lettura." - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:877 -msgid "EPUB Books" -msgstr "Libri EPUB" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:878 -msgid "LRF Books" -msgstr "Libri LRF" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:879 -msgid "HTML Books" -msgstr "Libri HTML" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:880 -msgid "LIT Books" -msgstr "Libri LIT" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:881 -msgid "MOBI Books" -msgstr "Libri MOBI" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:882 -msgid "Topaz books" -msgstr "Libri Topaz" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:883 -msgid "Text books" -msgstr "Libri TXT" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:884 -msgid "PDF Books" -msgstr "Libri PDF" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:885 -msgid "Comics" -msgstr "Fumetti" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:886 -msgid "Archives" -msgstr "Archivi" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:890 -msgid "Supported books" -msgstr "Libri supportati" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:925 -msgid "Merged some books" -msgstr "Uniti alcuni libri" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:926 -msgid "" -"Some duplicates were found and merged into the following existing books:" -msgstr "Alcune copie sono state trovate e unite con i seguenti libri:" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:935 -msgid "Failed to read metadata" -msgstr "Non é stato possibile leggere i metadati" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:936 -msgid "Failed to read metadata from the following" -msgstr "Non é stato possibile leggere i metadati dai seguenti:" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:956 -msgid "Cannot delete" -msgstr "Non si può cancellare" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:959 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1696 -msgid "No book selected" -msgstr "Nessun libro selezionato" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:969 -msgid "Choose formats to be deleted" -msgstr "Seleziona i formati da cancellare" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:987 -msgid "Choose formats not to be deleted" -msgstr "Seleziona i formati da non cancellare" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1025 -msgid "" -"The selected books will be permanently deleted and the files removed " -"from your computer. Are you sure?" -msgstr "" -"I libri selezionati saranno cancellati permanentemente e i documenti " -"rimossi dal computer. Siete sicuri?" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1046 -msgid "" -"The selected books will be permanently deleted from your device. Are " -"you sure?" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1061 -msgid "Deleting books from device." -msgstr "Cancellamento libri dal dispositivo di lettura." - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1097 -msgid "Cannot download metadata" -msgstr "Non é possibile scaricare i metadati" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1113 -msgid "social metadata" -msgstr "metadati sociali" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1115 -msgid "covers" -msgstr "copertine" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1115 -msgid "metadata" -msgstr "metadati" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1117 -msgid "Downloading %s for %d book(s)" -msgstr "Scaricamento %s per %d libri" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1139 -msgid "Failed to download some metadata" -msgstr "Non si é riusciti a scaricare alcuni metadati" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1140 -msgid "Failed to download metadata for the following:" -msgstr "Non si é riusciti a scaricare i metadati per i seguenti:" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 -msgid "Failed to download metadata:" -msgstr "Lo scaricamento dei metadati é fallito:" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1154 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1192 -msgid "Cannot edit metadata" -msgstr "Impossibile modificare i metadati" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1213 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1216 -msgid "Cannot merge books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 -msgid "At least two books must be selected for merging" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 -msgid "" -"All book formats and metadata from the selected books will be added to the " -"first selected book.

    The second and subsequently selected " -"books will not be deleted or changed.

    Please confirm you want to " -"proceed." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1232 -msgid "" -"All book formats and metadata from the selected books will be merged into " -"the first selected book.

    After merger the second and " -"subsequently selected books will be deleted.

    All book formats " -"of the first selected book will be kept and any duplicate formats in the " -"second and subsequently selected books will be permanently deleted " -"from your computer.

    Are you sure you want to proceed?" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 -msgid "" -"You are about to merge more than 5 books. Are you sure you want to " -"proceed?" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1343 -msgid "Cannot save to disk" -msgstr "Impossibile salvare sul disco" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 -msgid "Choose destination directory" -msgstr "Scegliere la cartella di destinazione" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1379 -msgid "Error while saving" -msgstr "Errore durante il salvataggio" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1380 -msgid "There was an error while saving." -msgstr "Si é verificato un errore durante il salvataggio" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1387 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1388 -msgid "Could not save some books" -msgstr "Non é stato possibile salvare tutti i libri" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1389 -msgid "Click the show details button to see which ones." -msgstr "Selezionare il tasto dei dettagli per vedere quali." - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 -msgid "No books selected to generate catalog for" -msgstr "Nessun libro selezionato per la generazione del catalogo" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1427 -msgid "Generating %s catalog..." -msgstr "Generando %s catalogo..." - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1433 -msgid "" -"No books to catalog\n" -"Check exclude tags" -msgstr "" -"Nessun libro da catalogare\n" -"Controlla i tag esclusi" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1443 -msgid "Catalog generated." -msgstr "Catalogo generato" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1446 -msgid "Export Catalog Directory" -msgstr "Esporta il catalogo" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1447 -msgid "Select destination for %s.%s" -msgstr "Selezionare una destinazione per %s.%s" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1461 -msgid "Fetching news from " -msgstr "Scaricamento notizie da " - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1475 -msgid " fetched." -msgstr " preso." - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1526 -msgid "Cannot convert" -msgstr "Impossibile convertire" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1555 -msgid "Starting conversion of %d book(s)" -msgstr "Conversione di %d libro/libri incominciata" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 -msgid "Cannot view" -msgstr "Impossibile leggere" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1685 -msgid "Multiple Books Selected" -msgstr "Piú di un libro selezionato" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1686 -msgid "" -"You are attempting to open %d books. Opening too many books at once can be " -"slow and have a negative effect on the responsiveness of your computer. Once " -"started the process cannot be stopped until complete. Do you wish to " -"continue?" -msgstr "" -"State tentando di aprire %d libri. Aprire molti libri allo stesso tempo puó " -"essere molto lento e causare effetti indesiderati nella responsivitá del " -"vostro computer. Una volta cominciato questa azione non puó essere fermata " -"finché il processo é completato. Siete sicuri di voler continuare?" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1695 -msgid "Cannot open folder" -msgstr "Impossibile aprire la cartella" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 -msgid "%s has no available formats." -msgstr "%s non ha formati disponibili" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1764 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1769 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:392 msgid "Cannot configure" msgstr "Impossibile configurare" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1765 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:388 msgid "Cannot configure while there are running jobs." msgstr "Impossibile configurare mentre ci sono lavori in esecuzione" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1770 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:393 msgid "Cannot configure before calibre is restarted." -msgstr "" +msgstr "Impossibile configurare prima che calibre sia riavviato." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1817 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:438 msgid "No detailed info available" msgstr "Nessuna informazione dettagliata disponibile" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1818 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:439 msgid "No detailed information is available for books on the device." -msgstr "" -"Non è disponibile alcuna informazione dettagliata per i libri nel " -"dispositivo di lettura." +msgstr "Non è disponibile alcun dettaglio per i libri nel dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1870 -msgid "Failed" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1876 -msgid "Error talking to device" -msgstr "Errore di comunicazione col dispositivo di lettura" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1877 -msgid "" -"There was a temporary error talking to the device. Please unplug and " -"reconnect the device and or reboot." -msgstr "" -"Si è verificato un errore di comunicazione temporaneo col dispositivo di " -"lettura. Disconnettere e riconnettere il dispositivo e/o riavviare" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1900 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1928 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:489 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:517 msgid "Conversion Error" msgstr "Errore di conversione" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:490 msgid "" "

    Could not convert: %s

    It is a DRMed book. You must " "first remove the DRM using third party tools." @@ -8229,15 +8439,15 @@ msgstr "" "href=\"%s\">DRM. É necessario rimuovere la DRM usando un prodotto da " "terzi." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1914 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:503 msgid "Recipe Disabled" msgstr "Ricetta deattivata" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1929 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:518 msgid "Failed" msgstr "Operazione Fallita" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1969 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:558 msgid "" "is the result of the efforts of many volunteers from all over the world. If " "you find it useful, please consider donating to support its development." @@ -8245,26 +8455,26 @@ msgstr "" "è il risultato degli sforzi di tanti volontari da tutto il mondo. Se lo " "trovi utile, puoi fare una donazione per supportare il suo sviluppo." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1994 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:583 msgid "There are active jobs. Are you sure you want to quit?" msgstr "Ci sono lavori attivi. Uscire comunque?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1997 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:586 msgid "" " is communicating with the device!
    \n" " Quitting may cause corruption on the device.
    \n" " Are you sure you want to quit?" msgstr "" -" sta comunicando con il dispositivo di lettura!
    \n" +" sta comunicando con il dispositivo!
    \n" " Un interruzione potrebbe causare una perdita di dati " -"sul dispositivo di lettura.
    \n" -" Siete sicuri di voler interrompere il processo?" +"sul dispositivo.
    \n" +" Interrompere l'operazione?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2001 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:590 msgid "WARNING: Active jobs" msgstr "ATTENZIONE: Lavori attivi" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2053 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:642 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." @@ -8272,7 +8482,7 @@ msgstr "" "continuerà a lavorare nel vassoio di sistema. Per chiuderlo, selezionare " "Esci nel menu contestuale del vassoio di sistema." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +#: /home/kovid/work/calibre/src/calibre/gui2/update.py:52 msgid "" "Latest version: %s" @@ -8280,11 +8490,11 @@ msgstr "" "Ultima versione: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2080 +#: /home/kovid/work/calibre/src/calibre/gui2/update.py:60 msgid "Update available" msgstr "Aggiornamento disponibile" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2081 +#: /home/kovid/work/calibre/src/calibre/gui2/update.py:61 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -8525,27 +8735,27 @@ msgstr "Vai a..." #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:467 msgid "Next Section" -msgstr "" +msgstr "Sezione successiva" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:468 msgid "Previous Section" -msgstr "" +msgstr "Sezione precedente" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:470 msgid "Document Start" -msgstr "" +msgstr "Inizio documento" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:471 msgid "Document End" -msgstr "" +msgstr "Fine documento" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:473 msgid "Section Start" -msgstr "" +msgstr "Inizio sezione" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:474 msgid "Section End" -msgstr "" +msgstr "Fine sezione" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:12 msgid "Scroll to the next page" @@ -8698,7 +8908,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:184 msgid "E-book Viewer" -msgstr "" +msgstr "Visualizzatore E-book" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:185 msgid "Close dictionary" @@ -8730,11 +8940,11 @@ msgstr "Trova successivo" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:198 msgid "Find next occurrence" -msgstr "" +msgstr "Trova occorrenza successiva" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:199 msgid "F3" -msgstr "" +msgstr "F3" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:200 msgid "Copy to clipboard" @@ -8758,15 +8968,15 @@ msgstr "Stampa" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206 msgid "Find previous" -msgstr "" +msgstr "Trova precedente" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:207 msgid "Find previous occurrence" -msgstr "" +msgstr "Trova occorrenza precedente" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:208 msgid "Shift+F3" -msgstr "" +msgstr "Shift+F3" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/printing.py:114 msgid "Print eBook" @@ -8827,24 +9037,24 @@ msgstr "Seleziona per vedere i libri disponibili sul vostro computer" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:238 msgid "Click to see the books in the main memory of your reader" msgstr "" -"Seleziona per vedere i libri disponibili sulla memoria principale del vostro " -"dispositivo di lettura" +"Fare clic per vedere i libri disponibili sulla memoria principale del " +"dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:239 msgid "Click to see the books on storage card A in your reader" msgstr "" -"Seleziona per vedere i libri disponibili sulla scheda di memoria A nel " -"vostro dispositivo di lettura" +"Fare clic per vedere i libri disponibili sulla scheda di memoria A del " +"dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:240 msgid "Click to see the books on storage card B in your reader" msgstr "" -"Seleziona per vedere i libri disponibili sulla scheda di memoria B nel " -"vostro dispositivo di lettura" +"Fare clic per vedere i libri disponibili sulla scheda di memoria B del " +"dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:248 msgid "Books located at" -msgstr "" +msgstr "Libri presenti in" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:506 msgid "Change Case" @@ -8868,15 +9078,15 @@ msgstr "Caratteri per titolo" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:932 msgid "Drag to resize" -msgstr "" +msgstr "Trasinare per ridimensionare" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:963 msgid "Show" -msgstr "" +msgstr "Visualizza" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:968 msgid "Hide" -msgstr "" +msgstr "Nascondi" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:367 msgid "" @@ -8884,10 +9094,9 @@ msgid "" "your calibre book collection directly on the device. To do this you have to " "turn on the content server." msgstr "" -"Se usate il l'applicazione WordPlayer sul vostro dispositivo Android, é " -"possibile accedere alla vostra collezione di libri elettronici direttamente " -"dal vostro dispositivo di lettura. Per fare questo é necessario attivare il " -"server di contenuti." +"Se viene usata l'applicazione WordPlayer su un dispositivo Android, é " +"possibile accedere alla collezione di libri direttamente dal dispositivo. " +"Per fare questo é necessario attivare il server di contenuti." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:371 msgid "" @@ -8903,18 +9112,18 @@ msgid "" "WordPlayer. Here myhostname should be the fully qualified hostname or the IP " "address of the computer calibre is running on." msgstr "" -"É necessario aggiungere l'indirizzo URL http://myhostname:8080 come libreria " -"di Calibre per WordPlayer. n uesto caso myhostname é da intendersi come il " -"valore IP appropriato del computer su cui Calibre é attivo." +"É necessario aggiungere l'indirizzo URL http://myhostname:8080 come " +"biblioteca di calibre per WordPlayer. In questo caso myhostname deve essere " +"un host valido o l'indirizzo IP del computer su cui calibre é avviato." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:450 msgid "Moving library..." -msgstr "Spostamento della libreria in corso..." +msgstr "Spostamento della biblioteca in corso..." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:466 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:467 msgid "Failed to move library" -msgstr "Non ´stato possibile muovere la libreria" +msgstr "Non è stato possibile spostare la biblioteca" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:521 msgid "Invalid database" @@ -8925,12 +9134,12 @@ msgid "" "

    An invalid library already exists at %s, delete it before trying to move " "the existing library.
    Error: %s" msgstr "" -"

    Una libreria non valida esiste giá in %s, Cancellate il documento prima " -"di tentare di muovere la libreria esistente.
    Errore: %s" +"

    Una biblioteca non valida esiste giá in %s, eliminarla prima di tentare " +"di spostare la biblioteca esistente.
    Errore: %s" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:533 msgid "Could not move library" -msgstr "Non é possibile spostare la libreria" +msgstr "Non é possibile spostare la biblioteca" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 msgid "welcome wizard" @@ -8952,16 +9161,15 @@ msgstr "Benvenuti in Calibre" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:43 msgid "The one stop solution to all your e-book needs." msgstr "" -"La soluzione unica per tutte le vostre necessitá in libri elettronici" +"La soluzione unica per tutte le vostre necessitá di libri elettronici" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:51 msgid "" "Choose your book reader. This will set the conversion options to produce " "books optimized for your device." msgstr "" -"Selezionare il vostro dispositivo di lettura. Questo consentirá di " -"personalizzare le opzioni di conversione ottimizzate per il vostro " -"dispositivo." +"Selezionare il lettore di ebook. Questo consentirá di impostare le opzioni " +"di conversione ottimizzate per il lettore." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:52 msgid "&Manufacturers" @@ -8976,15 +9184,15 @@ msgid "" "

    Congratulations!

    You have successfully setup calibre. Press the %s " "button to apply your settings." msgstr "" -"

    Congratulazioni!

    Avete installato con successo Calibre. Premete il " -"tasto %s per aggiornare le vostre opzioni." +"

    Congratulazioni!

    Calibre è stato installato con successo. Fare clic " +"sul pulsante %s per applicare le impostazioni." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:49 msgid "" "

    Demo videos

    Videos demonstrating the various features of calibre are " "available online." msgstr "" -"

    Videoguide

    Le videoguide ti permettono di vedere le varie " +"

    Videoguide

    Le videoguide permettono di vedere le varie " "caratteristiche del programma online." @@ -9016,15 +9224,15 @@ msgstr "&kindle posta elettronica:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:52 msgid "Choose your &language:" -msgstr "Selezionate il vostro &language:" +msgstr "Selezionare la &lingua:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:53 msgid "" "Choose a location for your books. When you add books to calibre, they will " "be copied here:" msgstr "" -"Selezionate una destinazione per i vostri libri. Quando si aggiungono libri " -"a Calibre, questi saranno copiati qui:" +"Selezionare una destinazione per i libri. Quando verranno aggiunti libri a " +"Calibre, questi saranno copiati qui:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:54 msgid "&Change" @@ -9036,9 +9244,9 @@ msgid "" "location. If a calibre library already exists at the new location, calibre " "will switch to using it." msgstr "" -"Se avete una libreria di Calibre, questa sará copiata nella nuova " -"destinazione. Se una libreria di Calibre esiste nella nuova destinazione, " -"Calibre la adopererá automaticamente." +"Se esiste già una biblioteca di Calibre, questa verrà copiata nella nuova " +"posizione. Se una biblioteca di Calibre esiste nella nuova posizione, " +"calibre utilizzerà quest'ultima." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 msgid "Using: %s:%s@%s:%s and %s encryption" @@ -9054,7 +9262,7 @@ msgstr "Messaggio inviato con successo" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:114 msgid "Finish gmail setup" -msgstr "Finallizare le opzioni per Gmail" +msgstr "Configurazione di gmail completata" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:115 msgid "" @@ -9141,7 +9349,7 @@ msgstr "La vostra password sul server per la posta" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 msgid "&Show" -msgstr "&Show" +msgstr "&Mostra" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 msgid "&Encryption:" @@ -9181,60 +9389,59 @@ msgid "" "directly on the device. To do this you have to turn on the calibre content " "server." msgstr "" -"

    Se usate l'applicazione Stanza come programma di " -"lettura per libri elettronici sul vostro iPhone/iTouch, potete accedere alla " -"vostra collezione di libri elettronici direttamente dal dispositivo di " -"lettura. Per fare questo é necessario attivare il server di contenuti." +"

    Se viene usata la app Stanza su iPhone/iTouch, è " +"possibile accedere alla collezione di libri direttamente dal dispositivo. " +"Per fare questo é necessario attivare il server di contenuti." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:45 msgid "Turn on the &content server" msgstr "Attivare in server di &content" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:270 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:275 msgid "today" -msgstr "" +msgstr "oggi" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:273 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:278 msgid "yesterday" -msgstr "" +msgstr "ieri" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:276 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:281 msgid "thismonth" -msgstr "" +msgstr "questomese" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:279 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:280 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:284 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:285 msgid "daysago" -msgstr "" +msgstr "giornifa" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:430 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:440 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:435 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:445 msgid "no" -msgstr "" +msgstr "no" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:430 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:440 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:435 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:445 msgid "unchecked" -msgstr "" +msgstr "non selezionato" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:433 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:443 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:438 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:448 msgid "checked" -msgstr "" +msgstr "selezionato" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:433 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:443 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:438 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:448 msgid "yes" -msgstr "" +msgstr "sì" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:437 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:442 msgid "blank" -msgstr "" +msgstr "vuota" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:437 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:442 msgid "empty" -msgstr "" +msgstr "vuoto" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:41 msgid "" @@ -9510,19 +9717,19 @@ msgstr "Aggiunge libri al database anche se esistono già." #: /home/kovid/work/calibre/src/calibre/library/cli.py:282 msgid "Add an empty book (a book with no formats)" -msgstr "" +msgstr "Aggiungi un libro vuoto (un libro senza formati)" #: /home/kovid/work/calibre/src/calibre/library/cli.py:284 msgid "Set the title of the added empty book" -msgstr "" +msgstr "Imposta il titolo del libro vuoto aggiunto" #: /home/kovid/work/calibre/src/calibre/library/cli.py:286 msgid "Set the authors of the added empty book" -msgstr "" +msgstr "Imposta gli autori del libro vuoto aggiunto" #: /home/kovid/work/calibre/src/calibre/library/cli.py:288 msgid "Set the ISBN of the added empty book" -msgstr "" +msgstr "Imposta l'ISBN del libro vuoto aggiunto" #: /home/kovid/work/calibre/src/calibre/library/cli.py:313 msgid "You must specify at least one file to add" @@ -9687,22 +9894,33 @@ msgid "" "column.\n" "datatype is one of: {0}\n" msgstr "" +"%prog add_custom_column [opzioni] etichetta nome tipo\n" +"\n" +"Crea una colonna personalizzata. etichetta è il amichevole della macchina " +"della colonna. Non\n" +"deve contentere spazi o punteggiatura. nome è il nome amichevole umano della " +"colonna.\n" +"tipo è uno di: {0}\n" #: /home/kovid/work/calibre/src/calibre/library/cli.py:556 msgid "" "This column stores tag like data (i.e. multiple comma separated values). " "Only applies if datatype is text." msgstr "" +"Questa colonna salva i tag come dati (es. valori separati da virgole). " +"Applicato solo se il tipo di dato è testo." #: /home/kovid/work/calibre/src/calibre/library/cli.py:560 msgid "" "A dictionary of options to customize how the data in this column will be " "interpreted." msgstr "" +"Un dizionario di opzioni per personalizzare come i dati in questa colonna " +"verranno interpretati." #: /home/kovid/work/calibre/src/calibre/library/cli.py:573 msgid "You must specify label, name and datatype" -msgstr "" +msgstr "Specificare etichetta, nome e tipo di dato" #: /home/kovid/work/calibre/src/calibre/library/cli.py:631 msgid "" @@ -9745,7 +9963,7 @@ msgstr "" "Default: nessun filtraggio" #: /home/kovid/work/calibre/src/calibre/library/cli.py:655 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:503 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:505 msgid "Show detailed output information. Useful for debugging" msgstr "Mostra un output dettagliato. Utile per il debugging" @@ -9764,16 +9982,27 @@ msgid "" " command.\n" " " msgstr "" +"\n" +" %prog set_custom [opzioni] colonna id valore\n" +"\n" +" Imposta il valore di una colonna personalizzata per il libro " +"identificato da id.\n" +" Per ottenere una lista di id usare il comando list.\n" +" Per ottenere una lista dei nomi delle colonne usare il comando " +"custom_columns.\n" +" " #: /home/kovid/work/calibre/src/calibre/library/cli.py:699 msgid "" "If the column stores multiple values, append the specified values to the " "existing ones, instead of replacing them." msgstr "" +"Se la colonna salva più valori, aggiunge i valori specificati a quelli " +"esistenti, altrimenti li sostituisce." #: /home/kovid/work/calibre/src/calibre/library/cli.py:710 msgid "Error: You must specify a field name, id and value" -msgstr "" +msgstr "Errore: Specificare nome del campo, id e valore" #: /home/kovid/work/calibre/src/calibre/library/cli.py:729 msgid "" @@ -9783,14 +10012,20 @@ msgid "" " List available custom columns. Shows column labels and ids.\n" " " msgstr "" +"\n" +" %prog custom_columns [opzioni]\n" +"\n" +" Mostra le colonne personalizzate disponibili. Mostra le etichette della " +"colonna e gli id.\n" +" " #: /home/kovid/work/calibre/src/calibre/library/cli.py:736 msgid "Show details for each column." -msgstr "" +msgstr "Mostra i dettagli per ogni colonna" #: /home/kovid/work/calibre/src/calibre/library/cli.py:748 msgid "You will lose all data in the column: %r. Are you sure (y/n)? " -msgstr "" +msgstr "Verranno persi i dati nella colonna: %r. Continuare (y/n)? " #: /home/kovid/work/calibre/src/calibre/library/cli.py:750 msgid "y" @@ -9805,14 +10040,21 @@ msgid "" " columns with the custom_columns command.\n" " " msgstr "" +"\n" +" %prog remove_custom_column [opzioni] etichetta\n" +"\n" +" Rimuove la colonna personalizzata identificata dall'etichetta. Per " +"visualizzare le\n" +" colonne disponibili utilizzare il comando custom_columns.\n" +" " #: /home/kovid/work/calibre/src/calibre/library/cli.py:764 msgid "Do not ask for confirmation" -msgstr "" +msgstr "Non chiedere conferma" #: /home/kovid/work/calibre/src/calibre/library/cli.py:774 msgid "Error: You must specify a column label" -msgstr "" +msgstr "Errore: Specificare un etichetta per la colonna" #: /home/kovid/work/calibre/src/calibre/library/cli.py:787 msgid "" @@ -9834,46 +10076,50 @@ msgstr "" "\n" "Per aiuto su un comando particolare: %%prog command --help\n" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:487 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:70 +msgid "%sAverage rating is %3.1f" +msgstr "%sIl voto medio è %3.1f" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:520 msgid "Main" -msgstr "" +msgstr "Principale" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:489 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:522 msgid "Card A" -msgstr "" +msgstr "Scheda A" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:491 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:524 msgid "Card B" -msgstr "" +msgstr "Scheda B" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1665 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1736 msgid "

    Migrating old database to ebook library in %s

    " msgstr "" -"

    Sto migrando il vecchio database nella nuova biblioteca in %s

    " +"

    Migrazione del vecchio database nella biblioteca in %s

    " -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1694 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1765 msgid "Copying %s" msgstr "Sto copiando %s" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1711 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1782 msgid "Compacting database" msgstr "Compattazione database" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1804 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1875 msgid "Checking SQL integrity..." msgstr "Controllo di integrita' SQL..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1845 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1916 msgid "Checking for missing files." msgstr "Controllo per file mancanti" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1867 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1938 msgid "Checked id" msgstr "ID controllate" -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:111 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:118 msgid "Ratings" -msgstr "" +msgstr "Voti" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:24 msgid "The title" @@ -9904,6 +10150,8 @@ msgid "" "The series number. To get leading zeros use {series_index:0>3s} or " "{series_index:>3s} for leading spaces" msgstr "" +"Il numero di serie. Per ottenere gli zeri iniziali usare {series_index:0>3s} " +"o {series_index:>3s} per gli spazi iniziali" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:33 msgid "The rating" @@ -9938,8 +10186,8 @@ msgid "" "Normally, calibre will update the metadata in the saved files from what is " "in the calibre library. Makes saving to disk slower." msgstr "" -"Normalmente Calibre aggiornerá i metadati nei documenti salvati da quanto si " -"trova nella libreria di Calibre. Ció rende il salvataggio piú lento." +"Normalmente Calibre aggiornerá i metadati nei file salvati da quanto si " +"trova nella biblioteca di Calibre. Ció rende il salvataggio piú lento." #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:57 msgid "" @@ -9984,10 +10232,10 @@ msgid "" "directory with filenames containing title and author. Available controls " "are: {%s}" msgstr "" -"Il modello per configurare la struttura del nome delle cartelle e dei " -"documenti inviati al dispositivo di lettura. Il valore predefinito e' \"%s\" " -"che utilizza una struttura di cartelle per autore e nomi dei documenti " -"contententi il titolo e l'autore. Altre opzioni disponibili sono: {%s}" +"Il modello per gestire la struttura delle cartelle e dei nomi dei file " +"inviati al dispositivo. Il valore predefinito è \"%s\" che salva i libri in " +"directory divise per autore con i nomi dei file contententi il titolo e " +"l'autore. Altre opzioni disponibili sono: {%s}" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:78 msgid "" @@ -10068,6 +10316,9 @@ msgid "" "more than this number of items. Default: %default. Set to a large number to " "disable grouping." msgstr "" +"Raggruppa gli elementi per categorie come autore/tag per la prima lettera " +"quando ci sono più di questo numero di elementi. Predefinito: %default. " +"Impostare un numero grande per disattivare il raggruppamento." #: /home/kovid/work/calibre/src/calibre/library/server/base.py:93 msgid "Password to access your calibre library. Username is " @@ -10087,52 +10338,52 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/server/main.py:30 msgid "Path to the library folder to serve with the content server" msgstr "" -"Percorso per la cartella da cui la libreria e' disponibile per il server di " -"contenuti" +"Percorso per la cartella da cui la biblioteca e' disponibile per il server " +"di contenuti" #: /home/kovid/work/calibre/src/calibre/library/server/main.py:32 msgid "Write process PID to the specified file" msgstr "Scrivere PID per il file specificato" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:108 msgid "%d books" -msgstr "" +msgstr "%d libri" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:124 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:127 msgid "%d items" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:141 -msgid "RATING: %s
    " -msgstr "" +msgstr "%d elementi" #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:144 +msgid "RATING: %s
    " +msgstr "VOTO: %s
    " + +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:147 msgid "TAGS: %s
    " -msgstr "" +msgstr "TAG: %s
    " -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:148 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:151 msgid "SERIES: %s [%s]
    " -msgstr "" +msgstr "SERIE: %s [%s]
    " -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:189 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:192 msgid "Library" -msgstr "" +msgstr "Biblioteca" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:228 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:231 msgid "Books in your library" -msgstr "" +msgstr "Libri nella biblioteca" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:234 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:237 msgid "By " -msgstr "" +msgstr "Di " -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:235 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:238 msgid "Books sorted by " -msgstr "" +msgstr "Libri ordinati per " -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:535 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:542 msgid "Newest" -msgstr "" +msgstr "Più recenti" #: /home/kovid/work/calibre/src/calibre/utils/config.py:48 msgid "%sUsage%s: %s\n" @@ -10275,34 +10526,38 @@ msgid "English (Pakistan)" msgstr "Inglese (Pakistan)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:106 +msgid "English (Israel)" +msgstr "English (Israel)" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 msgid "English (Singapore)" msgstr "Inglese (Singapore)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 msgid "English (Yemen)" msgstr "Inglese (Yemen)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 msgid "English (Ireland)" msgstr "English (Ireland)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 -msgid "English (China)" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/utils/localization.py:110 -msgid "Spanish (Paraguay)" -msgstr "" +msgid "English (China)" +msgstr "English (China)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:111 +msgid "Spanish (Paraguay)" +msgstr "Spanish (Paraguay)" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:112 msgid "German (AT)" msgstr "Tedesco (AT)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:112 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:113 msgid "Dutch (NL)" msgstr "Olandese (Olanda)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:113 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:114 msgid "Dutch (BE)" msgstr "Olandese (Belgio)" @@ -10371,89 +10626,89 @@ msgstr "" msgid "Unknown News Source" msgstr "Sorgente di notizie sconosciuta" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:605 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:606 msgid "The \"%s\" recipe needs a username and password." msgstr "La ricetta \"%s\" richiede un nome utente e password." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:702 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:703 msgid "Download finished" msgstr "Scaricamento completato" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:704 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:705 msgid "Failed to download the following articles:" msgstr "Scaricamento dei seguenti articoli fallito:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:710 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:711 msgid "Failed to download parts of the following articles:" msgstr "Scaricamento dei seguenti articoli fallito parzialmente:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:713 msgid " from " msgstr " da " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:714 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:715 msgid "\tFailed links:" msgstr "\tLink falliti:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:831 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" "Non é stato possibile ottnere l'articolo. Provare a eseguire con l'opzione -" "vv per maggiori informazioni sulla ragione." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:852 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:849 msgid "Fetching feeds..." msgstr "Scaricamento feed..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:857 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:854 msgid "Got feeds from index page" msgstr "Ricevuti feed dalla pagina principale" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:863 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:860 msgid "Trying to download cover..." msgstr "Tentativo di scaricamento della copertina..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:865 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:862 msgid "Generating masthead..." msgstr "Preparazione dell'immagine principale in corso" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:946 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:943 msgid "Starting download [%d thread(s)]..." msgstr "Inizio scaricamento [%d articolo(i)]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:962 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:959 msgid "Feeds downloaded to %s" msgstr "Feed scaricati in %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:972 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:969 msgid "Could not download cover: %s" msgstr "Impossibile scaricare la copertina: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:984 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:981 msgid "Downloading cover from %s" msgstr "Scaricamento copertina da %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1024 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1021 msgid "Masthead image downloaded" msgstr "Immagine principale scaricata" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1220 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1211 msgid "Untitled Article" msgstr "Articolo senza titolo" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1291 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1282 msgid "Article downloaded: %s" msgstr "Articolo scaricato: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1302 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1293 msgid "Article download failed: %s" msgstr "Scaricamento fallito dell'articolo: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1319 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1310 msgid "Fetching feed" msgstr "Scaricamento feed" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1466 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1457 msgid "" "Failed to log in, check your username and password for the calibre " "Periodicals service." @@ -10461,7 +10716,7 @@ msgstr "" "Impossibile accedere, controllare il nome utente e password per il servizio " "Periodici di calibre." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1482 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1473 msgid "" "You do not have permission to download this issue. Either your subscription " "has expired or you have exceeded the maximum allowed downloads for today." @@ -10484,7 +10739,7 @@ msgstr "Pianificato" msgid "Custom" msgstr "Personalizzato" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:480 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 msgid "" "%prog URL\n" "\n" @@ -10494,11 +10749,11 @@ msgstr "" "\n" "Dov'è l'URL. Esempio: http://google.com" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:485 msgid "Base directory into which URL is saved. Default is %default" msgstr "Cartella base in cui le URL sono salvate. Predefinita: %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:486 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:488 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" @@ -10506,7 +10761,7 @@ msgstr "" "Timeout in secondi da aspettare per una risposta dal server. Predefinito: " "%default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:489 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:491 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" @@ -10514,7 +10769,7 @@ msgstr "" "Numero massimo di livelli ricorsivi, cioè profondità dei link da seguire. " "Predefinito: %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:492 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:494 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" @@ -10522,7 +10777,7 @@ msgstr "" "Il numero massimo di file da scaricare. Questa si applica solo ai file dai " "tag . Predefinito: %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:494 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:496 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" @@ -10530,7 +10785,7 @@ msgstr "" "Intervallo minimo in secondi tra due scaricamenti consecutivi. Predefinito: " "%default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:496 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:498 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." @@ -10538,7 +10793,7 @@ msgstr "" "La codifica caratteri del sito web che si sta cercando di scaricare. " "L'impostazione predefinita è quella di provare a indovinare la codifica" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:498 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:500 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " @@ -10549,7 +10804,7 @@ msgstr "" "un link corrisponde a una delle espressioni regolari verrà seguito. Per " "impostazione predefinita i link non vengono seguiti" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:500 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:502 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -10564,7 +10819,7 @@ msgstr "" "sia --filter-regexp che --match-regexp, --filter-regexp viene applicata per " "prima" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:502 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:504 msgid "Do not download CSS stylesheets." msgstr "Non scaricare i fogli di stile CSS" @@ -11113,6 +11368,34 @@ msgstr "Non scaricare i fogli di stile CSS" #~ msgid "Send to storage card" #~ msgstr "Invia alla scheda di memoria" +#~ msgid "" +#~ "\n" +#~ "

    The database of books on the reader is corrupted. Try the " +#~ "following:\n" +#~ "

      \n" +#~ "
    1. Unplug the reader. Wait for it to finish regenerating " +#~ "the database (i.e. wait till it is ready to be used). Plug it back in. Now " +#~ "it should work with %(app)s. If not try the next step.
    2. \n" +#~ "
    3. Quit %(app)s. Find the file media.xml in the reader's " +#~ "main memory. Delete it. Unplug the reader. Wait for it to regenerate the " +#~ "file. Re-connect it and start %(app)s.
    4. \n" +#~ "
    \n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ "

    Il database dei libri nel lettore è corrotto. Prova con i " +#~ "seguente passi:\n" +#~ "

      \n" +#~ "
    1. Scollega il lettore. Aspetta che abbia finito la " +#~ "rigenerazione del database (cioè aspetta finché non è pronto per l'uso). " +#~ "Ricollegalo. Ora dovrebbe funzionare con %(app)s, altrimenti provare il " +#~ "passo successivo.
    2. \n" +#~ "
    3. Chiudere %(app)s. Trovare il file media.xml nella " +#~ "memoria principale del lettore e cancellarlo. Scollegare il lettore e " +#~ "aspettare che rigeneri il file. Ricollegarlo e avviare %(app)s
    4. \n" +#~ "
    \n" +#~ " " + #~ msgid "" #~ "

    Books with the same title as the following already exist in the database. " #~ "Add them anyway?