diff --git a/resources/images/format-text-bold.png b/resources/images/format-text-bold.png new file mode 100644 index 0000000000..55aeed8684 Binary files /dev/null and b/resources/images/format-text-bold.png differ diff --git a/resources/images/format-text-italic.png b/resources/images/format-text-italic.png new file mode 100644 index 0000000000..35f75e81ea Binary files /dev/null and b/resources/images/format-text-italic.png differ diff --git a/resources/images/format-text-strikethrough.png b/resources/images/format-text-strikethrough.png new file mode 100644 index 0000000000..98cddaa6cb Binary files /dev/null and b/resources/images/format-text-strikethrough.png differ diff --git a/resources/images/format-text-underline.png b/resources/images/format-text-underline.png new file mode 100644 index 0000000000..1d27828320 Binary files /dev/null and b/resources/images/format-text-underline.png differ diff --git a/src/calibre/gui2/comments_editor.py b/src/calibre/gui2/comments_editor.py index 8a19b657a9..8438fa3cfc 100644 --- a/src/calibre/gui2/comments_editor.py +++ b/src/calibre/gui2/comments_editor.py @@ -9,7 +9,8 @@ __docformat__ = 'restructuredtext en' from lxml import html from lxml.html import soupparser -from PyQt4.Qt import QApplication, QFontInfo, QPalette +from PyQt4.Qt import QApplication, QFontInfo, QPalette, QSize, QWidget, \ + QToolBar, QVBoxLayout, QAction, QIcon from PyQt4.QtWebKit import QWebView from calibre.ebooks.chardet import xml_to_unicode @@ -17,6 +18,22 @@ from calibre import xml_replace_entities class EditorWidget(QWebView): + def __init__(self, parent=None): + QWebView.__init__(self, parent) + + for name, icon, text, checkable in [ + ('bold', 'format-text-bold', _('Bold'), True), + ('italic', 'format-text-italic', _('Italic'), True), + ('underline', 'format-text-underline', _('Underline'), True), + ('strikethrough', 'format-text-underline', _('Underline'), True), + ]: + ac = QAction(QIcon(I(icon+'.png')), text, self) + ac.setCheckable(checkable) + setattr(self, 'action_'+name, ac) + + def sizeHint(self): + return QSize(150, 150) + @dynamic_property def html(self): @@ -63,9 +80,31 @@ class EditorWidget(QWebView): return property(fget=fget, fset=fset) + +class Editor(QWidget): + + def __init__(self, parent=None): + QWidget.__init__(self, parent) + self.toolbar = QToolBar(self) + self.editor = EditorWidget(self) + self._layout = QVBoxLayout(self) + self.setLayout(self._layout) + self._layout.setContentsMargins(0, 0, 0, 0) + self._layout.addWidget(self.toolbar) + self._layout.addWidget(self.editor) + + @dynamic_property + def html(self): + def fset(self, v): + self.editor.html = v + return property(fget=lambda self:self.editor.html, fset=fset) + + + if __name__ == '__main__': app = QApplication([]) - w = EditorWidget() + w = Editor() + w.resize(800, 600) w.show() # testing {{{ @@ -101,4 +140,4 @@ if __name__ == '__main__': #print w.html.encode('utf-8') # }}} - print w.html + #print w.html diff --git a/src/calibre/translations/calibre.pot b/src/calibre/translations/calibre.pot index 350cb14bca..5f60f09b9c 100644 --- a/src/calibre/translations/calibre.pot +++ b/src/calibre/translations/calibre.pot @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: calibre 0.7.27\n" -"POT-Creation-Date: 2010-11-06 09:35+MDT\n" -"PO-Revision-Date: 2010-11-06 09:35+MDT\n" +"POT-Creation-Date: 2010-11-10 07:14+MST\n" +"PO-Revision-Date: 2010-11-10 07:14+MST\n" "Last-Translator: Automatically generated\n" "Language-Team: LANGUAGE\n" "MIME-Version: 1.0\n" @@ -72,9 +72,9 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:611 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:817 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:819 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:616 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:822 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:824 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:911 @@ -273,7 +273,7 @@ msgid "Change the way calibre behaves" msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:734 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:208 msgid "Add your own columns" msgstr "" @@ -1881,8 +1881,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:605 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:102 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 @@ -1916,8 +1916,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:39 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:206 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:104 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:325 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1131 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:178 @@ -2213,7 +2213,7 @@ msgstr "" msgid "All articles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:259 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:262 msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "" @@ -3140,7 +3140,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:739 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:741 msgid "Not allowed" msgstr "" @@ -3207,7 +3207,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:683 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:685 #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:189 msgid "Failed" msgstr "" @@ -3878,11 +3878,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:403 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:120 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:137 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:320 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1117 @@ -3891,10 +3891,10 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:52 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:124 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:24 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:117 @@ -3925,7 +3925,7 @@ msgstr "" msgid "None" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:404 msgid "Double-click to open Book Details window" msgstr "" @@ -4146,6 +4146,19 @@ msgstr "" msgid "Tab template for catalog.ui" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:25 +msgid "Bold" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:26 +msgid "Italic" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:28 +msgid "Underline" +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 "" @@ -4613,6 +4626,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 msgid "&Series:" msgstr "" @@ -4798,7 +4812,7 @@ msgid "Options specific to the input format." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:53 msgid "Dialog" @@ -4988,8 +5002,8 @@ msgid "Force maximum line length" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:72 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:54 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:62 @@ -5400,15 +5414,15 @@ msgstr "" msgid "&Paste from clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:80 msgid "Fit &cover within view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:81 msgid "&Previous" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:82 msgid "&Next" msgstr "" @@ -5565,6 +5579,7 @@ msgid "Set options for converting %s" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:211 msgid "&Title:" msgstr "" @@ -5813,40 +5828,40 @@ msgid "Book %d:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:274 -msgid "You can destroy your library using this feature. Changes are permanent. There is no undo function. This feature is experimental, and there may be bugs. You are strongly encouraged to back up your library before proceeding.

