diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index 3063ef252d..418e39c41b 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -100,7 +100,7 @@ def _config(): c.add_opt('tag_browser_hidden_categories', default=set(), help=_('tag browser categories not to display')) c.add_opt('gui_layout', choices=['wide', 'narrow'], - help=_('The layout of the user interface'), default='narrow') + help=_('The layout of the user interface'), default='wide') return ConfigProxy(c) config = _config() diff --git a/src/calibre/gui2/book_details.py b/src/calibre/gui2/book_details.py index a9e87973bd..47ddf276e6 100644 --- a/src/calibre/gui2/book_details.py +++ b/src/calibre/gui2/book_details.py @@ -8,16 +8,18 @@ __docformat__ = 'restructuredtext en' import os, collections from PyQt4.Qt import QLabel, QPixmap, QSize, QWidget, Qt, pyqtSignal, \ - QVBoxLayout, QScrollArea, QPropertyAnimation, QEasingCurve + QVBoxLayout, QScrollArea, QPropertyAnimation, QEasingCurve, \ + QSizePolicy, QPainter, QRect, pyqtProperty from calibre import fit_image, prepare_string_for_xml from calibre.gui2.widgets import IMAGE_EXTENSIONS from calibre.ebooks import BOOK_EXTENSIONS from calibre.constants import preferred_encoding +from calibre.library.comments import comments_to_html # render_rows(data) {{{ WEIGHTS = collections.defaultdict(lambda : 100) -WEIGHTS[_('Path')] = 0 +WEIGHTS[_('Path')] = 5 WEIGHTS[_('Formats')] = 1 WEIGHTS[_('Collections')] = 2 WEIGHTS[_('Series')] = 3 @@ -29,7 +31,7 @@ def render_rows(data): rows = [] for key in keys: txt = data[key] - if key in ('id', _('Comments')) or not txt or not txt.strip() or \ + if key in ('id', _('Comments')) or not hasattr(txt, 'strip') or not txt.strip() or \ txt == 'None': continue if isinstance(key, str): @@ -41,7 +43,8 @@ def render_rows(data): if 'id' in data: if key == _('Path'): txt = '...'+os.sep+os.sep.join(txt.split(os.sep)[-2:]) - txt = u'%s'%(data['id'], txt) + txt = u'%s'%(data['id'], + _('Click to open')) if key == _('Formats') and txt and txt != _('None'): fmts = [x.strip() for x in txt.split(',')] fmts = [u'%s' % (data['id'], x, x) for x @@ -52,53 +55,91 @@ def render_rows(data): # }}} -class CoverView(QLabel): # {{{ +class CoverView(QWidget): # {{{ + def __init__(self, parent=None): - QLabel.__init__(self, parent) - self.animation = QPropertyAnimation(self, 'size', self) + QWidget.__init__(self, parent) + self.setMaximumSize(QSize(120, 120)) + self.setMinimumSize(QSize(120, 1)) + self._current_pixmap_size = self.maximumSize() + + self.animation = QPropertyAnimation(self, 'current_pixmap_size', self) self.animation.setEasingCurve(QEasingCurve(QEasingCurve.OutExpo)) self.animation.setDuration(1000) self.animation.setStartValue(QSize(0, 0)) + self.animation.valueChanged.connect(self.value_changed) + + self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.default_pixmap = QPixmap(I('book.svg')) - self.max_width, self.max_height = 120, 120 - self.setScaledContents(True) - self.setPixmap(self.default_pixmap) + self.pixmap = self.default_pixmap + self.pwidth = self.pheight = None + self.data = {} - def do_layout(self): - pixmap = self.pixmap() - pwidth, pheight = pixmap.width(), pixmap.height() - width, height = fit_image(pwidth, pheight, - self.max_width, self.max_height)[1:] - self.setMaximumWidth(width) - try: - aspect_ratio = pwidth/float(pheight) - except ZeroDivisionError: - aspect_ratio = 1 - mh = min(self.max_height, int(width/aspect_ratio)) - self.setMaximumHeight(mh) - self.animation.setEndValue(self.maximumSize()) + self.do_layout() - def setPixmap(self, pixmap): - QLabel.setPixmap(self, pixmap) - self.do_layout() - self.animation.start() + def value_changed(self, val): + self.update() + def setCurrentPixmapSize(self, val): + self._current_pixmap_size = val - def sizeHint(self): - return QSize(self.maximumWidth(), self.maximumHeight()) + def do_layout(self): + pixmap = self.pixmap + pwidth, pheight = pixmap.width(), pixmap.height() + self.pwidth, self.pheight = fit_image(pwidth, pheight, + self.maximumWidth(), self.maximumHeight())[1:] + self.current_pixmap_size = QSize(self.pwidth, self.pheight) + self.animation.setEndValue(self.current_pixmap_size) - def relayout(self, parent_size): - self.max_height = int(parent_size.height()/3.) - self.max_width = parent_size.width() - self.do_layout() + def relayout(self, parent_size): + self.setMaximumSize(parent_size.width(), + int(parent_size.height()/3.)+1) + self.resize(self.maximumSize()) + self.animation.stop() + self.do_layout() + + def sizeHint(self): + return self.maximumSize() + + def show_data(self, data): + self.animation.stop() + if data.get('id', None) == self.data.get('id', None): + return + self.data = {'id':data.get('id', None)} + if data.has_key('cover'): + self.pixmap = QPixmap.fromImage(data.pop('cover')) + if self.pixmap.isNull(): + self.pixmap = self.default_pixmap + else: + self.pixmap = self.default_pixmap + self.do_layout() + self.update() + self.animation.start() + + def paintEvent(self, event): + canvas_size = self.rect() + width = self.current_pixmap_size.width() + extrax = canvas_size.width() - width + if extrax < 0: extrax = 0 + x = int(extrax/2.) + height = self.current_pixmap_size.height() + extray = canvas_size.height() - height + if extray < 0: extray = 0 + y = int(extray/2.) + target = QRect(x, y, width, height) + p = QPainter(self) + p.setRenderHints(QPainter.Antialiasing | QPainter.SmoothPixmapTransform) + p.drawPixmap(target, self.pixmap.scaled(target.size(), + Qt.KeepAspectRatio, Qt.SmoothTransformation)) + p.end() + + current_pixmap_size = pyqtProperty('QSize', + fget=lambda self: self._current_pixmap_size, + fset=setCurrentPixmapSize + ) - def show_data(self, data): - if data.has_key('cover'): - self.setPixmap(QPixmap.fromImage(data.pop('cover'))) - else: - self.setPixmap(self.default_pixmap) # }}} @@ -108,10 +149,12 @@ class Label(QLabel): link_clicked = pyqtSignal(object) def __init__(self): + QLabel.__init__(self) self.setText('') self.setWordWrap(True) self.linkActivated.connect(self.link_activated) self._link_clicked = False + self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) def link_activated(self, link): self._link_clicked = True @@ -133,13 +176,17 @@ class BookInfo(QScrollArea): self.setWidget(self.label) self.link_clicked = self.label.link_clicked self.mr = self.label.mr + self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) def show_data(self, data): self.label.setText('') - self.data = data.copy() - rows = render_rows(self.data) + rows = render_rows(data) rows = u'\n'.join([u'
calibre can scan your computer for existing books automatically. These books will then be copied into the calibre library. This wizard will help you customize the scanning and import process for your existing book collection.\n"
+" Choose a root folder. Books will be searched for only inside this folder and any sub-folders. \n" +"Make sure that the folder you chose for your calibre library is not under the root folder you choose. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:63 +msgid "&Root folder:" +msgstr "" + +#: /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 "" + +#: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py: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:547 +#: /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:562 +#: /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:581 +#: /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:585 +#: /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:623 +#: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:159 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:131 +#: /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/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 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:254 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:268 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:270 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:272 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:186 +msgid "..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:67 +msgid "Handle multiple files per book" +msgstr "" + +#: /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 "" + +#: /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 "" + +#: /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/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 @@ -2705,8 +2818,8 @@ msgstr "" msgid "Path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:21 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:48 #: /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 @@ -2717,19 +2830,25 @@ msgstr "" msgid "Formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:22 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:24 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:855 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1026 msgid "Collections" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:47 +msgid "Click to open" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:48 #: /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:1032 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1036 #: /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 "" @@ -2769,6 +2888,42 @@ msgstr "" msgid "output" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:45 +#: /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/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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:107 +msgid "Form" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:38 +msgid "Fields to include in output:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 msgid "E-book options" msgstr "" @@ -2780,6 +2935,54 @@ msgstr "" msgid "Catalog" msgstr "" +#: +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +msgid "'Don't include this book' tag:" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:70 +msgid "'Mark this book as read' tag:" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:71 +msgid "Additional note tag prefix:" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "" +"Regex tips:\n" +"- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], e.g., [Amazon Freebie]\n" +"- A regex pattern of a single dot excludes all genre tags, generating no Genre Section" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 +msgid "Include 'Titles' Section" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +msgid "Include 'Recently Added' Section" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 +msgid "Sort numbers as text" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 +msgid "Tab template for catalog.ui" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:36 msgid "For settings that cannot be specified in this dialog, use the values saved in a previous conversion (if they exist) instead of using the defaults specified in the Preferences" msgstr "" @@ -2805,6 +3008,69 @@ msgstr "" msgid "input" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 +msgid "&Number of Colors:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 +msgid "Disable &normalize" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 +msgid "Keep &aspect ratio" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 +msgid "Disable &Sharpening" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 +msgid "Disable &Trimming" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 +msgid "&Wide" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 +msgid "&Landscape" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 +msgid "&Right to left" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 +msgid "Don't so&rt" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 +msgid "De&speckle" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:99 +msgid "&Disable comic processing" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:111 +msgid "&Output format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:101 +msgid "Disable conversion of images to &black and white" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2814,6 +3080,7 @@ msgid "Debug the conversion process." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:51 msgid "Choose debug folder" msgstr "" @@ -2825,18 +3092,121 @@ msgstr "" msgid "Failed to create debug directory" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:50 +msgid "Choose a folder to put the debug output into. If you specify a folder, calibre will place a lot of debug output into it. This will be useful in understanding the conversion process and figuring out the correct values for conversion parameters like Table of Contents and Chapter Detection." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 +msgid "The debug process outputs the intermediate HTML generated at various stages of the conversion process. This HTML can sometimes serve as a good starting point for hand editing a conversion." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:15 msgid "EPUB Output" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:49 +msgid "Do not &split on page breaks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:50 +msgid "No default &cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:51 +msgid "No &SVG cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:52 +msgid "Preserve cover &aspect ratio" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:53 +msgid "Split files &larger than:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:54 +msgid " KB" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:12 msgid "FB2 Input" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:29 +msgid "Do not insert a &Table of Contents at the beginning of the book." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:14 msgid "FB2 Output" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:47 +msgid "&Inline TOC" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:99 +msgid "Font rescaling wizard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:100 +msgid "" +"This wizard will help you choose an appropriate font size key for your needs. Just enter the base font size of the input document and then enter an input font size. The wizard will display what font size it will be mapped to, by the font rescaling algorithm. You can adjust the algorithm by adjusting the output base font size and font key below. When you find values suitable for you, click OK. \n" +"By default, if the output base font size is zero and/or no font size key is specified, calibre will use the values from the current Output Profile. \n" +"See the User Manual for a discussion of how font size rescaling works. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:103 +msgid "&Output document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:104 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:109 +msgid "&Base font size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:105 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:123 +msgid "Font size &key:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:127 +msgid " pt" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:107 +msgid "Use &default values" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:108 +msgid "&Input document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:111 +msgid "&Font size: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:113 +msgid " will map to size: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:114 +msgid "0.0 pt" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:16 msgid "Look & Feel" msgstr "" @@ -2857,12 +3227,121 @@ msgstr "" msgid "Justify text" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:120 +msgid "&Disable font size rescaling" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:121 +msgid "Base &font size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:124 +msgid "Wizard to help you choose an appropriate font size key" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:126 +msgid "Line &height:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:128 +msgid "Input character &encoding:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:129 +msgid "Remove &spacing between paragraphs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:130 +msgid "Indent size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:131 +msgid "When calibre removes inter paragraph spacing, it automatically sets a paragraph indent, to ensure that paragraphs can be easily distinguished. This option controls the width of that indent."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:132
+msgid " em"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:133
+msgid "Text justification:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:134
+msgid "&Linearize tables"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:135
+msgid "Extra &CSS"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:136
+msgid "&Transliterate unicode characters to ASCII"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:137
+msgid "Insert &blank line"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:138
+msgid "Keep &ligatures"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:19
msgid "LRF Output"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:116
+msgid "Enable &autorotation of wide images"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:117
+msgid "&Wordspace:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:119
+msgid "Minimum para. &indent:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:121
+msgid "Render &tables as images"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:122
+msgid "Text size multiplier for text in rendered tables:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:123
+msgid "Add &header"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:124
+msgid "Header &separation:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:126
+msgid "Header &format:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:127
+msgid "&Embed fonts"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:128
+msgid "&Serif font family:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:129
+msgid "S&ans-serif font family:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:130
+msgid "&Monospaced font family:"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:41
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:114
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:195
msgid "Metadata"
msgstr ""
@@ -2901,6 +3380,86 @@ msgstr ""
msgid " is not a valid picture"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:167
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:405
+msgid "Book Cover"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:168
+msgid "Use cover from &source file"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:169
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:406
+msgid "Change &cover image:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:407
+msgid "Browse for an image to use as the cover of this book."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366
+msgid "&Title: "
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367
+msgid "Change the title of this book"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370
+msgid "&Author(s): "
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:175
+msgid "Author So&rt:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176
+msgid "Change the author(s) of this book. Multiple authors should be separated by a comma"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:177
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:167
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:379
+msgid "&Publisher: "
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:380
+msgid "Ta&gs: "
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:169
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:381
+msgid "Tags categorize the book. This is particularly useful while searching. Markdown is a simple markup language for text files, that allows for advanced formatting. To learn more visit markdown." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:50 +msgid "Do not insert Table of Contents into output text when using markdown" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:51 +msgid "Preserve &spaces" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:16 msgid "TXT Output" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:46 +msgid "&Line ending style:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:48 +msgid "&Maximum line length:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:49 +msgid "Force maximum line lenght" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:50 +msgid "TextLabel" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:51 +msgid "Use a wizard to help construct the XPath expression" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:68 +msgid "Match HTML &tags with tag name:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:69 +msgid "*" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:70 +msgid "a" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:71 +msgid "br" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:72 +msgid "div" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:73 +msgid "h1" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:74 +msgid "h2" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:75 +msgid "h3" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:76 +msgid "h4" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:77 +msgid "h5" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:78 +msgid "h6" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:79 +msgid "hr" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:80 +msgid "span" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:81 +msgid "Having the &attribute:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:82 +msgid "With &value:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:83 +msgid "(A regular expression)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:84 +msgid " For example, to match all h2 tags that have class=\"chapter\", set tag to h2, attribute to class and value to chapter. Leaving attribute blank will match any attribute and leaving value blank will match any value. Setting tag to * will match any tag. To learn more advanced usage of XPath see the XPath Tutorial." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:119 msgid "Cover browser could not be loaded" msgstr "" @@ -3335,10 +4185,66 @@ msgstr "" msgid " Cannot upload books to device there is no more free space available "
msgstr ""
+#:
+#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:75
+msgid "Select available formats and their order for this device"
+msgstr ""
+
+#:
+#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79
+msgid "Use sub directories"
+msgstr ""
+
+#:
+#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:81
+msgid "Save &template:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68
+msgid "Fit &cover to view"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69
+msgid "&Previous"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:70
+msgid "&Next"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog.py:38
msgid "My Books"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69
+#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:287
+msgid "Generate catalog"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:70
+msgid "Generate catalog for {0} books"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71
+msgid "Catalog &format:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:72
+msgid "Catalog &title (existing catalog with the same title will be replaced):"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:73
+msgid "&Send catalog to device automatically"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:74
+msgid "Catalog options"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:40
+msgid "Choose Format"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:33
msgid "Set defaults for conversion of comics (CBR/CBZ files)"
msgstr ""
@@ -3347,6 +4253,22 @@ msgstr ""
msgid "Set options for converting %s"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:92
+msgid "&Title:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:93
+msgid "&Author(s):"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:95
+msgid "&Profile:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comments_dialog_ui.py:41
+msgid "Edit Comments"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:173
msgid "%(plugin_type)s %(plugins)s"
msgstr ""
@@ -3417,153 +4339,547 @@ msgstr ""
msgid "new email address"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:490
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:487
+msgid "Wide"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:488
+msgid "Narrow"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:498
msgid "System port selected"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:491
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:499
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 ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:511
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:519
msgid "Failed to install command line tools."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:514
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:522
msgid "Command line tools installed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:515
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:523
msgid "Command line tools installed in"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:516
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:524
msgid "If you move calibre.app, you have to re-install the command line tools."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:567
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:575
msgid "No valid plugin path"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:568
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:576
msgid "%s is not a valid plugin path"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:571
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:579
msgid "Choose plugin"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:583
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:591
msgid "Plugin cannot be disabled"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:584
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:592
msgid "The plugin: %s cannot be disabled"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:593
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:601
msgid "Plugin not customizable"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:594
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:602
msgid "Plugin: %s does not need customization"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:602
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:610
msgid "Customize"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:640
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648
msgid "Cannot remove builtin plugin"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649
msgid " cannot be removed. It is a builtin plugin. Try disabling it instead."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:672
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:680
msgid "You must select a column to delete it"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:685
msgid "The selected column is not a custom column"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:678
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:686
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:48
msgid "Are you sure?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:679
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:687
msgid "Do you really want to delete column %s and all its data?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:746
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:754
msgid "Error log:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:753
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:761
msgid "Access log:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:781
-#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:349
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:789
+#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:350
msgid "Failed to start content server"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:805
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:813
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:587
msgid "Select location for books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:812
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:820
msgid "Invalid size"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:813
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821
msgid "The size %s is invalid. must be of the form widthxheight"
msgstr ""
-#: /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:878
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:883
msgid "Invalid database location"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:869
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:879
msgid "Invalid database location "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:870
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:880
msgid " Remember to leave calibre running as the server only runs as long as calibre is running.\n" +" Stanza should see your calibre collection automatically. If not, try adding the URL http://myhostname:8080 as a new catalog in the Stanza reader on your iPhone. Here myhostname should be the fully qualified hostname or the IP address of the computer calibre is running on." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:617 +msgid "Here you can customize the behavior of Calibre by controlling what plugins it uses." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:618 +msgid "Enable/&Disable plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:619 +msgid "&Customize plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:620 +msgid "&Remove plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:621 +msgid "Add new plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:622 +msgid "Plugin &file:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:624 +msgid "&Add" +msgstr "" + #: #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:125 msgid "Create Tag-based Column" @@ -3708,6 +5024,68 @@ msgstr "" msgid "The lookup name must be lower case and cannot contain \":\"s or spaces" msgstr "" +#: +#: /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 "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:102 +msgid "&Lookup name" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:103 +msgid "Column &heading" +msgstr "" + +#: +#: /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 "" + +#: +#: /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 "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:106 +msgid "Column &type" +msgstr "" + +#: +#: /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 "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:108 +msgid "" +" Date format. Use 1-4 'd's for day, 1-4 'M's for month, and 2 or 4 'y's for year. \n" +"For example:\n" +"
calibre can find metadata for your books from two locations: Google Books and isbndb.com. To use isbndb.com you must sign up for a free account and enter your access key below." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +msgid "&Access Key:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 +msgid "Fetch" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 +msgid "Matches" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 +msgid "Select the book that most closely matches your copy from the list below" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Download &social metadata (tags/rating/etc.) for the selected book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:92 +msgid "Overwrite author and title with author and title of selected book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 +msgid "Details of job" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:44 +msgid "Active Jobs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:45 +msgid "&Stop selected job" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:46 +msgid "Show job &details" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:47 +msgid "Stop &all jobs" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:24 msgid "Editing meta information for %d books" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +msgid "Edit Meta information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 +msgid "A&utomatically set author sort" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 +msgid "Author s&ort: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 +msgid "Specify how the author(s) of this book should be sorted. For example Charles Dickens should be sorted as Dickens, Charles." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 +msgid "&Rating:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 +msgid "Rating of this book. 0-5 stars" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:165 +msgid "No change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:378 +msgid " stars" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:168 +msgid "Add ta&gs: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:383 +msgid "Open Tag Editor" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:172 +msgid "&Remove tags:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:173 +msgid "Comma separated list of tags to remove from the books. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:177 +msgid "Remove &format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:178 +msgid "&Swap title and author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:179 +msgid "" +"Selected books will be automatically numbered,\n" +"in the order you selected them.\n" +"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 "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:183 +msgid "Automatically number books in this series" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:184 +msgid "" +"Remove stored conversion settings for the selected books.\n" +"\n" +"Future conversion of these books will use the default settings." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:187 +msgid "Remove &stored conversion settings for the selected books" +msgstr "" + +#: /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 "" + +#: /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 "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 msgid "Not a valid picture" msgstr "" @@ -3892,6 +5443,86 @@ msgstr "" msgid "Could not open %s. Is it being used by another program?" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 +msgid "Edit Meta Information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 +msgid "Meta information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:368 +msgid "Swap the author and title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 +msgid "Author S&ort: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 +msgid "Automatically create the author sort entry based on the current author entry" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 +msgid "Remove unused series (Series that have no books)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:389 +msgid "IS&BN:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 +msgid "Publishe&d:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +msgid "dd MMM yyyy" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:394 +msgid "&Date:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:395 +msgid "&Comments" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:396 +msgid "&Fetch metadata from server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 +msgid "Available Formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:398 +msgid "Add a new format for this book to the database" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:400 +msgid "Remove the selected formats for this book from the database." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:402 +msgid "Set the cover for the book from the selected format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:404 +msgid "Update metadata from the metadata in the selected format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:409 +msgid "Reset cover to default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:411 +msgid "Download &cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:56 +msgid "Password needed" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress.py:52 msgid "Aborting..." msgstr "" @@ -3900,6 +5531,41 @@ msgstr "" msgid "The current saved search will be permanently deleted. Are you sure?" msgstr "" +#: +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:83 +msgid "Saved Search Editor" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:84 +msgid "Saved Search: " +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:85 +msgid "Select a saved search to edit" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:86 +msgid "Delete this selected saved search" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:88 +msgid "Enter a new saved search name." +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:89 +msgid "Add the new saved search" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:91 +msgid "Change the contents of the saved search" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:119 msgid "Need username and password" msgstr "" @@ -3925,6 +5591,7 @@ msgid "Last downloaded" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:192 msgid "Schedule news download" msgstr "" @@ -3944,6 +5611,182 @@ msgstr "" msgid "Cannot download news as no internet connection is active" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:278 +msgid "Recipes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:194 +msgid "Download all scheduled recipes at once" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:195 +msgid "Download &all scheduled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:196 +msgid "blurb" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:197 +msgid "&Schedule for download:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:208 +msgid "Every " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:199 +msgid "day" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:200 +msgid "Monday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:201 +msgid "Tuesday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:202 +msgid "Wednesday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:203 +msgid "Thursday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:204 +msgid "Friday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:205 +msgid "Saturday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:206 +msgid "Sunday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:207 +msgid "at" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:209 +msgid "Interval at which to download this recipe. A value of zero means that the recipe will be downloaded every hour." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:263 +msgid " days" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 +msgid "&Account" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:215 +msgid "For the scheduling to work, you must leave calibre running." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:216 +msgid "&Schedule" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 +msgid "Add &title as tag" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 +msgid "&Extra tags:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 +msgid "&Advanced" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:220 +msgid "&Download now" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:221 +msgid "Delete downloaded news older than the specified number of days. Set to zero to disable." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:223 +msgid "Delete downloaded news older than " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:36 +msgid "contains" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:37 +msgid "The text to search for. It is interpreted as a regular expression." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:38 +msgid " Negate this match. That is, only return results that do not match this query." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:39 +msgid "Negate" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:113 +msgid "Advanced Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:114 +msgid "Find entries that have..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:115 +msgid "&All these words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:116 +msgid "This exact &phrase:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:117 +msgid "&One or more of these words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:118 +msgid "But dont show entries that have..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:119 +msgid "Any of these &unwanted words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:120 +msgid "What kind of match to use:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:121 +msgid "Contains: the word or phrase matches anywhere in the metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:122 +msgid "Equals: the word or phrase must match an entire metadata field" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:123 +msgid "Regular expression: the expression must match anywhere in the metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:124 +msgid " " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:125 +msgid "See the User Manual for more help" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 msgid "Choose formats" msgstr "" @@ -3966,6 +5809,54 @@ msgstr "" msgid "The current tag category will be permanently deleted. Are you sure?" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:153 +msgid "User Categories Editor" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:154 +msgid "A&vailable items" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:155 +msgid "Apply tags to current tag category" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:157 +msgid "A&pplied items" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:158 +msgid "Unapply (remove) tag from current tag category" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:160 +msgid "Category name: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:161 +msgid "Select a category to edit" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:162 +msgid "Delete this selected tag category" +msgstr "" + +#: /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 "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:165 +msgid "Add the new category" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:167 +msgid "Category filter: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:168 +msgid "Select the content kind of the new category" +msgstr "" + #: /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 msgid "Are your sure?" @@ -3975,6 +5866,42 @@ msgstr "" msgid "The following tags are used by one or more books. Are you certain you want to delete them?" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:123 +msgid "Tag Editor" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:124 +msgid "A&vailable tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:125 +msgid "Delete tag from database. This will unapply the tag from all books and then remove it from the database." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:127 +msgid "Apply tag to current book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:129 +msgid "A&pplied tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:130 +msgid "Unapply (remove) tag from current book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:132 +msgid "&Add tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:133 +msgid "If the tag you want is not in the available list, you can add it here. Accepts a comma separated list of tags." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:134 +msgid "Add tag to available tags and apply it to current book" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:441 msgid "Item is blank" @@ -4013,6 +5940,39 @@ msgstr "" 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 "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:72 +msgid "Items in use" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:73 +msgid "Delete item from database. This will unapply the item from all books and then remove it from the database." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:75 +msgid "Rename the item in every book where it is used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:77 +msgid "Ctrl+S" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:51 +msgid "Test email settings" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:52 +msgid "Send test mail from %s to:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:115 +msgid "&Test" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:127 msgid "No recipe selected" msgstr "" @@ -4027,6 +5987,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:150 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:255 msgid "Switch to Advanced mode" msgstr "" @@ -4095,137 +6056,297 @@ msgstr "" msgid "Choose a recipe file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:278 -msgid "Recipes" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:248 +msgid "Add custom news source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:249 +msgid "Available user recipes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:250 +msgid "Add/Update &recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:251 +msgid "&Remove recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:252 +msgid "&Share recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:253 +msgid "Customize &builtin recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:254 +msgid "&Load recipe from file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:256 +msgid "" +" \n" +"Create a basic news recipe, by adding RSS feeds to it. Set a regular expression pattern to use when trying to guess ebook metadata from filenames. \n" +"A reference on the syntax of regular expressions is available. \n" +"Use the Test functionality below to test your regular expression on a few sample filenames. The group names for the various metadata entries are documented in tooltips. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:114 +msgid "Regular &expression" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:116 +msgid "File &name:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:118 +msgid "Title:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:119 +msgid "Regular expression (?P<title>)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:96 +msgid "No match" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:121 +msgid "Authors:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:122 +msgid "Regular expression (?PSearch the list of books by title, author, publisher, tags, comments, etc. For help see the: User Manual Could not convert: %s It is a DRMed book. You must first remove the DRM using third party tools."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:507
+#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:508
msgid "Recipe Disabled"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:522
+#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:523
msgid "Failed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:562
+#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:563
msgid "is the result of the efforts of many volunteers from all over the world. If you find it useful, please consider donating to support its development."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:587
+#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:588
msgid "There are active jobs. Are you sure you want to quit?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:590
+#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:591
msgid ""
" is communicating with the device! Congratulations!You have successfully setup calibre. Press the %s button to apply your settings." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:49 +msgid "Demo videosVideos demonstrating the various features of calibre are available online." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:50 +msgid "User ManualA User Manual is also available online." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:44 +msgid "calibre can automatically send books by email to your Kindle. To do that you have to setup email delivery below. The easiest way is to setup a free gmail account and click the Use gmail button below. You will also have to register your gmail address in your Amazon account." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:45 +msgid "&Kindle email:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:52 +msgid "Choose your &language:" +msgstr "" + +#: /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 "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:54 +msgid "&Change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:55 +msgid "If you have an existing calibre library, it will be copied to the new location. If a calibre library already exists at the new location, calibre will switch to using it." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 msgid "Using: %s:%s@%s:%s and %s encryption" msgstr "" @@ -5236,6 +7826,90 @@ msgstr "" msgid "You must set the username and password for the mail server." msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:108 +msgid "Send email &from:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:109 +msgid " This is what will be present in the From: field of emails sent by calibre. A mail server is useful if the service you are sending mail to only accepts email from well know mail services." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:111 +msgid "Mail &Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +msgid "calibre can optionally use a server to send mail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:113 +msgid "&Hostname:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +msgid "The hostname of your mail server. For e.g. smtp.gmail.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +msgid "&Port:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 +msgid "The port your mail server listens for connections on. The default is 25" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +msgid "Your username on the mail server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 +msgid "Your password on the mail server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +msgid "&Show" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +msgid "&Encryption:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 +msgid "Use TLS encryption when connecting to the mail server. This is the most common." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +msgid "&TLS" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +msgid "Use SSL encryption when connecting to the mail server." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +msgid "&SSL" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +msgid "Use Gmail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +msgid "&Test email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:44 +msgid " If you use the Stanza e-book app on your iPhone/iTouch, you can access your calibre book collection directly on the device. To do this you have to turn on the calibre content server." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:45 +msgid "Turn on the &content server" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/caches.py:275 msgid "today" msgstr "" |