Merge branch 'master' into kobo

pull/1138/head
Michael Shavit 5 years ago
commit 0b709f7dfb

@ -10,12 +10,12 @@ Calibre-Web is a web app providing a clean interface for browsing, reading and d
- Bootstrap 3 HTML5 interface
- full graphical setup
- User management with fine grained per-user permissions
- User management with fine-grained per-user permissions
- Admin interface
- User Interface in dutch, english, french, german, hungarian, italian, japanese, khmer, polish, russian, simplified chinese, spanish, swedish, ukrainian
- OPDS feed for eBook reader apps
- Filter and search by titles, authors, tags, series and language
- Create custom book collection (shelves)
- Create a custom book collection (shelves)
- Support for editing eBook metadata and deleting eBooks from Calibre library
- Support for converting eBooks through Calibre binaries
- Restrict eBook download to logged-in users
@ -25,7 +25,7 @@ Calibre-Web is a web app providing a clean interface for browsing, reading and d
- Upload new books in many formats
- Support for Calibre custom columns
- Ability to hide content based on categories for certain users
- Self update capability
- Self-update capability
- "Magic Link" login to make it easy to log on eReaders
## Quick start
@ -50,11 +50,11 @@ Python 2.7+, python 3.x+
Optionally, to enable on-the-fly conversion from one ebook format to another when using the send-to-kindle feature, or during editing of ebooks metadata:
[Download and install](https://calibre-ebook.com/download) the Calibre desktop program for your platform and enter the folder including programm name (normally /opt/calibre/ebook-convert, or C:\Program Files\calibre\ebook-convert.exe) in the field "calibre's converter tool" on the setup page.
[Download and install](https://calibre-ebook.com/download) the Calibre desktop program for your platform and enter the folder including program name (normally /opt/calibre/ebook-convert, or C:\Program Files\calibre\ebook-convert.exe) in the field "calibre's converter tool" on the setup page.
\*** DEPRECATED \*** Support will be removed in future releases
[Download](http://www.amazon.com/gp/feature.html?docId=1000765211) Amazon's KindleGen tool for your platform and place the binary named as `kindlegen` in the `vendor` folder.
[Download](http://www.amazon.com/gp/feature.html?docId=1000765211) Amazon's KindleGen tool for your platform and place the binary named `kindlegen` in the `vendor` folder.
## Docker Images
@ -82,4 +82,4 @@ Pre-built Docker images are available in these Docker Hub repositories:
# Wiki
For further informations, How To's and FAQ please check the [Wiki](https://github.com/janeczku/calibre-web/wiki)
For further information, How To's and FAQ please check the [Wiki](https://github.com/janeczku/calibre-web/wiki)

@ -37,6 +37,7 @@ except ImportError:
from flask_login.__about__ import __version__ as flask_loginVersion
try:
import unidecode
# _() necessary to make babel aware of string for translation
unidecode_version = _(u'installed')
except ImportError:
unidecode_version = _(u'not installed')
@ -62,8 +63,8 @@ _VERSIONS = OrderedDict(
iso639=isoLanguages.__version__,
pytz=pytz.__version__,
Unidecode = unidecode_version,
Flask_SimpleLDAP = _(u'installed') if bool(services.ldap) else _(u'not installed'),
Goodreads = _(u'installed') if bool(services.goodreads_support) else _(u'not installed'),
Flask_SimpleLDAP = u'installed' if bool(services.ldap) else u'not installed',
Goodreads = u'installed' if bool(services.goodreads_support) else u'not installed',
)
_VERSIONS.update(uploader.get_versions())

@ -272,6 +272,8 @@ def _configuration_update_helper():
gdrive_secrets = {}
gdriveError = gdriveutils.get_error_text(gdrive_secrets)
if "config_use_google_drive" in to_save and not config.config_use_google_drive and not gdriveError:
with open(gdriveutils.CLIENT_SECRETS, 'r') as settings:
gdrive_secrets = json.load(settings)['web']
if not gdrive_secrets:
return _configuration_result('client_secrets.json is not configured for web application')
gdriveutils.update_settings(
@ -415,6 +417,7 @@ def _configuration_result(error_flash=None, gdriveError=None):
if gdriveError:
gdriveError = _(gdriveError)
else:
if config.config_use_google_drive and not gdrive_authenticate:
gdrivefolders = gdriveutils.listRootFolders()
show_back_button = current_user.is_authenticated
@ -614,6 +617,21 @@ def edit_user(user_id):
return render_title_template("user_edit.html", translations=translations, languages=languages,
new_user=0, content=content, downloads=downloads, registered_oauth=oauth_check,
title=_(u"Edit User %(nick)s", nick=content.nickname), page="edituser")
if "nickname" in to_save and to_save["nickname"] != content.nickname:
# Query User nickname, if not existing, change
if not ub.session.query(ub.User).filter(ub.User.nickname == to_save["nickname"]).scalar():
content.nickname = to_save["nickname"]
else:
flash(_(u"This username is already taken"), category="error")
return render_title_template("user_edit.html",
translations=translations,
languages=languages,
new_user=0, content=content,
downloads=downloads,
registered_oauth=oauth_check,
title=_(u"Edit User %(nick)s",
nick=content.nickname),
page="edituser")
if "kindle_mail" in to_save and to_save["kindle_mail"] != content.kindle_mail:
content.kindle_mail = to_save["kindle_mail"]

@ -19,6 +19,7 @@
from __future__ import division, print_function, unicode_literals
import os
import re
from flask_babel import gettext as _
from . import config, logger
from .subproc_wrapper import process_wait
@ -26,7 +27,8 @@ from .subproc_wrapper import process_wait
log = logger.create()
_NOT_CONFIGURED = 'not configured'
# _() necessary to make babel aware of string for translation
_NOT_CONFIGURED = _('not configured')
_NOT_INSTALLED = 'not installed'
_EXECUTION_ERROR = 'Execution permissions missing'

@ -567,6 +567,12 @@ def upload():
filepath = os.path.join(config.config_calibre_dir, author_dir, title_dir)
saved_filename = os.path.join(filepath, title_dir + meta.extension.lower())
if title != u'Unknown' and authr != u'Unknown':
entry = helper.check_exists_book(authr, title)
if entry:
book_html = flash(_(u"Uploaded book probably exists in the library, consider to change before upload new: ")
+ Markup(render_title_template('book_exists_flash.html', entry=entry)), category="warning")
# check if file path exists, otherwise create it, copy file to calibre path and delete temp file
if not os.path.exists(filepath):
try:

@ -64,6 +64,11 @@ def get_epub_info(tmp_file_path, original_file_name, original_file_extension):
for s in ['title', 'description', 'creator', 'language', 'subject']:
tmp = p.xpath('dc:%s/text()' % s, namespaces=ns)
if len(tmp) > 0:
if s == 'creator':
epub_metadata[s] = ' & '.join(p.xpath('dc:%s/text()' % s, namespaces=ns))
elif s == 'subject':
epub_metadata[s] = ', '.join(p.xpath('dc:%s/text()' % s, namespaces=ns))
else:
epub_metadata[s] = p.xpath('dc:%s/text()' % s, namespaces=ns)[0]
else:
epub_metadata[s] = "Unknown"
@ -109,6 +114,8 @@ def get_epub_info(tmp_file_path, original_file_name, original_file_extension):
meta_cover = tree.xpath("/pkg:package/pkg:metadata/pkg:meta[@name='cover']/@content", namespaces=ns)
if len(meta_cover) > 0:
coversection = tree.xpath("/pkg:package/pkg:manifest/pkg:item[@id='"+meta_cover[0]+"']/@href", namespaces=ns)
else:
coversection = tree.xpath("/pkg:package/pkg:guide/pkg:reference/@href", namespaces=ns)
if len(coversection) > 0:
filetype = coversection[0].rsplit('.', 1)[-1]
if filetype == "xhtml" or filetype == "html": # if cover is (x)html format

@ -584,5 +584,7 @@ def get_error_text(client_secrets=None):
filedata = json.load(settings)
if 'web' not in filedata:
return 'client_secrets.json is not configured for web application'
if 'redirect_uris' not in filedata['web']:
return 'Callback url (redirect url) is missing in client_secrets.json'
if client_secrets:
client_secrets.update(filedata['web'])

@ -54,7 +54,7 @@ except ImportError:
use_unidecode = False
try:
from PIL import Image
from PIL import Image as PILImage
use_PIL = True
except ImportError:
use_PIL = False
@ -183,7 +183,7 @@ def check_read_formats(entry):
bookformats = list()
if len(entry.data):
for ele in iter(entry.data):
if ele.format in EXTENSIONS_READER:
if ele.format.upper() in EXTENSIONS_READER:
bookformats.append(ele.format.lower())
return bookformats
@ -511,9 +511,9 @@ def save_cover(img, book_path):
# convert to jpg because calibre only supports jpg
if content_type in ('image/png', 'image/webp'):
if hasattr(img,'stream'):
imgc = Image.open(img.stream)
imgc = PILImage.open(img.stream)
else:
imgc = Image.open(io.BytesIO(img.content))
imgc = PILImage.open(io.BytesIO(img.content))
im = imgc.convert('RGB')
tmp_bytesio = io.BytesIO()
im.save(tmp_bytesio, format='JPEG')
@ -794,9 +794,22 @@ def get_download_link(book_id, book_format):
else:
abort(404)
def check_exists_book(authr,title):
db.session.connection().connection.connection.create_function("lower", 1, lcase)
q = list()
authorterms = re.split(r'\s*&\s*', authr)
for authorterm in authorterms:
q.append(db.Books.authors.any(func.lower(db.Authors.name).ilike("%" + authorterm + "%")))
return db.session.query(db.Books).filter(
and_(db.Books.authors.any(and_(*q)),
func.lower(db.Books.title).ilike("%" + title + "%")
)).first()
############### Database Helper functions
def lcase(s):
return unidecode.unidecode(s.lower()) if use_unidecode else s.lower()
try:
return unidecode.unidecode(s.lower())
except Exception as e:
log.exception(e)

@ -18,6 +18,7 @@
from __future__ import division, print_function, unicode_literals
import os
import sys
import inspect
import logging
from logging import Formatter, StreamHandler
@ -34,6 +35,7 @@ DEFAULT_LOG_LEVEL = logging.INFO
DEFAULT_LOG_FILE = os.path.join(_CONFIG_DIR, "calibre-web.log")
DEFAULT_ACCESS_LOG = os.path.join(_CONFIG_DIR, "access.log")
LOG_TO_STDERR = '/dev/stderr'
LOG_TO_STDOUT = '/dev/stdout'
logging.addLevelName(logging.WARNING, "WARN")
logging.addLevelName(logging.CRITICAL, "CRIT")
@ -112,9 +114,13 @@ def setup(log_file, log_level=None):
return
logging.debug("logging to %s level %s", log_file, r.level)
if log_file == LOG_TO_STDERR:
if log_file == LOG_TO_STDERR or log_file == LOG_TO_STDOUT:
if log_file == LOG_TO_STDOUT:
file_handler = StreamHandler(sys.stdout)
file_handler.baseFilename = log_file
else:
file_handler = StreamHandler()
file_handler.baseFilename = LOG_TO_STDERR
file_handler.baseFilename = log_file
else:
try:
file_handler = RotatingFileHandler(log_file, maxBytes=50000, backupCount=2)
@ -164,5 +170,5 @@ class StderrLogger(object):
self.log.debug("Logging Error")
# default configuration, before application settngs are applied
# default configuration, before application settings are applied
setup(LOG_TO_STDERR, logging.DEBUG if os.environ.get('FLASK_DEBUG') else DEFAULT_LOG_LEVEL)

@ -47,7 +47,7 @@ def requires_basic_auth_if_no_ano(f):
def decorated(*args, **kwargs):
auth = request.authorization
if config.config_anonbrowse != 1:
if not auth or not check_auth(auth.username, auth.password):
if not auth or auth.type != 'basic' or not check_auth(auth.username, auth.password):
return authenticate()
return f(*args, **kwargs)
if config.config_login_type == constants.LOGIN_LDAP and services.ldap:
@ -219,7 +219,7 @@ def feed_series(book_id):
@requires_basic_auth_if_no_ano
def feed_shelfindex(public):
off = request.args.get("offset") or 0
if public is not 0:
if public != 0:
shelf = g.public_shelfes
number = len(shelf)
else:
@ -261,9 +261,10 @@ def opds_download_link(book_id, book_format):
return get_download_link(book_id,book_format)
@opds.route("/ajax/book/<string:uuid>/<library>")
@opds.route("/ajax/book/<string:uuid>")
@requires_basic_auth_if_no_ano
def get_metadata_calibre_companion(uuid):
def get_metadata_calibre_companion(uuid, library):
entry = db.session.query(db.Books).filter(db.Books.uuid.like("%" + uuid + "%")).first()
if entry is not None:
js = render_template('json.txt', entry=entry)

@ -146,6 +146,9 @@ class WebServer(object):
self.unix_socket_file = None
def _start_tornado(self):
if os.name == 'nt':
import asyncio
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
log.info('Starting Tornado server on %s', _readable_listen_address(self.listen_address, self.listen_port))
# Max Buffersize set to 200MB )

@ -64,6 +64,7 @@ span.glyphicon.glyphicon-tags {padding-right: 5px;color: #999;vertical-align: te
.navbar-default .navbar-toggle .icon-bar {background-color: #000;}
.navbar-default .navbar-toggle {border-color: #000;}
.cover { margin-bottom: 10px;}
.cover-height { max-height: 100px;}
.btn-file {position: relative; overflow: hidden;}
.btn-file input[type=file] {position: absolute; top: 0; right: 0; min-width: 100%; min-height: 100%; font-size: 100px; text-align: right; filter: alpha(opacity=0); opacity: 0; outline: none; background: white; cursor: inherit; display: block;}

@ -73,7 +73,7 @@
</div>
<div class="form-group">
<label for="series_index">{{_('Series id')}}</label>
<input type="number" step="0.1" min="0" class="form-control" name="series_index" id="series_index" value="{{book.series_index}}">
<input type="number" step="0.01" min="0" class="form-control" name="series_index" id="series_index" value="{{book.series_index}}">
</div>
<div class="form-group">
<label for="rating">{{_('Rating')}}</label>

@ -0,0 +1,3 @@
<a href="{{ url_for('web.show_book', book_id=entry.id) }}" data-toggle="modal" data-target="#bookDetailsModal" data-remote="false">
<span class="title">{{entry.title|shortentitle}}</span>
</a>

@ -41,7 +41,7 @@
{% for entry in entries %}
<entry>
<title>{{entry.title}}</title>
<id>{{entry.uuid}}</id>
<id>urn:uuid:{{entry.uuid}}</id>
<updated>{{entry.atom_timestamp}}</updated>
{% if entry.authors.__len__() > 0 %}
<author>

@ -15,28 +15,28 @@
</author>
<entry>
<title>{{_('Hot Books')}}</title>
<link rel="http://opds-spec.org/sort/popular" href="{{url_for('opds.feed_hot')}}" type="application/atom+xml;profile=opds-catalog"/>
<link href="{{url_for('opds.feed_hot')}}" type="application/atom+xml;profile=opds-catalog"/>
<id>{{url_for('opds.feed_hot')}}</id>
<updated>{{ current_time }}</updated>
<content type="text">{{_('Popular publications from this catalog based on Downloads.')}}</content>
</entry>
<entry>
<title>{{_('Best rated Books')}}</title>
<link rel="http://opds-spec.org/recommended" href="{{url_for('opds.feed_best_rated')}}" type="application/atom+xml;profile=opds-catalog"/>
<link href="{{url_for('opds.feed_best_rated')}}" type="application/atom+xml;profile=opds-catalog"/>
<id>{{url_for('opds.feed_best_rated')}}</id>
<updated>{{ current_time }}</updated>
<content type="text">{{_('Popular publications from this catalog based on Rating.')}}</content>
</entry>
<entry>
<title>{{_('New Books')}}</title>
<link rel="http://opds-spec.org/sort/new" href="{{url_for('opds.feed_new')}}" type="application/atom+xml;profile=opds-catalog"/>
<link href="{{url_for('opds.feed_new')}}" type="application/atom+xml;profile=opds-catalog"/>
<id>{{url_for('opds.feed_new')}}</id>
<updated>{{ current_time }}</updated>
<content type="text">{{_('The latest Books')}}</content>
</entry>
<entry>
<title>{{_('Random Books')}}</title>
<link rel="http://opds-spec.org/featured" href="{{url_for('opds.feed_discover')}}" type="application/atom+xml;profile=opds-catalog"/>
<link href="{{url_for('opds.feed_discover')}}" type="application/atom+xml;profile=opds-catalog"/>
<id>{{url_for('opds.feed_discover')}}</id>
<updated>{{ current_time }}</updated>
<content type="text">{{_('Show Random Books')}}</content>
@ -44,14 +44,14 @@
{% if not current_user.is_anonymous %}
<entry>
<title>{{_('Read Books')}}</title>
<link rel="subsection" href="{{url_for('opds.feed_read_books')}}" type="application/atom+xml;profile=opds-catalog"/>
<link href="{{url_for('opds.feed_read_books')}}" type="application/atom+xml;profile=opds-catalog"/>
<id>{{url_for('opds.feed_read_books')}}</id>
<updated>{{ current_time }}</updated>
<content type="text">{{_('Read Books')}}</content>
</entry>
<entry>
<title>{{_('Unread Books')}}</title>
<link rel="subsection" href="{{url_for('opds.feed_unread_books')}}" type="application/atom+xml;profile=opds-catalog"/>
<link href="{{url_for('opds.feed_unread_books')}}" type="application/atom+xml;profile=opds-catalog"/>
<id>{{url_for('opds.feed_unread_books')}}</id>
<updated>{{ current_time }}</updated>
<content type="text">{{_('Unread Books')}}</content>
@ -59,35 +59,35 @@
{% endif %}
<entry>
<title>{{_('Authors')}}</title>
<link rel="subsection" href="{{url_for('opds.feed_authorindex')}}" type="application/atom+xml;profile=opds-catalog"/>
<link href="{{url_for('opds.feed_authorindex')}}" type="application/atom+xml;profile=opds-catalog"/>
<id>{{url_for('opds.feed_authorindex')}}</id>
<updated>{{ current_time }}</updated>
<content type="text">{{_('Books ordered by Author')}}</content>
</entry>
<entry>
<title>{{_('Publishers')}}</title>
<link rel="subsection" href="{{url_for('opds.feed_publisherindex')}}" type="application/atom+xml;profile=opds-catalog"/>
<link href="{{url_for('opds.feed_publisherindex')}}" type="application/atom+xml;profile=opds-catalog"/>
<id>{{url_for('opds.feed_publisherindex')}}</id>
<updated>{{ current_time }}</updated>
<content type="text">{{_('Books ordered by publisher')}}</content>
</entry>
<entry>
<title>{{_('Category list')}}</title>
<link rel="subsection" href="{{url_for('opds.feed_categoryindex')}}" type="application/atom+xml;profile=opds-catalog"/>
<link href="{{url_for('opds.feed_categoryindex')}}" type="application/atom+xml;profile=opds-catalog"/>
<id>{{url_for('opds.feed_categoryindex')}}</id>
<updated>{{ current_time }}</updated>
<content type="text">{{_('Books ordered by category')}}</content>
</entry>
<entry>
<title>{{_('Series list')}}</title>
<link rel="subsection" href="{{url_for('opds.feed_seriesindex')}}" type="application/atom+xml;profile=opds-catalog"/>
<link href="{{url_for('opds.feed_seriesindex')}}" type="application/atom+xml;profile=opds-catalog"/>
<id>{{url_for('opds.feed_seriesindex')}}</id>
<updated>{{ current_time }}</updated>
<content type="text">{{_('Books ordered by series')}}</content>
</entry>
<entry>
<title>{{_('Public Shelves')}}</title>
<link rel="subsection" href="{{url_for('opds.feed_shelfindex', public="public")}}" type="application/atom+xml;profile=opds-catalog"/>
<link href="{{url_for('opds.feed_shelfindex', public='public')}}" type="application/atom+xml;profile=opds-catalog"/>
<id>{{url_for('opds.feed_shelfindex', public="public")}}</id>
<updated>{{ current_time }}</updated>
<content type="text">{{_('Books organized in public shelfs, visible to everyone')}}</content>
@ -95,7 +95,7 @@
{% if not current_user.is_anonymous %}
<entry>
<title>{{_('Your Shelves')}}</title>
<link rel="subsection" href="{{url_for('opds.feed_shelfindex')}}" type="application/atom+xml;profile=opds-catalog"/>
<link href="{{url_for('opds.feed_shelfindex')}}" type="application/atom+xml;profile=opds-catalog"/>
<id>{{url_for('opds.feed_shelfindex')}}</id>
<updated>{{ current_time }}</updated>
<content type="text">{{_("User's own shelfs, only visible to the current user himself")}}</content>

@ -99,6 +99,11 @@
<div id="flash_info" class="alert alert-info">{{ message[1] }}</div>
</div>
{%endif%}
{%if message[0] == "warning" %}
<div class="row-fluid text-center" style="margin-top: -20px;">
<div id="flash_warning" class="alert alert-warning">{{ message[1] }}</div>
</div>
{%endif%}
{%if message[0] == "success" %}
<div class="row-fluid text-center" style="margin-top: -20px;">
<div id="flash_success" class="alert alert-success">{{ message[1] }}</div>

@ -17,11 +17,6 @@
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}">
<link href="{{ url_for('static', filename='css/libs/bootstrap.min.css') }}" rel="stylesheet" media="screen">
<link rel="stylesheet" href="{{ url_for('static', filename='css/libs/bar-ui.css') }}" />
<!--link rel="stylesheet" href="{{ url_for('static', filename='css/listen.css') }}" /-->
<!-- <link rel="stylesheet" href="{{ url_for('static', filename='css/libs/normalize.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='css/main.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='css/popup.css') }}"> -->
<script>
"use strict";
@ -30,95 +25,6 @@
</head>
<body>
<!--div id="main">
<div class="content">
<h2>{{ entry.title }}</h2>
<div class="cover">
<img src="{{ url_for('web.get_cover', book_id=entry.id) }}" alt="{{ entry.title }}" />
</div>
{% if entry.ratings.__len__() > 0 %}
<div class="rating">
<p>
{% for number in range((entry.ratings[0].rating/2)|int(2)) %}
<span class="glyphicon glyphicon-star good"></span>
{% if loop.last and loop.index
< 5 %} {% for numer in range(5 - loop.index) %} <span class="glyphicon glyphicon-star">
</span>
{% endfor %} {% endif %} {% endfor %}
</p>
</div>
{% endif %}
<h3>{{_('Description:')}}</h3>
{{entry.comments[0].text|safe}}
</div-->
<!--div class="sm2-bar-ui compact full-width">
<div class="bd sm2-main-controls">
<div class="sm2-inline-texture"></div>
<div class="sm2-inline-gradient"></div>
<div class="sm2-inline-element sm2-button-element">
<div class="sm2-button-bd">
<a href="#play" class="sm2-inline-button sm2-icon-play-pause">{{_('Play / pause')}}</a>
</div>
</div>
<div class="sm2-inline-element sm2-inline-status">
<div class="sm2-playlist">
<div class="sm2-playlist-target">
<!-- playlist <ul> + <li> markup will be injected here -->
<!-- if you want default / non-JS content, you can put that here. -->
<!--noscript><p>JavaScript is required.</p></noscript>
</div>
</div>
<div class="sm2-progress">
<div class="sm2-row">
<div class="sm2-inline-time">0:00</div>
<div class="sm2-progress-bd">
<div class="sm2-progress-track">
<div class="sm2-progress-bar"></div>
<div class="sm2-progress-ball"><div class="icon-overlay"></div></div>
</div>
</div>
<div class="sm2-inline-duration">0:00</div>
</div>
</div>
</div>
<div class="sm2-inline-element sm2-button-element sm2-volume">
<div class="sm2-button-bd">
<span class="sm2-inline-button sm2-volume-control volume-shade"></span>
<a href="#volume" class="sm2-inline-button sm2-volume-control">{{_('volume')}}</a>
</div>
</div>
</div>
<div class="bd sm2-playlist-drawer sm2-element">
<div class="sm2-inline-texture">
<div class="sm2-box-shadow"></div>
</div>
<!-- playlist content is mirrored here -->
<!--div class="sm2-playlist-wrapper">
<ul class="sm2-playlist-bd">
<li><a href="{{ url_for('web.serve_book', book_id=mp3file,book_format=audioformat)}}"><b>{% for author in entry.authors %}{{author.name.replace('|',',')}}
{% if not loop.last %} & {% endif %} {% endfor %}</b> - {{entry.title}}</a></li>
</ul>
</div>
</div>
</div-->
<div class="sm2-bar-ui full-width fixed">

@ -86,7 +86,7 @@
filePath: "{{ url_for('static', filename='js/libs/') }}",
cssPath: "{{ url_for('static', filename='css/') }}",
bookmarkUrl: "{{ url_for('web.bookmark', book_id=bookid, book_format='EPUB') }}",
bookUrl: "{{ url_for('web.download_link', book_id=bookid, book_format='epub', anyname='file.epub') }}",
bookUrl: "{{ url_for('web.serve_book', book_id=bookid, book_format='epub', anyname='file.epub') }}",
bookmark: "{{ bookmark.bookmark_key if bookmark != None }}",
useBookmarks: "{{ g.user.is_authenticated | tojson }}"
};

@ -1,11 +1,31 @@
{% extends "layout.html" %}
{% block body %}
<div class="col-sm-6 col-lg-6 col-xs-6">
<div class="col-sm-8 col-lg-8 col-xs-12">
<h2>{{title}}</h2>
<div>{{_('Drag \'n drop to rearrange order')}}</div>
<div id="sortTrue" class="list-group">
{% for entry in entries %}
<div id="{{entry.id}}" class="list-group-item">{{entry.title}}</div>
<div id="{{entry.id}}" class="list-group-item">
<div class="row">
<div class="col-lg-2 col-sm-4 hidden-xs">
<img class="cover-height" src="{{ url_for('web.get_cover', book_id=entry.id) }}">
</div>
<div class="col-lg-10 col-sm-8 col-xs-12">
{{entry.title}}
{% if entry.series|length > 0 %}
<br>
{{entry.series_index}} - {{entry.series[0].name}}
{% endif %}
<br>
{% for author in entry.authors %}
{{author.name.replace('|',',')}}
{% if not loop.last %}
&amp;
{% endif %}
{% endfor %}
</div>
</div>
</div>
{% endfor %}
</div>
<button onclick="sendData('{{ url_for('shelf.order_shelf', shelf_id=shelf.id) }}')" class="btn btn-default" id="ChangeOrder">{{_('Change order')}}</button>

@ -37,7 +37,7 @@
{% for library,version in versions.items() %}
<tr>
<th>{{library}}</th>
<td>{{version}}</td>
<td>{{_(version)}}</td>
</tr>
{% endfor %}
</tbody>

@ -3,7 +3,7 @@
<div class="discover">
<h1>{{title}}</h1>
<form role="form" method="POST" autocomplete="off">
{% if g.user and g.user.role_admin() and new_user %}
{% if new_user or ( g.user and content.nickname != "Guest" and g.user.role_admin() ) %}
<div class="form-group required">
<label for="nickname">{{_('Username')}}</label>
<input type="text" class="form-control" name="nickname" id="nickname" value="{{ content.nickname if content.nickname != None }}" autocomplete="off">

@ -0,0 +1,65 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)
# Copyright (C) 2018-2019 OzzieIsaacs
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from subproc_wrapper import process_open, cmdlineCall
import os
import sys
import re
import time
def main():
quotes = [1, 2]
format_new_ext = '.mobi'
format_old_ext = '.epub'
file_path = '/home/matthias/Dokumente/bücher/Bettina Szramah/Die Giftmischerin TCP_IP (10)/Die Giftmischerin TCP_IP - Bettina, Szrama'
command = ['/opt/calibre/ebook-convert', (file_path + format_old_ext),
(file_path + format_new_ext)]
#print(command)
#p1 = cmdlineCall(command[0],command[1:])
#time.sleep(10)
#print(p1)
p = process_open(command, quotes)
while p.poll() is None:
nextline = p.stdout.readline()
if os.name == 'nt' and sys.version_info < (3, 0):
nextline = nextline.decode('windows-1252')
elif os.name == 'posix' and sys.version_info < (3, 0):
nextline = nextline.decode('utf-8')
# log.debug(nextline.strip('\r\n'))
# parse progress string from calibre-converter
progress = re.search(r"(\d+)%\s.*", nextline)
if progress:
print('Progress:' + str(progress))
# self.UIqueue[index]['progress'] = progress.group(1) + ' %
# process returncode
check = p.returncode
calibre_traceback = p.stderr.readlines()
for ele in calibre_traceback:
if sys.version_info < (3, 0):
ele = ele.decode('utf-8')
print(ele.strip('\n'))
if not ele.startswith('Traceback') and not ele.startswith(' File'):
print( "Calibre failed with error: %s" % ele.strip('\n'))
print(str(check))
if __name__ == '__main__':
main()

@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2019-09-17 18:24+0200\n"
"PO-Revision-Date: 2019-08-06 18:36+0200\n"
"POT-Creation-Date: 2019-11-16 08:00+0100\n"
"PO-Revision-Date: 2019-11-16 08:00+0100\n"
"Last-Translator: Ozzie Isaacs\n"
"Language: de\n"
"Language-Team: \n"
@ -18,17 +18,15 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.7.0\n"
#: cps/about.py:40 cps/about.py:65 cps/about.py:66 cps/uploader.py:228
#: cps/about.py:41
msgid "installed"
msgstr "Installiert"
#: cps/about.py:42 cps/about.py:65 cps/about.py:66 cps/uploader.py:213
#: cps/uploader.py:214 cps/uploader.py:218 cps/uploader.py:222
#: cps/uploader.py:226 cps/uploader.py:230
#: cps/about.py:43
msgid "not installed"
msgstr "Nicht installiert"
#: cps/about.py:80
#: cps/about.py:81
msgid "Statistics"
msgstr "Statistiken"
@ -40,7 +38,7 @@ msgstr "Server neu gestartet, Seite bitte neu laden"
msgid "Performing shutdown of server, please close window"
msgstr "Server wird heruntergefahren, Fenster bitte schließen"
#: cps/admin.py:111 cps/updater.py:445
#: cps/admin.py:111 cps/updater.py:446
msgid "Unknown"
msgstr "Unbekannt"
@ -60,7 +58,7 @@ msgstr "Konfiguration von Calibre-Web wurde aktualisiert"
msgid "Basic Configuration"
msgstr "Basiskonfiguration"
#: cps/admin.py:452 cps/web.py:1048
#: cps/admin.py:452 cps/web.py:1055
msgid "Please fill out all fields!"
msgstr "Bitte alle Felder ausfüllen!"
@ -69,7 +67,7 @@ msgstr "Bitte alle Felder ausfüllen!"
msgid "Add new user"
msgstr "Neuen Benutzer hinzufügen"
#: cps/admin.py:463 cps/web.py:1251
#: cps/admin.py:463 cps/web.py:1258
msgid "E-mail is not from valid domain"
msgstr "E-Mail bezieht sich nicht auf eine gültige Domain"
@ -96,7 +94,7 @@ msgstr "Test-E-Mail wurde erfolgreich an %(kindlemail)s versendet"
msgid "There was an error sending the Test e-mail: %(res)s"
msgstr "Es trat ein Fehler beim Versenden der Test-E-Mail auf: %(res)s"
#: cps/admin.py:527 cps/web.py:1031
#: cps/admin.py:527 cps/web.py:1038
msgid "Please configure your kindle e-mail address first..."
msgstr "Bitte zuerst die Kindle E-Mailadresse konfigurieren..."
@ -113,85 +111,93 @@ msgstr "Benutzer '%(nick)s' gelöscht"
msgid "No admin user remaining, can't delete user"
msgstr "Benutzer kann nicht gelöscht werden, es wäre kein Admin Benutzer übrig"
#: cps/admin.py:600 cps/web.py:1277
#: cps/admin.py:599 cps/web.py:1299
msgid "Found an existing account for this e-mail address."
msgstr "Es existiert bereits ein Benutzer für diese E-Mailadresse."
#: cps/admin.py:603 cps/admin.py:615
#: cps/admin.py:602 cps/admin.py:615 cps/admin.py:629 cps/web.py:1274
#, python-format
msgid "Edit User %(nick)s"
msgstr "Benutzer %(nick)s bearbeiten"
#: cps/admin.py:609
#: cps/admin.py:608 cps/web.py:1267
msgid "This username is already taken"
msgstr "Benutzername ist schon vorhanden"
#: cps/admin.py:623
#, python-format
msgid "User '%(nick)s' updated"
msgstr "Benutzer '%(nick)s' aktualisiert"
#: cps/admin.py:612
#: cps/admin.py:626
msgid "An unknown error occured."
msgstr "Es ist ein unbekannter Fehler aufgetreten."
#: cps/admin.py:631
#: cps/admin.py:645
#, python-format
msgid "Password for user %(user)s reset"
msgstr "Passwort für Benutzer %(user)s wurde zurückgesetzt"
#: cps/admin.py:634 cps/web.py:1073
#: cps/admin.py:648 cps/web.py:1080
msgid "An unknown error occurred. Please try again later."
msgstr "Es ist ein unbekannter Fehler aufgetreten. Bitte später erneut versuchen."
#: cps/admin.py:645
#: cps/admin.py:659
msgid "Logfile viewer"
msgstr "Logdatei Anzeige"
#: cps/admin.py:680
#: cps/admin.py:694
msgid "Requesting update package"
msgstr "Frage Update an"
#: cps/admin.py:681
#: cps/admin.py:695
msgid "Downloading update package"
msgstr "Lade Update herunter"
#: cps/admin.py:682
#: cps/admin.py:696
msgid "Unzipping update package"
msgstr "Entpacke Update"
#: cps/admin.py:683
#: cps/admin.py:697
msgid "Replacing files"
msgstr "Ersetze Dateien"
#: cps/admin.py:684
#: cps/admin.py:698
msgid "Database connections are closed"
msgstr "Schließe Datenbankverbindungen"
#: cps/admin.py:685
#: cps/admin.py:699
msgid "Stopping server"
msgstr "Stoppe Server"
#: cps/admin.py:686
#: cps/admin.py:700
msgid "Update finished, please press okay and reload page"
msgstr "Update abgeschlossen, bitte okay drücken und Seite neu laden"
#: cps/admin.py:687 cps/admin.py:688 cps/admin.py:689 cps/admin.py:690
#: cps/admin.py:701 cps/admin.py:702 cps/admin.py:703 cps/admin.py:704
msgid "Update failed:"
msgstr "Update fehlgeschlagen:"
#: cps/admin.py:687 cps/updater.py:271 cps/updater.py:456 cps/updater.py:458
#: cps/admin.py:701 cps/updater.py:272 cps/updater.py:457 cps/updater.py:459
msgid "HTTP Error"
msgstr "HTTP Fehler"
#: cps/admin.py:688 cps/updater.py:273 cps/updater.py:460
#: cps/admin.py:702 cps/updater.py:274 cps/updater.py:461
msgid "Connection error"
msgstr "Verbindungsfehler"
#: cps/admin.py:689 cps/updater.py:275 cps/updater.py:462
#: cps/admin.py:703 cps/updater.py:276 cps/updater.py:463
msgid "Timeout while establishing connection"
msgstr "Timeout beim Verbindungsaufbau"
#: cps/admin.py:690 cps/updater.py:277 cps/updater.py:464
#: cps/admin.py:704 cps/updater.py:278 cps/updater.py:465
msgid "General error"
msgstr "Allgemeiner Fehler"
#: cps/converter.py:31
msgid "not configured"
msgstr "Nicht konfiguriert"
#: cps/editbooks.py:214 cps/editbooks.py:393
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr "Öffnen des Buchs fehlgeschlagen. Datei existiert nicht oder ist nicht zugänglich"
@ -575,7 +581,7 @@ msgid "Show best rated books"
msgstr "Zeige am besten bewertete Bücher"
#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:67
#: cps/web.py:969
#: cps/web.py:976
msgid "Read Books"
msgstr "Gelesene Bücher"
@ -584,7 +590,7 @@ msgid "Show read and unread"
msgstr "Zeige gelesene/ungelesene Bücher"
#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:71
#: cps/web.py:973
#: cps/web.py:980
msgid "Unread Books"
msgstr "Ungelesene Bücher"
@ -657,228 +663,233 @@ msgstr "Dateiformate"
msgid "Show file formats selection"
msgstr "Zeige Dateiformatauswahl"
#: cps/updater.py:251 cps/updater.py:358 cps/updater.py:371
#: cps/updater.py:252 cps/updater.py:359 cps/updater.py:372
msgid "Unexpected data while reading update information"
msgstr "Updateinformationen enthalten unbekannte Daten"
#: cps/updater.py:258 cps/updater.py:364
#: cps/updater.py:259 cps/updater.py:365
msgid "No update available. You already have the latest version installed"
msgstr "Kein Update verfügbar. Es ist bereits die aktuellste Version installiert"
#: cps/updater.py:284
#: cps/updater.py:285
msgid "A new update is available. Click on the button below to update to the latest version."
msgstr "Es sind Updates verfügbar. Klicke auf den Button unten, um auf die aktuellste Version zu aktualisieren."
#: cps/updater.py:337
#: cps/updater.py:338
msgid "Could not fetch update information"
msgstr "Updateinformationen konnten nicht geladen werden"
#: cps/updater.py:351
#: cps/updater.py:352
msgid "No release information available"
msgstr "Keine Releaseinformationen verfügbar"
#: cps/updater.py:404 cps/updater.py:413
#: cps/updater.py:405 cps/updater.py:414
#, python-format
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr "Ein neues Update ist verfügbar. Klicke auf den Button unten, um auf Version: %(version)s zu aktualisieren"
#: cps/updater.py:423
#: cps/updater.py:424
msgid "Click on the button below to update to the latest stable version."
msgstr "Klicke auf den Button unten, um auf die letzte stabile Version zu aktualisieren."
#: cps/web.py:458
#: cps/web.py:459
msgid "Recently Added Books"
msgstr "Kürzlich hinzugefügte Bücher"
#: cps/web.py:486
#: cps/web.py:487
msgid "Best rated books"
msgstr "Am besten bewertete Bücher"
#: cps/templates/index.xml:38 cps/web.py:494
#: cps/templates/index.xml:38 cps/web.py:495
msgid "Random Books"
msgstr "Zufällige Bücher"
#: cps/web.py:520
#: cps/web.py:521
msgid "Books"
msgstr "Bücher"
#: cps/web.py:547
#: cps/web.py:548
msgid "Hot Books (most downloaded)"
msgstr "Beliebte Bücher (am meisten Downloads)"
#: cps/web.py:558 cps/web.py:1298 cps/web.py:1386
#: cps/web.py:559 cps/web.py:1320 cps/web.py:1408
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "Öffnen des Buchs fehlgeschlagen. Datei existiert nicht oder ist nicht zugänglich:"
#: cps/web.py:571
#: cps/web.py:572
#, python-format
msgid "Author: %(name)s"
msgstr "Author: %(name)s"
#: cps/web.py:583
#: cps/web.py:584
#, python-format
msgid "Publisher: %(name)s"
msgstr "Verleger: %(name)s"
#: cps/web.py:594
#: cps/web.py:595
#, python-format
msgid "Series: %(serie)s"
msgstr "Serie: %(serie)s"
#: cps/web.py:605
#: cps/web.py:606
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Bewertung: %(rating)s Sterne"
#: cps/web.py:616
#: cps/web.py:617
#, python-format
msgid "File format: %(format)s"
msgstr "Dateiformat: %(format)s"
#: cps/web.py:628
#: cps/web.py:629
#, python-format
msgid "Category: %(name)s"
msgstr "Kategorie: %(name)s"
#: cps/web.py:645
#: cps/web.py:646
#, python-format
msgid "Language: %(name)s"
msgstr "Sprache: %(name)s"
#: cps/web.py:677
#: cps/web.py:678
msgid "Publisher list"
msgstr "Verlegerliste"
#: cps/templates/index.xml:82 cps/web.py:693
#: cps/templates/index.xml:82 cps/web.py:694
msgid "Series list"
msgstr "Serienliste"
#: cps/web.py:707
#: cps/web.py:708
msgid "Ratings list"
msgstr "Bewertungsliste"
#: cps/web.py:720
#: cps/web.py:721
msgid "File formats list"
msgstr "Liste der Dateiformate"
#: cps/web.py:748
#: cps/web.py:749
msgid "Available languages"
msgstr "Verfügbare Sprachen"
#: cps/templates/index.xml:75 cps/web.py:765
#: cps/templates/index.xml:75 cps/web.py:766
msgid "Category list"
msgstr "Kategorienliste"
#: cps/templates/layout.html:73 cps/web.py:779
#: cps/templates/layout.html:73 cps/web.py:780
msgid "Tasks"
msgstr "Aufgaben"
#: cps/web.py:844
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45 cps/web.py:802 cps/web.py:804
msgid "Search"
msgstr "Suche"
#: cps/web.py:851
msgid "Published after "
msgstr "Herausgegeben nach dem "
#: cps/web.py:851
#: cps/web.py:858
msgid "Published before "
msgstr "Herausgegeben vor dem "
#: cps/web.py:865
#: cps/web.py:872
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Bewertung <= %(rating)s"
#: cps/web.py:867
#: cps/web.py:874
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Bewertung >= %(rating)s"
#: cps/web.py:927 cps/web.py:937
#: cps/web.py:934 cps/web.py:944
msgid "search"
msgstr "Suche"
#: cps/web.py:1020
#: cps/web.py:1027
msgid "Please configure the SMTP mail settings first..."
msgstr "Bitte zuerst die SMTP-Einstellung konfigurieren ..."
#: cps/web.py:1025
#: cps/web.py:1032
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Buch erfolgreich zum Senden an %(kindlemail)s eingereiht"
#: cps/web.py:1029
#: cps/web.py:1036
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr "Beim Senden des Buchs trat ein Fehler auf: %(res)s"
#: cps/web.py:1049 cps/web.py:1074 cps/web.py:1078 cps/web.py:1083
#: cps/web.py:1087
#: cps/web.py:1056 cps/web.py:1081 cps/web.py:1085 cps/web.py:1090
#: cps/web.py:1094
msgid "register"
msgstr "Registieren"
#: cps/web.py:1076
#: cps/web.py:1083
msgid "Your e-mail is not allowed to register"
msgstr "Diese E-Mail ist nicht für die Registrierung zugelassen"
#: cps/web.py:1079
#: cps/web.py:1086
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Eine Bestätigungs-E-Mail wurde an deinen E-Mail Account versendet."
#: cps/web.py:1082
#: cps/web.py:1089
msgid "This username or e-mail address is already in use."
msgstr "Benutzername oder E-Mailadresse ist bereits in Verwendung."
#: cps/web.py:1097
#: cps/web.py:1104
msgid "Cannot activate LDAP authentication"
msgstr "LDAP-Authentifizierung kann nicht aktiviert werden"
#: cps/web.py:1106 cps/web.py:1212
#: cps/web.py:1113 cps/web.py:1219
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "Du bist nun eingeloggt als '%(nickname)s'"
#: cps/web.py:1110
#: cps/web.py:1117
msgid "Could not login. LDAP server down, please contact your administrator"
msgstr "Login nicht erfolgreich, LDAP Server nicht erreichbar, bitte Administrator kontaktieren"
#: cps/web.py:1114 cps/web.py:1122
#: cps/web.py:1121 cps/web.py:1129
msgid "Wrong Username or Password"
msgstr "Falscher Benutzername oder Passwort"
#: cps/web.py:1118
#: cps/web.py:1125
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "Eingeloggt als: '%(nickname)s'"
#: cps/web.py:1126 cps/web.py:1148
#: cps/web.py:1133 cps/web.py:1155
msgid "login"
msgstr "Login"
#: cps/web.py:1160 cps/web.py:1191
#: cps/web.py:1167 cps/web.py:1198
msgid "Token not found"
msgstr "Token wurde nicht gefunden"
#: cps/web.py:1168 cps/web.py:1199
#: cps/web.py:1175 cps/web.py:1206
msgid "Token has expired"
msgstr "Das Token ist abgelaufen"
#: cps/web.py:1176
#: cps/web.py:1183
msgid "Success! Please return to your device"
msgstr "Erfolg! Bitte zum Gerät zurückkehren"
#: cps/web.py:1253 cps/web.py:1280 cps/web.py:1284
#: cps/web.py:1260 cps/web.py:1302 cps/web.py:1306
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)s's Profil"
#: cps/web.py:1282
#: cps/web.py:1304
msgid "Profile updated"
msgstr "Profil aktualisiert"
#: cps/web.py:1308 cps/web.py:1310 cps/web.py:1312 cps/web.py:1318
#: cps/web.py:1322
#: cps/web.py:1330 cps/web.py:1332 cps/web.py:1334 cps/web.py:1340
#: cps/web.py:1344
msgid "Read a Book"
msgstr "Lese ein Buch"
#: cps/web.py:1332
#: cps/web.py:1354
msgid "Error opening eBook. File does not exist or file is not accessible."
msgstr "Fehler beim Öffnen des eBooks. Datei existiert nicht oder ist nicht zugänglich."
@ -1056,7 +1067,7 @@ msgstr "OK"
#: cps/templates/config_edit.html:321 cps/templates/config_view_edit.html:147
#: cps/templates/email_edit.html:40 cps/templates/email_edit.html:74
#: cps/templates/layout.html:28 cps/templates/shelf.html:73
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:12
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:32
#: cps/templates/user_edit.html:132
msgid "Back"
msgstr "Zurück"
@ -1690,11 +1701,6 @@ msgstr "Soll diese Domain-Regel wirklich gelöscht werden?"
msgid "Next"
msgstr "Nächste"
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45
msgid "Search"
msgstr "Suche"
#: cps/templates/http_error.html:37
msgid "Create issue"
msgstr ""
@ -2054,7 +2060,7 @@ msgstr "Lösche dieses Bücherregal"
msgid "Edit Shelf"
msgstr "Bücherregal editieren"
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:11
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:31
msgid "Change order"
msgstr "Reihenfolge ändern"
@ -2274,9 +2280,6 @@ msgstr "Letzte Downloads"
#~ msgid "Excecution permissions missing"
#~ msgstr "Ausführungsberechtigung nicht vorhanden"
#~ msgid "not configured"
#~ msgstr "Nicht konfiguriert"
#~ msgid "Error excecuting UnRar"
#~ msgstr "Fehler bei der Ausführung von UnRar"
@ -2307,12 +2310,6 @@ msgstr "Letzte Downloads"
#~ msgid "Google OAuth Client Secret"
#~ msgstr "Google OAuth Client-Secret"
#~ msgid "Installed"
#~ msgstr ""
#~ msgid "Not installed"
#~ msgstr ""
#~ msgid "Use"
#~ msgstr "Benutzen"

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2019-09-06 19:03+0200\n"
"POT-Creation-Date: 2019-11-16 08:00+0100\n"
"PO-Revision-Date: 2019-07-26 11:44+0100\n"
"Last-Translator: minakmostoles <xxx@xxx.com>\n"
"Language: es\n"
@ -19,18 +19,16 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.7.0\n"
#: cps/about.py:40 cps/about.py:65 cps/about.py:66 cps/uploader.py:228
#: cps/about.py:41
msgid "installed"
msgstr ""
#: cps/about.py:42 cps/about.py:65 cps/about.py:66 cps/uploader.py:213
#: cps/uploader.py:214 cps/uploader.py:218 cps/uploader.py:222
#: cps/uploader.py:226 cps/uploader.py:230
#: cps/about.py:43
msgid "not installed"
msgstr "No instalado"
# "Last-Translator: victorhck <victorhck@mailbox.org>\n"
#: cps/about.py:80
#: cps/about.py:81
msgid "Statistics"
msgstr "Estadísticas"
@ -42,7 +40,7 @@ msgstr "Servidor reiniciado. Por favor, recargue la página"
msgid "Performing shutdown of server, please close window"
msgstr "Servidor en proceso de apagado. Por favor, cierre la ventana."
#: cps/admin.py:111 cps/updater.py:445
#: cps/admin.py:111 cps/updater.py:446
msgid "Unknown"
msgstr "Desconocido"
@ -62,7 +60,7 @@ msgstr "Configuración de Calibre-Web actualizada"
msgid "Basic Configuration"
msgstr "Configuración básica"
#: cps/admin.py:452 cps/web.py:1050
#: cps/admin.py:452 cps/web.py:1055
msgid "Please fill out all fields!"
msgstr "¡Por favor completar todos los campos!"
@ -71,7 +69,7 @@ msgstr "¡Por favor completar todos los campos!"
msgid "Add new user"
msgstr "Agregar un nuevo usuario"
#: cps/admin.py:463 cps/web.py:1253
#: cps/admin.py:463 cps/web.py:1258
msgid "E-mail is not from valid domain"
msgstr "El correo electrónico no tiene un nombre de dominio válido"
@ -98,7 +96,7 @@ msgstr "Correo electrónico de prueba enviado con éxito a %(kindlemail)s"
msgid "There was an error sending the Test e-mail: %(res)s"
msgstr "Ocurrió un error enviando el correo electrónico de prueba: %(res)s"
#: cps/admin.py:527 cps/web.py:1033
#: cps/admin.py:527 cps/web.py:1038
msgid "Please configure your kindle e-mail address first..."
msgstr "Por favor configure primero la dirección de correo de su kindle..."
@ -115,85 +113,93 @@ msgstr "Usuario '%(nick)s' borrado"
msgid "No admin user remaining, can't delete user"
msgstr "No queda ningún usuario administrador, no se puede eliminar usuario"
#: cps/admin.py:600 cps/web.py:1279
#: cps/admin.py:599 cps/web.py:1299
msgid "Found an existing account for this e-mail address."
msgstr "Encontrada una cuenta existente para esa dirección de correo electrónico."
#: cps/admin.py:603 cps/admin.py:615
#: cps/admin.py:602 cps/admin.py:615 cps/admin.py:629 cps/web.py:1274
#, python-format
msgid "Edit User %(nick)s"
msgstr "Editar Usuario %(nick)s"
#: cps/admin.py:609
#: cps/admin.py:608 cps/web.py:1267
msgid "This username is already taken"
msgstr ""
#: cps/admin.py:623
#, python-format
msgid "User '%(nick)s' updated"
msgstr "Usuario '%(nick)s' actualizado"
#: cps/admin.py:612
#: cps/admin.py:626
msgid "An unknown error occured."
msgstr "Ocurrió un error inesperado."
#: cps/admin.py:631
#: cps/admin.py:645
#, python-format
msgid "Password for user %(user)s reset"
msgstr "Contraseña para el usuario %(user)s reinicializada"
#: cps/admin.py:634 cps/web.py:1075
#: cps/admin.py:648 cps/web.py:1080
msgid "An unknown error occurred. Please try again later."
msgstr "Ha ocurrido un error desconocido. Por favor vuelva a intentarlo más tarde."
#: cps/admin.py:645
#: cps/admin.py:659
msgid "Logfile viewer"
msgstr "Visor del fichero de log"
#: cps/admin.py:680
#: cps/admin.py:694
msgid "Requesting update package"
msgstr "Solicitando paquete de actualización"
#: cps/admin.py:681
#: cps/admin.py:695
msgid "Downloading update package"
msgstr "Descargando paquete de actualización"
#: cps/admin.py:682
#: cps/admin.py:696
msgid "Unzipping update package"
msgstr "Descomprimiendo paquete de actualización"
#: cps/admin.py:683
#: cps/admin.py:697
msgid "Replacing files"
msgstr "Remplazando ficheros"
#: cps/admin.py:684
#: cps/admin.py:698
msgid "Database connections are closed"
msgstr "Los conexiones de base datos están cerradas"
#: cps/admin.py:685
#: cps/admin.py:699
msgid "Stopping server"
msgstr "Parando servidor"
#: cps/admin.py:686
#: cps/admin.py:700
msgid "Update finished, please press okay and reload page"
msgstr "Actualización finalizada. Por favor, pulse OK y recargue la página"
#: cps/admin.py:687 cps/admin.py:688 cps/admin.py:689 cps/admin.py:690
#: cps/admin.py:701 cps/admin.py:702 cps/admin.py:703 cps/admin.py:704
msgid "Update failed:"
msgstr "Fallo al actualizar"
#: cps/admin.py:687 cps/updater.py:271 cps/updater.py:456 cps/updater.py:458
#: cps/admin.py:701 cps/updater.py:272 cps/updater.py:457 cps/updater.py:459
msgid "HTTP Error"
msgstr "Error HTTP"
#: cps/admin.py:688 cps/updater.py:273 cps/updater.py:460
#: cps/admin.py:702 cps/updater.py:274 cps/updater.py:461
msgid "Connection error"
msgstr "Error de conexión"
#: cps/admin.py:689 cps/updater.py:275 cps/updater.py:462
#: cps/admin.py:703 cps/updater.py:276 cps/updater.py:463
msgid "Timeout while establishing connection"
msgstr "Tiempo agotado mientras se trataba de establecer la conexión"
#: cps/admin.py:690 cps/updater.py:277 cps/updater.py:464
#: cps/admin.py:704 cps/updater.py:278 cps/updater.py:465
msgid "General error"
msgstr "Error general"
#: cps/converter.py:31
msgid "not configured"
msgstr ""
#: cps/editbooks.py:214 cps/editbooks.py:393
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr "Error abriendo un eBook. El archivo no existe o no es accesible"
@ -577,7 +583,7 @@ msgid "Show best rated books"
msgstr "Mostrar libros mejor valorados"
#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:67
#: cps/web.py:971
#: cps/web.py:976
msgid "Read Books"
msgstr "Libros leídos"
@ -586,7 +592,7 @@ msgid "Show read and unread"
msgstr "Mostrar leídos y no leídos"
#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:71
#: cps/web.py:975
#: cps/web.py:980
msgid "Unread Books"
msgstr "Libros no leídos"
@ -659,228 +665,233 @@ msgstr "Formatos de archivo"
msgid "Show file formats selection"
msgstr "Mostrar selección de formatos de archivo"
#: cps/updater.py:251 cps/updater.py:358 cps/updater.py:371
#: cps/updater.py:252 cps/updater.py:359 cps/updater.py:372
msgid "Unexpected data while reading update information"
msgstr "Dato inesperado mientras se leía la información de actualización"
#: cps/updater.py:258 cps/updater.py:364
#: cps/updater.py:259 cps/updater.py:365
msgid "No update available. You already have the latest version installed"
msgstr "Actualización no disponible. Ya tienes la versión más reciente instalada"
#: cps/updater.py:284
#: cps/updater.py:285
msgid "A new update is available. Click on the button below to update to the latest version."
msgstr "Una nueva actualización está disponible. Haz clic en el botón inferior para actualizar a la versión más reciente."
#: cps/updater.py:337
#: cps/updater.py:338
msgid "Could not fetch update information"
msgstr "No se puede conseguir información sobre la actualización"
#: cps/updater.py:351
#: cps/updater.py:352
msgid "No release information available"
msgstr "No hay información del lanzamiento disponible"
#: cps/updater.py:404 cps/updater.py:413
#: cps/updater.py:405 cps/updater.py:414
#, python-format
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr "Hay una nueva actualización disponible. Haz clic en el botón de abajo para actualizar a la versión: %(version)s"
#: cps/updater.py:423
#: cps/updater.py:424
msgid "Click on the button below to update to the latest stable version."
msgstr "Haz clic en el botón de abajo para actualizar a la última versión estable."
#: cps/web.py:460
#: cps/web.py:459
msgid "Recently Added Books"
msgstr "Libros añadidos recientemente"
#: cps/web.py:488
#: cps/web.py:487
msgid "Best rated books"
msgstr "Libros mejor valorados"
#: cps/templates/index.xml:38 cps/web.py:496
#: cps/templates/index.xml:38 cps/web.py:495
msgid "Random Books"
msgstr "Libros al azar"
#: cps/web.py:522
#: cps/web.py:521
msgid "Books"
msgstr "Libros"
#: cps/web.py:549
#: cps/web.py:548
msgid "Hot Books (most downloaded)"
msgstr "Libros populares (los más descargados)"
#: cps/web.py:560 cps/web.py:1300 cps/web.py:1388
#: cps/web.py:559 cps/web.py:1320 cps/web.py:1408
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "Error al abrir eBook. El archivo no existe o no es accesible:"
#: cps/web.py:573
#: cps/web.py:572
#, python-format
msgid "Author: %(name)s"
msgstr "Autor/es: %(name)s"
#: cps/web.py:585
#: cps/web.py:584
#, python-format
msgid "Publisher: %(name)s"
msgstr "Editor/es: "
#: cps/web.py:596
#: cps/web.py:595
#, python-format
msgid "Series: %(serie)s"
msgstr "Series: %(serie)s"
#: cps/web.py:607
#: cps/web.py:606
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Calificación: %(rating)s estrellas"
#: cps/web.py:618
#: cps/web.py:617
#, python-format
msgid "File format: %(format)s"
msgstr "Formato del fichero: %(format)s"
#: cps/web.py:630
#: cps/web.py:629
#, python-format
msgid "Category: %(name)s"
msgstr "Categoría : %(name)s"
#: cps/web.py:647
#: cps/web.py:646
#, python-format
msgid "Language: %(name)s"
msgstr "Idioma: %(name)s"
#: cps/web.py:679
#: cps/web.py:678
msgid "Publisher list"
msgstr "Lista de editores"
#: cps/templates/index.xml:82 cps/web.py:695
#: cps/templates/index.xml:82 cps/web.py:694
msgid "Series list"
msgstr "Lista de series"
#: cps/web.py:709
#: cps/web.py:708
msgid "Ratings list"
msgstr "Lista de calificaciones"
#: cps/web.py:722
#: cps/web.py:721
msgid "File formats list"
msgstr "Lista de formatos"
#: cps/web.py:750
#: cps/web.py:749
msgid "Available languages"
msgstr "Idiomas disponibles"
#: cps/templates/index.xml:75 cps/web.py:767
#: cps/templates/index.xml:75 cps/web.py:766
msgid "Category list"
msgstr "Lista de categorías"
#: cps/templates/layout.html:73 cps/web.py:781
#: cps/templates/layout.html:73 cps/web.py:780
msgid "Tasks"
msgstr "Tareas"
#: cps/web.py:846
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45 cps/web.py:802 cps/web.py:804
msgid "Search"
msgstr "Buscar"
#: cps/web.py:851
msgid "Published after "
msgstr "Publicado después de"
#: cps/web.py:853
#: cps/web.py:858
msgid "Published before "
msgstr "Publicado antes de"
#: cps/web.py:867
#: cps/web.py:872
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Calificación <= %(rating)s"
#: cps/web.py:869
#: cps/web.py:874
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Calificación >= %(rating)s"
#: cps/web.py:929 cps/web.py:939
#: cps/web.py:934 cps/web.py:944
msgid "search"
msgstr "búsqueda"
#: cps/web.py:1022
#: cps/web.py:1027
msgid "Please configure the SMTP mail settings first..."
msgstr "Configura primero los parámetros del servidor SMTP..."
#: cps/web.py:1027
#: cps/web.py:1032
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Libro puesto en la cola de envío a %(kindlemail)s"
#: cps/web.py:1031
#: cps/web.py:1036
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr "Ha sucedido un error en el envío del libro: %(res)s"
#: cps/web.py:1051 cps/web.py:1076 cps/web.py:1080 cps/web.py:1085
#: cps/web.py:1089
#: cps/web.py:1056 cps/web.py:1081 cps/web.py:1085 cps/web.py:1090
#: cps/web.py:1094
msgid "register"
msgstr "registrarse"
#: cps/web.py:1078
#: cps/web.py:1083
msgid "Your e-mail is not allowed to register"
msgstr "Su correo electrónico no está permitido para registrarse"
#: cps/web.py:1081
#: cps/web.py:1086
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Se ha enviado un correo electrónico de verificación a su cuenta de correo electrónico."
#: cps/web.py:1084
#: cps/web.py:1089
msgid "This username or e-mail address is already in use."
msgstr "Este nombre de usuario o correo electrónico ya están en uso."
#: cps/web.py:1099
#: cps/web.py:1104
msgid "Cannot activate LDAP authentication"
msgstr "No se puede activar la autenticación LDAP"
#: cps/web.py:1108 cps/web.py:1214
#: cps/web.py:1113 cps/web.py:1219
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "Sesión iniciada como : '%(nickname)s'"
#: cps/web.py:1112
#: cps/web.py:1117
msgid "Could not login. LDAP server down, please contact your administrator"
msgstr "No pude entrar a la cuenta. El servidor LDAP está inactivo, por favor contacte a su administrador"
#: cps/web.py:1116 cps/web.py:1124
#: cps/web.py:1121 cps/web.py:1129
msgid "Wrong Username or Password"
msgstr "Usuario o contraseña inválido"
#: cps/web.py:1120
#: cps/web.py:1125
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "Ahora estás conectado como: '%(nickname)s'"
#: cps/web.py:1128 cps/web.py:1150
#: cps/web.py:1133 cps/web.py:1155
msgid "login"
msgstr "Iniciar sesión"
#: cps/web.py:1162 cps/web.py:1193
#: cps/web.py:1167 cps/web.py:1198
msgid "Token not found"
msgstr "Token no encontrado"
#: cps/web.py:1170 cps/web.py:1201
#: cps/web.py:1175 cps/web.py:1206
msgid "Token has expired"
msgstr "El token ha expirado"
#: cps/web.py:1178
#: cps/web.py:1183
msgid "Success! Please return to your device"
msgstr "¡Correcto! Por favor regrese a su dispositivo"
#: cps/web.py:1255 cps/web.py:1282 cps/web.py:1286
#: cps/web.py:1260 cps/web.py:1302 cps/web.py:1306
#, python-format
msgid "%(name)s's profile"
msgstr "Perfil de %(name)s"
#: cps/web.py:1284
#: cps/web.py:1304
msgid "Profile updated"
msgstr "Perfil actualizado"
#: cps/web.py:1310 cps/web.py:1312 cps/web.py:1314 cps/web.py:1320
#: cps/web.py:1324
#: cps/web.py:1330 cps/web.py:1332 cps/web.py:1334 cps/web.py:1340
#: cps/web.py:1344
msgid "Read a Book"
msgstr "Leer un libro"
#: cps/web.py:1334
#: cps/web.py:1354
msgid "Error opening eBook. File does not exist or file is not accessible."
msgstr "Error al abrir el eBook. El archivo no existe o el archivo no es accesible."
@ -1058,7 +1069,7 @@ msgstr "Ok"
#: cps/templates/config_edit.html:321 cps/templates/config_view_edit.html:147
#: cps/templates/email_edit.html:40 cps/templates/email_edit.html:74
#: cps/templates/layout.html:28 cps/templates/shelf.html:73
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:12
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:32
#: cps/templates/user_edit.html:132
msgid "Back"
msgstr "Regresar"
@ -1692,11 +1703,6 @@ msgstr "¿Realmente quiere eliminar esta regla de dominio?"
msgid "Next"
msgstr "Siguiente"
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45
msgid "Search"
msgstr "Buscar"
#: cps/templates/http_error.html:37
msgid "Create issue"
msgstr "Abrir una incidencia"
@ -2056,7 +2062,7 @@ msgstr "Borrar este estante"
msgid "Edit Shelf"
msgstr "Editar estante"
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:11
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:31
msgid "Change order"
msgstr "Cambiar orden"

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2019-09-06 19:03+0200\n"
"POT-Creation-Date: 2019-11-16 08:00+0100\n"
"PO-Revision-Date: 2019-08-21 15:20+0100\n"
"Last-Translator: Nicolas Roudninski <nicoroud@gmail.com>\n"
"Language: fr\n"
@ -31,17 +31,15 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.7.0\n"
#: cps/about.py:40 cps/about.py:65 cps/about.py:66 cps/uploader.py:228
#: cps/about.py:41
msgid "installed"
msgstr ""
#: cps/about.py:42 cps/about.py:65 cps/about.py:66 cps/uploader.py:213
#: cps/uploader.py:214 cps/uploader.py:218 cps/uploader.py:222
#: cps/uploader.py:226 cps/uploader.py:230
#: cps/about.py:43
msgid "not installed"
msgstr "non installé"
#: cps/about.py:80
#: cps/about.py:81
msgid "Statistics"
msgstr "Statistiques"
@ -53,7 +51,7 @@ msgstr "Serveur redémarré, merci de rafraîchir la page"
msgid "Performing shutdown of server, please close window"
msgstr "Arrêt du serveur en cours, merci de fermer la fenêtre"
#: cps/admin.py:111 cps/updater.py:445
#: cps/admin.py:111 cps/updater.py:446
msgid "Unknown"
msgstr "Inconnu"
@ -73,7 +71,7 @@ msgstr "Configuration de Calibre-Web mise à jour"
msgid "Basic Configuration"
msgstr "Configuration principale"
#: cps/admin.py:452 cps/web.py:1050
#: cps/admin.py:452 cps/web.py:1055
msgid "Please fill out all fields!"
msgstr "SVP, complétez tous les champs !"
@ -82,7 +80,7 @@ msgstr "SVP, complétez tous les champs !"
msgid "Add new user"
msgstr "Ajouter un nouvel utilisateur"
#: cps/admin.py:463 cps/web.py:1253
#: cps/admin.py:463 cps/web.py:1258
msgid "E-mail is not from valid domain"
msgstr "Cette adresse de courriel nappartient pas à un domaine valide"
@ -109,7 +107,7 @@ msgstr "Courriel de test envoyé avec succès sur %(kindlemail)s"
msgid "There was an error sending the Test e-mail: %(res)s"
msgstr "Il y a eu une erreur pendant lenvoi du courriel de test : %(res)s"
#: cps/admin.py:527 cps/web.py:1033
#: cps/admin.py:527 cps/web.py:1038
msgid "Please configure your kindle e-mail address first..."
msgstr "Veuillez configurer votre adresse de courriel Kindle en premier lieu…"
@ -126,85 +124,93 @@ msgstr "Utilisateur '%(nick)s' supprimé"
msgid "No admin user remaining, can't delete user"
msgstr "Aucun utilisateur admin restant, impossible de supprimer lutilisateur"
#: cps/admin.py:600 cps/web.py:1279
#: cps/admin.py:599 cps/web.py:1299
msgid "Found an existing account for this e-mail address."
msgstr "Un compte existant a été trouvé pour cette adresse de courriel."
#: cps/admin.py:603 cps/admin.py:615
#: cps/admin.py:602 cps/admin.py:615 cps/admin.py:629 cps/web.py:1274
#, python-format
msgid "Edit User %(nick)s"
msgstr "Éditer l'utilisateur %(nick)s"
#: cps/admin.py:609
#: cps/admin.py:608 cps/web.py:1267
msgid "This username is already taken"
msgstr ""
#: cps/admin.py:623
#, python-format
msgid "User '%(nick)s' updated"
msgstr "Utilisateur '%(nick)s' mis à jour"
#: cps/admin.py:612
#: cps/admin.py:626
msgid "An unknown error occured."
msgstr "Oups ! Une erreur inconnue a eu lieu."
#: cps/admin.py:631
#: cps/admin.py:645
#, python-format
msgid "Password for user %(user)s reset"
msgstr "Le mot de passe de lutilisateur %(user)s a été réinitialisé"
#: cps/admin.py:634 cps/web.py:1075
#: cps/admin.py:648 cps/web.py:1080
msgid "An unknown error occurred. Please try again later."
msgstr "Une erreur inconnue est survenue. Veuillez réessayer plus tard."
#: cps/admin.py:645
#: cps/admin.py:659
msgid "Logfile viewer"
msgstr "Visualiseur de fichier journal"
#: cps/admin.py:680
#: cps/admin.py:694
msgid "Requesting update package"
msgstr "Demander une mise à jour"
#: cps/admin.py:681
#: cps/admin.py:695
msgid "Downloading update package"
msgstr "Téléchargement la mise à jour"
#: cps/admin.py:682
#: cps/admin.py:696
msgid "Unzipping update package"
msgstr "Décompression de la mise à jour"
#: cps/admin.py:683
#: cps/admin.py:697
msgid "Replacing files"
msgstr "Remplacement des fichiers"
#: cps/admin.py:684
#: cps/admin.py:698
msgid "Database connections are closed"
msgstr "Connexion à la base de donnée fermée"
#: cps/admin.py:685
#: cps/admin.py:699
msgid "Stopping server"
msgstr "Arrêt du serveur"
#: cps/admin.py:686
#: cps/admin.py:700
msgid "Update finished, please press okay and reload page"
msgstr "Mise à jour terminée, merci dappuyer sur okay et de rafraîchir la page"
#: cps/admin.py:687 cps/admin.py:688 cps/admin.py:689 cps/admin.py:690
#: cps/admin.py:701 cps/admin.py:702 cps/admin.py:703 cps/admin.py:704
msgid "Update failed:"
msgstr "La mise à jour a échoué :"
#: cps/admin.py:687 cps/updater.py:271 cps/updater.py:456 cps/updater.py:458
#: cps/admin.py:701 cps/updater.py:272 cps/updater.py:457 cps/updater.py:459
msgid "HTTP Error"
msgstr "Erreur HTTP"
#: cps/admin.py:688 cps/updater.py:273 cps/updater.py:460
#: cps/admin.py:702 cps/updater.py:274 cps/updater.py:461
msgid "Connection error"
msgstr "Erreur de connexion"
#: cps/admin.py:689 cps/updater.py:275 cps/updater.py:462
#: cps/admin.py:703 cps/updater.py:276 cps/updater.py:463
msgid "Timeout while establishing connection"
msgstr "Délai d'attente dépassé lors de l'établissement de connexion"
#: cps/admin.py:690 cps/updater.py:277 cps/updater.py:464
#: cps/admin.py:704 cps/updater.py:278 cps/updater.py:465
msgid "General error"
msgstr "Erreur générale"
#: cps/converter.py:31
msgid "not configured"
msgstr ""
#: cps/editbooks.py:214 cps/editbooks.py:393
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr "Erreur à louverture du livre. Le fichier nexiste pas ou nest pas accessible"
@ -588,7 +594,7 @@ msgid "Show best rated books"
msgstr "Montrer les livres les mieux notés"
#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:67
#: cps/web.py:971
#: cps/web.py:976
msgid "Read Books"
msgstr "Livres lus"
@ -597,7 +603,7 @@ msgid "Show read and unread"
msgstr "Montrer lu et non-lu"
#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:71
#: cps/web.py:975
#: cps/web.py:980
msgid "Unread Books"
msgstr "Livres non-lus"
@ -670,228 +676,233 @@ msgstr "Format de fichier"
msgid "Show file formats selection"
msgstr "Afficher la sélection des formats de fichiers"
#: cps/updater.py:251 cps/updater.py:358 cps/updater.py:371
#: cps/updater.py:252 cps/updater.py:359 cps/updater.py:372
msgid "Unexpected data while reading update information"
msgstr "Données inattendues lors de la lecture des informations de mise à jour"
#: cps/updater.py:258 cps/updater.py:364
#: cps/updater.py:259 cps/updater.py:365
msgid "No update available. You already have the latest version installed"
msgstr "Aucune mise à jour disponible. Vous avez déjà la dernière version installée"
#: cps/updater.py:284
#: cps/updater.py:285
msgid "A new update is available. Click on the button below to update to the latest version."
msgstr "Une nouvelle mise à jour est disponible. Cliquez sur le bouton ci-dessous pour charger la dernière version."
#: cps/updater.py:337
#: cps/updater.py:338
msgid "Could not fetch update information"
msgstr "Impossible d'extraire les informations de mise à jour"
#: cps/updater.py:351
#: cps/updater.py:352
msgid "No release information available"
msgstr "Aucune information concernant cette version nest disponible"
#: cps/updater.py:404 cps/updater.py:413
#: cps/updater.py:405 cps/updater.py:414
#, python-format
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr "Une nouvelle mise à jour est disponible. Cliquez sur le bouton ci-dessous pour charger la version %(version)s"
#: cps/updater.py:423
#: cps/updater.py:424
msgid "Click on the button below to update to the latest stable version."
msgstr "Téléchargez la dernière version en cliquant sur le bouton ci-dessous."
#: cps/web.py:460
#: cps/web.py:459
msgid "Recently Added Books"
msgstr "Ajouts récents"
#: cps/web.py:488
#: cps/web.py:487
msgid "Best rated books"
msgstr "Livres les mieux notés"
#: cps/templates/index.xml:38 cps/web.py:496
#: cps/templates/index.xml:38 cps/web.py:495
msgid "Random Books"
msgstr "Livres au hasard"
#: cps/web.py:522
#: cps/web.py:521
msgid "Books"
msgstr "Livres"
#: cps/web.py:549
#: cps/web.py:548
msgid "Hot Books (most downloaded)"
msgstr "Livres populaires (les plus téléchargés)"
#: cps/web.py:560 cps/web.py:1300 cps/web.py:1388
#: cps/web.py:559 cps/web.py:1320 cps/web.py:1408
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "Erreur d'ouverture du livre numérique. Le fichier n'existe pas ou n'est pas accessible :"
#: cps/web.py:573
#: cps/web.py:572
#, python-format
msgid "Author: %(name)s"
msgstr "Auteur: %(name)s"
#: cps/web.py:585
#: cps/web.py:584
#, python-format
msgid "Publisher: %(name)s"
msgstr "Editeur : '%(name)s'"
#: cps/web.py:596
#: cps/web.py:595
#, python-format
msgid "Series: %(serie)s"
msgstr "Séries : %(serie)s"
#: cps/web.py:607
#: cps/web.py:606
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Note: %(rating)s étoiles"
#: cps/web.py:618
#: cps/web.py:617
#, python-format
msgid "File format: %(format)s"
msgstr "Format de fichier: %(format)s"
#: cps/web.py:630
#: cps/web.py:629
#, python-format
msgid "Category: %(name)s"
msgstr "Catégorie : %(name)s"
#: cps/web.py:647
#: cps/web.py:646
#, python-format
msgid "Language: %(name)s"
msgstr "Langue : %(name)s"
#: cps/web.py:679
#: cps/web.py:678
msgid "Publisher list"
msgstr "Liste des éditeurs"
#: cps/templates/index.xml:82 cps/web.py:695
#: cps/templates/index.xml:82 cps/web.py:694
msgid "Series list"
msgstr "Liste des séries"
#: cps/web.py:709
#: cps/web.py:708
msgid "Ratings list"
msgstr ""
#: cps/web.py:722
#: cps/web.py:721
msgid "File formats list"
msgstr ""
#: cps/web.py:750
#: cps/web.py:749
msgid "Available languages"
msgstr "Langues disponibles"
#: cps/templates/index.xml:75 cps/web.py:767
#: cps/templates/index.xml:75 cps/web.py:766
msgid "Category list"
msgstr "Liste des catégories"
#: cps/templates/layout.html:73 cps/web.py:781
#: cps/templates/layout.html:73 cps/web.py:780
msgid "Tasks"
msgstr "Tâches"
#: cps/web.py:846
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45 cps/web.py:802 cps/web.py:804
msgid "Search"
msgstr "Chercher"
#: cps/web.py:851
msgid "Published after "
msgstr "Publié après le "
#: cps/web.py:853
#: cps/web.py:858
msgid "Published before "
msgstr "Publié avant le "
#: cps/web.py:867
#: cps/web.py:872
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Évaluation <= %(rating)s"
#: cps/web.py:869
#: cps/web.py:874
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Évaluation >= %(rating)s"
#: cps/web.py:929 cps/web.py:939
#: cps/web.py:934 cps/web.py:944
msgid "search"
msgstr "recherche"
#: cps/web.py:1022
#: cps/web.py:1027
msgid "Please configure the SMTP mail settings first..."
msgstr "Veuillez configurer les paramètres SMTP au préalable…"
#: cps/web.py:1027
#: cps/web.py:1032
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Le livre a été mis en file de traitement avec succès pour un envois vers %(kindlemail)s"
#: cps/web.py:1031
#: cps/web.py:1036
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr "Il y a eu une erreur en envoyant ce livre : %(res)s"
#: cps/web.py:1051 cps/web.py:1076 cps/web.py:1080 cps/web.py:1085
#: cps/web.py:1089
#: cps/web.py:1056 cps/web.py:1081 cps/web.py:1085 cps/web.py:1090
#: cps/web.py:1094
msgid "register"
msgstr "senregistrer"
#: cps/web.py:1078
#: cps/web.py:1083
msgid "Your e-mail is not allowed to register"
msgstr "Votre adresse de courriel nest pas autorisé pour une inscription"
#: cps/web.py:1081
#: cps/web.py:1086
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Le courriel de confirmation a été envoyé à votre adresse."
#: cps/web.py:1084
#: cps/web.py:1089
msgid "This username or e-mail address is already in use."
msgstr "Ce nom dutilisateur ou cette adresse de courriel sont déjà utilisés."
#: cps/web.py:1099
#: cps/web.py:1104
msgid "Cannot activate LDAP authentication"
msgstr "Impossible dactiver lauthentification LDAP"
#: cps/web.py:1108 cps/web.py:1214
#: cps/web.py:1113 cps/web.py:1219
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "vous êtes maintenant connecté sous : '%(nickname)s'"
#: cps/web.py:1112
#: cps/web.py:1117
msgid "Could not login. LDAP server down, please contact your administrator"
msgstr "Impossible de se connecter. Serveur LDAP hors service, veuillez contacter votre administrateur"
#: cps/web.py:1116 cps/web.py:1124
#: cps/web.py:1121 cps/web.py:1129
msgid "Wrong Username or Password"
msgstr "Mauvais nom d'utilisateur ou mot de passe"
#: cps/web.py:1120
#: cps/web.py:1125
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "Vous êtes maintenant connecté en tant que : %(nickname)s"
#: cps/web.py:1128 cps/web.py:1150
#: cps/web.py:1133 cps/web.py:1155
msgid "login"
msgstr "connexion"
#: cps/web.py:1162 cps/web.py:1193
#: cps/web.py:1167 cps/web.py:1198
msgid "Token not found"
msgstr "Jeton non trouvé"
#: cps/web.py:1170 cps/web.py:1201
#: cps/web.py:1175 cps/web.py:1206
msgid "Token has expired"
msgstr "Jeton expiré"
#: cps/web.py:1178
#: cps/web.py:1183
msgid "Success! Please return to your device"
msgstr "Réussite! Merci de vous tourner vers votre appareil"
#: cps/web.py:1255 cps/web.py:1282 cps/web.py:1286
#: cps/web.py:1260 cps/web.py:1302 cps/web.py:1306
#, python-format
msgid "%(name)s's profile"
msgstr "Profil de %(name)s"
#: cps/web.py:1284
#: cps/web.py:1304
msgid "Profile updated"
msgstr "Profil mis à jour"
#: cps/web.py:1310 cps/web.py:1312 cps/web.py:1314 cps/web.py:1320
#: cps/web.py:1324
#: cps/web.py:1330 cps/web.py:1332 cps/web.py:1334 cps/web.py:1340
#: cps/web.py:1344
msgid "Read a Book"
msgstr "Lire un livre"
#: cps/web.py:1334
#: cps/web.py:1354
msgid "Error opening eBook. File does not exist or file is not accessible."
msgstr "Erreur lors de louverture dun eBook. Le fichier nexiste pas ou le fichier nest pas accessible."
@ -1069,7 +1080,7 @@ msgstr "Oui"
#: cps/templates/config_edit.html:321 cps/templates/config_view_edit.html:147
#: cps/templates/email_edit.html:40 cps/templates/email_edit.html:74
#: cps/templates/layout.html:28 cps/templates/shelf.html:73
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:12
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:32
#: cps/templates/user_edit.html:132
msgid "Back"
msgstr "Retour"
@ -1703,11 +1714,6 @@ msgstr "Souhaitez-vous vraiment supprimer cette règle de domaine ?"
msgid "Next"
msgstr "Suivant"
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45
msgid "Search"
msgstr "Chercher"
#: cps/templates/http_error.html:37
msgid "Create issue"
msgstr "Signaler un problème"
@ -2067,7 +2073,7 @@ msgstr "Supprimer cette étagère"
msgid "Edit Shelf"
msgstr "Modifier létagère"
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:11
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:31
msgid "Change order"
msgstr "Modifier lordre"

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2019-09-06 19:03+0200\n"
"POT-Creation-Date: 2019-11-16 08:00+0100\n"
"PO-Revision-Date: 2019-04-06 23:36+0200\n"
"Last-Translator: \n"
"Language: hu\n"
@ -18,17 +18,15 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.7.0\n"
#: cps/about.py:40 cps/about.py:65 cps/about.py:66 cps/uploader.py:228
#: cps/about.py:41
msgid "installed"
msgstr ""
#: cps/about.py:42 cps/about.py:65 cps/about.py:66 cps/uploader.py:213
#: cps/uploader.py:214 cps/uploader.py:218 cps/uploader.py:222
#: cps/uploader.py:226 cps/uploader.py:230
#: cps/about.py:43
msgid "not installed"
msgstr "nincs telepítve"
#: cps/about.py:80
#: cps/about.py:81
msgid "Statistics"
msgstr "Statisztika"
@ -40,7 +38,7 @@ msgstr "A kiszolgáló újraindult, tölts be újra az oldalt!"
msgid "Performing shutdown of server, please close window"
msgstr "A kiszolgáló leállítása folyamatban, zárd be ezt az ablakot"
#: cps/admin.py:111 cps/updater.py:445
#: cps/admin.py:111 cps/updater.py:446
msgid "Unknown"
msgstr "Ismeretlen"
@ -60,7 +58,7 @@ msgstr "A Calibre-Web konfigurációja frissítve."
msgid "Basic Configuration"
msgstr "Alapvető beállítások"
#: cps/admin.py:452 cps/web.py:1050
#: cps/admin.py:452 cps/web.py:1055
msgid "Please fill out all fields!"
msgstr "Az összes mezőt ki kell tölteni!"
@ -69,7 +67,7 @@ msgstr "Az összes mezőt ki kell tölteni!"
msgid "Add new user"
msgstr "Új felhasználó hozzáadása"
#: cps/admin.py:463 cps/web.py:1253
#: cps/admin.py:463 cps/web.py:1258
msgid "E-mail is not from valid domain"
msgstr "Az e-mail tartománya nem érvényes."
@ -96,7 +94,7 @@ msgstr "A teszt levél sikeresen elküldve ide: %(kindlemail)s"
msgid "There was an error sending the Test e-mail: %(res)s"
msgstr "Hiba történt a teszt levél küldése során: %(res)s"
#: cps/admin.py:527 cps/web.py:1033
#: cps/admin.py:527 cps/web.py:1038
msgid "Please configure your kindle e-mail address first..."
msgstr "Először be kell állítani a kindle e-mail címet..."
@ -113,85 +111,93 @@ msgstr "A felhasználó törölve: %(nick)s"
msgid "No admin user remaining, can't delete user"
msgstr ""
#: cps/admin.py:600 cps/web.py:1279
#: cps/admin.py:599 cps/web.py:1299
msgid "Found an existing account for this e-mail address."
msgstr "Már létezik felhasználó ehhez az e-mail címhez."
#: cps/admin.py:603 cps/admin.py:615
#: cps/admin.py:602 cps/admin.py:615 cps/admin.py:629 cps/web.py:1274
#, python-format
msgid "Edit User %(nick)s"
msgstr " A felhasználó szerkesztése: %(nick)s"
#: cps/admin.py:609
#: cps/admin.py:608 cps/web.py:1267
msgid "This username is already taken"
msgstr ""
#: cps/admin.py:623
#, python-format
msgid "User '%(nick)s' updated"
msgstr "A felhasználó frissítve: %(nick)s"
#: cps/admin.py:612
#: cps/admin.py:626
msgid "An unknown error occured."
msgstr "Ismeretlen hiba történt."
#: cps/admin.py:631
#: cps/admin.py:645
#, python-format
msgid "Password for user %(user)s reset"
msgstr "A(z) %(user)s felhasználó jelszavának alaphelyzetbe állítása"
#: cps/admin.py:634 cps/web.py:1075
#: cps/admin.py:648 cps/web.py:1080
msgid "An unknown error occurred. Please try again later."
msgstr "Ismeretlen hiba történt. Próbáld újra később!"
#: cps/admin.py:645
#: cps/admin.py:659
msgid "Logfile viewer"
msgstr ""
#: cps/admin.py:680
#: cps/admin.py:694
msgid "Requesting update package"
msgstr "Frissítési csomag kérése"
#: cps/admin.py:681
#: cps/admin.py:695
msgid "Downloading update package"
msgstr "Frissítési csomag letöltése"
#: cps/admin.py:682
#: cps/admin.py:696
msgid "Unzipping update package"
msgstr "Frissítési csomag kitömörítése"
#: cps/admin.py:683
#: cps/admin.py:697
msgid "Replacing files"
msgstr "Fájlok cserélése"
#: cps/admin.py:684
#: cps/admin.py:698
msgid "Database connections are closed"
msgstr "Adatbázis kapcsolatok lezárva"
#: cps/admin.py:685
#: cps/admin.py:699
msgid "Stopping server"
msgstr "Szerver leállítása"
#: cps/admin.py:686
#: cps/admin.py:700
msgid "Update finished, please press okay and reload page"
msgstr "A frissítés települt, kattints az OK-ra és újra tölt az oldal"
#: cps/admin.py:687 cps/admin.py:688 cps/admin.py:689 cps/admin.py:690
#: cps/admin.py:701 cps/admin.py:702 cps/admin.py:703 cps/admin.py:704
msgid "Update failed:"
msgstr "A frissítés nem sikerült:"
#: cps/admin.py:687 cps/updater.py:271 cps/updater.py:456 cps/updater.py:458
#: cps/admin.py:701 cps/updater.py:272 cps/updater.py:457 cps/updater.py:459
msgid "HTTP Error"
msgstr "HTTP hiba"
#: cps/admin.py:688 cps/updater.py:273 cps/updater.py:460
#: cps/admin.py:702 cps/updater.py:274 cps/updater.py:461
msgid "Connection error"
msgstr "Kapcsolódási hiba"
#: cps/admin.py:689 cps/updater.py:275 cps/updater.py:462
#: cps/admin.py:703 cps/updater.py:276 cps/updater.py:463
msgid "Timeout while establishing connection"
msgstr "Időtúllépés a kapcsolódás során"
#: cps/admin.py:690 cps/updater.py:277 cps/updater.py:464
#: cps/admin.py:704 cps/updater.py:278 cps/updater.py:465
msgid "General error"
msgstr "Általános hiba"
#: cps/converter.py:31
msgid "not configured"
msgstr ""
#: cps/editbooks.py:214 cps/editbooks.py:393
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr "Hiba az ekönyv megnyitásakor. A fájl nem létezik vagy nem elérhető."
@ -575,7 +581,7 @@ msgid "Show best rated books"
msgstr "Legjobbra értékelt könyvek mutatása"
#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:67
#: cps/web.py:971
#: cps/web.py:976
msgid "Read Books"
msgstr "Olvasott könyvek"
@ -584,7 +590,7 @@ msgid "Show read and unread"
msgstr "Mutassa az olvasva/olvasatlan állapotot"
#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:71
#: cps/web.py:975
#: cps/web.py:980
msgid "Unread Books"
msgstr "Olvasatlan könyvek"
@ -657,228 +663,233 @@ msgstr ""
msgid "Show file formats selection"
msgstr ""
#: cps/updater.py:251 cps/updater.py:358 cps/updater.py:371
#: cps/updater.py:252 cps/updater.py:359 cps/updater.py:372
msgid "Unexpected data while reading update information"
msgstr "Ismeretlen adat a frissítési információk olvasásakor"
#: cps/updater.py:258 cps/updater.py:364
#: cps/updater.py:259 cps/updater.py:365
msgid "No update available. You already have the latest version installed"
msgstr "Nem érhető el újabb frissítés. Már a legújabb verzió van telepítve."
#: cps/updater.py:284
#: cps/updater.py:285
msgid "A new update is available. Click on the button below to update to the latest version."
msgstr "Egy új frissítés érhető el. Kattints a lenti gombra a legújabb verzió frissítésére"
#: cps/updater.py:337
#: cps/updater.py:338
msgid "Could not fetch update information"
msgstr "Nem lehetett begyűjteni a frissítési információkat"
#: cps/updater.py:351
#: cps/updater.py:352
msgid "No release information available"
msgstr "Nincs információ a kiadásról."
#: cps/updater.py:404 cps/updater.py:413
#: cps/updater.py:405 cps/updater.py:414
#, python-format
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr "Új frissítés érhető el. Kattints az alábbi gombra a frissítéshez a következő verzióra: %(version)s"
#: cps/updater.py:423
#: cps/updater.py:424
msgid "Click on the button below to update to the latest stable version."
msgstr ""
#: cps/web.py:460
#: cps/web.py:459
msgid "Recently Added Books"
msgstr "Legutóbb hozzáadott könyvek"
#: cps/web.py:488
#: cps/web.py:487
msgid "Best rated books"
msgstr "Legjobbra értékelt könyvek"
#: cps/templates/index.xml:38 cps/web.py:496
#: cps/templates/index.xml:38 cps/web.py:495
msgid "Random Books"
msgstr "Könyvek találomra"
#: cps/web.py:522
#: cps/web.py:521
msgid "Books"
msgstr ""
#: cps/web.py:549
#: cps/web.py:548
msgid "Hot Books (most downloaded)"
msgstr "Kelendő könyvek (legtöbbet letöltöttek)"
#: cps/web.py:560 cps/web.py:1300 cps/web.py:1388
#: cps/web.py:559 cps/web.py:1320 cps/web.py:1408
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "Hiba történt az e-könyv megnyitásakor. A fájl nem létezik vagy nem érhető el:"
#: cps/web.py:573
#: cps/web.py:572
#, python-format
msgid "Author: %(name)s"
msgstr ""
#: cps/web.py:585
#: cps/web.py:584
#, python-format
msgid "Publisher: %(name)s"
msgstr "Kiadó: %(name)s"
#: cps/web.py:596
#: cps/web.py:595
#, python-format
msgid "Series: %(serie)s"
msgstr "Sorozat: %(serie)s"
#: cps/web.py:607
#: cps/web.py:606
#, python-format
msgid "Rating: %(rating)s stars"
msgstr ""
#: cps/web.py:618
#: cps/web.py:617
#, python-format
msgid "File format: %(format)s"
msgstr ""
#: cps/web.py:630
#: cps/web.py:629
#, python-format
msgid "Category: %(name)s"
msgstr "Címke: %(name)s"
#: cps/web.py:647
#: cps/web.py:646
#, python-format
msgid "Language: %(name)s"
msgstr "Nyelv: %(name)s"
#: cps/web.py:679
#: cps/web.py:678
msgid "Publisher list"
msgstr "Kiadók listája"
#: cps/templates/index.xml:82 cps/web.py:695
#: cps/templates/index.xml:82 cps/web.py:694
msgid "Series list"
msgstr "Sorozatok listája"
#: cps/web.py:709
#: cps/web.py:708
msgid "Ratings list"
msgstr ""
#: cps/web.py:722
#: cps/web.py:721
msgid "File formats list"
msgstr ""
#: cps/web.py:750
#: cps/web.py:749
msgid "Available languages"
msgstr "Elérhető nyelvek"
#: cps/templates/index.xml:75 cps/web.py:767
#: cps/templates/index.xml:75 cps/web.py:766
msgid "Category list"
msgstr "Címkék listája"
#: cps/templates/layout.html:73 cps/web.py:781
#: cps/templates/layout.html:73 cps/web.py:780
msgid "Tasks"
msgstr "Feladatok"
#: cps/web.py:846
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45 cps/web.py:802 cps/web.py:804
msgid "Search"
msgstr "Keresés"
#: cps/web.py:851
msgid "Published after "
msgstr "Kiadva ezután: "
#: cps/web.py:853
#: cps/web.py:858
msgid "Published before "
msgstr "Kiadva ezelőtt: "
#: cps/web.py:867
#: cps/web.py:872
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Értékelés <= %(rating)s"
#: cps/web.py:869
#: cps/web.py:874
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Értékelés <= %(rating)s"
#: cps/web.py:929 cps/web.py:939
#: cps/web.py:934 cps/web.py:944
msgid "search"
msgstr "keresés"
#: cps/web.py:1022
#: cps/web.py:1027
msgid "Please configure the SMTP mail settings first..."
msgstr "Először be kell állítani az SMTP levelező beállításokat..."
#: cps/web.py:1027
#: cps/web.py:1032
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "A könyv sikeresen küldésre lett jelölve a következő címre: %(kindlemail)s"
#: cps/web.py:1031
#: cps/web.py:1036
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr "Hiba történt a könyv küldésekor: %(res)s"
#: cps/web.py:1051 cps/web.py:1076 cps/web.py:1080 cps/web.py:1085
#: cps/web.py:1089
#: cps/web.py:1056 cps/web.py:1081 cps/web.py:1085 cps/web.py:1090
#: cps/web.py:1094
msgid "register"
msgstr "regisztrálás"
#: cps/web.py:1078
#: cps/web.py:1083
msgid "Your e-mail is not allowed to register"
msgstr "Nem engedélyezett a megadott e-mail cím bejegyzése"
#: cps/web.py:1081
#: cps/web.py:1086
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Jóváhagyó levél elküldve az email címedre."
#: cps/web.py:1084
#: cps/web.py:1089
msgid "This username or e-mail address is already in use."
msgstr "Ez a felhasználónév vagy e-mail cím már használatban van."
#: cps/web.py:1099
#: cps/web.py:1104
msgid "Cannot activate LDAP authentication"
msgstr ""
#: cps/web.py:1108 cps/web.py:1214
#: cps/web.py:1113 cps/web.py:1219
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "Be vagy jelentkezve mint: %(nickname)s"
#: cps/web.py:1112
#: cps/web.py:1117
msgid "Could not login. LDAP server down, please contact your administrator"
msgstr ""
#: cps/web.py:1116 cps/web.py:1124
#: cps/web.py:1121 cps/web.py:1129
msgid "Wrong Username or Password"
msgstr "Rossz felhasználó név vagy jelszó!"
#: cps/web.py:1120
#: cps/web.py:1125
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr ""
#: cps/web.py:1128 cps/web.py:1150
#: cps/web.py:1133 cps/web.py:1155
msgid "login"
msgstr "belépés"
#: cps/web.py:1162 cps/web.py:1193
#: cps/web.py:1167 cps/web.py:1198
msgid "Token not found"
msgstr "A token nem található."
#: cps/web.py:1170 cps/web.py:1201
#: cps/web.py:1175 cps/web.py:1206
msgid "Token has expired"
msgstr "A token érvényessége lejárt."
#: cps/web.py:1178
#: cps/web.py:1183
msgid "Success! Please return to your device"
msgstr "Sikerült! Újra használható az eszköz."
#: cps/web.py:1255 cps/web.py:1282 cps/web.py:1286
#: cps/web.py:1260 cps/web.py:1302 cps/web.py:1306
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)s profilja"
#: cps/web.py:1284
#: cps/web.py:1304
msgid "Profile updated"
msgstr "A profil frissítve."
#: cps/web.py:1310 cps/web.py:1312 cps/web.py:1314 cps/web.py:1320
#: cps/web.py:1324
#: cps/web.py:1330 cps/web.py:1332 cps/web.py:1334 cps/web.py:1340
#: cps/web.py:1344
msgid "Read a Book"
msgstr "Egy olvasott könyv"
#: cps/web.py:1334
#: cps/web.py:1354
msgid "Error opening eBook. File does not exist or file is not accessible."
msgstr ""
@ -1056,7 +1067,7 @@ msgstr "OK"
#: cps/templates/config_edit.html:321 cps/templates/config_view_edit.html:147
#: cps/templates/email_edit.html:40 cps/templates/email_edit.html:74
#: cps/templates/layout.html:28 cps/templates/shelf.html:73
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:12
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:32
#: cps/templates/user_edit.html:132
msgid "Back"
msgstr "Vissza"
@ -1690,11 +1701,6 @@ msgstr "Valóban törölni akarod ezt a tartomány-szabályt?"
msgid "Next"
msgstr "Következő"
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45
msgid "Search"
msgstr "Keresés"
#: cps/templates/http_error.html:37
msgid "Create issue"
msgstr ""
@ -2054,7 +2060,7 @@ msgstr "Polc törlése"
msgid "Edit Shelf"
msgstr "Polc szerkesztése"
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:11
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:31
msgid "Change order"
msgstr "Sorrend változtatása"

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2019-09-06 19:03+0200\n"
"POT-Creation-Date: 2019-11-16 08:00+0100\n"
"PO-Revision-Date: 2017-04-04 15:09+0200\n"
"Last-Translator: Marco Picone <marcovendere@gmail.com>\n"
"Language: it\n"
@ -17,17 +17,15 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.7.0\n"
#: cps/about.py:40 cps/about.py:65 cps/about.py:66 cps/uploader.py:228
#: cps/about.py:41
msgid "installed"
msgstr ""
#: cps/about.py:42 cps/about.py:65 cps/about.py:66 cps/uploader.py:213
#: cps/uploader.py:214 cps/uploader.py:218 cps/uploader.py:222
#: cps/uploader.py:226 cps/uploader.py:230
#: cps/about.py:43
msgid "not installed"
msgstr "non installato"
#: cps/about.py:80
#: cps/about.py:81
msgid "Statistics"
msgstr "Statistica"
@ -39,7 +37,7 @@ msgstr "Server riavviato, per favore ricarica la pagina"
msgid "Performing shutdown of server, please close window"
msgstr "Eseguo l'arresto del server, per favore chiudi la finestra."
#: cps/admin.py:111 cps/updater.py:445
#: cps/admin.py:111 cps/updater.py:446
msgid "Unknown"
msgstr "Sconosciuto"
@ -59,7 +57,7 @@ msgstr "Aggiornamento della configurazione di Calibre-Web"
msgid "Basic Configuration"
msgstr "Configurazione di base"
#: cps/admin.py:452 cps/web.py:1050
#: cps/admin.py:452 cps/web.py:1055
msgid "Please fill out all fields!"
msgstr "Per favore compila tutti i campi!"
@ -68,7 +66,7 @@ msgstr "Per favore compila tutti i campi!"
msgid "Add new user"
msgstr "Aggiungi un nuovo utente"
#: cps/admin.py:463 cps/web.py:1253
#: cps/admin.py:463 cps/web.py:1258
msgid "E-mail is not from valid domain"
msgstr "L'e-mail non proviene da un dominio valido"
@ -95,7 +93,7 @@ msgstr "E-mail di test inviato con successo a %(kindlemail)s"
msgid "There was an error sending the Test e-mail: %(res)s"
msgstr "Si è verificato un errore nell'invio dell'e-mail di test: %(res)s"
#: cps/admin.py:527 cps/web.py:1033
#: cps/admin.py:527 cps/web.py:1038
msgid "Please configure your kindle e-mail address first..."
msgstr "Per favore configura dapprima il tuo indirizzo e-mail di Kindle..."
@ -112,85 +110,93 @@ msgstr "Utente '%(nick)s' eliminato"
msgid "No admin user remaining, can't delete user"
msgstr ""
#: cps/admin.py:600 cps/web.py:1279
#: cps/admin.py:599 cps/web.py:1299
msgid "Found an existing account for this e-mail address."
msgstr "Ho trovato un account creato in precedenza con questo e-mail."
#: cps/admin.py:603 cps/admin.py:615
#: cps/admin.py:602 cps/admin.py:615 cps/admin.py:629 cps/web.py:1274
#, python-format
msgid "Edit User %(nick)s"
msgstr "Modifica utente %(nick)s"
#: cps/admin.py:609
#: cps/admin.py:608 cps/web.py:1267
msgid "This username is already taken"
msgstr ""
#: cps/admin.py:623
#, python-format
msgid "User '%(nick)s' updated"
msgstr "Utente '%(nick)s' aggiornato"
#: cps/admin.py:612
#: cps/admin.py:626
msgid "An unknown error occured."
msgstr "Si è verificato un errore imprevisto."
#: cps/admin.py:631
#: cps/admin.py:645
#, python-format
msgid "Password for user %(user)s reset"
msgstr "La password dell'utente %(user)s è stata resettata"
#: cps/admin.py:634 cps/web.py:1075
#: cps/admin.py:648 cps/web.py:1080
msgid "An unknown error occurred. Please try again later."
msgstr "Si è verificato un errore sconosciuto: per favore riprova."
#: cps/admin.py:645
#: cps/admin.py:659
msgid "Logfile viewer"
msgstr ""
#: cps/admin.py:680
#: cps/admin.py:694
msgid "Requesting update package"
msgstr "Richiesta del pacchetto di aggiornamento"
#: cps/admin.py:681
#: cps/admin.py:695
msgid "Downloading update package"
msgstr "Scarico il pacchetto di aggiornamento"
#: cps/admin.py:682
#: cps/admin.py:696
msgid "Unzipping update package"
msgstr "Decomprimo il pacchetto di aggiornamento"
#: cps/admin.py:683
#: cps/admin.py:697
msgid "Replacing files"
msgstr "Sostituzione files"
#: cps/admin.py:684
#: cps/admin.py:698
msgid "Database connections are closed"
msgstr "Le connessioni al database sono chiuse"
#: cps/admin.py:685
#: cps/admin.py:699
msgid "Stopping server"
msgstr "Arresta il server"
#: cps/admin.py:686
#: cps/admin.py:700
msgid "Update finished, please press okay and reload page"
msgstr "Aggiornamento completato, prego premere ok e ricaricare la pagina"
#: cps/admin.py:687 cps/admin.py:688 cps/admin.py:689 cps/admin.py:690
#: cps/admin.py:701 cps/admin.py:702 cps/admin.py:703 cps/admin.py:704
msgid "Update failed:"
msgstr "Aggiornamento fallito:"
#: cps/admin.py:687 cps/updater.py:271 cps/updater.py:456 cps/updater.py:458
#: cps/admin.py:701 cps/updater.py:272 cps/updater.py:457 cps/updater.py:459
msgid "HTTP Error"
msgstr "HTTP Error"
#: cps/admin.py:688 cps/updater.py:273 cps/updater.py:460
#: cps/admin.py:702 cps/updater.py:274 cps/updater.py:461
msgid "Connection error"
msgstr "Errore di connessione"
#: cps/admin.py:689 cps/updater.py:275 cps/updater.py:462
#: cps/admin.py:703 cps/updater.py:276 cps/updater.py:463
msgid "Timeout while establishing connection"
msgstr "Tempo scaduto nello stabilire la connessione"
#: cps/admin.py:690 cps/updater.py:277 cps/updater.py:464
#: cps/admin.py:704 cps/updater.py:278 cps/updater.py:465
msgid "General error"
msgstr "Errore generale"
#: cps/converter.py:31
msgid "not configured"
msgstr ""
#: cps/editbooks.py:214 cps/editbooks.py:393
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr "Errore durante l'apertura del libro. Il file non esiste o il file non è accessibile"
@ -574,7 +580,7 @@ msgid "Show best rated books"
msgstr "Mostra la sezione dei libri più votati"
#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:67
#: cps/web.py:971
#: cps/web.py:976
msgid "Read Books"
msgstr "Libri da leggere"
@ -583,7 +589,7 @@ msgid "Show read and unread"
msgstr "Mostra letto e non letto"
#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:71
#: cps/web.py:975
#: cps/web.py:980
msgid "Unread Books"
msgstr "Libri non letti"
@ -656,228 +662,233 @@ msgstr ""
msgid "Show file formats selection"
msgstr ""
#: cps/updater.py:251 cps/updater.py:358 cps/updater.py:371
#: cps/updater.py:252 cps/updater.py:359 cps/updater.py:372
msgid "Unexpected data while reading update information"
msgstr "Dati inattesi durante il processo di aggiornamento"
#: cps/updater.py:258 cps/updater.py:364
#: cps/updater.py:259 cps/updater.py:365
msgid "No update available. You already have the latest version installed"
msgstr "Nessun aggiornamento disponibile. Hai già installato l'ultima versione disponibile"
#: cps/updater.py:284
#: cps/updater.py:285
msgid "A new update is available. Click on the button below to update to the latest version."
msgstr "Nuovo aggiornamento disponibile. Clicca sul pulsante sottostante per aggiornare all'ultima versione."
#: cps/updater.py:337
#: cps/updater.py:338
msgid "Could not fetch update information"
msgstr "Impossibile recuperare informazioni di aggiornamento"
#: cps/updater.py:351
#: cps/updater.py:352
msgid "No release information available"
msgstr "Non sono disponibili informazioni sulla versione"
#: cps/updater.py:404 cps/updater.py:413
#: cps/updater.py:405 cps/updater.py:414
#, python-format
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr "Nuovo aggiornamento disponibile. Clicca sul pulsante sottostante per aggiornare alla versione: %(version)s"
#: cps/updater.py:423
#: cps/updater.py:424
msgid "Click on the button below to update to the latest stable version."
msgstr ""
#: cps/web.py:460
#: cps/web.py:459
msgid "Recently Added Books"
msgstr "Libri aggiunti di recente"
#: cps/web.py:488
#: cps/web.py:487
msgid "Best rated books"
msgstr "I libri con le migliori valutazioni"
#: cps/templates/index.xml:38 cps/web.py:496
#: cps/templates/index.xml:38 cps/web.py:495
msgid "Random Books"
msgstr "Libri a caso"
#: cps/web.py:522
#: cps/web.py:521
msgid "Books"
msgstr ""
#: cps/web.py:549
#: cps/web.py:548
msgid "Hot Books (most downloaded)"
msgstr "I libri più richiesti"
#: cps/web.py:560 cps/web.py:1300 cps/web.py:1388
#: cps/web.py:559 cps/web.py:1320 cps/web.py:1408
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "Errore durante l'apertura del libro. Il file non esiste o il file non è accessibile:"
#: cps/web.py:573
#: cps/web.py:572
#, python-format
msgid "Author: %(name)s"
msgstr ""
#: cps/web.py:585
#: cps/web.py:584
#, python-format
msgid "Publisher: %(name)s"
msgstr "Editore: %(name)s"
#: cps/web.py:596
#: cps/web.py:595
#, python-format
msgid "Series: %(serie)s"
msgstr "Serie: %(serie)s"
#: cps/web.py:607
#: cps/web.py:606
#, python-format
msgid "Rating: %(rating)s stars"
msgstr ""
#: cps/web.py:618
#: cps/web.py:617
#, python-format
msgid "File format: %(format)s"
msgstr ""
#: cps/web.py:630
#: cps/web.py:629
#, python-format
msgid "Category: %(name)s"
msgstr "Categoria: %(name)s"
#: cps/web.py:647
#: cps/web.py:646
#, python-format
msgid "Language: %(name)s"
msgstr "Lingua: %(name)s"
#: cps/web.py:679
#: cps/web.py:678
msgid "Publisher list"
msgstr "Lista degli editori"
#: cps/templates/index.xml:82 cps/web.py:695
#: cps/templates/index.xml:82 cps/web.py:694
msgid "Series list"
msgstr "Lista delle serie"
#: cps/web.py:709
#: cps/web.py:708
msgid "Ratings list"
msgstr ""
#: cps/web.py:722
#: cps/web.py:721
msgid "File formats list"
msgstr ""
#: cps/web.py:750
#: cps/web.py:749
msgid "Available languages"
msgstr "Lingue disponibili"
#: cps/templates/index.xml:75 cps/web.py:767
#: cps/templates/index.xml:75 cps/web.py:766
msgid "Category list"
msgstr "Elenco categorie"
#: cps/templates/layout.html:73 cps/web.py:781
#: cps/templates/layout.html:73 cps/web.py:780
msgid "Tasks"
msgstr "Compito"
#: cps/web.py:846
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45 cps/web.py:802 cps/web.py:804
msgid "Search"
msgstr "Cerca"
#: cps/web.py:851
msgid "Published after "
msgstr "Pubblicato dopo "
#: cps/web.py:853
#: cps/web.py:858
msgid "Published before "
msgstr "Pubblicato prima "
#: cps/web.py:867
#: cps/web.py:872
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Valutazione <= %(rating)s"
#: cps/web.py:869
#: cps/web.py:874
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Valutazione >= %(rating)s"
#: cps/web.py:929 cps/web.py:939
#: cps/web.py:934 cps/web.py:944
msgid "search"
msgstr "ricerca"
#: cps/web.py:1022
#: cps/web.py:1027
msgid "Please configure the SMTP mail settings first..."
msgstr "Configurare dapprima le impostazioni del server SMTP..."
#: cps/web.py:1027
#: cps/web.py:1032
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Libro accodato con successo per essere spedito a %(kindlemail)s"
#: cps/web.py:1031
#: cps/web.py:1036
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr "Si è verificato un errore durante l'invio di questo libro: %(res)s"
#: cps/web.py:1051 cps/web.py:1076 cps/web.py:1080 cps/web.py:1085
#: cps/web.py:1089
#: cps/web.py:1056 cps/web.py:1081 cps/web.py:1085 cps/web.py:1090
#: cps/web.py:1094
msgid "register"
msgstr "registra"
#: cps/web.py:1078
#: cps/web.py:1083
msgid "Your e-mail is not allowed to register"
msgstr "Il tuo e-mail non può essere utilizzato per la registrazione"
#: cps/web.py:1081
#: cps/web.py:1086
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Un e-mail di conferma è stato inviato al tuo indirizzo."
#: cps/web.py:1084
#: cps/web.py:1089
msgid "This username or e-mail address is already in use."
msgstr "Questo nome di utente o questo e-mail sono già utilizzati."
#: cps/web.py:1099
#: cps/web.py:1104
msgid "Cannot activate LDAP authentication"
msgstr ""
#: cps/web.py:1108 cps/web.py:1214
#: cps/web.py:1113 cps/web.py:1219
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "ora sei connesso come: '%(nickname)s'"
#: cps/web.py:1112
#: cps/web.py:1117
msgid "Could not login. LDAP server down, please contact your administrator"
msgstr ""
#: cps/web.py:1116 cps/web.py:1124
#: cps/web.py:1121 cps/web.py:1129
msgid "Wrong Username or Password"
msgstr "Nome utente o password errati"
#: cps/web.py:1120
#: cps/web.py:1125
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr ""
#: cps/web.py:1128 cps/web.py:1150
#: cps/web.py:1133 cps/web.py:1155
msgid "login"
msgstr "accedi"
#: cps/web.py:1162 cps/web.py:1193
#: cps/web.py:1167 cps/web.py:1198
msgid "Token not found"
msgstr "Token non trovato"
#: cps/web.py:1170 cps/web.py:1201
#: cps/web.py:1175 cps/web.py:1206
msgid "Token has expired"
msgstr "Il token è scaduto"
#: cps/web.py:1178
#: cps/web.py:1183
msgid "Success! Please return to your device"
msgstr "Successo! Torna al tuo dispositivo"
#: cps/web.py:1255 cps/web.py:1282 cps/web.py:1286
#: cps/web.py:1260 cps/web.py:1302 cps/web.py:1306
#, python-format
msgid "%(name)s's profile"
msgstr "Profilo di %(name)s"
#: cps/web.py:1284
#: cps/web.py:1304
msgid "Profile updated"
msgstr "Profilo aggiornato"
#: cps/web.py:1310 cps/web.py:1312 cps/web.py:1314 cps/web.py:1320
#: cps/web.py:1324
#: cps/web.py:1330 cps/web.py:1332 cps/web.py:1334 cps/web.py:1340
#: cps/web.py:1344
msgid "Read a Book"
msgstr "Leggere un libro"
#: cps/web.py:1334
#: cps/web.py:1354
msgid "Error opening eBook. File does not exist or file is not accessible."
msgstr ""
@ -1055,7 +1066,7 @@ msgstr "Ok"
#: cps/templates/config_edit.html:321 cps/templates/config_view_edit.html:147
#: cps/templates/email_edit.html:40 cps/templates/email_edit.html:74
#: cps/templates/layout.html:28 cps/templates/shelf.html:73
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:12
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:32
#: cps/templates/user_edit.html:132
msgid "Back"
msgstr "Indietro"
@ -1689,11 +1700,6 @@ msgstr "Vuoi veramente eliminare questa regola di dominio?"
msgid "Next"
msgstr "Prossimo"
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45
msgid "Search"
msgstr "Cerca"
#: cps/templates/http_error.html:37
msgid "Create issue"
msgstr ""
@ -2053,7 +2059,7 @@ msgstr "Cancellare questo scaffale"
msgid "Edit Shelf"
msgstr "Modifica scaffale"
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:11
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:31
msgid "Change order"
msgstr "Cambia ordine"

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2019-09-06 19:03+0200\n"
"POT-Creation-Date: 2019-11-16 08:00+0100\n"
"PO-Revision-Date: 2018-02-07 02:20-0500\n"
"Last-Translator: white <space_white@yahoo.com>\n"
"Language: ja\n"
@ -18,17 +18,15 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.7.0\n"
#: cps/about.py:40 cps/about.py:65 cps/about.py:66 cps/uploader.py:228
#: cps/about.py:41
msgid "installed"
msgstr ""
#: cps/about.py:42 cps/about.py:65 cps/about.py:66 cps/uploader.py:213
#: cps/uploader.py:214 cps/uploader.py:218 cps/uploader.py:222
#: cps/uploader.py:226 cps/uploader.py:230
#: cps/about.py:43
msgid "not installed"
msgstr "インストールされていません"
#: cps/about.py:80
#: cps/about.py:81
msgid "Statistics"
msgstr "統計"
@ -40,7 +38,7 @@ msgstr "サーバを再起動しました。ページを再読み込みしてく
msgid "Performing shutdown of server, please close window"
msgstr "サーバをシャットダウンしています。ページを閉じてください"
#: cps/admin.py:111 cps/updater.py:445
#: cps/admin.py:111 cps/updater.py:446
msgid "Unknown"
msgstr "不明"
@ -60,7 +58,7 @@ msgstr "Calibre-Web の設定を更新しました"
msgid "Basic Configuration"
msgstr "基本設定"
#: cps/admin.py:452 cps/web.py:1050
#: cps/admin.py:452 cps/web.py:1055
msgid "Please fill out all fields!"
msgstr "全ての項目を入力してください"
@ -69,7 +67,7 @@ msgstr "全ての項目を入力してください"
msgid "Add new user"
msgstr "新規ユーザ追加"
#: cps/admin.py:463 cps/web.py:1253
#: cps/admin.py:463 cps/web.py:1258
msgid "E-mail is not from valid domain"
msgstr "このメールは有効なドメインからのものではありません"
@ -96,7 +94,7 @@ msgstr "テストメールが %(kindlemail)s に送信されました"
msgid "There was an error sending the Test e-mail: %(res)s"
msgstr "テストメールを %(res)s に送信中にエラーが発生しました"
#: cps/admin.py:527 cps/web.py:1033
#: cps/admin.py:527 cps/web.py:1038
msgid "Please configure your kindle e-mail address first..."
msgstr "初めにKindleのメールアドレスを設定してください"
@ -113,85 +111,93 @@ msgstr "ユーザ '%(nick)s' を削除しました"
msgid "No admin user remaining, can't delete user"
msgstr ""
#: cps/admin.py:600 cps/web.py:1279
#: cps/admin.py:599 cps/web.py:1299
msgid "Found an existing account for this e-mail address."
msgstr "このメールアドレスで登録されたアカウントがあります"
#: cps/admin.py:603 cps/admin.py:615
#: cps/admin.py:602 cps/admin.py:615 cps/admin.py:629 cps/web.py:1274
#, python-format
msgid "Edit User %(nick)s"
msgstr "%(nick)s を編集"
#: cps/admin.py:609
#: cps/admin.py:608 cps/web.py:1267
msgid "This username is already taken"
msgstr ""
#: cps/admin.py:623
#, python-format
msgid "User '%(nick)s' updated"
msgstr "ユーザ '%(nick)s' を更新しました"
#: cps/admin.py:612
#: cps/admin.py:626
msgid "An unknown error occured."
msgstr "不明なエラーが発生しました。"
#: cps/admin.py:631
#: cps/admin.py:645
#, python-format
msgid "Password for user %(user)s reset"
msgstr "%(user)s 用のパスワードをリセット"
#: cps/admin.py:634 cps/web.py:1075
#: cps/admin.py:648 cps/web.py:1080
msgid "An unknown error occurred. Please try again later."
msgstr "不明なエラーが発生しました。あとで再試行してください。"
#: cps/admin.py:645
#: cps/admin.py:659
msgid "Logfile viewer"
msgstr ""
#: cps/admin.py:680
#: cps/admin.py:694
msgid "Requesting update package"
msgstr "更新データを要求中"
#: cps/admin.py:681
#: cps/admin.py:695
msgid "Downloading update package"
msgstr "更新データをダウンロード中"
#: cps/admin.py:682
#: cps/admin.py:696
msgid "Unzipping update package"
msgstr "更新データを展開中"
#: cps/admin.py:683
#: cps/admin.py:697
msgid "Replacing files"
msgstr "ファイルを置換中"
#: cps/admin.py:684
#: cps/admin.py:698
msgid "Database connections are closed"
msgstr "データベースの接続を切断完了"
#: cps/admin.py:685
#: cps/admin.py:699
msgid "Stopping server"
msgstr "サーバ停止中"
#: cps/admin.py:686
#: cps/admin.py:700
msgid "Update finished, please press okay and reload page"
msgstr "アップデート完了、OKを押してページをリロードしてください"
#: cps/admin.py:687 cps/admin.py:688 cps/admin.py:689 cps/admin.py:690
#: cps/admin.py:701 cps/admin.py:702 cps/admin.py:703 cps/admin.py:704
msgid "Update failed:"
msgstr "アップデート失敗:"
#: cps/admin.py:687 cps/updater.py:271 cps/updater.py:456 cps/updater.py:458
#: cps/admin.py:701 cps/updater.py:272 cps/updater.py:457 cps/updater.py:459
msgid "HTTP Error"
msgstr "HTTPエラー"
#: cps/admin.py:688 cps/updater.py:273 cps/updater.py:460
#: cps/admin.py:702 cps/updater.py:274 cps/updater.py:461
msgid "Connection error"
msgstr "接続エラー"
#: cps/admin.py:689 cps/updater.py:275 cps/updater.py:462
#: cps/admin.py:703 cps/updater.py:276 cps/updater.py:463
msgid "Timeout while establishing connection"
msgstr "接続を確立中にタイムアウトしました"
#: cps/admin.py:690 cps/updater.py:277 cps/updater.py:464
#: cps/admin.py:704 cps/updater.py:278 cps/updater.py:465
msgid "General error"
msgstr "エラー発生"
#: cps/converter.py:31
msgid "not configured"
msgstr ""
#: cps/editbooks.py:214 cps/editbooks.py:393
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr "電子書籍を開けません。ファイルが存在しないかアクセスできません"
@ -575,7 +581,7 @@ msgid "Show best rated books"
msgstr "評価が高い本を表示"
#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:67
#: cps/web.py:971
#: cps/web.py:976
msgid "Read Books"
msgstr "読んだ本"
@ -584,7 +590,7 @@ msgid "Show read and unread"
msgstr "既読の本と未読の本を表示"
#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:71
#: cps/web.py:975
#: cps/web.py:980
msgid "Unread Books"
msgstr "未読の本"
@ -657,228 +663,233 @@ msgstr ""
msgid "Show file formats selection"
msgstr ""
#: cps/updater.py:251 cps/updater.py:358 cps/updater.py:371
#: cps/updater.py:252 cps/updater.py:359 cps/updater.py:372
msgid "Unexpected data while reading update information"
msgstr "アップデート情報を読み込み中に予期しないデータが見つかりました"
#: cps/updater.py:258 cps/updater.py:364
#: cps/updater.py:259 cps/updater.py:365
msgid "No update available. You already have the latest version installed"
msgstr "アップデートはありません。すでに最新バージョンがインストールされています"
#: cps/updater.py:284
#: cps/updater.py:285
msgid "A new update is available. Click on the button below to update to the latest version."
msgstr "アップデートが利用可能です。下のボタンをクリックして最新バージョンにアップデートしてください。"
#: cps/updater.py:337
#: cps/updater.py:338
msgid "Could not fetch update information"
msgstr "アップデート情報を取得できません"
#: cps/updater.py:351
#: cps/updater.py:352
msgid "No release information available"
msgstr "リリース情報がありません"
#: cps/updater.py:404 cps/updater.py:413
#: cps/updater.py:405 cps/updater.py:414
#, python-format
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr "アップデートが利用可能です。下のボタンをクリックしてバージョン: %(version)s にアップデートしてください。"
#: cps/updater.py:423
#: cps/updater.py:424
msgid "Click on the button below to update to the latest stable version."
msgstr ""
#: cps/web.py:460
#: cps/web.py:459
msgid "Recently Added Books"
msgstr "最近追加された本"
#: cps/web.py:488
#: cps/web.py:487
msgid "Best rated books"
msgstr "高評価"
#: cps/templates/index.xml:38 cps/web.py:496
#: cps/templates/index.xml:38 cps/web.py:495
msgid "Random Books"
msgstr "ランダム"
#: cps/web.py:522
#: cps/web.py:521
msgid "Books"
msgstr ""
#: cps/web.py:549
#: cps/web.py:548
msgid "Hot Books (most downloaded)"
msgstr "話題(ダウンロード数順)"
#: cps/web.py:560 cps/web.py:1300 cps/web.py:1388
#: cps/web.py:559 cps/web.py:1320 cps/web.py:1408
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "電子書籍を開けません。ファイルが存在しないかアクセスできません:"
#: cps/web.py:573
#: cps/web.py:572
#, python-format
msgid "Author: %(name)s"
msgstr ""
#: cps/web.py:585
#: cps/web.py:584
#, python-format
msgid "Publisher: %(name)s"
msgstr "出版社: %(name)s"
#: cps/web.py:596
#: cps/web.py:595
#, python-format
msgid "Series: %(serie)s"
msgstr "シリーズ: %(serie)s"
#: cps/web.py:607
#: cps/web.py:606
#, python-format
msgid "Rating: %(rating)s stars"
msgstr ""
#: cps/web.py:618
#: cps/web.py:617
#, python-format
msgid "File format: %(format)s"
msgstr ""
#: cps/web.py:630
#: cps/web.py:629
#, python-format
msgid "Category: %(name)s"
msgstr "カテゴリ: %(name)s"
#: cps/web.py:647
#: cps/web.py:646
#, python-format
msgid "Language: %(name)s"
msgstr "言語: %(name)s"
#: cps/web.py:679
#: cps/web.py:678
msgid "Publisher list"
msgstr "出版社一覧"
#: cps/templates/index.xml:82 cps/web.py:695
#: cps/templates/index.xml:82 cps/web.py:694
msgid "Series list"
msgstr "シリーズ一覧"
#: cps/web.py:709
#: cps/web.py:708
msgid "Ratings list"
msgstr ""
#: cps/web.py:722
#: cps/web.py:721
msgid "File formats list"
msgstr ""
#: cps/web.py:750
#: cps/web.py:749
msgid "Available languages"
msgstr "言語"
#: cps/templates/index.xml:75 cps/web.py:767
#: cps/templates/index.xml:75 cps/web.py:766
msgid "Category list"
msgstr "カテゴリ一覧"
#: cps/templates/layout.html:73 cps/web.py:781
#: cps/templates/layout.html:73 cps/web.py:780
msgid "Tasks"
msgstr "タスク"
#: cps/web.py:846
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45 cps/web.py:802 cps/web.py:804
msgid "Search"
msgstr "検索"
#: cps/web.py:851
msgid "Published after "
msgstr "これ以降に出版 "
#: cps/web.py:853
#: cps/web.py:858
msgid "Published before "
msgstr "これ以前に出版 "
#: cps/web.py:867
#: cps/web.py:872
#, python-format
msgid "Rating <= %(rating)s"
msgstr "評価 <= %(rating)s"
#: cps/web.py:869
#: cps/web.py:874
#, python-format
msgid "Rating >= %(rating)s"
msgstr "評価 >= %(rating)s"
#: cps/web.py:929 cps/web.py:939
#: cps/web.py:934 cps/web.py:944
msgid "search"
msgstr "検索"
#: cps/web.py:1022
#: cps/web.py:1027
msgid "Please configure the SMTP mail settings first..."
msgstr "初めにSMTPメールの設定をしてください"
#: cps/web.py:1027
#: cps/web.py:1032
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "本の %(kindlemail)s への送信がキューに追加されました"
#: cps/web.py:1031
#: cps/web.py:1036
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr "%(res)s を送信中にエラーが発生しました"
#: cps/web.py:1051 cps/web.py:1076 cps/web.py:1080 cps/web.py:1085
#: cps/web.py:1089
#: cps/web.py:1056 cps/web.py:1081 cps/web.py:1085 cps/web.py:1090
#: cps/web.py:1094
msgid "register"
msgstr "登録"
#: cps/web.py:1078
#: cps/web.py:1083
msgid "Your e-mail is not allowed to register"
msgstr "このメールアドレスは登録が許可されていません"
#: cps/web.py:1081
#: cps/web.py:1086
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "確認メールがこのメールアドレスに送信されました。"
#: cps/web.py:1084
#: cps/web.py:1089
msgid "This username or e-mail address is already in use."
msgstr "このユーザ名またはメールアドレスはすでに使われています。"
#: cps/web.py:1099
#: cps/web.py:1104
msgid "Cannot activate LDAP authentication"
msgstr ""
#: cps/web.py:1108 cps/web.py:1214
#: cps/web.py:1113 cps/web.py:1219
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "%(nickname)s としてログイン中"
#: cps/web.py:1112
#: cps/web.py:1117
msgid "Could not login. LDAP server down, please contact your administrator"
msgstr ""
#: cps/web.py:1116 cps/web.py:1124
#: cps/web.py:1121 cps/web.py:1129
msgid "Wrong Username or Password"
msgstr "ユーザ名またはパスワードが違います"
#: cps/web.py:1120
#: cps/web.py:1125
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr ""
#: cps/web.py:1128 cps/web.py:1150
#: cps/web.py:1133 cps/web.py:1155
msgid "login"
msgstr "ログイン"
#: cps/web.py:1162 cps/web.py:1193
#: cps/web.py:1167 cps/web.py:1198
msgid "Token not found"
msgstr "トークンが見つかりません"
#: cps/web.py:1170 cps/web.py:1201
#: cps/web.py:1175 cps/web.py:1206
msgid "Token has expired"
msgstr "トークンが無効です"
#: cps/web.py:1178
#: cps/web.py:1183
msgid "Success! Please return to your device"
msgstr "成功です!端末に戻ってください"
#: cps/web.py:1255 cps/web.py:1282 cps/web.py:1286
#: cps/web.py:1260 cps/web.py:1302 cps/web.py:1306
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)s のプロフィール"
#: cps/web.py:1284
#: cps/web.py:1304
msgid "Profile updated"
msgstr "プロフィールを更新しました"
#: cps/web.py:1310 cps/web.py:1312 cps/web.py:1314 cps/web.py:1320
#: cps/web.py:1324
#: cps/web.py:1330 cps/web.py:1332 cps/web.py:1334 cps/web.py:1340
#: cps/web.py:1344
msgid "Read a Book"
msgstr "本を読む"
#: cps/web.py:1334
#: cps/web.py:1354
msgid "Error opening eBook. File does not exist or file is not accessible."
msgstr ""
@ -1056,7 +1067,7 @@ msgstr "はい"
#: cps/templates/config_edit.html:321 cps/templates/config_view_edit.html:147
#: cps/templates/email_edit.html:40 cps/templates/email_edit.html:74
#: cps/templates/layout.html:28 cps/templates/shelf.html:73
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:12
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:32
#: cps/templates/user_edit.html:132
msgid "Back"
msgstr "戻る"
@ -1690,11 +1701,6 @@ msgstr "このドメインルールを削除してもよろしいですか?"
msgid "Next"
msgstr "次"
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45
msgid "Search"
msgstr "検索"
#: cps/templates/http_error.html:37
msgid "Create issue"
msgstr ""
@ -2054,7 +2060,7 @@ msgstr "この本棚を削除"
msgid "Edit Shelf"
msgstr "本棚を編集"
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:11
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:31
msgid "Change order"
msgstr "順番を変更"

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2019-09-06 19:03+0200\n"
"POT-Creation-Date: 2019-11-16 08:00+0100\n"
"PO-Revision-Date: 2018-08-27 17:06+0700\n"
"Last-Translator: \n"
"Language: km_KH\n"
@ -19,17 +19,15 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.7.0\n"
#: cps/about.py:40 cps/about.py:65 cps/about.py:66 cps/uploader.py:228
#: cps/about.py:41
msgid "installed"
msgstr ""
#: cps/about.py:42 cps/about.py:65 cps/about.py:66 cps/uploader.py:213
#: cps/uploader.py:214 cps/uploader.py:218 cps/uploader.py:222
#: cps/uploader.py:226 cps/uploader.py:230
#: cps/about.py:43
msgid "not installed"
msgstr "មិនបានតម្លើង"
#: cps/about.py:80
#: cps/about.py:81
msgid "Statistics"
msgstr "ស្ថិតិ"
@ -41,7 +39,7 @@ msgstr "ម៉ាស៊ីន server បានដំណើរការម្ត
msgid "Performing shutdown of server, please close window"
msgstr "កំពុងបិទម៉ាស៊ីន server សូមបិទផ្ទាំងនេះ"
#: cps/admin.py:111 cps/updater.py:445
#: cps/admin.py:111 cps/updater.py:446
msgid "Unknown"
msgstr "មិនដឹង"
@ -61,7 +59,7 @@ msgstr ""
msgid "Basic Configuration"
msgstr "ការកំណត់សាមញ្ញ"
#: cps/admin.py:452 cps/web.py:1050
#: cps/admin.py:452 cps/web.py:1055
msgid "Please fill out all fields!"
msgstr "សូមបំពេញចន្លោះទាំងអស់!"
@ -70,7 +68,7 @@ msgstr "សូមបំពេញចន្លោះទាំងអស់!"
msgid "Add new user"
msgstr "បន្ថែមអ្នកប្រើប្រាស់ថ្មី"
#: cps/admin.py:463 cps/web.py:1253
#: cps/admin.py:463 cps/web.py:1258
msgid "E-mail is not from valid domain"
msgstr ""
@ -97,7 +95,7 @@ msgstr ""
msgid "There was an error sending the Test e-mail: %(res)s"
msgstr ""
#: cps/admin.py:527 cps/web.py:1033
#: cps/admin.py:527 cps/web.py:1038
msgid "Please configure your kindle e-mail address first..."
msgstr ""
@ -114,85 +112,93 @@ msgstr "អ្នកប្រើប្រាស់ %(nick)s ត្រូ
msgid "No admin user remaining, can't delete user"
msgstr ""
#: cps/admin.py:600 cps/web.py:1279
#: cps/admin.py:599 cps/web.py:1299
msgid "Found an existing account for this e-mail address."
msgstr ""
#: cps/admin.py:603 cps/admin.py:615
#: cps/admin.py:602 cps/admin.py:615 cps/admin.py:629 cps/web.py:1274
#, python-format
msgid "Edit User %(nick)s"
msgstr "កែប្រែអ្នកប្រើប្រាស់ %(nick)s"
#: cps/admin.py:609
#: cps/admin.py:608 cps/web.py:1267
msgid "This username is already taken"
msgstr ""
#: cps/admin.py:623
#, python-format
msgid "User '%(nick)s' updated"
msgstr "អ្នកប្រើប្រាស់ %(nick)s ត្រូវបានកែប្រែ"
#: cps/admin.py:612
#: cps/admin.py:626
msgid "An unknown error occured."
msgstr "បញ្ហាដែលមិនដឹងបានកើតឡើង។"
#: cps/admin.py:631
#: cps/admin.py:645
#, python-format
msgid "Password for user %(user)s reset"
msgstr ""
#: cps/admin.py:634 cps/web.py:1075
#: cps/admin.py:648 cps/web.py:1080
msgid "An unknown error occurred. Please try again later."
msgstr ""
#: cps/admin.py:645
#: cps/admin.py:659
msgid "Logfile viewer"
msgstr ""
#: cps/admin.py:680
#: cps/admin.py:694
msgid "Requesting update package"
msgstr "កំពុងស្នើសុំឯកសារបច្ចុប្បន្នភាព"
#: cps/admin.py:681
#: cps/admin.py:695
msgid "Downloading update package"
msgstr "កំពុងទាញយកឯកសារបច្ចុប្បន្នភាព"
#: cps/admin.py:682
#: cps/admin.py:696
msgid "Unzipping update package"
msgstr "កំពុងពន្លាឯកសារបច្ចុប្បន្នភាព"
#: cps/admin.py:683
#: cps/admin.py:697
msgid "Replacing files"
msgstr ""
#: cps/admin.py:684
#: cps/admin.py:698
msgid "Database connections are closed"
msgstr "ទំនាក់ទំនងទៅមូលដ្ឋានទិន្នន័យត្រូវបានផ្តាច់"
#: cps/admin.py:685
#: cps/admin.py:699
msgid "Stopping server"
msgstr ""
#: cps/admin.py:686
#: cps/admin.py:700
msgid "Update finished, please press okay and reload page"
msgstr "ការធ្វើបច្ចុប្បន្នភាពបានបញ្ចប់ សូមចុច okay រួចបើកទំព័រជាថ្មី"
#: cps/admin.py:687 cps/admin.py:688 cps/admin.py:689 cps/admin.py:690
#: cps/admin.py:701 cps/admin.py:702 cps/admin.py:703 cps/admin.py:704
msgid "Update failed:"
msgstr ""
#: cps/admin.py:687 cps/updater.py:271 cps/updater.py:456 cps/updater.py:458
#: cps/admin.py:701 cps/updater.py:272 cps/updater.py:457 cps/updater.py:459
msgid "HTTP Error"
msgstr ""
#: cps/admin.py:688 cps/updater.py:273 cps/updater.py:460
#: cps/admin.py:702 cps/updater.py:274 cps/updater.py:461
msgid "Connection error"
msgstr ""
#: cps/admin.py:689 cps/updater.py:275 cps/updater.py:462
#: cps/admin.py:703 cps/updater.py:276 cps/updater.py:463
msgid "Timeout while establishing connection"
msgstr ""
#: cps/admin.py:690 cps/updater.py:277 cps/updater.py:464
#: cps/admin.py:704 cps/updater.py:278 cps/updater.py:465
msgid "General error"
msgstr ""
#: cps/converter.py:31
msgid "not configured"
msgstr ""
#: cps/editbooks.py:214 cps/editbooks.py:393
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr "មានបញ្ហាពេលបើកឯកសារ eBook ។ ពុំមានឯកសារ ឬឯកសារនេះមិនអាចបើកបាន"
@ -576,7 +582,7 @@ msgid "Show best rated books"
msgstr "បង្ហាញសៀវភៅដែលមានការវាយតម្លៃល្អជាងគេ"
#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:67
#: cps/web.py:971
#: cps/web.py:976
msgid "Read Books"
msgstr "សៀវភៅដែលបានអានរួច"
@ -585,7 +591,7 @@ msgid "Show read and unread"
msgstr "បង្ហាញអានរួច និងមិនទាន់អាន"
#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:71
#: cps/web.py:975
#: cps/web.py:980
msgid "Unread Books"
msgstr "សៀវភៅដែលមិនទាន់បានអាន"
@ -658,228 +664,233 @@ msgstr ""
msgid "Show file formats selection"
msgstr ""
#: cps/updater.py:251 cps/updater.py:358 cps/updater.py:371
#: cps/updater.py:252 cps/updater.py:359 cps/updater.py:372
msgid "Unexpected data while reading update information"
msgstr ""
#: cps/updater.py:258 cps/updater.py:364
#: cps/updater.py:259 cps/updater.py:365
msgid "No update available. You already have the latest version installed"
msgstr ""
#: cps/updater.py:284
#: cps/updater.py:285
msgid "A new update is available. Click on the button below to update to the latest version."
msgstr ""
#: cps/updater.py:337
#: cps/updater.py:338
msgid "Could not fetch update information"
msgstr ""
#: cps/updater.py:351
#: cps/updater.py:352
msgid "No release information available"
msgstr ""
#: cps/updater.py:404 cps/updater.py:413
#: cps/updater.py:405 cps/updater.py:414
#, python-format
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr ""
#: cps/updater.py:423
#: cps/updater.py:424
msgid "Click on the button below to update to the latest stable version."
msgstr ""
#: cps/web.py:460
#: cps/web.py:459
msgid "Recently Added Books"
msgstr "សៀវភៅដែលទើបបានបន្ថែម"
#: cps/web.py:488
#: cps/web.py:487
msgid "Best rated books"
msgstr "សៀវភៅដែលត្រូវបានវាយតម្លៃល្អជាងគេ"
#: cps/templates/index.xml:38 cps/web.py:496
#: cps/templates/index.xml:38 cps/web.py:495
msgid "Random Books"
msgstr "សៀវភៅចៃដន្យ"
#: cps/web.py:522
#: cps/web.py:521
msgid "Books"
msgstr ""
#: cps/web.py:549
#: cps/web.py:548
msgid "Hot Books (most downloaded)"
msgstr "សៀវភៅដែលត្រូវបានទាញយកច្រើនជាងគេ"
#: cps/web.py:560 cps/web.py:1300 cps/web.py:1388
#: cps/web.py:559 cps/web.py:1320 cps/web.py:1408
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "មានបញ្ហាពេលបើកឯកសារ eBook ។ មិនមានឯកសារនេះ ឬមិនអាចបើកបាន៖"
#: cps/web.py:573
#: cps/web.py:572
#, python-format
msgid "Author: %(name)s"
msgstr ""
#: cps/web.py:585
#: cps/web.py:584
#, python-format
msgid "Publisher: %(name)s"
msgstr ""
#: cps/web.py:596
#: cps/web.py:595
#, python-format
msgid "Series: %(serie)s"
msgstr "ស៊េរី៖ %(serie)s"
#: cps/web.py:607
#: cps/web.py:606
#, python-format
msgid "Rating: %(rating)s stars"
msgstr ""
#: cps/web.py:618
#: cps/web.py:617
#, python-format
msgid "File format: %(format)s"
msgstr ""
#: cps/web.py:630
#: cps/web.py:629
#, python-format
msgid "Category: %(name)s"
msgstr "ប្រភេទ៖ %(name)s"
#: cps/web.py:647
#: cps/web.py:646
#, python-format
msgid "Language: %(name)s"
msgstr "ភាសា៖ %(name)s"
#: cps/web.py:679
#: cps/web.py:678
msgid "Publisher list"
msgstr ""
#: cps/templates/index.xml:82 cps/web.py:695
#: cps/templates/index.xml:82 cps/web.py:694
msgid "Series list"
msgstr "បញ្ជីស៊េរី"
#: cps/web.py:709
#: cps/web.py:708
msgid "Ratings list"
msgstr ""
#: cps/web.py:722
#: cps/web.py:721
msgid "File formats list"
msgstr ""
#: cps/web.py:750
#: cps/web.py:749
msgid "Available languages"
msgstr "ភាសាដែលមាន"
#: cps/templates/index.xml:75 cps/web.py:767
#: cps/templates/index.xml:75 cps/web.py:766
msgid "Category list"
msgstr "បញ្ជីប្រភេទ"
#: cps/templates/layout.html:73 cps/web.py:781
#: cps/templates/layout.html:73 cps/web.py:780
msgid "Tasks"
msgstr "កិច្ចការនានា"
#: cps/web.py:846
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45 cps/web.py:802 cps/web.py:804
msgid "Search"
msgstr "ស្វែងរក"
#: cps/web.py:851
msgid "Published after "
msgstr "បានបោះពុម្ភក្រោយ "
#: cps/web.py:853
#: cps/web.py:858
msgid "Published before "
msgstr "បានបោះពុម្ភមុន "
#: cps/web.py:867
#: cps/web.py:872
#, python-format
msgid "Rating <= %(rating)s"
msgstr "ការវាយតម្លៃ <= %(rating)s"
#: cps/web.py:869
#: cps/web.py:874
#, python-format
msgid "Rating >= %(rating)s"
msgstr "ការវាយតម្លៃ >= %(rating)s"
#: cps/web.py:929 cps/web.py:939
#: cps/web.py:934 cps/web.py:944
msgid "search"
msgstr "ស្វែងរក"
#: cps/web.py:1022
#: cps/web.py:1027
msgid "Please configure the SMTP mail settings first..."
msgstr "សូមកំណត់អ៊ីមែល SMTP ជាមុនសិន"
#: cps/web.py:1027
#: cps/web.py:1032
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "សៀវភៅបានចូលជួរសម្រាប់ផ្ញើទៅ %(kindlemail)s ដោយជោគជ័យ"
#: cps/web.py:1031
#: cps/web.py:1036
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr "មានបញ្ហានៅពេលផ្ញើសៀវភៅនេះ៖ %(res)s"
#: cps/web.py:1051 cps/web.py:1076 cps/web.py:1080 cps/web.py:1085
#: cps/web.py:1089
#: cps/web.py:1056 cps/web.py:1081 cps/web.py:1085 cps/web.py:1090
#: cps/web.py:1094
msgid "register"
msgstr "ចុះឈ្មោះ"
#: cps/web.py:1078
#: cps/web.py:1083
msgid "Your e-mail is not allowed to register"
msgstr ""
#: cps/web.py:1081
#: cps/web.py:1086
msgid "Confirmation e-mail was send to your e-mail account."
msgstr ""
#: cps/web.py:1084
#: cps/web.py:1089
msgid "This username or e-mail address is already in use."
msgstr ""
#: cps/web.py:1099
#: cps/web.py:1104
msgid "Cannot activate LDAP authentication"
msgstr ""
#: cps/web.py:1108 cps/web.py:1214
#: cps/web.py:1113 cps/web.py:1219
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "ឥឡូវអ្នកបានចូលដោយមានឈ្មោះថា៖ %(nickname)s"
#: cps/web.py:1112
#: cps/web.py:1117
msgid "Could not login. LDAP server down, please contact your administrator"
msgstr ""
#: cps/web.py:1116 cps/web.py:1124
#: cps/web.py:1121 cps/web.py:1129
msgid "Wrong Username or Password"
msgstr "ខុសឈ្មោះអ្នកប្រើប្រាស់ ឬលេខសម្ងាត់"
#: cps/web.py:1120
#: cps/web.py:1125
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr ""
#: cps/web.py:1128 cps/web.py:1150
#: cps/web.py:1133 cps/web.py:1155
msgid "login"
msgstr "ចូលប្រើ"
#: cps/web.py:1162 cps/web.py:1193
#: cps/web.py:1167 cps/web.py:1198
msgid "Token not found"
msgstr "រកមិនឃើញវត្ថុតាង"
#: cps/web.py:1170 cps/web.py:1201
#: cps/web.py:1175 cps/web.py:1206
msgid "Token has expired"
msgstr "វត្ថុតាងហួសពេលកំណត់"
#: cps/web.py:1178
#: cps/web.py:1183
msgid "Success! Please return to your device"
msgstr "ជោគជ័យ! សូមវិលមកឧបករណ៍អ្នកវិញ"
#: cps/web.py:1255 cps/web.py:1282 cps/web.py:1286
#: cps/web.py:1260 cps/web.py:1302 cps/web.py:1306
#, python-format
msgid "%(name)s's profile"
msgstr "ព័ត៌មានសង្ខេបរបស់ %(name)s"
#: cps/web.py:1284
#: cps/web.py:1304
msgid "Profile updated"
msgstr "ព័ត៌មានសង្ខេបបានកែប្រែ"
#: cps/web.py:1310 cps/web.py:1312 cps/web.py:1314 cps/web.py:1320
#: cps/web.py:1324
#: cps/web.py:1330 cps/web.py:1332 cps/web.py:1334 cps/web.py:1340
#: cps/web.py:1344
msgid "Read a Book"
msgstr "អានសៀវភៅ"
#: cps/web.py:1334
#: cps/web.py:1354
msgid "Error opening eBook. File does not exist or file is not accessible."
msgstr ""
@ -1057,7 +1068,7 @@ msgstr "បាទ/ចាស"
#: cps/templates/config_edit.html:321 cps/templates/config_view_edit.html:147
#: cps/templates/email_edit.html:40 cps/templates/email_edit.html:74
#: cps/templates/layout.html:28 cps/templates/shelf.html:73
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:12
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:32
#: cps/templates/user_edit.html:132
msgid "Back"
msgstr "មកក្រោយ"
@ -1691,11 +1702,6 @@ msgstr ""
msgid "Next"
msgstr "បន្ទាប់"
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45
msgid "Search"
msgstr "ស្វែងរក"
#: cps/templates/http_error.html:37
msgid "Create issue"
msgstr ""
@ -2055,7 +2061,7 @@ msgstr "លុបធ្នើនេះ"
msgid "Edit Shelf"
msgstr ""
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:11
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:31
msgid "Change order"
msgstr "ប្តូរលំដាប់"

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web (GPLV3)\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2019-09-06 19:03+0200\n"
"POT-Creation-Date: 2019-11-16 08:00+0100\n"
"PO-Revision-Date: 2019-06-17 22:37+0200\n"
"Last-Translator: Marcel Maas <marcel.maas@outlook.com>\n"
"Language: nl\n"
@ -19,17 +19,15 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.7.0\n"
#: cps/about.py:40 cps/about.py:65 cps/about.py:66 cps/uploader.py:228
#: cps/about.py:41
msgid "installed"
msgstr ""
#: cps/about.py:42 cps/about.py:65 cps/about.py:66 cps/uploader.py:213
#: cps/uploader.py:214 cps/uploader.py:218 cps/uploader.py:222
#: cps/uploader.py:226 cps/uploader.py:230
#: cps/about.py:43
msgid "not installed"
msgstr "niet geïnstalleerd"
#: cps/about.py:80
#: cps/about.py:81
msgid "Statistics"
msgstr "Statistieken"
@ -41,7 +39,7 @@ msgstr "De server is herstart; vernieuw de pagina"
msgid "Performing shutdown of server, please close window"
msgstr "Bezig het stoppen van server; sluit het venster"
#: cps/admin.py:111 cps/updater.py:445
#: cps/admin.py:111 cps/updater.py:446
msgid "Unknown"
msgstr "Onbekend"
@ -61,7 +59,7 @@ msgstr "Calibre-Web-configuratie bijgewerkt"
msgid "Basic Configuration"
msgstr "Basis configuratie"
#: cps/admin.py:452 cps/web.py:1050
#: cps/admin.py:452 cps/web.py:1055
msgid "Please fill out all fields!"
msgstr "Vul alle velden in!"
@ -70,7 +68,7 @@ msgstr "Vul alle velden in!"
msgid "Add new user"
msgstr "Nieuwe gebruiker toevoegen"
#: cps/admin.py:463 cps/web.py:1253
#: cps/admin.py:463 cps/web.py:1258
msgid "E-mail is not from valid domain"
msgstr "Het e-mailadres bevat geen geldige domeinnaam"
@ -97,7 +95,7 @@ msgstr "Test-e-mail verstuurd naar %(kindlemail)s"
msgid "There was an error sending the Test e-mail: %(res)s"
msgstr "Fout opgetreden bij het versturen van de test-e-mail: %(res)s"
#: cps/admin.py:527 cps/web.py:1033
#: cps/admin.py:527 cps/web.py:1038
msgid "Please configure your kindle e-mail address first..."
msgstr "Stel je kindle-e-mailadres in..."
@ -114,85 +112,93 @@ msgstr "Gebruiker '%(nick)s' is verwijderd"
msgid "No admin user remaining, can't delete user"
msgstr "Kan laatste systeembeheerder niet verwijderen"
#: cps/admin.py:600 cps/web.py:1279
#: cps/admin.py:599 cps/web.py:1299
msgid "Found an existing account for this e-mail address."
msgstr "Bestaand account met dit e-mailadres aangetroffen."
#: cps/admin.py:603 cps/admin.py:615
#: cps/admin.py:602 cps/admin.py:615 cps/admin.py:629 cps/web.py:1274
#, python-format
msgid "Edit User %(nick)s"
msgstr "Gebruiker '%(nick)s' bewerken"
#: cps/admin.py:609
#: cps/admin.py:608 cps/web.py:1267
msgid "This username is already taken"
msgstr ""
#: cps/admin.py:623
#, python-format
msgid "User '%(nick)s' updated"
msgstr "Gebruiker '%(nick)s' bijgewerkt"
#: cps/admin.py:612
#: cps/admin.py:626
msgid "An unknown error occured."
msgstr "Er is een onbekende fout opgetreden."
#: cps/admin.py:631
#: cps/admin.py:645
#, python-format
msgid "Password for user %(user)s reset"
msgstr "Wachtwoord voor gebruiker %(user)s is hersteld"
#: cps/admin.py:634 cps/web.py:1075
#: cps/admin.py:648 cps/web.py:1080
msgid "An unknown error occurred. Please try again later."
msgstr "Onbekende fout opgetreden. Probeer het later nog eens."
#: cps/admin.py:645
#: cps/admin.py:659
msgid "Logfile viewer"
msgstr ""
#: cps/admin.py:680
#: cps/admin.py:694
msgid "Requesting update package"
msgstr "Bezig met opvragen van updatepakket"
#: cps/admin.py:681
#: cps/admin.py:695
msgid "Downloading update package"
msgstr "Bezig met downloaden van updatepakket"
#: cps/admin.py:682
#: cps/admin.py:696
msgid "Unzipping update package"
msgstr "Bezig met uitpakken van updatepakket"
#: cps/admin.py:683
#: cps/admin.py:697
msgid "Replacing files"
msgstr "Bezig met bestandsvervanging"
#: cps/admin.py:684
#: cps/admin.py:698
msgid "Database connections are closed"
msgstr "Databankverbindingen zijn gesloten"
#: cps/admin.py:685
#: cps/admin.py:699
msgid "Stopping server"
msgstr "Bezig met stoppen van server"
#: cps/admin.py:686
#: cps/admin.py:700
msgid "Update finished, please press okay and reload page"
msgstr "Update voltooid; klik op 'Oké' en vernieuw de pagina"
#: cps/admin.py:687 cps/admin.py:688 cps/admin.py:689 cps/admin.py:690
#: cps/admin.py:701 cps/admin.py:702 cps/admin.py:703 cps/admin.py:704
msgid "Update failed:"
msgstr "Update mislukt:"
#: cps/admin.py:687 cps/updater.py:271 cps/updater.py:456 cps/updater.py:458
#: cps/admin.py:701 cps/updater.py:272 cps/updater.py:457 cps/updater.py:459
msgid "HTTP Error"
msgstr "HTTP-fout"
#: cps/admin.py:688 cps/updater.py:273 cps/updater.py:460
#: cps/admin.py:702 cps/updater.py:274 cps/updater.py:461
msgid "Connection error"
msgstr "Verbindingsfout"
#: cps/admin.py:689 cps/updater.py:275 cps/updater.py:462
#: cps/admin.py:703 cps/updater.py:276 cps/updater.py:463
msgid "Timeout while establishing connection"
msgstr "Time-out tijdens maken van verbinding"
#: cps/admin.py:690 cps/updater.py:277 cps/updater.py:464
#: cps/admin.py:704 cps/updater.py:278 cps/updater.py:465
msgid "General error"
msgstr "Algemene fout"
#: cps/converter.py:31
msgid "not configured"
msgstr ""
#: cps/editbooks.py:214 cps/editbooks.py:393
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr "Kan e-boek niet openen: het bestand bestaat niet of is ontoegankelijk"
@ -576,7 +582,7 @@ msgid "Show best rated books"
msgstr "Best beoordeelde boeken tonen"
#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:67
#: cps/web.py:971
#: cps/web.py:976
msgid "Read Books"
msgstr "Gelezen boeken"
@ -585,7 +591,7 @@ msgid "Show read and unread"
msgstr "Gelezen/Ongelezen boeken tonen"
#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:71
#: cps/web.py:975
#: cps/web.py:980
msgid "Unread Books"
msgstr "Ongelezen boeken"
@ -658,228 +664,233 @@ msgstr "Bestandsformaten"
msgid "Show file formats selection"
msgstr "Bestandsformaten tonen"
#: cps/updater.py:251 cps/updater.py:358 cps/updater.py:371
#: cps/updater.py:252 cps/updater.py:359 cps/updater.py:372
msgid "Unexpected data while reading update information"
msgstr "Onverwachte gegevens tijdens het uitlezen van de update-informatie"
#: cps/updater.py:258 cps/updater.py:364
#: cps/updater.py:259 cps/updater.py:365
msgid "No update available. You already have the latest version installed"
msgstr "Geen update beschikbaar. Je beschikt al over de nieuwste versie"
#: cps/updater.py:284
#: cps/updater.py:285
msgid "A new update is available. Click on the button below to update to the latest version."
msgstr "Er is een update beschikbaar. Klik op de knop hieronder om te updaten naar de nieuwste versie."
#: cps/updater.py:337
#: cps/updater.py:338
msgid "Could not fetch update information"
msgstr "De update-informatie kan niet worden opgehaald"
#: cps/updater.py:351
#: cps/updater.py:352
msgid "No release information available"
msgstr "Geen wijzigingslog beschikbaar"
#: cps/updater.py:404 cps/updater.py:413
#: cps/updater.py:405 cps/updater.py:414
#, python-format
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr "Er is een update beschikbaar. Klik op de knop hieronder om te updaten naar versie: %(version)s"
#: cps/updater.py:423
#: cps/updater.py:424
msgid "Click on the button below to update to the latest stable version."
msgstr "Druk op onderstaande knop om de laatste stabiele versie te installeren."
#: cps/web.py:460
#: cps/web.py:459
msgid "Recently Added Books"
msgstr "Recent toegevoegde boeken"
#: cps/web.py:488
#: cps/web.py:487
msgid "Best rated books"
msgstr "Best beoordeelde boeken"
#: cps/templates/index.xml:38 cps/web.py:496
#: cps/templates/index.xml:38 cps/web.py:495
msgid "Random Books"
msgstr "Willekeurige boeken"
#: cps/web.py:522
#: cps/web.py:521
msgid "Books"
msgstr "Boeken"
#: cps/web.py:549
#: cps/web.py:548
msgid "Hot Books (most downloaded)"
msgstr "Populaire boeken (meest gedownload)"
#: cps/web.py:560 cps/web.py:1300 cps/web.py:1388
#: cps/web.py:559 cps/web.py:1320 cps/web.py:1408
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "Kan e-boek niet openen. Het bestand bestaat niet of is niet toegankelijk:"
#: cps/web.py:573
#: cps/web.py:572
#, python-format
msgid "Author: %(name)s"
msgstr "Auteur: %(name)s"
#: cps/web.py:585
#: cps/web.py:584
#, python-format
msgid "Publisher: %(name)s"
msgstr "Uitgever: %(name)s"
#: cps/web.py:596
#: cps/web.py:595
#, python-format
msgid "Series: %(serie)s"
msgstr "Reeks: %(serie)s"
#: cps/web.py:607
#: cps/web.py:606
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Beoordeling: %(rating)s sterren"
#: cps/web.py:618
#: cps/web.py:617
#, python-format
msgid "File format: %(format)s"
msgstr "Bestandsformaat: %(format)s"
#: cps/web.py:630
#: cps/web.py:629
#, python-format
msgid "Category: %(name)s"
msgstr "Categorie: %(name)s"
#: cps/web.py:647
#: cps/web.py:646
#, python-format
msgid "Language: %(name)s"
msgstr "Taal: %(name)s"
#: cps/web.py:679
#: cps/web.py:678
msgid "Publisher list"
msgstr "Uitgeverslijst"
#: cps/templates/index.xml:82 cps/web.py:695
#: cps/templates/index.xml:82 cps/web.py:694
msgid "Series list"
msgstr "Boekenreeksen"
#: cps/web.py:709
#: cps/web.py:708
msgid "Ratings list"
msgstr "Beoordelingen"
#: cps/web.py:722
#: cps/web.py:721
msgid "File formats list"
msgstr "Alle bestandsformaten"
#: cps/web.py:750
#: cps/web.py:749
msgid "Available languages"
msgstr "Beschikbare talen"
#: cps/templates/index.xml:75 cps/web.py:767
#: cps/templates/index.xml:75 cps/web.py:766
msgid "Category list"
msgstr "Categorielijst"
#: cps/templates/layout.html:73 cps/web.py:781
#: cps/templates/layout.html:73 cps/web.py:780
msgid "Tasks"
msgstr "Taken"
#: cps/web.py:846
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45 cps/web.py:802 cps/web.py:804
msgid "Search"
msgstr "Zoeken"
#: cps/web.py:851
msgid "Published after "
msgstr "Gepubliceerd na "
#: cps/web.py:853
#: cps/web.py:858
msgid "Published before "
msgstr "Gepubliceerd vóór "
#: cps/web.py:867
#: cps/web.py:872
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Beoordeling <= %(rating)s"
#: cps/web.py:869
#: cps/web.py:874
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Beoordeling >= %(rating)s"
#: cps/web.py:929 cps/web.py:939
#: cps/web.py:934 cps/web.py:944
msgid "search"
msgstr "zoeken"
#: cps/web.py:1022
#: cps/web.py:1027
msgid "Please configure the SMTP mail settings first..."
msgstr "Stel eerst SMTP-mail in..."
#: cps/web.py:1027
#: cps/web.py:1032
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Het boek is in de wachtrij geplaatst om te worden verstuurd aan %(kindlemail)s"
#: cps/web.py:1031
#: cps/web.py:1036
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr "Fout opgetreden bij het versturen van dit boek: %(res)s"
#: cps/web.py:1051 cps/web.py:1076 cps/web.py:1080 cps/web.py:1085
#: cps/web.py:1089
#: cps/web.py:1056 cps/web.py:1081 cps/web.py:1085 cps/web.py:1090
#: cps/web.py:1094
msgid "register"
msgstr "registreren"
#: cps/web.py:1078
#: cps/web.py:1083
msgid "Your e-mail is not allowed to register"
msgstr "Dit e-mailadres mag niet worden gebruikt voor registratie"
#: cps/web.py:1081
#: cps/web.py:1086
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Er is een bevestigingse-mail verstuurd naar je e-mailadres."
#: cps/web.py:1084
#: cps/web.py:1089
msgid "This username or e-mail address is already in use."
msgstr "Deze gebruikersnaam of e-mailadres is al in gebruik."
#: cps/web.py:1099
#: cps/web.py:1104
msgid "Cannot activate LDAP authentication"
msgstr ""
#: cps/web.py:1108 cps/web.py:1214
#: cps/web.py:1113 cps/web.py:1219
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "je bent ingelogd als: '%(nickname)s'"
#: cps/web.py:1112
#: cps/web.py:1117
msgid "Could not login. LDAP server down, please contact your administrator"
msgstr "Kan niet inloggen, LDAP server niet bereikbaar, contacteer de beheerder"
#: cps/web.py:1116 cps/web.py:1124
#: cps/web.py:1121 cps/web.py:1129
msgid "Wrong Username or Password"
msgstr "Verkeerde gebruikersnaam of wachtwoord"
#: cps/web.py:1120
#: cps/web.py:1125
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "Je bent ingelogd als: '%(nickname)s'"
#: cps/web.py:1128 cps/web.py:1150
#: cps/web.py:1133 cps/web.py:1155
msgid "login"
msgstr "inloggen"
#: cps/web.py:1162 cps/web.py:1193
#: cps/web.py:1167 cps/web.py:1198
msgid "Token not found"
msgstr "Toegangssleutel niet gevonden"
#: cps/web.py:1170 cps/web.py:1201
#: cps/web.py:1175 cps/web.py:1206
msgid "Token has expired"
msgstr "Toegangssleutel is verlopen"
#: cps/web.py:1178
#: cps/web.py:1183
msgid "Success! Please return to your device"
msgstr "Gelukt! Ga terug naar je apparaat"
#: cps/web.py:1255 cps/web.py:1282 cps/web.py:1286
#: cps/web.py:1260 cps/web.py:1302 cps/web.py:1306
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)s's profiel"
#: cps/web.py:1284
#: cps/web.py:1304
msgid "Profile updated"
msgstr "Profiel bijgewerkt"
#: cps/web.py:1310 cps/web.py:1312 cps/web.py:1314 cps/web.py:1320
#: cps/web.py:1324
#: cps/web.py:1330 cps/web.py:1332 cps/web.py:1334 cps/web.py:1340
#: cps/web.py:1344
msgid "Read a Book"
msgstr "Lees een boek"
#: cps/web.py:1334
#: cps/web.py:1354
msgid "Error opening eBook. File does not exist or file is not accessible."
msgstr ""
@ -1057,7 +1068,7 @@ msgstr "Oké"
#: cps/templates/config_edit.html:321 cps/templates/config_view_edit.html:147
#: cps/templates/email_edit.html:40 cps/templates/email_edit.html:74
#: cps/templates/layout.html:28 cps/templates/shelf.html:73
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:12
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:32
#: cps/templates/user_edit.html:132
msgid "Back"
msgstr "Annuleren"
@ -1691,11 +1702,6 @@ msgstr "Weet je zeker dat je deze domeinregel wilt verwijderen?"
msgid "Next"
msgstr "Volgende"
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45
msgid "Search"
msgstr "Zoeken"
#: cps/templates/http_error.html:37
msgid "Create issue"
msgstr "Probleem melden"
@ -2055,7 +2061,7 @@ msgstr "Deze boekenplank verwijderen"
msgid "Edit Shelf"
msgstr "Boekenplank bewerken"
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:11
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:31
msgid "Change order"
msgstr "Volgorde veranderen"

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre Web - polski (POT: 2019-08-06 18:35)\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2019-09-06 19:03+0200\n"
"POT-Creation-Date: 2019-11-16 08:00+0100\n"
"PO-Revision-Date: 2019-08-18 22:06+0200\n"
"Last-Translator: Radosław Kierznowski <radek.kierznowski@outlook.com>\n"
"Language: pl\n"
@ -19,17 +19,15 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.7.0\n"
#: cps/about.py:40 cps/about.py:65 cps/about.py:66 cps/uploader.py:228
#: cps/about.py:41
msgid "installed"
msgstr "zainstalowane"
#: cps/about.py:42 cps/about.py:65 cps/about.py:66 cps/uploader.py:213
#: cps/uploader.py:214 cps/uploader.py:218 cps/uploader.py:222
#: cps/uploader.py:226 cps/uploader.py:230
#: cps/about.py:43
msgid "not installed"
msgstr "nie zainstalowane"
#: cps/about.py:80
#: cps/about.py:81
msgid "Statistics"
msgstr "Statystyki"
@ -42,7 +40,7 @@ msgid "Performing shutdown of server, please close window"
msgstr "Wykonano wyłączenie serwera, proszę zamknąć okno"
# ???
#: cps/admin.py:111 cps/updater.py:445
#: cps/admin.py:111 cps/updater.py:446
msgid "Unknown"
msgstr "Nieznany"
@ -62,7 +60,7 @@ msgstr "Konfiguracja Calibre-Web została zaktualizowana"
msgid "Basic Configuration"
msgstr "Podstawowa konfiguracja"
#: cps/admin.py:452 cps/web.py:1050
#: cps/admin.py:452 cps/web.py:1055
msgid "Please fill out all fields!"
msgstr "Proszę wypełnić wszystkie pola!"
@ -71,7 +69,7 @@ msgstr "Proszę wypełnić wszystkie pola!"
msgid "Add new user"
msgstr "Dodaj nowego użytkownika"
#: cps/admin.py:463 cps/web.py:1253
#: cps/admin.py:463 cps/web.py:1258
msgid "E-mail is not from valid domain"
msgstr "E-mail nie pochodzi z prawidłowej domeny"
@ -98,7 +96,7 @@ msgstr "Test e-maila zakończony pomyślnie. Wysłano do %(kindlemail)s"
msgid "There was an error sending the Test e-mail: %(res)s"
msgstr "Wystąpił błąd podczas wysyłania e-maila testowego: %(res)s"
#: cps/admin.py:527 cps/web.py:1033
#: cps/admin.py:527 cps/web.py:1038
msgid "Please configure your kindle e-mail address first..."
msgstr "Najpierw skonfiguruj adres e-mail Kindla..."
@ -115,87 +113,95 @@ msgstr "Użytkownik '%(nick)s' został usunięty"
msgid "No admin user remaining, can't delete user"
msgstr "Nie można usunąć użytkownika. Brak na serwerze innego konta z prawami administratora"
#: cps/admin.py:600 cps/web.py:1279
#: cps/admin.py:599 cps/web.py:1299
msgid "Found an existing account for this e-mail address."
msgstr "Znaleziono istniejące konto dla tego adresu e-mail."
#: cps/admin.py:603 cps/admin.py:615
#: cps/admin.py:602 cps/admin.py:615 cps/admin.py:629 cps/web.py:1274
#, python-format
msgid "Edit User %(nick)s"
msgstr "Edytuj użytkownika %(nick)s"
#: cps/admin.py:609
#: cps/admin.py:608 cps/web.py:1267
msgid "This username is already taken"
msgstr ""
#: cps/admin.py:623
#, python-format
msgid "User '%(nick)s' updated"
msgstr "Użytkownik '%(nick)s' został zaktualizowany"
#: cps/admin.py:612
#: cps/admin.py:626
msgid "An unknown error occured."
msgstr "Wystąpił nieznany błąd."
# ???
#: cps/admin.py:631
#: cps/admin.py:645
#, python-format
msgid "Password for user %(user)s reset"
msgstr "Zrestartowano hasło użytkownika %(user)s"
#: cps/admin.py:634 cps/web.py:1075
#: cps/admin.py:648 cps/web.py:1080
msgid "An unknown error occurred. Please try again later."
msgstr "Wystąpił nieznany błąd. Spróbuj ponownie później."
#: cps/admin.py:645
#: cps/admin.py:659
msgid "Logfile viewer"
msgstr "Przeglądanie plików Logu"
#: cps/admin.py:680
#: cps/admin.py:694
msgid "Requesting update package"
msgstr "Żądanie o pakiet aktualizacji"
#: cps/admin.py:681
#: cps/admin.py:695
msgid "Downloading update package"
msgstr "Pobieranie pakietu aktualizacji"
#: cps/admin.py:682
#: cps/admin.py:696
msgid "Unzipping update package"
msgstr "Rozpakowywanie pakietu aktualizacji"
# ???
#: cps/admin.py:683
#: cps/admin.py:697
msgid "Replacing files"
msgstr "Zastępowanie plików"
#: cps/admin.py:684
#: cps/admin.py:698
msgid "Database connections are closed"
msgstr "Połączenia z bazą danych zostały zakończone"
#: cps/admin.py:685
#: cps/admin.py:699
msgid "Stopping server"
msgstr "Zatrzymywanie serwera"
#: cps/admin.py:686
#: cps/admin.py:700
msgid "Update finished, please press okay and reload page"
msgstr "Aktualizacja zakończona, proszę nacisnąć OK i odświeżyć stronę"
#: cps/admin.py:687 cps/admin.py:688 cps/admin.py:689 cps/admin.py:690
#: cps/admin.py:701 cps/admin.py:702 cps/admin.py:703 cps/admin.py:704
msgid "Update failed:"
msgstr "Aktualizacja nieudana:"
#: cps/admin.py:687 cps/updater.py:271 cps/updater.py:456 cps/updater.py:458
#: cps/admin.py:701 cps/updater.py:272 cps/updater.py:457 cps/updater.py:459
msgid "HTTP Error"
msgstr ""
#: cps/admin.py:688 cps/updater.py:273 cps/updater.py:460
#: cps/admin.py:702 cps/updater.py:274 cps/updater.py:461
msgid "Connection error"
msgstr ""
#: cps/admin.py:689 cps/updater.py:275 cps/updater.py:462
#: cps/admin.py:703 cps/updater.py:276 cps/updater.py:463
msgid "Timeout while establishing connection"
msgstr "Przekroczono limit czasu podczas nawiązywania połączenia"
#: cps/admin.py:690 cps/updater.py:277 cps/updater.py:464
#: cps/admin.py:704 cps/updater.py:278 cps/updater.py:465
msgid "General error"
msgstr ""
#: cps/converter.py:31
msgid "not configured"
msgstr ""
#: cps/editbooks.py:214 cps/editbooks.py:393
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr "Błąd podczas otwierania eBooka. Plik nie istnieje lub jest niedostępny"
@ -583,7 +589,7 @@ msgid "Show best rated books"
msgstr "Pokaż menu najlepiej ocenione książki"
#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:67
#: cps/web.py:971
#: cps/web.py:976
msgid "Read Books"
msgstr "Przeczytane książki"
@ -592,7 +598,7 @@ msgid "Show read and unread"
msgstr "Pokaż menu przeczytane i nieprzeczytane"
#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:71
#: cps/web.py:975
#: cps/web.py:980
msgid "Unread Books"
msgstr "Nieprzeczytane książki"
@ -665,228 +671,233 @@ msgstr "Format plików"
msgid "Show file formats selection"
msgstr "Pokaż menu formatu plików"
#: cps/updater.py:251 cps/updater.py:358 cps/updater.py:371
#: cps/updater.py:252 cps/updater.py:359 cps/updater.py:372
msgid "Unexpected data while reading update information"
msgstr ""
#: cps/updater.py:258 cps/updater.py:364
#: cps/updater.py:259 cps/updater.py:365
msgid "No update available. You already have the latest version installed"
msgstr ""
#: cps/updater.py:284
#: cps/updater.py:285
msgid "A new update is available. Click on the button below to update to the latest version."
msgstr ""
#: cps/updater.py:337
#: cps/updater.py:338
msgid "Could not fetch update information"
msgstr ""
#: cps/updater.py:351
#: cps/updater.py:352
msgid "No release information available"
msgstr ""
#: cps/updater.py:404 cps/updater.py:413
#: cps/updater.py:405 cps/updater.py:414
#, python-format
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr ""
#: cps/updater.py:423
#: cps/updater.py:424
msgid "Click on the button below to update to the latest stable version."
msgstr ""
#: cps/web.py:460
#: cps/web.py:459
msgid "Recently Added Books"
msgstr "Ostatnio dodane książki"
#: cps/web.py:488
#: cps/web.py:487
msgid "Best rated books"
msgstr "Najlepiej oceniane książki"
#: cps/templates/index.xml:38 cps/web.py:496
#: cps/templates/index.xml:38 cps/web.py:495
msgid "Random Books"
msgstr "Losowe książki"
#: cps/web.py:522
#: cps/web.py:521
msgid "Books"
msgstr "Książki"
#: cps/web.py:549
#: cps/web.py:548
msgid "Hot Books (most downloaded)"
msgstr "Najpopularniejsze książki (najczęściej pobierane)"
#: cps/web.py:560 cps/web.py:1300 cps/web.py:1388
#: cps/web.py:559 cps/web.py:1320 cps/web.py:1408
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "Błąd otwierania e-booka. Plik nie istnieje lub plik nie jest dostępny:"
#: cps/web.py:573
#: cps/web.py:572
#, python-format
msgid "Author: %(name)s"
msgstr "Autor: %(name)s"
#: cps/web.py:585
#: cps/web.py:584
#, python-format
msgid "Publisher: %(name)s"
msgstr "Wydawca: %(name)s"
#: cps/web.py:596
#: cps/web.py:595
#, python-format
msgid "Series: %(serie)s"
msgstr "Seria: %(serie)s"
#: cps/web.py:607
#: cps/web.py:606
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Ocena: %(rating)s gwiazdek"
#: cps/web.py:618
#: cps/web.py:617
#, python-format
msgid "File format: %(format)s"
msgstr "Format pliku: %(format)s"
#: cps/web.py:630
#: cps/web.py:629
#, python-format
msgid "Category: %(name)s"
msgstr "Kategoria: %(name)s"
#: cps/web.py:647
#: cps/web.py:646
#, python-format
msgid "Language: %(name)s"
msgstr "Język: %(name)s"
#: cps/web.py:679
#: cps/web.py:678
msgid "Publisher list"
msgstr "Lista wydawców"
#: cps/templates/index.xml:82 cps/web.py:695
#: cps/templates/index.xml:82 cps/web.py:694
msgid "Series list"
msgstr "Lista serii"
#: cps/web.py:709
#: cps/web.py:708
msgid "Ratings list"
msgstr "Lista z ocenami"
#: cps/web.py:722
#: cps/web.py:721
msgid "File formats list"
msgstr "Lista formatów"
#: cps/web.py:750
#: cps/web.py:749
msgid "Available languages"
msgstr "Dostępne języki"
#: cps/templates/index.xml:75 cps/web.py:767
#: cps/templates/index.xml:75 cps/web.py:766
msgid "Category list"
msgstr "Lista kategorii"
#: cps/templates/layout.html:73 cps/web.py:781
#: cps/templates/layout.html:73 cps/web.py:780
msgid "Tasks"
msgstr " Zadania"
#: cps/web.py:846
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45 cps/web.py:802 cps/web.py:804
msgid "Search"
msgstr "Szukaj"
#: cps/web.py:851
msgid "Published after "
msgstr "Opublikowane po "
#: cps/web.py:853
#: cps/web.py:858
msgid "Published before "
msgstr "Opublikowane przed "
#: cps/web.py:867
#: cps/web.py:872
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Ocena <= %(rating)s"
#: cps/web.py:869
#: cps/web.py:874
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Ocena >= %(rating)s"
#: cps/web.py:929 cps/web.py:939
#: cps/web.py:934 cps/web.py:944
msgid "search"
msgstr "szukaj"
#: cps/web.py:1022
#: cps/web.py:1027
msgid "Please configure the SMTP mail settings first..."
msgstr "Proszę najpierw skonfigurować ustawienia SMTP poczty e-mail..."
#: cps/web.py:1027
#: cps/web.py:1032
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Książka została umieszczona w kolejce do wysłania do %(kindlemail)s"
#: cps/web.py:1031
#: cps/web.py:1036
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr "Wystąpił błąd podczas wysyłania tej książki: %(res)s"
#: cps/web.py:1051 cps/web.py:1076 cps/web.py:1080 cps/web.py:1085
#: cps/web.py:1089
#: cps/web.py:1056 cps/web.py:1081 cps/web.py:1085 cps/web.py:1090
#: cps/web.py:1094
msgid "register"
msgstr "rejestracja"
#: cps/web.py:1078
#: cps/web.py:1083
msgid "Your e-mail is not allowed to register"
msgstr "Twój e-mail nie może się zarejestrować"
#: cps/web.py:1081
#: cps/web.py:1086
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Wiadomość e-mail z potwierdzeniem została wysłana na Twoje konto e-mail."
#: cps/web.py:1084
#: cps/web.py:1089
msgid "This username or e-mail address is already in use."
msgstr "Ta nazwa użytkownika lub adres e-mail jest już używany."
#: cps/web.py:1099
#: cps/web.py:1104
msgid "Cannot activate LDAP authentication"
msgstr "Nie można aktywować uwierzytelniania LDAP"
#: cps/web.py:1108 cps/web.py:1214
#: cps/web.py:1113 cps/web.py:1219
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "Zalogowałeś się jako: '%(nickname)s'"
#: cps/web.py:1112
#: cps/web.py:1117
msgid "Could not login. LDAP server down, please contact your administrator"
msgstr "Brak możliwości zalogowania. Serwer LDAP jest niedostępny, skontaktuj się z administratorem"
#: cps/web.py:1116 cps/web.py:1124
#: cps/web.py:1121 cps/web.py:1129
msgid "Wrong Username or Password"
msgstr "Błędna nazwa użytkownika lub hasło"
#: cps/web.py:1120
#: cps/web.py:1125
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "Jesteś teraz zalogowany jako: '%(nickname)s'"
#: cps/web.py:1128 cps/web.py:1150
#: cps/web.py:1133 cps/web.py:1155
msgid "login"
msgstr "logowanie"
#: cps/web.py:1162 cps/web.py:1193
#: cps/web.py:1167 cps/web.py:1198
msgid "Token not found"
msgstr "Nie znaleziono tokenu"
#: cps/web.py:1170 cps/web.py:1201
#: cps/web.py:1175 cps/web.py:1206
msgid "Token has expired"
msgstr "Token wygasł"
#: cps/web.py:1178
#: cps/web.py:1183
msgid "Success! Please return to your device"
msgstr "Powodzenie! Wróć do swojego urządzenia"
#: cps/web.py:1255 cps/web.py:1282 cps/web.py:1286
#: cps/web.py:1260 cps/web.py:1302 cps/web.py:1306
#, python-format
msgid "%(name)s's profile"
msgstr "Profil użytkownika %(name)s"
#: cps/web.py:1284
#: cps/web.py:1304
msgid "Profile updated"
msgstr "Zaktualizowano profil"
#: cps/web.py:1310 cps/web.py:1312 cps/web.py:1314 cps/web.py:1320
#: cps/web.py:1324
#: cps/web.py:1330 cps/web.py:1332 cps/web.py:1334 cps/web.py:1340
#: cps/web.py:1344
msgid "Read a Book"
msgstr "Czytaj książkę"
#: cps/web.py:1334
#: cps/web.py:1354
msgid "Error opening eBook. File does not exist or file is not accessible."
msgstr "Błąd podczas otwierania eBooka. Plik nie istnieje lub plik jest niedostępny."
@ -1066,7 +1077,7 @@ msgstr "OK"
#: cps/templates/config_edit.html:321 cps/templates/config_view_edit.html:147
#: cps/templates/email_edit.html:40 cps/templates/email_edit.html:74
#: cps/templates/layout.html:28 cps/templates/shelf.html:73
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:12
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:32
#: cps/templates/user_edit.html:132
msgid "Back"
msgstr "Wróć"
@ -1705,11 +1716,6 @@ msgstr ""
msgid "Next"
msgstr "Następne"
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45
msgid "Search"
msgstr "Szukaj"
# | msgid "Create a Shelf"
#: cps/templates/http_error.html:37
#, fuzzy
@ -2075,7 +2081,7 @@ msgstr "Usuń tą półkę"
msgid "Edit Shelf"
msgstr "Edytuj półkę"
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:11
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:31
msgid "Change order"
msgstr "Zmień sortowanie"

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2019-09-06 19:03+0200\n"
"POT-Creation-Date: 2019-11-16 08:00+0100\n"
"PO-Revision-Date: 2018-12-14 16:26+0300\n"
"Last-Translator: Pavel Korovin <p@tristero.se>\n"
"Language: ru\n"
@ -18,17 +18,15 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.7.0\n"
#: cps/about.py:40 cps/about.py:65 cps/about.py:66 cps/uploader.py:228
#: cps/about.py:41
msgid "installed"
msgstr ""
#: cps/about.py:42 cps/about.py:65 cps/about.py:66 cps/uploader.py:213
#: cps/uploader.py:214 cps/uploader.py:218 cps/uploader.py:222
#: cps/uploader.py:226 cps/uploader.py:230
#: cps/about.py:43
msgid "not installed"
msgstr "не установлено"
#: cps/about.py:80
#: cps/about.py:81
msgid "Statistics"
msgstr "Статистика"
@ -40,7 +38,7 @@ msgstr "Сервер перезагружен, пожалуйста, перез
msgid "Performing shutdown of server, please close window"
msgstr "Производится остановка сервера, пожалуйста, закройте окно"
#: cps/admin.py:111 cps/updater.py:445
#: cps/admin.py:111 cps/updater.py:446
msgid "Unknown"
msgstr "Неизвестно"
@ -60,7 +58,7 @@ msgstr "Конфигурация Calibre-Web обновлена"
msgid "Basic Configuration"
msgstr "Настройки сервера"
#: cps/admin.py:452 cps/web.py:1050
#: cps/admin.py:452 cps/web.py:1055
msgid "Please fill out all fields!"
msgstr "Пожалуйста, заполните все поля!"
@ -69,7 +67,7 @@ msgstr "Пожалуйста, заполните все поля!"
msgid "Add new user"
msgstr "Добавить пользователя"
#: cps/admin.py:463 cps/web.py:1253
#: cps/admin.py:463 cps/web.py:1258
msgid "E-mail is not from valid domain"
msgstr "E-mail не из существующей доменной зоны"
@ -96,7 +94,7 @@ msgstr "Тестовое письмо успешно отправлено на %
msgid "There was an error sending the Test e-mail: %(res)s"
msgstr "Произошла ошибка при отправке тестового письма на: %(res)s"
#: cps/admin.py:527 cps/web.py:1033
#: cps/admin.py:527 cps/web.py:1038
msgid "Please configure your kindle e-mail address first..."
msgstr "Пожалуйста, сначала настройте e-mail на вашем kindle..."
@ -113,85 +111,93 @@ msgstr "Пользователь '%(nick)s' удалён"
msgid "No admin user remaining, can't delete user"
msgstr ""
#: cps/admin.py:600 cps/web.py:1279
#: cps/admin.py:599 cps/web.py:1299
msgid "Found an existing account for this e-mail address."
msgstr "Этот адрес электронной почты уже зарегистрирован."
#: cps/admin.py:603 cps/admin.py:615
#: cps/admin.py:602 cps/admin.py:615 cps/admin.py:629 cps/web.py:1274
#, python-format
msgid "Edit User %(nick)s"
msgstr "Изменить пользователя %(nick)s"
#: cps/admin.py:609
#: cps/admin.py:608 cps/web.py:1267
msgid "This username is already taken"
msgstr ""
#: cps/admin.py:623
#, python-format
msgid "User '%(nick)s' updated"
msgstr "Пользователь '%(nick)s' обновлён"
#: cps/admin.py:612
#: cps/admin.py:626
msgid "An unknown error occured."
msgstr "Произошла неизвестная ошибка."
#: cps/admin.py:631
#: cps/admin.py:645
#, python-format
msgid "Password for user %(user)s reset"
msgstr "Пароль для пользователя %(user)s сброшен"
#: cps/admin.py:634 cps/web.py:1075
#: cps/admin.py:648 cps/web.py:1080
msgid "An unknown error occurred. Please try again later."
msgstr "Неизвестная ошибка. Попробуйте позже."
#: cps/admin.py:645
#: cps/admin.py:659
msgid "Logfile viewer"
msgstr ""
#: cps/admin.py:680
#: cps/admin.py:694
msgid "Requesting update package"
msgstr "Проверка обновлений"
#: cps/admin.py:681
#: cps/admin.py:695
msgid "Downloading update package"
msgstr "Загрузка обновлений"
#: cps/admin.py:682
#: cps/admin.py:696
msgid "Unzipping update package"
msgstr "Распаковка обновлений"
#: cps/admin.py:683
#: cps/admin.py:697
msgid "Replacing files"
msgstr "Замена файлов"
#: cps/admin.py:684
#: cps/admin.py:698
msgid "Database connections are closed"
msgstr "Соеднинения с базой данных закрыты"
#: cps/admin.py:685
#: cps/admin.py:699
msgid "Stopping server"
msgstr "Остановка сервера"
#: cps/admin.py:686
#: cps/admin.py:700
msgid "Update finished, please press okay and reload page"
msgstr "Обновления установлены, нажмите okay и перезагрузите страницу"
#: cps/admin.py:687 cps/admin.py:688 cps/admin.py:689 cps/admin.py:690
#: cps/admin.py:701 cps/admin.py:702 cps/admin.py:703 cps/admin.py:704
msgid "Update failed:"
msgstr "Ошибка обновления:"
#: cps/admin.py:687 cps/updater.py:271 cps/updater.py:456 cps/updater.py:458
#: cps/admin.py:701 cps/updater.py:272 cps/updater.py:457 cps/updater.py:459
msgid "HTTP Error"
msgstr "Ошибка HTTP"
#: cps/admin.py:688 cps/updater.py:273 cps/updater.py:460
#: cps/admin.py:702 cps/updater.py:274 cps/updater.py:461
msgid "Connection error"
msgstr "Ошибка соединения"
#: cps/admin.py:689 cps/updater.py:275 cps/updater.py:462
#: cps/admin.py:703 cps/updater.py:276 cps/updater.py:463
msgid "Timeout while establishing connection"
msgstr "Таймаут при установлении соединения"
#: cps/admin.py:690 cps/updater.py:277 cps/updater.py:464
#: cps/admin.py:704 cps/updater.py:278 cps/updater.py:465
msgid "General error"
msgstr "Общая ошибка"
#: cps/converter.py:31
msgid "not configured"
msgstr ""
#: cps/editbooks.py:214 cps/editbooks.py:393
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr "Ошибка при открытии eBook. Файл не существует или файл недоступен"
@ -575,7 +581,7 @@ msgid "Show best rated books"
msgstr "Показывать книги с наивысшим рейтингом"
#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:67
#: cps/web.py:971
#: cps/web.py:976
msgid "Read Books"
msgstr "Прочитанные Книги"
@ -584,7 +590,7 @@ msgid "Show read and unread"
msgstr "Показывать прочитанные и непрочитанные"
#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:71
#: cps/web.py:975
#: cps/web.py:980
msgid "Unread Books"
msgstr "Непрочитанные Книги"
@ -657,228 +663,233 @@ msgstr ""
msgid "Show file formats selection"
msgstr ""
#: cps/updater.py:251 cps/updater.py:358 cps/updater.py:371
#: cps/updater.py:252 cps/updater.py:359 cps/updater.py:372
msgid "Unexpected data while reading update information"
msgstr "Некорректные данные при чтении информации об обновлении"
#: cps/updater.py:258 cps/updater.py:364
#: cps/updater.py:259 cps/updater.py:365
msgid "No update available. You already have the latest version installed"
msgstr "Обновление недоступно. Вы используете самую последнюю версию"
#: cps/updater.py:284
#: cps/updater.py:285
msgid "A new update is available. Click on the button below to update to the latest version."
msgstr "Доступно обновление. Нажмите на кнопку, что бы обновиться до последней версии."
#: cps/updater.py:337
#: cps/updater.py:338
msgid "Could not fetch update information"
msgstr "Не удалось получить информацию об обновлении"
#: cps/updater.py:351
#: cps/updater.py:352
msgid "No release information available"
msgstr ""
#: cps/updater.py:404 cps/updater.py:413
#: cps/updater.py:405 cps/updater.py:414
#, python-format
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr ""
#: cps/updater.py:423
#: cps/updater.py:424
msgid "Click on the button below to update to the latest stable version."
msgstr ""
#: cps/web.py:460
#: cps/web.py:459
msgid "Recently Added Books"
msgstr "Недавно Добавленные Книги"
#: cps/web.py:488
#: cps/web.py:487
msgid "Best rated books"
msgstr "Книги с наивысшим рейтингом"
#: cps/templates/index.xml:38 cps/web.py:496
#: cps/templates/index.xml:38 cps/web.py:495
msgid "Random Books"
msgstr "Случайный выбор"
#: cps/web.py:522
#: cps/web.py:521
msgid "Books"
msgstr ""
#: cps/web.py:549
#: cps/web.py:548
msgid "Hot Books (most downloaded)"
msgstr "Популярные книги (часто загружаемые)"
#: cps/web.py:560 cps/web.py:1300 cps/web.py:1388
#: cps/web.py:559 cps/web.py:1320 cps/web.py:1408
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "Невозможно открыть книгу. Файл не существует или недоступен."
#: cps/web.py:573
#: cps/web.py:572
#, python-format
msgid "Author: %(name)s"
msgstr ""
#: cps/web.py:585
#: cps/web.py:584
#, python-format
msgid "Publisher: %(name)s"
msgstr "Издатель: %(name)s"
#: cps/web.py:596
#: cps/web.py:595
#, python-format
msgid "Series: %(serie)s"
msgstr "Серии: %(serie)s"
#: cps/web.py:607
#: cps/web.py:606
#, python-format
msgid "Rating: %(rating)s stars"
msgstr ""
#: cps/web.py:618
#: cps/web.py:617
#, python-format
msgid "File format: %(format)s"
msgstr ""
#: cps/web.py:630
#: cps/web.py:629
#, python-format
msgid "Category: %(name)s"
msgstr "Категория: %(name)s"
#: cps/web.py:647
#: cps/web.py:646
#, python-format
msgid "Language: %(name)s"
msgstr "Язык: %(name)s"
#: cps/web.py:679
#: cps/web.py:678
msgid "Publisher list"
msgstr "Список издателей"
#: cps/templates/index.xml:82 cps/web.py:695
#: cps/templates/index.xml:82 cps/web.py:694
msgid "Series list"
msgstr "Серии"
#: cps/web.py:709
#: cps/web.py:708
msgid "Ratings list"
msgstr ""
#: cps/web.py:722
#: cps/web.py:721
msgid "File formats list"
msgstr ""
#: cps/web.py:750
#: cps/web.py:749
msgid "Available languages"
msgstr "Доступные языки"
#: cps/templates/index.xml:75 cps/web.py:767
#: cps/templates/index.xml:75 cps/web.py:766
msgid "Category list"
msgstr "Категории"
#: cps/templates/layout.html:73 cps/web.py:781
#: cps/templates/layout.html:73 cps/web.py:780
msgid "Tasks"
msgstr "Задания"
#: cps/web.py:846
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45 cps/web.py:802 cps/web.py:804
msgid "Search"
msgstr "Поиск"
#: cps/web.py:851
msgid "Published after "
msgstr "Опубликовано до "
#: cps/web.py:853
#: cps/web.py:858
msgid "Published before "
msgstr "Опубликовано после "
#: cps/web.py:867
#: cps/web.py:872
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Рейтинг <= %(rating)s"
#: cps/web.py:869
#: cps/web.py:874
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Рейтинг >= %(rating)s"
#: cps/web.py:929 cps/web.py:939
#: cps/web.py:934 cps/web.py:944
msgid "search"
msgstr "поиск"
#: cps/web.py:1022
#: cps/web.py:1027
msgid "Please configure the SMTP mail settings first..."
msgstr "Пожалуйста, сначала сконфигурируйте параметры SMTP"
#: cps/web.py:1027
#: cps/web.py:1032
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Книга успешно поставлена в очередь для отправки на %(kindlemail)s"
#: cps/web.py:1031
#: cps/web.py:1036
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr "Ошибка при отправке книги: %(res)s"
#: cps/web.py:1051 cps/web.py:1076 cps/web.py:1080 cps/web.py:1085
#: cps/web.py:1089
#: cps/web.py:1056 cps/web.py:1081 cps/web.py:1085 cps/web.py:1090
#: cps/web.py:1094
msgid "register"
msgstr "регистрация"
#: cps/web.py:1078
#: cps/web.py:1083
msgid "Your e-mail is not allowed to register"
msgstr "Ваш e-mail не подходит для регистрации"
#: cps/web.py:1081
#: cps/web.py:1086
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Письмо с подтверждением отправлено вам на e-mail"
#: cps/web.py:1084
#: cps/web.py:1089
msgid "This username or e-mail address is already in use."
msgstr "Этот никнейм или e-mail уже используются"
#: cps/web.py:1099
#: cps/web.py:1104
msgid "Cannot activate LDAP authentication"
msgstr ""
#: cps/web.py:1108 cps/web.py:1214
#: cps/web.py:1113 cps/web.py:1219
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "Вы вошли как пользователь '%(nickname)s'"
#: cps/web.py:1112
#: cps/web.py:1117
msgid "Could not login. LDAP server down, please contact your administrator"
msgstr ""
#: cps/web.py:1116 cps/web.py:1124
#: cps/web.py:1121 cps/web.py:1129
msgid "Wrong Username or Password"
msgstr "Ошибка в имени пользователя или пароле"
#: cps/web.py:1120
#: cps/web.py:1125
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr ""
#: cps/web.py:1128 cps/web.py:1150
#: cps/web.py:1133 cps/web.py:1155
msgid "login"
msgstr "войти"
#: cps/web.py:1162 cps/web.py:1193
#: cps/web.py:1167 cps/web.py:1198
msgid "Token not found"
msgstr "Ключ не найден"
#: cps/web.py:1170 cps/web.py:1201
#: cps/web.py:1175 cps/web.py:1206
msgid "Token has expired"
msgstr "Ключ просрочен"
#: cps/web.py:1178
#: cps/web.py:1183
msgid "Success! Please return to your device"
msgstr "Успешно! Пожалуйста, проверьте свое устройство"
#: cps/web.py:1255 cps/web.py:1282 cps/web.py:1286
#: cps/web.py:1260 cps/web.py:1302 cps/web.py:1306
#, python-format
msgid "%(name)s's profile"
msgstr "Профиль %(name)s"
#: cps/web.py:1284
#: cps/web.py:1304
msgid "Profile updated"
msgstr "Профиль обновлён"
#: cps/web.py:1310 cps/web.py:1312 cps/web.py:1314 cps/web.py:1320
#: cps/web.py:1324
#: cps/web.py:1330 cps/web.py:1332 cps/web.py:1334 cps/web.py:1340
#: cps/web.py:1344
msgid "Read a Book"
msgstr "Читать Книгу"
#: cps/web.py:1334
#: cps/web.py:1354
msgid "Error opening eBook. File does not exist or file is not accessible."
msgstr ""
@ -1056,7 +1067,7 @@ msgstr "Ok"
#: cps/templates/config_edit.html:321 cps/templates/config_view_edit.html:147
#: cps/templates/email_edit.html:40 cps/templates/email_edit.html:74
#: cps/templates/layout.html:28 cps/templates/shelf.html:73
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:12
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:32
#: cps/templates/user_edit.html:132
msgid "Back"
msgstr "Назад"
@ -1690,11 +1701,6 @@ msgstr "Вы действительно желаете удалить это п
msgid "Next"
msgstr "Дальше"
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45
msgid "Search"
msgstr "Поиск"
#: cps/templates/http_error.html:37
msgid "Create issue"
msgstr ""
@ -2054,7 +2060,7 @@ msgstr "Удалить эту книжную полку"
msgid "Edit Shelf"
msgstr "Изменить Полку"
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:11
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:31
msgid "Change order"
msgstr "Изменить порядок"

File diff suppressed because it is too large Load Diff

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n"
"POT-Creation-Date: 2019-09-06 19:03+0200\n"
"POT-Creation-Date: 2019-11-16 08:00+0100\n"
"PO-Revision-Date: 2017-04-30 00:47+0300\n"
"Last-Translator: ABIS Team <biblio.if.abis@gmail.com>\n"
"Language: uk\n"
@ -17,17 +17,15 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.7.0\n"
#: cps/about.py:40 cps/about.py:65 cps/about.py:66 cps/uploader.py:228
#: cps/about.py:41
msgid "installed"
msgstr ""
#: cps/about.py:42 cps/about.py:65 cps/about.py:66 cps/uploader.py:213
#: cps/uploader.py:214 cps/uploader.py:218 cps/uploader.py:222
#: cps/uploader.py:226 cps/uploader.py:230
#: cps/about.py:43
msgid "not installed"
msgstr "не встановлено"
#: cps/about.py:80
#: cps/about.py:81
msgid "Statistics"
msgstr "Статистика"
@ -39,7 +37,7 @@ msgstr "Сервер перезавантажено, будь-ласка, пер
msgid "Performing shutdown of server, please close window"
msgstr "Виконується зупинка серверу, будь-ласка, закрийте вікно"
#: cps/admin.py:111 cps/updater.py:445
#: cps/admin.py:111 cps/updater.py:446
msgid "Unknown"
msgstr "Невідомий"
@ -59,7 +57,7 @@ msgstr ""
msgid "Basic Configuration"
msgstr "Настройки сервера"
#: cps/admin.py:452 cps/web.py:1050
#: cps/admin.py:452 cps/web.py:1055
msgid "Please fill out all fields!"
msgstr "Будь-ласка, заповніть всі поля!"
@ -68,7 +66,7 @@ msgstr "Будь-ласка, заповніть всі поля!"
msgid "Add new user"
msgstr "Додати користувача"
#: cps/admin.py:463 cps/web.py:1253
#: cps/admin.py:463 cps/web.py:1258
msgid "E-mail is not from valid domain"
msgstr ""
@ -95,7 +93,7 @@ msgstr ""
msgid "There was an error sending the Test e-mail: %(res)s"
msgstr ""
#: cps/admin.py:527 cps/web.py:1033
#: cps/admin.py:527 cps/web.py:1038
msgid "Please configure your kindle e-mail address first..."
msgstr ""
@ -112,85 +110,93 @@ msgstr "Користувача '%(nick)s' видалено"
msgid "No admin user remaining, can't delete user"
msgstr ""
#: cps/admin.py:600 cps/web.py:1279
#: cps/admin.py:599 cps/web.py:1299
msgid "Found an existing account for this e-mail address."
msgstr ""
#: cps/admin.py:603 cps/admin.py:615
#: cps/admin.py:602 cps/admin.py:615 cps/admin.py:629 cps/web.py:1274
#, python-format
msgid "Edit User %(nick)s"
msgstr "Змінити користувача %(nick)s"
#: cps/admin.py:609
#: cps/admin.py:608 cps/web.py:1267
msgid "This username is already taken"
msgstr ""
#: cps/admin.py:623
#, python-format
msgid "User '%(nick)s' updated"
msgstr "Користувача '%(nick)s' оновлено"
#: cps/admin.py:612
#: cps/admin.py:626
msgid "An unknown error occured."
msgstr "Сталась невідома помилка"
#: cps/admin.py:631
#: cps/admin.py:645
#, python-format
msgid "Password for user %(user)s reset"
msgstr ""
#: cps/admin.py:634 cps/web.py:1075
#: cps/admin.py:648 cps/web.py:1080
msgid "An unknown error occurred. Please try again later."
msgstr ""
#: cps/admin.py:645
#: cps/admin.py:659
msgid "Logfile viewer"
msgstr ""
#: cps/admin.py:680
#: cps/admin.py:694
msgid "Requesting update package"
msgstr "Перевірка оновлень"
#: cps/admin.py:681
#: cps/admin.py:695
msgid "Downloading update package"
msgstr "Завантаження оновлень"
#: cps/admin.py:682
#: cps/admin.py:696
msgid "Unzipping update package"
msgstr "Розпакування оновлення"
#: cps/admin.py:683
#: cps/admin.py:697
msgid "Replacing files"
msgstr ""
#: cps/admin.py:684
#: cps/admin.py:698
msgid "Database connections are closed"
msgstr "З'єднання з базою даних закрите"
#: cps/admin.py:685
#: cps/admin.py:699
msgid "Stopping server"
msgstr ""
#: cps/admin.py:686
#: cps/admin.py:700
msgid "Update finished, please press okay and reload page"
msgstr "Оновлення встановлені, натисніть ok і перезавантажте сторінку"
#: cps/admin.py:687 cps/admin.py:688 cps/admin.py:689 cps/admin.py:690
#: cps/admin.py:701 cps/admin.py:702 cps/admin.py:703 cps/admin.py:704
msgid "Update failed:"
msgstr ""
#: cps/admin.py:687 cps/updater.py:271 cps/updater.py:456 cps/updater.py:458
#: cps/admin.py:701 cps/updater.py:272 cps/updater.py:457 cps/updater.py:459
msgid "HTTP Error"
msgstr ""
#: cps/admin.py:688 cps/updater.py:273 cps/updater.py:460
#: cps/admin.py:702 cps/updater.py:274 cps/updater.py:461
msgid "Connection error"
msgstr ""
#: cps/admin.py:689 cps/updater.py:275 cps/updater.py:462
#: cps/admin.py:703 cps/updater.py:276 cps/updater.py:463
msgid "Timeout while establishing connection"
msgstr ""
#: cps/admin.py:690 cps/updater.py:277 cps/updater.py:464
#: cps/admin.py:704 cps/updater.py:278 cps/updater.py:465
msgid "General error"
msgstr ""
#: cps/converter.py:31
msgid "not configured"
msgstr ""
#: cps/editbooks.py:214 cps/editbooks.py:393
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr "Сталась помилка при відкриванні eBook. Файл не існує або відсутній доступ до нього"
@ -574,7 +580,7 @@ msgid "Show best rated books"
msgstr "Показувати книги з найвищим рейтингом"
#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:67
#: cps/web.py:971
#: cps/web.py:976
msgid "Read Books"
msgstr "Прочитані книги"
@ -583,7 +589,7 @@ msgid "Show read and unread"
msgstr "Показувати прочитані та непрочитані книги"
#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:71
#: cps/web.py:975
#: cps/web.py:980
msgid "Unread Books"
msgstr "Непрочитані книги"
@ -656,228 +662,233 @@ msgstr ""
msgid "Show file formats selection"
msgstr ""
#: cps/updater.py:251 cps/updater.py:358 cps/updater.py:371
#: cps/updater.py:252 cps/updater.py:359 cps/updater.py:372
msgid "Unexpected data while reading update information"
msgstr ""
#: cps/updater.py:258 cps/updater.py:364
#: cps/updater.py:259 cps/updater.py:365
msgid "No update available. You already have the latest version installed"
msgstr ""
#: cps/updater.py:284
#: cps/updater.py:285
msgid "A new update is available. Click on the button below to update to the latest version."
msgstr ""
#: cps/updater.py:337
#: cps/updater.py:338
msgid "Could not fetch update information"
msgstr ""
#: cps/updater.py:351
#: cps/updater.py:352
msgid "No release information available"
msgstr ""
#: cps/updater.py:404 cps/updater.py:413
#: cps/updater.py:405 cps/updater.py:414
#, python-format
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr ""
#: cps/updater.py:423
#: cps/updater.py:424
msgid "Click on the button below to update to the latest stable version."
msgstr ""
#: cps/web.py:460
#: cps/web.py:459
msgid "Recently Added Books"
msgstr "Нещодавно додані книги"
#: cps/web.py:488
#: cps/web.py:487
msgid "Best rated books"
msgstr "Книги з найкращим рейтингом"
#: cps/templates/index.xml:38 cps/web.py:496
#: cps/templates/index.xml:38 cps/web.py:495
msgid "Random Books"
msgstr "Випадковий список книг"
#: cps/web.py:522
#: cps/web.py:521
msgid "Books"
msgstr ""
#: cps/web.py:549
#: cps/web.py:548
msgid "Hot Books (most downloaded)"
msgstr "Популярні книги (найбільш завантажувані)"
#: cps/web.py:560 cps/web.py:1300 cps/web.py:1388
#: cps/web.py:559 cps/web.py:1320 cps/web.py:1408
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "Неможливо відкрити книгу. Файл не існує або немає доступу."
#: cps/web.py:573
#: cps/web.py:572
#, python-format
msgid "Author: %(name)s"
msgstr ""
#: cps/web.py:585
#: cps/web.py:584
#, python-format
msgid "Publisher: %(name)s"
msgstr ""
#: cps/web.py:596
#: cps/web.py:595
#, python-format
msgid "Series: %(serie)s"
msgstr "Серії: %(serie)s"
#: cps/web.py:607
#: cps/web.py:606
#, python-format
msgid "Rating: %(rating)s stars"
msgstr ""
#: cps/web.py:618
#: cps/web.py:617
#, python-format
msgid "File format: %(format)s"
msgstr ""
#: cps/web.py:630
#: cps/web.py:629
#, python-format
msgid "Category: %(name)s"
msgstr "Категорія: %(name)s"
#: cps/web.py:647
#: cps/web.py:646
#, python-format
msgid "Language: %(name)s"
msgstr "Мова: %(name)s"
#: cps/web.py:679
#: cps/web.py:678
msgid "Publisher list"
msgstr ""
#: cps/templates/index.xml:82 cps/web.py:695
#: cps/templates/index.xml:82 cps/web.py:694
msgid "Series list"
msgstr "Список серій"
#: cps/web.py:709
#: cps/web.py:708
msgid "Ratings list"
msgstr ""
#: cps/web.py:722
#: cps/web.py:721
msgid "File formats list"
msgstr ""
#: cps/web.py:750
#: cps/web.py:749
msgid "Available languages"
msgstr "Доступні мови"
#: cps/templates/index.xml:75 cps/web.py:767
#: cps/templates/index.xml:75 cps/web.py:766
msgid "Category list"
msgstr "Список категорій"
#: cps/templates/layout.html:73 cps/web.py:781
#: cps/templates/layout.html:73 cps/web.py:780
msgid "Tasks"
msgstr ""
#: cps/web.py:846
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45 cps/web.py:802 cps/web.py:804
msgid "Search"
msgstr "Пошук"
#: cps/web.py:851
msgid "Published after "
msgstr ""
#: cps/web.py:853
#: cps/web.py:858
msgid "Published before "
msgstr "Опубліковано до"
#: cps/web.py:867
#: cps/web.py:872
#, python-format
msgid "Rating <= %(rating)s"
msgstr ""
#: cps/web.py:869
#: cps/web.py:874
#, python-format
msgid "Rating >= %(rating)s"
msgstr ""
#: cps/web.py:929 cps/web.py:939
#: cps/web.py:934 cps/web.py:944
msgid "search"
msgstr "пошук"
#: cps/web.py:1022
#: cps/web.py:1027
msgid "Please configure the SMTP mail settings first..."
msgstr "Будь-ласка, спочатку сконфігуруйте параметри SMTP"
#: cps/web.py:1027
#: cps/web.py:1032
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr ""
#: cps/web.py:1031
#: cps/web.py:1036
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr "Помилка при відправці книги: %(res)s"
#: cps/web.py:1051 cps/web.py:1076 cps/web.py:1080 cps/web.py:1085
#: cps/web.py:1089
#: cps/web.py:1056 cps/web.py:1081 cps/web.py:1085 cps/web.py:1090
#: cps/web.py:1094
msgid "register"
msgstr "зареєструватись"
#: cps/web.py:1078
#: cps/web.py:1083
msgid "Your e-mail is not allowed to register"
msgstr ""
#: cps/web.py:1081
#: cps/web.py:1086
msgid "Confirmation e-mail was send to your e-mail account."
msgstr ""
#: cps/web.py:1084
#: cps/web.py:1089
msgid "This username or e-mail address is already in use."
msgstr ""
#: cps/web.py:1099
#: cps/web.py:1104
msgid "Cannot activate LDAP authentication"
msgstr ""
#: cps/web.py:1108 cps/web.py:1214
#: cps/web.py:1113 cps/web.py:1219
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "Ви увійшли як користувач: '%(nickname)s'"
#: cps/web.py:1112
#: cps/web.py:1117
msgid "Could not login. LDAP server down, please contact your administrator"
msgstr ""
#: cps/web.py:1116 cps/web.py:1124
#: cps/web.py:1121 cps/web.py:1129
msgid "Wrong Username or Password"
msgstr "Помилка в імені користувача або паролі"
#: cps/web.py:1120
#: cps/web.py:1125
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr ""
#: cps/web.py:1128 cps/web.py:1150
#: cps/web.py:1133 cps/web.py:1155
msgid "login"
msgstr "увійти"
#: cps/web.py:1162 cps/web.py:1193
#: cps/web.py:1167 cps/web.py:1198
msgid "Token not found"
msgstr "Токен не знайдено"
#: cps/web.py:1170 cps/web.py:1201
#: cps/web.py:1175 cps/web.py:1206
msgid "Token has expired"
msgstr "Час дії токено вичерпано"
#: cps/web.py:1178
#: cps/web.py:1183
msgid "Success! Please return to your device"
msgstr "Вдалося! Будь-ласка, поверніться до вашого пристрою"
#: cps/web.py:1255 cps/web.py:1282 cps/web.py:1286
#: cps/web.py:1260 cps/web.py:1302 cps/web.py:1306
#, python-format
msgid "%(name)s's profile"
msgstr "Профіль %(name)s"
#: cps/web.py:1284
#: cps/web.py:1304
msgid "Profile updated"
msgstr "Профіль оновлено"
#: cps/web.py:1310 cps/web.py:1312 cps/web.py:1314 cps/web.py:1320
#: cps/web.py:1324
#: cps/web.py:1330 cps/web.py:1332 cps/web.py:1334 cps/web.py:1340
#: cps/web.py:1344
msgid "Read a Book"
msgstr "Читати книгу"
#: cps/web.py:1334
#: cps/web.py:1354
msgid "Error opening eBook. File does not exist or file is not accessible."
msgstr ""
@ -1055,7 +1066,7 @@ msgstr "Ok"
#: cps/templates/config_edit.html:321 cps/templates/config_view_edit.html:147
#: cps/templates/email_edit.html:40 cps/templates/email_edit.html:74
#: cps/templates/layout.html:28 cps/templates/shelf.html:73
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:12
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:32
#: cps/templates/user_edit.html:132
msgid "Back"
msgstr "Назад"
@ -1689,11 +1700,6 @@ msgstr ""
msgid "Next"
msgstr "Далі"
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45
msgid "Search"
msgstr "Пошук"
#: cps/templates/http_error.html:37
msgid "Create issue"
msgstr ""
@ -2053,7 +2059,7 @@ msgstr "Видалити цю книжкову полицю"
msgid "Edit Shelf"
msgstr ""
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:11
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:31
msgid "Change order"
msgstr "Змінити порядок"

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2019-09-06 19:03+0200\n"
"POT-Creation-Date: 2019-11-16 08:00+0100\n"
"PO-Revision-Date: 2017-01-06 17:00+0000\n"
"Last-Translator: dalin <dalin.lin@gmail.com>\n"
"Language: zh_Hans_CN\n"
@ -18,17 +18,15 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.7.0\n"
#: cps/about.py:40 cps/about.py:65 cps/about.py:66 cps/uploader.py:228
#: cps/about.py:41
msgid "installed"
msgstr ""
#: cps/about.py:42 cps/about.py:65 cps/about.py:66 cps/uploader.py:213
#: cps/uploader.py:214 cps/uploader.py:218 cps/uploader.py:222
#: cps/uploader.py:226 cps/uploader.py:230
#: cps/about.py:43
msgid "not installed"
msgstr "未安装"
#: cps/about.py:80
#: cps/about.py:81
msgid "Statistics"
msgstr "统计"
@ -40,7 +38,7 @@ msgstr "服务器已重启,请刷新页面"
msgid "Performing shutdown of server, please close window"
msgstr "正在关闭服务器,请关闭窗口"
#: cps/admin.py:111 cps/updater.py:445
#: cps/admin.py:111 cps/updater.py:446
msgid "Unknown"
msgstr "未知"
@ -60,7 +58,7 @@ msgstr "Calibre-Web配置已更新"
msgid "Basic Configuration"
msgstr "基本配置"
#: cps/admin.py:452 cps/web.py:1050
#: cps/admin.py:452 cps/web.py:1055
msgid "Please fill out all fields!"
msgstr "请填写所有字段"
@ -69,7 +67,7 @@ msgstr "请填写所有字段"
msgid "Add new user"
msgstr "添加新用户"
#: cps/admin.py:463 cps/web.py:1253
#: cps/admin.py:463 cps/web.py:1258
msgid "E-mail is not from valid domain"
msgstr "邮箱不在有效域中'"
@ -96,7 +94,7 @@ msgstr "测试邮件已经被成功发到 %(kindlemail)s"
msgid "There was an error sending the Test e-mail: %(res)s"
msgstr "发送测试邮件出错了: %(res)s"
#: cps/admin.py:527 cps/web.py:1033
#: cps/admin.py:527 cps/web.py:1038
msgid "Please configure your kindle e-mail address first..."
msgstr "请先配置您的kindle邮箱..."
@ -113,85 +111,93 @@ msgstr "用户 '%(nick)s' 已被删除"
msgid "No admin user remaining, can't delete user"
msgstr ""
#: cps/admin.py:600 cps/web.py:1279
#: cps/admin.py:599 cps/web.py:1299
msgid "Found an existing account for this e-mail address."
msgstr "找到一个已有账号使用这个邮箱。"
#: cps/admin.py:603 cps/admin.py:615
#: cps/admin.py:602 cps/admin.py:615 cps/admin.py:629 cps/web.py:1274
#, python-format
msgid "Edit User %(nick)s"
msgstr "编辑用户 %(nick)s"
#: cps/admin.py:609
#: cps/admin.py:608 cps/web.py:1267
msgid "This username is already taken"
msgstr ""
#: cps/admin.py:623
#, python-format
msgid "User '%(nick)s' updated"
msgstr "用户 '%(nick)s' 已被更新"
#: cps/admin.py:612
#: cps/admin.py:626
msgid "An unknown error occured."
msgstr "发生未知错误。"
#: cps/admin.py:631
#: cps/admin.py:645
#, python-format
msgid "Password for user %(user)s reset"
msgstr "用户 %(user)s 的密码已重置"
#: cps/admin.py:634 cps/web.py:1075
#: cps/admin.py:648 cps/web.py:1080
msgid "An unknown error occurred. Please try again later."
msgstr "发生一个未知错误,请稍后再试。"
#: cps/admin.py:645
#: cps/admin.py:659
msgid "Logfile viewer"
msgstr ""
#: cps/admin.py:680
#: cps/admin.py:694
msgid "Requesting update package"
msgstr "正在请求更新包"
#: cps/admin.py:681
#: cps/admin.py:695
msgid "Downloading update package"
msgstr "正在下载更新包"
#: cps/admin.py:682
#: cps/admin.py:696
msgid "Unzipping update package"
msgstr "正在解压更新包"
#: cps/admin.py:683
#: cps/admin.py:697
msgid "Replacing files"
msgstr "正在替换文件"
#: cps/admin.py:684
#: cps/admin.py:698
msgid "Database connections are closed"
msgstr "数据库连接已关闭"
#: cps/admin.py:685
#: cps/admin.py:699
msgid "Stopping server"
msgstr "正在停止服务器"
#: cps/admin.py:686
#: cps/admin.py:700
msgid "Update finished, please press okay and reload page"
msgstr "更新完成,请按确定并刷新页面"
#: cps/admin.py:687 cps/admin.py:688 cps/admin.py:689 cps/admin.py:690
#: cps/admin.py:701 cps/admin.py:702 cps/admin.py:703 cps/admin.py:704
msgid "Update failed:"
msgstr "更新失败:"
#: cps/admin.py:687 cps/updater.py:271 cps/updater.py:456 cps/updater.py:458
#: cps/admin.py:701 cps/updater.py:272 cps/updater.py:457 cps/updater.py:459
msgid "HTTP Error"
msgstr "HTTP错误"
#: cps/admin.py:688 cps/updater.py:273 cps/updater.py:460
#: cps/admin.py:702 cps/updater.py:274 cps/updater.py:461
msgid "Connection error"
msgstr "连接错误"
#: cps/admin.py:689 cps/updater.py:275 cps/updater.py:462
#: cps/admin.py:703 cps/updater.py:276 cps/updater.py:463
msgid "Timeout while establishing connection"
msgstr "建立连接超时"
#: cps/admin.py:690 cps/updater.py:277 cps/updater.py:464
#: cps/admin.py:704 cps/updater.py:278 cps/updater.py:465
msgid "General error"
msgstr "一般错误"
#: cps/converter.py:31
msgid "not configured"
msgstr ""
#: cps/editbooks.py:214 cps/editbooks.py:393
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr "打开电子书出错。文件不存在或不可访问"
@ -575,7 +581,7 @@ msgid "Show best rated books"
msgstr "显示最高评分书籍"
#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:67
#: cps/web.py:971
#: cps/web.py:976
msgid "Read Books"
msgstr "已读书籍"
@ -584,7 +590,7 @@ msgid "Show read and unread"
msgstr "显示已读和未读"
#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:71
#: cps/web.py:975
#: cps/web.py:980
msgid "Unread Books"
msgstr "未读书籍"
@ -657,228 +663,233 @@ msgstr ""
msgid "Show file formats selection"
msgstr ""
#: cps/updater.py:251 cps/updater.py:358 cps/updater.py:371
#: cps/updater.py:252 cps/updater.py:359 cps/updater.py:372
msgid "Unexpected data while reading update information"
msgstr "读取更新信息时出现异常数据"
#: cps/updater.py:258 cps/updater.py:364
#: cps/updater.py:259 cps/updater.py:365
msgid "No update available. You already have the latest version installed"
msgstr "没有可用更新。您已经安装了最新版本"
#: cps/updater.py:284
#: cps/updater.py:285
msgid "A new update is available. Click on the button below to update to the latest version."
msgstr "有一个更新可用。点击正文按钮更新到最新版本。"
#: cps/updater.py:337
#: cps/updater.py:338
msgid "Could not fetch update information"
msgstr "无法获取更新信息"
#: cps/updater.py:351
#: cps/updater.py:352
msgid "No release information available"
msgstr ""
#: cps/updater.py:404 cps/updater.py:413
#: cps/updater.py:405 cps/updater.py:414
#, python-format
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr ""
#: cps/updater.py:423
#: cps/updater.py:424
msgid "Click on the button below to update to the latest stable version."
msgstr ""
#: cps/web.py:460
#: cps/web.py:459
msgid "Recently Added Books"
msgstr "最近添加的书籍"
#: cps/web.py:488
#: cps/web.py:487
msgid "Best rated books"
msgstr "最高评分书籍"
#: cps/templates/index.xml:38 cps/web.py:496
#: cps/templates/index.xml:38 cps/web.py:495
msgid "Random Books"
msgstr "随机书籍"
#: cps/web.py:522
#: cps/web.py:521
msgid "Books"
msgstr ""
#: cps/web.py:549
#: cps/web.py:548
msgid "Hot Books (most downloaded)"
msgstr "热门书籍(最多下载)"
#: cps/web.py:560 cps/web.py:1300 cps/web.py:1388
#: cps/web.py:559 cps/web.py:1320 cps/web.py:1408
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "无法打开电子书。 文件不存在或者文件不可访问:"
#: cps/web.py:573
#: cps/web.py:572
#, python-format
msgid "Author: %(name)s"
msgstr ""
#: cps/web.py:585
#: cps/web.py:584
#, python-format
msgid "Publisher: %(name)s"
msgstr "出版社: %(name)s"
#: cps/web.py:596
#: cps/web.py:595
#, python-format
msgid "Series: %(serie)s"
msgstr "丛书: %(serie)s"
#: cps/web.py:607
#: cps/web.py:606
#, python-format
msgid "Rating: %(rating)s stars"
msgstr ""
#: cps/web.py:618
#: cps/web.py:617
#, python-format
msgid "File format: %(format)s"
msgstr ""
#: cps/web.py:630
#: cps/web.py:629
#, python-format
msgid "Category: %(name)s"
msgstr "分类: %(name)s"
#: cps/web.py:647
#: cps/web.py:646
#, python-format
msgid "Language: %(name)s"
msgstr "语言: %(name)s"
#: cps/web.py:679
#: cps/web.py:678
msgid "Publisher list"
msgstr "出版社列表"
#: cps/templates/index.xml:82 cps/web.py:695
#: cps/templates/index.xml:82 cps/web.py:694
msgid "Series list"
msgstr "丛书列表"
#: cps/web.py:709
#: cps/web.py:708
msgid "Ratings list"
msgstr ""
#: cps/web.py:722
#: cps/web.py:721
msgid "File formats list"
msgstr ""
#: cps/web.py:750
#: cps/web.py:749
msgid "Available languages"
msgstr "可用语言"
#: cps/templates/index.xml:75 cps/web.py:767
#: cps/templates/index.xml:75 cps/web.py:766
msgid "Category list"
msgstr "分类列表"
#: cps/templates/layout.html:73 cps/web.py:781
#: cps/templates/layout.html:73 cps/web.py:780
msgid "Tasks"
msgstr "任务"
#: cps/web.py:846
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45 cps/web.py:802 cps/web.py:804
msgid "Search"
msgstr "搜索"
#: cps/web.py:851
msgid "Published after "
msgstr "出版时晚于 "
#: cps/web.py:853
#: cps/web.py:858
msgid "Published before "
msgstr "出版时早于 "
#: cps/web.py:867
#: cps/web.py:872
#, python-format
msgid "Rating <= %(rating)s"
msgstr "评分 <= %(rating)s"
#: cps/web.py:869
#: cps/web.py:874
#, python-format
msgid "Rating >= %(rating)s"
msgstr "评分 >= %(rating)s"
#: cps/web.py:929 cps/web.py:939
#: cps/web.py:934 cps/web.py:944
msgid "search"
msgstr "搜索"
#: cps/web.py:1022
#: cps/web.py:1027
msgid "Please configure the SMTP mail settings first..."
msgstr "请先配置SMTP邮箱..."
#: cps/web.py:1027
#: cps/web.py:1032
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "书籍已经被成功加入 %(kindlemail)s 的发送队列"
#: cps/web.py:1031
#: cps/web.py:1036
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr "发送这本书的时候出现错误: %(res)s"
#: cps/web.py:1051 cps/web.py:1076 cps/web.py:1080 cps/web.py:1085
#: cps/web.py:1089
#: cps/web.py:1056 cps/web.py:1081 cps/web.py:1085 cps/web.py:1090
#: cps/web.py:1094
msgid "register"
msgstr "注册"
#: cps/web.py:1078
#: cps/web.py:1083
msgid "Your e-mail is not allowed to register"
msgstr "您的邮箱不能用来注册"
#: cps/web.py:1081
#: cps/web.py:1086
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "确认邮件已经发送到您的邮箱。"
#: cps/web.py:1084
#: cps/web.py:1089
msgid "This username or e-mail address is already in use."
msgstr "这个用户名或者邮箱已经被使用。"
#: cps/web.py:1099
#: cps/web.py:1104
msgid "Cannot activate LDAP authentication"
msgstr ""
#: cps/web.py:1108 cps/web.py:1214
#: cps/web.py:1113 cps/web.py:1219
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "您现在已以'%(nickname)s'身份登录"
#: cps/web.py:1112
#: cps/web.py:1117
msgid "Could not login. LDAP server down, please contact your administrator"
msgstr ""
#: cps/web.py:1116 cps/web.py:1124
#: cps/web.py:1121 cps/web.py:1129
msgid "Wrong Username or Password"
msgstr "用户名或密码错误"
#: cps/web.py:1120
#: cps/web.py:1125
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr ""
#: cps/web.py:1128 cps/web.py:1150
#: cps/web.py:1133 cps/web.py:1155
msgid "login"
msgstr "登录"
#: cps/web.py:1162 cps/web.py:1193
#: cps/web.py:1167 cps/web.py:1198
msgid "Token not found"
msgstr "找不到Token"
#: cps/web.py:1170 cps/web.py:1201
#: cps/web.py:1175 cps/web.py:1206
msgid "Token has expired"
msgstr "Token已过期"
#: cps/web.py:1178
#: cps/web.py:1183
msgid "Success! Please return to your device"
msgstr "成功!请返回您的设备"
#: cps/web.py:1255 cps/web.py:1282 cps/web.py:1286
#: cps/web.py:1260 cps/web.py:1302 cps/web.py:1306
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)s 的资料"
#: cps/web.py:1284
#: cps/web.py:1304
msgid "Profile updated"
msgstr "资料已更新"
#: cps/web.py:1310 cps/web.py:1312 cps/web.py:1314 cps/web.py:1320
#: cps/web.py:1324
#: cps/web.py:1330 cps/web.py:1332 cps/web.py:1334 cps/web.py:1340
#: cps/web.py:1344
msgid "Read a Book"
msgstr "阅读一本书"
#: cps/web.py:1334
#: cps/web.py:1354
msgid "Error opening eBook. File does not exist or file is not accessible."
msgstr ""
@ -1056,7 +1067,7 @@ msgstr "确定"
#: cps/templates/config_edit.html:321 cps/templates/config_view_edit.html:147
#: cps/templates/email_edit.html:40 cps/templates/email_edit.html:74
#: cps/templates/layout.html:28 cps/templates/shelf.html:73
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:12
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:32
#: cps/templates/user_edit.html:132
msgid "Back"
msgstr "后退"
@ -1690,11 +1701,6 @@ msgstr "您确定要删除这条域名规则吗?"
msgid "Next"
msgstr "下一个"
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45
msgid "Search"
msgstr "搜索"
#: cps/templates/http_error.html:37
msgid "Create issue"
msgstr ""
@ -2054,7 +2060,7 @@ msgstr "删除此书架"
msgid "Edit Shelf"
msgstr "编辑书架"
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:11
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:31
msgid "Change order"
msgstr "修改顺序"

