Merge branch 'master' into master

This commit is contained in:
Josh O'Brien 2020-02-18 00:21:59 +11:00 committed by GitHub
commit 8f518993a4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
126 changed files with 10375 additions and 7930 deletions

View File

@ -30,7 +30,7 @@ Calibre-Web is a web app providing a clean interface for browsing, reading and d
## Quick start
1. Install dependencies by running `pip3 install --target vendor -r requirements.txt`.
1. Install dependencies by running `pip3 install --target vendor -r requirements.txt` (python3.x) or `pip install --target vendor -r requirements.txt` (python2.7).
2. Execute the command: `python cps.py` (or `nohup python cps.py` - recommended if you want to exit the terminal window)
3. Point your browser to `http://localhost:8083` or `http://localhost:8083/opds` for the OPDS catalog
4. Set `Location of Calibre database` to the path of the folder where your Calibre library (metadata.db) lives, push "submit" button\

View File

@ -1,4 +1,3 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)

View File

@ -1,3 +1,5 @@
# -*- coding: utf-8 -*-
# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)
# Copyright (C) 2016-2019 jkrehm andy29485 OzzieIsaacs
#

View File

@ -1,4 +1,3 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)

View File

@ -1,4 +1,3 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)

View File

@ -1,4 +1,3 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)

View File

@ -1,4 +1,3 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)

View File

@ -1,4 +1,3 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)

View File

@ -798,8 +798,8 @@ def get_download_link(book_id, book_format):
file_name = get_valid_filename(file_name)
headers = Headers()
headers["Content-Type"] = mimetypes.types_map.get('.' + book_format, "application/octet-stream")
headers["Content-Disposition"] = "attachment; filename*=UTF-8''%s.%s" % (quote(file_name.encode('utf-8')),
book_format)
headers["Content-Disposition"] = "attachment; filename=%s.%s; filename*=UTF-8''%s.%s" % (
quote(file_name.encode('utf-8')), book_format, quote(file_name.encode('utf-8')), book_format)
return do_download_file(book, book_format, data, headers)
else:
abort(404)

View File

@ -1,4 +1,3 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)

View File

@ -1,4 +1,3 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)

View File

@ -1,4 +1,3 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)
@ -50,7 +49,7 @@ def oauth_required(f):
def inner(*args, **kwargs):
if config.config_login_type == constants.LOGIN_OAUTH:
return f(*args, **kwargs)
if request.is_xhr:
if request.headers.get('X-Requested-With') == 'XMLHttpRequest':
data = {'status': 'error', 'message': 'Not Found'}
response = make_response(json.dumps(data, ensure_ascii=False))
response.headers["Content-Type"] = "application/json; charset=utf-8"

View File

@ -1,4 +1,3 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)

View File

@ -1,4 +1,3 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)

View File

@ -1,4 +1,3 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Flask License

View File

@ -1,4 +1,3 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Flask License

View File

@ -146,7 +146,7 @@ class WebServer(object):
self.unix_socket_file = None
def _start_tornado(self):
if os.name == 'nt':
if os.name == 'nt' and sys.version_info > (3, 7):
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))

View File

@ -1,4 +1,3 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)
@ -40,17 +39,18 @@ log = logger.create()
@shelf.route("/shelf/add/<int:shelf_id>/<int:book_id>")
@login_required
def add_to_shelf(shelf_id, book_id):
xhr = request.headers.get('X-Requested-With') == 'XMLHttpRequest'
shelf = ub.session.query(ub.Shelf).filter(ub.Shelf.id == shelf_id).first()
if shelf is None:
log.error("Invalid shelf specified: %s", shelf_id)
if not request.is_xhr:
if not xhr:
flash(_(u"Invalid shelf specified"), category="error")
return redirect(url_for('web.index'))
return "Invalid shelf specified", 400
if not shelf.is_public and not shelf.user_id == int(current_user.id):
log.error("User %s not allowed to add a book to %s", current_user, shelf)
if not request.is_xhr:
if not xhr:
flash(_(u"Sorry you are not allowed to add a book to the the shelf: %(shelfname)s", shelfname=shelf.name),
category="error")
return redirect(url_for('web.index'))
@ -58,7 +58,7 @@ def add_to_shelf(shelf_id, book_id):
if shelf.is_public and not current_user.role_edit_shelfs():
log.info("User %s not allowed to edit public shelves", current_user)
if not request.is_xhr:
if not xhr:
flash(_(u"You are not allowed to edit public shelves"), category="error")
return redirect(url_for('web.index'))
return "User is not allowed to edit public shelves", 403
@ -67,7 +67,7 @@ def add_to_shelf(shelf_id, book_id):
ub.BookShelf.book_id == book_id).first()
if book_in_shelf:
log.error("Book %s is already part of %s", book_id, shelf)
if not request.is_xhr:
if not xhr:
flash(_(u"Book is already part of the shelf: %(shelfname)s", shelfname=shelf.name), category="error")
return redirect(url_for('web.index'))
return "Book is already part of the shelf: %s" % shelf.name, 400
@ -81,7 +81,7 @@ def add_to_shelf(shelf_id, book_id):
ins = ub.BookShelf(shelf=shelf.id, book_id=book_id, order=maxOrder + 1)
ub.session.add(ins)
ub.session.commit()
if not request.is_xhr:
if not xhr:
flash(_(u"Book has been added to shelf: %(sname)s", sname=shelf.name), category="success")
if "HTTP_REFERER" in request.environ:
return redirect(request.environ["HTTP_REFERER"])
@ -147,10 +147,11 @@ def search_to_shelf(shelf_id):
@shelf.route("/shelf/remove/<int:shelf_id>/<int:book_id>")
@login_required
def remove_from_shelf(shelf_id, book_id):
xhr = request.headers.get('X-Requested-With') == 'XMLHttpRequest'
shelf = ub.session.query(ub.Shelf).filter(ub.Shelf.id == shelf_id).first()
if shelf is None:
log.error("Invalid shelf specified: %s", shelf_id)
if not request.is_xhr:
if not xhr:
return redirect(url_for('web.index'))
return "Invalid shelf specified", 400
@ -169,20 +170,23 @@ def remove_from_shelf(shelf_id, book_id):
if book_shelf is None:
log.error("Book %s already removed from %s", book_id, shelf)
if not request.is_xhr:
if not xhr:
return redirect(url_for('web.index'))
return "Book already removed from shelf", 410
ub.session.delete(book_shelf)
ub.session.commit()
if not request.is_xhr:
if not xhr:
flash(_(u"Book has been removed from shelf: %(sname)s", sname=shelf.name), category="success")
return redirect(request.environ["HTTP_REFERER"])
if "HTTP_REFERER" in request.environ:
return redirect(request.environ["HTTP_REFERER"])
else:
return redirect(url_for('web.index'))
return "", 204
else:
log.error("User %s not allowed to remove a book from %s", current_user, shelf)
if not request.is_xhr:
if not xhr:
flash(_(u"Sorry you are not allowed to remove a book from this shelf: %(sname)s", sname=shelf.name),
category="error")
return redirect(url_for('web.index'))
@ -284,8 +288,14 @@ def show_shelf(shelf_type, shelf_id):
books_in_shelf = ub.session.query(ub.BookShelf).filter(ub.BookShelf.shelf == shelf_id)\
.order_by(ub.BookShelf.order.asc()).all()
books_list = [ b.book_id for b in books_in_shelf]
result = db.session.query(db.Books).filter(db.Books.id.in_(books_list)).filter(common_filters()).all()
for book in books_in_shelf:
cur_book = db.session.query(db.Books).filter(db.Books.id == book.book_id).filter(common_filters()).first()
if cur_book:
result.append(cur_book)
else:
log.info('Not existing book %s in %s deleted', book.book_id, shelf)
ub.session.query(ub.BookShelf).filter(ub.BookShelf.book_id == book.book_id).delete()
ub.session.commit()
return render_title_template(page, entries=result, title=_(u"Shelf: '%(name)s'", name=shelf.name),
shelf=shelf, page="shelf")
else:
@ -317,8 +327,11 @@ def order_shelf(shelf_id):
if shelf:
books_in_shelf2 = ub.session.query(ub.BookShelf).filter(ub.BookShelf.shelf == shelf_id) \
.order_by(ub.BookShelf.order.asc()).all()
books_list = [ b.book_id for b in books_in_shelf2]
result = db.session.query(db.Books).filter(db.Books.id.in_(books_list)).filter(common_filters()).all()
for book in books_in_shelf2:
cur_book = db.session.query(db.Books).filter(db.Books.id == book.book_id).filter(common_filters()).first()
result.append(cur_book)
#books_list = [ b.book_id for b in books_in_shelf2]
#result = db.session.query(db.Books).filter(db.Books.id.in_(books_list)).filter(common_filters()).all()
return render_title_template('shelf_order.html', entries=result,
title=_(u"Change order of Shelf: '%(name)s'", name=shelf.name),
shelf=shelf, page="shelforder")

View File

@ -230,36 +230,46 @@
z-index: 200;
max-width: 20em;
background-color: #FFFF99;
box-shadow: 0px 2px 5px #333;
box-shadow: 0px 2px 5px #888;
border-radius: 2px;
padding: 0.6em;
padding: 6px;
margin-left: 5px;
cursor: pointer;
font: message-box;
font-size: 9px;
word-wrap: break-word;
}
.annotationLayer .popup > * {
font-size: 9px;
}
.annotationLayer .popup h1 {
font-size: 1em;
border-bottom: 1px solid #000000;
margin: 0;
padding-bottom: 0.2em;
display: inline-block;
}
.annotationLayer .popup span {
display: inline-block;
margin-left: 5px;
}
.annotationLayer .popup p {
margin: 0;
padding-top: 0.2em;
border-top: 1px solid #333;
margin-top: 2px;
padding-top: 2px;
}
.annotationLayer .highlightAnnotation,
.annotationLayer .underlineAnnotation,
.annotationLayer .squigglyAnnotation,
.annotationLayer .strikeoutAnnotation,
.annotationLayer .freeTextAnnotation,
.annotationLayer .lineAnnotation svg line,
.annotationLayer .squareAnnotation svg rect,
.annotationLayer .circleAnnotation svg ellipse,
.annotationLayer .polylineAnnotation svg polyline,
.annotationLayer .polygonAnnotation svg polygon,
.annotationLayer .caretAnnotation,
.annotationLayer .inkAnnotation svg polyline,
.annotationLayer .stampAnnotation,
.annotationLayer .fileAttachmentAnnotation {
@ -279,8 +289,9 @@
overflow: visible;
border: 9px solid transparent;
background-clip: content-box;
-o-border-image: url(images/shadow.png) 9 9 repeat;
border-image: url(images/shadow.png) 9 9 repeat;
-webkit-border-image: url(images/shadow.png) 9 9 repeat;
-o-border-image: url(images/shadow.png) 9 9 repeat;
border-image: url(images/shadow.png) 9 9 repeat;
background-color: white;
}
@ -543,15 +554,20 @@ select {
z-index: 100;
border-top: 1px solid #333;
transition-duration: 200ms;
transition-timing-function: ease;
-webkit-transition-duration: 200ms;
transition-duration: 200ms;
-webkit-transition-timing-function: ease;
transition-timing-function: ease;
}
html[dir='ltr'] #sidebarContainer {
-webkit-transition-property: left;
transition-property: left;
left: -200px;
left: calc(-1 * var(--sidebar-width));
}
html[dir='rtl'] #sidebarContainer {
-webkit-transition-property: right;
transition-property: right;
right: -200px;
right: calc(-1 * var(--sidebar-width));
@ -563,7 +579,8 @@ html[dir='rtl'] #sidebarContainer {
#outerContainer.sidebarResizing #sidebarContainer {
/* Improve responsiveness and avoid visual glitches when the sidebar is resized. */
transition-duration: 0s;
-webkit-transition-duration: 0s;
transition-duration: 0s;
/* Prevent e.g. the thumbnails being selected when the sidebar is resized. */
-webkit-user-select: none;
-moz-user-select: none;
@ -620,8 +637,10 @@ html[dir='rtl'] #sidebarContent {
outline: none;
}
#viewerContainer:not(.pdfPresentationMode) {
transition-duration: 200ms;
transition-timing-function: ease;
-webkit-transition-duration: 200ms;
transition-duration: 200ms;
-webkit-transition-timing-function: ease;
transition-timing-function: ease;
}
html[dir='ltr'] #viewerContainer {
box-shadow: inset 1px 0 0 hsla(0,0%,100%,.05);
@ -632,15 +651,18 @@ html[dir='rtl'] #viewerContainer {
#outerContainer.sidebarResizing #viewerContainer {
/* Improve responsiveness and avoid visual glitches when the sidebar is resized. */
transition-duration: 0s;
-webkit-transition-duration: 0s;
transition-duration: 0s;
}
html[dir='ltr'] #outerContainer.sidebarOpen #viewerContainer:not(.pdfPresentationMode) {
-webkit-transition-property: left;
transition-property: left;
left: 200px;
left: var(--sidebar-width);
}
html[dir='rtl'] #outerContainer.sidebarOpen #viewerContainer:not(.pdfPresentationMode) {
-webkit-transition-property: right;
transition-property: right;
right: 200px;
right: var(--sidebar-width);
@ -662,6 +684,8 @@ html[dir='rtl'] #outerContainer.sidebarOpen #viewerContainer:not(.pdfPresentatio
width: 100%;
height: 32px;
background-color: #424242; /* fallback */
background-image: url(images/texture.png),
-webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,30%,.99)), to(hsla(0,0%,25%,.95)));
background-image: url(images/texture.png),
linear-gradient(hsla(0,0%,30%,.99), hsla(0,0%,25%,.95));
}
@ -697,6 +721,8 @@ html[dir='rtl'] #sidebarResizer {
position: relative;
height: 32px;
background-color: #474747; /* fallback */
background-image: url(images/texture.png),
-webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,32%,.99)), to(hsla(0,0%,27%,.95)));
background-image: url(images/texture.png),
linear-gradient(hsla(0,0%,32%,.99), hsla(0,0%,27%,.95));
}
@ -733,6 +759,7 @@ html[dir='rtl'] #toolbarContainer, .findbar, .secondaryToolbar {
height: 100%;
background-color: #ddd;
overflow: hidden;
-webkit-transition: width 200ms;
transition: width 200ms;
}
@ -748,6 +775,7 @@ html[dir='rtl'] #toolbarContainer, .findbar, .secondaryToolbar {
#loadingBar .progress.indeterminate {
background-color: #999;
-webkit-transition: none;
transition: none;
}
@ -815,6 +843,9 @@ html[dir='rtl'] .findbar {
#findInput::-webkit-input-placeholder {
color: hsl(0, 0%, 75%);
}
#findInput::-moz-placeholder {
font-style: italic;
}
#findInput:-ms-input-placeholder {
font-style: italic;
}
@ -1006,6 +1037,7 @@ html[dir='rtl'] .splitToolbarButton > .toolbarButton {
.splitToolbarButton.toggled > .toolbarButton,
.toolbarButton.textButton {
background-color: hsla(0,0%,0%,.12);
background-image: -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,100%,.05)), to(hsla(0,0%,100%,0)));
background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0));
background-clip: padding-box;
border: 1px solid hsla(0,0%,0%,.35);
@ -1013,9 +1045,12 @@ html[dir='rtl'] .splitToolbarButton > .toolbarButton {
box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset,
0 0 1px hsla(0,0%,100%,.15) inset,
0 1px 0 hsla(0,0%,100%,.05);
-webkit-transition-property: background-color, border-color, box-shadow;
transition-property: background-color, border-color, box-shadow;
transition-duration: 150ms;
transition-timing-function: ease;
-webkit-transition-duration: 150ms;
transition-duration: 150ms;
-webkit-transition-timing-function: ease;
transition-timing-function: ease;
}
.splitToolbarButton > .toolbarButton:hover,
@ -1072,9 +1107,12 @@ html[dir='rtl'] .splitToolbarButtonSeparator {
padding: 12px 0;
margin: 1px 0;
box-shadow: 0 0 0 1px hsla(0,0%,100%,.03);
-webkit-transition-property: padding;
transition-property: padding;
transition-duration: 10ms;
transition-timing-function: ease;
-webkit-transition-duration: 10ms;
transition-duration: 10ms;
-webkit-transition-timing-function: ease;
transition-timing-function: ease;
}
.toolbarButton,
@ -1094,9 +1132,12 @@ html[dir='rtl'] .splitToolbarButtonSeparator {
user-select: none;
/* Opera does not support user-select, use <... unselectable="on"> instead */
cursor: default;
-webkit-transition-property: background-color, border-color, box-shadow;
transition-property: background-color, border-color, box-shadow;
transition-duration: 150ms;
transition-timing-function: ease;
-webkit-transition-duration: 150ms;
transition-duration: 150ms;
-webkit-transition-timing-function: ease;
transition-timing-function: ease;
}
html[dir='ltr'] .toolbarButton,
@ -1117,6 +1158,7 @@ html[dir='rtl'] .dropdownToolbarButton {
.secondaryToolbarButton:hover,
.secondaryToolbarButton:focus {
background-color: hsla(0,0%,0%,.12);
background-image: -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,100%,.05)), to(hsla(0,0%,100%,0)));
background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0));
background-clip: padding-box;
border: 1px solid hsla(0,0%,0%,.35);
@ -1131,28 +1173,36 @@ html[dir='rtl'] .dropdownToolbarButton {
.dropdownToolbarButton:hover:active,
.secondaryToolbarButton:hover:active {
background-color: hsla(0,0%,0%,.2);
background-image: -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,100%,.05)), to(hsla(0,0%,100%,0)));
background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0));
border-color: hsla(0,0%,0%,.35) hsla(0,0%,0%,.4) hsla(0,0%,0%,.45);
box-shadow: 0 1px 1px hsla(0,0%,0%,.1) inset,
0 0 1px hsla(0,0%,0%,.2) inset,
0 1px 0 hsla(0,0%,100%,.05);
-webkit-transition-property: background-color, border-color, box-shadow;
transition-property: background-color, border-color, box-shadow;
transition-duration: 10ms;
transition-timing-function: linear;
-webkit-transition-duration: 10ms;
transition-duration: 10ms;
-webkit-transition-timing-function: linear;
transition-timing-function: linear;
}
.toolbarButton.toggled,
.splitToolbarButton.toggled > .toolbarButton.toggled,
.secondaryToolbarButton.toggled {
background-color: hsla(0,0%,0%,.3);
background-image: -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,100%,.05)), to(hsla(0,0%,100%,0)));
background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0));
border-color: hsla(0,0%,0%,.4) hsla(0,0%,0%,.45) hsla(0,0%,0%,.5);
box-shadow: 0 1px 1px hsla(0,0%,0%,.1) inset,
0 0 1px hsla(0,0%,0%,.2) inset,
0 1px 0 hsla(0,0%,100%,.05);
-webkit-transition-property: background-color, border-color, box-shadow;
transition-property: background-color, border-color, box-shadow;
transition-duration: 10ms;
transition-timing-function: linear;
-webkit-transition-duration: 10ms;
transition-duration: 10ms;
-webkit-transition-timing-function: linear;
transition-timing-function: linear;
}
.toolbarButton.toggled:hover:active,
@ -1493,6 +1543,7 @@ html[dir='rtl'] .verticalToolbarSeparator {
border: 1px solid transparent;
border-radius: 2px;
background-color: hsla(0,0%,100%,.09);
background-image: -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,100%,.05)), to(hsla(0,0%,100%,0)));
background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0));
background-clip: padding-box;
border: 1px solid hsla(0,0%,0%,.35);
@ -1503,9 +1554,12 @@ html[dir='rtl'] .verticalToolbarSeparator {
font-size: 12px;
line-height: 14px;
outline-style: none;
-webkit-transition-property: background-color, border-color, box-shadow;
transition-property: background-color, border-color, box-shadow;
transition-duration: 150ms;
transition-timing-function: ease;
-webkit-transition-duration: 150ms;
transition-duration: 150ms;
-webkit-transition-timing-function: ease;
transition-timing-function: ease;
}
.toolbarField[type=checkbox] {
@ -1619,6 +1673,7 @@ a:focus > .thumbnail > .thumbnailSelectionRing > .thumbnailImage,
a:focus > .thumbnail > .thumbnailSelectionRing,
.thumbnail:hover > .thumbnailSelectionRing {
background-color: hsla(0,0%,100%,.15);
background-image: -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,100%,.05)), to(hsla(0,0%,100%,0)));
background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0));
background-clip: padding-box;
box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset,
@ -1634,6 +1689,7 @@ a:focus > .thumbnail > .thumbnailSelectionRing,
.thumbnail.selected > .thumbnailSelectionRing {
background-color: hsla(0,0%,100%,.3);
background-image: -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,100%,.05)), to(hsla(0,0%,100%,0)));
background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0));
background-clip: padding-box;
box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset,
@ -1755,6 +1811,7 @@ html[dir='rtl'] .outlineItemToggler::before {
.outlineItem > a:hover,
.attachmentsItem > button:hover {
background-color: hsla(0,0%,100%,.02);
background-image: -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,100%,.05)), to(hsla(0,0%,100%,0)));
background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0));
background-clip: padding-box;
box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset,
@ -1766,6 +1823,7 @@ html[dir='rtl'] .outlineItemToggler::before {
.outlineItem.selected {
background-color: hsla(0,0%,100%,.08);
background-image: -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,100%,.05)), to(hsla(0,0%,100%,0)));
background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0));
background-clip: padding-box;
box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset,
@ -1850,6 +1908,8 @@ html[dir='rtl'] .outlineItemToggler::before {
font-size: 12px;
line-height: 14px;
background-color: #474747; /* fallback */
background-image: url(images/texture.png),
-webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,32%,.99)), to(hsla(0,0%,27%,.95)));
background-image: url(images/texture.png),
linear-gradient(hsla(0,0%,32%,.99), hsla(0,0%,27%,.95));
box-shadow: inset 1px 0 0 hsla(0,0%,100%,.08),

View File

@ -65,6 +65,10 @@ span.glyphicon.glyphicon-tags {padding-right: 5px;color: #999;vertical-align: te
.navbar-default .navbar-toggle {border-color: #000;}
.cover { margin-bottom: 10px;}
.cover-height { max-height: 100px;}
.col-sm-2 a .cover-small {
margin:5px;
max-height: 200px;
}
.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;}

View File

@ -19,7 +19,7 @@
* Google Books api document: https://developers.google.com/books/docs/v1/using
* Douban Books api document: https://developers.douban.com/wiki/?title=book_v2 (Chinese Only)
*/
/* global _, i18nMsg, tinymce */
/* global _, i18nMsg, tinymce */
var dbResults = [];
var ggResults = [];
@ -55,9 +55,9 @@ $(function () {
$(".cover img").attr("src", book.cover);
$("#cover_url").val(book.cover);
$("#pubdate").val(book.publishedDate);
$("#publisher").val(book.publisher)
if (book.series != undefined) {
$("#series").val(book.series)
$("#publisher").val(book.publisher);
if (typeof book.series !== "undefined") {
$("#series").val(book.series);
}
}
@ -72,16 +72,18 @@ $(function () {
}
function formatDate (date) {
var d = new Date(date),
month = '' + (d.getMonth() + 1),
day = '' + d.getDate(),
month = "" + (d.getMonth() + 1),
day = "" + d.getDate(),
year = d.getFullYear();
if (month.length < 2)
month = '0' + month;
if (day.length < 2)
day = '0' + day;
return [year, month, day].join('-');
if (month.length < 2) {
month = "0" + month;
}
if (day.length < 2) {
day = "0" + day;
}
return [year, month, day].join("-");
}
if (ggDone && ggResults.length > 0) {
@ -116,16 +118,17 @@ $(function () {
}
if (dbDone && dbResults.length > 0) {
dbResults.forEach(function(result) {
if (result.series){
var series_title = result.series.title
var seriesTitle = "";
if (result.series) {
seriesTitle = result.series.title;
}
var date_fomers = result.pubdate.split("-")
var publishedYear = parseInt(date_fomers[0])
var publishedMonth = parseInt(date_fomers[1])
var publishedDate = new Date(publishedYear, publishedMonth-1, 1)
var dateFomers = result.pubdate.split("-");
var publishedYear = parseInt(dateFomers[0]);
var publishedMonth = parseInt(dateFomers[1]);
var publishedDate = new Date(publishedYear, publishedMonth - 1, 1);
publishedDate = formatDate(publishedDate);
publishedDate = formatDate(publishedDate)
var book = {
id: result.id,
title: result.title,
@ -137,7 +140,7 @@ $(function () {
return tag.title.toLowerCase().replace(/,/g, "_");
}),
rating: result.rating.average || 0,
series: series_title || "",
series: seriesTitle || "",
cover: result.image,
url: "https://book.douban.com/subject/" + result.id,
source: {
@ -183,7 +186,7 @@ $(function () {
}
function dbSearchBook (title) {
apikey="0df993c66c0c636e29ecbb5344252a4a"
var apikey = "0df993c66c0c636e29ecbb5344252a4a";
$.ajax({
url: douban + dbSearch + "?apikey=" + apikey + "&q=" + title + "&fields=all&count=10",
type: "GET",
@ -193,7 +196,7 @@ $(function () {
dbResults = data.books;
},
error: function error() {
$("#meta-info").html("<p class=\"text-danger\">" + msg.search_error + "!</p>"+ $("#meta-info")[0].innerHTML)
$("#meta-info").html("<p class=\"text-danger\">" + msg.search_error + "!</p>" + $("#meta-info")[0].innerHTML);
},
complete: function complete() {
dbDone = true;

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -29,7 +29,7 @@ function sendData(path) {
var maxElements;
var tmp = [];
elements = Sortable.utils.find(sortTrue, "div");
elements = $(".list-group-item");
maxElements = elements.length;
var form = document.createElement("form");

View File

@ -226,6 +226,10 @@ invalid_file_error=ملف PDF تالف أو غير صحيح.
missing_file_error=ملف PDF غير موجود.
unexpected_response_error=استجابة خادوم غير متوقعة.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}، {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Няспраўны або пашкоджаны файл PDF.
missing_file_error=Адсутны файл PDF.
unexpected_response_error=Нечаканы адказ сервера.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Restr PDF didalvoudek pe kontronet.
missing_file_error=Restr PDF o vankout.
unexpected_response_error=Respont dic'hortoz a-berzh an dafariad
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Man oke ta o yujtajinäq ri PDF yakb'äl.
missing_file_error=Man xilitäj ta ri PDF yakb'äl.
unexpected_response_error=Man oyob'en ta tz'olin rutzij ruk'u'x samaj.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Neplatný nebo chybný soubor PDF.
missing_file_error=Chybí soubor PDF.
unexpected_response_error=Neočekávaná odpověď serveru.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Ffeil PDF annilys neu llwgr.
missing_file_error=Ffeil PDF coll.
unexpected_response_error=Ymateb annisgwyl gan y gweinydd.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=PDF-filen er ugyldig eller ødelagt.
missing_file_error=Manglende PDF-fil.
unexpected_response_error=Uventet svar fra serveren.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Ungültige oder beschädigte PDF-Datei
missing_file_error=Fehlende PDF-Datei
unexpected_response_error=Unerwartete Antwort des Servers
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Μη έγκυρο ή κατεστραμμένο αρχείο
missing_file_error=Λείπει αρχείο PDF.
unexpected_response_error=Μη αναμενόμενη απόκριση από το διακομιστή.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Invalid or corrupted PDF file.
missing_file_error=Missing PDF file.
unexpected_response_error=Unexpected server response.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Invalid or corrupted PDF file.
missing_file_error=Missing PDF file.
unexpected_response_error=Unexpected server response.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Invalid or corrupted PDF file.
missing_file_error=Missing PDF file.
unexpected_response_error=Unexpected server response.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Nevalida aŭ difektita PDF dosiero.
missing_file_error=Mankas dosiero PDF.
unexpected_response_error=Neatendita respondo de servilo.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Archivo PDF no válido o cocrrupto.
missing_file_error=Archivo PDF faltante.
unexpected_response_error=Respuesta del servidor inesperada.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Archivo PDF inválido o corrupto.
missing_file_error=Falta el archivo PDF.
unexpected_response_error=Respuesta del servidor inesperada.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Fichero PDF no válido o corrupto.
missing_file_error=No hay fichero PDF.
unexpected_response_error=Respuesta inesperada del servidor.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Vigane või rikutud PDF-fail.
missing_file_error=PDF-fail puudub.
unexpected_response_error=Ootamatu vastus serverilt.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}} {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=PDF fitxategi baliogabe edo hondatua.
missing_file_error=PDF fitxategia falta da.
unexpected_response_error=Espero gabeko zerbitzariaren erantzuna.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Virheellinen tai vioittunut PDF-tiedosto.
missing_file_error=Puuttuva PDF-tiedosto.
unexpected_response_error=Odottamaton vastaus palvelimelta.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Fichier PDF invalide ou corrompu.
missing_file_error=Fichier PDF manquant.
unexpected_response_error=Réponse inattendue du serveur.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}} à {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Ynfalide of korruptearre PDF-bestân.
missing_file_error=PDF-bestân ûntbrekt.
unexpected_response_error=Unferwacht serverantwurd.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=PDF marandurenda ndoikóiva térã ivaipyréva.
missing_file_error=Ndaipóri PDF marandurenda
unexpected_response_error=Mohendahavusu mbohovái ñeha'arõ'ỹva.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -173,6 +173,7 @@ find_reached_bottom=הגיע לסוף הדף, ממשיך מלמעלה
# "{{current}}" and "{{total}}" will be replaced by a number representing the
# index of the currently active find result, respectively a number representing
# the total number of matches in the document.
find_match_count={[ plural(total) ]}
find_match_count[one]=תוצאה {{current}} מתוך {{total}}
find_match_count[two]={{current}} מתוך {{total}} תוצאות
find_match_count[few]={{current}} מתוך {{total}} תוצאות
@ -181,13 +182,14 @@ find_match_count[other]={{current}} מתוך {{total}} תוצאות
# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
# [zero|one|two|few|many|other], with [other] as the default value.
# "{{limit}}" will be replaced by a numerical value.
find_match_count_limit={[ plural(limit) ]}
find_match_count_limit[zero]=יותר מ־{{limit}} תוצאות
find_match_count_limit[one]=יותר מתוצאה אחת
find_match_count_limit[two]=יותר מ־{{limit}} תוצאות
find_match_count_limit[few]=יותר מ־{{limit}} תוצאות
find_match_count_limit[many]=יותר מ־{{limit}} תוצאות
find_match_count_limit[other]=יותר מ־{{limit}} תוצאות
find_not_found=ביטוי לא נמצא
find_not_found=הביטוי לא נמצא
# Error panel labels
error_more_info=מידע נוסף
@ -224,6 +226,10 @@ invalid_file_error=קובץ PDF פגום או לא תקין.
missing_file_error=קובץ PDF חסר.
unexpected_response_error=תגובת שרת לא צפויה.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -208,6 +208,10 @@ invalid_file_error=अमान्य या भ्रष्ट PDF फ़ाइ
missing_file_error=\u0020अनुपस्थित PDF फ़ाइल.
unexpected_response_error=अप्रत्याशित सर्वर प्रतिक्रिया.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -65,7 +65,19 @@ cursor_text_select_tool_label=Alat za označavanje teksta
cursor_hand_tool.title=Omogući ručni alat
cursor_hand_tool_label=Ručni alat
scroll_vertical.title=Koristi okomito pomicanje
scroll_vertical_label=Okomito pomicanje
scroll_horizontal.title=Koristi vodoravno pomicanje
scroll_horizontal_label=Vodoravno pomicanje
scroll_wrapped.title=Koristi omotano pomicanje
scroll_wrapped_label=Omotano pomicanje
spread_none.title=Ne pridružuj razmake stranica
spread_none_label=Bez razmaka
spread_odd.title=Pridruži razmake stranica počinjući od neparnih stranica
spread_odd_label=Neparni razmaci
spread_even.title=Pridruži razmake stranica počinjući od parnih stranica
spread_even_label=Parni razmaci
# Document properties dialog box
document_properties.title=Svojstva dokumenta...
@ -91,8 +103,15 @@ document_properties_creator=Stvaratelj:
document_properties_producer=PDF stvaratelj:
document_properties_version=PDF inačica:
document_properties_page_count=Broj stranica:
document_properties_page_size=Dimenzije stranice:
document_properties_page_size_unit_inches=in
document_properties_page_size_unit_millimeters=mm
document_properties_page_size_orientation_portrait=portret
document_properties_page_size_orientation_landscape=pejzaž
document_properties_page_size_name_a3=A3
document_properties_page_size_name_a4=A4
document_properties_page_size_name_letter=Pismo
document_properties_page_size_name_legal=Pravno
# LOCALIZATION NOTE (document_properties_page_size_dimension_string):
# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement and orientation, of the (current) page.
@ -103,6 +122,7 @@ document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}}
document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})
# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
# the document; usually called "Fast Web View" in English locales of Adobe software.
document_properties_linearized=Brzi web pregled:
document_properties_linearized_yes=Da
document_properties_linearized_no=Ne
document_properties_close=Zatvori
@ -145,6 +165,7 @@ find_next.title=Pronađi iduće javljanje ovog izraza
find_next_label=Sljedeće
find_highlight=Istankni sve
find_match_case_label=Slučaj podudaranja
find_entire_word_label=Cijele riječi
find_reached_top=Dosegnut vrh dokumenta, nastavak od dna
find_reached_bottom=Dosegnut vrh dokumenta, nastavak od vrha
# LOCALIZATION NOTE (find_match_count): The supported plural forms are
@ -152,9 +173,22 @@ find_reached_bottom=Dosegnut vrh dokumenta, nastavak od vrha
# "{{current}}" and "{{total}}" will be replaced by a number representing the
# index of the currently active find result, respectively a number representing
# the total number of matches in the document.
find_match_count={[ plural(total) ]}
find_match_count[one]={{current}} od {{total}} se podudara
find_match_count[two]={{current}} od {{total}} se podudara
find_match_count[few]={{current}} od {{total}} se podudara
find_match_count[many]={{current}} od {{total}} se podudara
find_match_count[other]={{current}} od {{total}} se podudara
# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
# [zero|one|two|few|many|other], with [other] as the default value.
# "{{limit}}" will be replaced by a numerical value.
find_match_count_limit={[ plural(limit) ]}
find_match_count_limit[zero]=Više od {{limit}} podudaranja
find_match_count_limit[one]=Više od {{limit}} podudaranja
find_match_count_limit[two]=Više od {{limit}} podudaranja
find_match_count_limit[few]=Više od {{limit}} podudaranja
find_match_count_limit[many]=Više od {{limit}} podudaranja
find_match_count_limit[other]=Više od {{limit}} podudaranja
find_not_found=Izraz nije pronađen
# Error panel labels
@ -192,6 +226,10 @@ invalid_file_error=Kriva ili oštećena PDF datoteka.
missing_file_error=Nedostaje PDF datoteka.
unexpected_response_error=Neočekivani odgovor poslužitelja.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Njepłaćiwa abo wobškodźena PDF-dataja.
missing_file_error=Falowaca PDF-dataja.
unexpected_response_error=Njewočakowana serwerowa wotmołwa.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Érvénytelen vagy sérült PDF fájl.
missing_file_error=Hiányzó PDF fájl.
unexpected_response_error=Váratlan kiszolgálóválasz.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=File PDF corrumpite o non valide.
missing_file_error=File PDF mancante.
unexpected_response_error=Responsa del servitor inexpectate.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Berkas PDF tidak valid atau rusak.
missing_file_error=Berkas PDF tidak ada.
unexpected_response_error=Balasan server yang tidak diharapkan.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -65,7 +65,17 @@ cursor_text_select_tool_label=Textavalsáhald
cursor_hand_tool.title=Virkja handarverkfæri
cursor_hand_tool_label=Handarverkfæri
scroll_vertical.title=Nota lóðrétt skrun
scroll_vertical_label=Lóðrétt skrun
scroll_horizontal.title=Nota lárétt skrun
scroll_horizontal_label=Lárétt skrun
spread_none.title=Ekki taka þátt í dreifingu síðna
spread_none_label=Engin dreifing
spread_odd.title=Taka þátt í dreifingu síðna með oddatölum
spread_odd_label=Oddatöludreifing
spread_even.title=Taktu þátt í dreifingu síðna með jöfnuntölum
spread_even_label=Jafnatöludreifing
# Document properties dialog box
document_properties.title=Eiginleikar skjals…
@ -161,10 +171,21 @@ find_reached_bottom=Náði enda skjals, held áfram efst
# index of the currently active find result, respectively a number representing
# the total number of matches in the document.
find_match_count={[ plural(total) ]}
find_match_count[one]={{current}} af {{total}} niðurstöðu
find_match_count[two]={{current}} af {{total}} niðurstöðum
find_match_count[few]={{current}} af {{total}} niðurstöðum
find_match_count[many]={{current}} af {{total}} niðurstöðum
find_match_count[other]={{current}} af {{total}} niðurstöðum
# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
# [zero|one|two|few|many|other], with [other] as the default value.
# "{{limit}}" will be replaced by a numerical value.
find_match_count_limit={[ plural(limit) ]}
find_match_count_limit[zero]=Fleiri en {{limit}} niðurstöður
find_match_count_limit[one]=Fleiri en {{limit}} niðurstaða
find_match_count_limit[two]=Fleiri en {{limit}} niðurstöður
find_match_count_limit[few]=Fleiri en {{limit}} niðurstöður
find_match_count_limit[many]=Fleiri en {{limit}} niðurstöður
find_match_count_limit[other]=Fleiri en {{limit}} niðurstöður
find_not_found=Fann ekki orðið
# Error panel labels

View File

@ -146,6 +146,7 @@ loading_error = Si è verificato un errore durante il caricamento del PDF.
invalid_file_error = File PDF non valido o danneggiato.
missing_file_error = File PDF non disponibile.
unexpected_response_error = Risposta imprevista del server
annotation_date_string = {{date}}, {{time}}
text_annotation_type.alt = [Annotazione: {{type}}]
password_label = Inserire la password per aprire questo file PDF.
password_invalid = Password non corretta. Riprovare.

View File

@ -226,6 +226,10 @@ invalid_file_error=無効または破損した PDF ファイル。
missing_file_error=PDF ファイルが見つかりません。
unexpected_response_error=サーバーから予期せぬ応答がありました。
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -100,8 +100,8 @@ document_properties_modification_date=ჩასწორების თარ
# will be replaced by the creation/modification date, and time, of the PDF file.
document_properties_date_string={{date}}, {{time}}
document_properties_creator=გამომშვები:
document_properties_producer=PDF გამომშვები:
document_properties_version=PDF ვერსია:
document_properties_producer=PDF-გამომშვები:
document_properties_version=PDF-ვერსია:
document_properties_page_count=გვერდების რაოდენობა:
document_properties_page_size=გვერდის ზომა:
document_properties_page_size_unit_inches=დუიმი
@ -122,7 +122,7 @@ document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}}
document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})
# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
# the document; usually called "Fast Web View" in English locales of Adobe software.
document_properties_linearized=Fast Web View:
document_properties_linearized=სწრაფი შეთვალიერება:
document_properties_linearized_yes=დიახ
document_properties_linearized_no=არა
document_properties_close=დახურვა
@ -154,7 +154,7 @@ findbar_label=ძიება
thumb_page_title=გვერდი {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
thumb_page_canvas=გვერდის ესკიზი {{page}}
thumb_page_canvas=გვერდის შეთვალიერება {{page}}
# Find panel button title and messages
find_input.title=ძიება
@ -221,22 +221,26 @@ page_scale_percent={{scale}}%
# Loading indicator messages
loading_error_indicator=შეცდომა
loading_error=შეცდომა, PDF ფაილის ჩატვირთვისას.
invalid_file_error=არამართებული ან დაზიანებული PDF ფაილი.
missing_file_error=ნაკლული PDF ფაილი.
loading_error=შეცდომა, PDF-ფაილის ჩატვირთვისას.
invalid_file_error=არამართებული ან დაზიანებული PDF-ფაილი.
missing_file_error=ნაკლული PDF-ფაილი.
unexpected_response_error=სერვერის მოულოდნელი პასუხი.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[{{type}} შენიშვნა]
password_label=შეიყვანეთ პაროლი PDF ფაილის გასახსნელად.
password_label=შეიყვანეთ პაროლი PDF-ფაილის გასახსნელად.
password_invalid=არასწორი პაროლი. გთხოვთ, სცადოთ ხელახლა.
password_ok=კარგი
password_cancel=გაუქმება
printing_not_supported=გაფრთხილება: ამობეჭდვა ამ ბრაუზერში არაა სრულად მხარდაჭერილი.
printing_not_ready=გაფრთხილება: PDF სრულად ჩატვირთული არაა, ამობეჭდვის დასაწყებად.
web_fonts_disabled=ვებშრიფტები გამორთულია: ჩაშენებული PDF შრიფტების გამოყენება ვერ ხერხდება.
document_colors_not_allowed=PDF დოკუმენტებს არ აქვს საკუთარი ფერების გამოყენების ნებართვა: ბრაუზერში გამორთულია “გვერდებისთვის საკუთარი ფერების გამოყენების უფლება”.
web_fonts_disabled=ვებშრიფტები გამორთულია: ჩაშენებული PDF-შრიფტების გამოყენება ვერ ხერხდება.
document_colors_not_allowed=PDF-დოკუმენტებს არ აქვს საკუთარი ფერების გამოყენების ნებართვა: ბრაუზერში გამორთულია “გვერდებისთვის საკუთარი ფერების გამოყენების უფლება”.

View File

@ -226,6 +226,10 @@ invalid_file_error=Afaylu PDF arameɣtu neɣ yexṣeṛ.
missing_file_error=Ulac afaylu PDF.
unexpected_response_error=Aqeddac yerra-d yir tiririt ur nettwaṛǧi ara.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Зақымдалған немесе қате PDF файл.
missing_file_error=PDF файлы жоқ.
unexpected_response_error=Сервердің күтпеген жауабы.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -26,23 +26,23 @@ of_pages=전체 {{pagesCount}}
# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
page_of_pages=({{pagesCount}} 중 {{pageNumber}})
page_of_pages=({{pageNumber}} / {{pagesCount}})
zoom_out.title=축소
zoom_out_label=축소
zoom_in.title=확대
zoom_in_label=확대
zoom.title=크기
presentation_mode.title=발표 모드로 전환
presentation_mode_label=발표 모드
zoom.title=확대/축소
presentation_mode.title=프레젠테이션 모드로 전환
presentation_mode_label=프레젠테이션 모드
open_file.title=파일 열기
open_file_label=열기
print.title=인쇄
print_label=인쇄
download.title=다운로드
download_label=다운로드
bookmark.title=지금 보이는 그대로 (복사하거나 새 창에 열기)
bookmark_label=지금 보이는 그대로
bookmark.title=현재 뷰 (복사하거나 새 창에 열기)
bookmark_label=현재 뷰
# Secondary toolbar and context menu
tools.title=도구
@ -83,7 +83,7 @@ spread_even_label=짝수 펼쳐짐
document_properties.title=문서 속성…
document_properties_label=문서 속성…
document_properties_file_name=파일 이름:
document_properties_file_size=파일 사이즈:
document_properties_file_size=파일 크기:
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
document_properties_kb={{size_kb}} KB ({{size_b}}바이트)
@ -91,18 +91,18 @@ document_properties_kb={{size_kb}} KB ({{size_b}}바이트)
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_mb={{size_mb}} MB ({{size_b}}바이트)
document_properties_title=제목:
document_properties_author=자:
document_properties_author=작성자:
document_properties_subject=주제:
document_properties_keywords=키워드:
document_properties_creation_date=생성일:
document_properties_modification_date=수정:
document_properties_creation_date=작성 날짜:
document_properties_modification_date=수정 날짜:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
document_properties_date_string={{date}}, {{time}}
document_properties_creator=생성자:
document_properties_producer=PDF 생성기:
document_properties_creator=작성 프로그램:
document_properties_producer=PDF 변환 소프트웨어:
document_properties_version=PDF 버전:
document_properties_page_count=페이지:
document_properties_page_count=페이지:
document_properties_page_size=페이지 크기:
document_properties_page_size_unit_inches=in
document_properties_page_size_unit_millimeters=mm
@ -127,7 +127,7 @@ document_properties_linearized_yes=예
document_properties_linearized_no=아니오
document_properties_close=닫기
print_progress_message=문서 출력 준비중…
print_progress_message=인쇄 문서 준비중…
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
print_progress_percent={{progress}}%
@ -151,10 +151,10 @@ findbar_label=검색
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title={{page}}
thumb_page_title={{page}} 페이지
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
thumb_page_canvas={{page}} 미리보기
thumb_page_canvas={{page}} 페이지 미리보기
# Find panel button title and messages
find_input.title=찾기
@ -164,7 +164,7 @@ find_previous_label=이전
find_next.title=지정 문자열에 일치하는 다음 부분을 검색
find_next_label=다음
find_highlight=모두 강조 표시
find_match_case_label=문자/소문자 구별
find_match_case_label=/소문자 구분
find_entire_word_label=전체 단어
find_reached_top=문서 처음까지 검색하고 끝으로 돌아와 검색했습니다.
find_reached_bottom=문서 끝까지 검색하고 앞으로 돌아와 검색했습니다.
@ -208,12 +208,12 @@ error_stack=스택: {{stack}}
error_file=파일: {{file}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=줄 번호: {{line}}
rendering_error=페이지를 렌더링하다 오류가 났습니다.
rendering_error=페이지를 렌더링하는 중 오류가 발생했습니다.
# Predefined zoom values
page_scale_width=페이지 너비에 맞춤
page_scale_fit=페이지에 맞춤
page_scale_auto=알아서 맞춤
page_scale_auto=자동 맞춤
page_scale_actual=실제 크기에 맞춤
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
@ -221,22 +221,26 @@ page_scale_percent={{scale}}%
# Loading indicator messages
loading_error_indicator=오류
loading_error=PDF를 읽는 중 오류가 생겼습니다.
loading_error=PDF를 로드하는 중 오류가 발생했습니다.
invalid_file_error=유효하지 않거나 파손된 PDF 파일
missing_file_error=PDF 파일이 없습니다.
unexpected_response_error=알 수 없는 서버 응답입니다.
unexpected_response_error=예상치 못한 서버 응답입니다.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}} {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[{{type}} 주석]
password_label=이 PDF 파일을 열 수 있는 호를 입력하십시오.
password_invalid=잘못된 호입니다. 다시 시도해 주십시오.
password_label=이 PDF 파일을 열 수 있는 비밀번호를 입력하십시오.
password_invalid=잘못된 비밀번호입니다. 다시 시도해 주십시오.
password_ok=확인
password_cancel=취소
printing_not_supported=경고: 이 브라우저는 인쇄를 완전히 지원하지 않습니다.
printing_not_ready=경고: 이 PDF를 인쇄를 할 수 있을 정도로 읽어들이지 못했습니다.
web_fonts_disabled=웹 폰트가 꺼져있음: 내장된 PDF 글꼴을 쓸 수 없습니다.
document_colors_not_allowed=PDF 문서의 색상을 쓰지 못하게 되어 있음: '웹 페이지 자체 색상 사용 허용'이 브라우저에서 꺼져 있습니다.
web_fonts_disabled=웹 폰트가 비활성화됨: 내장된 PDF 글꼴을 사용할 수 없습니다.
document_colors_not_allowed=PDF 문서의 자체 색상 허용 안됨: “페이지 자체 색상 허용”이 브라우저에서 비활성화 되어 있습니다.

View File

@ -45,8 +45,8 @@ bookmark.title=Vixon corente (còpia ò arvi inte 'n neuvo barcon)
bookmark_label=Vixon corente
# Secondary toolbar and context menu
tools.title=Strumenti
tools_label=Strumenti
tools.title=Atressi
tools_label=Atressi
first_page.title=Vanni a-a primma pagina
first_page.label=Vanni a-a primma pagina
first_page_label=Vanni a-a primma pagina
@ -82,8 +82,8 @@ spread_even_label=Difuxon pari
# Document properties dialog box
document_properties.title=Propietæ do documento…
document_properties_label=Propietæ do documento…
document_properties_file_name=Nomme file:
document_properties_file_size=Dimenscion file:
document_properties_file_name=Nomme schedaio:
document_properties_file_size=Dimenscion schedaio:
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
document_properties_kb={{size_kb}} kB ({{size_b}} byte)
@ -205,7 +205,7 @@ error_message=Mesaggio: {{message}}
# trace.
error_stack=Stack: {{stack}}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
error_file=File: {{file}}
error_file=Schedaio: {{file}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=Linia: {{line}}
rendering_error=Gh'é stæto 'n'erô itno rendering da pagina.
@ -222,8 +222,8 @@ page_scale_percent={{scale}}%
# Loading indicator messages
loading_error_indicator=Erô
loading_error=S'é verificou 'n'erô itno caregamento do PDF.
invalid_file_error=O file PDF o l'é no valido ò aroinou.
missing_file_error=O file PDF o no gh'é.
invalid_file_error=O schedaio PDF o l'é no valido ò aroinou.
missing_file_error=O schedaio PDF o no gh'é.
unexpected_response_error=Risposta inprevista do-u server
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
@ -231,7 +231,7 @@ unexpected_response_error=Risposta inprevista do-u server
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[Anotaçion: {{type}}]
password_label=Dimme a paròlla segreta pe arvî sto file PDF.
password_label=Dimme a paròlla segreta pe arvî sto schedaio PDF.
password_invalid=Paròlla segreta sbalia. Preuva torna.
password_ok=Va ben
password_cancel=Anulla

View File

@ -226,6 +226,10 @@ invalid_file_error=Tai nėra PDF failas arba jis yra sugadintas.
missing_file_error=PDF failas nerastas.
unexpected_response_error=Netikėtas serverio atsakas.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -65,6 +65,10 @@ cursor_text_select_tool_label=मजकूर निवड साधन
cursor_hand_tool.title=हात साधन कार्यान्वित करा
cursor_hand_tool_label=हस्त साधन
scroll_vertical.title=अनुलंब स्क्रोलिंग वापरा
scroll_vertical_label=अनुलंब स्क्रोलिंग
scroll_horizontal.title=क्षैतिज स्क्रोलिंग वापरा
scroll_horizontal_label=क्षैतिज स्क्रोलिंग
# Document properties dialog box
@ -95,6 +99,7 @@ document_properties_page_size=पृष्ठ आकार:
document_properties_page_size_unit_inches=इंच
document_properties_page_size_unit_millimeters=मीमी
document_properties_page_size_orientation_portrait=उभी मांडणी
document_properties_page_size_orientation_landscape=आडवे
document_properties_page_size_name_a3=A3
document_properties_page_size_name_a4=A4
document_properties_page_size_name_letter=Letter
@ -109,6 +114,7 @@ document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}}
document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})
# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
# the document; usually called "Fast Web View" in English locales of Adobe software.
document_properties_linearized=जलद वेब दृष्य:
document_properties_linearized_yes=हो
document_properties_linearized_no=नाही
document_properties_close=बंद करा
@ -151,8 +157,23 @@ find_next.title=वाकप्रयोगची पुढील घटना
find_next_label=पुढील
find_highlight=सर्व ठळक करा
find_match_case_label=आकार जुळवा
find_entire_word_label=संपूर्ण शब्द
find_reached_top=दस्तऐवजाच्या शीर्षकास पोहचले, तळपासून पुढे
find_reached_bottom=दस्तऐवजाच्या तळाला पोहचले, शीर्षकापासून पुढे
# LOCALIZATION NOTE (find_match_count): The supported plural forms are
# [one|two|few|many|other], with [other] as the default value.
# "{{current}}" and "{{total}}" will be replaced by a number representing the
# index of the currently active find result, respectively a number representing
# the total number of matches in the document.
find_match_count={[ plural(total) ]}
# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
# [zero|one|two|few|many|other], with [other] as the default value.
# "{{limit}}" will be replaced by a numerical value.
find_match_count_limit[zero]={{limit}} पेक्षा अधिक जुळण्या
find_match_count_limit[two]={{limit}} पेक्षा अधिक जुळण्या
find_match_count_limit[few]={{limit}} पेक्षा अधिक जुळण्या
find_match_count_limit[many]={{limit}} पेक्षा अधिक जुळण्या
find_match_count_limit[other]={{limit}} पेक्षा अधिक जुळण्या
find_not_found=वाकप्रयोग आढळले नाही
# Error panel labels

View File

@ -226,6 +226,10 @@ invalid_file_error=Ugyldig eller skadet PDF-fil.
missing_file_error=Manglende PDF-fil.
unexpected_response_error=Uventet serverrespons.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Ongeldig of beschadigd PDF-bestand.
missing_file_error=PDF-bestand ontbreekt.
unexpected_response_error=Onverwacht serverantwoord.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Ugyldig eller korrupt PDF-fil.
missing_file_error=Manglande PDF-fil.
unexpected_response_error=Uventa tenarrespons.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}} {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -168,10 +168,21 @@ find_reached_bottom=ਦਸਤਾਵੇਜ਼ ਦੇ ਅੰਤ ਉੱਤੇ ਆ ਗ
# index of the currently active find result, respectively a number representing
# the total number of matches in the document.
find_match_count={[ plural(total) ]}
find_match_count[one]={{total}} ਵਿੱਚੋਂ {{current}} ਮੇਲ
find_match_count[two]={{total}} ਵਿੱਚੋਂ {{current}} ਮੇਲ
find_match_count[few]={{total}} ਵਿੱਚੋਂ {{current}} ਮੇਲ
find_match_count[many]={{total}} ਵਿੱਚੋਂ {{current}} ਮੇਲ
find_match_count[other]={{total}} ਵਿੱਚੋਂ {{current}} ਮੇਲ
# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
# [zero|one|two|few|many|other], with [other] as the default value.
# "{{limit}}" will be replaced by a numerical value.
find_match_count_limit={[ plural(limit) ]}
find_match_count_limit[zero]={{limit}} ਮੇਲਾਂ ਤੋਂ ਵੱਧ
find_match_count_limit[one]={{limit}} ਮੇਲ ਤੋਂ ਵੱਧ
find_match_count_limit[two]={{limit}} ਮੇਲਾਂ ਤੋਂ ਵੱਧ
find_match_count_limit[few]={{limit}} ਮੇਲਾਂ ਤੋਂ ਵੱਧ
find_match_count_limit[many]={{limit}} ਮੇਲਾਂ ਤੋਂ ਵੱਧ
find_match_count_limit[other]={{limit}} ਮੇਲਾਂ ਤੋਂ ਵੱਧ
find_not_found=ਵਾਕ ਨਹੀਂ ਲੱਭਿਆ
# Error panel labels

View File

@ -12,13 +12,20 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
previous.title=Poprzednia strona
previous_label=Poprzednia
next.title=Następna strona
next_label=Następna
page.title==Strona:
# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
page.title=Strona
# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages in the document.
of_pages=z {{pagesCount}}
# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
page_of_pages=({{pageNumber}} z {{pagesCount}})
zoom_out.title=Pomniejszenie
@ -37,6 +44,7 @@ download_label=Pobierz
bookmark.title=Bieżąca pozycja (skopiuj lub otwórz jako odnośnik w nowym oknie)
bookmark_label=Bieżąca pozycja
# Secondary toolbar and context menu
tools.title=Narzędzia
tools_label=Narzędzia
first_page.title=Przechodzenie do pierwszej strony
@ -59,30 +67,37 @@ cursor_hand_tool_label=Narzędzie rączka
scroll_vertical.title=Przewijaj dokument w pionie
scroll_vertical_label=Przewijanie pionowe
scroll_horizontal_label=Przewijanie poziome
scroll_horizontal.title=Przewijaj dokument w poziomie
scroll_wrapped_label=Widok dwóch stron
scroll_horizontal_label=Przewijanie poziome
scroll_wrapped.title=Strony dokumentu wyświetlaj i przewijaj w kolumnach
scroll_wrapped_label=Widok dwóch stron
spread_none_label=Brak kolumn
spread_none.title=Nie ustawiaj stron obok siebie
spread_odd_label=Nieparzyste po lewej
spread_none_label=Brak kolumn
spread_odd.title=Strony nieparzyste ustawiaj na lewo od parzystych
spread_even_label=Parzyste po lewej
spread_odd_label=Nieparzyste po lewej
spread_even.title=Strony parzyste ustawiaj na lewo od nieparzystych
spread_even_label=Parzyste po lewej
# Document properties dialog box
document_properties.title=Właściwości dokumentu…
document_properties_label=Właściwości dokumentu…
document_properties_file_name=Nazwa pliku:
document_properties_file_size=Rozmiar pliku:
document_properties_kb={{size_kb}} KB ({{size_b}} b)
document_properties_mb={{size_mb}} MB ({{size_b}} b)
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
document_properties_kb={{size_kb}} KB ({{size_b}} B)
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_mb={{size_mb}} MB ({{size_b}} B)
document_properties_title=Tytuł:
document_properties_author=Autor:
document_properties_subject=Temat:
document_properties_keywords=Słowa kluczowe:
document_properties_creation_date=Data utworzenia:
document_properties_modification_date=Data modyfikacji:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
document_properties_date_string={{date}}, {{time}}
document_properties_creator=Utworzony przez:
document_properties_producer=PDF wyprodukowany przez:
@ -97,17 +112,30 @@ document_properties_page_size_name_a3=A3
document_properties_page_size_name_a4=A4
document_properties_page_size_name_letter=US Letter
document_properties_page_size_name_legal=US Legal
document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} (orientacja {{orientation}})
document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, orientacja {{orientation}})
# LOCALIZATION NOTE (document_properties_page_size_dimension_string):
# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement and orientation, of the (current) page.
document_properties_page_size_dimension_string={{width}}×{{height}} {{unit}} (orientacja {{orientation}})
# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string):
# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement, name, and orientation, of the (current) page.
document_properties_page_size_dimension_name_string={{width}}×{{height}} {{unit}} ({{name}}, orientacja {{orientation}})
# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
# the document; usually called "Fast Web View" in English locales of Adobe software.
document_properties_linearized=Szybki podgląd w Internecie:
document_properties_linearized_yes=tak
document_properties_linearized_no=nie
document_properties_close=Zamknij
print_progress_message=Przygotowywanie dokumentu do druku…
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
print_progress_percent={{progress}}%
print_progress_close=Anuluj
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Przełączanie panelu bocznego
toggle_sidebar_notification.title=Przełączanie panelu bocznego (dokument zawiera konspekt/załączniki)
toggle_sidebar_label=Przełącz panel boczny
@ -120,26 +148,40 @@ thumbs_label=Miniaturki
findbar.title=Znajdź w dokumencie
findbar_label=Znajdź
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title=Strona {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
thumb_page_canvas=Miniaturka strony {{page}}
# Find panel button title and messages
find_input.title=Wyszukiwanie
find_input.placeholder=Szukaj w dokumencie…
find_input.placeholder=Znajdź w dokumencie…
find_previous.title=Znajdź poprzednie wystąpienie tekstu
find_previous_label=Poprzednie
find_next.title=Znajdź następne wystąpienie tekstu
find_next_label=Następne
find_highlight=Podświetl wszystkie
find_highlight=Wyróżnianie wszystkich
find_match_case_label=Rozróżnianie wielkości liter
find_entire_word_label=Całe słowa
find_reached_top=Początek dokumentu. Wyszukiwanie od końca.
find_reached_bottom=Koniec dokumentu. Wyszukiwanie od początku.
# LOCALIZATION NOTE (find_match_count): The supported plural forms are
# [one|two|few|many|other], with [other] as the default value.
# "{{current}}" and "{{total}}" will be replaced by a number representing the
# index of the currently active find result, respectively a number representing
# the total number of matches in the document.
find_match_count={[ plural(total) ]}
find_match_count[one]=Pierwsze z {{total}} trafień
find_match_count[two]=Drugie z {{total}} trafień
find_match_count[few]={{current}}. z {{total}} trafień
find_match_count[many]={{current}}. z {{total}} trafień
find_match_count[other]={{current}}. z {{total}} trafień
# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
# [zero|one|two|few|many|other], with [other] as the default value.
# "{{limit}}" will be replaced by a numerical value.
find_match_count_limit={[ plural(limit) ]}
find_match_count_limit[zero]=Brak trafień.
find_match_count_limit[one]=Więcej niż jedno trafienie.
@ -149,28 +191,49 @@ find_match_count_limit[many]=Więcej niż {{limit}} trafień.
find_match_count_limit[other]=Więcej niż {{limit}} trafień.
find_not_found=Nie znaleziono tekstu
# Error panel labels
error_more_info=Więcej informacji
error_less_info=Mniej informacji
error_close=Zamknij
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
error_version_info=PDF.js v{{version}} (kompilacja: {{build}})
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
error_message=Wiadomość: {{message}}
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
error_stack=Stos: {{stack}}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
error_file=Plik: {{file}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=Wiersz: {{line}}
rendering_error=Podczas renderowania strony wystąpił błąd.
# Predefined zoom values
page_scale_width=Szerokość strony
page_scale_fit=Dopasowanie strony
page_scale_auto=Skala automatyczna
page_scale_actual=Rozmiar rzeczywisty
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
page_scale_percent={{scale}}%
# Loading indicator messages
loading_error_indicator=Błąd
loading_error=Podczas wczytywania dokumentu PDF wystąpił błąd.
invalid_file_error=Nieprawidłowy lub uszkodzony plik PDF.
missing_file_error=Brak pliku PDF.
unexpected_response_error=Nieoczekiwana odpowiedź serwera.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[Adnotacja: {{type}}]
password_label=Wprowadź hasło, aby otworzyć ten dokument PDF.
password_invalid=Nieprawidłowe hasło. Proszę spróbować ponownie.

View File

@ -226,6 +226,10 @@ invalid_file_error=Arquivo PDF corrompido ou inválido.
missing_file_error=Arquivo PDF ausente.
unexpected_response_error=Resposta inesperada do servidor.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
@ -238,5 +242,5 @@ password_cancel=Cancelar
printing_not_supported=Aviso: a impressão não é totalmente suportada neste navegador.
printing_not_ready=Aviso: o PDF não está totalmente carregado para impressão.
web_fonts_disabled=As fontes web estão desabilitadas: não foi possível usar fontes incorporadas do PDF.
document_colors_not_allowed=Os documentos em PDF não estão autorizados a usar suas próprias cores: “Permitir que as páginas escolham suas próprias cores” está desabilitado no navegador.
web_fonts_disabled=As fontes web estão desativadas: não foi possível usar fontes incorporadas do PDF.
document_colors_not_allowed=Documentos PDF não estão autorizados a usar as próprias cores: a opção “Permitir que as páginas escolham suas próprias cores” está desativada no navegador.

View File

@ -140,7 +140,7 @@ toggle_sidebar.title=Alternar barra lateral
toggle_sidebar_notification.title=Alternar barra lateral (documento contém contorno/anexos)
toggle_sidebar_label=Alternar barra lateral
document_outline.title=Mostrar esquema do documento (duplo clique para expandir/colapsar todos os itens)
document_outline_label=Estrutura do documento
document_outline_label=Esquema do documento
attachments.title=Mostrar anexos
attachments_label=Anexos
thumbs.title=Mostrar miniaturas
@ -226,6 +226,10 @@ invalid_file_error=Ficheiro PDF inválido ou danificado.
missing_file_error=Ficheiro PDF inexistente.
unexpected_response_error=Resposta inesperada do servidor.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -83,7 +83,7 @@ spread_even_label=Broșare pagini pare
document_properties.title=Proprietățile documentului…
document_properties_label=Proprietățile documentului…
document_properties_file_name=Numele fișierului:
document_properties_file_size=Dimensiunea fișierului:
document_properties_file_size=Mărimea fișierului:
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
document_properties_kb={{size_kb}} KB ({{size_b}} byți)
@ -103,7 +103,7 @@ document_properties_creator=Autor:
document_properties_producer=Producător PDF:
document_properties_version=Versiune PDF:
document_properties_page_count=Număr de pagini:
document_properties_page_size=Dimensiunea paginii:
document_properties_page_size=Mărimea paginii:
document_properties_page_size_unit_inches=in
document_properties_page_size_unit_millimeters=mm
document_properties_page_size_orientation_portrait=portret
@ -214,7 +214,7 @@ rendering_error=A intervenit o eroare la randarea paginii.
page_scale_width=Lățimea paginii
page_scale_fit=Potrivire la pagină
page_scale_auto=Zoom automat
page_scale_actual=Dimensiune reală
page_scale_actual=Mărime reală
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
page_scale_percent={{scale}}%
@ -226,6 +226,10 @@ invalid_file_error=Fișier PDF nevalid sau corupt.
missing_file_error=Fișier PDF lipsă.
unexpected_response_error=Răspuns neașteptat de la server.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Некорректный или повреждённый PDF-
missing_file_error=PDF-файл отсутствует.
unexpected_response_error=Неожиданный ответ сервера.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -58,6 +58,9 @@ page_rotate_ccw.title=වාමාවර්තව භ්‍රමණය
page_rotate_ccw.label=වාමාවර්තව භ්‍රමණය
page_rotate_ccw_label=වාමාවර්තව භ්‍රමණය
cursor_hand_tool_label=අත් මෙවලම
# Document properties dialog box
document_properties.title=ලේඛන වත්කම්...
@ -83,11 +86,32 @@ document_properties_creator=නිර්මාපක:
document_properties_producer=PDF නිශ්පාදක:
document_properties_version=PDF නිකුතුව:
document_properties_page_count=පිටු ගණන:
document_properties_page_size=පිටුවේ විශාලත්වය:
document_properties_page_size_unit_inches=අඟල්
document_properties_page_size_unit_millimeters=මිමි
document_properties_page_size_orientation_portrait=සිරස්
document_properties_page_size_orientation_landscape=තිරස්
document_properties_page_size_name_a3=A3
document_properties_page_size_name_a4=A4
# LOCALIZATION NOTE (document_properties_page_size_dimension_string):
# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement and orientation, of the (current) page.
document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}})
# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string):
# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement, name, and orientation, of the (current) page.
document_properties_page_size_dimension_name_string={{width}}×{{height}}{{unit}}{{name}}{{orientation}}
# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
# the document; usually called "Fast Web View" in English locales of Adobe software.
document_properties_linearized=වේගවත් ජාල දසුන:
document_properties_linearized_yes=ඔව්
document_properties_linearized_no=නැහැ
document_properties_close=වසන්න
print_progress_message=ලේඛනය මුද්‍රණය සඳහා සූදානම් කරමින්…
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
print_progress_percent={{progress}}%
print_progress_close=අවලංගු කරන්න
# Tooltips and alt text for side panel toolbar buttons
@ -95,6 +119,7 @@ print_progress_close=අවලංගු කරන්න
# tooltips)
toggle_sidebar.title=පැති තීරුවට මාරුවන්න
toggle_sidebar_label=පැති තීරුවට මාරුවන්න
document_outline_label=ලේඛනයේ පිට මායිම
attachments.title=ඇමිණුම් පෙන්වන්න
attachments_label=ඇමිණුම්
thumbs.title=සිඟිති රූ පෙන්වන්න
@ -111,14 +136,25 @@ thumb_page_title=පිටුව {{page}}
thumb_page_canvas=පිටුවෙ සිඟිත රූව {{page}}
# Find panel button title and messages
find_input.title=සොයන්න
find_previous.title=මේ වාක්‍ය ඛණ්ඩය මීට පෙර යෙදුණු ස්ථානය සොයන්න
find_previous_label=පෙර:
find_next.title=මේ වාක්‍ය ඛණ්ඩය මීළඟට යෙදෙන ස්ථානය සොයන්න
find_next_label=මීළඟ
find_highlight=සියල්ල උද්දීපනය
find_match_case_label=අකුරු ගළපන්න
find_entire_word_label=සම්පූර්ණ වචන
find_reached_top=පිටුවේ ඉහළ කෙළවරට ලගාවිය, පහළ සිට ඉදිරියට යමින්
find_reached_bottom=පිටුවේ පහළ කෙළවරට ලගාවිය, ඉහළ සිට ඉදිරියට යමින්
# LOCALIZATION NOTE (find_match_count): The supported plural forms are
# [one|two|few|many|other], with [other] as the default value.
# "{{current}}" and "{{total}}" will be replaced by a number representing the
# index of the currently active find result, respectively a number representing
# the total number of matches in the document.
# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
# [zero|one|two|few|many|other], with [other] as the default value.
# "{{limit}}" will be replaced by a numerical value.
find_match_count_limit[zero]=ගැලපුම් {{limit}} ට වඩා
find_not_found=ඔබ සෙව් වචන හමු නොවීය
# Error panel labels

View File

@ -226,6 +226,10 @@ invalid_file_error=Neplatný alebo poškodený súbor PDF.
missing_file_error=Chýbajúci súbor PDF.
unexpected_response_error=Neočakávaná odpoveď zo servera.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -53,12 +53,12 @@ first_page_label=Pojdi na prvo stran
last_page.title=Pojdi na zadnjo stran
last_page.label=Pojdi na zadnjo stran
last_page_label=Pojdi na zadnjo stran
page_rotate_cw.title=Zavrti v smeri urninega kazalca
page_rotate_cw.label=Zavrti v smeri urninega kazalca
page_rotate_cw_label=Zavrti v smeri urninega kazalca
page_rotate_ccw.title=Zavrti v nasprotni smeri urninega kazalca
page_rotate_ccw.label=Zavrti v nasprotni smeri urninega kazalca
page_rotate_ccw_label=Zavrti v nasprotni smeri urninega kazalca
page_rotate_cw.title=Zavrti v smeri urnega kazalca
page_rotate_cw.label=Zavrti v smeri urnega kazalca
page_rotate_cw_label=Zavrti v smeri urnega kazalca
page_rotate_ccw.title=Zavrti v nasprotni smeri urnega kazalca
page_rotate_ccw.label=Zavrti v nasprotni smeri urnega kazalca
page_rotate_ccw_label=Zavrti v nasprotni smeri urnega kazalca
cursor_text_select_tool.title=Omogoči orodje za izbor besedila
cursor_text_select_tool_label=Orodje za izbor besedila
@ -226,6 +226,10 @@ invalid_file_error=Neveljavna ali pokvarjena datoteka PDF.
missing_file_error=Ni datoteke PDF.
unexpected_response_error=Nepričakovan odgovor strežnika.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -219,6 +219,10 @@ invalid_file_error=Kartelë PDF e pavlefshme ose e dëmtuar.
missing_file_error=Kartelë PDF që mungon.
unexpected_response_error=Përgjigje shërbyesi e papritur.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Ogiltig eller korrupt PDF-fil.
missing_file_error=Saknad PDF-fil.
unexpected_response_error=Oväntat svar från servern.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}} {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -202,6 +202,10 @@ invalid_file_error=చెల్లని లేదా పాడైన PDF ఫై
missing_file_error=దొరకని PDF ఫైలు.
unexpected_response_error=అనుకోని సర్వర్ స్పందన.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=ไฟล์ PDF ไม่ถูกต้องหรือ
missing_file_error=ไฟล์ PDF หายไป
unexpected_response_error=การตอบสนองของเซิร์ฟเวอร์ที่ไม่คาดคิด
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -137,10 +137,10 @@ print_progress_close=İptal
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Kenar çubuğunu aç/kapat
toggle_sidebar_notification.title=Kenar çubuğunu aç/kapat (Belge anahat/ekler içeriyor)
toggle_sidebar_notification.title=Kenar çubuğunu aç/kapat (Belge ana hat/ekler içeriyor)
toggle_sidebar_label=Kenar çubuğunu aç/kapat
document_outline.title=Belge şemasını göster (Tüm öğeleri genişletmek/daraltmak için çift tıklayın)
document_outline_label=Belge şeması
document_outline.title=Belge ana hatlarını göster (Tüm öğeleri genişletmek/daraltmak için çift tıklayın)
document_outline_label=Belge ana hatları
attachments.title=Ekleri göster
attachments_label=Ekler
thumbs.title=Küçük resimleri göster
@ -226,6 +226,10 @@ invalid_file_error=Geçersiz veya bozulmuş PDF dosyası.
missing_file_error=PDF dosyası eksik.
unexpected_response_error=Beklenmeyen sunucu yanıtı.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=Недійсний або пошкоджений PDF-файл
missing_file_error=Відсутній PDF-файл.
unexpected_response_error=Неочікувана відповідь сервера.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -93,6 +93,7 @@ document_properties_page_size_unit_millimeters=mm
document_properties_page_size_orientation_portrait=عمودی انداز
document_properties_page_size_name_a3=A3
document_properties_page_size_name_a4=A4
document_properties_page_size_name_letter=خط
document_properties_page_size_name_legal=قانونی
# LOCALIZATION NOTE (document_properties_page_size_dimension_string):
# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by
@ -191,6 +192,9 @@ invalid_file_error=ناجائز یا خراب PDF مسل
missing_file_error=PDF مسل غائب ہے۔
unexpected_response_error=غیرمتوقع پیش کار جواب
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -13,7 +13,7 @@
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
previous.title=Trang Trước
previous.title=Trang trước
previous_label=Trước
next.title=Trang Sau
next_label=Tiếp
@ -69,7 +69,15 @@ scroll_vertical.title=Sử dụng cuộn dọc
scroll_vertical_label=Cuộn dọc
scroll_horizontal.title=Sử dụng cuộn ngang
scroll_horizontal_label=Cuộn ngang
scroll_wrapped.title=Sử dụng cuộn ngắt dòng
scroll_wrapped_label=Cuộn ngắt dòng
spread_none.title=Không nối rộng trang
spread_none_label=Không có phân cách
spread_odd.title=Nối trang bài bắt đầu với các trang được đánh số lẻ
spread_odd_label=Phân cách theo số lẻ
spread_even.title=Nối trang bài bắt đầu với các trang được đánh số chẵn
spread_even_label=Phân cách theo số chẵn
# Document properties dialog box
document_properties.title=Thuộc tính của tài liệu…
@ -102,6 +110,7 @@ document_properties_page_size_orientation_portrait=khổ dọc
document_properties_page_size_orientation_landscape=khổ ngang
document_properties_page_size_name_a3=A3
document_properties_page_size_name_a4=A4
document_properties_page_size_name_letter=Thư
document_properties_page_size_name_legal=Pháp lý
# LOCALIZATION NOTE (document_properties_page_size_dimension_string):
# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by
@ -217,6 +226,10 @@ invalid_file_error=Tập tin PDF hỏng hoặc không hợp lệ.
missing_file_error=Thiếu tập tin PDF.
unexpected_response_error=Máy chủ có phản hồi lạ.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -226,6 +226,10 @@ invalid_file_error=无效或损坏的 PDF 文件。
missing_file_error=缺少 PDF 文件。
unexpected_response_error=意外的服务器响应。
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}{{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
@ -237,6 +241,6 @@ password_ok=确定
password_cancel=取消
printing_not_supported=警告:此浏览器尚未完整支持打印功能。
printing_not_ready=警告:该 PDF 未完全载入以供打印。
printing_not_ready=警告:此 PDF 未完成载入,无法打印。
web_fonts_disabled=Web 字体已被禁用:无法使用嵌入的 PDF 字体。
document_colors_not_allowed=PDF 文档无法使用自己的颜色:浏览器中“允许页面选择自己的颜色”的选项未被勾选。

View File

@ -226,6 +226,10 @@ invalid_file_error=無效或毀損的 PDF 檔案。
missing_file_error=找不到 PDF 檔案。
unexpected_response_error=伺服器回應未預期的內容。
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}} {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).

View File

@ -1,4 +1,3 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web)

View File

@ -31,20 +31,21 @@ See https://github.com/adobe-type-tools/cmap-resources
<link rel="stylesheet" href="{{ url_for('static', filename='css/libs/viewer.css') }}">
<script src="{{ url_for('static', filename='js/libs/compatibility.js') }}"></script>
<!--script src="{{ url_for('static', filename='js/libs/compatibility.js') }}"></script-->
<!-- This snippet is used in production (included from viewer.html) -->
<script src="{{ url_for('static', filename='js/libs/pdf.js') }}"></script>
<!-- This snippet is used in production (included from viewer.html) -->
<link rel="resource" type="application/l10n" href="{{ url_for('static', filename='locale/locale.properties') }}">
<script src="{{ url_for('static', filename='js/libs/pdf.js') }}"></script>
<script type="text/javascript">
window.addEventListener('load', function() {
PDFViewerApplicationOptions.set('sidebarViewOnLoad', 0);
PDFViewerApplicationOptions.set('imageResourcesPath', "{{ url_for('static', filename='css/images/') }}");
PDFViewerApplicationOptions.set('workerSrc', "{{ url_for('static', filename='js/libs/pdf.worker.js') }}");
PDFViewerApplication.open("{{ url_for('web.serve_book', book_id=pdffile, book_format='pdf') }}");
PDFViewerApplicationOptions.set('defaultUrl',"{{ url_for('web.serve_book', book_id=pdffile, book_format='pdf') }}")
});
</script>
<link rel="resource" type="application/l10n" href="{{ url_for('static', filename='locale/locale.properties') }}">
<script src="{{ url_for('static', filename='js/libs/viewer.js') }}"></script>
</head>
@ -52,7 +53,7 @@ See https://github.com/adobe-type-tools/cmap-resources
<body tabindex="1" class="loadingInProgress">
<div id="outerContainer">
<div id="sidebarContainer" class="">
<div id="sidebarContainer">
<div id="toolbarSidebar">
<div class="splitToolbarButton toggled">
<button id="viewThumbnail" class="toolbarButton toggled" title="Show Thumbnails" tabindex="2" data-l10n-id="thumbs">
@ -118,13 +119,14 @@ See https://github.com/adobe-type-tools/cmap-resources
<button id="secondaryOpenFile" class="secondaryToolbarButton openFile visibleLargeView" title="Open File" tabindex="52" data-l10n-id="open_file">
<span data-l10n-id="open_file_label">Open</span>
</button>
{% if g.user.role_download() %}
<button id="secondaryPrint" class="secondaryToolbarButton print visibleMediumView" title="Print" tabindex="53" data-l10n-id="print">
<span data-l10n-id="print_label">Print</span>
</button>
<button id="secondaryDownload" class="secondaryToolbarButton download visibleMediumView" title="Download" tabindex="54" data-l10n-id="download" {% if not g.user.role_download() %} style="display:none;" {% endif %}>
<button id="secondaryDownload" class="secondaryToolbarButton download visibleMediumView" title="Download" tabindex="54" data-l10n-id="download">
<span data-l10n-id="download_label">Download</span>
</button>
{% endif %}
<a href="#" id="secondaryViewBookmark" class="secondaryToolbarButton bookmark visibleSmallView" title="Current view (copy or open in new window)" tabindex="55" data-l10n-id="bookmark">
<span data-l10n-id="bookmark_label">Current View</span>
</a>
@ -219,15 +221,14 @@ See https://github.com/adobe-type-tools/cmap-resources
<button id="openFile" class="toolbarButton openFile hiddenLargeView" title="Open File" tabindex="32" data-l10n-id="open_file">
<span data-l10n-id="open_file_label">Open</span>
</button>
{% if g.user.role_download() %}
<button id="print" class="toolbarButton print hiddenMediumView" title="Print" tabindex="33" data-l10n-id="print">
<span data-l10n-id="print_label">Print</span>
</button>
<button id="download" class="toolbarButton download hiddenMediumView" title="Download" tabindex="34" data-l10n-id="download" {% if not g.user.role_download() %} style="display:none;" {% endif %}>
<button id="download" class="toolbarButton download hiddenMediumView" title="Download" tabindex="34" data-l10n-id="download">
<span data-l10n-id="download_label">Download</span>
</button>
{% endif %}
<a href="#" id="viewBookmark" class="toolbarButton bookmark hiddenSmallView" title="Current view (copy or open in new window)" tabindex="35" data-l10n-id="bookmark">
<span data-l10n-id="bookmark_label">Current View</span>
</a>

View File

@ -28,8 +28,8 @@
</div>
{% endfor %}
</div>
<button onclick="sendData('{{ url_for('shelf.order_shelf', shelf_id=shelf.id) }}')" class="btn btn-default" id="ChangeOrder">{{_('Change Order')}}</button>
<a href="{{ url_for('shelf.show_shelf', shelf_id=shelf.id) }}" class="btn btn-default">{{_('Cancel')}}</a>
<button onclick="sendData('{{ url_for('shelf.order_shelf', shelf_id=shelf.id) }}')" class="btn btn-default" id="ChangeOrder">{{_('Change order')}}</button>
<a href="{{ url_for('shelf.show_shelf', shelf_id=shelf.id) }}" id="shelf_back" class="btn btn-default">{{_('Back')}}</a>
</div>
{% endblock %}

View File

@ -141,7 +141,7 @@
{% for entry in downloads %}
<div class="col-sm-2">
<a class="pull-left" href="{{ url_for('web.show_book', book_id=entry.id) }}">
<img class="media-object" width="100" src="{{ url_for('web.get_cover', book_id=entry.id) }}" alt="...">
<img class="media-object cover-small" src="{{ url_for('web.get_cover', book_id=entry.id) }}" alt="...">
</a>
</div>
{% endfor %}

View File

@ -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: 2020-02-01 15:02+0100\n"
"POT-Creation-Date: 2020-02-16 18:54+0100\n"
"PO-Revision-Date: 2020-01-08 11:37+0000\n"
"Last-Translator: Lukas Heroudek <lukas.heroudek@gmail.com>\n"
"Language: cs_CZ\n"
@ -15,7 +15,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.7.0\n"
"Generated-By: Babel 2.8.0\n"
#: cps/about.py:42
msgid "installed"
@ -29,173 +29,173 @@ msgstr "není nainstalováno"
msgid "Statistics"
msgstr "Statistika"
#: cps/admin.py:89
#: cps/admin.py:88
msgid "Server restarted, please reload page"
msgstr "Server restartován, znovu načtěte stránku"
#: cps/admin.py:91
#: cps/admin.py:90
msgid "Performing shutdown of server, please close window"
msgstr "Vypínám server, zavřete okno"
#: cps/admin.py:110 cps/editbooks.py:410 cps/editbooks.py:419
#: cps/admin.py:109 cps/editbooks.py:410 cps/editbooks.py:419
#: cps/editbooks.py:539 cps/editbooks.py:541 cps/editbooks.py:594
#: cps/updater.py:446 cps/uploader.py:97 cps/uploader.py:108
#: cps/updater.py:445 cps/uploader.py:96 cps/uploader.py:107
msgid "Unknown"
msgstr "Neznámý"
#: cps/admin.py:129
#: cps/admin.py:128
msgid "Admin page"
msgstr "Stránka správce"
#: cps/admin.py:148 cps/templates/admin.html:115
#: cps/admin.py:147 cps/templates/admin.html:115
msgid "UI Configuration"
msgstr "Konfigurace uživatelského rozhraní"
#: cps/admin.py:185 cps/admin.py:412
#: cps/admin.py:184 cps/admin.py:411
msgid "Calibre-Web configuration updated"
msgstr "Konfigurace Calibre-Web aktualizována"
#: cps/admin.py:442 cps/templates/admin.html:114
#: cps/admin.py:441 cps/templates/admin.html:114
msgid "Basic Configuration"
msgstr "Základní konfigurace"
#: cps/admin.py:465 cps/web.py:1090
#: cps/admin.py:464 cps/web.py:1089
msgid "Please fill out all fields!"
msgstr "Vyplňte všechna pole!"
#: cps/admin.py:467 cps/admin.py:478 cps/admin.py:484 cps/admin.py:499
#: cps/admin.py:466 cps/admin.py:477 cps/admin.py:483 cps/admin.py:498
#: cps/templates/admin.html:38
msgid "Add new user"
msgstr "Přidat nového uživatele"
#: cps/admin.py:476 cps/web.py:1315
#: cps/admin.py:475 cps/web.py:1314
msgid "E-mail is not from valid domain"
msgstr "E-mail není z platné domény"
#: cps/admin.py:482 cps/admin.py:493
#: cps/admin.py:481 cps/admin.py:492
msgid "Found an existing account for this e-mail address or nickname."
msgstr "Byl nalezen existující účet pro tuto e-mailovou adresu nebo přezdívku."
#: cps/admin.py:489
#: cps/admin.py:488
#, python-format
msgid "User '%(user)s' created"
msgstr "Uživatel '%(user)s' vytvořen"
#: cps/admin.py:509
#: cps/admin.py:508
msgid "Edit e-mail server settings"
msgstr "Změnit nastavení e-mailového serveru"
#: cps/admin.py:535
#: cps/admin.py:534
#, python-format
msgid "Test e-mail successfully send to %(kindlemail)s"
msgstr "Zkušební e-mail úspěšně odeslán na %(kindlemail)s"
#: cps/admin.py:538
#: cps/admin.py:537
#, python-format
msgid "There was an error sending the Test e-mail: %(res)s"
msgstr "Při odesílání zkušebního e-mailu došlo k chybě: %(res)s"
#: cps/admin.py:540
#: cps/admin.py:539
msgid "Please configure your e-mail address first..."
msgstr "Prvně nastavte svou e-mailovou adresu..."
#: cps/admin.py:542
#: cps/admin.py:541
msgid "E-mail server settings updated"
msgstr "Nastavení e-mailového serveru aktualizováno"
#: cps/admin.py:571
#: cps/admin.py:570
#, python-format
msgid "User '%(nick)s' deleted"
msgstr "Uživatel '%(nick)s' smazán"
#: cps/admin.py:574
#: cps/admin.py:573
msgid "No admin user remaining, can't delete user"
msgstr "Nezbývá žádný správce, nemůžete jej odstranit"
#: cps/admin.py:612 cps/web.py:1356
#: cps/admin.py:611 cps/web.py:1355
msgid "Found an existing account for this e-mail address."
msgstr "Byl nalezen existující účet pro tuto e-mailovou adresu."
#: cps/admin.py:616 cps/admin.py:630 cps/admin.py:644 cps/web.py:1331
#: cps/admin.py:615 cps/admin.py:629 cps/admin.py:643 cps/web.py:1330
#, python-format
msgid "Edit User %(nick)s"
msgstr "Upravit uživatele %(nick)s"
#: cps/admin.py:622 cps/web.py:1324
#: cps/admin.py:621 cps/web.py:1323
msgid "This username is already taken"
msgstr "Toto uživatelské jméno je již použito"
#: cps/admin.py:637
#: cps/admin.py:636
#, python-format
msgid "User '%(nick)s' updated"
msgstr "Uživatel '%(nick)s' aktualizován"
#: cps/admin.py:640
#: cps/admin.py:639
msgid "An unknown error occured."
msgstr "Došlo k neznámé chybě."
#: cps/admin.py:657
#: cps/admin.py:656
#, python-format
msgid "Password for user %(user)s reset"
msgstr "Heslo pro uživatele %(user)s resetováno"
#: cps/admin.py:660 cps/web.py:1115 cps/web.py:1171
#: cps/admin.py:659 cps/web.py:1114 cps/web.py:1170
msgid "An unknown error occurred. Please try again later."
msgstr "Neznámá chyba. Opakujte prosím později."
#: cps/admin.py:663 cps/web.py:1059
#: cps/admin.py:662 cps/web.py:1058
msgid "Please configure the SMTP mail settings first..."
msgstr "Nejprve nakonfigurujte nastavení pošty SMTP..."
#: cps/admin.py:675
#: cps/admin.py:674
msgid "Logfile viewer"
msgstr "Prohlížeč log souborů"
#: cps/admin.py:714
#: cps/admin.py:713
msgid "Requesting update package"
msgstr "Požadování balíčku aktualizace"
#: cps/admin.py:715
#: cps/admin.py:714
msgid "Downloading update package"
msgstr "Stahování balíčku aktualizace"
#: cps/admin.py:716
#: cps/admin.py:715
msgid "Unzipping update package"
msgstr "Rozbalování balíčku aktualizace"
#: cps/admin.py:717
#: cps/admin.py:716
msgid "Replacing files"
msgstr "Nahrazování souborů"
#: cps/admin.py:718
#: cps/admin.py:717
msgid "Database connections are closed"
msgstr "Databázová připojení jsou uzavřena"
#: cps/admin.py:719
#: cps/admin.py:718
msgid "Stopping server"
msgstr "Zastavuji server"
#: cps/admin.py:720
#: cps/admin.py:719
msgid "Update finished, please press okay and reload page"
msgstr "Aktualizace dokončena, klepněte na tlačítko OK a znovu načtěte stránku"
#: cps/admin.py:721 cps/admin.py:722 cps/admin.py:723 cps/admin.py:724
#: cps/admin.py:720 cps/admin.py:721 cps/admin.py:722 cps/admin.py:723
msgid "Update failed:"
msgstr "Aktualizace selhala:"
#: cps/admin.py:721 cps/updater.py:272 cps/updater.py:457 cps/updater.py:459
#: cps/admin.py:720 cps/updater.py:271 cps/updater.py:456 cps/updater.py:458
msgid "HTTP Error"
msgstr "HTTP chyba"
#: cps/admin.py:722 cps/updater.py:274 cps/updater.py:461
#: cps/admin.py:721 cps/updater.py:273 cps/updater.py:460
msgid "Connection error"
msgstr "Chyba připojení"
#: cps/admin.py:723 cps/updater.py:276 cps/updater.py:463
#: cps/admin.py:722 cps/updater.py:275 cps/updater.py:462
msgid "Timeout while establishing connection"
msgstr "Vypršel časový limit při navazování spojení"
#: cps/admin.py:724 cps/updater.py:278 cps/updater.py:465
#: cps/admin.py:723 cps/updater.py:277 cps/updater.py:464
msgid "General error"
msgstr "Všeobecná chyba"
@ -294,11 +294,11 @@ msgstr "Kniha byla úspěšně zařazena do fronty pro převod do %(book_format)
msgid "There was an error converting this book: %(res)s"
msgstr "Při převodu této knihy došlo k chybě: %(res)s"
#: cps/gdrive.py:62
#: cps/gdrive.py:61
msgid "Google Drive setup not completed, try to deactivate and activate Google Drive again"
msgstr "Google Drive nastavení nebylo dokončeno, zkuste znovu deaktivovat a aktivovat Google Drive"
#: cps/gdrive.py:104
#: cps/gdrive.py:103
msgid "Callback domain is not verified, please follow steps to verify domain in google developer console"
msgstr "Doména zpětného volání není ověřena, postupujte podle pokynů k ověření domény v konzole pro vývojáře google"
@ -424,47 +424,47 @@ msgstr "Nahrát:"
msgid "Unknown Task: "
msgstr "Neznámá úloha:"
#: cps/oauth_bb.py:75
#: cps/oauth_bb.py:74
#, python-format
msgid "Register with %(provider)s"
msgstr "Registrovat s %(provider)s"
#: cps/oauth_bb.py:155
#: cps/oauth_bb.py:154
msgid "Failed to log in with GitHub."
msgstr "Přihlášení pomocí GitHub selhalo"
#: cps/oauth_bb.py:160
#: cps/oauth_bb.py:159
msgid "Failed to fetch user info from GitHub."
msgstr "Nepodařilo se načíst informace o uživateli z GitHub"
#: cps/oauth_bb.py:171
#: cps/oauth_bb.py:170
msgid "Failed to log in with Google."
msgstr "Přihlášení pomocí Google selhalo"
#: cps/oauth_bb.py:176
#: cps/oauth_bb.py:175
msgid "Failed to fetch user info from Google."
msgstr "Nepodařilo se načíst informace o uživateli z Google"
#: cps/oauth_bb.py:274
#: cps/oauth_bb.py:273
#, python-format
msgid "Unlink to %(oauth)s success."
msgstr "Odpojení %(oauth)s úspěšné."
#: cps/oauth_bb.py:278
#: cps/oauth_bb.py:277
#, python-format
msgid "Unlink to %(oauth)s failed."
msgstr "Odpojení %(oauth)s neúspěšné."
#: cps/oauth_bb.py:281
#: cps/oauth_bb.py:280
#, python-format
msgid "Not linked to %(oauth)s."
msgstr "Není propojeno s %(oauth)s."
#: cps/oauth_bb.py:309
#: cps/oauth_bb.py:308
msgid "GitHub Oauth error, please retry later."
msgstr "GitHub Oauth chyba, prosím opakujte později"
#: cps/oauth_bb.py:328
#: cps/oauth_bb.py:327
msgid "Google Oauth error, please retry later."
msgstr "Google Oauth chyba, prosím opakujte později"
@ -515,403 +515,403 @@ msgstr "Knihy byly přidány do police: %(sname)s"
msgid "Could not add books to shelf: %(sname)s"
msgstr "Nelze přidat knihy do police: %(sname)s"
#: cps/shelf.py:180
#: cps/shelf.py:181
#, python-format
msgid "Book has been removed from shelf: %(sname)s"
msgstr "Kniha byla odebrána z police: %(sname)s"
#: cps/shelf.py:186
#: cps/shelf.py:187
#, python-format
msgid "Sorry you are not allowed to remove a book from this shelf: %(sname)s"
msgstr "Lituji, nejste oprávněni odebrat knihu z této police: %(sname)s"
#: cps/shelf.py:207 cps/shelf.py:231
#: cps/shelf.py:208 cps/shelf.py:232
#, python-format
msgid "A shelf with the name '%(title)s' already exists."
msgstr "Police s názvem '%(title)s' již existuje."
#: cps/shelf.py:212
#: cps/shelf.py:213
#, python-format
msgid "Shelf %(title)s created"
msgstr "Police %(title)s vytvořena"
#: cps/shelf.py:214 cps/shelf.py:242
#: cps/shelf.py:215 cps/shelf.py:243
msgid "There was an error"
msgstr "Došlo k chybě"
#: cps/shelf.py:215 cps/shelf.py:217
#: cps/shelf.py:216 cps/shelf.py:218
msgid "create a shelf"
msgstr "vytvořit polici"
#: cps/shelf.py:240
#: cps/shelf.py:241
#, python-format
msgid "Shelf %(title)s changed"
msgstr "Police %(title)s změněna"
#: cps/shelf.py:243 cps/shelf.py:245
#: cps/shelf.py:244 cps/shelf.py:246
msgid "Edit a shelf"
msgstr "Upravit polici"
#: cps/shelf.py:289
#: cps/shelf.py:296
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Police: '%(name)s'"
#: cps/shelf.py:292
#: cps/shelf.py:299
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "Chyba otevírání police. Police neexistuje nebo není přístupná"
#: cps/shelf.py:323
#: cps/shelf.py:333
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Změnit pořadí Police: '%(name)s'"
#: cps/ub.py:57
#: cps/ub.py:56
msgid "Recently Added"
msgstr "Nedávno přidáné"
#: cps/ub.py:59
#: cps/ub.py:58
msgid "Show recent books"
msgstr "Zobrazit nedávné knihy"
#: cps/templates/index.xml:17 cps/ub.py:60
#: cps/templates/index.xml:17 cps/ub.py:59
msgid "Hot Books"
msgstr "Žhavé knihy"
#: cps/ub.py:61
#: cps/ub.py:60
msgid "Show hot books"
msgstr "Zobrazit žhavé knihy"
#: cps/templates/index.xml:24 cps/ub.py:64
#: cps/templates/index.xml:24 cps/ub.py:63
msgid "Best rated Books"
msgstr "Nejlépe hodnocené knihy"
#: cps/ub.py:66
#: cps/ub.py:65
msgid "Show best rated books"
msgstr "Zobrazit nejlépe hodnocené knihy"
#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:67
#: cps/web.py:1009
#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:66
#: cps/web.py:1008
msgid "Read Books"
msgstr "Přečtené knihy"
#: cps/ub.py:69
#: cps/ub.py:68
msgid "Show read and unread"
msgstr "Zobrazit prečtené a nepřečtené"
#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:71
#: cps/web.py:1013
#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:70
#: cps/web.py:1012
msgid "Unread Books"
msgstr "Nepřečtené knihy"
#: cps/ub.py:73
#: cps/ub.py:72
msgid "Show unread"
msgstr "Zobrazit nepřečtené"
#: cps/ub.py:74
#: cps/ub.py:73
msgid "Discover"
msgstr "Objevte"
#: cps/ub.py:76
#: cps/ub.py:75
msgid "Show random books"
msgstr "Zobrazit náhodné knihy"
#: cps/templates/index.xml:75 cps/ub.py:77
#: cps/templates/index.xml:75 cps/ub.py:76
msgid "Categories"
msgstr "Kategorie"
#: cps/ub.py:79
#: cps/ub.py:78
msgid "Show category selection"
msgstr "Zobrazit výběr kategorie"
#: cps/templates/book_edit.html:71 cps/templates/index.xml:82
#: cps/templates/search_form.html:53 cps/ub.py:80
#: cps/templates/search_form.html:53 cps/ub.py:79
msgid "Series"
msgstr "Série"
#: cps/ub.py:82
#: cps/ub.py:81
msgid "Show series selection"
msgstr "Zobrazit výběr sérií"
#: cps/templates/index.xml:61 cps/ub.py:83
#: cps/templates/index.xml:61 cps/ub.py:82
msgid "Authors"
msgstr "Autoři"
#: cps/ub.py:85
#: cps/ub.py:84
msgid "Show author selection"
msgstr "Zobrazit výběr autora"
#: cps/templates/index.xml:68 cps/ub.py:87
#: cps/templates/index.xml:68 cps/ub.py:86
msgid "Publishers"
msgstr "Vydavatelé"
#: cps/ub.py:89
#: cps/ub.py:88
msgid "Show publisher selection"
msgstr "Zobrazit výběr vydavatele"
#: cps/templates/index.xml:89 cps/templates/search_form.html:74 cps/ub.py:90
#: cps/templates/index.xml:89 cps/templates/search_form.html:74 cps/ub.py:89
msgid "Languages"
msgstr "Jazyky"
#: cps/ub.py:93
#: cps/ub.py:92
msgid "Show language selection"
msgstr "Zobrazit výběr jazyka"
#: cps/ub.py:94
#: cps/ub.py:93
msgid "Ratings"
msgstr "Hodnocení"
#: cps/ub.py:96
#: cps/ub.py:95
msgid "Show ratings selection"
msgstr "Zobrazit výběr hodnocení"
#: cps/templates/index.xml:96 cps/ub.py:97
#: cps/templates/index.xml:96 cps/ub.py:96
msgid "File formats"
msgstr "Formáty souborů"
#: cps/ub.py:99
#: cps/ub.py:98
msgid "Show file formats selection"
msgstr "Zobrazit výběr formátů"
#: cps/updater.py:252 cps/updater.py:359 cps/updater.py:372
#: cps/updater.py:251 cps/updater.py:358 cps/updater.py:371
msgid "Unexpected data while reading update information"
msgstr "Neočekávaná data při čtení informací o aktualizaci"
#: cps/updater.py:259 cps/updater.py:365
#: cps/updater.py:258 cps/updater.py:364
msgid "No update available. You already have the latest version installed"
msgstr "Aktualizace není k dispozici. Máte nainstalovanou nejnovější verzi"
#: cps/updater.py:285
#: cps/updater.py:284
msgid "A new update is available. Click on the button below to update to the latest version."
msgstr "Nová aktualizace k dispozici. Klepnutím na tlačítko níže aktualizujte na nejnovější verzi."
#: cps/updater.py:338
#: cps/updater.py:337
msgid "Could not fetch update information"
msgstr "Nelze získat informace o aktualizaci"
#: cps/updater.py:352
#: cps/updater.py:351
msgid "No release information available"
msgstr "Nejsou k dispozici žádné informace o verzi"
#: cps/updater.py:405 cps/updater.py:414
#: cps/updater.py:404 cps/updater.py:413
#, python-format
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr "Nová aktualizace k dispozici. Klepnutím na tlačítko níže aktualizujte na verzi: %(version)s"
#: cps/updater.py:424
#: cps/updater.py:423
msgid "Click on the button below to update to the latest stable version."
msgstr "Klepnutím na tlačítko níže aktualizujte na nejnovější stabilní verzi."
#: cps/web.py:486
#: cps/web.py:485
msgid "Recently Added Books"
msgstr "Nedávno přidané knihy"
#: cps/web.py:514
#: cps/web.py:513
msgid "Best rated books"
msgstr "Nejlépe hodnocené knihy"
#: cps/templates/index.xml:38 cps/web.py:522
#: cps/templates/index.xml:38 cps/web.py:521
msgid "Random Books"
msgstr "Náhodné knihy"
#: cps/web.py:548
#: cps/web.py:547
msgid "Books"
msgstr "Knihy"
#: cps/web.py:575
#: cps/web.py:574
msgid "Hot Books (most downloaded)"
msgstr "Žhavé knihy (nejstahovanější)"
#: cps/web.py:586 cps/web.py:1379 cps/web.py:1475
#: cps/web.py:585 cps/web.py:1378 cps/web.py:1474
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "Chyba při otevíraní eKnihy. Soubor neexistuje nebo neni přístupný:"
#: cps/web.py:599
#: cps/web.py:598
#, python-format
msgid "Author: %(name)s"
msgstr "Autoři: %(name)s"
#: cps/web.py:611
#: cps/web.py:610
#, python-format
msgid "Publisher: %(name)s"
msgstr "Vydavatel: %(name)s"
#: cps/web.py:622
#: cps/web.py:621
#, python-format
msgid "Series: %(serie)s"
msgstr "Série: %(serie)s"
#: cps/web.py:633
#: cps/web.py:632
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Hodnocení: %(rating)s stars"
#: cps/web.py:644
#: cps/web.py:643
#, python-format
msgid "File format: %(format)s"
msgstr "Soubor formátů: %(format)s"
#: cps/web.py:656
#: cps/web.py:655
#, python-format
msgid "Category: %(name)s"
msgstr "Kategorie: %(name)s"
#: cps/web.py:673
#: cps/web.py:672
#, python-format
msgid "Language: %(name)s"
msgstr "Jazyky: %(name)s"
#: cps/web.py:705
#: cps/web.py:704
msgid "Publisher list"
msgstr "Seznam vydavatelů"
#: cps/web.py:721
#: cps/web.py:720
msgid "Series list"
msgstr "Seznam sérií"
#: cps/web.py:735
#: cps/web.py:734
msgid "Ratings list"
msgstr "Seznam hodnocení"
#: cps/web.py:748
#: cps/web.py:747
msgid "File formats list"
msgstr "Seznam formátů"
#: cps/web.py:776
#: cps/web.py:775
msgid "Available languages"
msgstr "Dostupné jazyky"
#: cps/web.py:793
#: cps/web.py:792
msgid "Category list"
msgstr "Seznam kategorií"
#: cps/templates/layout.html:73 cps/web.py:807
#: cps/templates/layout.html:73 cps/web.py:806
msgid "Tasks"
msgstr "Úlohy"
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45 cps/web.py:827 cps/web.py:829
#: cps/templates/layout.html:45 cps/web.py:826 cps/web.py:828
msgid "Search"
msgstr "Hledat"
#: cps/web.py:879
#: cps/web.py:878
msgid "Published after "
msgstr "Vydáno po "
#: cps/web.py:886
#: cps/web.py:885
msgid "Published before "
msgstr "Vydáno před "
#: cps/web.py:900
#: cps/web.py:899
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Hodnocení <= %(rating)s"
#: cps/web.py:902
#: cps/web.py:901
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Hodnocení >= %(rating)s"
#: cps/web.py:968 cps/web.py:980
#: cps/web.py:967 cps/web.py:979
msgid "search"
msgstr "hledat"
#: cps/web.py:1064
#: cps/web.py:1063
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Kniha byla úspěšně zařazena do fronty pro odeslání na %(kindlemail)s"
#: cps/web.py:1068
#: cps/web.py:1067
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr "Při odesílání této knihy došlo k chybě: %(res)s"
#: cps/web.py:1070
#: cps/web.py:1069
msgid "Please configure your kindle e-mail address first..."
msgstr "Nejprve nakonfigurujte vaši kindle e-mailovou adresu.."
#: cps/web.py:1084
#: cps/web.py:1083
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr "E-mailový server není nakonfigurován, kontaktujte svého správce!"
#: cps/web.py:1085 cps/web.py:1091 cps/web.py:1116 cps/web.py:1120
#: cps/web.py:1125 cps/web.py:1129
#: cps/web.py:1084 cps/web.py:1090 cps/web.py:1115 cps/web.py:1119
#: cps/web.py:1124 cps/web.py:1128
msgid "register"
msgstr "registrovat"
#: cps/web.py:1118
#: cps/web.py:1117
msgid "Your e-mail is not allowed to register"
msgstr "Váš e-mail nemá povolení k registraci"
#: cps/web.py:1121
#: cps/web.py:1120
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Potvrzovací e-mail byl odeslán na váš účet."
#: cps/web.py:1124
#: cps/web.py:1123
msgid "This username or e-mail address is already in use."
msgstr "Toto uživatelské jméno nebo e-mailová adresa jsou již používány."
#: cps/web.py:1141
#: cps/web.py:1140
msgid "Cannot activate LDAP authentication"
msgstr "Nelze aktivovat ověření LDAP"
#: cps/web.py:1151 cps/web.py:1278
#: cps/web.py:1150 cps/web.py:1277
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "nyní jste přihlášeni jako: '%(nickname)s'"
#: cps/web.py:1156
#: cps/web.py:1155
msgid "Could not login. LDAP server down, please contact your administrator"
msgstr "Nelze se přihlásit. LDAP server neodpovídá, kontaktujte svého správce"
#: cps/web.py:1160 cps/web.py:1183
#: cps/web.py:1159 cps/web.py:1182
msgid "Wrong Username or Password"
msgstr "Špatné uživatelské jméno nebo heslo"
#: cps/web.py:1167
#: cps/web.py:1166
msgid "New Password was send to your email address"
msgstr "Nové heslo bylo zasláno na váši emailovou adresu"
#: cps/web.py:1173
#: cps/web.py:1172
msgid "Please enter valid username to reset password"
msgstr "Zadejte platné uživatelské jméno pro obnovení hesla"
#: cps/web.py:1179
#: cps/web.py:1178
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "Nyní jste přihlášeni jako: '%(nickname)s'"
#: cps/web.py:1186 cps/web.py:1210
#: cps/web.py:1185 cps/web.py:1209
msgid "login"
msgstr "přihlásit se"
#: cps/web.py:1222 cps/web.py:1256
#: cps/web.py:1221 cps/web.py:1255
msgid "Token not found"
msgstr "Token nenalezen"
#: cps/web.py:1231 cps/web.py:1264
#: cps/web.py:1230 cps/web.py:1263
msgid "Token has expired"
msgstr "Token vypršel"
#: cps/web.py:1240
#: cps/web.py:1239
msgid "Success! Please return to your device"
msgstr "Úspěch! Vraťte se prosím do zařízení"
#: cps/web.py:1317 cps/web.py:1360 cps/web.py:1366
#: cps/web.py:1316 cps/web.py:1359 cps/web.py:1365
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)s profil"
#: cps/web.py:1362
#: cps/web.py:1361
msgid "Profile updated"
msgstr "Profil aktualizován"
#: cps/web.py:1391 cps/web.py:1394 cps/web.py:1397 cps/web.py:1404
#: cps/web.py:1409
#: cps/web.py:1390 cps/web.py:1393 cps/web.py:1396 cps/web.py:1403
#: cps/web.py:1408
msgid "Read a Book"
msgstr "Číst knihu"
#: cps/web.py:1420
#: cps/web.py:1419
msgid "Error opening eBook. File does not exist or file is not accessible."
msgstr "Chyba při otevírání eKnihy. Soubor neexistuje nebo není přístupný"

