Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
douban-api-proxy
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
captainwong
douban-api-proxy
Commits
1a7052b2
Commit
1a7052b2
authored
Feb 23, 2019
by
Ozzieisaacs
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update pdf upload
Translation of uploadprogress dialog
parent
17b73339
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
444 additions
and
462 deletions
+444
-462
book_formats.py
cps/book_formats.py
+1
-1
helper.py
cps/helper.py
+4
-1
uploadprogress.js
cps/static/js/uploadprogress.js
+86
-82
layout.html
cps/templates/layout.html
+7
-1
messages.mo
cps/translations/de/LC_MESSAGES/messages.mo
+0
-0
messages.po
cps/translations/de/LC_MESSAGES/messages.po
+173
-208
web.py
cps/web.py
+2
-2
messages.pot
messages.pot
+171
-167
No files found.
cps/book_formats.py
View file @
1a7052b2
...
...
@@ -101,7 +101,7 @@ def default_meta(tmp_file_path, original_file_name, original_file_extension):
def
pdf_meta
(
tmp_file_path
,
original_file_name
,
original_file_extension
):
if
use_pdf_meta
:
pdf
=
PdfFileReader
(
open
(
tmp_file_path
,
'rb'
))
pdf
=
PdfFileReader
(
open
(
tmp_file_path
,
'rb'
)
,
strict
=
False
)
doc_info
=
pdf
.
getDocumentInfo
()
else
:
doc_info
=
None
...
...
cps/helper.py
View file @
1a7052b2
...
...
@@ -230,7 +230,10 @@ def get_valid_filename(value, replace_whitespace=True):
value
=
value
[:
128
]
if
not
value
:
raise
ValueError
(
"Filename cannot be empty"
)
return
value
if
sys
.
version_info
.
major
==
3
:
return
value
else
:
return
value
.
decode
(
'utf-8'
)
def
get_sorted_author
(
value
):
...
...
cps/static/js/uploadprogress.js
View file @
1a7052b2
...
...
@@ -6,41 +6,41 @@
* Version 1.0.0
* Licensed under the MIT license.
*/
(
function
(
$
){
(
function
(
$
)
{
"use strict"
;
$
.
support
.
xhrFileUpload
=
!!
(
window
.
FileReader
&&
window
.
ProgressEvent
);
$
.
support
.
xhrFormData
=
!!
window
.
FormData
;
if
(
!
$
.
support
.
xhrFileUpload
||
!
$
.
support
.
xhrFormData
)
{
if
(
!
$
.
support
.
xhrFileUpload
||
!
$
.
support
.
xhrFormData
)
{
// skip decorating form
return
;
}
var
template
=
'<div class="modal fade" id="file-progress-modal">
\
<div class="modal-dialog">
\
<div class="modal-content">
\
<div class="modal-header">
\
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
\
<h4 class="modal-title">Uploading</h4>
\
</div>
\
<div class="modal-body">
\
<div class="modal-message"></div>
\
<div class="progress">
\
<div class="progress-bar progress-bar-striped active" role="progressbar" aria-valuenow="0" aria-valuemin="0"
\
aria-valuemax="100" style="width: 0%;min-width: 2em;">
\
0%
\
</div>
\
</div>
\
</div>
\
<div class="modal-footer" style="display:none">
\
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
\
</div>
\
</div>
\
</div>
\
</div>'
;
var
UploadProgress
=
function
(
element
,
options
){
var
template
=
"<div class=
\"
modal fade
\"
id=
\"
file-progress-modal
\"
>"
+
"<div class=
\"
modal-dialog
\"
>"
+
" <div class=
\"
modal-content
\"
>"
+
" <div class=
\"
modal-header
\"
>"
+
" <button type=
\"
button
\"
class=
\"
close
\"
data-dismiss=
\"
modal
\"
aria-label=
\"
Close
\"
><span aria-hidden=
\"
true
\"
>×</span></button>"
+
" <h4 class=
\"
modal-title
\"
>Uploading</h4>"
+
" </div>"
+
" <div class=
\"
modal-body
\"
>"
+
" <div class=
\"
modal-message
\"
></div>"
+
" <div class=
\"
progress
\"
>"
+
" <div class=
\"
progress-bar progress-bar-striped active
\"
role=
\"
progressbar
\"
aria-valuenow=
\"
0
\"
aria-valuemin=
\"
0
\"
"
+
" aria-valuemax=
\"
100
\"
style=
\"
width: 0%;min-width: 2em;
\"
>"
+
" 0%"
+
" </div>"
+
" </div>"
+
" </div>"
+
" <div class=
\"
modal-footer
\"
style=
\"
display:none
\"
>"
+
" <button type=
\"
button
\"
class=
\"
btn btn-default
\"
data-dismiss=
\"
modal
\"
>Close</button>"
+
" </div>"
+
" </div>"
+
" </div>"
+
"</div>"
;
var
UploadProgress
=
function
(
element
,
options
)
{
this
.
options
=
options
;
this
.
$element
=
$
(
element
);
};
...
...
@@ -49,22 +49,25 @@
constructor
:
function
()
{
this
.
$form
=
this
.
$element
;
this
.
$form
.
on
(
'submit'
,
$
.
proxy
(
this
.
submit
,
this
));
this
.
$form
.
on
(
"submit"
,
$
.
proxy
(
this
.
submit
,
this
));
this
.
$modal
=
$
(
this
.
options
.
template
);
this
.
$modal_message
=
this
.
$modal
.
find
(
'.modal-message'
);
this
.
$modal_title
=
this
.
$modal
.
find
(
'.modal-title'
);
this
.
$modal_footer
=
this
.
$modal
.
find
(
'.modal-footer'
);
this
.
$modal_bar
=
this
.
$modal
.
find
(
'.progress-bar'
);
this
.
$modalTitle
=
this
.
$modal
.
find
(
".modal-title"
);
this
.
$modalFooter
=
this
.
$modal
.
find
(
".modal-footer"
);
this
.
$modalBar
=
this
.
$modal
.
find
(
".progress-bar"
);
this
.
$modal
.
on
(
'hidden.bs.modal'
,
$
.
proxy
(
this
.
reset
,
this
));
// Translate texts
this
.
$modalTitle
.
text
(
this
.
options
.
modalTitle
)
this
.
$modalFooter
.
children
(
"button"
).
text
(
this
.
options
.
modalFooter
)
this
.
$modal
.
on
(
"hidden.bs.modal"
,
$
.
proxy
(
this
.
reset
,
this
));
},
reset
:
function
(){
this
.
$modal
_title
=
this
.
$modal_title
.
text
(
'Uploading'
);
this
.
$modal
_f
ooter
.
hide
();
this
.
$modal
_bar
.
addClass
(
'progress-bar-success'
);
this
.
$modal
_bar
.
removeClass
(
'progress-bar-danger'
);
if
(
this
.
xhr
)
{
reset
:
function
()
{
this
.
$modal
Title
.
text
(
this
.
options
.
modalTitle
)
this
.
$modal
F
ooter
.
hide
();
this
.
$modal
Bar
.
addClass
(
"progress-bar-success"
);
this
.
$modal
Bar
.
removeClass
(
"progress-bar-danger"
);
if
(
this
.
xhr
)
{
this
.
xhr
.
abort
();
}
},
...
...
@@ -73,7 +76,7 @@
e
.
preventDefault
();
this
.
$modal
.
modal
({
backdrop
:
'static'
,
backdrop
:
"static"
,
keyboard
:
false
});
...
...
@@ -81,35 +84,33 @@
var
xhr
=
new
XMLHttpRequest
();
this
.
xhr
=
xhr
;
xhr
.
addEventListener
(
'load'
,
$
.
proxy
(
this
.
success
,
this
,
xhr
));
xhr
.
addEventListener
(
'error'
,
$
.
proxy
(
this
.
error
,
this
,
xhr
));
//xhr.addEventListener('abort', function(){});
xhr
.
addEventListener
(
"load"
,
$
.
proxy
(
this
.
success
,
this
,
xhr
));
xhr
.
addEventListener
(
"error"
,
$
.
proxy
(
this
.
error
,
this
,
xhr
));
xhr
.
upload
.
addEventListener
(
'progress'
,
$
.
proxy
(
this
.
progress
,
this
));
xhr
.
upload
.
addEventListener
(
"progress"
,
$
.
proxy
(
this
.
progress
,
this
));
var
form
=
this
.
$form
;
xhr
.
open
(
form
.
attr
(
'method'
),
form
.
attr
(
"action"
));
xhr
.
setRequestHeader
(
'X-REQUESTED-WITH'
,
'XMLHttpRequest'
);
xhr
.
open
(
form
.
attr
(
"method"
),
form
.
attr
(
"action"
));
xhr
.
setRequestHeader
(
"X-REQUESTED-WITH"
,
"XMLHttpRequest"
);
var
data
=
new
FormData
(
form
.
get
(
0
));
xhr
.
send
(
data
);
},
success
:
function
(
xhr
)
{
if
(
xhr
.
status
==
0
||
xhr
.
status
>=
400
)
{
if
(
xhr
.
status
===
0
||
xhr
.
status
>=
400
)
{
// HTTP 500 ends up here!?!
return
this
.
error
(
xhr
);
}
this
.
set_progress
(
100
);
var
url
;
var
content
_type
=
xhr
.
getResponseHeader
(
'Content-Type'
);
var
content
Type
=
xhr
.
getResponseHeader
(
"Content-Type"
);
// make it possible to return the redirect URL in
// a JSON response
if
(
content_type
.
indexOf
(
'application/json'
)
!==
-
1
)
{
if
(
contentType
.
indexOf
(
"application/json"
)
!==
-
1
)
{
var
response
=
$
.
parseJSON
(
xhr
.
responseText
);
console
.
log
(
response
);
url
=
response
.
location
;
}
else
{
...
...
@@ -120,39 +121,41 @@
// handle form error
// we replace the form with the returned one
error
:
function
(
xhr
){
this
.
$modal_title
.
text
(
'Upload failed'
);
this
.
$modal_bar
.
removeClass
(
'progress-bar-success'
);
this
.
$modal_bar
.
addClass
(
'progress-bar-danger'
);
this
.
$modal_footer
.
show
();
error
:
function
(
xhr
)
{
this
.
$modalTitle
.
text
(
this
.
options
.
modalTitleFailed
);
var
content_type
=
xhr
.
getResponseHeader
(
'Content-Type'
);
this
.
$modalBar
.
removeClass
(
"progress-bar-success"
);
this
.
$modalBar
.
addClass
(
"progress-bar-danger"
);
this
.
$modalFooter
.
show
();
var
contentType
=
xhr
.
getResponseHeader
(
"Content-Type"
);
// Replace the contents of the form, with the returned html
if
(
xhr
.
status
===
422
)
{
var
new
_h
tml
=
$
.
parseHTML
(
xhr
.
responseText
);
this
.
replace_form
(
new
_h
tml
);
this
.
$modal
.
modal
(
'hide'
);
if
(
xhr
.
status
===
422
)
{
var
new
H
tml
=
$
.
parseHTML
(
xhr
.
responseText
);
this
.
replace_form
(
new
H
tml
);
this
.
$modal
.
modal
(
"hide"
);
}
// Write the error response to the document.
else
{
var
response_text
=
xhr
.
responseText
;
if
(
content_type
.
indexOf
(
'text/plain'
)
!==
-
1
){
response_text
=
'<pre>'
+
response_text
+
'</pre>'
;
var
responseText
=
xhr
.
responseText
;
// Handle no response error
if
(
contentType
)
{
if
(
contentType
.
indexOf
(
"text/plain"
)
!==
-
1
)
{
responseText
=
"<pre>"
+
responseText
+
"</pre>"
;
}
document
.
write
(
xhr
.
responseText
);
}
document
.
write
(
xhr
.
responseText
);
}
},
set_progress
:
function
(
percent
){
var
txt
=
percent
+
'%'
;
var
txt
=
percent
+
"%"
;
if
(
percent
==
100
)
{
txt
=
this
.
options
.
uploaded
_m
sg
;
txt
=
this
.
options
.
uploaded
M
sg
;
}
this
.
$modal
_bar
.
attr
(
'aria-valuenow'
,
percent
);
this
.
$modal
_b
ar
.
text
(
txt
);
this
.
$modal
_bar
.
css
(
'width'
,
percent
+
'%'
);
this
.
$modal
Bar
.
attr
(
"aria-valuenow"
,
percent
);
this
.
$modal
B
ar
.
text
(
txt
);
this
.
$modal
Bar
.
css
(
"width"
,
percent
+
"%"
);
},
progress
:
function
(
/*ProgressEvent*/
e
){
...
...
@@ -163,24 +166,23 @@
// replace_form replaces the contents of the current form
// with the form in the html argument.
// We use the id of the current form to find the new form in the html
replace_form
:
function
(
html
){
var
new
_f
orm
;
var
form
_id
=
this
.
$form
.
attr
(
'id'
);
if
(
form
_i
d
!==
undefined
){
new
_form
=
$
(
html
).
find
(
'#'
+
form_i
d
);
replace_form
:
function
(
html
)
{
var
new
F
orm
;
var
form
Id
=
this
.
$form
.
attr
(
"id"
);
if
(
form
I
d
!==
undefined
){
new
Form
=
$
(
html
).
find
(
"#"
+
formI
d
);
}
else
{
new
_form
=
$
(
html
).
find
(
'form'
);
new
Form
=
$
(
html
).
find
(
"form"
);
}
// add the filestyle again
new
_form
.
find
(
':file'
).
filestyle
({
buttonBefore
:
true
});
this
.
$form
.
html
(
new
_f
orm
.
children
());
new
Form
.
find
(
":file"
).
filestyle
({
buttonBefore
:
true
});
this
.
$form
.
html
(
new
F
orm
.
children
());
}
};
$
.
fn
.
uploadprogress
=
function
(
options
,
value
){
return
this
.
each
(
function
(){
return
this
.
each
(
function
()
{
var
_options
=
$
.
extend
({},
$
.
fn
.
uploadprogress
.
defaults
,
options
);
var
file_progress
=
new
UploadProgress
(
this
,
_options
);
file_progress
.
constructor
();
...
...
@@ -189,9 +191,11 @@
$
.
fn
.
uploadprogress
.
defaults
=
{
template
:
template
,
uploaded_msg
:
"Upload done, processing, please wait..."
uploadedMsg
:
"Upload done, processing, please wait..."
,
modalTitle
:
"Uploading"
,
modalFooter
:
"Close"
,
modalTitleFailed
:
"Upload failed"
//redirect_url: ...
// need to customize stuff? Add here, and change code accordingly.
};
...
...
cps/templates/layout.html
View file @
1a7052b2
...
...
@@ -250,7 +250,13 @@
{% endif %}
<script
type=
"text/javascript"
>
$
(
function
()
{
$
(
"#form-upload"
).
uploadprogress
({
redirect_url
:
'{{ url_for('
index
')}}'
});
$
(
"#form-upload"
).
uploadprogress
({
redirect_url
:
"{{ url_for('index')}}"
,
uploadedMsg
:
"{{_('Upload done, processing, please wait...')}}"
,
modalTitle
:
"{{_('Uploading...')}}"
,
modalFooter
:
"{{_('Close')}}"
,
modalTitleFailed
:
"{{_('Error')}}"
});
$
(
"#btn-upload"
).
change
(
function
()
{
$
(
"#form-upload"
).
submit
();
});
...
...
cps/translations/de/LC_MESSAGES/messages.mo
View file @
1a7052b2
No preview for this file type
cps/translations/de/LC_MESSAGES/messages.po
View file @
1a7052b2
...
...
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2019-02-
03 16:21
+0100\n"
"POT-Creation-Date: 2019-02-
20 20:23
+0100\n"
"PO-Revision-Date: 2019-01-20 19:36+0100\n"
"Last-Translator: Ozzie Isaacs\n"
"Language: de\n"
...
...
@@ -18,8 +18,8 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.6.0\n"
#: cps/book_formats.py:1
45 cps/book_formats.py:146 cps/book_formats.py:150
#: cps/book_formats.py:1
54
cps/converter.py:29 cps/converter.py:45
#: cps/book_formats.py:1
52 cps/book_formats.py:153 cps/book_formats.py:157
#: cps/book_formats.py:1
61
cps/converter.py:29 cps/converter.py:45
msgid "not installed"
msgstr "Nicht installiert"
...
...
@@ -31,132 +31,132 @@ msgstr "Ausführungsberechtigung nicht vorhanden"
msgid "not configured"
msgstr "Nicht konfiguriert"
#: cps/helper.py:7
7
#: cps/helper.py:7
2
#, python-format
msgid "%(format)s format not found for book id: %(book)d"
msgstr "%(format)s Format nicht gefunden bei Buch ID %(book)d"
#: cps/helper.py:8
9
#: cps/helper.py:8
4
#, python-format
msgid "%(format)s not found on Google Drive: %(fn)s"
msgstr "%(format)s von Buch %(fn)s nicht auf Google Drive gefunden"
#: cps/helper.py:9
6 cps/helper.py:204
cps/templates/detail.html:49
#: cps/helper.py:9
1 cps/helper.py:199
cps/templates/detail.html:49
msgid "Send to Kindle"
msgstr "An Kindle senden"
#: cps/helper.py:9
7 cps/helper.py:115 cps/helper.py:206
#: cps/helper.py:9
2 cps/helper.py:110 cps/helper.py:201
msgid "This e-mail has been sent via Calibre-Web."
msgstr "Diese E-Mail wurde durch Calibre-Web versendet."
#: cps/helper.py:10
8
#: cps/helper.py:10
3
#, python-format
msgid "%(format)s not found: %(fn)s"
msgstr "%(format)s nicht gefunden: %(fn)s"
#: cps/helper.py:1
13
#: cps/helper.py:1
08
msgid "Calibre-Web test e-mail"
msgstr "Calibre-Web Test E-Mail"
#: cps/helper.py:1
14
#: cps/helper.py:1
09
msgid "Test e-mail"
msgstr "Test E-Mail"
#: cps/helper.py:1
30
#: cps/helper.py:1
25
msgid "Get Started with Calibre-Web"
msgstr "Loslegen mit Calibre-Web"
#: cps/helper.py:1
31
#: cps/helper.py:1
26
#, python-format
msgid "Registration e-mail for user: %(name)s"
msgstr "Registrierungs E-Mail für Benutzer %(name)s"
#: cps/helper.py:1
44 cps/helper.py:146 cps/helper.py:148 cps/helper.py:150
#: cps/helper.py:15
6 cps/helper.py:158 cps/helper.py:160 cps/helper.py:162
#: cps/helper.py:1
39 cps/helper.py:141 cps/helper.py:143 cps/helper.py:145
#: cps/helper.py:15
1 cps/helper.py:153 cps/helper.py:155 cps/helper.py:157
#, python-format
msgid "Send %(format)s to Kindle"
msgstr "Sende %(format)s an Kindle"
#: cps/helper.py:16
6 cps/helper.py:170
#: cps/helper.py:16
1 cps/helper.py:165
#, python-format
msgid "Convert %(orig)s to %(format)s and send to Kindle"
msgstr "Konvertiere %(orig)s nach %(format)s und sende an Kindle"
#: cps/helper.py:20
5
#: cps/helper.py:20
0
#, python-format
msgid "E-mail: %(book)s"
msgstr "E-Mail: %(book)s"
#: cps/helper.py:20
8
#: cps/helper.py:20
3
msgid "The requested file could not be read. Maybe wrong permissions?"
msgstr "Die angeforderte Datei konnte nicht gelesen werden. Evtl. falsche Zugriffsrechte?"
#: cps/helper.py:3
13
#: cps/helper.py:3
08
#, python-format
msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr "Umbenennen des Titelpfades '%(src)s' nach '%(dest)s' schlug fehl: %(error)s"
#: cps/helper.py:3
23
#: cps/helper.py:3
18
#, python-format
msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr "Umbenennen des Authorpfades '%(src)s' nach '%(dest)s' schlug fehl: %(error)s"
#: cps/helper.py:33
7
#: cps/helper.py:33
2
#, python-format
msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr "Umbenennen der Datei im Pfad '%(src)s' nach '%(dest)s' ist fehlgeschlagen: %(error)s"
#: cps/helper.py:3
62 cps/helper.py:371
#: cps/helper.py:3
58 cps/helper.py:368 cps/helper.py:376
#, python-format
msgid "File %(file)s not found on Google Drive"
msgstr "Datei %(file)s wurde nicht auf Google Drive gefunden"
#: cps/helper.py:
402
#: cps/helper.py:
397
#, python-format
msgid "Book path %(path)s not found on Google Drive"
msgstr "Buchpfad %(path)s wurde nicht auf Google Drive gefunden"
#: cps/helper.py:5
10
#: cps/helper.py:5
05
msgid "Error excecuting UnRar"
msgstr "Fehler bei der Ausführung von UnRar"
#: cps/helper.py:5
12
#: cps/helper.py:5
07
msgid "Unrar binary file not found"
msgstr "UnRar Datei nicht gefunden"
#: cps/helper.py:5
43
#: cps/helper.py:5
38
msgid "Waiting"
msgstr "Wartend"
#: cps/helper.py:54
5
#: cps/helper.py:54
0
msgid "Failed"
msgstr "Fehlgeschlagen"
#: cps/helper.py:54
7
#: cps/helper.py:54
2
msgid "Started"
msgstr "Gestartet"
#: cps/helper.py:54
9
#: cps/helper.py:54
4
msgid "Finished"
msgstr "Beendet"
#: cps/helper.py:5
51
#: cps/helper.py:5
46
msgid "Unknown Status"
msgstr "Unbekannter Status"
#: cps/helper.py:55
6
#: cps/helper.py:55
1
msgid "E-mail: "
msgstr "E-Mail: "
#: cps/helper.py:55
8 cps/helper.py:562
#: cps/helper.py:55
3 cps/helper.py:557
msgid "Convert: "
msgstr "Konvertiere: "
#: cps/helper.py:5
60
#: cps/helper.py:5
55
msgid "Upload: "
msgstr "Upload: "
#: cps/helper.py:5
64
#: cps/helper.py:5
59
msgid "Unknown Task: "
msgstr "Unbekannte Aufgabe: "
...
...
@@ -201,7 +201,7 @@ msgstr "Keine Release Informationen verfügbar"
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:491 cps/web.py:276
6
#: cps/updater.py:491 cps/web.py:276
7
msgid "Unknown"
msgstr "Unbekannt"
...
...
@@ -269,7 +269,7 @@ msgstr "Best bewertete Bücher"
msgid "Random Books"
msgstr "Zufällige Bücher"
#: cps/web.py:1337 cps/web.py:1592 cps/web.py:213
5
#: cps/web.py:1337 cps/web.py:1592 cps/web.py:213
6
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr "Buch öffnen fehlgeschlagen. Datei existiert nicht, oder ist nicht zugänglich:"
...
...
@@ -309,7 +309,7 @@ msgstr "Kategorieliste"
msgid "Category: %(name)s"
msgstr "Kategorie: %(name)s"
#: cps/templates/layout.html:7
1
cps/web.py:1628
#: cps/templates/layout.html:7
2
cps/web.py:1628
msgid "Tasks"
msgstr "Aufgaben"
...
...
@@ -319,7 +319,7 @@ msgstr "Statistiken"
#: cps/web.py:1730
msgid "Google Drive setup not completed, try to deactivate and activate Google Drive again"
msgstr ""
msgstr "
Google Drive setup is nicht komplett, bitte versuche Google Drive zu deaktivieren und aktiviere es anschließend wieder
"
#: cps/web.py:1775
msgid "Callback domain is not verified, please follow steps to verify domain in google developer console"
...
...
@@ -356,395 +356,395 @@ msgid "search"
msgstr "Suche"
#: cps/templates/index.xml:47 cps/templates/index.xml:51
#: cps/templates/layout.html:14
6 cps/web.py:2094
#: cps/templates/layout.html:14
7 cps/web.py:2095
msgid "Read Books"
msgstr "Gelesene Bücher"
#: cps/templates/index.xml:55 cps/templates/index.xml:59
#: cps/templates/layout.html:14
8 cps/web.py:2097
#: cps/templates/layout.html:14
9 cps/web.py:2098
msgid "Unread Books"
msgstr "Ungelesene Bücher"
#: cps/web.py:214
5 cps/web.py:2147 cps/web.py:2149 cps/web.py:2161
#: cps/web.py:214
6 cps/web.py:2148 cps/web.py:2150 cps/web.py:2162
msgid "Read a Book"
msgstr "Lese ein Buch"
#: cps/web.py:222
0 cps/web.py:3138
#: cps/web.py:222
1 cps/web.py:3139
msgid "Please fill out all fields!"
msgstr "Bitte alle Felder ausfüllen!"
#: cps/web.py:222
1 cps/web.py:2243 cps/web.py:2247 cps/web.py:2252
#: cps/web.py:225
4
#: cps/web.py:222
2 cps/web.py:2244 cps/web.py:2248 cps/web.py:2253
#: cps/web.py:225
5
msgid "register"
msgstr "Registieren"
#: cps/web.py:224
2 cps/web.py:3357
#: cps/web.py:224
3 cps/web.py:3358
msgid "An unknown error occurred. Please try again later."
msgstr "Es ist ein unbekannter Fehler aufgetreten. Bitte später erneut versuchen."
#: cps/web.py:224
5
#: cps/web.py:224
6
msgid "Your e-mail is not allowed to register"
msgstr "Diese E-Mail ist nicht für die Registrierung zugelassen"
#: cps/web.py:224
8
#: cps/web.py:224
9
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Eine Bestätigungs E-Mail wurde an den E-Mail Account versendet."
#: cps/web.py:225
1
#: cps/web.py:225
2
msgid "This username or e-mail address is already in use."
msgstr "Benutzername oder E-Mailadresse ist bereits in Verwendung."
#: cps/web.py:226
8 cps/web.py:2364
#: cps/web.py:226
9 cps/web.py:2365
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "Du bist nun eingeloggt als '%(nickname)s'"
#: cps/web.py:227
3
#: cps/web.py:227
4
msgid "Wrong Username or Password"
msgstr "Falscher Benutzername oder Passwort"
#: cps/web.py:22
79 cps/web.py:2300
#: cps/web.py:22
80 cps/web.py:2301
msgid "login"
msgstr "Login"
#: cps/web.py:231
2 cps/web.py:2343
#: cps/web.py:231
3 cps/web.py:2344
msgid "Token not found"
msgstr "Token wurde nicht gefunden"
#: cps/web.py:232
0 cps/web.py:2351
#: cps/web.py:232
1 cps/web.py:2352
msgid "Token has expired"
msgstr "Das Token ist abgelaufen"
#: cps/web.py:232
8
#: cps/web.py:232
9
msgid "Success! Please return to your device"
msgstr "Erfolg! Bitte zum Gerät zurückkehren"
#: cps/web.py:237
8
#: cps/web.py:237
9
msgid "Please configure the SMTP mail settings first..."
msgstr "Bitte zuerst die SMTP Mail Einstellung konfigurieren ..."
#: cps/web.py:238
3
#: cps/web.py:238
4
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Buch erfolgreich zum Senden an %(kindlemail)s eingereiht"
#: cps/web.py:238
7
#: cps/web.py:238
8
#, 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:23
89 cps/web.py:3191
#: cps/web.py:23
90 cps/web.py:3192
msgid "Please configure your kindle e-mail address first..."
msgstr "Bitte zuerst die Kindle E-Mailadresse konfigurieren..."
#: cps/web.py:240
0 cps/web.py:2452
#: cps/web.py:240
1 cps/web.py:2453
msgid "Invalid shelf specified"
msgstr "Ungültiges Bücherregal angegeben"
#: cps/web.py:240
7
#: cps/web.py:240
8
#, python-format
msgid "Sorry you are not allowed to add a book to the the shelf: %(shelfname)s"
msgstr "Keine Erlaubnis ein Buch zum Bücherregale %(shelfname)s hinzuzufügen vorhanden"
#: cps/web.py:241
5
#: cps/web.py:241
6
msgid "You are not allowed to edit public shelves"
msgstr "Keine Erlaubnis öffentliche Bücherregale zu editieren vorhanden"
#: cps/web.py:242
4
#: cps/web.py:242
5
#, python-format
msgid "Book is already part of the shelf: %(shelfname)s"
msgstr "Buch ist bereits Teil des Bücherregals %(shelfname)s"
#: cps/web.py:243
8
#: cps/web.py:243
9
#, python-format
msgid "Book has been added to shelf: %(sname)s"
msgstr "Das Buch wurde dem Bücherregal: %(sname)s hinzugefügt"
#: cps/web.py:245
7
#: cps/web.py:245
8
#, python-format
msgid "You are not allowed to add a book to the the shelf: %(name)s"
msgstr "Keine Erlaubnis ein Buch zum Bücherregal %(name)s hinzuzufügen"
#: cps/web.py:246
2
#: cps/web.py:246
3
msgid "User is not allowed to edit public shelves"
msgstr "Benutzer hat keine Erlaubnis öffentliche Bücherregale zu editieren"
#: cps/web.py:248
0
#: cps/web.py:248
1
#, python-format
msgid "Books are already part of the shelf: %(name)s"
msgstr "Bücher sind bereits Teil des Bücherregals %(name)s"
#: cps/web.py:249
4
#: cps/web.py:249
5
#, python-format
msgid "Books have been added to shelf: %(sname)s"
msgstr "Bücher wurden zum Bücherregal %(sname)s hinzugefügt"
#: cps/web.py:249
6
#: cps/web.py:249
7
#, python-format
msgid "Could not add books to shelf: %(sname)s"
msgstr "Bücher konnten nicht zum Bücherregal %(sname)s hinzugefügt werden"
#: cps/web.py:253
3
#: cps/web.py:253
4
#, python-format
msgid "Book has been removed from shelf: %(sname)s"
msgstr "Das Buch wurde aus dem Bücherregal: %(sname)s entfernt"
#: cps/web.py:25
39
#: cps/web.py:25
40
#, python-format
msgid "Sorry you are not allowed to remove a book from this shelf: %(sname)s"
msgstr "Keine Erlaubnis das Buch aus dem Bücherregal %(sname)s zu entfernen"
#: cps/web.py:256
0 cps/web.py:2584
#: cps/web.py:256
1 cps/web.py:2585
#, python-format
msgid "A shelf with the name '%(title)s' already exists."
msgstr "Es existiert bereits ein Bücheregal mit dem Titel '%(title)s'."
#: cps/web.py:256
5
#: cps/web.py:256
6
#, python-format
msgid "Shelf %(title)s created"
msgstr "Bücherregal %(title)s erzeugt"
#: cps/web.py:256
7 cps/web.py:2595
#: cps/web.py:256
8 cps/web.py:2596
msgid "There was an error"
msgstr "Es trat ein Fehler auf"
#: cps/web.py:256
8 cps/web.py:2570
#: cps/web.py:256
9 cps/web.py:2571
msgid "create a shelf"
msgstr "Bücherregal erzeugen"
#: cps/web.py:259
3
#: cps/web.py:259
4
#, python-format
msgid "Shelf %(title)s changed"
msgstr "Bücherregal %(title)s verändert"
#: cps/web.py:259
6 cps/web.py:2598
#: cps/web.py:259
7 cps/web.py:2599
msgid "Edit a shelf"
msgstr "Bücherregal editieren"
#: cps/web.py:26
19
#: cps/web.py:26
20
#, python-format
msgid "successfully deleted shelf %(name)s"
msgstr "Bücherregal %(name)s erfolgreich gelöscht"
#: cps/web.py:264
6
#: cps/web.py:264
7
#, python-format
msgid "Shelf: '%(name)s'"
msgstr "Bücherregal: '%(name)s'"
#: cps/web.py:26
49
#: cps/web.py:26
50
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr "Fehler beim Öffnen. Bücherregel exisitert nicht oder ist nicht zugänglich"
#: cps/web.py:268
0
#: cps/web.py:268
1
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr "Reihenfolge in Bücherregal '%(name)s' verändern"
#: cps/web.py:27
09 cps/web.py:3144
#: cps/web.py:27
10 cps/web.py:3145
msgid "E-mail is not from valid domain"
msgstr "E-Mail ist nicht Teil einer gültigen Domain"
#: cps/web.py:271
1 cps/web.py:2753 cps/web.py:2756
#: cps/web.py:271
2 cps/web.py:2754 cps/web.py:2757
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)s's Profil"
#: cps/web.py:275
1
#: cps/web.py:275
2
msgid "Found an existing account for this e-mail address."
msgstr "Es existiert bereits ein Benutzer für diese E-Mailadresse."
#: cps/web.py:275
4
#: cps/web.py:275
5
msgid "Profile updated"
msgstr "Profil aktualisiert"
#: cps/web.py:278
5
#: cps/web.py:278
6
msgid "Admin page"
msgstr "Admin Seite"
#: cps/web.py:286
7 cps/web.py:3047
#: cps/web.py:286
8 cps/web.py:3048
msgid "Calibre-Web configuration updated"
msgstr "Calibre-Web Konfiguration wurde aktualisiert"
#: cps/templates/admin.html:100 cps/web.py:288
1
#: cps/templates/admin.html:100 cps/web.py:288
2
msgid "UI Configuration"
msgstr "Konfiguration Benutzeroberfläche"
#: cps/web.py:2
899
#: cps/web.py:2
900
msgid "Import of optional Google Drive requirements missing"
msgstr "Optionale Abhängigkeiten für Google Drive fehlen"
#: cps/web.py:290
2
#: cps/web.py:290
3
msgid "client_secrets.json is missing or not readable"
msgstr "client_secrets.json nicht vorhanden, oder nicht lesbar"
#: cps/web.py:290
7 cps/web.py:2936
#: cps/web.py:290
8 cps/web.py:2937
msgid "client_secrets.json is not configured for web application"
msgstr "client_secrets.json nicht als Webapplication konfiguriert"
#: cps/templates/admin.html:99 cps/web.py:29
39 cps/web.py:2965 cps/web.py:2977
#: cps/web.py:302
2 cps/web.py:3037 cps/web.py:3056 cps/web.py:3064
#: cps/web.py:308
0
#: cps/templates/admin.html:99 cps/web.py:29
40 cps/web.py:2966 cps/web.py:2978
#: cps/web.py:302
3 cps/web.py:3038 cps/web.py:3057 cps/web.py:3065
#: cps/web.py:308
1
msgid "Basic Configuration"
msgstr "Basis Konfiguration"
#: cps/web.py:296
2
#: cps/web.py:296
3
msgid "Keyfile location is not valid, please enter correct path"
msgstr "SSL-Keydatei Speicherort ist ungültig, bitte gültigen Pfad angeben"
#: cps/web.py:297
4
#: cps/web.py:297
5
msgid "Certfile location is not valid, please enter correct path"
msgstr "SSL-Certdatei Speicherort ist ungültig, bitte gültigen Pfad angeben"
#: cps/web.py:30
19
#: cps/web.py:30
20
msgid "Logfile location is not valid, please enter correct path"
msgstr "Speicherort Logdatei ist ungültig, bitte Pfad korrigieren"
#: cps/web.py:306
0
#: cps/web.py:306
1
msgid "DB location is not valid, please enter correct path"
msgstr "DB Speicherort ist ungültig, bitte Pfad korrigieren"
#: cps/templates/admin.html:33 cps/web.py:314
0 cps/web.py:3146 cps/web.py:3162
#: cps/templates/admin.html:33 cps/web.py:314
1 cps/web.py:3147 cps/web.py:3163
msgid "Add new user"
msgstr "Neuen Benutzer hinzufügen"
#: cps/web.py:315
2
#: cps/web.py:315
3
#, python-format
msgid "User '%(user)s' created"
msgstr "Benutzer '%(user)s' angelegt"
#: cps/web.py:315
6
#: cps/web.py:315
7
msgid "Found an existing account for this e-mail address or nickname."
msgstr "Es existiert bereits ein Account für diese E-Mailadresse oder Benutzernamen."
#: cps/web.py:318
6
#: cps/web.py:318
7
#, python-format
msgid "Test e-mail successfully send to %(kindlemail)s"
msgstr "Test E-Mail wurde erfolgreich an %(kindlemail)s versendet"
#: cps/web.py:31
89
#: cps/web.py:31
90
#, 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/web.py:319
3
#: cps/web.py:319
4
msgid "E-mail server settings updated"
msgstr "E-Mail Server Einstellungen aktualisiert"
#: cps/web.py:319
4
#: cps/web.py:319
5
msgid "Edit e-mail server settings"
msgstr "E-Mail Server Einstellungen bearbeiten"
#: cps/web.py:32
19
#: cps/web.py:32
20
#, python-format
msgid "User '%(nick)s' deleted"
msgstr "Benutzer '%(nick)s' gelöscht"
#: cps/web.py:333
2
#: cps/web.py:333
3
#, python-format
msgid "User '%(nick)s' updated"
msgstr "Benutzer '%(nick)s' aktualisiert"
#: cps/web.py:333
5
#: cps/web.py:333
6
msgid "An unknown error occured."
msgstr "Es ist ein unbekannter Fehler aufgetreten."
#: cps/web.py:333
7
#: cps/web.py:333
8
#, python-format
msgid "Edit User %(nick)s"
msgstr "Benutzer %(nick)s bearbeiten"
#: cps/web.py:335
4
#: cps/web.py:335
5
#, python-format
msgid "Password for user %(user)s reset"
msgstr "Passwort für Benutzer %(user)s wurde zurückgesetzt"
#: cps/web.py:336
8 cps/web.py:3574
#: cps/web.py:336
9 cps/web.py:3575
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr "Buch öffnen fehlgeschlagen. Datei existiert nicht, oder ist nicht zugänglich"
#: cps/web.py:339
6 cps/web.py:3868
#: cps/web.py:339
7
msgid "edit metadata"
msgstr "Metadaten editieren"
#: cps/web.py:34
89 cps/web.py:3736
#: cps/web.py:34
90 cps/web.py:3737
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "Dateiendung '%(ext)s' kann nicht auf diesen Server hochgeladen werden"
#: cps/web.py:349
3 cps/web.py:3740
#: cps/web.py:349
4 cps/web.py:3741
msgid "File to be uploaded must have an extension"
msgstr "Dateien müssen eine Erweiterung haben, um hochgeladen zu werden"
#: cps/web.py:350
5 cps/web.py:3760
#: cps/web.py:350
6 cps/web.py:3761
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "Fehler beim Erzeugen des Pfads %(path)s (Zugriff verweigert)"
#: cps/web.py:351
0
#: cps/web.py:351
1
#, python-format
msgid "Failed to store file %(file)s."
msgstr "Fehler beim speichern der Datei %(file)s."
#: cps/web.py:352
7
#: cps/web.py:352
8
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "Dateiformat %(ext)s zu %(book)s hinzugefügt"
#: cps/web.py:354
5
#: cps/web.py:354
6
#, python-format
msgid "Failed to create path for cover %(path)s (Permission denied)."
msgstr "Fehler beim Erzeugen des Pfads für das Cover %(path)s (Zugriff verweigert)"
#: cps/web.py:355
3
#: cps/web.py:355
4
#, python-format
msgid "Failed to store cover-file %(cover)s."
msgstr "Fehler beim Speichern des Covers %(cover)s."
#: cps/web.py:355
6
#: cps/web.py:355
7
msgid "Cover-file is not a valid image file"
msgstr "Cover-Datei ist keine gültige Bilddatei"
#: cps/web.py:358
6 cps/web.py:3595
#: cps/web.py:358
7 cps/web.py:3596
msgid "unknown"
msgstr "Unbekannt"
#: cps/web.py:362
7
#: cps/web.py:362
8
msgid "Cover is not a jpg file, can't save"
msgstr "Cover ist keine JPG Datei, konnte nicht gespeichert werden"
#: cps/web.py:367
5
#: cps/web.py:367
6
#, python-format
msgid "%(langname)s is not a valid language"
msgstr "%(langname)s ist keine gültige Sprache"
#: cps/web.py:370
6
#: cps/web.py:370
7
msgid "Metadata successfully updated"
msgstr "Metadaten wurden erfolgreich aktualisiert"
#: cps/web.py:371
5
#: cps/web.py:371
6
msgid "Error editing book, please check logfile for details"
msgstr "Fehler beim Editieren des Buchs, Details im Logfile"
#: cps/web.py:376
5
#: cps/web.py:376
6
#, python-format
msgid "Failed to store file %(file)s (Permission denied)."
msgstr "Fehler beim speichern der Datei %(file)s (Zugriff verweigert)"
#: cps/web.py:377
0
#: cps/web.py:377
1
#, python-format
msgid "Failed to delete file %(file)s (Permission denied)."
msgstr "Fehler beim Löschen von Datei %(file)s (Zugriff verweigert)"
#: cps/web.py:388
8
#: cps/web.py:388
3
msgid "Source or destination format for conversion missing"
msgstr "Quell- oder Zielformat für Konvertierung fehlt"
#: cps/web.py:389
8
#: cps/web.py:389
3
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "Buch wurde erfolgreich für die Konvertierung in das %(book_format)s Format eingereiht"
#: cps/web.py:3
902
#: cps/web.py:3
897
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "Es trat ein Fehlker beim Konvertieren des Buches auf: %(res)s"
...
...
@@ -779,7 +779,7 @@ msgstr "Kindle"
msgid "DLS"
msgstr "DLS"
#: cps/templates/admin.html:13 cps/templates/layout.html:7
4
#: cps/templates/admin.html:13 cps/templates/layout.html:7
5
msgid "Admin"
msgstr "Admin"
...
...
@@ -788,7 +788,7 @@ msgstr "Admin"
msgid "Download"
msgstr "Download"
#: cps/templates/admin.html:15 cps/templates/layout.html:6
4
#: cps/templates/admin.html:15 cps/templates/layout.html:6
5
msgid "Upload"
msgstr "Hochladen"
...
...
@@ -989,7 +989,7 @@ msgstr "Beschreibung"
msgid "Tags"
msgstr "Tags"
#: cps/templates/book_edit.html:75 cps/templates/layout.html:15
7
#: cps/templates/book_edit.html:75 cps/templates/layout.html:15
8
#: cps/templates/search_form.html:53
msgid "Series"
msgstr "Serien"
...
...
@@ -1071,7 +1071,7 @@ msgstr "Suchbegriff"
msgid " Search keyword "
msgstr " Suchbegriff "
#: cps/templates/book_edit.html:218 cps/templates/layout.html:4
6
#: cps/templates/book_edit.html:218 cps/templates/layout.html:4
7
msgid "Go!"
msgstr "Los!"
...
...
@@ -1083,7 +1083,7 @@ msgstr "Klicke auf das Bild um die Metadaten zu übertragen"
msgid "Loading..."
msgstr "Lade..."
#: cps/templates/book_edit.html:239 cps/templates/layout.html:22
4
#: cps/templates/book_edit.html:239 cps/templates/layout.html:22
5
msgid "Close"
msgstr "Schließen"
...
...
@@ -1121,7 +1121,7 @@ msgstr "Google Drive authentifizieren"
#: cps/templates/config_edit.html:40
msgid "Please hit submit to continue with setup"
msgstr ""
msgstr "
Bitte wähle Abschicken um mit dem Setup fortzufahren
"
#: cps/templates/config_edit.html:43
msgid "Please finish Google Drive setup after login"
...
...
@@ -1251,7 +1251,7 @@ msgstr "Pfad zu Konvertertool"
msgid "Location of Unrar binary"
msgstr "Pfad zum UnRar Programm"
#: cps/templates/config_edit.html:229 cps/templates/layout.html:8
2
#: cps/templates/config_edit.html:229 cps/templates/layout.html:8
3
#: cps/templates/login.html:4
msgid "Login"
msgstr "Login"
...
...
@@ -1260,8 +1260,8 @@ msgstr "Login"
msgid "View Configuration"
msgstr "Ansichtskonfiguration"
#: cps/templates/config_view_edit.html:19 cps/templates/layout.html:13
3
#: cps/templates/layout.html:13
4
cps/templates/shelf_edit.html:7
#: cps/templates/config_view_edit.html:19 cps/templates/layout.html:13
4
#: cps/templates/layout.html:13
5
cps/templates/shelf_edit.html:7
msgid "Title"
msgstr "Titel"
...
...
@@ -1473,12 +1473,12 @@ msgstr "Hinzufügen"
msgid "Do you really want to delete this domain rule?"
msgstr "Soll diese Domain Regel wirklich gelöscht werden?"
#: cps/templates/feed.xml:21 cps/templates/layout.html:20
8
#: cps/templates/feed.xml:21 cps/templates/layout.html:20
9
msgid "Next"
msgstr "Nächste"
#: cps/templates/feed.xml:33 cps/templates/index.xml:11
#: cps/templates/layout.html:4
3 cps/templates/layout.html:44
#: cps/templates/layout.html:4
4 cps/templates/layout.html:45
msgid "Search"
msgstr "Suche"
...
...
@@ -1494,7 +1494,7 @@ msgstr "Entdecke (Zufälliges Buch)"
msgid "Start"
msgstr "Start"
#: cps/templates/index.xml:18 cps/templates/layout.html:1
39
#: cps/templates/index.xml:18 cps/templates/layout.html:1
40
msgid "Hot Books"
msgstr "Beliebte Bücher"
...
...
@@ -1502,7 +1502,7 @@ msgstr "Beliebte Bücher"
msgid "Popular publications from this catalog based on Downloads."
msgstr "Beliebte Publikationen aus dieser Bibliothek basierend auf Downloadzahlen."
#: cps/templates/index.xml:25 cps/templates/layout.html:14
2
#: cps/templates/index.xml:25 cps/templates/layout.html:14
3
msgid "Best rated Books"
msgstr "Best bewertete Bücher"
...
...
@@ -1522,7 +1522,7 @@ msgstr "Die neuesten Bücher"
msgid "Show Random Books"
msgstr "Zeige zufällige Bücher"
#: cps/templates/index.xml:62 cps/templates/layout.html:16
0
#: cps/templates/index.xml:62 cps/templates/layout.html:16
1
msgid "Authors"
msgstr "Autoren"
...
...
@@ -1530,7 +1530,7 @@ msgstr "Autoren"
msgid "Books ordered by Author"
msgstr "Bücher nach Autoren sortiert"
#: cps/templates/index.xml:69 cps/templates/layout.html:16
3
#: cps/templates/index.xml:69 cps/templates/layout.html:16
4
msgid "Publishers"
msgstr "Verleger"
...
...
@@ -1546,7 +1546,7 @@ msgstr "Bücher nach Kategorien sortiert"
msgid "Books ordered by series"
msgstr "Bücher nach Reihen geordnet"
#: cps/templates/index.xml:90 cps/templates/layout.html:1
69
#: cps/templates/index.xml:90 cps/templates/layout.html:1
70
msgid "Public Shelves"
msgstr "Öffentliche Bücherregale"
...
...
@@ -1554,7 +1554,7 @@ msgstr "Öffentliche Bücherregale"
msgid "Books organized in public shelfs, visible to everyone"
msgstr "Bücher organisiert in öffentlichem Bücherregal, sichtbar für jedermann"
#: cps/templates/index.xml:98 cps/templates/layout.html:17
3
#: cps/templates/index.xml:98 cps/templates/layout.html:17
4
msgid "Your Shelves"
msgstr "Deine Bücherregale"
...
...
@@ -1562,91 +1562,95 @@ msgstr "Deine Bücherregale"
msgid "User's own shelfs, only visible to the current user himself"
msgstr "Persönliches Bücherregal des Benutzers, nur sichtbar für den aktuellen Benutzer"
#: cps/templates/layout.html:3
3
#: cps/templates/layout.html:3
4
msgid "Toggle navigation"
msgstr "Nagivation umschalten"
#: cps/templates/layout.html:5
4
#: cps/templates/layout.html:5
5
msgid "Advanced Search"
msgstr "Erweiterte Suche"
#: cps/templates/layout.html:7
8
#: cps/templates/layout.html:7
9
msgid "Logout"
msgstr "Logout"
#: cps/templates/layout.html:8
3
cps/templates/register.html:14
#: cps/templates/layout.html:8
4
cps/templates/register.html:14
msgid "Register"
msgstr "Registrieren"
#: cps/templates/layout.html:1
08
#: cps/templates/layout.html:1
10
msgid "Uploading..."
msgstr "Hochladen..."
#: cps/templates/layout.html:1
09
#: cps/templates/layout.html:1
11
msgid "please don't refresh the page"
msgstr "Bitte die Seite nicht neu laden"
#: cps/templates/layout.html:12
0
#: cps/templates/layout.html:12
1
msgid "Browse"
msgstr "Browsen"
#: cps/templates/layout.html:12
2
#: cps/templates/layout.html:12
3
msgid "Recently Added"
msgstr "Kürzlich hinzugefügt"
#: cps/templates/layout.html:12
7
#: cps/templates/layout.html:12
8
msgid "Sorted Books"
msgstr "Bücher Sortiert"
#: cps/templates/layout.html:13
1 cps/templates/layout.html:132
#: cps/templates/layout.html:13
3 cps/templates/layout.html:134
#: cps/templates/layout.html:13
2 cps/templates/layout.html:133
#: cps/templates/layout.html:13
4 cps/templates/layout.html:135
msgid "Sort By"
msgstr "Sortiert nach"
#: cps/templates/layout.html:13
1
#: cps/templates/layout.html:13
2
msgid "Newest"
msgstr "Neueste"
#: cps/templates/layout.html:13
2
#: cps/templates/layout.html:13
3
msgid "Oldest"
msgstr "Älteste"
#: cps/templates/layout.html:13
3
#: cps/templates/layout.html:13
4
msgid "Ascending"
msgstr "Aufsteigend"
#: cps/templates/layout.html:13
4
#: cps/templates/layout.html:13
5
msgid "Descending"
msgstr "Absteigend"
#: cps/templates/layout.html:15
1
#: cps/templates/layout.html:15
2
msgid "Discover"
msgstr "Entdecke"
#: cps/templates/layout.html:15
4
#: cps/templates/layout.html:15
5
msgid "Categories"
msgstr "Kategorien"
#: cps/templates/layout.html:16
6
cps/templates/search_form.html:74
#: cps/templates/layout.html:16
7
cps/templates/search_form.html:74
msgid "Languages"
msgstr "Sprachen"
#: cps/templates/layout.html:17
8
#: cps/templates/layout.html:17
9
msgid "Create a Shelf"
msgstr "Bücherregal erzeugen"
#: cps/templates/layout.html:1
79
cps/templates/stats.html:3
#: cps/templates/layout.html:1
80
cps/templates/stats.html:3
msgid "About"
msgstr "Über"
#: cps/templates/layout.html:19
3
#: cps/templates/layout.html:19
4
msgid "Previous"
msgstr "Vorheriger"
#: cps/templates/layout.html:22
0
#: cps/templates/layout.html:22
1
msgid "Book Details"
msgstr "Buchdetails"
#: cps/templates/layout.html:255
msgid "Upload done, processing, please wait..."
msgstr "Hochladen beendet, verarbeite Daten, bitte warten..."
#: cps/templates/login.html:8 cps/templates/login.html:9
#: cps/templates/register.html:7 cps/templates/user_edit.html:8
msgid "Username"
...
...
@@ -1669,12 +1673,12 @@ msgstr "Einloggen mit magischem Link"
msgid "Calibre-Web ebook catalog"
msgstr "Calibre-Web E-Book Katalog"
#: cps/templates/read.html:
69
cps/templates/readcbr.html:79
#: cps/templates/read.html:
71
cps/templates/readcbr.html:79
#: cps/templates/readcbr.html:103
msgid "Settings"
msgstr "Einstellungen"
#: cps/templates/read.html:7
2
#: cps/templates/read.html:7
4
msgid "Reflow text when sidebars are open."
msgstr "Text umbrechen wenn Seitenleiste geöffnet ist."
...
...
@@ -1962,42 +1966,3 @@ msgstr "Benutzer löschen"
msgid "Recent Downloads"
msgstr "Letzte Downloads"
#~ msgid "Current commit timestamp"
#~ msgstr "Aktuelles Commit Datum"
#~ msgid "Newest commit timestamp"
#~ msgstr "Neuestes Commit Datum"
#~ msgid "Convert: %(book)s"
#~ msgstr "Konvertiere: %(book)s"
#~ msgid "Convert to %(format)s: %(book)s"
#~ msgstr "Konvertiere %(book)s in %(format)s: "
#~ msgid "Files are replaced"
#~ msgstr "Ersetze Dateien"
#~ msgid "Server is stopped"
#~ msgstr "Stoppe Server"
#~ msgid "Convertertool %(converter)s not found"
#~ msgstr "Konvertertool %(converter)s nicht gefunden"
#~ msgid "Choose a password"
#~ msgstr "Wähle ein Passwort"
#~ msgid "Could not find any formats suitable for sending by e-mail"
#~ msgstr "Es konnten keine passenden Formate für das Versenden per E-Mail gefunden werden"
#~ msgid "Author list"
#~ msgstr "Autorenliste"
#~ msgid "File %(file)s uploaded"
#~ msgstr "Datei %(file)s hochgeladen"
#~ msgid "Update done"
#~ msgstr "Update durchgeführt"
#~ msgid "A new update is available. Click on the button below to update to version: "
#~ msgstr "Ein neues Update ist verfügbar. Klicke auf den Button unten, um auf Version: "
cps/web.py
View file @
1a7052b2
...
...
@@ -2027,7 +2027,7 @@ def advanced_search():
series
=
series
,
title
=
_
(
u"search"
),
cc
=
cc
,
page
=
"advsearch"
)
@
app
.
route
(
"/cover/<book_id>"
)
@
app
.
route
(
"/cover/<
int:
book_id>"
)
@
login_required_if_no_ano
def
get_cover
(
book_id
):
book
=
db
.
session
.
query
(
db
.
Books
)
.
filter
(
db
.
Books
.
id
==
book_id
)
.
first
()
...
...
@@ -3851,7 +3851,7 @@ def upload():
gdriveutils
.
updateGdriveCalibreFromLocal
()
if
error
:
flash
(
error
,
category
=
"error"
)
uploadText
=
(
u"File
%
s"
%
book
.
title
)
uploadText
=
_
(
u"File
%(title)
s"
,
title
=
book
.
title
)
helper
.
global_WorkerThread
.
add_upload
(
current_user
.
nickname
,
"<a href=
\"
"
+
url_for
(
'show_book'
,
book_id
=
book
.
id
)
+
"
\"
>"
+
uploadText
+
"</a>"
)
...
...
messages.pot
View file @
1a7052b2
...
...
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2019-02-
03 16:21
+0100\n"
"POT-Creation-Date: 2019-02-
20 20:23
+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
...
...
@@ -17,8 +17,8 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.6.0\n"
#: cps/book_formats.py:1
45 cps/book_formats.py:146 cps/book_formats.py:150
#: cps/book_formats.py:1
54
cps/converter.py:29 cps/converter.py:45
#: cps/book_formats.py:1
52 cps/book_formats.py:153 cps/book_formats.py:157
#: cps/book_formats.py:1
61
cps/converter.py:29 cps/converter.py:45
msgid "not installed"
msgstr ""
...
...
@@ -30,132 +30,132 @@ msgstr ""
msgid "not configured"
msgstr ""
#: cps/helper.py:7
7
#: cps/helper.py:7
2
#, python-format
msgid "%(format)s format not found for book id: %(book)d"
msgstr ""
#: cps/helper.py:8
9
#: cps/helper.py:8
4
#, python-format
msgid "%(format)s not found on Google Drive: %(fn)s"
msgstr ""
#: cps/helper.py:9
6 cps/helper.py:204
cps/templates/detail.html:49
#: cps/helper.py:9
1 cps/helper.py:199
cps/templates/detail.html:49
msgid "Send to Kindle"
msgstr ""
#: cps/helper.py:9
7 cps/helper.py:115 cps/helper.py:206
#: cps/helper.py:9
2 cps/helper.py:110 cps/helper.py:201
msgid "This e-mail has been sent via Calibre-Web."
msgstr ""
#: cps/helper.py:10
8
#: cps/helper.py:10
3
#, python-format
msgid "%(format)s not found: %(fn)s"
msgstr ""
#: cps/helper.py:1
13
#: cps/helper.py:1
08
msgid "Calibre-Web test e-mail"
msgstr ""
#: cps/helper.py:1
14
#: cps/helper.py:1
09
msgid "Test e-mail"
msgstr ""
#: cps/helper.py:1
30
#: cps/helper.py:1
25
msgid "Get Started with Calibre-Web"
msgstr ""
#: cps/helper.py:1
31
#: cps/helper.py:1
26
#, python-format
msgid "Registration e-mail for user: %(name)s"
msgstr ""
#: cps/helper.py:1
44 cps/helper.py:146 cps/helper.py:148 cps/helper.py:150
#: cps/helper.py:15
6 cps/helper.py:158 cps/helper.py:160 cps/helper.py:162
#: cps/helper.py:1
39 cps/helper.py:141 cps/helper.py:143 cps/helper.py:145
#: cps/helper.py:15
1 cps/helper.py:153 cps/helper.py:155 cps/helper.py:157
#, python-format
msgid "Send %(format)s to Kindle"
msgstr ""
#: cps/helper.py:16
6 cps/helper.py:170
#: cps/helper.py:16
1 cps/helper.py:165
#, python-format
msgid "Convert %(orig)s to %(format)s and send to Kindle"
msgstr ""
#: cps/helper.py:20
5
#: cps/helper.py:20
0
#, python-format
msgid "E-mail: %(book)s"
msgstr ""
#: cps/helper.py:20
8
#: cps/helper.py:20
3
msgid "The requested file could not be read. Maybe wrong permissions?"
msgstr ""
#: cps/helper.py:3
13
#: cps/helper.py:3
08
#, python-format
msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr ""
#: cps/helper.py:3
23
#: cps/helper.py:3
18
#, python-format
msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr ""
#: cps/helper.py:33
7
#: cps/helper.py:33
2
#, python-format
msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr ""
#: cps/helper.py:3
62 cps/helper.py:371
#: cps/helper.py:3
58 cps/helper.py:368 cps/helper.py:376
#, python-format
msgid "File %(file)s not found on Google Drive"
msgstr ""
#: cps/helper.py:
402
#: cps/helper.py:
397
#, python-format
msgid "Book path %(path)s not found on Google Drive"
msgstr ""
#: cps/helper.py:5
10
#: cps/helper.py:5
05
msgid "Error excecuting UnRar"
msgstr ""
#: cps/helper.py:5
12
#: cps/helper.py:5
07
msgid "Unrar binary file not found"
msgstr ""
#: cps/helper.py:5
43
#: cps/helper.py:5
38
msgid "Waiting"
msgstr ""
#: cps/helper.py:54
5
#: cps/helper.py:54
0
msgid "Failed"
msgstr ""
#: cps/helper.py:54
7
#: cps/helper.py:54
2
msgid "Started"
msgstr ""
#: cps/helper.py:54
9
#: cps/helper.py:54
4
msgid "Finished"
msgstr ""
#: cps/helper.py:5
51
#: cps/helper.py:5
46
msgid "Unknown Status"
msgstr ""
#: cps/helper.py:55
6
#: cps/helper.py:55
1
msgid "E-mail: "
msgstr ""
#: cps/helper.py:55
8 cps/helper.py:562
#: cps/helper.py:55
3 cps/helper.py:557
msgid "Convert: "
msgstr ""
#: cps/helper.py:5
60
#: cps/helper.py:5
55
msgid "Upload: "
msgstr ""
#: cps/helper.py:5
64
#: cps/helper.py:5
59
msgid "Unknown Task: "
msgstr ""
...
...
@@ -200,7 +200,7 @@ msgstr ""
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr ""
#: cps/updater.py:491 cps/web.py:276
6
#: cps/updater.py:491 cps/web.py:276
7
msgid "Unknown"
msgstr ""
...
...
@@ -268,7 +268,7 @@ msgstr ""
msgid "Random Books"
msgstr ""
#: cps/web.py:1337 cps/web.py:1592 cps/web.py:213
5
#: cps/web.py:1337 cps/web.py:1592 cps/web.py:213
6
msgid "Error opening eBook. File does not exist or file is not accessible:"
msgstr ""
...
...
@@ -308,7 +308,7 @@ msgstr ""
msgid "Category: %(name)s"
msgstr ""
#: cps/templates/layout.html:7
1
cps/web.py:1628
#: cps/templates/layout.html:7
2
cps/web.py:1628
msgid "Tasks"
msgstr ""
...
...
@@ -355,395 +355,395 @@ msgid "search"
msgstr ""
#: cps/templates/index.xml:47 cps/templates/index.xml:51
#: cps/templates/layout.html:14
6 cps/web.py:2094
#: cps/templates/layout.html:14
7 cps/web.py:2095
msgid "Read Books"
msgstr ""
#: cps/templates/index.xml:55 cps/templates/index.xml:59
#: cps/templates/layout.html:14
8 cps/web.py:2097
#: cps/templates/layout.html:14
9 cps/web.py:2098
msgid "Unread Books"
msgstr ""
#: cps/web.py:214
5 cps/web.py:2147 cps/web.py:2149 cps/web.py:2161
#: cps/web.py:214
6 cps/web.py:2148 cps/web.py:2150 cps/web.py:2162
msgid "Read a Book"
msgstr ""
#: cps/web.py:222
0 cps/web.py:3138
#: cps/web.py:222
1 cps/web.py:3139
msgid "Please fill out all fields!"
msgstr ""
#: cps/web.py:222
1 cps/web.py:2243 cps/web.py:2247 cps/web.py:2252
#: cps/web.py:225
4
#: cps/web.py:222
2 cps/web.py:2244 cps/web.py:2248 cps/web.py:2253
#: cps/web.py:225
5
msgid "register"
msgstr ""
#: cps/web.py:224
2 cps/web.py:3357
#: cps/web.py:224
3 cps/web.py:3358
msgid "An unknown error occurred. Please try again later."
msgstr ""
#: cps/web.py:224
5
#: cps/web.py:224
6
msgid "Your e-mail is not allowed to register"
msgstr ""
#: cps/web.py:224
8
#: cps/web.py:224
9
msgid "Confirmation e-mail was send to your e-mail account."
msgstr ""
#: cps/web.py:225
1
#: cps/web.py:225
2
msgid "This username or e-mail address is already in use."
msgstr ""
#: cps/web.py:226
8 cps/web.py:2364
#: cps/web.py:226
9 cps/web.py:2365
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr ""
#: cps/web.py:227
3
#: cps/web.py:227
4
msgid "Wrong Username or Password"
msgstr ""
#: cps/web.py:22
79 cps/web.py:2300
#: cps/web.py:22
80 cps/web.py:2301
msgid "login"
msgstr ""
#: cps/web.py:231
2 cps/web.py:2343
#: cps/web.py:231
3 cps/web.py:2344
msgid "Token not found"
msgstr ""
#: cps/web.py:232
0 cps/web.py:2351
#: cps/web.py:232
1 cps/web.py:2352
msgid "Token has expired"
msgstr ""
#: cps/web.py:232
8
#: cps/web.py:232
9
msgid "Success! Please return to your device"
msgstr ""
#: cps/web.py:237
8
#: cps/web.py:237
9
msgid "Please configure the SMTP mail settings first..."
msgstr ""
#: cps/web.py:238
3
#: cps/web.py:238
4
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr ""
#: cps/web.py:238
7
#: cps/web.py:238
8
#, python-format
msgid "There was an error sending this book: %(res)s"
msgstr ""
#: cps/web.py:23
89 cps/web.py:3191
#: cps/web.py:23
90 cps/web.py:3192
msgid "Please configure your kindle e-mail address first..."
msgstr ""
#: cps/web.py:240
0 cps/web.py:2452
#: cps/web.py:240
1 cps/web.py:2453
msgid "Invalid shelf specified"
msgstr ""
#: cps/web.py:240
7
#: cps/web.py:240
8
#, python-format
msgid "Sorry you are not allowed to add a book to the the shelf: %(shelfname)s"
msgstr ""
#: cps/web.py:241
5
#: cps/web.py:241
6
msgid "You are not allowed to edit public shelves"
msgstr ""
#: cps/web.py:242
4
#: cps/web.py:242
5
#, python-format
msgid "Book is already part of the shelf: %(shelfname)s"
msgstr ""
#: cps/web.py:243
8
#: cps/web.py:243
9
#, python-format
msgid "Book has been added to shelf: %(sname)s"
msgstr ""
#: cps/web.py:245
7
#: cps/web.py:245
8
#, python-format
msgid "You are not allowed to add a book to the the shelf: %(name)s"
msgstr ""
#: cps/web.py:246
2
#: cps/web.py:246
3
msgid "User is not allowed to edit public shelves"
msgstr ""
#: cps/web.py:248
0
#: cps/web.py:248
1
#, python-format
msgid "Books are already part of the shelf: %(name)s"
msgstr ""
#: cps/web.py:249
4
#: cps/web.py:249
5
#, python-format
msgid "Books have been added to shelf: %(sname)s"
msgstr ""
#: cps/web.py:249
6
#: cps/web.py:249
7
#, python-format
msgid "Could not add books to shelf: %(sname)s"
msgstr ""
#: cps/web.py:253
3
#: cps/web.py:253
4
#, python-format
msgid "Book has been removed from shelf: %(sname)s"
msgstr ""
#: cps/web.py:25
39
#: cps/web.py:25
40
#, python-format
msgid "Sorry you are not allowed to remove a book from this shelf: %(sname)s"
msgstr ""
#: cps/web.py:256
0 cps/web.py:2584
#: cps/web.py:256
1 cps/web.py:2585
#, python-format
msgid "A shelf with the name '%(title)s' already exists."
msgstr ""
#: cps/web.py:256
5
#: cps/web.py:256
6
#, python-format
msgid "Shelf %(title)s created"
msgstr ""
#: cps/web.py:256
7 cps/web.py:2595
#: cps/web.py:256
8 cps/web.py:2596
msgid "There was an error"
msgstr ""
#: cps/web.py:256
8 cps/web.py:2570
#: cps/web.py:256
9 cps/web.py:2571
msgid "create a shelf"
msgstr ""
#: cps/web.py:259
3
#: cps/web.py:259
4
#, python-format
msgid "Shelf %(title)s changed"
msgstr ""
#: cps/web.py:259
6 cps/web.py:2598
#: cps/web.py:259
7 cps/web.py:2599
msgid "Edit a shelf"
msgstr ""
#: cps/web.py:26
19
#: cps/web.py:26
20
#, python-format
msgid "successfully deleted shelf %(name)s"
msgstr ""
#: cps/web.py:264
6
#: cps/web.py:264
7
#, python-format
msgid "Shelf: '%(name)s'"
msgstr ""
#: cps/web.py:26
49
#: cps/web.py:26
50
msgid "Error opening shelf. Shelf does not exist or is not accessible"
msgstr ""
#: cps/web.py:268
0
#: cps/web.py:268
1
#, python-format
msgid "Change order of Shelf: '%(name)s'"
msgstr ""
#: cps/web.py:27
09 cps/web.py:3144
#: cps/web.py:27
10 cps/web.py:3145
msgid "E-mail is not from valid domain"
msgstr ""
#: cps/web.py:271
1 cps/web.py:2753 cps/web.py:2756
#: cps/web.py:271
2 cps/web.py:2754 cps/web.py:2757
#, python-format
msgid "%(name)s's profile"
msgstr ""
#: cps/web.py:275
1
#: cps/web.py:275
2
msgid "Found an existing account for this e-mail address."
msgstr ""
#: cps/web.py:275
4
#: cps/web.py:275
5
msgid "Profile updated"
msgstr ""
#: cps/web.py:278
5
#: cps/web.py:278
6
msgid "Admin page"
msgstr ""
#: cps/web.py:286
7 cps/web.py:3047
#: cps/web.py:286
8 cps/web.py:3048
msgid "Calibre-Web configuration updated"
msgstr ""
#: cps/templates/admin.html:100 cps/web.py:288
1
#: cps/templates/admin.html:100 cps/web.py:288
2
msgid "UI Configuration"
msgstr ""
#: cps/web.py:2
899
#: cps/web.py:2
900
msgid "Import of optional Google Drive requirements missing"
msgstr ""
#: cps/web.py:290
2
#: cps/web.py:290
3
msgid "client_secrets.json is missing or not readable"
msgstr ""
#: cps/web.py:290
7 cps/web.py:2936
#: cps/web.py:290
8 cps/web.py:2937
msgid "client_secrets.json is not configured for web application"
msgstr ""
#: cps/templates/admin.html:99 cps/web.py:29
39 cps/web.py:2965 cps/web.py:2977
#: cps/web.py:302
2 cps/web.py:3037 cps/web.py:3056 cps/web.py:3064
#: cps/web.py:308
0
#: cps/templates/admin.html:99 cps/web.py:29
40 cps/web.py:2966 cps/web.py:2978
#: cps/web.py:302
3 cps/web.py:3038 cps/web.py:3057 cps/web.py:3065
#: cps/web.py:308
1
msgid "Basic Configuration"
msgstr ""
#: cps/web.py:296
2
#: cps/web.py:296
3
msgid "Keyfile location is not valid, please enter correct path"
msgstr ""
#: cps/web.py:297
4
#: cps/web.py:297
5
msgid "Certfile location is not valid, please enter correct path"
msgstr ""
#: cps/web.py:30
19
#: cps/web.py:30
20
msgid "Logfile location is not valid, please enter correct path"
msgstr ""
#: cps/web.py:306
0
#: cps/web.py:306
1
msgid "DB location is not valid, please enter correct path"
msgstr ""
#: cps/templates/admin.html:33 cps/web.py:314
0 cps/web.py:3146 cps/web.py:3162
#: cps/templates/admin.html:33 cps/web.py:314
1 cps/web.py:3147 cps/web.py:3163
msgid "Add new user"
msgstr ""
#: cps/web.py:315
2
#: cps/web.py:315
3
#, python-format
msgid "User '%(user)s' created"
msgstr ""
#: cps/web.py:315
6
#: cps/web.py:315
7
msgid "Found an existing account for this e-mail address or nickname."
msgstr ""
#: cps/web.py:318
6
#: cps/web.py:318
7
#, python-format
msgid "Test e-mail successfully send to %(kindlemail)s"
msgstr ""
#: cps/web.py:31
89
#: cps/web.py:31
90
#, python-format
msgid "There was an error sending the Test e-mail: %(res)s"
msgstr ""
#: cps/web.py:319
3
#: cps/web.py:319
4
msgid "E-mail server settings updated"
msgstr ""
#: cps/web.py:319
4
#: cps/web.py:319
5
msgid "Edit e-mail server settings"
msgstr ""
#: cps/web.py:32
19
#: cps/web.py:32
20
#, python-format
msgid "User '%(nick)s' deleted"
msgstr ""
#: cps/web.py:333
2
#: cps/web.py:333
3
#, python-format
msgid "User '%(nick)s' updated"
msgstr ""
#: cps/web.py:333
5
#: cps/web.py:333
6
msgid "An unknown error occured."
msgstr ""
#: cps/web.py:333
7
#: cps/web.py:333
8
#, python-format
msgid "Edit User %(nick)s"
msgstr ""
#: cps/web.py:335
4
#: cps/web.py:335
5
#, python-format
msgid "Password for user %(user)s reset"
msgstr ""
#: cps/web.py:336
8 cps/web.py:3574
#: cps/web.py:336
9 cps/web.py:3575
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr ""
#: cps/web.py:339
6 cps/web.py:3868
#: cps/web.py:339
7
msgid "edit metadata"
msgstr ""
#: cps/web.py:34
89 cps/web.py:3736
#: cps/web.py:34
90 cps/web.py:3737
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr ""
#: cps/web.py:349
3 cps/web.py:3740
#: cps/web.py:349
4 cps/web.py:3741
msgid "File to be uploaded must have an extension"
msgstr ""
#: cps/web.py:350
5 cps/web.py:3760
#: cps/web.py:350
6 cps/web.py:3761
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr ""
#: cps/web.py:351
0
#: cps/web.py:351
1
#, python-format
msgid "Failed to store file %(file)s."
msgstr ""
#: cps/web.py:352
7
#: cps/web.py:352
8
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr ""
#: cps/web.py:354
5
#: cps/web.py:354
6
#, python-format
msgid "Failed to create path for cover %(path)s (Permission denied)."
msgstr ""
#: cps/web.py:355
3
#: cps/web.py:355
4
#, python-format
msgid "Failed to store cover-file %(cover)s."
msgstr ""
#: cps/web.py:355
6
#: cps/web.py:355
7
msgid "Cover-file is not a valid image file"
msgstr ""
#: cps/web.py:358
6 cps/web.py:3595
#: cps/web.py:358
7 cps/web.py:3596
msgid "unknown"
msgstr ""
#: cps/web.py:362
7
#: cps/web.py:362
8
msgid "Cover is not a jpg file, can't save"
msgstr ""
#: cps/web.py:367
5
#: cps/web.py:367
6
#, python-format
msgid "%(langname)s is not a valid language"
msgstr ""
#: cps/web.py:370
6
#: cps/web.py:370
7
msgid "Metadata successfully updated"
msgstr ""
#: cps/web.py:371
5
#: cps/web.py:371
6
msgid "Error editing book, please check logfile for details"
msgstr ""
#: cps/web.py:376
5
#: cps/web.py:376
6
#, python-format
msgid "Failed to store file %(file)s (Permission denied)."
msgstr ""
#: cps/web.py:377
0
#: cps/web.py:377
1
#, python-format
msgid "Failed to delete file %(file)s (Permission denied)."
msgstr ""
#: cps/web.py:388
8
#: cps/web.py:388
3
msgid "Source or destination format for conversion missing"
msgstr ""
#: cps/web.py:389
8
#: cps/web.py:389
3
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr ""
#: cps/web.py:3
902
#: cps/web.py:3
897
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr ""
...
...
@@ -778,7 +778,7 @@ msgstr ""
msgid "DLS"
msgstr ""
#: cps/templates/admin.html:13 cps/templates/layout.html:7
4
#: cps/templates/admin.html:13 cps/templates/layout.html:7
5
msgid "Admin"
msgstr ""
...
...
@@ -787,7 +787,7 @@ msgstr ""
msgid "Download"
msgstr ""
#: cps/templates/admin.html:15 cps/templates/layout.html:6
4
#: cps/templates/admin.html:15 cps/templates/layout.html:6
5
msgid "Upload"
msgstr ""
...
...
@@ -988,7 +988,7 @@ msgstr ""
msgid "Tags"
msgstr ""
#: cps/templates/book_edit.html:75 cps/templates/layout.html:15
7
#: cps/templates/book_edit.html:75 cps/templates/layout.html:15
8
#: cps/templates/search_form.html:53
msgid "Series"
msgstr ""
...
...
@@ -1070,7 +1070,7 @@ msgstr ""
msgid " Search keyword "
msgstr ""
#: cps/templates/book_edit.html:218 cps/templates/layout.html:4
6
#: cps/templates/book_edit.html:218 cps/templates/layout.html:4
7
msgid "Go!"
msgstr ""
...
...
@@ -1082,7 +1082,7 @@ msgstr ""
msgid "Loading..."
msgstr ""
#: cps/templates/book_edit.html:239 cps/templates/layout.html:22
4
#: cps/templates/book_edit.html:239 cps/templates/layout.html:22
5
msgid "Close"
msgstr ""
...
...
@@ -1250,7 +1250,7 @@ msgstr ""
msgid "Location of Unrar binary"
msgstr ""
#: cps/templates/config_edit.html:229 cps/templates/layout.html:8
2
#: cps/templates/config_edit.html:229 cps/templates/layout.html:8
3
#: cps/templates/login.html:4
msgid "Login"
msgstr ""
...
...
@@ -1259,8 +1259,8 @@ msgstr ""
msgid "View Configuration"
msgstr ""
#: cps/templates/config_view_edit.html:19 cps/templates/layout.html:13
3
#: cps/templates/layout.html:13
4
cps/templates/shelf_edit.html:7
#: cps/templates/config_view_edit.html:19 cps/templates/layout.html:13
4
#: cps/templates/layout.html:13
5
cps/templates/shelf_edit.html:7
msgid "Title"
msgstr ""
...
...
@@ -1472,12 +1472,12 @@ msgstr ""
msgid "Do you really want to delete this domain rule?"
msgstr ""
#: cps/templates/feed.xml:21 cps/templates/layout.html:20
8
#: cps/templates/feed.xml:21 cps/templates/layout.html:20
9
msgid "Next"
msgstr ""
#: cps/templates/feed.xml:33 cps/templates/index.xml:11
#: cps/templates/layout.html:4
3 cps/templates/layout.html:44
#: cps/templates/layout.html:4
4 cps/templates/layout.html:45
msgid "Search"
msgstr ""
...
...
@@ -1493,7 +1493,7 @@ msgstr ""
msgid "Start"
msgstr ""
#: cps/templates/index.xml:18 cps/templates/layout.html:1
39
#: cps/templates/index.xml:18 cps/templates/layout.html:1
40
msgid "Hot Books"
msgstr ""
...
...
@@ -1501,7 +1501,7 @@ msgstr ""
msgid "Popular publications from this catalog based on Downloads."
msgstr ""
#: cps/templates/index.xml:25 cps/templates/layout.html:14
2
#: cps/templates/index.xml:25 cps/templates/layout.html:14
3
msgid "Best rated Books"
msgstr ""
...
...
@@ -1521,7 +1521,7 @@ msgstr ""
msgid "Show Random Books"
msgstr ""
#: cps/templates/index.xml:62 cps/templates/layout.html:16
0
#: cps/templates/index.xml:62 cps/templates/layout.html:16
1
msgid "Authors"
msgstr ""
...
...
@@ -1529,7 +1529,7 @@ msgstr ""
msgid "Books ordered by Author"
msgstr ""
#: cps/templates/index.xml:69 cps/templates/layout.html:16
3
#: cps/templates/index.xml:69 cps/templates/layout.html:16
4
msgid "Publishers"
msgstr ""
...
...
@@ -1545,7 +1545,7 @@ msgstr ""
msgid "Books ordered by series"
msgstr ""
#: cps/templates/index.xml:90 cps/templates/layout.html:1
69
#: cps/templates/index.xml:90 cps/templates/layout.html:1
70
msgid "Public Shelves"
msgstr ""
...
...
@@ -1553,7 +1553,7 @@ msgstr ""
msgid "Books organized in public shelfs, visible to everyone"
msgstr ""
#: cps/templates/index.xml:98 cps/templates/layout.html:17
3
#: cps/templates/index.xml:98 cps/templates/layout.html:17
4
msgid "Your Shelves"
msgstr ""
...
...
@@ -1561,91 +1561,95 @@ msgstr ""
msgid "User's own shelfs, only visible to the current user himself"
msgstr ""
#: cps/templates/layout.html:3
3
#: cps/templates/layout.html:3
4
msgid "Toggle navigation"
msgstr ""
#: cps/templates/layout.html:5
4
#: cps/templates/layout.html:5
5
msgid "Advanced Search"
msgstr ""
#: cps/templates/layout.html:7
8
#: cps/templates/layout.html:7
9
msgid "Logout"
msgstr ""
#: cps/templates/layout.html:8
3
cps/templates/register.html:14
#: cps/templates/layout.html:8
4
cps/templates/register.html:14
msgid "Register"
msgstr ""
#: cps/templates/layout.html:1
08
#: cps/templates/layout.html:1
10
msgid "Uploading..."
msgstr ""
#: cps/templates/layout.html:1
09
#: cps/templates/layout.html:1
11
msgid "please don't refresh the page"
msgstr ""
#: cps/templates/layout.html:12
0
#: cps/templates/layout.html:12
1
msgid "Browse"
msgstr ""
#: cps/templates/layout.html:12
2
#: cps/templates/layout.html:12
3
msgid "Recently Added"
msgstr ""
#: cps/templates/layout.html:12
7
#: cps/templates/layout.html:12
8
msgid "Sorted Books"
msgstr ""
#: cps/templates/layout.html:13
1 cps/templates/layout.html:132
#: cps/templates/layout.html:13
3 cps/templates/layout.html:134
#: cps/templates/layout.html:13
2 cps/templates/layout.html:133
#: cps/templates/layout.html:13
4 cps/templates/layout.html:135
msgid "Sort By"
msgstr ""
#: cps/templates/layout.html:13
1
#: cps/templates/layout.html:13
2
msgid "Newest"
msgstr ""
#: cps/templates/layout.html:13
2
#: cps/templates/layout.html:13
3
msgid "Oldest"
msgstr ""
#: cps/templates/layout.html:13
3
#: cps/templates/layout.html:13
4
msgid "Ascending"
msgstr ""
#: cps/templates/layout.html:13
4
#: cps/templates/layout.html:13
5
msgid "Descending"
msgstr ""
#: cps/templates/layout.html:15
1
#: cps/templates/layout.html:15
2
msgid "Discover"
msgstr ""
#: cps/templates/layout.html:15
4
#: cps/templates/layout.html:15
5
msgid "Categories"
msgstr ""
#: cps/templates/layout.html:16
6
cps/templates/search_form.html:74
#: cps/templates/layout.html:16
7
cps/templates/search_form.html:74
msgid "Languages"
msgstr ""
#: cps/templates/layout.html:17
8
#: cps/templates/layout.html:17
9
msgid "Create a Shelf"
msgstr ""
#: cps/templates/layout.html:1
79
cps/templates/stats.html:3
#: cps/templates/layout.html:1
80
cps/templates/stats.html:3
msgid "About"
msgstr ""
#: cps/templates/layout.html:19
3
#: cps/templates/layout.html:19
4
msgid "Previous"
msgstr ""
#: cps/templates/layout.html:22
0
#: cps/templates/layout.html:22
1
msgid "Book Details"
msgstr ""
#: cps/templates/layout.html:255
msgid "Upload done, processing, please wait..."
msgstr ""
#: cps/templates/login.html:8 cps/templates/login.html:9
#: cps/templates/register.html:7 cps/templates/user_edit.html:8
msgid "Username"
...
...
@@ -1668,12 +1672,12 @@ msgstr ""
msgid "Calibre-Web ebook catalog"
msgstr ""
#: cps/templates/read.html:
69
cps/templates/readcbr.html:79
#: cps/templates/read.html:
71
cps/templates/readcbr.html:79
#: cps/templates/readcbr.html:103
msgid "Settings"
msgstr ""
#: cps/templates/read.html:7
2
#: cps/templates/read.html:7
4
msgid "Reflow text when sidebars are open."
msgstr ""
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment