mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Merge upstream changes.
This commit is contained in:
commit
75d2291233
@ -2,7 +2,7 @@ __license__ = 'GPL v3'
|
||||
__copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net'
|
||||
__docformat__ = 'restructuredtext en'
|
||||
__appname__ = 'calibre'
|
||||
__version__ = '0.4.115'
|
||||
__version__ = '0.4.116'
|
||||
__author__ = "Kovid Goyal <kovid@kovidgoyal.net>"
|
||||
'''
|
||||
Various run time constants.
|
||||
|
@ -60,7 +60,7 @@ class Book(object):
|
||||
rpath = book_metadata_field("path")
|
||||
id = book_metadata_field("id", formatter=int)
|
||||
sourceid = book_metadata_field("sourceid", formatter=int)
|
||||
size = book_metadata_field("size", formatter=int)
|
||||
size = book_metadata_field("size", formatter=lambda x : int(float(x)))
|
||||
# When setting this attribute you must use an epoch
|
||||
datetime = book_metadata_field("date", formatter=strptime, setter=strftime)
|
||||
|
||||
|
@ -32,7 +32,6 @@ from calibre.ebooks.lrf.html.table import Table
|
||||
from calibre import filename_to_utf8, setup_cli_handlers, __appname__, \
|
||||
fit_image, LoggingInterface, preferred_encoding
|
||||
from calibre.ptempfile import PersistentTemporaryFile
|
||||
from calibre.ebooks.metadata.opf import OPFReader
|
||||
from calibre.devices.interface import Device
|
||||
from calibre.ebooks.lrf.html.color_map import lrs_color
|
||||
from calibre.ebooks.chardet import xml_to_unicode
|
||||
@ -106,6 +105,8 @@ class HTMLConverter(object, LoggingInterface):
|
||||
(re.compile(r'(<style.*?</style>)', re.IGNORECASE|re.DOTALL),
|
||||
strip_style_comments),
|
||||
|
||||
# Remove self closing script tags as they also mess up BeautifulSoup
|
||||
(re.compile(r'(?i)<script[^<>]+?/>'), lambda match: ''),
|
||||
|
||||
]
|
||||
# Fix Baen markup
|
||||
@ -334,7 +335,8 @@ class HTMLConverter(object, LoggingInterface):
|
||||
soup = BeautifulSoup(raw,
|
||||
convertEntities=BeautifulSoup.XHTML_ENTITIES,
|
||||
markupMassage=nmassage)
|
||||
|
||||
else:
|
||||
raise
|
||||
if not self.baen and self.is_baen(soup):
|
||||
self.baen = True
|
||||
self.log_info(_('\tBaen file detected. Re-parsing...'))
|
||||
|
@ -1432,7 +1432,7 @@ class Page(LrsObject, LrsContainer):
|
||||
|
||||
#print "page contents:", pageContent
|
||||
# ObjectList not needed and causes slowdown in SONY LRF renderer
|
||||
p.appendLrfTag(LrfTag("ObjectList", pageContent))
|
||||
#p.appendLrfTag(LrfTag("ObjectList", pageContent))
|
||||
p.appendLrfTag(LrfTag("Link", self.pageStyle.objId))
|
||||
p.appendLrfTag(LrfTag("ParentPageTree", lrfWriter.getPageTreeId()))
|
||||
p.appendTagDict(self.settings)
|
||||
|
@ -101,7 +101,7 @@ class BookHeader(object):
|
||||
if ident == 'TEXTREAD' or self.length < 0xE4 or 0xE8 < self.length:
|
||||
self.extra_flags = 0
|
||||
else:
|
||||
self.extra_flags, = struct.unpack('>L', raw[0xF0:0xF4])
|
||||
self.extra_flags, = struct.unpack('>H', raw[0xF2:0xF4])
|
||||
|
||||
if self.compression_type == 'DH':
|
||||
self.huff_offset, self.huff_number = struct.unpack('>LL', raw[0x70:0x78])
|
||||
|
BIN
src/calibre/gui2/images/news/linux_magazine.png
Normal file
BIN
src/calibre/gui2/images/news/linux_magazine.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 394 B |
@ -219,6 +219,7 @@ class Main(MainWindow, Ui_MainWindow):
|
||||
QObject.connect(self.view_menu.actions()[1], SIGNAL("triggered(bool)"), self.view_specific_format)
|
||||
self.connect(self.action_open_containing_folder, SIGNAL('triggered(bool)'), self.view_folder)
|
||||
self.action_open_containing_folder.setShortcut(Qt.Key_O)
|
||||
self.addAction(self.action_open_containing_folder)
|
||||
self.action_sync.setShortcut(Qt.Key_D)
|
||||
self.action_sync.setMenu(sm)
|
||||
self.action_edit.setMenu(md)
|
||||
|
@ -17,7 +17,7 @@ BZR_PATH = '/var/bzr/code/calibre/trunk'
|
||||
class ChangelogFormatter(blog.LogFormatter):
|
||||
|
||||
supports_tags = True
|
||||
supports_merge_revisions = True
|
||||
supports_merge_revisions = False
|
||||
|
||||
def __init__(self, num_of_versions=20):
|
||||
self.num_of_versions = num_of_versions
|
||||
|
@ -13,7 +13,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-15 18:24+0000\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-17 21:16+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"Generated-By: pygettext.py 1.5\n"
|
||||
|
||||
|
@ -17,7 +17,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-15 18:24+0000\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-17 21:17+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:137
|
||||
|
@ -14,7 +14,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-15 18:24+0000\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-17 21:17+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:137
|
||||
|
@ -14,7 +14,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-15 18:24+0000\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-17 21:17+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"Generated-By: pygettext.py 1.5\n"
|
||||
|
||||
|
@ -14,7 +14,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-15 18:24+0000\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-17 21:16+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:137
|
||||
|
@ -17,7 +17,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-15 18:24+0000\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-17 21:16+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:137
|
||||
|
@ -13,7 +13,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-15 18:24+0000\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-17 21:17+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"Generated-By: pygettext.py 1.5\n"
|
||||
|
||||
|
@ -14,7 +14,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-15 18:24+0000\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-17 21:16+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:137
|
||||
|
@ -15,7 +15,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-15 18:24+0000\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-17 21:17+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"Generated-By: pygettext.py 1.5\n"
|
||||
|
||||
|
@ -14,7 +14,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-15 18:24+0000\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-17 21:17+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:137
|
||||
|
@ -14,7 +14,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-15 18:24+0000\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-17 21:17+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"Generated-By: pygettext.py 1.5\n"
|
||||
|
||||
|
@ -14,7 +14,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-15 18:24+0000\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-17 21:17+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:137
|
||||
|
@ -8,13 +8,13 @@ msgstr ""
|
||||
"Project-Id-Version: calibre\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2008-12-15 02:49+0000\n"
|
||||
"PO-Revision-Date: 2008-12-15 11:28+0000\n"
|
||||
"Last-Translator: Bartosz Kaszubowski <gosimek@gmail.com>\n"
|
||||
"PO-Revision-Date: 2008-12-17 16:54+0000\n"
|
||||
"Last-Translator: Andrzej MoST (Marcin Ostajewski) <Unknown>\n"
|
||||
"Language-Team: Polish <pl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-15 18:24+0000\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-17 21:17+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:137
|
||||
@ -852,6 +852,8 @@ msgstr ""
|
||||
msgid ""
|
||||
"Disable normalize (improve contrast) color range for pictures. Default: False"
|
||||
msgstr ""
|
||||
"Nie zezwalaj na normalizowanie (poprawianie kontrastu) głębi kolorów. "
|
||||
"Domyślne: Fałsz"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/comic/convert_from.py:299
|
||||
msgid "Maintain picture aspect ratio. Default is to fill the screen."
|
||||
@ -993,7 +995,7 @@ msgstr "Przetwarzanie %s"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:388
|
||||
msgid "\tConverting to BBeB..."
|
||||
msgstr ""
|
||||
msgstr "\tKonwersja do BBeB..."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:534
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:547
|
||||
@ -1038,6 +1040,8 @@ msgid ""
|
||||
"Bad table:\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
"Nieprawidłowy spis:\n"
|
||||
"%s"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1789
|
||||
msgid "Table has cell that is too large"
|
||||
@ -1059,7 +1063,7 @@ msgstr "Nie można odczytać z: %s"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1997
|
||||
msgid "Failed to process opf file"
|
||||
msgstr ""
|
||||
msgstr "Nie udało się przetworzyć pliku opf"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:2003
|
||||
msgid ""
|
||||
@ -2673,7 +2677,7 @@ msgstr " gwiazdek"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138
|
||||
msgid "Add Ta&gs: "
|
||||
msgstr "Dodaj ta&gi: "
|
||||
msgstr "Dodaj &etykiety: "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141
|
||||
@ -4070,7 +4074,7 @@ msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:102
|
||||
msgid "&Font options"
|
||||
msgstr ""
|
||||
msgstr "&Opcje czcionki"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:103
|
||||
msgid "Se&rif family:"
|
||||
@ -4094,19 +4098,19 @@ msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:110
|
||||
msgid "S&tandard font:"
|
||||
msgstr ""
|
||||
msgstr "Czcionka pods&tawowa:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:111
|
||||
msgid "Serif"
|
||||
msgstr ""
|
||||
msgstr "Szeryfowa"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:112
|
||||
msgid "Sans-serif"
|
||||
msgstr ""
|
||||
msgstr "Sans-serif"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:113
|
||||
msgid "Monospace"
|
||||
msgstr ""
|
||||
msgstr "Maszynowa"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:114
|
||||
msgid "&User stylesheet"
|
||||
@ -4125,19 +4129,19 @@ msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58
|
||||
msgid "Font options"
|
||||
msgstr ""
|
||||
msgstr "Opcje czcionki"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59
|
||||
msgid "The serif font family"
|
||||
msgstr ""
|
||||
msgstr "Rodzina czcionek szeryfowych"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60
|
||||
msgid "The sans-serif font family"
|
||||
msgstr ""
|
||||
msgstr "Rodzina czcionek sans-serif"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61
|
||||
msgid "The monospaced font family"
|
||||
msgstr ""
|
||||
msgstr "Rodzina czcionek monospace"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62
|
||||
msgid "The standard font size in px"
|
||||
@ -4154,11 +4158,11 @@ msgstr ""
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:47
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:154
|
||||
msgid "Table of Contents"
|
||||
msgstr ""
|
||||
msgstr "Spis treści"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:166
|
||||
msgid "Go to..."
|
||||
msgstr ""
|
||||
msgstr "Przejście do..."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:207
|
||||
msgid "Position in book"
|
||||
@ -4174,23 +4178,23 @@ msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:219
|
||||
msgid "Search for text in book"
|
||||
msgstr ""
|
||||
msgstr "Szukanie tekstu w książce"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:329
|
||||
msgid "Choose ebook"
|
||||
msgstr ""
|
||||
msgstr "Wybierz e-book"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:330
|
||||
msgid "Ebooks"
|
||||
msgstr ""
|
||||
msgstr "E-booki"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:348
|
||||
msgid "Add bookmark"
|
||||
msgstr ""
|
||||
msgstr "Dodaj zakładkę"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:348
|
||||
msgid "Enter title for bookmark:"
|
||||
msgstr ""
|
||||
msgstr "Dodaj tytuł zakładki"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:369
|
||||
msgid "No matches found for: %s"
|
||||
@ -4214,15 +4218,15 @@ msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:493
|
||||
msgid "DRM Error"
|
||||
msgstr ""
|
||||
msgstr "Błąd DRM"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:495
|
||||
msgid "Could not open ebook"
|
||||
msgstr ""
|
||||
msgstr "Nie można otworzyć e-booka"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:496
|
||||
msgid "<b>%s</b><br/><p>%s</p>"
|
||||
msgstr ""
|
||||
msgstr "<b>%s</b><br/><p>%s</p>"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:556
|
||||
msgid "Options to control the ebook viewer"
|
||||
@ -4245,11 +4249,11 @@ msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:150
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
msgstr "Następna strona"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:151
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
msgstr "Poprzednia strona"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:152
|
||||
msgid "Font size larger"
|
||||
@ -4261,15 +4265,15 @@ msgstr "Mniejszy rozmiar czcionki"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:157
|
||||
msgid "Find next"
|
||||
msgstr ""
|
||||
msgstr "Znajdź następny"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:158
|
||||
msgid "Copy to clipboard"
|
||||
msgstr ""
|
||||
msgstr "Skopiuj do schowka"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:159
|
||||
msgid "Preferences"
|
||||
msgstr ""
|
||||
msgstr "Preferencje"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:160
|
||||
msgid "Reference Mode"
|
||||
@ -4277,11 +4281,11 @@ msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:161
|
||||
msgid "Bookmark"
|
||||
msgstr ""
|
||||
msgstr "Zakładka"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:47
|
||||
msgid "Invalid regular expression"
|
||||
msgstr ""
|
||||
msgstr "Nieprawidłowe wyrażenie regularne"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:48
|
||||
msgid "Invalid regular expression: %s"
|
||||
@ -4469,7 +4473,7 @@ msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:346
|
||||
msgid "You must specify at least one book to remove"
|
||||
msgstr ""
|
||||
msgstr "Wybierz co najmniej jedną książkę do usunięcia"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/cli.py:366
|
||||
msgid ""
|
||||
@ -4582,12 +4586,12 @@ msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1144
|
||||
msgid "<p>Copying books to %s<br><center>"
|
||||
msgstr ""
|
||||
msgstr "<p>Kopiowanie książek do %s<br><center>"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1157
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1266
|
||||
msgid "Copying <b>%s</b>"
|
||||
msgstr ""
|
||||
msgstr "Kopiowanie <b>%s</b>"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1237
|
||||
msgid "<p>Migrating old database to ebook library in %s<br><center>"
|
||||
@ -4595,11 +4599,11 @@ msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/database2.py:1283
|
||||
msgid "Compacting database"
|
||||
msgstr ""
|
||||
msgstr "Kompaktowanie bazy danych"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/server.py:139
|
||||
msgid "Password to access your calibre library. Username is "
|
||||
msgstr ""
|
||||
msgstr "Hasło do biblioteki calibre. Nazwa użytkownika to "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/library/server.py:382
|
||||
msgid ""
|
||||
@ -4614,15 +4618,15 @@ msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/parallel.py:787
|
||||
msgid "Job stopped by user"
|
||||
msgstr ""
|
||||
msgstr "Zadanie zatrzymane przez użytkownika"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/utils/config.py:39
|
||||
msgid "%sUsage%s: %s\n"
|
||||
msgstr ""
|
||||
msgstr "%sUżycie%s: %s\n"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/utils/config.py:77
|
||||
msgid "Created by "
|
||||
msgstr ""
|
||||
msgstr "Stworzony przez "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/utils/config.py:524
|
||||
msgid "Path to the database in which books are stored"
|
||||
@ -4642,11 +4646,11 @@ msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/utils/config.py:532
|
||||
msgid "Path to directory in which your library of books is stored"
|
||||
msgstr ""
|
||||
msgstr "Ścieżka do katalogu w którym przechowywana jest biblioteka książek"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/utils/config.py:534
|
||||
msgid "The language in which to display the user interface"
|
||||
msgstr ""
|
||||
msgstr "Język wyświetlania interfejsu użytkownika"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/utils/config.py:538
|
||||
msgid "Read metadata from files"
|
||||
@ -4670,7 +4674,7 @@ msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:68
|
||||
msgid "Failed to negotiate SSH session: "
|
||||
msgstr ""
|
||||
msgstr "Nie udało się wynegocjować sesji SSH: "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:71
|
||||
msgid "Failed to authenticate with server: %s"
|
||||
@ -4699,7 +4703,7 @@ msgstr "Dostosuj silnik pobierania"
|
||||
msgid ""
|
||||
"Timeout in seconds to wait for a response from the server. Default: %default "
|
||||
"s"
|
||||
msgstr ""
|
||||
msgstr "Czas oczekiwania na odpowiedź serwera. Domyślnie: %default sek."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:22
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:450
|
||||
@ -4736,7 +4740,7 @@ msgstr ""
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:30
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458
|
||||
msgid "Do not download CSS stylesheets."
|
||||
msgstr ""
|
||||
msgstr "Nie pobieraj arkuszy styli CSS."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:33
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:88
|
||||
@ -4870,7 +4874,7 @@ msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:684
|
||||
msgid "Trying to download cover..."
|
||||
msgstr ""
|
||||
msgstr "Próba pobrania okładki..."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:737
|
||||
msgid "Starting download [%d thread(s)]..."
|
||||
@ -4943,6 +4947,8 @@ msgid ""
|
||||
"The maximum number of files to download. This only applies to files from <a "
|
||||
"href> tags. Default is %default"
|
||||
msgstr ""
|
||||
"Maksymalna liczba plików do pobrania. Stosowane jedynie do plików z etykiet "
|
||||
"<a href>. Wartość domyślna: %default"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459
|
||||
msgid "Show detailed output information. Useful for debugging"
|
||||
|
@ -14,7 +14,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-15 18:24+0000\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-17 21:17+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:137
|
||||
|
@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: calibre 0.4.55\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2008-12-15 02:49+0000\n"
|
||||
"PO-Revision-Date: 2008-12-15 18:19+0000\n"
|
||||
"Last-Translator: Kovid Goyal <Unknown>\n"
|
||||
"PO-Revision-Date: 2008-12-17 09:35+0000\n"
|
||||
"Last-Translator: Andrew V. Skvortsov <Unknown>\n"
|
||||
"Language-Team: American English <kde-i18n-doc@lists.kde.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-15 18:24+0000\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-17 21:17+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"X-Poedit-Country: RUSSIAN FEDERATION\n"
|
||||
"X-Poedit-Language: Russian\n"
|
||||
@ -1830,11 +1830,11 @@ msgstr "Сбой запуска контент сервера"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:228
|
||||
msgid "Invalid size"
|
||||
msgstr ""
|
||||
msgstr "Неверный размер"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:228
|
||||
msgid "The size %s is invalid. must be of the form widthxheight"
|
||||
msgstr ""
|
||||
msgstr "Размер %s указан неверно. Должен быть задан в виде [ширина]x[высота]"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:270
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:274
|
||||
@ -1966,19 +1966,19 @@ msgstr "&Формат результата"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:381
|
||||
msgid "Normal"
|
||||
msgstr ""
|
||||
msgstr "Обычный"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:382
|
||||
msgid "High"
|
||||
msgstr ""
|
||||
msgstr "Высокий"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:383
|
||||
msgid "Low"
|
||||
msgstr ""
|
||||
msgstr "Низкий"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:384
|
||||
msgid "Job &priority:"
|
||||
msgstr ""
|
||||
msgstr "&Приоритет задачи"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:386
|
||||
msgid "Add a directory to the frequently used directories list"
|
||||
@ -2098,10 +2098,12 @@ msgid ""
|
||||
"The maximum size (widthxheight) for displayed covers. Larger covers are "
|
||||
"resized. "
|
||||
msgstr ""
|
||||
"Максимальный размер ([ширина]x[высота]) обложек при отображении. Более "
|
||||
"крупные обложки подгоняются по размеру. "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:415
|
||||
msgid "Max. &cover size:"
|
||||
msgstr ""
|
||||
msgstr "Макс. размер обложки:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config_ui.py:416
|
||||
msgid "&Start Server"
|
||||
@ -2825,6 +2827,16 @@ msgid ""
|
||||
"margin-left:0px; margin-right:0px; -qt-block-indent:0; text-"
|
||||
"indent:0px;\"></p></body></html>"
|
||||
msgstr ""
|
||||
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" "
|
||||
"\"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
||||
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style "
|
||||
"type=\"text/css\">\n"
|
||||
"p, li { white-space: pre-wrap; }\n"
|
||||
"</style></head><body style=\" font-family:'DejaVu Sans'; font-size:10pt; "
|
||||
"font-weight:400; font-style:normal;\">\n"
|
||||
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; "
|
||||
"margin-left:0px; margin-right:0px; -qt-block-indent:0; text-"
|
||||
"indent:0px;\"></p></body></html>"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:126
|
||||
msgid "Edit Meta information"
|
||||
@ -2891,7 +2903,7 @@ msgstr "Формат удаления:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148
|
||||
msgid "A&utomatically set author sort"
|
||||
msgstr ""
|
||||
msgstr "Автоматически выставить сортировку по автору"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:265
|
||||
msgid ""
|
||||
@ -2991,7 +3003,7 @@ msgstr "Найти"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:234
|
||||
msgid "%d recipes"
|
||||
msgstr ""
|
||||
msgstr "%d набор параметров"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:263
|
||||
msgid "Must set account information"
|
||||
@ -3201,114 +3213,114 @@ msgstr "Добавить описание в доступное и исполь
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:63
|
||||
msgid "No recipe selected"
|
||||
msgstr ""
|
||||
msgstr "Нет выбранных параметров"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:69
|
||||
msgid "The attached file: %s is a recipe to download %s."
|
||||
msgstr ""
|
||||
msgstr "Присоединенный файл: %s как параметр загружаемый %s"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:70
|
||||
msgid "Recipe for "
|
||||
msgstr ""
|
||||
msgstr "Параметры для "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:86
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:97
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:221
|
||||
msgid "Switch to Advanced mode"
|
||||
msgstr ""
|
||||
msgstr "Переключиться в расширенный режим"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:92
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:100
|
||||
msgid "Switch to Basic mode"
|
||||
msgstr ""
|
||||
msgstr "Переключиться в обычный режим"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:110
|
||||
msgid "Feed must have a title"
|
||||
msgstr ""
|
||||
msgstr "Поле должно быть заголовком"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:111
|
||||
msgid "The feed must have a title"
|
||||
msgstr ""
|
||||
msgstr "Поле должно быть заголовком"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:115
|
||||
msgid "Feed must have a URL"
|
||||
msgstr ""
|
||||
msgstr "Поле должно иметь URL"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:116
|
||||
msgid "The feed %s must have a URL"
|
||||
msgstr ""
|
||||
msgstr "Поле %s должно иметь URL"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:121
|
||||
msgid "Already exists"
|
||||
msgstr ""
|
||||
msgstr "Уже существует"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:122
|
||||
msgid "This feed has already been added to the recipe"
|
||||
msgstr ""
|
||||
msgstr "Поле уже было добавлено в параметры"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:163
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:172
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:229
|
||||
msgid "Invalid input"
|
||||
msgstr ""
|
||||
msgstr "Неверное значение"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:164
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:173
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:230
|
||||
msgid "<p>Could not create recipe. Error:<br>%s"
|
||||
msgstr ""
|
||||
msgstr "Не могу создать параметр. Ошибка:<br> %s"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:179
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:211
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:235
|
||||
msgid "Replace recipe?"
|
||||
msgstr ""
|
||||
msgstr "Заменить параметр"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:180
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:212
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:236
|
||||
msgid "A custom recipe named %s already exists. Do you want to replace it?"
|
||||
msgstr ""
|
||||
msgstr "Выбранное имя параметра %s уже существует. Хотите заменить его?"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:202
|
||||
msgid "Pick recipe"
|
||||
msgstr ""
|
||||
msgstr "Подобрать параметр"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:202
|
||||
msgid "Pick the recipe to customize"
|
||||
msgstr ""
|
||||
msgstr "Подобрать параметр выборочно"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:222
|
||||
msgid "Choose a recipe file"
|
||||
msgstr ""
|
||||
msgstr "Выбрать файл параметра"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:214
|
||||
msgid "Add custom news source"
|
||||
msgstr ""
|
||||
msgstr "Добавить источник новостей"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:215
|
||||
msgid "Available user recipes"
|
||||
msgstr ""
|
||||
msgstr "Доступные пользователю параметры"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:216
|
||||
msgid "Add/Update &recipe"
|
||||
msgstr ""
|
||||
msgstr "Добавить/Обновить параметры"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:217
|
||||
msgid "&Remove recipe"
|
||||
msgstr ""
|
||||
msgstr "Удалить параметры"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:218
|
||||
msgid "&Share recipe"
|
||||
msgstr ""
|
||||
msgstr "Совместный параметр"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:219
|
||||
msgid "Customize &builtin recipe"
|
||||
msgstr ""
|
||||
msgstr "Настроить встроенный параметр"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:220
|
||||
msgid "&Load recipe from file"
|
||||
msgstr ""
|
||||
msgstr "Загрузить параметр из файла"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:222
|
||||
msgid ""
|
||||
@ -3323,61 +3335,74 @@ msgid ""
|
||||
"use the \"Advanced mode\" to further customize the fetch "
|
||||
"process.</p></body></html>"
|
||||
msgstr ""
|
||||
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style "
|
||||
"type=\"text/css\">\n"
|
||||
"p, li { white-space: pre-wrap; }\n"
|
||||
"</style></head><body style=\" font-family:'DejaVu Sans'; font-size:10pt; "
|
||||
"font-weight:400; font-style:normal;\">\n"
|
||||
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-"
|
||||
"right:0px; -qt-block-indent:0; text-indent:0px;\">Создайте параметр основных "
|
||||
"новостей, добавляемых в RSS ленту.<br />Для большинства лент, вы можете "
|
||||
"использовать для просесса загрузки \"Расширенный режим\".</p></body></html>"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:226
|
||||
msgid "Recipe &title:"
|
||||
msgstr ""
|
||||
msgstr "Параметр заголовка"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:227
|
||||
msgid "&Oldest article:"
|
||||
msgstr ""
|
||||
msgstr "Старая статья:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:228
|
||||
msgid "The oldest article to download"
|
||||
msgstr ""
|
||||
msgstr "Загружена старая статья"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:230
|
||||
msgid "&Max. number of articles per feed:"
|
||||
msgstr ""
|
||||
msgstr "Максимальное количество статей в ленте:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:231
|
||||
msgid "Maximum number of articles to download per feed."
|
||||
msgstr ""
|
||||
msgstr "Максимальное количество статей загружаемых в ленту."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:232
|
||||
msgid "Feeds in recipe"
|
||||
msgstr ""
|
||||
msgstr "Поля в параметре"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:234
|
||||
msgid "Remove feed from recipe"
|
||||
msgstr ""
|
||||
msgstr "Удалить поле из параметра"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:237
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:240
|
||||
msgid "Add feed to recipe"
|
||||
msgstr ""
|
||||
msgstr "Добавить поле в параметр"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:238
|
||||
msgid "&Feed title:"
|
||||
msgstr ""
|
||||
msgstr "Поле заглавия:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:239
|
||||
msgid "Feed &URL:"
|
||||
msgstr ""
|
||||
msgstr "&Адрес ленты новостей:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:241
|
||||
msgid "&Add feed"
|
||||
msgstr ""
|
||||
msgstr "Добавить ленту"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:242
|
||||
msgid ""
|
||||
"For help with writing advanced news recipes, please visit <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/user_manual/news.html\">User Recipes</a>"
|
||||
msgstr ""
|
||||
"Для справки по записи расширенного новостного параметра, пожалуста пройдите "
|
||||
"по ссылке <a "
|
||||
"href=\"http://calibre.kovidgoyal.net/user_manual/news.html\">Пользовательские"
|
||||
" Параметры</a>"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:243
|
||||
msgid "Recipe source code (python)"
|
||||
msgstr ""
|
||||
msgstr "Параметр кода источника (python)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:97
|
||||
msgid ""
|
||||
@ -3405,27 +3430,27 @@ msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:104
|
||||
msgid "Regular &expression"
|
||||
msgstr ""
|
||||
msgstr "Регулярное &выражение"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:105
|
||||
msgid "&Test"
|
||||
msgstr ""
|
||||
msgstr "&Тест"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:106
|
||||
msgid "File &name:"
|
||||
msgstr ""
|
||||
msgstr "&Имя файла:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:107
|
||||
msgid "Test"
|
||||
msgstr ""
|
||||
msgstr "Тест"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:108
|
||||
msgid "Title:"
|
||||
msgstr ""
|
||||
msgstr "Название:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:109
|
||||
msgid "Regular expression (?P<title>)"
|
||||
msgstr ""
|
||||
msgstr "Обычный параметр (?P<title>)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:110
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:113
|
||||
@ -3438,43 +3463,43 @@ msgstr ""
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:68
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:70
|
||||
msgid "No match"
|
||||
msgstr ""
|
||||
msgstr "Нет совпадений"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:111
|
||||
msgid "Authors:"
|
||||
msgstr ""
|
||||
msgstr "Авторы:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112
|
||||
msgid "Regular expression (?P<authors>)"
|
||||
msgstr ""
|
||||
msgstr "Обычный параметр (?P<authors>)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:114
|
||||
msgid "Series:"
|
||||
msgstr ""
|
||||
msgstr "Серия:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:115
|
||||
msgid "Regular expression (?P<series>)"
|
||||
msgstr ""
|
||||
msgstr "Обычный параметр (?P<series>)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:117
|
||||
msgid "Series index:"
|
||||
msgstr ""
|
||||
msgstr "Индекс серии:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:118
|
||||
msgid "Regular expression (?P<series_index>)"
|
||||
msgstr ""
|
||||
msgstr "Обычный параметр (?P<series_index>)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:120
|
||||
msgid "ISBN:"
|
||||
msgstr ""
|
||||
msgstr "ISBN:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:121
|
||||
msgid "Regular expression (?P<isbn>)"
|
||||
msgstr ""
|
||||
msgstr "Обычный параметр (?P<isbn>)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/jobs2.py:46
|
||||
msgid "Job"
|
||||
msgstr ""
|
||||
msgstr "Задание"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/jobs2.py:47
|
||||
msgid "Status"
|
||||
@ -3482,7 +3507,7 @@ msgstr "Статус"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/jobs2.py:48
|
||||
msgid "Progress"
|
||||
msgstr ""
|
||||
msgstr "Ход выполнения"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/jobs2.py:49
|
||||
msgid "Running time"
|
||||
@ -3511,25 +3536,25 @@ msgstr "Работа"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/jobs2.py:162
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/jobs2.py:166
|
||||
msgid "Cannot kill job"
|
||||
msgstr ""
|
||||
msgstr "Немогу удалить задание"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/jobs2.py:163
|
||||
msgid "Cannot kill jobs that communicate with the device"
|
||||
msgstr ""
|
||||
msgstr "Немогу удалить задание при подключенном устройстве"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/jobs2.py:167
|
||||
msgid "Job has already run"
|
||||
msgstr ""
|
||||
msgstr "Задание уже запущено"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:93
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:898
|
||||
msgid "Size (MB)"
|
||||
msgstr ""
|
||||
msgstr "Размер (МБ)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:94
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:899
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
msgstr "Дата"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:95
|
||||
msgid "Rating"
|
||||
@ -3539,64 +3564,64 @@ msgstr "Рейтинг"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:280
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:285
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
msgstr "Ничего"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:291
|
||||
msgid "Book <font face=\"serif\">%s</font> of %s."
|
||||
msgstr ""
|
||||
msgstr "Книга <font face=\"serif\">%s</font> из %s."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:830
|
||||
msgid "Format"
|
||||
msgstr ""
|
||||
msgstr "Формат"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:835
|
||||
msgid "Timestamp"
|
||||
msgstr ""
|
||||
msgstr "Временная метка"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:933
|
||||
msgid "Search (For Advanced Search click the button to the left)"
|
||||
msgstr ""
|
||||
msgstr "Поиск (для расширенного поиска нажмите кнопку слева)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:47
|
||||
msgid "Configure Viewer"
|
||||
msgstr ""
|
||||
msgstr "Настройка просматровщика"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:48
|
||||
msgid "Use white background"
|
||||
msgstr ""
|
||||
msgstr "Использовать белый фон"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:49
|
||||
msgid "Hyphenate"
|
||||
msgstr ""
|
||||
msgstr "Перенести"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:50
|
||||
msgid "<b>Changes will only take effect after a restart.</b>"
|
||||
msgstr ""
|
||||
msgstr "<b>Изменения применятся только после перезагрузки.</b>"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:64
|
||||
msgid " - LRF Viewer"
|
||||
msgstr ""
|
||||
msgstr " - LRF просмотровщик"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:157
|
||||
msgid "<b>No matches</b> for the search phrase <i>%s</i> were found."
|
||||
msgstr ""
|
||||
msgstr "<b>Нет совпадений</b> для искомой фразы <i>%s</i> ."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:157
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:368
|
||||
msgid "No matches found"
|
||||
msgstr ""
|
||||
msgstr "Совпадений не найдено"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:128
|
||||
msgid "LRF Viewer"
|
||||
msgstr ""
|
||||
msgstr "LRF просмотровщик"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:129
|
||||
msgid "Parsing LRF file"
|
||||
msgstr ""
|
||||
msgstr "Разбор файла LRF"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:130
|
||||
msgid "LRF Viewer toolbar"
|
||||
msgstr ""
|
||||
msgstr "Панель промотра LRF"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131
|
||||
msgid "Next Page"
|
||||
@ -3609,7 +3634,7 @@ msgstr "Предыдущая страница"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:133
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:148
|
||||
msgid "Back"
|
||||
msgstr ""
|
||||
msgstr "Назад"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:134
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:149
|
||||
@ -3627,7 +3652,7 @@ msgstr "Открыть книгу"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:137
|
||||
msgid "Configure"
|
||||
msgstr ""
|
||||
msgstr "Настроить"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86
|
||||
msgid "Error communicating with device"
|
||||
@ -3635,11 +3660,11 @@ msgstr "Ошибка подключения с устройством"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98
|
||||
msgid "&Restore"
|
||||
msgstr ""
|
||||
msgstr "Восстановить"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:99
|
||||
msgid "&Donate"
|
||||
msgstr ""
|
||||
msgstr "Вознаградить"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:100
|
||||
msgid "&Quit"
|
||||
@ -3647,17 +3672,20 @@ msgstr "&Выход"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:102
|
||||
msgid "&Restart"
|
||||
msgstr ""
|
||||
msgstr "&Перезапуск"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:131
|
||||
msgid ""
|
||||
"<p>For help visit <a "
|
||||
"href=\"http://%s.kovidgoyal.net/user_manual\">%s.kovidgoyal.net</a><br>"
|
||||
msgstr ""
|
||||
"<p>Для справки поситите <a "
|
||||
"href=\"http://%s.kovidgoyal.net/user_manual\">%s.kovidgoyal.net</a><br>"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:132
|
||||
msgid "<b>%s</b>: %s by <b>Kovid Goyal %%(version)s</b><br>%%(device)s</p>"
|
||||
msgstr ""
|
||||
"<b>%s</b>: %s by <b>Kovid Goyal %%(версия)и</b><br>%%(устройств)а</p>"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:150
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:152
|
||||
@ -3672,11 +3700,11 @@ msgstr "Отправить в карту памяти"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:152
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:153
|
||||
msgid "and delete from library"
|
||||
msgstr ""
|
||||
msgstr "и удалите из библиотеки"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:155
|
||||
msgid "Send to storage card by default"
|
||||
msgstr ""
|
||||
msgstr "По умолчанию отправлять в карту памяти"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:168
|
||||
msgid "Edit metadata individually"
|
||||
@ -3684,23 +3712,27 @@ msgstr "Редактировать метаданные индивидуальн
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:170
|
||||
msgid "Edit metadata in bulk"
|
||||
msgstr ""
|
||||
msgstr "Редактировать основные метаданные"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:173
|
||||
msgid "Add books from a single directory"
|
||||
msgstr ""
|
||||
msgstr "Добавить книги из одной директории"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:174
|
||||
msgid ""
|
||||
"Add books recursively (One book per directory, assumes every ebook file is "
|
||||
"the same book in a different format)"
|
||||
msgstr ""
|
||||
"Добавить книги рекурсивно (Каждый файл одной книги в директории принимается, "
|
||||
"как книга другого формата)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:175
|
||||
msgid ""
|
||||
"Add books recursively (Multiple books per directory, assumes every ebook "
|
||||
"file is a different book)"
|
||||
msgstr ""
|
||||
"Добавить книги рекурсивно (Множество книг в дериктории принимаются, как "
|
||||
"книги разных форматов)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:190
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:311
|
||||
@ -3709,17 +3741,17 @@ msgstr "Сохранить на диск"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:191
|
||||
msgid "Save to disk in a single directory"
|
||||
msgstr ""
|
||||
msgstr "Сохранить на диск в одну директорию"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:192
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1108
|
||||
msgid "Save only %s format to disk"
|
||||
msgstr ""
|
||||
msgstr "Сохранять на диск только формат %s"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:195
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:317
|
||||
msgid "View"
|
||||
msgstr ""
|
||||
msgstr "Вид"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:196
|
||||
msgid "View specific format"
|
||||
@ -3727,19 +3759,19 @@ msgstr "Просмотреть особый формат"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:212
|
||||
msgid "Convert individually"
|
||||
msgstr ""
|
||||
msgstr "Индивидуальное преобразование"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:213
|
||||
msgid "Bulk convert"
|
||||
msgstr ""
|
||||
msgstr "Общее преобразование"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:215
|
||||
msgid "Set defaults for conversion"
|
||||
msgstr ""
|
||||
msgstr "Настройки по умолчанию для преобразования"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:216
|
||||
msgid "Set defaults for conversion of comics"
|
||||
msgstr ""
|
||||
msgstr "Настройки по умолчанию для преобразования комиксов"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:260
|
||||
msgid "Bad database location"
|
||||
@ -3748,11 +3780,11 @@ msgstr "Плохое расположение базы данных"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:262
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1264
|
||||
msgid "Choose a location for your ebook library."
|
||||
msgstr ""
|
||||
msgstr "Выбререте расположение Вашей библиотеки электронных книг."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:274
|
||||
msgid "Migrating database"
|
||||
msgstr ""
|
||||
msgstr "Перемещение базы данных"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:418
|
||||
msgid "Device: "
|
||||
@ -3760,7 +3792,7 @@ msgstr "Устройство: "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:419
|
||||
msgid " detected."
|
||||
msgstr ""
|
||||
msgstr " определено."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:441
|
||||
msgid "Connected "
|
||||
@ -3785,13 +3817,26 @@ msgid ""
|
||||
" </ol>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" <p>База данных книг устройства неисправна. Попробуйте "
|
||||
"следующее:\n"
|
||||
" <ol>\n"
|
||||
" <li>Отключите устройство. Дождитесь завершения создания "
|
||||
"базы данных (т.е. дождисеь ее готовности к использованию). Подключите "
|
||||
"устройство. Теперь должно все заработать в приложении %. Если этого не "
|
||||
"произошло переходите к следующему пункту.</li>\n"
|
||||
" <li>Закройте %приложение. Найдите файл media.xml в основной "
|
||||
"памяти устройства. Удалите его. Отключите устройство. Подождите создания "
|
||||
"файла. Подключите устройство снова и запустите приложение %.</li>\n"
|
||||
" </ol>\n"
|
||||
" "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:505
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:601
|
||||
msgid ""
|
||||
"<p>Books with the same title as the following already exist in the database. "
|
||||
"Add them anyway?<ul>"
|
||||
msgstr ""
|
||||
msgstr "<p>Книги с таким названием уже есть в библиотеки. Всеравно добавить?<ul>"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:508
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:604
|
||||
@ -3805,27 +3850,27 @@ msgstr "Загрузка книг в устройство."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:549
|
||||
msgid "Books"
|
||||
msgstr ""
|
||||
msgstr "Книги"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:550
|
||||
msgid "EPUB Books"
|
||||
msgstr ""
|
||||
msgstr "Книги EPUB"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:551
|
||||
msgid "LRF Books"
|
||||
msgstr ""
|
||||
msgstr "Книги LRF"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:552
|
||||
msgid "HTML Books"
|
||||
msgstr ""
|
||||
msgstr "Книги HTML"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:553
|
||||
msgid "LIT Books"
|
||||
msgstr ""
|
||||
msgstr "Книги LIT"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:554
|
||||
msgid "MOBI Books"
|
||||
msgstr ""
|
||||
msgstr "Книги MOBI"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:555
|
||||
msgid "Text books"
|
||||
@ -3833,15 +3878,15 @@ msgstr "Текстовые книги"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:556
|
||||
msgid "PDF Books"
|
||||
msgstr ""
|
||||
msgstr "Книги PDF"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:557
|
||||
msgid "Comics"
|
||||
msgstr ""
|
||||
msgstr "Комиксы"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:558
|
||||
msgid "Archives"
|
||||
msgstr ""
|
||||
msgstr "Архивы"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:636
|
||||
msgid "No space on device"
|
||||
@ -3851,6 +3896,7 @@ msgstr "Нет места на устройстве"
|
||||
msgid ""
|
||||
"<p>Cannot upload books to device there is no more free space available "
|
||||
msgstr ""
|
||||
"<p>Немогу загрузить книги на устройство, из-за отсутствия свободной памяти. "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:667
|
||||
msgid "Confirm delete"
|
||||
@ -3858,11 +3904,11 @@ msgstr "Подтвердить удаление"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:668
|
||||
msgid "Are you sure you want to delete these %d books?"
|
||||
msgstr ""
|
||||
msgstr "Вы уверены, что хотите удалить эти книги %d?"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:680
|
||||
msgid "Deleting books from device."
|
||||
msgstr ""
|
||||
msgstr "Удаляются книги из устройства."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:710
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:732
|
||||
@ -3878,7 +3924,7 @@ msgstr "Нет Выбранных книг"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:779
|
||||
msgid "Sending news to device."
|
||||
msgstr ""
|
||||
msgstr "Отправляются новости на устройство."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:831
|
||||
msgid "Sending books to device."
|
||||
@ -3893,6 +3939,8 @@ msgid ""
|
||||
"Could not upload the following books to the device, as no suitable formats "
|
||||
"were found:<br><ul>%s</ul>"
|
||||
msgstr ""
|
||||
"Не могу загрузить книги на устройство, так как они не соответствуют формату: "
|
||||
"<br><ul>%s</ul>"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:851
|
||||
msgid "Cannot save to disk"
|
||||
@ -3907,10 +3955,11 @@ msgid ""
|
||||
"<p>Could not save the following books to disk, because the %s format is not "
|
||||
"available for them:<ul>"
|
||||
msgstr ""
|
||||
"<p>Не могу сохранить гники на диск потому, что формат %s не доступен для:<ul>"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:866
|
||||
msgid "Could not save some ebooks"
|
||||
msgstr ""
|
||||
msgstr "Не могу сохранить некоторые книги"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:886
|
||||
msgid "Fetching news from "
|
||||
@ -3918,7 +3967,7 @@ msgstr "Вызвать новость из "
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:900
|
||||
msgid " fetched."
|
||||
msgstr ""
|
||||
msgstr " загружено."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1014
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1032
|
||||
@ -3935,11 +3984,11 @@ msgstr "Невозможно просмотреть"
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1020
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1065
|
||||
msgid "Choose the format to view"
|
||||
msgstr ""
|
||||
msgstr "Выберете для просмотра формат"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1032
|
||||
msgid "Cannot open folder"
|
||||
msgstr ""
|
||||
msgstr "Не могу открыть папку"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1061
|
||||
msgid "%s has no available formats."
|
||||
@ -3951,11 +4000,11 @@ msgstr "Невозможно настроить"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1099
|
||||
msgid "Cannot configure while there are running jobs."
|
||||
msgstr ""
|
||||
msgstr "Пока запущено задание, не могу настроить"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1118
|
||||
msgid "Copying database"
|
||||
msgstr ""
|
||||
msgstr "Копирование базы данных"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1120
|
||||
msgid "Copying library to "
|
||||
@ -3970,6 +4019,8 @@ msgid ""
|
||||
"<p>An invalid database already exists at %s, delete it before trying to move "
|
||||
"the existing database.<br>Error: %s"
|
||||
msgstr ""
|
||||
"<p>Уже используется неправильная база данных %s, удалите ее прежде, чем "
|
||||
"перенести используемую. <br>Ошибка: %s"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1137
|
||||
msgid "Could not move database"
|
||||
@ -3981,7 +4032,7 @@ msgstr "Нет доступной подробной информации"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1158
|
||||
msgid "No detailed information is available for books on the device."
|
||||
msgstr ""
|
||||
msgstr "Не доступна подробная информация книг на устройстве"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1201
|
||||
msgid "Error talking to device"
|
||||
@ -3992,6 +4043,8 @@ msgid ""
|
||||
"There was a temporary error talking to the device. Please unplug and "
|
||||
"reconnect the device and or reboot."
|
||||
msgstr ""
|
||||
"Была временная ощибка общения с устройством. Пожалуста, переподключите "
|
||||
"устройство или перегрузите его."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1215
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1230
|
||||
@ -4004,6 +4057,8 @@ msgid ""
|
||||
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
|
||||
"first remove the DRM using 3rd party tools."
|
||||
msgstr ""
|
||||
"<p>Не могу преобразовать: %s<p>Это <a href=\"%s\">DRM</a> книга. Перед "
|
||||
"преобразование удалите DRM используя программное обеспечение."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1250
|
||||
msgid "Database does not exist"
|
||||
@ -4014,10 +4069,12 @@ msgid ""
|
||||
"The directory in which the database should be: %s no longer exists. Please "
|
||||
"choose a new database location."
|
||||
msgstr ""
|
||||
"Не доступна директория, в которой должна быть база данных %s. Пожалуста "
|
||||
"выберете новое расположение базы данных."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1253
|
||||
msgid "Choose new location for database"
|
||||
msgstr ""
|
||||
msgstr "Выберете новое расположение базы данных."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1306
|
||||
msgid ""
|
||||
@ -4027,7 +4084,7 @@ msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1327
|
||||
msgid "There are active jobs. Are you sure you want to quit?"
|
||||
msgstr ""
|
||||
msgstr "Имеется активное задание. Вы всеравно хотите выйти?"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1329
|
||||
msgid ""
|
||||
@ -4840,7 +4897,7 @@ msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/utils/config.py:534
|
||||
msgid "The language in which to display the user interface"
|
||||
msgstr ""
|
||||
msgstr "Язык для отображения пользовательского интерфейса"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/utils/config.py:538
|
||||
msgid "Read metadata from files"
|
||||
@ -4868,7 +4925,7 @@ msgstr ""
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:71
|
||||
msgid "Failed to authenticate with server: %s"
|
||||
msgstr ""
|
||||
msgstr "Ошибка авторизации на сервере: %s"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:76
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:97
|
||||
@ -4878,7 +4935,7 @@ msgstr "Неизвестная заготовка"
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:115
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:137
|
||||
msgid "Untitled article"
|
||||
msgstr ""
|
||||
msgstr "Безымянная статья"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/web/feeds/main.py:15
|
||||
msgid "Options to control the fetching of periodical content from the web."
|
||||
|
@ -8,13 +8,13 @@ msgstr ""
|
||||
"Project-Id-Version: calibre\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2008-12-15 02:49+0000\n"
|
||||
"PO-Revision-Date: 2008-12-12 09:25+0000\n"
|
||||
"PO-Revision-Date: 2008-12-15 22:58+0000\n"
|
||||
"Last-Translator: Michael Gallo <michael.gallo@tiscali.it>\n"
|
||||
"Language-Team: Slovak <sk@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-15 18:24+0000\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-17 21:17+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:137
|
||||
@ -2473,7 +2473,7 @@ msgstr "Automatické rozoznávanie &kapitol"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub_ui.py:408
|
||||
msgid "&XPath:"
|
||||
msgstr ""
|
||||
msgstr "Výraz &XPath:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub_ui.py:409
|
||||
msgid ""
|
||||
@ -2492,151 +2492,173 @@ msgid ""
|
||||
"style=\" text-decoration: underline; color:#0000ff;\">XPath "
|
||||
"tutorial</span></a></p></body></html>"
|
||||
msgstr ""
|
||||
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" "
|
||||
"\"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
||||
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style "
|
||||
"type=\"text/css\">\n"
|
||||
"p, li { white-space: pre-wrap; }\n"
|
||||
"</style></head><body style=\" font-family:'DejaVu Sans'; font-size:10pt; "
|
||||
"font-weight:400; font-style:normal;\">\n"
|
||||
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-"
|
||||
"right:0px; -qt-block-indent:0; text-indent:0px;\">Automatické rozoznávanie "
|
||||
"kapitol môžete ovládať pomocou výrazu XPath. Viac informácií o výrazoch "
|
||||
"XPath nájdete v <a "
|
||||
"href=\"https://calibre.kovidgoyal.net/user_manual/xpath.html\"><span "
|
||||
"style=\" text-decoration: underline; color:#0000ff;\">XPath "
|
||||
"tutoriáli.</span></a></p></body></html>"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub_ui.py:414
|
||||
msgid "Chapter &mark:"
|
||||
msgstr ""
|
||||
msgstr "&Značka kapitol:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub_ui.py:415
|
||||
msgid "Automatic &Table of Contents"
|
||||
msgstr ""
|
||||
msgstr "Automatický &obsah"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub_ui.py:416
|
||||
msgid "Number of &links to add to Table of Contents"
|
||||
msgstr ""
|
||||
msgstr "&Počet odkazov, ktoré budú pridané do obsahu"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub_ui.py:417
|
||||
msgid "Do not add &detected chapters to the Table of Contents"
|
||||
msgstr ""
|
||||
msgstr "&Nepridávať automaticky rozoznané kapitoly do obsahu"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub_ui.py:418
|
||||
msgid "Chapter &threshold"
|
||||
msgstr ""
|
||||
msgstr "Prahová úroveň &kapitol"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub_ui.py:419
|
||||
msgid "&Force use of auto-generated Table of Contents"
|
||||
msgstr ""
|
||||
msgstr "&Vždy použiť automaticky generovaný obsah"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub_ui.py:420
|
||||
msgid "Level &1 TOC"
|
||||
msgstr ""
|
||||
msgstr "Obsah úrovne &1"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/epub_ui.py:421
|
||||
msgid "Level &2 TOC"
|
||||
msgstr ""
|
||||
msgstr "Obsah úrovne &2"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:38
|
||||
msgid "Author Sort"
|
||||
msgstr ""
|
||||
msgstr "Autor (triediť ako)"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:40
|
||||
msgid "ISBN"
|
||||
msgstr ""
|
||||
msgstr "ISBN"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:104
|
||||
msgid "Cannot connect"
|
||||
msgstr ""
|
||||
msgstr "Spojenie zlyhalo"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:105
|
||||
msgid "You must specify a valid access key for isbndb.com"
|
||||
msgstr ""
|
||||
msgstr "Musíte zadať platný kľúč pre isbndb.com"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:139
|
||||
msgid "Error fetching metadata"
|
||||
msgstr ""
|
||||
msgstr "Chyba preberania metadát"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144
|
||||
msgid "No metadata found"
|
||||
msgstr ""
|
||||
msgstr "Žiadne metadáta neboli nájdené"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144
|
||||
msgid ""
|
||||
"No metadata found, try adjusting the title and author or the ISBN key."
|
||||
msgstr ""
|
||||
"Žiadne metadáta neboli nájdené, skúste pozmeniť titul a autora, alebo ISBN "
|
||||
"kód."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:77
|
||||
msgid "Fetch metadata"
|
||||
msgstr ""
|
||||
msgstr "Prevziať metadáta"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:78
|
||||
msgid "Fetching metadata for <b>%1</b>"
|
||||
msgstr ""
|
||||
msgstr "Preberám metadáta pre <b>%1</b>"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:79
|
||||
msgid ""
|
||||
"Sign up for a free account from <a "
|
||||
"href=\"http://www.isbndb.com\">ISBNdb.com</a> to get an access key."
|
||||
msgstr ""
|
||||
"Založte si bezplatný účet na <a "
|
||||
"href=\"http://www.isbndb.com\">ISBNdb.com</a> a získate prístupový kľúč."
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:80
|
||||
msgid "&Access Key:"
|
||||
msgstr ""
|
||||
msgstr "&Prístupový kľúč:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81
|
||||
msgid "Fetch"
|
||||
msgstr ""
|
||||
msgstr "Prevziať"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82
|
||||
msgid "Matches"
|
||||
msgstr ""
|
||||
msgstr "Zhody"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83
|
||||
msgid ""
|
||||
"Select the book that most closely matches your copy from the list below"
|
||||
msgstr ""
|
||||
msgstr "Zo zoznamu dole vyberte knihu, ktorá sa najviac zhoduje s vašou"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:33
|
||||
msgid "Details of job"
|
||||
msgstr ""
|
||||
msgstr "Podrobnosti úlohy"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs.py:27
|
||||
msgid "Unavailable"
|
||||
msgstr ""
|
||||
msgstr "Nie sú k dispozícii"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs.py:38
|
||||
msgid " - Jobs"
|
||||
msgstr ""
|
||||
msgstr " - Úlohy"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:38
|
||||
msgid "Active Jobs"
|
||||
msgstr ""
|
||||
msgstr "Aktívne úlohy"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:39
|
||||
msgid "&Stop selected job"
|
||||
msgstr ""
|
||||
msgstr "&Zastaviť označenú úlohu"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single.py:98
|
||||
msgid "Choose the format to convert into LRF"
|
||||
msgstr ""
|
||||
msgstr "Vyberte zdrojový formát na prevod do LRF"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single.py:106
|
||||
msgid "Convert %s to LRF"
|
||||
msgstr ""
|
||||
msgstr "Previesť %s do formátu LRF"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single.py:109
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:347
|
||||
msgid "Set conversion defaults"
|
||||
msgstr ""
|
||||
msgstr "Štandardné nastavenie prevodu"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single.py:260
|
||||
msgid ""
|
||||
"Preprocess the file before converting to LRF. This is useful if you know "
|
||||
"that the file is from a specific source. Known sources:"
|
||||
msgstr ""
|
||||
"Predspracovať súbor pred prevodom do LRF. Užitočné ak poznáte zdroj z "
|
||||
"ktorého súbor pochádza. Známe zdroje:"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single.py:261
|
||||
msgid "<ol><li><b>baen</b> - Books from BAEN Publishers</li>"
|
||||
msgstr ""
|
||||
msgstr "<ol><li><b>baen</b> - Knihy z vydavateľstva BAEN</li>"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single.py:262
|
||||
msgid ""
|
||||
"<li><b>pdftohtml</b> - HTML files that are the output of the program "
|
||||
"pdftohtml</li>"
|
||||
msgstr ""
|
||||
"<li><b>pdftohtml</b> - HTML súbory vygenerované programom pdftohtml</li>"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single.py:263
|
||||
msgid "<li><b>book-designer</b> - HTML0 files from Book Designer</li>"
|
||||
msgstr ""
|
||||
"<li><b>book-designer</b> - súbory HTML0 z programu Book Designer</li>"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single.py:296
|
||||
msgid ""
|
||||
|
@ -13,7 +13,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-15 18:25+0000\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-17 21:17+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"Generated-By: pygettext.py 1.5\n"
|
||||
|
||||
|
@ -14,7 +14,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-15 18:24+0000\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-17 21:16+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:137
|
||||
|
@ -14,7 +14,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-15 18:24+0000\n"
|
||||
"X-Launchpad-Export-Date: 2008-12-17 21:16+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:137
|
||||
|
@ -21,7 +21,7 @@
|
||||
+ ((compressor)->input.size - (compressor)->input.offset))
|
||||
|
||||
typedef struct buffer_t {
|
||||
void *data;
|
||||
char *data;
|
||||
unsigned int size;
|
||||
unsigned int offset;
|
||||
} buffer_t;
|
||||
@ -222,7 +222,7 @@ Compressor_init(Compressor *self, PyObject *args, PyObject *kwds)
|
||||
|
||||
static PyObject *
|
||||
Compressor_compress__(
|
||||
Compressor *self, unsigned char *data, unsigned int inlen, int flush)
|
||||
Compressor *self, char *data, unsigned int inlen, int flush)
|
||||
{
|
||||
buffer_t *residue = &self->residue;
|
||||
buffer_t *input = &self->input;
|
||||
@ -305,7 +305,7 @@ static PyObject *
|
||||
Compressor_compress(Compressor *self, PyObject *args, PyObject *kwds)
|
||||
{
|
||||
static char *kwlist[] = {"data", "flush", NULL};
|
||||
unsigned char *data = NULL;
|
||||
char *data = NULL;
|
||||
unsigned int inlen = 0;
|
||||
int flush = 0;
|
||||
|
||||
|
@ -27,7 +27,6 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include <strings.h>
|
||||
#include <string.h>
|
||||
#ifdef DEBUG_PERF
|
||||
#include <sys/time.h>
|
||||
@ -75,7 +74,7 @@ void lz_init(lz_info *lzi, int wsize, int max_dist,
|
||||
lzi->user_data = user_data;
|
||||
lzi->frame_size = frame_size;
|
||||
lzi->lentab = calloc(lzi->block_buf_size + 1, sizeof(int));
|
||||
lzi->prevtab = calloc(lzi->block_buf_size + 1, sizeof(u_char *));
|
||||
lzi->prevtab = calloc(lzi->block_buf_size + 1, sizeof(unsigned char *));
|
||||
lzi->analysis_valid = 0;
|
||||
}
|
||||
|
||||
@ -103,7 +102,7 @@ typedef struct lz_user_data
|
||||
int R0, R1, R2;
|
||||
} lz_user_data;
|
||||
|
||||
int tmp_get_chars(lz_info *lzi, int n, u_char *buf)
|
||||
int tmp_get_chars(lz_info *lzi, int n, unsigned char *buf)
|
||||
{
|
||||
lz_user_data *lzud = (lz_user_data *)lzi->user_data;
|
||||
return fread(buf, 1, n, lzud->infile);
|
||||
@ -120,7 +119,7 @@ int tmp_output_match(lz_info *lzi, int match_pos, int match_len)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void tmp_output_literal(lz_info *lzi, u_char ch)
|
||||
void tmp_output_literal(lz_info *lzi, unsigned char ch)
|
||||
{
|
||||
lz_user_data *lzud = (lz_user_data *)lzi->user_data;
|
||||
fprintf(lzud->outfile, "'%c'", ch);
|
||||
@ -138,7 +137,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
#endif
|
||||
|
||||
__inline__ int lz_left_to_process(lz_info *lzi)
|
||||
int lz_left_to_process(lz_info *lzi)
|
||||
{
|
||||
return lzi->chars_in_buf - lzi->block_loc;
|
||||
}
|
||||
@ -147,7 +146,7 @@ static void
|
||||
fill_blockbuf(lz_info *lzi, int maxchars)
|
||||
{
|
||||
int toread;
|
||||
u_char *readhere;
|
||||
unsigned char *readhere;
|
||||
int nread;
|
||||
|
||||
if (lzi->eofcount) return;
|
||||
@ -164,10 +163,10 @@ fill_blockbuf(lz_info *lzi, int maxchars)
|
||||
static void lz_analyze_block(lz_info *lzi)
|
||||
{
|
||||
int *lentab, *lenp;
|
||||
u_char **prevtab, **prevp;
|
||||
u_char *bbp, *bbe;
|
||||
u_char *chartab[256];
|
||||
u_char *cursor;
|
||||
unsigned char **prevtab, **prevp;
|
||||
unsigned char *bbp, *bbe;
|
||||
unsigned char *chartab[256];
|
||||
unsigned char *cursor;
|
||||
int prevlen;
|
||||
int ch;
|
||||
int maxlen;
|
||||
@ -288,9 +287,9 @@ void lz_stop_compressing(lz_info *lzi)
|
||||
int lz_compress(lz_info *lzi, int nchars)
|
||||
{
|
||||
|
||||
u_char *bbp, *bbe;
|
||||
unsigned char *bbp, *bbe;
|
||||
int *lentab, *lenp;
|
||||
u_char **prevtab, **prevp;
|
||||
unsigned char **prevtab, **prevp;
|
||||
int len;
|
||||
int holdback;
|
||||
short trimmed;
|
||||
|
@ -16,24 +16,24 @@
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
typedef struct lz_info lz_info;
|
||||
typedef int (*get_chars_t)(lz_info *lzi, int n, u_char *buf);
|
||||
typedef int (*get_chars_t)(lz_info *lzi, int n, unsigned char *buf);
|
||||
typedef int (*output_match_t)(lz_info *lzi, int match_pos, int match_len);
|
||||
typedef void (*output_literal_t)(lz_info *lzi, u_char ch);
|
||||
typedef void (*output_literal_t)(lz_info *lzi, unsigned char ch);
|
||||
|
||||
struct lz_info
|
||||
{
|
||||
int wsize; /* window size in bytes */
|
||||
int max_match; /* size of longest match in bytes */
|
||||
int min_match;
|
||||
u_char *block_buf;
|
||||
u_char *block_bufe;
|
||||
unsigned char *block_buf;
|
||||
unsigned char *block_bufe;
|
||||
int block_buf_size;
|
||||
int chars_in_buf;
|
||||
int cur_loc; /* location within stream */
|
||||
int block_loc;
|
||||
int frame_size;
|
||||
int max_dist;
|
||||
u_char **prevtab;
|
||||
unsigned char **prevtab;
|
||||
int *lentab;
|
||||
short eofcount;
|
||||
short stop;
|
||||
|
@ -23,7 +23,11 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#ifdef _MSC_VER
|
||||
# include "msstdint.h"
|
||||
#else /* _MSC_VER */
|
||||
# include <stdint.h>
|
||||
#endif /* _MSC_VER */
|
||||
#include <string.h> /* for memset on Linux */
|
||||
#include <assert.h>
|
||||
#include <math.h>
|
||||
@ -75,7 +79,7 @@
|
||||
/* as corrected by Caie */
|
||||
short num_position_slots[] = {30, 32, 34, 36, 38, 42, 50};
|
||||
unsigned long position_base[51];
|
||||
u_char extra_bits[52];
|
||||
unsigned char extra_bits[52];
|
||||
double rloge2;
|
||||
|
||||
typedef struct ih_elem {
|
||||
@ -455,7 +459,7 @@ struct lzxc_data
|
||||
};
|
||||
|
||||
static int
|
||||
lzx_get_chars(lz_info *lzi, int n, u_char *buf)
|
||||
lzx_get_chars(lz_info *lzi, int n, unsigned char *buf)
|
||||
{
|
||||
/* force lz compression to stop after every block */
|
||||
int chars_read;
|
||||
@ -500,9 +504,9 @@ lzx_get_chars(lz_info *lzi, int n, u_char *buf)
|
||||
#ifdef NONSLIDE
|
||||
static int find_match_at(lz_info *lzi, int loc, int match_len, int *match_locp)
|
||||
{
|
||||
u_char *matchb;
|
||||
u_char *nmatchb;
|
||||
u_char *c1, *c2;
|
||||
unsigned char *matchb;
|
||||
unsigned char *nmatchb;
|
||||
unsigned char *c1, *c2;
|
||||
int j;
|
||||
|
||||
if (-*match_locp == loc) return -1;
|
||||
@ -527,9 +531,9 @@ static int find_match_at(lz_info *lzi, int loc, int match_len, int *match_locp)
|
||||
#else
|
||||
static int find_match_at(lz_info *lzi, int loc, int match_len, int *match_locp)
|
||||
{
|
||||
u_char *matchb;
|
||||
u_char *nmatchb;
|
||||
u_char *c1, *c2;
|
||||
unsigned char *matchb;
|
||||
unsigned char *nmatchb;
|
||||
unsigned char *c1, *c2;
|
||||
int j;
|
||||
|
||||
if (-*match_locp == loc) return -1;
|
||||
@ -794,7 +798,7 @@ lzx_output_match(lz_info *lzi, int match_pos, int match_len)
|
||||
}
|
||||
|
||||
static void
|
||||
lzx_output_literal(lz_info *lzi, u_char ch)
|
||||
lzx_output_literal(lz_info *lzi, unsigned char ch)
|
||||
{
|
||||
lzxc_data *lzud = (lzxc_data *)lzi->user_data;
|
||||
|
||||
@ -957,15 +961,15 @@ lzx_write_compressed_tree(struct lzxc_data *lzxd,
|
||||
struct huff_entry *tree, uint8_t *prevlengths,
|
||||
int treesize)
|
||||
{
|
||||
u_char *codes;
|
||||
u_char *runs;
|
||||
unsigned char *codes;
|
||||
unsigned char *runs;
|
||||
int freqs[LZX_PRETREE_SIZE];
|
||||
int cur_run;
|
||||
int last_len;
|
||||
huff_entry pretree[20];
|
||||
u_char *codep;
|
||||
u_char *codee;
|
||||
u_char *runp;
|
||||
unsigned char *codep;
|
||||
unsigned char *codee;
|
||||
unsigned char *runp;
|
||||
int excess;
|
||||
int i;
|
||||
int cur_code;
|
||||
|
@ -15,6 +15,11 @@
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#include "msstdint.h"
|
||||
#endif
|
||||
|
||||
typedef struct lzxc_data lzxc_data;
|
||||
typedef int (*lzxc_get_bytes_t)(void *arg, int n, void *buf);
|
||||
typedef int (*lzxc_put_bytes_t)(void *arg, int n, void *buf);
|
||||
|
232
src/calibre/utils/lzx/msstdint.h
Normal file
232
src/calibre/utils/lzx/msstdint.h
Normal file
@ -0,0 +1,232 @@
|
||||
// ISO C9x compliant stdint.h for Microsoft Visual Studio
|
||||
// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
|
||||
//
|
||||
// Copyright (c) 2006-2008 Alexander Chemeris
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are met:
|
||||
//
|
||||
// 1. Redistributions of source code must retain the above copyright notice,
|
||||
// this list of conditions and the following disclaimer.
|
||||
//
|
||||
// 2. Redistributions in binary form must reproduce the above copyright
|
||||
// notice, this list of conditions and the following disclaimer in the
|
||||
// documentation and/or other materials provided with the distribution.
|
||||
//
|
||||
// 3. The name of the author may be used to endorse or promote products
|
||||
// derived from this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _MSC_VER // [
|
||||
#error "Use this header only with Microsoft Visual C++ compilers!"
|
||||
#endif // _MSC_VER ]
|
||||
|
||||
#ifndef _MSC_STDINT_H_ // [
|
||||
#define _MSC_STDINT_H_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include <limits.h>
|
||||
|
||||
// For Visual Studio 6 in C++ mode wrap <wchar.h> include with 'extern "C++" {}'
|
||||
// or compiler give many errors like this:
|
||||
// error C2733: second C linkage of overloaded function 'wmemchr' not allowed
|
||||
#if (_MSC_VER < 1300) && defined(__cplusplus)
|
||||
extern "C++" {
|
||||
#endif
|
||||
# include <wchar.h>
|
||||
#if (_MSC_VER < 1300) && defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
// Define _W64 macros to mark types changing their size, like intptr_t.
|
||||
#ifndef _W64
|
||||
# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300
|
||||
# define _W64 __w64
|
||||
# else
|
||||
# define _W64
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
// 7.18.1 Integer types
|
||||
|
||||
// 7.18.1.1 Exact-width integer types
|
||||
typedef __int8 int8_t;
|
||||
typedef __int16 int16_t;
|
||||
typedef __int32 int32_t;
|
||||
typedef __int64 int64_t;
|
||||
typedef unsigned __int8 uint8_t;
|
||||
typedef unsigned __int16 uint16_t;
|
||||
typedef unsigned __int32 uint32_t;
|
||||
typedef unsigned __int64 uint64_t;
|
||||
|
||||
// 7.18.1.2 Minimum-width integer types
|
||||
typedef int8_t int_least8_t;
|
||||
typedef int16_t int_least16_t;
|
||||
typedef int32_t int_least32_t;
|
||||
typedef int64_t int_least64_t;
|
||||
typedef uint8_t uint_least8_t;
|
||||
typedef uint16_t uint_least16_t;
|
||||
typedef uint32_t uint_least32_t;
|
||||
typedef uint64_t uint_least64_t;
|
||||
|
||||
// 7.18.1.3 Fastest minimum-width integer types
|
||||
typedef int8_t int_fast8_t;
|
||||
typedef int16_t int_fast16_t;
|
||||
typedef int32_t int_fast32_t;
|
||||
typedef int64_t int_fast64_t;
|
||||
typedef uint8_t uint_fast8_t;
|
||||
typedef uint16_t uint_fast16_t;
|
||||
typedef uint32_t uint_fast32_t;
|
||||
typedef uint64_t uint_fast64_t;
|
||||
|
||||
// 7.18.1.4 Integer types capable of holding object pointers
|
||||
#ifdef _WIN64 // [
|
||||
typedef __int64 intptr_t;
|
||||
typedef unsigned __int64 uintptr_t;
|
||||
#else // _WIN64 ][
|
||||
typedef _W64 int intptr_t;
|
||||
typedef _W64 unsigned int uintptr_t;
|
||||
#endif // _WIN64 ]
|
||||
|
||||
// 7.18.1.5 Greatest-width integer types
|
||||
typedef int64_t intmax_t;
|
||||
typedef uint64_t uintmax_t;
|
||||
|
||||
|
||||
// 7.18.2 Limits of specified-width integer types
|
||||
|
||||
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See footnote 220 at page 257 and footnote 221 at page 259
|
||||
|
||||
// 7.18.2.1 Limits of exact-width integer types
|
||||
#define INT8_MIN ((int8_t)_I8_MIN)
|
||||
#define INT8_MAX _I8_MAX
|
||||
#define INT16_MIN ((int16_t)_I16_MIN)
|
||||
#define INT16_MAX _I16_MAX
|
||||
#define INT32_MIN ((int32_t)_I32_MIN)
|
||||
#define INT32_MAX _I32_MAX
|
||||
#define INT64_MIN ((int64_t)_I64_MIN)
|
||||
#define INT64_MAX _I64_MAX
|
||||
#define UINT8_MAX _UI8_MAX
|
||||
#define UINT16_MAX _UI16_MAX
|
||||
#define UINT32_MAX _UI32_MAX
|
||||
#define UINT64_MAX _UI64_MAX
|
||||
|
||||
// 7.18.2.2 Limits of minimum-width integer types
|
||||
#define INT_LEAST8_MIN INT8_MIN
|
||||
#define INT_LEAST8_MAX INT8_MAX
|
||||
#define INT_LEAST16_MIN INT16_MIN
|
||||
#define INT_LEAST16_MAX INT16_MAX
|
||||
#define INT_LEAST32_MIN INT32_MIN
|
||||
#define INT_LEAST32_MAX INT32_MAX
|
||||
#define INT_LEAST64_MIN INT64_MIN
|
||||
#define INT_LEAST64_MAX INT64_MAX
|
||||
#define UINT_LEAST8_MAX UINT8_MAX
|
||||
#define UINT_LEAST16_MAX UINT16_MAX
|
||||
#define UINT_LEAST32_MAX UINT32_MAX
|
||||
#define UINT_LEAST64_MAX UINT64_MAX
|
||||
|
||||
// 7.18.2.3 Limits of fastest minimum-width integer types
|
||||
#define INT_FAST8_MIN INT8_MIN
|
||||
#define INT_FAST8_MAX INT8_MAX
|
||||
#define INT_FAST16_MIN INT16_MIN
|
||||
#define INT_FAST16_MAX INT16_MAX
|
||||
#define INT_FAST32_MIN INT32_MIN
|
||||
#define INT_FAST32_MAX INT32_MAX
|
||||
#define INT_FAST64_MIN INT64_MIN
|
||||
#define INT_FAST64_MAX INT64_MAX
|
||||
#define UINT_FAST8_MAX UINT8_MAX
|
||||
#define UINT_FAST16_MAX UINT16_MAX
|
||||
#define UINT_FAST32_MAX UINT32_MAX
|
||||
#define UINT_FAST64_MAX UINT64_MAX
|
||||
|
||||
// 7.18.2.4 Limits of integer types capable of holding object pointers
|
||||
#ifdef _WIN64 // [
|
||||
# define INTPTR_MIN INT64_MIN
|
||||
# define INTPTR_MAX INT64_MAX
|
||||
# define UINTPTR_MAX UINT64_MAX
|
||||
#else // _WIN64 ][
|
||||
# define INTPTR_MIN INT32_MIN
|
||||
# define INTPTR_MAX INT32_MAX
|
||||
# define UINTPTR_MAX UINT32_MAX
|
||||
#endif // _WIN64 ]
|
||||
|
||||
// 7.18.2.5 Limits of greatest-width integer types
|
||||
#define INTMAX_MIN INT64_MIN
|
||||
#define INTMAX_MAX INT64_MAX
|
||||
#define UINTMAX_MAX UINT64_MAX
|
||||
|
||||
// 7.18.3 Limits of other integer types
|
||||
|
||||
#ifdef _WIN64 // [
|
||||
# define PTRDIFF_MIN _I64_MIN
|
||||
# define PTRDIFF_MAX _I64_MAX
|
||||
#else // _WIN64 ][
|
||||
# define PTRDIFF_MIN _I32_MIN
|
||||
# define PTRDIFF_MAX _I32_MAX
|
||||
#endif // _WIN64 ]
|
||||
|
||||
#define SIG_ATOMIC_MIN INT_MIN
|
||||
#define SIG_ATOMIC_MAX INT_MAX
|
||||
|
||||
#ifndef SIZE_MAX // [
|
||||
# ifdef _WIN64 // [
|
||||
# define SIZE_MAX _UI64_MAX
|
||||
# else // _WIN64 ][
|
||||
# define SIZE_MAX _UI32_MAX
|
||||
# endif // _WIN64 ]
|
||||
#endif // SIZE_MAX ]
|
||||
|
||||
// WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h>
|
||||
#ifndef WCHAR_MIN // [
|
||||
# define WCHAR_MIN 0
|
||||
#endif // WCHAR_MIN ]
|
||||
#ifndef WCHAR_MAX // [
|
||||
# define WCHAR_MAX _UI16_MAX
|
||||
#endif // WCHAR_MAX ]
|
||||
|
||||
#define WINT_MIN 0
|
||||
#define WINT_MAX _UI16_MAX
|
||||
|
||||
#endif // __STDC_LIMIT_MACROS ]
|
||||
|
||||
|
||||
// 7.18.4 Limits of other integer types
|
||||
|
||||
#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260
|
||||
|
||||
// 7.18.4.1 Macros for minimum-width integer constants
|
||||
|
||||
#define INT8_C(val) val##i8
|
||||
#define INT16_C(val) val##i16
|
||||
#define INT32_C(val) val##i32
|
||||
#define INT64_C(val) val##i64
|
||||
|
||||
#define UINT8_C(val) val##ui8
|
||||
#define UINT16_C(val) val##ui16
|
||||
#define UINT32_C(val) val##ui32
|
||||
#define UINT64_C(val) val##ui64
|
||||
|
||||
// 7.18.4.2 Macros for greatest-width integer constants
|
||||
#define INTMAX_C INT64_C
|
||||
#define UINTMAX_C UINT64_C
|
||||
|
||||
#endif // __STDC_CONSTANT_MACROS ]
|
||||
|
||||
|
||||
#endif // _MSC_STDINT_H_ ]
|
@ -18,6 +18,7 @@ recipe_modules = [
|
||||
'nytimes_sub', 'security_watch', 'cyberpresse', 'st_petersburg_times',
|
||||
'clarin', 'financial_times', 'heise', 'le_monde', 'harpers', 'science_aas',
|
||||
'science_news', 'the_nation', 'lrb', 'harpers_full', 'liberation',
|
||||
'linux_magazine',
|
||||
]
|
||||
|
||||
import re, imp, inspect, time, os
|
||||
|
36
src/calibre/web/feeds/recipes/linux_magazine.py
Normal file
36
src/calibre/web/feeds/recipes/linux_magazine.py
Normal file
@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
__license__ = 'GPL v3'
|
||||
__copyright__ = '2008, Darko Miletic <darko.miletic at gmail.com>'
|
||||
'''
|
||||
linux-magazine.com
|
||||
'''
|
||||
|
||||
from calibre.ebooks.BeautifulSoup import BeautifulSoup
|
||||
from calibre.web.feeds.news import BasicNewsRecipe
|
||||
|
||||
class LinuxMagazine(BasicNewsRecipe):
|
||||
title = u'Linux Magazine'
|
||||
__author__ = 'Darko Miletic'
|
||||
description = 'Linux news'
|
||||
oldest_article = 7
|
||||
max_articles_per_feed = 100
|
||||
no_stylesheets = True
|
||||
use_embedded_content = False
|
||||
|
||||
remove_tags_after = dict(name='div', attrs={'class':'end_intro'})
|
||||
remove_tags = [
|
||||
dict(name='div' , attrs={'class':'end_intro' })
|
||||
,dict(name='table' , attrs={'width':'100%'})
|
||||
]
|
||||
|
||||
feeds = [(u'Linux Magazine Full Feed', u'http://www.linux-magazine.com/rss/feed/lmi_full')]
|
||||
|
||||
def print_version(self, url):
|
||||
raw = self.browser.open(url).read()
|
||||
soup = BeautifulSoup(raw.decode('utf8', 'replace'))
|
||||
print_link = soup.find('a', {'title':'Print this page'})
|
||||
if print_link is None:
|
||||
return url
|
||||
return 'http://www.linux-magazine.com'+print_link['href']
|
||||
|
Loading…
x
Reference in New Issue
Block a user