View File

@ -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: 2020-02-01 15:02+0100\n"
"POT-Creation-Date: 2020-02-16 18:54+0100\n"
"PO-Revision-Date: 2020-01-18 12:52+0100\n"
"Last-Translator: Ozzie Isaacs\n"
"Language: de\n"
@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.7.0\n"
"Generated-By: Babel 2.8.0\n"
#: cps/about.py:42
msgid "installed"
@ -30,173 +30,173 @@ msgstr "Nicht installiert"
msgid "Statistics"
msgstr "Statistiken"
#: cps/admin.py:89
#: cps/admin.py:88
msgid "Server restarted, please reload page"
msgstr "Server neu gestartet, Seite bitte neu laden"
#: cps/admin.py:91
#: cps/admin.py:90
msgid "Performing shutdown of server, please close window"
msgstr "Server wird heruntergefahren, Fenster bitte schließen"
#: cps/admin.py:110 cps/editbooks.py:410 cps/editbooks.py:419
#: cps/admin.py:109 cps/editbooks.py:410 cps/editbooks.py:419
#: cps/editbooks.py:539 cps/editbooks.py:541 cps/editbooks.py:594
#: cps/updater.py:446 cps/uploader.py:97 cps/uploader.py:108
#: cps/updater.py:445 cps/uploader.py:96 cps/uploader.py:107
msgid "Unknown"
msgstr "Unbekannt"
#: cps/admin.py:129
#: cps/admin.py:128
msgid "Admin page"
msgstr "Admin Seite"
#: cps/admin.py:148 cps/templates/admin.html:115
#: cps/admin.py:147 cps/templates/admin.html:115
msgid "UI Configuration"
msgstr "Benutzeroberflächenkonfiguration"
#: cps/admin.py:185 cps/admin.py:412
#: cps/admin.py:184 cps/admin.py:411
msgid "Calibre-Web configuration updated"
msgstr "Konfiguration von Calibre-Web wurde aktualisiert"
#: cps/admin.py:442 cps/templates/admin.html:114
#: cps/admin.py:441 cps/templates/admin.html:114
msgid "Basic Configuration"
msgstr "Basiskonfiguration"
#: cps/admin.py:465 cps/web.py:1090
#: cps/admin.py:464 cps/web.py:1089
msgid "Please fill out all fields!"
msgstr "Bitte alle Felder ausfüllen!"
#: cps/admin.py:467 cps/admin.py:478 cps/admin.py:484 cps/admin.py:499
#: cps/admin.py:466 cps/admin.py:477 cps/admin.py:483 cps/admin.py:498
#: cps/templates/admin.html:38
msgid "Add new user"
msgstr "Neuen Benutzer hinzufügen"
#: cps/admin.py:476 cps/web.py:1315
#: cps/admin.py:475 cps/web.py:1314
msgid "E-mail is not from valid domain"
msgstr "E-Mail bezieht sich nicht auf eine gültige Domain"
#: cps/admin.py:482 cps/admin.py:493
#: cps/admin.py:481 cps/admin.py:492
msgid "Found an existing account for this e-mail address or nickname."
msgstr "Es existiert bereits ein Account für diese E-Mailadresse oder diesen Benutzernamen."
#: cps/admin.py:489
#: cps/admin.py:488
#, python-format
msgid "User '%(user)s' created"
msgstr "Benutzer '%(user)s' angelegt"
#: cps/admin.py:509
#: cps/admin.py:508
msgid "Edit e-mail server settings"
msgstr "Einstellungen des E-Mail-Servers bearbeiten"
#: cps/admin.py:535
#: cps/admin.py:534
#, python-format
msgid "Test e-mail successfully send to %(kindlemail)s"
msgstr "Test-E-Mail wurde erfolgreich an %(kindlemail)s versendet"
#: cps/admin.py:538
#: cps/admin.py:537
#, python-format
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:540
#: cps/admin.py:539
msgid "Please configure your e-mail address first..."
msgstr "Bitte zuerst E-Mail Adresse konfigurieren..."
#: cps/admin.py:542
#: cps/admin.py:541
msgid "E-mail server settings updated"
msgstr "Einstellungen des E-Mail-Servers aktualisiert"
#: cps/admin.py:571
#: cps/admin.py:570
#, python-format
msgid "User '%(nick)s' deleted"
msgstr "Benutzer '%(nick)s' gelöscht"
#: cps/admin.py:574
#: cps/admin.py:573
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:612 cps/web.py:1356
#: cps/admin.py:611 cps/web.py:1355
msgid "Found an existing account for this e-mail address."
msgstr "Es existiert bereits ein Benutzer für diese E-Mailadresse."
#: cps/admin.py:616 cps/admin.py:630 cps/admin.py:644 cps/web.py:1331
#: cps/admin.py:615 cps/admin.py:629 cps/admin.py:643 cps/web.py:1330
#, python-format
msgid "Edit User %(nick)s"
msgstr "Benutzer %(nick)s bearbeiten"
#: cps/admin.py:622 cps/web.py:1324
#: cps/admin.py:621 cps/web.py:1323
msgid "This username is already taken"
msgstr "Benutzername ist schon vorhanden"
#: cps/admin.py:637
#: cps/admin.py:636
#, python-format
msgid "User '%(nick)s' updated"
msgstr "Benutzer '%(nick)s' aktualisiert"
#: cps/admin.py:640
#: cps/admin.py:639
msgid "An unknown error occured."
msgstr "Es ist ein unbekannter Fehler aufgetreten."
#: cps/admin.py:657
#: cps/admin.py:656
#, python-format
msgid "Password for user %(user)s reset"
msgstr "Passwort für Benutzer %(user)s wurde zurückgesetzt"
#: cps/admin.py:660 cps/web.py:1115 cps/web.py:1171
#: cps/admin.py:659 cps/web.py:1114 cps/web.py:1170
msgid "An unknown error occurred. Please try again later."
msgstr "Es ist ein unbekannter Fehler aufgetreten. Bitte später erneut versuchen."
#: cps/admin.py:663 cps/web.py:1059
#: cps/admin.py:662 cps/web.py:1058
msgid "Please configure the SMTP mail settings first..."
msgstr "Bitte zuerst die SMTP-Einstellung konfigurieren ..."
#: cps/admin.py:675
#: cps/admin.py:674
msgid "Logfile viewer"
msgstr "Logdatei Anzeige"
#: cps/admin.py:714
#: cps/admin.py:713
msgid "Requesting update package"
msgstr "Frage Update an"
#: cps/admin.py:715
#: cps/admin.py:714
msgid "Downloading update package"
msgstr "Lade Update herunter"
#: cps/admin.py:716
#: cps/admin.py:715
msgid "Unzipping update package"
msgstr "Entpacke Update"
#: cps/admin.py:717
#: cps/admin.py:716
msgid "Replacing files"
msgstr "Ersetze Dateien"
#: cps/admin.py:718
#: cps/admin.py:717
msgid "Database connections are closed"
msgstr "Schließe Datenbankverbindungen"
#: cps/admin.py:719
#: cps/admin.py:718
msgid "Stopping server"
msgstr "Stoppe Server"
#: cps/admin.py:720
#: cps/admin.py:719
msgid "Update finished, please press okay and reload page"
msgstr "Update abgeschlossen, bitte okay drücken und Seite neu laden"
#: cps/admin.py:721 cps/admin.py:722 cps/admin.py:723 cps/admin.py:724
#: cps/admin.py:720 cps/admin.py:721 cps/admin.py:722 cps/admin.py:723
msgid "Update failed:"
msgstr "Update fehlgeschlagen:"
#: cps/admin.py:721 cps/updater.py:272 cps/updater.py:457 cps/updater.py:459
#: cps/admin.py:720 cps/updater.py:271 cps/updater.py:456 cps/updater.py:458
msgid "HTTP Error"
msgstr "HTTP Fehler"
#: cps/admin.py:722 cps/updater.py:274 cps/updater.py:461
#: cps/admin.py:721 cps/updater.py:273 cps/updater.py:460
msgid "Connection error"
msgstr "Verbindungsfehler"
#: cps/admin.py:723 cps/updater.py:276 cps/updater.py:463
#: cps/admin.py:722 cps/updater.py:275 cps/updater.py:462
msgid "Timeout while establishing connection"
msgstr "Timeout beim Verbindungsaufbau"
#: cps/admin.py:724 cps/updater.py:278 cps/updater.py:465
#: cps/admin.py:723 cps/updater.py:277 cps/updater.py:464
msgid "General error"
msgstr "Allgemeiner Fehler"
@ -295,11 +295,11 @@ msgstr "Buch wurde erfolgreich für die Konvertierung nach %(book_format)s einge
msgid "There was an error converting this book: %(res)s"
msgstr "Es trat ein Fehler beim Konvertieren des Buches auf: %(res)s"
#: cps/gdrive.py:62
#: cps/gdrive.py:61
msgid "Google Drive setup not completed, try to deactivate and activate Google Drive again"
msgstr "Google Drive Setup is nicht komplett, bitte versuche Google Drive zu deaktivieren und aktiviere es anschließend erneut"
#: cps/gdrive.py:104
#: cps/gdrive.py:103
msgid "Callback domain is not verified, please follow steps to verify domain in google developer console"
msgstr "Callback Domain ist nicht verifiziert, bitte Domain in der Google Developer Console verifizieren"
@ -425,47 +425,47 @@ msgstr "Upload: "
msgid "Unknown Task: "
msgstr "Unbekannte Aufgabe: "
#: cps/oauth_bb.py:75
#: cps/oauth_bb.py:74
#, python-format
msgid "Register with %(provider)s"
msgstr "Anmelden mit %(provider)s"
#: cps/oauth_bb.py:155
#: cps/oauth_bb.py:154
msgid "Failed to log in with GitHub."
msgstr "Login mit Github fehlgeschlagen."
#: cps/oauth_bb.py:160
#: cps/oauth_bb.py:159
msgid "Failed to fetch user info from GitHub."
msgstr "Laden der Benutzerinformationen von Github fehlgeschlagen."
#: cps/oauth_bb.py:171
#: cps/oauth_bb.py:170
msgid "Failed to log in with Google."
msgstr "Login mit Google fehlgeschlagen."
#: cps/oauth_bb.py:176
#: cps/oauth_bb.py:175
msgid "Failed to fetch user info from Google."
msgstr "Laden der Benutzerinformationen von Google fehlgeschlagen."
#: cps/oauth_bb.py:274
#: cps/oauth_bb.py:273
#, python-format
msgid "Unlink to %(oauth)s success."
msgstr "Verbindung zu %(oauth)s erfolgreich getrennt."
#: cps/oauth_bb.py:278
#: cps/oauth_bb.py:277
#, python-format
msgid "Unlink to %(oauth)s failed."
msgstr "Trennen der Verbindung zu %(oauth)s fehlgeschlagen."
#: cps/oauth_bb.py:281
#: cps/oauth_bb.py:280
#, python-format
msgid "Not linked to %(oauth)s."
msgstr "Nicht verknüpft mit %(oauth)s."
#: cps/oauth_bb.py:309
#: cps/oauth_bb.py:308
msgid "GitHub Oauth error, please retry later."
msgstr "GitHub Oauth Fehler, bitte später erneut versuchen."
#: cps/oauth_bb.py:328
#: cps/oauth_bb.py:327
msgid "Google Oauth error, please retry later."
msgstr "Google Oauth Fehler, bitte später erneut versuchen."
@ -516,403 +516,403 @@ msgstr "Bücher wurden zum Bücherregal %(sname)s hinzugefügt"
msgid "Could not add books to shelf: %(sname)s"
msgstr "Bücher konnten nicht zum Bücherregal %(sname)s hinzugefügt werden"
#: cps/shelf.py:180
#: cps/shelf.py:181
#, python-format
msgid "Book has been removed from shelf: %(sname)s"
msgstr "Das Buch wurde aus dem Bücherregal: %(sname)s entfernt"
#: cps/shelf.py:186
#: cps/shelf.py:187
#, python-format
msgid "Sorry you are not allowed to remove a book from this shelf: %(sname)s"
msgstr "Dir ist es nicht erlaubt, Bücher aus dem Bücherregal %(sname)s zu entfernen"
#: cps/shelf.py:207 cps/shelf.py:231
#: cps/shelf.py:208 cps/shelf.py:232
#, python-format
msgid "A shelf with the name '%(title)s' already exists."
msgstr "Es existiert bereits ein Bücheregal mit dem Namen '%(title)s'."
#: cps/shelf.py:212
#: cps/shelf.py:213
#, python-format
msgid "Shelf %(title)s created"
msgstr "Bücherregal %(title)s erzeugt"
#: cps/shelf.py:214 cps/shelf.py:242
#: cps/shelf.py:215 cps/shelf.py:243
msgid "There was an error"
msgstr "Es trat ein Fehler auf"
#: cps/shelf.py:215 cps/shelf.py:217
#: cps/shelf.py:216 cps/shelf.py:218
msgid "create a shelf"
msgstr "Bücherregal erzeugen"
#: cps/shelf.py:240
#: cps/shelf.py:241
#, python-format
msgid "Shelf %(title)s changed"
msgstr "Bücherregal %(title)s verändert"
#: cps/shelf.py:243 cps/shelf.py:245
#: cps/shelf.py:244 cps/shelf.py:246
msgid "Edit a shelf"
msgstr "Bücherregal editieren"
#: cps/shelf.py:289
#: cps/shelf.py:296
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Bücherregal: '%(name)s'"
#: cps/shelf.py:292
#: cps/shelf.py:299
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "Fehler beim Öffnen des Bücherregals. Bücherregal exisitert nicht oder ist nicht zugänglich"
#: cps/shelf.py:323
#: cps/shelf.py:333
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Reihenfolge in Bücherregal '%(name)s' verändern"
#: cps/ub.py:57
#: cps/ub.py:56
msgid "Recently Added"
msgstr "Kürzlich hinzugefügt"
#: cps/ub.py:59
#: cps/ub.py:58
msgid "Show recent books"
msgstr "Zeige kürzlich hinzugefügte Bücher"
#: cps/templates/index.xml:17 cps/ub.py:60
#: cps/templates/index.xml:17 cps/ub.py:59
msgid "Hot Books"
msgstr "Beliebte Bücher"
#: cps/ub.py:61
#: cps/ub.py:60
msgid "Show hot books"
msgstr "Zeige beliebte Bücher"
#: cps/templates/index.xml:24 cps/ub.py:64
#: cps/templates/index.xml:24 cps/ub.py:63
msgid "Best rated Books"
msgstr "Best bewertete Bücher"
#: cps/ub.py:66
#: cps/ub.py:65
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:1009
#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:66
#: cps/web.py:1008
msgid "Read Books"
msgstr "Gelesene Bücher"
#: cps/ub.py:69
#: cps/ub.py:68
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:1013
#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:70
#: cps/web.py:1012
msgid "Unread Books"
msgstr "Ungelesene Bücher"
#: cps/ub.py:73
#: cps/ub.py:72
msgid "Show unread"
msgstr "Zeige Ungelesene"
#: cps/ub.py:74
#: cps/ub.py:73
msgid "Discover"
msgstr "Entdecke"
#: cps/ub.py:76
#: cps/ub.py:75
msgid "Show random books"
msgstr "Zeige zufällige Bücher"
#: cps/templates/index.xml:75 cps/ub.py:77
#: cps/templates/index.xml:75 cps/ub.py:76
msgid "Categories"
msgstr "Kategorien"
#: cps/ub.py:79
#: cps/ub.py:78
msgid "Show category selection"
msgstr "Zeige Kategorienauswahl"
#: cps/templates/book_edit.html:71 cps/templates/index.xml:82
#: cps/templates/search_form.html:53 cps/ub.py:80
#: cps/templates/search_form.html:53 cps/ub.py:79
msgid "Series"
msgstr "Serien"
#: cps/ub.py:82
#: cps/ub.py:81
msgid "Show series selection"
msgstr "Zeige Serienauswahl"
#: cps/templates/index.xml:61 cps/ub.py:83
#: cps/templates/index.xml:61 cps/ub.py:82
msgid "Authors"
msgstr "Autoren"
#: cps/ub.py:85
#: cps/ub.py:84
msgid "Show author selection"
msgstr "Zeige Autorenauswahl"
#: cps/templates/index.xml:68 cps/ub.py:87
#: cps/templates/index.xml:68 cps/ub.py:86
msgid "Publishers"
msgstr "Verleger"
#: cps/ub.py:89
#: cps/ub.py:88
msgid "Show publisher selection"
msgstr "Zeige Verlegerauswahl"
#: cps/templates/index.xml:89 cps/templates/search_form.html:74 cps/ub.py:90
#: cps/templates/index.xml:89 cps/templates/search_form.html:74 cps/ub.py:89
msgid "Languages"
msgstr "Sprachen"
#: cps/ub.py:93
#: cps/ub.py:92
msgid "Show language selection"
msgstr "Zeige Sprachauswahl"
#: cps/ub.py:94
#: cps/ub.py:93
msgid "Ratings"
msgstr "Bewertungen"
#: cps/ub.py:96
#: cps/ub.py:95
msgid "Show ratings selection"
msgstr "Zeige Bewertungsauswahl"
#: cps/templates/index.xml:96 cps/ub.py:97
#: cps/templates/index.xml:96 cps/ub.py:96
msgid "File formats"
msgstr "Dateiformate"
#: cps/ub.py:99
#: cps/ub.py:98
msgid "Show file formats selection"
msgstr "Zeige Dateiformatauswahl"
#: cps/updater.py:252 cps/updater.py:359 cps/updater.py:372
#: cps/updater.py:251 cps/updater.py:358 cps/updater.py:371
msgid "Unexpected data while reading update information"
msgstr "Updateinformationen enthalten unbekannte Daten"
#: cps/updater.py:259 cps/updater.py:365
#: cps/updater.py:258 cps/updater.py:364
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:285
#: cps/updater.py:284
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:338
#: cps/updater.py:337
msgid "Could not fetch update information"
msgstr "Updateinformationen konnten nicht geladen werden"
#: cps/updater.py:352
#: cps/updater.py:351
msgid "No release information available"
msgstr "Keine Releaseinformationen verfügbar"
#: cps/updater.py:405 cps/updater.py:414
#: cps/updater.py:404 cps/updater.py:413
#, 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:424
#: cps/updater.py:423
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:486
#: cps/web.py:485
msgid "Recently Added Books"
msgstr "Kürzlich hinzugefügte Bücher"
#: cps/web.py:514
#: cps/web.py:513
msgid "Best rated books"
msgstr "Am besten bewertete Bücher"
#: cps/templates/index.xml:38 cps/web.py:522
#: cps/templates/index.xml:38 cps/web.py:521
msgid "Random Books"
msgstr "Zufällige Bücher"
#: cps/web.py:548
#: cps/web.py:547
msgid "Books"
msgstr "Bücher"
#: cps/web.py:575
#: cps/web.py:574
msgid "Hot Books (most downloaded)"
msgstr "Beliebte Bücher (am meisten Downloads)"
#: cps/web.py:586 cps/web.py:1379 cps/web.py:1475
#: cps/web.py:585 cps/web.py:1378 cps/web.py:1474
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:599
#: cps/web.py:598
#, python-format
msgid "Author: %(name)s"
msgstr "Author: %(name)s"
#: cps/web.py:611
#: cps/web.py:610
#, python-format
msgid "Publisher: %(name)s"
msgstr "Verleger: %(name)s"
#: cps/web.py:622
#: cps/web.py:621
#, python-format
msgid "Series: %(serie)s"
msgstr "Serie: %(serie)s"
#: cps/web.py:633
#: cps/web.py:632
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Bewertung: %(rating)s Sterne"
#: cps/web.py:644
#: cps/web.py:643
#, python-format
msgid "File format: %(format)s"
msgstr "Dateiformat: %(format)s"
#: cps/web.py:656
#: cps/web.py:655
#, python-format
msgid "Category: %(name)s"
msgstr "Kategorie: %(name)s"
#: cps/web.py:673
#: cps/web.py:672
#, python-format
msgid "Language: %(name)s"
msgstr "Sprache: %(name)s"
#: cps/web.py:705
#: cps/web.py:704
msgid "Publisher list"
msgstr "Verlegerliste"
#: cps/web.py:721
#: cps/web.py:720
msgid "Series list"
msgstr "Serienliste"
#: cps/web.py:735
#: cps/web.py:734
msgid "Ratings list"
msgstr "Bewertungsliste"
#: cps/web.py:748
#: cps/web.py:747
msgid "File formats list"
msgstr "Liste der Dateiformate"
#: cps/web.py:776
#: cps/web.py:775
msgid "Available languages"
msgstr "Verfügbare Sprachen"
#: cps/web.py:793
#: cps/web.py:792
msgid "Category list"
msgstr "Kategorienliste"
#: cps/templates/layout.html:73 cps/web.py:807
#: cps/templates/layout.html:73 cps/web.py:806
msgid "Tasks"
msgstr "Aufgaben"
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45 cps/web.py:827 cps/web.py:829
#: cps/templates/layout.html:45 cps/web.py:826 cps/web.py:828
msgid "Search"
msgstr "Suche"
#: cps/web.py:879
#: cps/web.py:878
msgid "Published after "
msgstr "Herausgegeben nach dem "
#: cps/web.py:886
#: cps/web.py:885
msgid "Published before "
msgstr "Herausgegeben vor dem "
#: cps/web.py:900
#: cps/web.py:899
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Bewertung <= %(rating)s"
#: cps/web.py:902
#: cps/web.py:901
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Bewertung >= %(rating)s"
#: cps/web.py:968 cps/web.py:980
#: cps/web.py:967 cps/web.py:979
msgid "search"
msgstr "Suche"
#: cps/web.py:1064
#: cps/web.py:1063
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Buch erfolgreich zum Senden an %(kindlemail)s eingereiht"
#: cps/web.py:1068
#: cps/web.py:1067
#, 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:1070
#: cps/web.py:1069
msgid "Please configure your kindle e-mail address first..."
msgstr "Bitte zuerst die Kindle E-Mailadresse konfigurieren..."
#: cps/web.py:1084
#: cps/web.py:1083
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr "Der E-Mail Server ist nicht konfigurierte, bitte den Administrator kontaktieren!"
#: cps/web.py:1085 cps/web.py:1091 cps/web.py:1116 cps/web.py:1120
#: cps/web.py:1125 cps/web.py:1129
#: cps/web.py:1084 cps/web.py:1090 cps/web.py:1115 cps/web.py:1119
#: cps/web.py:1124 cps/web.py:1128
msgid "register"
msgstr "Registieren"
#: cps/web.py:1118
#: cps/web.py:1117
msgid "Your e-mail is not allowed to register"
msgstr "Diese E-Mail ist nicht für die Registrierung zugelassen"
#: cps/web.py:1121
#: cps/web.py:1120
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:1124
#: cps/web.py:1123
msgid "This username or e-mail address is already in use."
msgstr "Benutzername oder E-Mailadresse ist bereits in Verwendung."
#: cps/web.py:1141
#: cps/web.py:1140
msgid "Cannot activate LDAP authentication"
msgstr "LDAP-Authentifizierung kann nicht aktiviert werden"
#: cps/web.py:1151 cps/web.py:1278
#: cps/web.py:1150 cps/web.py:1277
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "Du bist nun eingeloggt als '%(nickname)s'"
#: cps/web.py:1156
#: cps/web.py:1155
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:1160 cps/web.py:1183
#: cps/web.py:1159 cps/web.py:1182
msgid "Wrong Username or Password"
msgstr "Falscher Benutzername oder Passwort"
#: cps/web.py:1167
#: cps/web.py:1166
msgid "New Password was send to your email address"
msgstr "Das neue Passwort wurde an die E-Mail Adresse verschickt"
#: cps/web.py:1173
#: cps/web.py:1172
msgid "Please enter valid username to reset password"
msgstr "Bitte einen gültigen Benutzernamen zum Zurücksetzen des Passworts angeben"
#: cps/web.py:1179
#: cps/web.py:1178
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "Eingeloggt als: '%(nickname)s'"
#: cps/web.py:1186 cps/web.py:1210
#: cps/web.py:1185 cps/web.py:1209
msgid "login"
msgstr "Login"
#: cps/web.py:1222 cps/web.py:1256
#: cps/web.py:1221 cps/web.py:1255
msgid "Token not found"
msgstr "Token wurde nicht gefunden"
#: cps/web.py:1231 cps/web.py:1264
#: cps/web.py:1230 cps/web.py:1263
msgid "Token has expired"
msgstr "Das Token ist abgelaufen"
#: cps/web.py:1240
#: cps/web.py:1239
msgid "Success! Please return to your device"
msgstr "Erfolg! Bitte zum Gerät zurückkehren"
#: cps/web.py:1317 cps/web.py:1360 cps/web.py:1366
#: cps/web.py:1316 cps/web.py:1359 cps/web.py:1365
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)s's Profil"
#: cps/web.py:1362
#: cps/web.py:1361
msgid "Profile updated"
msgstr "Profil aktualisiert"
#: cps/web.py:1391 cps/web.py:1394 cps/web.py:1397 cps/web.py:1404
#: cps/web.py:1409
#: cps/web.py:1390 cps/web.py:1393 cps/web.py:1396 cps/web.py:1403
#: cps/web.py:1408
msgid "Read a Book"
msgstr "Lese ein Buch"
#: cps/web.py:1420
#: cps/web.py:1419
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."