Search and replace in text fields using character matching or regular expressions. " +msgid "You can destroy your library using this feature. Changes are permanent. There is no undo function. You are strongly encouraged to back up your library before proceeding.

Search and replace in text fields using character matching or regular expressions. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:282 msgid "In character mode, the field is searched for the entered search text. The text is replaced by the specified replacement text everywhere it is found in the specified field. After replacement is finished, the text can be changed to upper-case, lower-case, or title-case. If the case-sensitive check box is checked, the search text must match exactly. If it is unchecked, the search text will match both upper- and lower-case letters" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:293 msgid "In regular expression mode, the search text is an arbitrary python-compatible regular expression. The replacement text can contain backreferences to parenthesized expressions in the pattern. The search is not anchored, and can match and replace multiple times on the same string. The modification functions (lower-case etc) are applied to the matched text, not to the field as a whole. The destination box specifies the field where the result after matching and replacement is to be assigned. You can replace the text in the field, or prepend or append the matched text. See this reference for more information on python's regular expressions, and in particular the 'sub' function." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:436 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:438 msgid "You must specify a destination when source is a composite field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:536 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:631 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:633 msgid "Search/replace invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:531 msgid "Authors cannot be set to the empty string. Book title %s not processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:539 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:632 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:634 msgid "Search pattern is invalid: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:669 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:671 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." @@ -6071,7 +6086,7 @@ msgid "Your test:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 -msgid "&Search and replace (experimental)" +msgid "&Search and replace" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:91 @@ -6570,56 +6585,92 @@ msgstr "" msgid "Negate" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:198 msgid "Advanced Search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 msgid "Find entries that have..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 msgid "&All these words:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 msgid "This exact &phrase:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 msgid "&One or more of these words:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 msgid "But dont show entries that have..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 msgid "Any of these &unwanted words:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 msgid "What kind of match to use:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 msgid "Contains: the word or phrase matches anywhere in the metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 msgid "Equals: the word or phrase must match an entire metadata field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 msgid "Regular expression: the expression must match anywhere in the metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:129 -msgid " " +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:209 +msgid "See the User Manual for more help" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:130 -msgid "See the User Manual for more help" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:210 +msgid "A&dvanced Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:212 +msgid "Enter the title." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:213 +msgid "&Author:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:215 +msgid "Ta&gs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:216 +msgid "Enter an author's name. Only one author can be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:217 +msgid "Enter a series name, without an index. Only one series name can be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:218 +msgid "Enter tags separated by spaces" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:219 +msgid "&Clear" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:220 +msgid "Search only in specific fields:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:221 +msgid "Titl&e/Author/Series ..." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 @@ -7231,35 +7282,39 @@ msgstr "" msgid "Books display will be restricted to those matching the selected saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:170 +msgid "Shift+Ctrl+F" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:173 msgid "Advanced search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:178 msgid "

Search the list of books by title, author, publisher, tags, comments, etc.

Words separated by spaces are ANDed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:181 msgid "&Go!" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:187 msgid "Do Quick Search (you can also press the Enter key)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:193 msgid "Reset Quick Search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:205 msgid "Copy current search text (instead of search name)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:211 msgid "Save current search under the name shown in the box" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:217 msgid "Delete current saved search" msgstr "" @@ -7316,47 +7371,47 @@ msgstr "" msgid "Double click to edit me

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:146 msgid "Hide column %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:151 msgid "Sort on %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 msgid "Ascending" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:155 msgid "Descending" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 msgid "Change text alignment for %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:169 msgid "Left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:169 msgid "Right" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Center" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:187 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:189 msgid "Show column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:201 msgid "Restore default layout" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 msgid "Dropping onto a device is not supported. First add the book to the calibre library." msgstr "" @@ -9027,7 +9082,7 @@ msgid "Options to customize the ebook viewer" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:704 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 msgid "Remember last used window size" msgstr "" @@ -9197,63 +9252,63 @@ msgstr "" msgid "No matches found for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:485 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:521 msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 msgid "Bookmark #%d" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:556 msgid "Add bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:557 msgid "Enter title for bookmark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:563 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:567 msgid "Manage Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:604 msgid "Loading ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:612 msgid "DRM Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:609 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 msgid "

This book is protected by DRM" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:617 msgid "Could not open ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:691 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:695 msgid "Options to control the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:702 msgid "If specified, viewer window will try to come to the front when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:701 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 msgid "If specified, viewer window will try to open full screen when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:710 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:712 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:716 msgid "" "%prog [options] file\n" "\n"