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