View File

@ -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: 2020-02-01 15:02+0100\n"
"POT-Creation-Date: 2020-02-16 18:54+0100\n"
"PO-Revision-Date: 2019-07-26 11:44+0100\n"
"Last-Translator: minakmostoles <xxx@xxx.com>\n"
"Language: es\n"
@ -17,7 +17,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.7.0\n"
"Generated-By: Babel 2.8.0\n"
#: cps/about.py:42
msgid "installed"
@ -32,173 +32,173 @@ msgstr "No instalado"
msgid "Statistics"
msgstr "Estadísticas"
#: cps/admin.py:89
#: cps/admin.py:88
msgid "Server restarted, please reload page"
msgstr "Servidor reiniciado. Por favor, recargue la página"
#: cps/admin.py:91
#: cps/admin.py:90
msgid "Performing shutdown of server, please close window"
msgstr "Servidor en proceso de apagado. Por favor, cierre la ventana."
#: cps/admin.py:110 cps/editbooks.py:410 cps/editbooks.py:419
#: cps/admin.py:109 cps/editbooks.py:410 cps/editbooks.py:419
#: cps/editbooks.py:539 cps/editbooks.py:541 cps/editbooks.py:594
#: cps/updater.py:446 cps/uploader.py:97 cps/uploader.py:108
#: cps/updater.py:445 cps/uploader.py:96 cps/uploader.py:107
msgid "Unknown"
msgstr "Desconocido"
#: cps/admin.py:129
#: cps/admin.py:128
msgid "Admin page"
msgstr "Página de administración"
#: cps/admin.py:148 cps/templates/admin.html:115
#: cps/admin.py:147 cps/templates/admin.html:115
msgid "UI Configuration"
msgstr "Configuración de la interfaz del usuario"
#: cps/admin.py:185 cps/admin.py:412
#: cps/admin.py:184 cps/admin.py:411
msgid "Calibre-Web configuration updated"
msgstr "Configuración de Calibre-Web actualizada"
#: cps/admin.py:442 cps/templates/admin.html:114
#: cps/admin.py:441 cps/templates/admin.html:114
msgid "Basic Configuration"
msgstr "Configuración básica"
#: cps/admin.py:465 cps/web.py:1090
#: cps/admin.py:464 cps/web.py:1089
msgid "Please fill out all fields!"
msgstr "¡Por favor completar todos los campos!"
#: cps/admin.py:467 cps/admin.py:478 cps/admin.py:484 cps/admin.py:499
#: cps/admin.py:466 cps/admin.py:477 cps/admin.py:483 cps/admin.py:498
#: cps/templates/admin.html:38
msgid "Add new user"
msgstr "Agregar un nuevo usuario"
#: cps/admin.py:476 cps/web.py:1315
#: cps/admin.py:475 cps/web.py:1314
msgid "E-mail is not from valid domain"
msgstr "El correo electrónico no tiene un nombre de dominio válido"
#: cps/admin.py:482 cps/admin.py:493
#: cps/admin.py:481 cps/admin.py:492
msgid "Found an existing account for this e-mail address or nickname."
msgstr "Encontrada una cuenta existente para este correo electrónico o nombre de usuario."
#: cps/admin.py:489
#: cps/admin.py:488
#, python-format
msgid "User '%(user)s' created"
msgstr "Usuario '%(user)s' creado"
#: cps/admin.py:509
#: cps/admin.py:508
msgid "Edit e-mail server settings"
msgstr "Editar los ajustes del servidor de correo electrónico"
#: cps/admin.py:535
#: cps/admin.py:534
#, python-format
msgid "Test e-mail successfully send to %(kindlemail)s"
msgstr "Correo electrónico de prueba enviado con éxito a %(kindlemail)s"
#: cps/admin.py:538
#: cps/admin.py:537
#, python-format
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:540
#: cps/admin.py:539
msgid "Please configure your e-mail address first..."
msgstr ""
#: cps/admin.py:542
#: cps/admin.py:541
msgid "E-mail server settings updated"
msgstr "Actualizados los ajustes del servidor de correo electrónico"
#: cps/admin.py:571
#: cps/admin.py:570
#, python-format
msgid "User '%(nick)s' deleted"
msgstr "Usuario '%(nick)s' borrado"
#: cps/admin.py:574
#: cps/admin.py:573
msgid "No admin user remaining, can't delete user"
msgstr "No queda ningún usuario administrador, no se puede eliminar usuario"
#: cps/admin.py:612 cps/web.py:1356
#: cps/admin.py:611 cps/web.py:1355
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:616 cps/admin.py:630 cps/admin.py:644 cps/web.py:1331
#: cps/admin.py:615 cps/admin.py:629 cps/admin.py:643 cps/web.py:1330
#, python-format
msgid "Edit User %(nick)s"
msgstr "Editar Usuario %(nick)s"
#: cps/admin.py:622 cps/web.py:1324
#: cps/admin.py:621 cps/web.py:1323
msgid "This username is already taken"
msgstr ""
#: cps/admin.py:637
#: cps/admin.py:636
#, python-format
msgid "User '%(nick)s' updated"
msgstr "Usuario '%(nick)s' actualizado"
#: cps/admin.py:640
#: cps/admin.py:639
msgid "An unknown error occured."
msgstr "Ocurrió un error inesperado."
#: cps/admin.py:657
#: cps/admin.py:656
#, python-format
msgid "Password for user %(user)s reset"
msgstr "Contraseña para el usuario %(user)s reinicializada"
#: cps/admin.py:660 cps/web.py:1115 cps/web.py:1171
#: cps/admin.py:659 cps/web.py:1114 cps/web.py:1170
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:663 cps/web.py:1059
#: cps/admin.py:662 cps/web.py:1058
msgid "Please configure the SMTP mail settings first..."
msgstr "Configura primero los parámetros del servidor SMTP..."
#: cps/admin.py:675
#: cps/admin.py:674
msgid "Logfile viewer"
msgstr "Visor del fichero de log"
#: cps/admin.py:714
#: cps/admin.py:713
msgid "Requesting update package"
msgstr "Solicitando paquete de actualización"
#: cps/admin.py:715
#: cps/admin.py:714
msgid "Downloading update package"
msgstr "Descargando paquete de actualización"
#: cps/admin.py:716
#: cps/admin.py:715
msgid "Unzipping update package"
msgstr "Descomprimiendo paquete de actualización"
#: cps/admin.py:717
#: cps/admin.py:716
msgid "Replacing files"
msgstr "Remplazando ficheros"
#: cps/admin.py:718
#: cps/admin.py:717
msgid "Database connections are closed"
msgstr "Los conexiones de base datos están cerradas"
#: cps/admin.py:719
#: cps/admin.py:718
msgid "Stopping server"
msgstr "Parando servidor"
#: cps/admin.py:720
#: cps/admin.py:719
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:721 cps/admin.py:722 cps/admin.py:723 cps/admin.py:724
#: cps/admin.py:720 cps/admin.py:721 cps/admin.py:722 cps/admin.py:723
msgid "Update failed:"
msgstr "Fallo al actualizar"
#: cps/admin.py:721 cps/updater.py:272 cps/updater.py:457 cps/updater.py:459
#: cps/admin.py:720 cps/updater.py:271 cps/updater.py:456 cps/updater.py:458
msgid "HTTP Error"
msgstr "Error HTTP"
#: cps/admin.py:722 cps/updater.py:274 cps/updater.py:461
#: cps/admin.py:721 cps/updater.py:273 cps/updater.py:460
msgid "Connection error"
msgstr "Error de conexión"
#: cps/admin.py:723 cps/updater.py:276 cps/updater.py:463
#: cps/admin.py:722 cps/updater.py:275 cps/updater.py:462
msgid "Timeout while establishing connection"
msgstr "Tiempo agotado mientras se trataba de establecer la conexión"
#: cps/admin.py:724 cps/updater.py:278 cps/updater.py:465
#: cps/admin.py:723 cps/updater.py:277 cps/updater.py:464
msgid "General error"
msgstr "Error general"
@ -297,11 +297,11 @@ msgstr "Libro puesto a la cola con éxito para convertirlo a %(book_format)s"
msgid "There was an error converting this book: %(res)s"
msgstr "Ocurrió un error al convertir este libro: %(res)s"
#: cps/gdrive.py:62
#: cps/gdrive.py:61
msgid "Google Drive setup not completed, try to deactivate and activate Google Drive again"
msgstr "La instalación de Google Drive no se ha completado, intente desactivar y activar Google Drive nuevamente"
#: cps/gdrive.py:104
#: cps/gdrive.py:103
msgid "Callback domain is not verified, please follow steps to verify domain in google developer console"
msgstr "El dominio de devolución de llamada no se ha verificado, siga los pasos para verificar el dominio en la consola de desarrollador de Google"
@ -427,47 +427,47 @@ msgstr "Subir: "
msgid "Unknown Task: "
msgstr "Tarea desconocida"
#: cps/oauth_bb.py:75
#: cps/oauth_bb.py:74
#, python-format
msgid "Register with %(provider)s"
msgstr "Registrado con %(provider)s"
#: cps/oauth_bb.py:155
#: cps/oauth_bb.py:154
msgid "Failed to log in with GitHub."
msgstr "Error al iniciar sesión con GitHub."
#: cps/oauth_bb.py:160
#: cps/oauth_bb.py:159
msgid "Failed to fetch user info from GitHub."
msgstr "Error al obtener información de usuario de GitHub."
#: cps/oauth_bb.py:171
#: cps/oauth_bb.py:170
msgid "Failed to log in with Google."
msgstr "Error al iniciar sesión con Google."
#: cps/oauth_bb.py:176
#: cps/oauth_bb.py:175
msgid "Failed to fetch user info from Google."
msgstr "Error al obtener información de usuario de Google."
#: cps/oauth_bb.py:274
#: cps/oauth_bb.py:273
#, python-format
msgid "Unlink to %(oauth)s success."
msgstr "Desvinculado de %(oauth)s correctamente."
#: cps/oauth_bb.py:278
#: cps/oauth_bb.py:277
#, python-format
msgid "Unlink to %(oauth)s failed."
msgstr "Error al desvincular de %(oauth)s."
#: cps/oauth_bb.py:281
#: cps/oauth_bb.py:280
#, python-format
msgid "Not linked to %(oauth)s."
msgstr "No vinculado a %(oauth)s."
#: cps/oauth_bb.py:309
#: cps/oauth_bb.py:308
msgid "GitHub Oauth error, please retry later."
msgstr "Error en GitHub Oauth, por favor vuelva a intentarlo más tarde."
#: cps/oauth_bb.py:328
#: cps/oauth_bb.py:327
msgid "Google Oauth error, please retry later."
msgstr "Error en Google Oauth, por favor vuelva a intentarlo más tarde."
@ -518,403 +518,403 @@ msgstr "Los libros han sido añadidos al estante: %(sname)s"
msgid "Could not add books to shelf: %(sname)s"
msgstr "No se pudieron agregar libros al estante: %(sname)s"
#: cps/shelf.py:180
#: cps/shelf.py:181
#, python-format
msgid "Book has been removed from shelf: %(sname)s"
msgstr "El libro fue eliminado del estante: %(sname)s"
#: cps/shelf.py:186
#: cps/shelf.py:187
#, python-format
msgid "Sorry you are not allowed to remove a book from this shelf: %(sname)s"
msgstr "Lo siento, no tiene permiso para eliminar un libro del estante: %(sname)s"
#: cps/shelf.py:207 cps/shelf.py:231
#: cps/shelf.py:208 cps/shelf.py:232
#, python-format
msgid "A shelf with the name '%(title)s' already exists."
msgstr "Un estante con el nombre '%(title)s' ya existe."
#: cps/shelf.py:212
#: cps/shelf.py:213
#, python-format
msgid "Shelf %(title)s created"
msgstr "Estante %(title)s creado"
#: cps/shelf.py:214 cps/shelf.py:242
#: cps/shelf.py:215 cps/shelf.py:243
msgid "There was an error"
msgstr "Ha sucedido un error"
#: cps/shelf.py:215 cps/shelf.py:217
#: cps/shelf.py:216 cps/shelf.py:218
msgid "create a shelf"
msgstr "crear un estante"
#: cps/shelf.py:240
#: cps/shelf.py:241
#, python-format
msgid "Shelf %(title)s changed"
msgstr "Estante %(title)s cambiado"
#: cps/shelf.py:243 cps/shelf.py:245
#: cps/shelf.py:244 cps/shelf.py:246
msgid "Edit a shelf"
msgstr "Editar un estante"
#: cps/shelf.py:289
#: cps/shelf.py:296
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Estante: '%(name)s'"
#: cps/shelf.py:292
#: cps/shelf.py:299
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "Error al abrir un estante. El estante no existe o no es accesible"
#: cps/shelf.py:323
#: cps/shelf.py:333
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Cambiar orden del estante: '%(name)s'"
#: cps/ub.py:57
#: cps/ub.py:56
msgid "Recently Added"
msgstr "Añadido recientemente"
#: cps/ub.py:59
#: cps/ub.py:58
msgid "Show recent books"
msgstr "Mostrar libros recientes"
#: cps/templates/index.xml:17 cps/ub.py:60
#: cps/templates/index.xml:17 cps/ub.py:59
msgid "Hot Books"
msgstr "Libros populares"
#: cps/ub.py:61
#: cps/ub.py:60
msgid "Show hot books"
msgstr "Mostrar libros populares"
#: cps/templates/index.xml:24 cps/ub.py:64
#: cps/templates/index.xml:24 cps/ub.py:63
msgid "Best rated Books"
msgstr "Libros mejor valorados"
#: cps/ub.py:66
#: cps/ub.py:65
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:1009
#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:66
#: cps/web.py:1008
msgid "Read Books"
msgstr "Libros leídos"
#: cps/ub.py:69
#: cps/ub.py:68
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:1013
#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:70
#: cps/web.py:1012
msgid "Unread Books"
msgstr "Libros no leídos"
#: cps/ub.py:73
#: cps/ub.py:72
msgid "Show unread"
msgstr "Mostrar no leído"
#: cps/ub.py:74
#: cps/ub.py:73
msgid "Discover"
msgstr "Descubrir"
#: cps/ub.py:76
#: cps/ub.py:75
msgid "Show random books"
msgstr "Mostrar libros al azar"
#: cps/templates/index.xml:75 cps/ub.py:77
#: cps/templates/index.xml:75 cps/ub.py:76
msgid "Categories"
msgstr "Categorías"
#: cps/ub.py:79
#: cps/ub.py:78
msgid "Show category selection"
msgstr "Mostrar selección de categorías"
#: cps/templates/book_edit.html:71 cps/templates/index.xml:82
#: cps/templates/search_form.html:53 cps/ub.py:80
#: cps/templates/search_form.html:53 cps/ub.py:79
msgid "Series"
msgstr "Series"
#: cps/ub.py:82
#: cps/ub.py:81
msgid "Show series selection"
msgstr "Mostrar selección de series"
#: cps/templates/index.xml:61 cps/ub.py:83
#: cps/templates/index.xml:61 cps/ub.py:82
msgid "Authors"
msgstr "Autores"
#: cps/ub.py:85
#: cps/ub.py:84
msgid "Show author selection"
msgstr "Mostrar selección de autores"
#: cps/templates/index.xml:68 cps/ub.py:87
#: cps/templates/index.xml:68 cps/ub.py:86
msgid "Publishers"
msgstr "Editoras"
#: cps/ub.py:89
#: cps/ub.py:88
msgid "Show publisher selection"
msgstr "Mostrar selección de editores"
#: cps/templates/index.xml:89 cps/templates/search_form.html:74 cps/ub.py:90
#: cps/templates/index.xml:89 cps/templates/search_form.html:74 cps/ub.py:89
msgid "Languages"
msgstr "Idioma"
#: cps/ub.py:93
#: cps/ub.py:92
msgid "Show language selection"
msgstr "Mostrar selección de idiomas"
#: cps/ub.py:94
#: cps/ub.py:93
msgid "Ratings"
msgstr "Calificaciones"
#: cps/ub.py:96
#: cps/ub.py:95
msgid "Show ratings selection"
msgstr "Mostrar selección de calificaciones"
#: cps/templates/index.xml:96 cps/ub.py:97
#: cps/templates/index.xml:96 cps/ub.py:96
msgid "File formats"
msgstr "Formatos de archivo"
#: cps/ub.py:99
#: cps/ub.py:98
msgid "Show file formats selection"
msgstr "Mostrar selección de formatos de archivo"
#: cps/updater.py:252 cps/updater.py:359 cps/updater.py:372
#: cps/updater.py:251 cps/updater.py:358 cps/updater.py:371
msgid "Unexpected data while reading update information"
msgstr "Dato inesperado mientras se leía la información de actualización"
#: cps/updater.py:259 cps/updater.py:365
#: cps/updater.py:258 cps/updater.py:364
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:285
#: cps/updater.py:284
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:338
#: cps/updater.py:337
msgid "Could not fetch update information"
msgstr "No se puede conseguir información sobre la actualización"
#: cps/updater.py:352
#: cps/updater.py:351
msgid "No release information available"
msgstr "No hay información del lanzamiento disponible"
#: cps/updater.py:405 cps/updater.py:414
#: cps/updater.py:404 cps/updater.py:413
#, 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:424
#: cps/updater.py:423
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:486
#: cps/web.py:485
msgid "Recently Added Books"
msgstr "Libros añadidos recientemente"
#: cps/web.py:514
#: cps/web.py:513
msgid "Best rated books"
msgstr "Libros mejor valorados"
#: cps/templates/index.xml:38 cps/web.py:522
#: cps/templates/index.xml:38 cps/web.py:521
msgid "Random Books"
msgstr "Libros al azar"
#: cps/web.py:548
#: cps/web.py:547
msgid "Books"
msgstr "Libros"
#: cps/web.py:575
#: cps/web.py:574
msgid "Hot Books (most downloaded)"
msgstr "Libros populares (los más descargados)"
#: cps/web.py:586 cps/web.py:1379 cps/web.py:1475
#: cps/web.py:585 cps/web.py:1378 cps/web.py:1474
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:599
#: cps/web.py:598
#, python-format
msgid "Author: %(name)s"
msgstr "Autor/es: %(name)s"
#: cps/web.py:611
#: cps/web.py:610
#, python-format
msgid "Publisher: %(name)s"
msgstr "Editor/es: "
#: cps/web.py:622
#: cps/web.py:621
#, python-format
msgid "Series: %(serie)s"
msgstr "Series: %(serie)s"
#: cps/web.py:633
#: cps/web.py:632
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Calificación: %(rating)s estrellas"
#: cps/web.py:644
#: cps/web.py:643
#, python-format
msgid "File format: %(format)s"
msgstr "Formato del fichero: %(format)s"
#: cps/web.py:656
#: cps/web.py:655
#, python-format
msgid "Category: %(name)s"
msgstr "Categoría : %(name)s"
#: cps/web.py:673
#: cps/web.py:672
#, python-format
msgid "Language: %(name)s"
msgstr "Idioma: %(name)s"
#: cps/web.py:705
#: cps/web.py:704
msgid "Publisher list"
msgstr "Lista de editores"
#: cps/web.py:721
#: cps/web.py:720
msgid "Series list"
msgstr "Lista de series"
#: cps/web.py:735
#: cps/web.py:734
msgid "Ratings list"
msgstr "Lista de calificaciones"
#: cps/web.py:748
#: cps/web.py:747
msgid "File formats list"
msgstr "Lista de formatos"
#: cps/web.py:776
#: cps/web.py:775
msgid "Available languages"
msgstr "Idiomas disponibles"
#: cps/web.py:793
#: cps/web.py:792
msgid "Category list"
msgstr "Lista de categorías"
#: cps/templates/layout.html:73 cps/web.py:807
#: cps/templates/layout.html:73 cps/web.py:806
msgid "Tasks"
msgstr "Tareas"
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45 cps/web.py:827 cps/web.py:829
#: cps/templates/layout.html:45 cps/web.py:826 cps/web.py:828
msgid "Search"
msgstr "Buscar"
#: cps/web.py:879
#: cps/web.py:878
msgid "Published after "
msgstr "Publicado después de"
#: cps/web.py:886
#: cps/web.py:885
msgid "Published before "
msgstr "Publicado antes de"
#: cps/web.py:900
#: cps/web.py:899
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Calificación <= %(rating)s"
#: cps/web.py:902
#: cps/web.py:901
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Calificación >= %(rating)s"
#: cps/web.py:968 cps/web.py:980
#: cps/web.py:967 cps/web.py:979
msgid "search"
msgstr "búsqueda"
#: cps/web.py:1064
#: cps/web.py:1063
#, 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:1068
#: cps/web.py:1067
#, 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:1070
#: cps/web.py:1069
msgid "Please configure your kindle e-mail address first..."
msgstr "Por favor configure primero la dirección de correo de su kindle..."
#: cps/web.py:1084
#: cps/web.py:1083
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr ""
#: cps/web.py:1085 cps/web.py:1091 cps/web.py:1116 cps/web.py:1120
#: cps/web.py:1125 cps/web.py:1129
#: cps/web.py:1084 cps/web.py:1090 cps/web.py:1115 cps/web.py:1119
#: cps/web.py:1124 cps/web.py:1128
msgid "register"
msgstr "registrarse"
#: cps/web.py:1118
#: cps/web.py:1117
msgid "Your e-mail is not allowed to register"
msgstr "Su correo electrónico no está permitido para registrarse"
#: cps/web.py:1121
#: cps/web.py:1120
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:1124
#: cps/web.py:1123
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:1141
#: cps/web.py:1140
msgid "Cannot activate LDAP authentication"
msgstr "No se puede activar la autenticación LDAP"
#: cps/web.py:1151 cps/web.py:1278
#: cps/web.py:1150 cps/web.py:1277
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "Sesión iniciada como : '%(nickname)s'"
#: cps/web.py:1156
#: cps/web.py:1155
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:1160 cps/web.py:1183
#: cps/web.py:1159 cps/web.py:1182
msgid "Wrong Username or Password"
msgstr "Usuario o contraseña inválido"
#: cps/web.py:1167
#: cps/web.py:1166
msgid "New Password was send to your email address"
msgstr ""
#: cps/web.py:1173
#: cps/web.py:1172
msgid "Please enter valid username to reset password"
msgstr ""
#: cps/web.py:1179
#: cps/web.py:1178
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "Ahora estás conectado como: '%(nickname)s'"
#: cps/web.py:1186 cps/web.py:1210
#: cps/web.py:1185 cps/web.py:1209
msgid "login"
msgstr "Iniciar sesión"
#: cps/web.py:1222 cps/web.py:1256
#: cps/web.py:1221 cps/web.py:1255
msgid "Token not found"
msgstr "Token no encontrado"
#: cps/web.py:1231 cps/web.py:1264
#: cps/web.py:1230 cps/web.py:1263
msgid "Token has expired"
msgstr "El token ha expirado"
#: cps/web.py:1240
#: cps/web.py:1239
msgid "Success! Please return to your device"
msgstr "¡Correcto! Por favor regrese a su dispositivo"
#: cps/web.py:1317 cps/web.py:1360 cps/web.py:1366
#: cps/web.py:1316 cps/web.py:1359 cps/web.py:1365
#, python-format
msgid "%(name)s's profile"
msgstr "Perfil de %(name)s"
#: cps/web.py:1362
#: cps/web.py:1361
msgid "Profile updated"
msgstr "Perfil actualizado"
#: cps/web.py:1391 cps/web.py:1394 cps/web.py:1397 cps/web.py:1404
#: cps/web.py:1409
#: cps/web.py:1390 cps/web.py:1393 cps/web.py:1396 cps/web.py:1403
#: cps/web.py:1408
msgid "Read a Book"
msgstr "Leer un libro"
#: cps/web.py:1420
#: cps/web.py:1419
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."