@ -21,9 +21,6 @@ from __future__ import division, print_function, unicode_literals
import os
import hashlib
from tempfile import gettempdir
from flask_babel import gettext as _
from . import logger, comic
from .constants import BookMeta
@ -68,16 +65,13 @@ except ImportError as e:
use_fb2_meta = False
try:
from PIL import Image
from PIL import Image as PILImage
from PIL import __version__ as PILversion
use_PIL = True
except ImportError as e:
log.debug('cannot import Pillow, using png and webp images as cover will not work: %s', e)
use_generic_pdf_cover = True
use_PIL = False
__author__ = 'lemmsh'
@ -149,51 +143,11 @@ def pdf_preview(tmp_file_path, tmp_dir):
if use_generic_pdf_cover:
return None
else:
if use_PIL:
try:
input1 = PdfFileReader(open(tmp_file_path, 'rb'), strict=False)
page0 = input1.getPage(0)
xObject = page0['/Resources']['/XObject'].getObject()
for obj in xObject:
if xObject[obj]['/Subtype'] == '/Image':
size = (xObject[obj]['/Width'], xObject[obj]['/Height'])
data = xObject[obj]._data # xObject[obj].getData()
if xObject[obj]['/ColorSpace'] == '/DeviceRGB':
mode = "RGB"
else:
mode = "P"
if '/Filter' in xObject[obj]:
if xObject[obj]['/Filter'] == '/FlateDecode':
img = Image.frombytes(mode, size, data)
cover_file_name = os.path.splitext(tmp_file_path)[0] + ".cover.png"
img.save(filename=os.path.join(tmp_dir, cover_file_name))
return cover_file_name
# img.save(obj[1:] + ".png")
elif xObject[obj]['/Filter'] == '/DCTDecode':
cover_file_name = os.path.splitext(tmp_file_path)[0] + ".cover.jpg"
img = open(cover_file_name, "wb")
img.write(data)
img.close()
return cover_file_name
elif xObject[obj]['/Filter'] == '/JPXDecode':
cover_file_name = os.path.splitext(tmp_file_path)[0] + ".cover.jp2"
img = open(cover_file_name, "wb")
img.write(data)
img.close()
return cover_file_name
else:
img = Image.frombytes(mode, size, data)
cover_file_name = os.path.splitext(tmp_file_path)[0] + ".cover.png"
img.save(filename=os.path.join(tmp_dir, cover_file_name))
return cover_file_name
# img.save(obj[1:] + ".png")
except Exception as ex:
print(ex)
try:
cover_file_name = os.path.splitext(tmp_file_path)[0] + ".cover.jpg"
with Image(filename=tmp_file_path + "[0]", resolution=150) as img:
with Image() as img:
img.options["pdf:use-cropbox"] = "true"
img.read(filename=tmp_file_path + '[0]', resolution = 150)
img.compression_quality = 88
img.save(filename=os.path.join(tmp_dir, cover_file_name))
return cover_file_name
@ -210,24 +164,24 @@ def get_versions():
IVersion = ImageVersion.MAGICK_VERSION
WVersion = ImageVersion.VERSION
else:
IVersion = _(u'not installed')
WVersion = _(u'not installed')
IVersion = u'not installed'
WVersion = u'not installed'
if use_pdf_meta:
PVersion='v'+PyPdfVersion
else:
PVersion=_(u'not installed')
PVersion=u'not installed'
if lxmlversion:
XVersion = 'v'+'.'.join(map(str, lxmlversion))
else:
XVersion = _(u'not installed')
XVersion = u'not installed'
if use_PIL:
PILVersion = 'v' + PILversion
else:
PILVersion = _(u'not installed')
PILVersion = u'not installed'
if comic.use_comic_meta:
ComicVersion = _(u'installed')
ComicVersion = u'installed'
else:
ComicVersion = _(u'not installed')
ComicVersion = u'not installed'
return {'Image Magick': IVersion,
'PyPdf': PVersion,
'lxml':XVersion,

@ -38,7 +38,8 @@ from flask import render_template, request, redirect, send_from_directory, make_
from flask_babel import gettext as _
from flask_login import login_user, logout_user, login_required, current_user
from sqlalchemy.exc import IntegrityError
from sqlalchemy.sql.expression import text, func, true, false, not_, and_
from sqlalchemy.sql.expression import text, func, true, false, not_, and_, \
exists
from werkzeug.exceptions import default_exceptions
from werkzeug.datastructures import Headers
from werkzeug.security import generate_password_hash, check_password_hash
@ -781,6 +782,12 @@ def get_tasks_status():
# ################################### Search functions ################################################################
@app.route("/reconnect")
def reconnect():
db.session.close()
db.engine.dispose()
db.setup_db()
return json.dumps({})
@web.route("/search", methods=["GET"])
@login_required_if_no_ano
@ -792,9 +799,9 @@ def search():
for element in entries:
ids.append(element.id)
searched_ids[current_user.id] = ids
return render_title_template('search.html', searchterm=term, entries=entries, page="search")
return render_title_template('search.html', searchterm=term, entries=entries, title=_(u"Search"), page="search")
else:
return render_title_template('search.html', searchterm="", page="search")
return render_title_template('search.html', searchterm="", title=_(u"Search"), page="search")
@web.route("/advanced_search", methods=['GET'])
@ -985,10 +992,11 @@ def get_cover(book_id):
return get_book_cover(book_id)
@web.route("/show/<book_id>/<book_format>")
@web.route("/show/<int:book_id>/<book_format>", defaults={'anyname': 'None'})
@web.route("/show/<int:book_id>/<book_format>/<anyname>")
@login_required_if_no_ano
@viewer_required
def serve_book(book_id, book_format):
def serve_book(book_id, book_format, anyname):
book_format = book_format.split(".")[0]
book = db.session.query(db.Books).filter(db.Books.id == book_id).first()
data = db.session.query(db.Data).filter(db.Data.book == book.id).filter(db.Data.format == book_format.upper())\
@ -1003,11 +1011,11 @@ def serve_book(book_id, book_format):
return send_from_directory(os.path.join(config.config_calibre_dir, book.path), data.name + "." + book_format)
@web.route("/download/<int:book_id>/<book_format>", defaults={'anyname': 'None'})
@web.route("/download/<int:book_id>/<book_format>/<anyname>")
# @web.route("/download/<int:book_id>/<book_format>", defaults={'anyname': 'None'})
@web.route("/download/<int:book_id>/<book_format>")
@login_required_if_no_ano
@download_required
def download_link(book_id, book_format, anyname):
def download_link(book_id, book_format):
return get_download_link(book_id, book_format)
@ -1254,6 +1262,21 @@ def profile():
return render_title_template("user_edit.html", content=current_user, downloads=downloads,
title=_(u"%(name)s's profile", name=current_user.nickname), page="me",
registered_oauth=oauth_check, oauth_status=oauth_status)
if "nickname" in to_save and to_save["nickname"] != current_user.nickname:
# Query User nickname, if not existing, change
if not ub.session.query(ub.User).filter(ub.User.nickname == to_save["nickname"]).scalar():
current_user.nickname = to_save["nickname"]
else:
flash(_(u"This username is already taken"), category="error")
return render_title_template("user_edit.html",
translations=translations,
languages=languages,
new_user=0, content=current_user,
downloads=downloads,
registered_oauth=oauth_check,
title=_(u"Edit User %(nick)s",
nick=current_user.nickname),
page="edituser")
current_user.email = to_save["email"]
if "show_random" in to_save and to_save["show_random"] == "on":
current_user.random_books = 1

@ -193,6 +193,7 @@ class WorkerThread(threading.Thread):
def run(self):
main_thread = _get_main_thread()
while main_thread.is_alive():
try:
self.doLock.acquire()
if self.current != self.last:
index = self.current
@ -206,9 +207,14 @@ class WorkerThread(threading.Thread):
# TASK_UPLOAD is handled implicitly
self.doLock.acquire()
self.current += 1
if self.current > self.last:
self.current = self.last
self.doLock.release()
else:
self.doLock.release()
except Exception as e:
log.exception(e)
self.doLock.release()
if main_thread.is_alive():
time.sleep(1)
@ -225,6 +231,7 @@ class WorkerThread(threading.Thread):
self.queue.pop(index)
self.UIqueue.pop(index)
# if we are deleting entries before the current index, adjust the index
if index <= self.current and index:
self.current -= 1
self.last = len(self.queue)
@ -248,7 +255,7 @@ class WorkerThread(threading.Thread):
self.doLock.release()
self.UIqueue[index]['stat'] = STAT_STARTED
self.queue[index]['starttime'] = datetime.now()
self.UIqueue[index]['formStarttime'] = self.queue[self.current]['starttime']
self.UIqueue[index]['formStarttime'] = self.queue[index]['starttime']
curr_task = self.queue[index]['taskType']
filename = self._convert_ebook_format()
if filename:
@ -390,8 +397,7 @@ class WorkerThread(threading.Thread):
def add_convert(self, file_path, bookid, user_name, taskMessage, settings, kindle_mail=None):
addLock = threading.Lock()
addLock.acquire()
self.doLock.acquire()
if self.last >= 20:
self._delete_completed_tasks()
# progress, runtime, and status = 0
@ -405,13 +411,12 @@ class WorkerThread(threading.Thread):
'runtime': '0 s', 'stat': STAT_WAITING,'id': self.id, 'taskType': task } )
self.last=len(self.queue)
addLock.release()
self.doLock.release()
def add_email(self, subject, filepath, attachment, settings, recipient, user_name, taskMessage,
text):
# if more than 20 entries in the list, clean the list
addLock = threading.Lock()
addLock.acquire()
self.doLock.acquire()
if self.last >= 20:
self._delete_completed_tasks()
# progress, runtime, and status = 0
@ -422,23 +427,31 @@ class WorkerThread(threading.Thread):
self.UIqueue.append({'user': user_name, 'formStarttime': '', 'progress': " 0 %", 'taskMess': taskMessage,
'runtime': '0 s', 'stat': STAT_WAITING,'id': self.id, 'taskType': TASK_EMAIL })
self.last=len(self.queue)
addLock.release()
self.doLock.release()
def add_upload(self, user_name, taskMessage):
# if more than 20 entries in the list, clean the list
addLock = threading.Lock()
addLock.acquire()
self.doLock.acquire()
if self.last >= 20:
self._delete_completed_tasks()
# progress=100%, runtime=0, and status finished
log.info("Last " + str(self.last))
log.info("Current " + str(self.current))
log.info("id" + str(self.id))
for i in range(0, len(self.queue)):
message = '%s:%s' % (i, self.queue[i].items())
log.info(message)
self.id += 1
self.queue.append({'starttime': datetime.now(), 'taskType': TASK_UPLOAD})
self.UIqueue.append({'user': user_name, 'formStarttime': '', 'progress': "100 %", 'taskMess': taskMessage,
starttime = datetime.now()
self.queue.append({'starttime': starttime, 'taskType': TASK_UPLOAD})
self.UIqueue.append({'user': user_name, 'formStarttime': starttime, 'progress': "100 %", 'taskMess': taskMessage,
'runtime': '0 s', 'stat': STAT_FINISH_SUCCESS,'id': self.id, 'taskType': TASK_UPLOAD})
self.UIqueue[self.current]['formStarttime'] = self.queue[self.current]['starttime']
# self.UIqueue[self.current]['formStarttime'] = self.queue[self.current]['starttime']
self.last=len(self.queue)
addLock.release()
self.doLock.release()
def _send_raw_email(self):
self.doLock.acquire()
@ -525,7 +538,7 @@ class WorkerThread(threading.Thread):
self.doLock.release()
self.UIqueue[index]['stat'] = STAT_FAIL
self.UIqueue[index]['progress'] = "100 %"
self.UIqueue[index]['formRuntime'] = datetime.now() - self.queue[self.current]['starttime']
self.UIqueue[index]['formRuntime'] = datetime.now() - self.queue[index]['starttime']
self.UIqueue[index]['message'] = error_message
def _handleSuccess(self):
@ -534,7 +547,7 @@ class WorkerThread(threading.Thread):
self.doLock.release()
self.UIqueue[index]['stat'] = STAT_FINISH_SUCCESS
self.UIqueue[index]['progress'] = "100 %"
self.UIqueue[index]['formRuntime'] = datetime.now() - self.queue[self.current]['starttime']
self.UIqueue[index]['formRuntime'] = datetime.now() - self.queue[index]['starttime']
_worker = WorkerThread()

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2019-09-17 18:24+0200\n"
"POT-Creation-Date: 2019-11-16 08:00+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,17 +17,15 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.7.0\n"
#: cps/about.py:40 cps/about.py:65 cps/about.py:66 cps/uploader.py:228
#: cps/about.py:41
msgid "installed"
msgstr ""
#: cps/about.py:42 cps/about.py:65 cps/about.py:66 cps/uploader.py:213
#: cps/uploader.py:214 cps/uploader.py:218 cps/uploader.py:222
#: cps/uploader.py:226 cps/uploader.py:230
#: cps/about.py:43
msgid "not installed"
msgstr ""
#: cps/about.py:80
#: cps/about.py:81
msgid "Statistics"
msgstr ""
@ -39,7 +37,7 @@ msgstr ""
msgid "Performing shutdown of server, please close window"
msgstr ""
#: cps/admin.py:111 cps/updater.py:445
#: cps/admin.py:111 cps/updater.py:446
msgid "Unknown"
msgstr ""
@ -59,7 +57,7 @@ msgstr ""
msgid "Basic Configuration"
msgstr ""
#: cps/admin.py:452 cps/web.py:1048
#: cps/admin.py:452 cps/web.py:1055
msgid "Please fill out all fields!"
msgstr ""
@ -68,7 +66,7 @@ msgstr ""
msgid "Add new user"
msgstr ""
#: cps/admin.py:463 cps/web.py:1251
#: cps/admin.py:463 cps/web.py:1258
msgid "E-mail is not from valid domain"
msgstr ""
@ -95,7 +93,7 @@ msgstr ""
msgid "There was an error sending the Test e-mail: %(res)s"
msgstr ""
#: cps/admin.py:527 cps/web.py:1031
#: cps/admin.py:527 cps/web.py:1038
msgid "Please configure your kindle e-mail address first..."
msgstr ""
@ -112,85 +110,93 @@ msgstr ""
msgid "No admin user remaining, can't delete user"
msgstr ""
#: cps/admin.py:600 cps/web.py:1277
#: cps/admin.py:599 cps/web.py:1299
msgid "Found an existing account for this e-mail address."
msgstr ""
#: cps/admin.py:603 cps/admin.py:615
#: cps/admin.py:602 cps/admin.py:615 cps/admin.py:629 cps/web.py:1274
#, python-format
msgid "Edit User %(nick)s"
msgstr ""
#: cps/admin.py:609
#: cps/admin.py:608 cps/web.py:1267
msgid "This username is already taken"
msgstr ""
#: cps/admin.py:623
#, python-format
msgid "User '%(nick)s' updated"
msgstr ""
#: cps/admin.py:612
#: cps/admin.py:626
msgid "An unknown error occured."
msgstr ""
#: cps/admin.py:631
#: cps/admin.py:645
#, python-format
msgid "Password for user %(user)s reset"
msgstr ""
#: cps/admin.py:634 cps/web.py:1073
#: cps/admin.py:648 cps/web.py:1080
msgid "An unknown error occurred. Please try again later."
msgstr ""
#: cps/admin.py:645
#: cps/admin.py:659
msgid "Logfile viewer"
msgstr ""
#: cps/admin.py:680
#: cps/admin.py:694
msgid "Requesting update package"
msgstr ""
#: cps/admin.py:681
#: cps/admin.py:695
msgid "Downloading update package"
msgstr ""
#: cps/admin.py:682
#: cps/admin.py:696
msgid "Unzipping update package"
msgstr ""
#: cps/admin.py:683
#: cps/admin.py:697
msgid "Replacing files"
msgstr ""
#: cps/admin.py:684
#: cps/admin.py:698
msgid "Database connections are closed"
msgstr ""
#: cps/admin.py:685
#: cps/admin.py:699
msgid "Stopping server"
msgstr ""
#: cps/admin.py:686
#: cps/admin.py:700
msgid "Update finished, please press okay and reload page"
msgstr ""
#: cps/admin.py:687 cps/admin.py:688 cps/admin.py:689 cps/admin.py:690
#: cps/admin.py:701 cps/admin.py:702 cps/admin.py:703 cps/admin.py:704
msgid "Update failed:"
msgstr ""
#: cps/admin.py:687 cps/updater.py:271 cps/updater.py:456 cps/updater.py:458
#: cps/admin.py:701 cps/updater.py:272 cps/updater.py:457 cps/updater.py:459
msgid "HTTP Error"
msgstr ""
#: cps/admin.py:688 cps/updater.py:273 cps/updater.py:460
#: cps/admin.py:702 cps/updater.py:274 cps/updater.py:461
msgid "Connection error"
msgstr ""
#: cps/admin.py:689 cps/updater.py:275 cps/updater.py:462
#: cps/admin.py:703 cps/updater.py:276 cps/updater.py:463
msgid "Timeout while establishing connection"
msgstr ""
#: cps/admin.py:690 cps/updater.py:277 cps/updater.py:464
#: cps/admin.py:704 cps/updater.py:278 cps/updater.py:465
msgid "General error"
msgstr ""
#: cps/converter.py:31
msgid "not configured"
msgstr ""
#: cps/editbooks.py:214 cps/editbooks.py:393
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr ""
@ -574,7 +580,7 @@ msgid "Show best rated books"
msgstr ""
#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:67
#: cps/web.py:969
#: cps/web.py:976
msgid "Read Books"
msgstr ""
@ -583,7 +589,7 @@ msgid "Show read and unread"
msgstr ""
#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:71
#: cps/web.py:973
#: cps/web.py:980
msgid "Unread Books"
msgstr ""
@ -656,228 +662,233 @@ msgstr ""
msgid "Show file formats selection"
msgstr ""
#: cps/updater.py:251 cps/updater.py:358 cps/updater.py:371
#: cps/updater.py:252 cps/updater.py:359 cps/updater.py:372
msgid "Unexpected data while reading update information"
msgstr ""
#: cps/updater.py:258 cps/updater.py:364
#: cps/updater.py:259 cps/updater.py:365
msgid "No update available. You already have the latest version installed"
msgstr ""
#: cps/updater.py:284
#: cps/updater.py:285
msgid "A new update is available. Click on the button below to update to the latest version."
msgstr ""
#: cps/updater.py:337
#: cps/updater.py:338
msgid "Could not fetch update information"
msgstr ""
#: cps/updater.py:351
#: cps/updater.py:352
msgid "No release information available"
msgstr ""
#: cps/updater.py:404 cps/updater.py:413
#: cps/updater.py:405 cps/updater.py:414
#, python-format
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr ""
#: cps/updater.py:423
#: cps/updater.py:424
msgid "Click on the button below to update to the latest stable version."
msgstr ""
#: cps/web.py:458
#: cps/web.py:459
msgid "Recently Added Books"
msgstr ""
#: cps/web.py:486
#: cps/web.py:487
msgid "Best rated books"
msgstr ""
#: cps/templates/index.xml:38 cps/web.py:494
#: cps/templates/index.xml:38 cps/web.py:495
msgid "Random Books"
msgstr ""
#: cps/web.py:520
#: cps/web.py:521
msgid "Books"
msgstr ""
#: cps/web.py:547
#: cps/web.py:548
msgid "Hot Books (most downloaded)"
msgstr ""
#: cps/web.py:558 cps/web.py:1298 cps/web.py:1386
#: cps/web.py:559 cps/web.py:1320 cps/web.py:1408
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr ""
#: cps/web.py:571
#: cps/web.py:572
#, python-format
msgid "Author: %(name)s"
msgstr ""
#: cps/web.py:583
#: cps/web.py:584
#, python-format
msgid "Publisher: %(name)s"
msgstr ""
#: cps/web.py:594
#: cps/web.py:595
#, python-format
msgid "Series: %(serie)s"
msgstr ""
#: cps/web.py:605
#: cps/web.py:606
#, python-format
msgid "Rating: %(rating)s stars"
msgstr ""
#: cps/web.py:616
#: cps/web.py:617
#, python-format
msgid "File format: %(format)s"
msgstr ""
#: cps/web.py:628
#: cps/web.py:629
#, python-format
msgid "Category: %(name)s"
msgstr ""
#: cps/web.py:645
#: cps/web.py:646
#, python-format
msgid "Language: %(name)s"
msgstr ""
#: cps/web.py:677
#: cps/web.py:678
msgid "Publisher list"
msgstr ""
#: cps/templates/index.xml:82 cps/web.py:693
#: cps/templates/index.xml:82 cps/web.py:694
msgid "Series list"
msgstr ""
#: cps/web.py:707
#: cps/web.py:708
msgid "Ratings list"
msgstr ""
#: cps/web.py:720
#: cps/web.py:721
msgid "File formats list"
msgstr ""
#: cps/web.py:748
#: cps/web.py:749
msgid "Available languages"
msgstr ""
#: cps/templates/index.xml:75 cps/web.py:765
#: cps/templates/index.xml:75 cps/web.py:766
msgid "Category list"
msgstr ""
#: cps/templates/layout.html:73 cps/web.py:779
#: cps/templates/layout.html:73 cps/web.py:780
msgid "Tasks"
msgstr ""
#: cps/web.py:844
msgid "Published after "
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45 cps/web.py:802 cps/web.py:804
msgid "Search"
msgstr ""
#: cps/web.py:851
msgid "Published after "
msgstr ""
#: cps/web.py:858
msgid "Published before "
msgstr ""
#: cps/web.py:865
#: cps/web.py:872
#, python-format
msgid "Rating <= %(rating)s"
msgstr ""
#: cps/web.py:867
#: cps/web.py:874
#, python-format
msgid "Rating >= %(rating)s"
msgstr ""
#: cps/web.py:927 cps/web.py:937
#: cps/web.py:934 cps/web.py:944
msgid "search"
msgstr ""
#: cps/web.py:1020
#: cps/web.py:1027
msgid "Please configure the SMTP mail settings first..."
msgstr ""
#: cps/web.py:1025
#: cps/web.py:1032
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr ""
#: cps/web.py:1029
#: cps/web.py:1036
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr ""
#: cps/web.py:1049 cps/web.py:1074 cps/web.py:1078 cps/web.py:1083
#: cps/web.py:1087
#: cps/web.py:1056 cps/web.py:1081 cps/web.py:1085 cps/web.py:1090
#: cps/web.py:1094
msgid "register"
msgstr ""
#: cps/web.py:1076
#: cps/web.py:1083
msgid "Your e-mail is not allowed to register"
msgstr ""
#: cps/web.py:1079
#: cps/web.py:1086
msgid "Confirmation e-mail was send to your e-mail account."
msgstr ""
#: cps/web.py:1082
#: cps/web.py:1089
msgid "This username or e-mail address is already in use."
msgstr ""
#: cps/web.py:1097
#: cps/web.py:1104
msgid "Cannot activate LDAP authentication"
msgstr ""
#: cps/web.py:1106 cps/web.py:1212
#: cps/web.py:1113 cps/web.py:1219
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr ""
#: cps/web.py:1110
#: cps/web.py:1117
msgid "Could not login. LDAP server down, please contact your administrator"
msgstr ""
#: cps/web.py:1114 cps/web.py:1122
#: cps/web.py:1121 cps/web.py:1129
msgid "Wrong Username or Password"
msgstr ""
#: cps/web.py:1118
#: cps/web.py:1125
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr ""
#: cps/web.py:1126 cps/web.py:1148
#: cps/web.py:1133 cps/web.py:1155
msgid "login"
msgstr ""
#: cps/web.py:1160 cps/web.py:1191
#: cps/web.py:1167 cps/web.py:1198
msgid "Token not found"
msgstr ""
#: cps/web.py:1168 cps/web.py:1199
#: cps/web.py:1175 cps/web.py:1206
msgid "Token has expired"
msgstr ""
#: cps/web.py:1176
#: cps/web.py:1183
msgid "Success! Please return to your device"
msgstr ""
#: cps/web.py:1253 cps/web.py:1280 cps/web.py:1284
#: cps/web.py:1260 cps/web.py:1302 cps/web.py:1306
#, python-format
msgid "%(name)s's profile"
msgstr ""
#: cps/web.py:1282
#: cps/web.py:1304
msgid "Profile updated"
msgstr ""
#: cps/web.py:1308 cps/web.py:1310 cps/web.py:1312 cps/web.py:1318
#: cps/web.py:1322
#: cps/web.py:1330 cps/web.py:1332 cps/web.py:1334 cps/web.py:1340
#: cps/web.py:1344
msgid "Read a Book"
msgstr ""
#: cps/web.py:1332
#: cps/web.py:1354
msgid "Error opening eBook. File does not exist or file is not accessible."
msgstr ""
@ -1055,7 +1066,7 @@ msgstr ""
#: cps/templates/config_edit.html:321 cps/templates/config_view_edit.html:147
#: cps/templates/email_edit.html:40 cps/templates/email_edit.html:74
#: cps/templates/layout.html:28 cps/templates/shelf.html:73
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:12
#: cps/templates/shelf_edit.html:19 cps/templates/shelf_order.html:32
#: cps/templates/user_edit.html:132
msgid "Back"
msgstr ""
@ -1689,11 +1700,6 @@ msgstr ""
msgid "Next"
msgstr ""
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45
msgid "Search"
msgstr ""
#: cps/templates/http_error.html:37
msgid "Create issue"
msgstr ""
@ -2053,7 +2059,7 @@ msgstr ""
msgid "Edit Shelf"
msgstr ""
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:11
#: cps/templates/shelf.html:12 cps/templates/shelf_order.html:31
msgid "Change order"
msgstr ""

@ -1,14 +1,14 @@
# GDrive Integration
google-api-python-client==1.7.11
gevent==1.2.1
greenlet==0.4.12
httplib2==0.9.2
oauth2client==4.0.0
uritemplate==3.0.0
pyasn1-modules==0.0.8
pyasn1==0.1.9
PyDrive==1.3.1
PyYAML==3.12
gevent>=1.2.1
greenlet>=0.4.12
httplib2>=0.9.2
oauth2client>=4.0.0
uritemplate>=3.0.0
pyasn1-modules>=0.0.8
pyasn1>=0.1.9
PyDrive>=1.3.1
PyYAML>=3.12
rsa==3.4.2
six==1.10.0

Loading…
Cancel
Save