Auto populate author sort field in conversion dialog when author is changed. Add command line option to content server to specify the path to the library to be served

This commit is contained in:
Kovid Goyal 2009-12-31 10:50:45 -07:00
parent 928f7b8db8
commit dc59842f69
4 changed files with 233 additions and 197 deletions

View File

@ -6,14 +6,14 @@ __license__ = 'GPL v3'
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>' __copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en' __docformat__ = 'restructuredtext en'
import os, uuid import os, uuid, re
from PyQt4.Qt import QPixmap, SIGNAL from PyQt4.Qt import QPixmap, SIGNAL
from calibre.gui2 import choose_images, error_dialog from calibre.gui2 import choose_images, error_dialog
from calibre.gui2.convert.metadata_ui import Ui_Form from calibre.gui2.convert.metadata_ui import Ui_Form
from calibre.ebooks.metadata import authors_to_string, string_to_authors, \ from calibre.ebooks.metadata import authors_to_string, string_to_authors, \
MetaInformation MetaInformation, authors_to_sort_string
from calibre.ebooks.metadata.opf2 import metadata_to_opf from calibre.ebooks.metadata.opf2 import metadata_to_opf
from calibre.ptempfile import PersistentTemporaryFile from calibre.ptempfile import PersistentTemporaryFile
from calibre.gui2.convert import Widget from calibre.gui2.convert import Widget
@ -53,8 +53,16 @@ class MetadataWidget(Widget, Ui_Form):
self.initialize_options(get_option, get_help, db, book_id) self.initialize_options(get_option, get_help, db, book_id)
self.connect(self.cover_button, SIGNAL("clicked()"), self.select_cover) self.connect(self.cover_button, SIGNAL("clicked()"), self.select_cover)
def deduce_author_sort(self, *args):
au = unicode(self.author.currentText())
au = re.sub(r'\s+et al\.$', '', au)
authors = string_to_authors(au)
self.author_sort.setText(authors_to_sort_string(authors))
def initialize_metadata_options(self): def initialize_metadata_options(self):
self.initialize_combos() self.initialize_combos()
self.author.editTextChanged.connect(self.deduce_author_sort)
mi = self.db.get_metadata(self.book_id, index_is_id=True) mi = self.db.get_metadata(self.book_id, index_is_id=True)
self.title.setText(mi.title) self.title.setText(mi.title)

View File

@ -853,14 +853,20 @@ def stop_threaded_server(server):
server.thread = None server.thread = None
def option_parser(): def option_parser():
return config().option_parser('%prog '+ _('[options]\n\nStart the calibre content server.')) parser = config().option_parser('%prog '+ _('[options]\n\nStart the calibre content server.'))
parser.add_option('--with-library', default=None,
help=_('Path to the library folder to serve with the content server'))
return parser
def main(args=sys.argv): def main(args=sys.argv):
parser = option_parser() parser = option_parser()
opts, args = parser.parse_args(args) opts, args = parser.parse_args(args)
cherrypy.log.screen = True cherrypy.log.screen = True
from calibre.utils.config import prefs from calibre.utils.config import prefs
db = LibraryDatabase2(prefs['library_path']) if opts.with_library is None:
opts.with_library = prefs['library_path']
db = LibraryDatabase2(opts.with_library)
server = LibraryServer(db, opts) server = LibraryServer(db, opts)
server.start() server.start()
return 0 return 0

View File