View File

@ -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: 2020-02-01 15:02+0100\n"
"POT-Creation-Date: 2020-02-16 18:54+0100\n"
"PO-Revision-Date: 2020-01-12 13:56+0100\n"
"Last-Translator: Samuli Valavuo <svalavuo@gmail.com>\n"
"Language: fi\n"
@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.7.0\n"
"Generated-By: Babel 2.8.0\n"
#: cps/about.py:42
msgid "installed"
@ -30,173 +30,173 @@ msgstr "ei asennettu"
msgid "Statistics"
msgstr "Tilastot"
#: cps/admin.py:89
#: cps/admin.py:88
msgid "Server restarted, please reload page"
msgstr "Palvelin uudelleenkäynnistetty, ole hyvä ja päivitä sivu"
#: cps/admin.py:91
#: cps/admin.py:90
msgid "Performing shutdown of server, please close window"
msgstr "Palvelinta sammutetaan, ole hyvä ja sulje sivu"
#: cps/admin.py:110 cps/editbooks.py:410 cps/editbooks.py:419
#: cps/admin.py:109 cps/editbooks.py:410 cps/editbooks.py:419
#: cps/editbooks.py:539 cps/editbooks.py:541 cps/editbooks.py:594
#: cps/updater.py:446 cps/uploader.py:97 cps/uploader.py:108
#: cps/updater.py:445 cps/uploader.py:96 cps/uploader.py:107
msgid "Unknown"
msgstr "Tuntematon"
#: cps/admin.py:129
#: cps/admin.py:128
msgid "Admin page"
msgstr "Ylläpitosivu"
#: cps/admin.py:148 cps/templates/admin.html:115
#: cps/admin.py:147 cps/templates/admin.html:115
msgid "UI Configuration"
msgstr "Käyttöliittymän asetukset"
#: cps/admin.py:185 cps/admin.py:412
#: cps/admin.py:184 cps/admin.py:411
msgid "Calibre-Web configuration updated"
msgstr "Calibre-Web asetukset päivitetty"
#: cps/admin.py:442 cps/templates/admin.html:114
#: cps/admin.py:441 cps/templates/admin.html:114
msgid "Basic Configuration"
msgstr "Perusasetukset"
#: cps/admin.py:465 cps/web.py:1090
#: cps/admin.py:464 cps/web.py:1089
msgid "Please fill out all fields!"
msgstr "Ole hyvä ja täytä kaikki kentät!"
#: cps/admin.py:467 cps/admin.py:478 cps/admin.py:484 cps/admin.py:499
#: cps/admin.py:466 cps/admin.py:477 cps/admin.py:483 cps/admin.py:498
#: cps/templates/admin.html:38
msgid "Add new user"
msgstr "Lisää uusi käyttäjä"
#: cps/admin.py:476 cps/web.py:1315
#: cps/admin.py:475 cps/web.py:1314
msgid "E-mail is not from valid domain"
msgstr "Sähköpostiosoite ei ole toimivasta domainista"
#: cps/admin.py:482 cps/admin.py:493
#: cps/admin.py:481 cps/admin.py:492
msgid "Found an existing account for this e-mail address or nickname."
msgstr "Tälle sähköpostiosoitteelle tai tunnukselle löytyi jo tili."
#: cps/admin.py:489
#: cps/admin.py:488
#, python-format
msgid "User '%(user)s' created"
msgstr "Käyttäjä '%(user)s' lisätty"
#: cps/admin.py:509
#: cps/admin.py:508
msgid "Edit e-mail server settings"
msgstr "Muuta sähköpostipalvelimen asetuksia"
#: cps/admin.py:535
#: cps/admin.py:534
#, python-format
msgid "Test e-mail successfully send to %(kindlemail)s"
msgstr "Testisähköposti lähetetty onnistuneesti osoitteeseen %(kindlemail)s"
#: cps/admin.py:538
#: cps/admin.py:537
#, python-format
msgid "There was an error sending the Test e-mail: %(res)s"
msgstr "Testisähköpostin lähetyksessä tapahtui virhe: %(res)s"
#: cps/admin.py:540
#: cps/admin.py:539
msgid "Please configure your e-mail address first..."
msgstr ""
#: cps/admin.py:542
#: cps/admin.py:541
msgid "E-mail server settings updated"
msgstr "Sähköpostipalvelimen tiedot päivitetty"
#: cps/admin.py:571
#: cps/admin.py:570
#, python-format
msgid "User '%(nick)s' deleted"
msgstr "Käyttäjä '%(nick)s' poistettu"
#: cps/admin.py:574
#: cps/admin.py:573
msgid "No admin user remaining, can't delete user"
msgstr "Pääkäyttäjiä ei jää jäljelle, käyttäjää ei voi poistaa"
#: cps/admin.py:612 cps/web.py:1356
#: cps/admin.py:611 cps/web.py:1355
msgid "Found an existing account for this e-mail address."
msgstr "Tälle sähköpostiosoitteelle läytyi jo käyttäjätunnus."
#: cps/admin.py:616 cps/admin.py:630 cps/admin.py:644 cps/web.py:1331
#: cps/admin.py:615 cps/admin.py:629 cps/admin.py:643 cps/web.py:1330
#, python-format
msgid "Edit User %(nick)s"
msgstr "Muokkaa käyttäjää %(nick)s"
#: cps/admin.py:622 cps/web.py:1324
#: cps/admin.py:621 cps/web.py:1323
msgid "This username is already taken"
msgstr ""
#: cps/admin.py:637
#: cps/admin.py:636
#, python-format
msgid "User '%(nick)s' updated"
msgstr "Käyttäjä '%(nick)s' päivitetty"
#: cps/admin.py:640
#: cps/admin.py:639
msgid "An unknown error occured."
msgstr "Tapahtui tuntematon virhe."
#: cps/admin.py:657
#: cps/admin.py:656
#, python-format
msgid "Password for user %(user)s reset"
msgstr "Käyttäjän %(user)s salasana palautettu"
#: cps/admin.py:660 cps/web.py:1115 cps/web.py:1171
#: cps/admin.py:659 cps/web.py:1114 cps/web.py:1170
msgid "An unknown error occurred. Please try again later."
msgstr "Tapahtui tuntematon virhe. Yritä myöhemmin uudelleen."
#: cps/admin.py:663 cps/web.py:1059
#: cps/admin.py:662 cps/web.py:1058
msgid "Please configure the SMTP mail settings first..."
msgstr "Ole hyvä ja aseta SMTP postiasetukset ensin..."
#: cps/admin.py:675
#: cps/admin.py:674
msgid "Logfile viewer"
msgstr "Lokitiedoston katselin"
#: cps/admin.py:714
#: cps/admin.py:713
msgid "Requesting update package"
msgstr "Haetaan päivitystiedostoa"
#: cps/admin.py:715
#: cps/admin.py:714
msgid "Downloading update package"
msgstr "Ladataan päivitystiedostoa"
#: cps/admin.py:716
#: cps/admin.py:715
msgid "Unzipping update package"
msgstr "Puretaan päivitystiedostoa"
#: cps/admin.py:717
#: cps/admin.py:716
msgid "Replacing files"
msgstr "Korvataan tiedostoja"
#: cps/admin.py:718
#: cps/admin.py:717
msgid "Database connections are closed"
msgstr "Tietokantayhteydet on katkaistu"
#: cps/admin.py:719
#: cps/admin.py:718
msgid "Stopping server"
msgstr "Sammutetaan palvelin"
#: cps/admin.py:720
#: cps/admin.py:719
msgid "Update finished, please press okay and reload page"
msgstr "Päivitys valmistui, ole hyvä ja paina OK ja lataa sivu uudelleen"
#: cps/admin.py:721 cps/admin.py:722 cps/admin.py:723 cps/admin.py:724
#: cps/admin.py:720 cps/admin.py:721 cps/admin.py:722 cps/admin.py:723
msgid "Update failed:"
msgstr "Päivitys epäonnistui:"
#: cps/admin.py:721 cps/updater.py:272 cps/updater.py:457 cps/updater.py:459
#: cps/admin.py:720 cps/updater.py:271 cps/updater.py:456 cps/updater.py:458
msgid "HTTP Error"
msgstr "HTTP virhe"
#: cps/admin.py:722 cps/updater.py:274 cps/updater.py:461
#: cps/admin.py:721 cps/updater.py:273 cps/updater.py:460
msgid "Connection error"
msgstr "Yhteysvirhe"
#: cps/admin.py:723 cps/updater.py:276 cps/updater.py:463
#: cps/admin.py:722 cps/updater.py:275 cps/updater.py:462
msgid "Timeout while establishing connection"
msgstr "Aikakatkaisu yhteyttä luotaessa"
#: cps/admin.py:724 cps/updater.py:278 cps/updater.py:465
#: cps/admin.py:723 cps/updater.py:277 cps/updater.py:464
msgid "General error"
msgstr "Yleinen virhe"
@ -295,11 +295,11 @@ msgstr "Kirja lisätty muutosjonoon muotoon %(book_format)s"
msgid "There was an error converting this book: %(res)s"
msgstr "Kirjan muunnoksessa tapahtui virhe: %(res)s"
#: cps/gdrive.py:62
#: cps/gdrive.py:61
msgid "Google Drive setup not completed, try to deactivate and activate Google Drive again"
msgstr "Google Drive asetukset ei ole valmiit. Koita poistaa Google Drive käytöstä ja ottaa se uudelleen käyttöön"
#: cps/gdrive.py:104
#: cps/gdrive.py:103
msgid "Callback domain is not verified, please follow steps to verify domain in google developer console"
msgstr "Paluuosoitteen domain ei ole varmistettu, seuraa ohjeita vamistaaksesi sen googlen kehittäjäkonsolissa"
@ -425,47 +425,47 @@ msgstr "Lähetä: "
msgid "Unknown Task: "
msgstr "Tuntematon tehtävä: "
#: cps/oauth_bb.py:75
#: cps/oauth_bb.py:74
#, python-format
msgid "Register with %(provider)s"
msgstr "Rekisteröi tuottajalle %(provider)s"
#: cps/oauth_bb.py:155
#: cps/oauth_bb.py:154
msgid "Failed to log in with GitHub."
msgstr "GitHubiin kirjautuminen epäonnistui."
#: cps/oauth_bb.py:160
#: cps/oauth_bb.py:159
msgid "Failed to fetch user info from GitHub."
msgstr "Käyttäjätietojen haku GitHubista epäonnistui"
#: cps/oauth_bb.py:171
#: cps/oauth_bb.py:170
msgid "Failed to log in with Google."
msgstr "Googleen kirjautuminen epäonnistui."
#: cps/oauth_bb.py:176
#: cps/oauth_bb.py:175
msgid "Failed to fetch user info from Google."
msgstr "Käyttäjätietojen haku Googlesta epäonnistui."
#: cps/oauth_bb.py:274
#: cps/oauth_bb.py:273
#, python-format
msgid "Unlink to %(oauth)s success."
msgstr "Linkityksen purku kohteesta %(oauth)s onnistui."
#: cps/oauth_bb.py:278
#: cps/oauth_bb.py:277
#, python-format
msgid "Unlink to %(oauth)s failed."
msgstr "Linkityksen purku kohteesta %(oauth)s epäonnistui."
#: cps/oauth_bb.py:281
#: cps/oauth_bb.py:280
#, python-format
msgid "Not linked to %(oauth)s."
msgstr "Ei linkitetty kohteeseen %(oauth)s."
#: cps/oauth_bb.py:309
#: cps/oauth_bb.py:308
msgid "GitHub Oauth error, please retry later."
msgstr "GitHub Oauth virhe, yritä myöhemmin uudelleen."
#: cps/oauth_bb.py:328
#: cps/oauth_bb.py:327
msgid "Google Oauth error, please retry later."
msgstr "Google Oauth virhe, yritä myöhemmin uudelleen."
@ -516,403 +516,403 @@ msgstr "Kirjat on lisätty hyllyyn: %(sname)s"
msgid "Could not add books to shelf: %(sname)s"
msgstr "Kirjojen lisäys hyllyyn: %(sname)s epäonnistui"
#: cps/shelf.py:180
#: cps/shelf.py:181
#, python-format
msgid "Book has been removed from shelf: %(sname)s"
msgstr "Kirja on poistettu hyllystä: %(sname)s"
#: cps/shelf.py:186
#: cps/shelf.py:187
#, python-format
msgid "Sorry you are not allowed to remove a book from this shelf: %(sname)s"
msgstr "Valitettavsti sinulla ei ole oikeutta poistaa kirjaa hyllystä: %(sname)s"
#: cps/shelf.py:207 cps/shelf.py:231
#: cps/shelf.py:208 cps/shelf.py:232
#, python-format
msgid "A shelf with the name '%(title)s' already exists."
msgstr "'%(title)s' niminen hylly on jo olemassa."
#: cps/shelf.py:212
#: cps/shelf.py:213
#, python-format
msgid "Shelf %(title)s created"
msgstr "Hylly %(title)s luotu"
#: cps/shelf.py:214 cps/shelf.py:242
#: cps/shelf.py:215 cps/shelf.py:243
msgid "There was an error"
msgstr "Tapahtui virhe"
#: cps/shelf.py:215 cps/shelf.py:217
#: cps/shelf.py:216 cps/shelf.py:218
msgid "create a shelf"
msgstr "luo hylly"
#: cps/shelf.py:240
#: cps/shelf.py:241
#, python-format
msgid "Shelf %(title)s changed"
msgstr "Hylly %(title)s muutettu"
#: cps/shelf.py:243 cps/shelf.py:245
#: cps/shelf.py:244 cps/shelf.py:246
msgid "Edit a shelf"
msgstr "Muokkaa hyllyä"
#: cps/shelf.py:289
#: cps/shelf.py:296
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Hylly: '%(name)s'"
#: cps/shelf.py:292
#: cps/shelf.py:299
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "Virhe hyllyn avauksessa. Hyllyä ei ole tai se ei ole saatavilla"
#: cps/shelf.py:323
#: cps/shelf.py:333
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Muuta hyllyn: '%(name)s' järjestystä"
#: cps/ub.py:57
#: cps/ub.py:56
msgid "Recently Added"
msgstr "Viimeksi lisätty"
#: cps/ub.py:59
#: cps/ub.py:58
msgid "Show recent books"
msgstr "Näytä viimeisimmät kirjat"
#: cps/templates/index.xml:17 cps/ub.py:60
#: cps/templates/index.xml:17 cps/ub.py:59
msgid "Hot Books"
msgstr "Kuumat kirjat"
#: cps/ub.py:61
#: cps/ub.py:60
msgid "Show hot books"
msgstr "Näytä kuumat kirjat"
#: cps/templates/index.xml:24 cps/ub.py:64
#: cps/templates/index.xml:24 cps/ub.py:63
msgid "Best rated Books"
msgstr "Parhaiten arvioidut kirjat"
#: cps/ub.py:66
#: cps/ub.py:65
msgid "Show best rated books"
msgstr "Näytä parhaiten arvioidut kirjat"
#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:67
#: cps/web.py:1009
#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:66
#: cps/web.py:1008
msgid "Read Books"
msgstr "Luetut kirjat"
#: cps/ub.py:69
#: cps/ub.py:68
msgid "Show read and unread"
msgstr "Näytä luetut ja lukemattomat"
#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:71
#: cps/web.py:1013
#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:70
#: cps/web.py:1012
msgid "Unread Books"
msgstr "Lukemattomat kirjat"
#: cps/ub.py:73
#: cps/ub.py:72
msgid "Show unread"
msgstr "Näyt lukemattomat"
#: cps/ub.py:74
#: cps/ub.py:73
msgid "Discover"
msgstr "Löydä"
#: cps/ub.py:76
#: cps/ub.py:75
msgid "Show random books"
msgstr "Näytä satunnaisia kirjoja"
#: cps/templates/index.xml:75 cps/ub.py:77
#: cps/templates/index.xml:75 cps/ub.py:76
msgid "Categories"
msgstr "Kategoriat"
#: cps/ub.py:79
#: cps/ub.py:78
msgid "Show category selection"
msgstr "Näytä kategoriavalinta"
#: cps/templates/book_edit.html:71 cps/templates/index.xml:82
#: cps/templates/search_form.html:53 cps/ub.py:80
#: cps/templates/search_form.html:53 cps/ub.py:79
msgid "Series"
msgstr "Sarjat"
#: cps/ub.py:82
#: cps/ub.py:81
msgid "Show series selection"
msgstr "Näytä sarjavalinta"
#: cps/templates/index.xml:61 cps/ub.py:83
#: cps/templates/index.xml:61 cps/ub.py:82
msgid "Authors"
msgstr "Kirjailijat"
#: cps/ub.py:85
#: cps/ub.py:84
msgid "Show author selection"
msgstr "Näytä kirjailijavalinta"
#: cps/templates/index.xml:68 cps/ub.py:87
#: cps/templates/index.xml:68 cps/ub.py:86
msgid "Publishers"
msgstr "Julkaisijat"
#: cps/ub.py:89
#: cps/ub.py:88
msgid "Show publisher selection"
msgstr "Näytä julkaisijavalinta"
#: cps/templates/index.xml:89 cps/templates/search_form.html:74 cps/ub.py:90
#: cps/templates/index.xml:89 cps/templates/search_form.html:74 cps/ub.py:89
msgid "Languages"
msgstr "Kielet"
#: cps/ub.py:93
#: cps/ub.py:92
msgid "Show language selection"
msgstr "Näytä keilivalinta"
#: cps/ub.py:94
#: cps/ub.py:93
msgid "Ratings"
msgstr "Arvostelut"
#: cps/ub.py:96
#: cps/ub.py:95
msgid "Show ratings selection"
msgstr "Näytä arvosteluvalinta"
#: cps/templates/index.xml:96 cps/ub.py:97
#: cps/templates/index.xml:96 cps/ub.py:96
msgid "File formats"
msgstr "Tiedotomuodot"
#: cps/ub.py:99
#: cps/ub.py:98
msgid "Show file formats selection"
msgstr "Näytä tiedostomuotovalinta"
#: cps/updater.py:252 cps/updater.py:359 cps/updater.py:372
#: cps/updater.py:251 cps/updater.py:358 cps/updater.py:371
msgid "Unexpected data while reading update information"
msgstr "Odottamatonta tietoa luettaessa päivitystietoa"
#: cps/updater.py:259 cps/updater.py:365
#: cps/updater.py:258 cps/updater.py:364
msgid "No update available. You already have the latest version installed"
msgstr "Ei päivitystä saatavilla. Sinulla on jo uusin versio"
#: cps/updater.py:285
#: cps/updater.py:284
msgid "A new update is available. Click on the button below to update to the latest version."
msgstr "Uusi päivitys saatavilla. Paina alla olevaa nappia päivittääksesi uusimpaan versioon."
#: cps/updater.py:338
#: cps/updater.py:337
msgid "Could not fetch update information"
msgstr "Päivitystiedon hakeminen epäonnistui"
#: cps/updater.py:352
#: cps/updater.py:351
msgid "No release information available"
msgstr "Ei päivitystietoa saatavilla"
#: cps/updater.py:405 cps/updater.py:414
#: cps/updater.py:404 cps/updater.py:413
#, python-format
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr "Uusi päivitys saatavilla. Paina alla olevaa nappia päivittääksesi versioon: %(version)s"
#: cps/updater.py:424
#: cps/updater.py:423
msgid "Click on the button below to update to the latest stable version."
msgstr "Paina alla olevaa nappia päivittääksesi uusimpaan vakaaseen versioon."
#: cps/web.py:486
#: cps/web.py:485
msgid "Recently Added Books"
msgstr "Viimeksi lisätyt kirjat"
#: cps/web.py:514
#: cps/web.py:513
msgid "Best rated books"
msgstr "Parhaiksi arvostellut kirjat"
#: cps/templates/index.xml:38 cps/web.py:522
#: cps/templates/index.xml:38 cps/web.py:521
msgid "Random Books"
msgstr "Satunnaisia kirjoja"
#: cps/web.py:548
#: cps/web.py:547
msgid "Books"
msgstr "Kirjat"
#: cps/web.py:575
#: cps/web.py:574
msgid "Hot Books (most downloaded)"
msgstr "Kuumat kirjat (ladatuimmat)"
#: cps/web.py:586 cps/web.py:1379 cps/web.py:1475
#: cps/web.py:585 cps/web.py:1378 cps/web.py:1474
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "Virhe eKirjan avaamisessa. Tiedostoa ei ole tai se ei ole saatavilla:"
#: cps/web.py:599
#: cps/web.py:598
#, python-format
msgid "Author: %(name)s"
msgstr "Kirjailija: %(name)s"
#: cps/web.py:611
#: cps/web.py:610
#, python-format
msgid "Publisher: %(name)s"
msgstr "Julkaisija: %(name)s"
#: cps/web.py:622
#: cps/web.py:621
#, python-format
msgid "Series: %(serie)s"
msgstr "Sarja: %(serie)s"
#: cps/web.py:633
#: cps/web.py:632
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Arvostelu: %(rating)s tähteä"
#: cps/web.py:644
#: cps/web.py:643
#, python-format
msgid "File format: %(format)s"
msgstr "Tiedostomuoto: %(format)s"
#: cps/web.py:656
#: cps/web.py:655
#, python-format
msgid "Category: %(name)s"
msgstr "Kategoria: %(name)s"
#: cps/web.py:673
#: cps/web.py:672
#, python-format
msgid "Language: %(name)s"
msgstr "Kieli: %(name)s"
#: cps/web.py:705
#: cps/web.py:704
msgid "Publisher list"
msgstr "Julkaisjalistaus"
#: cps/web.py:721
#: cps/web.py:720
msgid "Series list"
msgstr "Sarjalistaus"
#: cps/web.py:735
#: cps/web.py:734
msgid "Ratings list"
msgstr "Arvostelulistaus"
#: cps/web.py:748
#: cps/web.py:747
msgid "File formats list"
msgstr "Tiedostomuotolistaus"
#: cps/web.py:776
#: cps/web.py:775
msgid "Available languages"
msgstr "Tillgängliga språk"
#: cps/web.py:793
#: cps/web.py:792
msgid "Category list"
msgstr "Kategorilista"
#: cps/templates/layout.html:73 cps/web.py:807
#: cps/templates/layout.html:73 cps/web.py:806
msgid "Tasks"
msgstr "Tehtävät"
#: cps/templates/feed.xml:33 cps/templates/layout.html:44
#: cps/templates/layout.html:45 cps/web.py:827 cps/web.py:829
#: cps/templates/layout.html:45 cps/web.py:826 cps/web.py:828
msgid "Search"
msgstr "Hae"
#: cps/web.py:879
#: cps/web.py:878
msgid "Published after "
msgstr "Julkaistu alkaen "
#: cps/web.py:886
#: cps/web.py:885
msgid "Published before "
msgstr "Julkaisut ennen "
#: cps/web.py:900
#: cps/web.py:899
#, python-format
msgid "Rating <= %(rating)s"
msgstr "Arvostelu <= %(rating)s"
#: cps/web.py:902
#: cps/web.py:901
#, python-format
msgid "Rating >= %(rating)s"
msgstr "Arvostelu >= %(rating)s"
#: cps/web.py:968 cps/web.py:980
#: cps/web.py:967 cps/web.py:979
msgid "search"
msgstr "hae"
#: cps/web.py:1064
#: cps/web.py:1063
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Kirja lisätty onnistuneeksi lähetettäväksi osoitteeseen %(kindlemail)s"
#: cps/web.py:1068
#: cps/web.py:1067
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr "Kirjan: %(res)s lähettämisessa tapahtui virhe"
#: cps/web.py:1070
#: cps/web.py:1069
msgid "Please configure your kindle e-mail address first..."
msgstr "Ole hyvä ja aseta Kindle sähköpostiosoite ensin..."
#: cps/web.py:1084
#: cps/web.py:1083
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr ""
#: cps/web.py:1085 cps/web.py:1091 cps/web.py:1116 cps/web.py:1120
#: cps/web.py:1125 cps/web.py:1129
#: cps/web.py:1084 cps/web.py:1090 cps/web.py:1115 cps/web.py:1119
#: cps/web.py:1124 cps/web.py:1128
msgid "register"
msgstr "rekisteröidy"
#: cps/web.py:1118
#: cps/web.py:1117
msgid "Your e-mail is not allowed to register"
msgstr "Sähköpostiosoitteellasi ei ole sallittua rekisteröityä"
#: cps/web.py:1121
#: cps/web.py:1120
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Vahvistusviesti on lähetetty sähköpostiosoitteeseesi."
#: cps/web.py:1124
#: cps/web.py:1123
msgid "This username or e-mail address is already in use."
msgstr "Käyttäjätunnus tai sähköpostiosoite on jo käytössä."
#: cps/web.py:1141
#: cps/web.py:1140
msgid "Cannot activate LDAP authentication"
msgstr "LDAP autnetikoinnin aktivointi ei onnistu"
#: cps/web.py:1151 cps/web.py:1278
#: cps/web.py:1150 cps/web.py:1277
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "olet nyt kirjautunut tunnuksella: \"%(nickname)s\""
#: cps/web.py:1156
#: cps/web.py:1155
msgid "Could not login. LDAP server down, please contact your administrator"
msgstr "Kirjautuminen epäonnistui. LDAP palvelin alhaalla, ot yhteyttä ylläpitoon"
#: cps/web.py:1160 cps/web.py:1183
#: cps/web.py:1159 cps/web.py:1182
msgid "Wrong Username or Password"
msgstr "Väärä käyttäjätunnus tai salasana"
#: cps/web.py:1167
#: cps/web.py:1166
msgid "New Password was send to your email address"
msgstr ""
#: cps/web.py:1173
#: cps/web.py:1172
msgid "Please enter valid username to reset password"
msgstr ""
#: cps/web.py:1179
#: cps/web.py:1178
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "olet kirjautunut tunnuksella: '%(nickname)s'"
#: cps/web.py:1186 cps/web.py:1210
#: cps/web.py:1185 cps/web.py:1209
msgid "login"
msgstr "kirjaudu"
#: cps/web.py:1222 cps/web.py:1256
#: cps/web.py:1221 cps/web.py:1255
msgid "Token not found"
msgstr "Valtuutusta ei löytynyt"
#: cps/web.py:1231 cps/web.py:1264
#: cps/web.py:1230 cps/web.py:1263
msgid "Token has expired"
msgstr "Valtuutus vanhentunut"
#: cps/web.py:1240
#: cps/web.py:1239
msgid "Success! Please return to your device"
msgstr "Onnistui! Ole hyvä ja palaa laitteellesi"
#: cps/web.py:1317 cps/web.py:1360 cps/web.py:1366
#: cps/web.py:1316 cps/web.py:1359 cps/web.py:1365
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)sn profiili"
#: cps/web.py:1362
#: cps/web.py:1361
msgid "Profile updated"
msgstr "Profiili päivitetty"
#: cps/web.py:1391 cps/web.py:1394 cps/web.py:1397 cps/web.py:1404
#: cps/web.py:1409
#: cps/web.py:1390 cps/web.py:1393 cps/web.py:1396 cps/web.py:1403
#: cps/web.py:1408
msgid "Read a Book"
msgstr "Lue kirja"
#: cps/web.py:1420
#: cps/web.py:1419
msgid "Error opening eBook. File does not exist or file is not accessible."
msgstr "Virhe kirjan avaamisessa. Tiedostoa ei ole tai se ei ole saatavilla."

Some files were not shown because too many files have changed in this diff Show More