mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Merge from trunk
This commit is contained in:
commit
4297a0576d
@ -4,7 +4,7 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
<title>..:: calibre library ::.. {title}</title>
|
<title>..:: calibre {library} ::.. {title}</title>
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=100" />
|
<meta http-equiv="X-UA-Compatible" content="IE=100" />
|
||||||
<link rel="icon" type="image/x-icon" href="http://calibre-ebook.com/favicon.ico" />
|
<link rel="icon" type="image/x-icon" href="http://calibre-ebook.com/favicon.ico" />
|
||||||
|
|
||||||
@ -41,7 +41,7 @@
|
|||||||
<div class="area">
|
<div class="area">
|
||||||
<div class="bubble">
|
<div class="bubble">
|
||||||
<p><a href="{prefix}/browse" title="Return to top level"
|
<p><a href="{prefix}/browse" title="Return to top level"
|
||||||
>→ home ←</a></p>
|
>→ {home} ←</a></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="nav-container">
|
<div id="nav-container">
|
||||||
@ -80,7 +80,7 @@
|
|||||||
<form name="search_form" action="{prefix}/browse/search" method="get" accept-charset="UTF-8">
|
<form name="search_form" action="{prefix}/browse/search" method="get" accept-charset="UTF-8">
|
||||||
<input value="{initial_search}" type="text" title="Search" name="query"
|
<input value="{initial_search}" type="text" title="Search" name="query"
|
||||||
class="search_input" />
|
class="search_input" />
|
||||||
<input type="submit" value="Search" title="Search" alt="Search" />
|
<input type="submit" value="{Search}" title="{Search}" alt="{Search}" />
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div> </div>
|
<div> </div>
|
||||||
|
BIN
resources/images/news/siol.png
Normal file
BIN
resources/images/news/siol.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 423 B |
42
resources/recipes/diario_sport.recipe
Normal file
42
resources/recipes/diario_sport.recipe
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class DiarioSport(BasicNewsRecipe):
|
||||||
|
title = u'Diario Sport'
|
||||||
|
oldest_article = 2
|
||||||
|
max_articles_per_feed = 75
|
||||||
|
__author__ = 'Jefferson Frantz'
|
||||||
|
description = 'Todas las noticias del Barça y del mundo del deporte en general'
|
||||||
|
timefmt = ' [%d %b, %Y]'
|
||||||
|
language = 'es'
|
||||||
|
no_stylesheets = True
|
||||||
|
|
||||||
|
feeds = [(u'Sport', u'http://feeds.feedburner.com/sport/ultimahora')]
|
||||||
|
|
||||||
|
extra_css = '''
|
||||||
|
h2{font-family: serif; font-size: small; font-weight: bold; color: #000000; text-align: justify}
|
||||||
|
'''
|
||||||
|
|
||||||
|
keep_only_tags = [dict(name='div', attrs={'id':['noticiasMedio']})]
|
||||||
|
|
||||||
|
remove_tags = [
|
||||||
|
dict(name=['object','link','script','ul'])
|
||||||
|
,dict(name='div', attrs={'id':['scrAdSense','herramientas2','participacion','participacion2','bloque1resultados','bloque2resultados','cont_vinyetesAnt','tinta','noticiasSuperior','cintillopublicidad2']})
|
||||||
|
,dict(name='p', attrs={'class':['masinformacion','hora']})
|
||||||
|
,dict(name='a', attrs={'class':["'link'"]})
|
||||||
|
,dict(name='div', attrs={'class':['addthis_toolbox addthis_default_style','firma','pretitularnoticia']})
|
||||||
|
,dict(name='form', attrs={'id':['formularioDeBusquedaAvanzada']})
|
||||||
|
]
|
||||||
|
|
||||||
|
def preprocess_html(self, soup):
|
||||||
|
for item in soup.findAll(style=True):
|
||||||
|
del item['style']
|
||||||
|
return soup
|
||||||
|
|
||||||
|
|
||||||
|
def postprocess_html(self, soup, first_fetch):
|
||||||
|
img = soup.find('img',src='/img/videos/mascaravideo.png')
|
||||||
|
if not img is None:
|
||||||
|
img.extract()
|
||||||
|
|
||||||
|
return soup
|
||||||
|
|
73
resources/recipes/scprint.recipe
Normal file
73
resources/recipes/scprint.recipe
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
from calibre.web.feeds.recipes import BasicNewsRecipe, LoginFailed
|
||||||
|
|
||||||
|
class SCPrintMagazine(BasicNewsRecipe):
|
||||||
|
title = u'SC Print Magazine'
|
||||||
|
__author__ = u'Tony Maro'
|
||||||
|
description = u'Last print version of the data security magazine'
|
||||||
|
INDEX = "http://www.scmagazineus.com/issuearchive/"
|
||||||
|
no_stylesheets = True
|
||||||
|
language = 'en'
|
||||||
|
keep_only_tags = [dict(id=['article','review'])]
|
||||||
|
remove_tags = [dict(id=['articlePrintTools','reviewBodyColumn'])]
|
||||||
|
LOG_IN = 'http://www.scmagazineus.com/login/'
|
||||||
|
tags = 'News,SC Magazine'
|
||||||
|
needs_subscription = True
|
||||||
|
|
||||||
|
def parse_index(self):
|
||||||
|
articles = []
|
||||||
|
issuelink = printsections = None
|
||||||
|
|
||||||
|
soup = self.index_to_soup(self.INDEX)
|
||||||
|
sectit = soup.find('div', attrs={'class':'issueArchiveItem'})
|
||||||
|
if sectit is not None:
|
||||||
|
linkt = sectit.find('a')
|
||||||
|
issuelink = linkt['href']
|
||||||
|
imgt = sectit.find('img')
|
||||||
|
self.cover_url = imgt['src']
|
||||||
|
|
||||||
|
if issuelink is not None:
|
||||||
|
issue = self.index_to_soup(issuelink)
|
||||||
|
if issue is not None:
|
||||||
|
printsections = issue.findAll('div',attrs={'class':'PrintSection'})
|
||||||
|
if printsections is not None:
|
||||||
|
for printsection in printsections:
|
||||||
|
onesection = []
|
||||||
|
sectiontitle = printsection.find('h3').contents[0]
|
||||||
|
articlesec = printsection.findAll('div',attrs={'class':'IssueArchiveFormat'})
|
||||||
|
if articlesec is not None:
|
||||||
|
''' got articles '''
|
||||||
|
for onearticle in articlesec:
|
||||||
|
''' process one article '''
|
||||||
|
arttitlet = onearticle.find('h3')
|
||||||
|
if arttitlet is not None:
|
||||||
|
mylink = arttitlet.find('a')
|
||||||
|
if mylink is not None:
|
||||||
|
if mylink.has_key('title'):
|
||||||
|
arttitle = mylink['title']
|
||||||
|
else:
|
||||||
|
arttitle = 'unknown'
|
||||||
|
if mylink.has_key('href'):
|
||||||
|
artlink = mylink['href']
|
||||||
|
artlink = artlink.replace("/article","/printarticle")
|
||||||
|
artlink = artlink.replace("/review","/printreview")
|
||||||
|
deck = onearticle.find('div',attrs={'class':'deck'})
|
||||||
|
if deck is not None:
|
||||||
|
deck = deck.contents[0]
|
||||||
|
onesection.append({'title':arttitle, 'url':artlink, 'description':deck,'date':''})
|
||||||
|
articles.append((sectiontitle, onesection))
|
||||||
|
|
||||||
|
return articles
|
||||||
|
|
||||||
|
def get_browser(self):
|
||||||
|
br = BasicNewsRecipe.get_browser(self)
|
||||||
|
br.open(self.LOG_IN)
|
||||||
|
br.select_form(name='aspnetForm')
|
||||||
|
br['ctl00$ctl00$cphAllPageContent$cphMainContent$SubscriberEasyLoginView1$txtEmail'] = self.username
|
||||||
|
br['ctl00$ctl00$cphAllPageContent$cphMainContent$SubscriberEasyLoginView1$txtPassword'] = self.password
|
||||||
|
raw = br.submit("ctl00$ctl00$cphAllPageContent$cphMainContent$SubscriberEasyLoginView1$btnLogin").read()
|
||||||
|
if 'Logout</a>' not in raw:
|
||||||
|
raise LoginFailed(
|
||||||
|
_('Failed to log in, check your username and password for'
|
||||||
|
' the calibre Periodicals service.'))
|
||||||
|
return br
|
||||||
|
|
55
resources/recipes/siol.recipe
Normal file
55
resources/recipes/siol.recipe
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
# coding: utf-8
|
||||||
|
__license__ = 'GPL v3'
|
||||||
|
__copyright__ = '2010, BlonG'
|
||||||
|
'''
|
||||||
|
www.siol.si
|
||||||
|
'''
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class Siol(BasicNewsRecipe):
|
||||||
|
title = u'Siol.net'
|
||||||
|
__author__ = u'BlonG'
|
||||||
|
description = "Multimedijski portal z aktualnimi vsebinami, intervjuji, komentarji iz Slovenije in sveta, sportal, trendi, avtomoto, blogos"
|
||||||
|
oldest_article = 3
|
||||||
|
max_articles_per_feed = 20
|
||||||
|
no_stylesheets = True
|
||||||
|
use_embedded_content = False
|
||||||
|
language = 'sl'
|
||||||
|
|
||||||
|
cover_url = 'http://farm4.static.flickr.com/3540/3401820496_c771550fe6.jpg'
|
||||||
|
|
||||||
|
extra_css = '''
|
||||||
|
h1{font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:large;}
|
||||||
|
h2{font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:large;}
|
||||||
|
p{font-family:Arial,Helvetica,sans-serif;font-size:small;}
|
||||||
|
body{font-family:Helvetica,Arial,sans-serif;font-size:small;}
|
||||||
|
'''
|
||||||
|
|
||||||
|
keep_only_tags = [
|
||||||
|
dict(name='div', attrs={'id':'idContent'}),
|
||||||
|
]
|
||||||
|
|
||||||
|
remove_tags = [
|
||||||
|
dict(name='span', attrs={'class':'com1'}),
|
||||||
|
dict(name='div', attrs={'class':'relation'}),
|
||||||
|
dict(name='p', attrs={'class':'path'}),
|
||||||
|
dict(name='div', attrs={'class':'clear_r'}),
|
||||||
|
dict(name='div', attrs={'id':'appendix'}),
|
||||||
|
dict(name='div', attrs={'id':'rail'}),
|
||||||
|
dict(name='div', attrs={'id':'div_comments'}),
|
||||||
|
dict(name='div', attrs={'class':'thumbs'}),
|
||||||
|
]
|
||||||
|
|
||||||
|
feeds = [
|
||||||
|
(u'Slovenija', u'http://www.siol.net/rss.aspx?path=Slovenija')
|
||||||
|
,(u'Lokalne novice', u'http://www.siol.net/rss.aspx?path=Slovenija/Lokalne_novice')
|
||||||
|
,(u'EU', u'http://www.siol.net/rss.aspx?path=EU')
|
||||||
|
,(u'Svet', u'http://www.siol.net/rss.aspx?path=Svet')
|
||||||
|
,(u'Gospodarstvo', u'http://www.siol.net/rss.aspx?path=Gospodarstvo')
|
||||||
|
,(u'Sportal', u'http://www.siol.net/rss.aspx?path=Sportal')
|
||||||
|
,(u'Trendi', u'http://www.siol.net/rss.aspx?path=Trendi')
|
||||||
|
,(u'Avtomoto', u'http://www.siol.net/rss.aspx?path=Avtomoto')
|
||||||
|
,(u'Tehnologija', u'http://www.siol.net/rss.aspx?path=Tehnologija')
|
||||||
|
,(u'TV / Film', u'http://www.siol.net/rss.aspx?path=TV')
|
||||||
|
]
|
||||||
|
|
@ -49,7 +49,6 @@ class Push(Command):
|
|||||||
print '\n\nPushing to:', host, '\n'
|
print '\n\nPushing to:', host, '\n'
|
||||||
threads.append(Thread(target=subprocess.check_call, args=(rcmd,)))
|
threads.append(Thread(target=subprocess.check_call, args=(rcmd,)))
|
||||||
threads[-1].start()
|
threads[-1].start()
|
||||||
subprocess.check_call(rcmd)
|
|
||||||
for thread in threads:
|
for thread in threads:
|
||||||
thread.join()
|
thread.join()
|
||||||
|
|
||||||
|
@ -5,8 +5,8 @@ __docformat__ = 'restructuredtext en'
|
|||||||
|
|
||||||
import textwrap, os, re
|
import textwrap, os, re
|
||||||
|
|
||||||
from PyQt4.QtCore import QCoreApplication, SIGNAL, QModelIndex, QTimer, Qt
|
from PyQt4.Qt import QCoreApplication, SIGNAL, QModelIndex, QTimer, Qt, \
|
||||||
from PyQt4.QtGui import QDialog, QPixmap, QGraphicsScene, QIcon
|
QDialog, QPixmap, QGraphicsScene, QIcon, QSize
|
||||||
|
|
||||||
from calibre.gui2.dialogs.book_info_ui import Ui_BookInfo
|
from calibre.gui2.dialogs.book_info_ui import Ui_BookInfo
|
||||||
from calibre.gui2 import dynamic, open_local_file
|
from calibre.gui2 import dynamic, open_local_file
|
||||||
@ -20,6 +20,8 @@ class BookInfo(QDialog, Ui_BookInfo):
|
|||||||
Ui_BookInfo.__init__(self)
|
Ui_BookInfo.__init__(self)
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
self.cover_pixmap = None
|
self.cover_pixmap = None
|
||||||
|
self.comments.sizeHint = self.comments_size_hint
|
||||||
|
|
||||||
desktop = QCoreApplication.instance().desktop()
|
desktop = QCoreApplication.instance().desktop()
|
||||||
screen_height = desktop.availableGeometry().height() - 100
|
screen_height = desktop.availableGeometry().height() - 100
|
||||||
self.resize(self.size().width(), screen_height)
|
self.resize(self.size().width(), screen_height)
|
||||||
@ -37,12 +39,16 @@ class BookInfo(QDialog, Ui_BookInfo):
|
|||||||
self.fit_cover.stateChanged.connect(self.toggle_cover_fit)
|
self.fit_cover.stateChanged.connect(self.toggle_cover_fit)
|
||||||
self.cover.resizeEvent = self.cover_view_resized
|
self.cover.resizeEvent = self.cover_view_resized
|
||||||
|
|
||||||
|
def comments_size_hint(self):
|
||||||
|
return QSize(350, 350)
|
||||||
|
|
||||||
def toggle_cover_fit(self, state):
|
def toggle_cover_fit(self, state):
|
||||||
dynamic.set('book_info_dialog_fit_cover', self.fit_cover.isChecked())
|
dynamic.set('book_info_dialog_fit_cover', self.fit_cover.isChecked())
|
||||||
self.resize_cover()
|
self.resize_cover()
|
||||||
|
|
||||||
def cover_view_resized(self, event):
|
def cover_view_resized(self, event):
|
||||||
QTimer.singleShot(1, self.resize_cover)
|
QTimer.singleShot(1, self.resize_cover)
|
||||||
|
|
||||||
def slave(self, current, previous):
|
def slave(self, current, previous):
|
||||||
row = current.row()
|
row = current.row()
|
||||||
self.refresh(row)
|
self.refresh(row)
|
||||||
|
@ -47,9 +47,15 @@
|
|||||||
<property name="title">
|
<property name="title">
|
||||||
<string>Comments</string>
|
<string>Comments</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout">
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
<item row="0" column="0">
|
<item>
|
||||||
<widget class="QWebView" name="comments">
|
<widget class="QWebView" name="comments">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
<property name="maximumSize">
|
<property name="maximumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>350</width>
|
<width>350</width>
|
||||||
|
@ -245,6 +245,9 @@ class BrowseServer(object):
|
|||||||
ans = ans.replace('{sort_select_label}', xml(_('Sort by')+':'))
|
ans = ans.replace('{sort_select_label}', xml(_('Sort by')+':'))
|
||||||
ans = ans.replace('{sort_cookie_name}', scn)
|
ans = ans.replace('{sort_cookie_name}', scn)
|
||||||
ans = ans.replace('{prefix}', self.opts.url_prefix)
|
ans = ans.replace('{prefix}', self.opts.url_prefix)
|
||||||
|
ans = ans.replace('{library}', _('library'))
|
||||||
|
ans = ans.replace('{home}', _('home'))
|
||||||
|
ans = ans.replace('{Search}', _('Search'))
|
||||||
opts = ['<option %svalue="%s">%s</option>' % (
|
opts = ['<option %svalue="%s">%s</option>' % (
|
||||||
'selected="selected" ' if k==sort else '',
|
'selected="selected" ' if k==sort else '',
|
||||||
xml(k), xml(n), ) for k, n in
|
xml(k), xml(n), ) for k, n in
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: calibre 0.7.27\n"
|
"Project-Id-Version: calibre 0.7.27\n"
|
||||||
"POT-Creation-Date: 2010-11-05 15:17+MDT\n"
|
"POT-Creation-Date: 2010-11-06 09:35+MDT\n"
|
||||||
"PO-Revision-Date: 2010-11-05 15:17+MDT\n"
|
"PO-Revision-Date: 2010-11-06 09:35+MDT\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"
|
||||||
@ -1932,7 +1932,7 @@ msgstr ""
|
|||||||
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313
|
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313
|
||||||
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127
|
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:160
|
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:160
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:620
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:623
|
||||||
msgid "Tags"
|
msgid "Tags"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2299,7 +2299,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:159
|
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:159
|
||||||
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71
|
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:618
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:621
|
||||||
msgid "Rating"
|
msgid "Rating"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3570,7 +3570,7 @@ msgid "Click the show details button to see which ones."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16
|
#: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:625
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:628
|
||||||
msgid "Show book details"
|
msgid "Show book details"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3878,7 +3878,7 @@ msgstr ""
|
|||||||
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25
|
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25
|
||||||
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:49
|
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:49
|
||||||
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:58
|
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:58
|
||||||
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:402
|
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:403
|
||||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119
|
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119
|
||||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:120
|
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:120
|
||||||
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:121
|
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:121
|
||||||
@ -3925,7 +3925,7 @@ msgstr ""
|
|||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:401
|
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:402
|
||||||
msgid "Double-click to open Book Details window"
|
msgid "Double-click to open Book Details window"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -7601,7 +7601,7 @@ msgid "Successfully downloaded metadata for %d out of %d books"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:287
|
#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:287
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:624
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:627
|
||||||
msgid "Details"
|
msgid "Details"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -8581,6 +8581,7 @@ msgstr ""
|
|||||||
#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:97
|
#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:97
|
||||||
#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:270
|
#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:270
|
||||||
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:574
|
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:574
|
||||||
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:250
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -10477,7 +10478,7 @@ msgid "Password to access your calibre library. Username is "
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:51
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:51
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:402
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:405
|
||||||
msgid "Loading, please wait"
|
msgid "Loading, please wait"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -10522,70 +10523,78 @@ msgstr ""
|
|||||||
msgid "Sort by"
|
msgid "Sort by"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:307
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:513
|
msgid "library"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:249
|
||||||
|
msgid "home"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:310
|
||||||
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:516
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569
|
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569
|
||||||
msgid "Newest"
|
msgid "Newest"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:308
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:311
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:514
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:517
|
||||||
msgid "All books"
|
msgid "All books"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:341
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:344
|
||||||
msgid "Browse books by"
|
msgid "Browse books by"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:346
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:349
|
||||||
msgid "Choose a category to browse by:"
|
msgid "Choose a category to browse by:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:422
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:425
|
||||||
msgid "Browsing by"
|
msgid "Browsing by"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:423
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:426
|
||||||
msgid "Up"
|
msgid "Up"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:544
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:547
|
||||||
msgid "in"
|
msgid "in"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:547
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:550
|
||||||
msgid "Books in"
|
msgid "Books in"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:599
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:602
|
||||||
msgid "Other formats"
|
msgid "Other formats"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:606
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:609
|
||||||
msgid "Read %s in the %s format"
|
msgid "Read %s in the %s format"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:611
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:614
|
||||||
msgid "Get"
|
msgid "Get"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:626
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:629
|
||||||
msgid "Permalink"
|
msgid "Permalink"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:627
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:630
|
||||||
msgid "A permanent link to this book"
|
msgid "A permanent link to this book"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:638
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641
|
||||||
msgid "This book has been deleted"
|
msgid "This book has been deleted"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:722
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:725
|
||||||
msgid "in search"
|
msgid "in search"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:724
|
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:727
|
||||||
msgid "Matching books"
|
msgid "Matching books"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user