@ -5,8 +5,8 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre 0.6.31\n" "Project-Id-Version: calibre 0.6.31\n"
"POT-Creation-Date: 2009-12-27 16:02+MST\n" "POT-Creation-Date: 2009-12-31 10:50+MST\n"
"PO-Revision-Date: 2009-12-27 16:02+MST\n" "PO-Revision-Date: 2009-12-31 10:50+MST\n"
"Last-Translator: Automatically generated\n" "Last-Translator: Automatically generated\n"
"Language-Team: LANGUAGE\n" "Language-Team: LANGUAGE\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -103,9 +103,9 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:121
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:128
#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:126 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:134
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:548 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:548
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:557 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:557
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:775 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:775
@ -132,7 +132,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/server.py:645 #: /home/kovid/work/calibre/src/calibre/library/server.py:645
#: /home/kovid/work/calibre/src/calibre/library/server.py:717 #: /home/kovid/work/calibre/src/calibre/library/server.py:717
#: /home/kovid/work/calibre/src/calibre/library/server.py:764 #: /home/kovid/work/calibre/src/calibre/library/server.py:764
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 #: /home/kovid/work/calibre/src/calibre/utils/localization.py:108
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77
@ -389,6 +389,10 @@ msgstr ""
msgid "Comma separated list of directories to send e-books to on the device. The first one that exists will be used" msgid "Comma separated list of directories to send e-books to on the device. The first one that exists will be used"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/binatone/driver.py:17
msgid "Communicate with the Binatone Readme eBook reader."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:12 #: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:12
msgid "Communicate with the Blackberry smart phone." msgid "Communicate with the Blackberry smart phone."
msgstr "" msgstr ""
@ -407,7 +411,7 @@ msgstr ""
msgid "Communicate with the Cybook Opus eBook reader." msgid "Communicate with the Cybook Opus eBook reader."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:23 #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24
msgid "Communicate with the EB600 eBook reader." msgid "Communicate with the EB600 eBook reader."
msgstr "" msgstr ""
@ -427,6 +431,10 @@ msgstr ""
msgid "Communicate with the BOOX eBook reader." msgid "Communicate with the BOOX eBook reader."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:17
msgid "Communicate with the Hanvon N520 eBook reader."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:16 #: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:16
msgid "Communicate with the IRex Iliad eBook reader." msgid "Communicate with the IRex Iliad eBook reader."
msgstr "" msgstr ""
@ -576,7 +584,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:853 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:853
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1065 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1065
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1069 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1069
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1403 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1403
@ -1344,7 +1352,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1041 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:1041
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1101 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:1101
#: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:96
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132
msgid "Tags" msgid "Tags"
msgstr "" msgstr ""
@ -1352,7 +1360,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:171
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:360
#: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:95
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132
msgid "Series" msgid "Series"
msgstr "" msgstr ""
@ -2067,7 +2075,7 @@ msgid "Limit max simultaneous jobs to number of CPUs"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:127 #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:127
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:410 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439
msgid "Copied" msgid "Copied"
msgstr "" msgstr ""
@ -2325,9 +2333,9 @@ msgstr ""
#: /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: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:269
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:270 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:270
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:332
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:334 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:334
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:336 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:340
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:342
#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:74 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:74
#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:79
msgid "..." msgid "..."
@ -2573,33 +2581,33 @@ msgstr ""
msgid "Set the metadata. The output file will contain as much of this metadata as possible." msgid "Set the metadata. The output file will contain as much of this metadata as possible."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:152 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:160
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:99
msgid "Choose cover for " msgid "Choose cover for "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:159 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:167
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:106 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:106
msgid "Cannot read" msgid "Cannot read"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:160 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:168
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:107
msgid "You do not have permission to read the file: " msgid "You do not have permission to read the file: "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:168 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:176
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:175 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:183
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115
msgid "Error reading file" msgid "Error reading file"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:169 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:177
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116
msgid "<p>There was an error reading from file: <br /><b>" msgid "<p>There was an error reading from file: <br /><b>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:176 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:184
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124
msgid " is not a valid picture" msgid " is not a valid picture"
msgstr "" msgstr ""
@ -2795,7 +2803,7 @@ msgid "RB Output"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1513 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1510
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "" msgstr ""
@ -3300,7 +3308,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:350 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:350
#: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:93
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132
msgid "Formats" msgid "Formats"
msgstr "" msgstr ""
@ -3403,7 +3411,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:475 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:475
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:819 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:819
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1186 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1183
#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53
msgid "Error" msgid "Error"
msgstr "" msgstr ""
@ -3473,12 +3481,12 @@ msgid "Access log:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:674 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:674
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:635 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:634
msgid "Failed to start content server" msgid "Failed to start content server"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:698 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:698
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:520 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:549
msgid "Select location for books" msgid "Select location for books"
msgstr "" msgstr ""
@ -3612,7 +3620,7 @@ msgid "&Saving books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:499 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:499
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:368 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:173 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:173
msgid "Preferences" msgid "Preferences"
msgstr "" msgstr ""
@ -4067,7 +4075,7 @@ msgid "Choose formats for "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:947 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:944
msgid "Books" msgid "Books"
msgstr "" msgstr ""
@ -4967,135 +4975,135 @@ msgstr ""
msgid "try deleting the file" msgid "try deleting the file"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:333 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:331
msgid "calibre" msgid "calibre"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:335 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:333
msgid "Advanced search" msgid "Advanced search"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:337 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:335
msgid "Alt+S" msgid "Alt+S"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:338 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:336
msgid "&Search:" msgid "&Search:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:339 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:337
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:338
msgid "<p>Search the list of books by title, author, publisher, tags, comments, etc.<br><br>Words separated by spaces are ANDed" msgid "<p>Search the list of books by title, author, publisher, tags, comments, etc.<br><br>Words separated by spaces are ANDed"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:341 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:339
msgid "Reset Quick Search" msgid "Reset Quick Search"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:343 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:341
msgid "Match any"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:344
msgid "Match all"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:345
msgid "Sort by &popularity" msgid "Sort by &popularity"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:346 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:342
msgid "Match any"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:343
msgid "Match all"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:344
msgid "Add books" msgid "Add books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:345
msgid "A" msgid "A"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:348 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:346
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:349 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:347
msgid "Remove books" msgid "Remove books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:350 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:348
msgid "Del" msgid "Del"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:351 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:349
msgid "Edit meta information" msgid "Edit meta information"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:352 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:350
msgid "E" msgid "E"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:353 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:351
msgid "Send to device" msgid "Send to device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:352
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:304 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:304
msgid "Save to disk" msgid "Save to disk"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:353
msgid "S" msgid "S"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:356 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:354
msgid "Fetch news" msgid "Fetch news"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:355
msgid "F" msgid "F"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:358 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:356
msgid "Convert E-books" msgid "Convert E-books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:357
msgid "C" msgid "C"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:360 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:358
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:314 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:314
msgid "View" msgid "View"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:361 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:359
msgid "V" msgid "V"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:360
msgid "Open containing folder" msgid "Open containing folder"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:361
msgid "Show book details" msgid "Show book details"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:362
msgid "Books by same author" msgid "Books by same author"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:365 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:363
msgid "Books in this series" msgid "Books in this series"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:364
msgid "Books by this publisher" msgid "Books by this publisher"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:367 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:365
msgid "Books with the same tags" msgid "Books with the same tags"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:369 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:367
msgid "Configure calibre" msgid "Configure calibre"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:368
msgid "Ctrl+P" msgid "Ctrl+P"
msgstr "" msgstr ""
@ -5207,11 +5215,11 @@ msgstr ""
msgid "Click to browse books by tags" msgid "Click to browse books by tags"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132
msgid "Authors" msgid "Authors"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132
msgid "Publishers" msgid "Publishers"
msgstr "" msgstr ""
@ -5327,7 +5335,7 @@ msgid "Save to disk in a single directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1621 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1618
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "" msgstr ""
@ -5373,36 +5381,36 @@ msgid "Bad database location"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:471 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:471
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:528 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:557
msgid "Calibre Library" msgid "Calibre Library"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:481 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:481
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1767 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:678 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:677
msgid "Browse by covers" msgid "Browse by covers"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:795 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:792
msgid "Device: " msgid "Device: "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:797 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:794
msgid " detected." msgid " detected."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:821 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:818
msgid "Connected " msgid "Connected "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:833 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:830
msgid "Device database corrupted" msgid "Device database corrupted"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:834 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:831
msgid "" msgid ""
"\n" "\n"
" <p>The database of books on the reader is corrupted. Try the following:\n" " <p>The database of books on the reader is corrupted. Try the following:\n"
@ -5413,277 +5421,281 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:895 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:892
msgid "How many empty books?" msgid "How many empty books?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:896 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:893
msgid "How many empty books should be added?" msgid "How many empty books should be added?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:940 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:937
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:987 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:984
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:948 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:945
msgid "EPUB Books" msgid "EPUB Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:949 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:946
msgid "LRF Books" msgid "LRF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:950 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:947
msgid "HTML Books" msgid "HTML Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:951 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:948
msgid "LIT Books" msgid "LIT Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:952 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:949
msgid "MOBI Books" msgid "MOBI Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:953 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:950
msgid "Text books" msgid "Text books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:954 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:951
msgid "PDF Books" msgid "PDF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:955 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:952
msgid "Comics" msgid "Comics"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:956 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:953
msgid "Archives" msgid "Archives"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:960 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:957
msgid "Supported books" msgid "Supported books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:996 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:993
msgid "Failed to read metadata" msgid "Failed to read metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:997 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:994
msgid "Failed to read metadata from the following" msgid "Failed to read metadata from the following"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1016 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1013
msgid "Cannot delete" msgid "Cannot delete"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1019 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1016
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1507 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1504
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1526 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1523
msgid "No book selected" msgid "No book selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1029 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1026
msgid "Choose formats to be deleted" msgid "Choose formats to be deleted"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1045 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1042
msgid "Choose formats <b>not</b> to be deleted" msgid "Choose formats <b>not</b> to be deleted"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1081 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1078
msgid "The selected books will be <b>permanently deleted</b> and the files removed from your computer. Are you sure?" msgid "The selected books will be <b>permanently deleted</b> and the files removed from your computer. Are you sure?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1108 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1139 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1136
msgid "Cannot download metadata" msgid "Cannot download metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1140 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1137
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1197 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1194
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1230 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1227
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1255 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1252
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1368 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1365
msgid "No books selected" msgid "No books selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1155 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1152
msgid "social metadata" msgid "social metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1157 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1154
msgid "covers" msgid "covers"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1157 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1154
msgid "metadata" msgid "metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1159 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1156
msgid "Downloading %s for %d book(s)" msgid "Downloading %s for %d book(s)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1181 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1178
msgid "Failed to download some metadata" msgid "Failed to download some metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1182 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1179
msgid "Failed to download metadata for the following:" msgid "Failed to download metadata for the following:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1185 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1182
msgid "Failed to download metadata:" msgid "Failed to download metadata:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1196 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1193
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1229 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1226
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1254 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1251
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1254
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1284 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1281
msgid "Error while saving" msgid "Error while saving"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1285 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1282
msgid "There was an error while saving." msgid "There was an error while saving."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1293 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290
msgid "Could not save some books" msgid "Could not save some books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1294 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291
msgid "Click the show details button to see which ones." msgid "Click the show details button to see which ones."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1313 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1310
msgid "Fetching news from " msgid "Fetching news from "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1327 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1324
msgid " fetched." msgid " fetched."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1367 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1364
msgid "Cannot convert" msgid "Cannot convert"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1396 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1393
msgid "Starting conversion of %d book(s)" msgid "Starting conversion of %d book(s)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1507 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1504
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1563 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1560
msgid "Cannot view" msgid "Cannot view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1525 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1547 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1544
msgid "Multiple Books Selected" msgid "Multiple Books Selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1548 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1545
msgid "You are attempting to open %d books. Opening too many books at once can be slow and have a negative effect on the responsiveness of your computer. Once started the process cannot be stopped until complete. Do you wish to continue?" msgid "You are attempting to open %d books. Opening too many books at once can be slow and have a negative effect on the responsiveness of your computer. Once started the process cannot be stopped until complete. Do you wish to continue?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1564 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1561
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1605 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1602
msgid "Cannot configure" msgid "Cannot configure"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1606 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1603
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1646
msgid "No detailed info available" msgid "No detailed info available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1647
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1705 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1702
msgid "Error talking to device" msgid "Error talking to device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1706 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1703
msgid "There was a temporary error talking to the device. Please unplug and reconnect the device and or reboot." msgid "There was a temporary error talking to the device. Please unplug and reconnect the device and or reboot."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1726
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1747 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1754
msgid "Conversion Error" msgid "Conversion Error"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1727
msgid "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must first remove the DRM using third party tools." msgid "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must first remove the DRM using third party tools."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1748 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1740
msgid "Recipe Disabled"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1755
msgid "<b>Failed</b>" msgid "<b>Failed</b>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1776 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1783
msgid "Invalid library location" msgid "Invalid library location"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1777 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1784
msgid "Could not access %s. Using %s as the library." msgid "Could not access %s. Using %s as the library."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1825 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1832
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." 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 "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1850 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1857
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1860
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" Quitting may cause corruption on the device.<br>\n" " Quitting may cause corruption on the device.<br>\n"
" Are you sure you want to quit?" " Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1857 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1864
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1909 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1916
msgid "will keep running in the system tray. To close it, choose <b>Quit</b> in the context menu of the system tray." msgid "will keep running in the system tray. To close it, choose <b>Quit</b> in the context menu of the system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1928 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1935
msgid "<span style=\"color:red; font-weight:bold\">Latest version: <a href=\"%s\">%s</a></span>" msgid "<span style=\"color:red; font-weight:bold\">Latest version: <a href=\"%s\">%s</a></span>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1936 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1943
msgid "Update available" msgid "Update available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1937 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1944
msgid "%s has been updated to version %s. See the <a href=\"http://calibre-ebook.com/whats-new\">new features</a>. Visit the download page?" msgid "%s has been updated to version %s. See the <a href=\"http://calibre-ebook.com/whats-new\">new features</a>. Visit the download page?"
msgstr "" msgstr ""
@ -6138,40 +6150,40 @@ msgstr ""
msgid "Title Case" msgid "Title Case"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:301 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:330
msgid "If you use the WordPlayer e-book app on your Android phone, you can access your calibre book collection directly on the device. To do this you have to turn on the content server." msgid "If you use the WordPlayer e-book app on your Android phone, you can access your calibre book collection directly on the device. To do this you have to turn on the content server."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:305 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:334
msgid "Remember to leave calibre running as the server only runs as long as calibre is running." msgid "Remember to leave calibre running as the server only runs as long as calibre is running."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:307 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:336
msgid "You have to add the URL http://myhostname:8080 as your calibre library in WordPlayer. Here myhostname should be the fully qualified hostname or the IP address of the computer calibre is running on." msgid "You have to add the URL http://myhostname:8080 as your calibre library in WordPlayer. Here myhostname should be the fully qualified hostname or the IP address of the computer calibre is running on."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:384 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:413
msgid "Moving library..." msgid "Moving library..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:400 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:429
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:430
msgid "Failed to move library" msgid "Failed to move library"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:455 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484
msgid "Invalid database" msgid "Invalid database"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:456 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485
msgid "<p>An invalid library already exists at %s, delete it before trying to move the existing library.<br>Error: %s" msgid "<p>An invalid library already exists at %s, delete it before trying to move the existing library.<br>Error: %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:467 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:496
msgid "Could not move library" msgid "Could not move library"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:595 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:624
msgid "welcome wizard" msgid "welcome wizard"
msgstr "" msgstr ""
@ -6719,6 +6731,10 @@ msgid ""
"Start the calibre content server." "Start the calibre content server."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/server.py:858
msgid "Path to the library folder to serve with the content server"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/config.py:48 #: /home/kovid/work/calibre/src/calibre/utils/config.py:48
msgid "" msgid ""
"%sUsage%s: %s\n" "%sUsage%s: %s\n"
@ -6837,14 +6853,18 @@ msgid "English (CY)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:104 #: /home/kovid/work/calibre/src/calibre/utils/localization.py:104
msgid "German (AT)" msgid "English (PK)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105 #: /home/kovid/work/calibre/src/calibre/utils/localization.py:105
msgid "Dutch (NL)" msgid "German (AT)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:106 #: /home/kovid/work/calibre/src/calibre/utils/localization.py:106
msgid "Dutch (NL)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:107
msgid "Dutch (BE)" msgid "Dutch (BE)"
msgstr "" msgstr ""
@ -6878,99 +6898,99 @@ msgstr ""
msgid "Untitled article" msgid "Untitled article"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:18 #: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:21
msgid "Download periodical content from the internet" msgid "Download periodical content from the internet"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:33 #: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:36
msgid "Useful for recipe development. Forces max_articles_per_feed to 2 and downloads at most 2 feeds." msgid "Useful for recipe development. Forces max_articles_per_feed to 2 and downloads at most 2 feeds."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:36 #: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:39
msgid "Username for sites that require a login to access content." msgid "Username for sites that require a login to access content."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:39 #: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:42
msgid "Password for sites that require a login to access content." msgid "Password for sites that require a login to access content."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:43 #: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:46
msgid "Download latest version of builtin recipes" msgid "Do not download latest version of builtin recipes from the calibre server"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:40 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:40
msgid "Unknown News Source" msgid "Unknown News Source"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:513 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:520
msgid "The \"%s\" recipe needs a username and password." msgid "The \"%s\" recipe needs a username and password."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:599 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:606
msgid "Download finished" msgid "Download finished"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:601 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:608
msgid "Failed to download the following articles:" msgid "Failed to download the following articles:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:607 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614
msgid "Failed to download parts of the following articles:" msgid "Failed to download parts of the following articles:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:609 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616
msgid " from " msgid " from "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:611 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:618
msgid "\tFailed links:" msgid "\tFailed links:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:692 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:699
msgid "Could not fetch article. Run with -vv to see the reason" msgid "Could not fetch article. Run with -vv to see the reason"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:713 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:720
msgid "Fetching feeds..." msgid "Fetching feeds..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:718 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:725
msgid "Got feeds from index page" msgid "Got feeds from index page"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:724 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:731
msgid "Trying to download cover..." msgid "Trying to download cover..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:782 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:789
msgid "Starting download [%d thread(s)]..." msgid "Starting download [%d thread(s)]..."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:798 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:805
msgid "Feeds downloaded to %s" msgid "Feeds downloaded to %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:808 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:815
msgid "Could not download cover: %s" msgid "Could not download cover: %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:815 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:827
msgid "Downloading cover from %s" msgid "Downloading cover from %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:941 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:962
msgid "Untitled Article" msgid "Untitled Article"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1012 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1033
msgid "Article downloaded: %s" msgid "Article downloaded: %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1023 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1044
msgid "Article download failed: %s" msgid "Article download failed: %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1040 #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1061
msgid "Fetching feed" msgid "Fetching feed"
msgstr "" msgstr ""

View File

@ -828,13 +828,15 @@ class BasicNewsRecipe(Recipe):
with nested(open(cpath, 'wb'), closing(self.browser.open(cu))) as (cfile, r): with nested(open(cpath, 'wb'), closing(self.browser.open(cu))) as (cfile, r):
cfile.write(r.read()) cfile.write(r.read())
if ext.lower() == 'pdf': if ext.lower() == 'pdf':
from calibre.ebook.metadata.pdf import get_metadata from calibre.ebooks.metadata.pdf import get_metadata
stream = open(cpath, 'rb') stream = open(cpath, 'rb')
mi = get_metadata(stream) mi = get_metadata(stream)
cpath = None cpath = None
if mi.cover_data and mi.cover_data[1]: if mi.cover_data and mi.cover_data[1]:
cpath = os.path.join(self.output_dir, 'cover.png') cpath = os.path.join(self.output_dir,
open(cpath, 'wb').write(mi.cover_data[1]) 'cover.'+mi.cover_data[0])
with open(cpath, 'wb') as f:
f.write(mi.cover_data[1])
self.cover_path = cpath self.cover_path = cpath