Merge remote-tracking branch 'upstream/master'

pull/321/head
Ainsley Pereira 7 years ago
commit a75c393922

3
.gitignore vendored

@ -27,5 +27,4 @@ tags
settings.yaml settings.yaml
gdrive_credentials gdrive_credentials
#kindlegen vendor
vendor/kindlegen

@ -0,0 +1,60 @@
# Inspired by https://github.com/ChrisTM/Flask-CacheBust
# Uses query strings so CSS font files are found without having to resort to absolute URLs
import hashlib
import os
def init_cache_busting(app):
"""
Configure `app` to so that `url_for` adds a unique query string to URLs generated
for the `'static'` endpoint.
This allows setting long cache expiration values on static resources
because whenever the resource changes, so does its URL.
"""
static_folder = os.path.join(app.static_folder, '') # path to the static file folder, with trailing slash
hash_table = {} # map of file hashes
app.logger.debug('Computing cache-busting values...')
# compute file hashes
for dirpath, dirnames, filenames in os.walk(static_folder):
for filename in filenames:
# compute version component
rooted_filename = os.path.join(dirpath, filename)
with open(rooted_filename, 'r') as f:
file_hash = hashlib.md5(f.read()).hexdigest()[:7]
# save version to tables
file_path = rooted_filename.replace(static_folder, "")
file_path = file_path.replace("\\", "/") # Convert Windows path to web path
hash_table[file_path] = file_hash
app.logger.debug('Finished computing cache-busting values')
def bust_filename(filename):
return hash_table.get(filename, "")
def unbust_filename(filename):
return filename.split("?", 1)[0]
@app.url_defaults
def reverse_to_cache_busted_url(endpoint, values):
"""
Make `url_for` produce busted filenames when using the 'static' endpoint.
"""
if endpoint == "static":
file_hash = bust_filename(values["filename"])
if file_hash:
values["q"] = file_hash
def debusting_static_view(filename):
"""
Serve a request for a static file having a busted name.
"""
return original_static_view(filename=unbust_filename(filename))
# Replace the default static file view with our debusting view.
original_static_view = app.view_functions["static"]
app.view_functions["static"] = debusting_static_view

@ -278,7 +278,7 @@ def get_valid_filename(value, replace_whitespace=True):
else: else:
value = unicode(re_slugify.sub('', value).strip()) value = unicode(re_slugify.sub('', value).strip())
if replace_whitespace: if replace_whitespace:
#*+:\"/<>? werden durch _ ersetzt #*+:\"/<>? are replaced by _
value = re.sub('[\*\+:\\\"/<>\?]+', u'_', value, flags=re.U) value = re.sub('[\*\+:\\\"/<>\?]+', u'_', value, flags=re.U)
value = value[:128] value = value[:128]

@ -77,7 +77,8 @@ input.pill:not(:checked) + label .glyphicon {
} }
.author-bio img {margin: 0 1em 1em 0;} .author-bio img {margin: 0 1em 1em 0;}
.author-link img {display: inline-block;max-width: 100px;} .author-link {display: inline-block; margin-top: 10px; width: 100px;}
.author-link img {display: block; height: 100%;}
#remove-from-shelves .btn, #remove-from-shelves .btn,
#shelf-action-errors { #shelf-action-errors {

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="673.826" height="144" viewBox="0 0 673.826 144"><g fill="#5A481C"><path d="M66.66 86.444h-.315c-3.34 14.507-18.19 22.964-32.213 22.964C11.33 109.408 0 91.212 0 70.163c0-22.008 12.146-40.18 35.245-40.18 15.643 0 27.917 10.368 31.1 23.76h.315v-21.85h3.194v79.26C69.854 133.474 57.09 144 35.71 144c-16.576 0-30.78-7.49-31.257-25.843h3.205c.642 16.273 13.08 22.65 27.896 22.65 19.787 0 31.106-9.402 31.106-29.656V86.445zM35.245 33.176c-21.215 0-32.062 17.06-32.062 36.987 0 20.25 10.846 36.062 30.768 36.062 21.065 0 32.558-16.295 32.558-36.062.152-18.825-10.678-36.987-31.263-36.987zM115.787 29.982c23.926 0 36.825 20.58 36.825 42.897 0 22.482-12.898 42.894-36.987 42.894-23.915 0-36.853-20.41-36.853-42.895 0-22.318 12.938-42.898 37.015-42.898zm0 82.598c21.828 0 33.642-18.972 33.642-39.7 0-20.418-11.815-39.704-33.643-39.704-22.176 0-33.81 19.287-33.81 39.703 0 20.728 11.634 39.7 33.81 39.7zM194.57 29.982c23.908 0 36.824 20.58 36.824 42.897 0 22.482-12.916 42.894-36.987 42.894-23.925 0-36.84-20.41-36.84-42.895-.002-22.318 12.914-42.898 37.003-42.898zm0 82.598c21.856 0 33.643-18.972 33.643-39.7 0-20.418-11.786-39.704-33.643-39.704-22.17 0-33.822 19.287-33.822 39.703 0 20.728 11.65 39.7 33.822 39.7zM304.436 0h3.194v113.86h-3.194V90.91h-.326c-4.14 14.337-16.082 24.863-32.837 24.863-21.7 0-34.942-18.027-34.942-42.73 0-22.97 12.3-43.06 34.943-43.06 17.386 0 29.02 10.053 32.837 24.87h.326V0zm-33.163 33.176c-22.493 0-31.736 20.883-31.736 39.866 0 21.04 10.526 39.538 31.736 39.538 21.052 0 33.163-18.32 33.163-39.538 0-25.36-13.236-39.866-33.163-39.866zM323.093 31.58h9.25v19.286h.327c5.103-13.248 16.253-21.052 31.098-20.4v10.042c-18.196-.967-30.62 12.427-30.62 29.492v43.86h-10.054V31.58zM372.38 75.426c.147 14.684 7.806 32.363 27.092 32.363 14.688 0 22.65-8.604 25.832-21.03h10.064c-4.308 18.656-15.16 29.486-35.896 29.486-26.124 0-37.146-20.097-37.146-43.52 0-21.693 11.02-43.543 37.146-43.543 26.483 0 37.032 23.132 36.21 46.243h-63.3zm53.25-8.446c-.462-15.148-9.886-29.363-26.158-29.363-16.42 0-25.495 14.372-27.09 29.363h53.248zM444.297 56.775c.945-19.293 14.508-27.592 33.333-27.592 14.54 0 30.342 4.47 30.342 26.46v43.71c0 3.836 1.923 6.063 5.915 6.063 1.113 0 2.36-.326 3.183-.64v8.445c-2.238.484-3.835.642-6.557.642-10.2 0-11.82-5.735-11.82-14.36h-.28c-7.04 10.683-14.226 16.745-30.05 16.745-15.124 0-27.573-7.467-27.573-24.078 0-23.12 22.48-23.913 44.185-26.46 8.31-.978 12.933-2.09 12.933-11.172 0-13.557-9.728-16.92-21.56-16.92-12.436 0-21.67 5.76-22.03 19.16H444.3zm53.61 12.106h-.314c-1.27 2.397-5.758 3.207-8.457 3.68-17.082 3.024-38.292 2.867-38.292 18.968 0 10.054 8.93 16.262 18.342 16.262 15.317 0 28.89-9.716 28.722-25.82V68.88zM596.488 113.86h-9.232V98.24h-.326c-4.308 10.685-17.386 18.006-29.34 18.006-25.068 0-37.01-20.23-37.01-43.52 0-23.29 11.94-43.543 37.01-43.543 12.27 0 24.223 6.22 28.52 18.016h.348V0h10.03v113.86zm-38.9-6.07c21.356 0 28.868-18.017 28.868-35.063 0-17.083-7.512-35.11-28.868-35.11-19.14 0-26.956 18.027-26.956 35.11 0 17.046 7.817 35.062 26.956 35.062zM660.926 55.645c-.494-12.438-10.043-18.027-21.535-18.027-8.94 0-19.443 3.52-19.443 14.215 0 8.918 10.188 12.112 17.06 13.877l13.395 3.014c11.47 1.76 23.425 8.457 23.425 22.804 0 17.88-17.667 24.72-33.007 24.72-19.14 0-32.208-8.93-33.805-29.016h10.03c.82 13.54 10.864 20.558 24.27 20.558 9.38 0 22.47-4.14 22.47-15.62 0-9.56-8.92-12.745-18.005-14.99l-12.933-2.855c-13.068-3.51-22.976-7.984-22.976-22.008 0-16.745 16.43-23.132 30.95-23.132 16.418 0 29.52 8.625 30.14 26.46h-10.034z"/></g></svg> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 673.826 144"><g fill="#5A481C"><path d="M66.66 86.444h-.315c-3.34 14.507-18.19 22.964-32.213 22.964C11.33 109.408 0 91.212 0 70.163c0-22.008 12.146-40.18 35.245-40.18 15.643 0 27.917 10.368 31.1 23.76h.315v-21.85h3.194v79.26C69.854 133.474 57.09 144 35.71 144c-16.576 0-30.78-7.49-31.257-25.843h3.205c.642 16.273 13.08 22.65 27.896 22.65 19.787 0 31.106-9.402 31.106-29.656V86.445zM35.245 33.176c-21.215 0-32.062 17.06-32.062 36.987 0 20.25 10.846 36.062 30.768 36.062 21.065 0 32.558-16.295 32.558-36.062.152-18.825-10.678-36.987-31.263-36.987zM115.787 29.982c23.926 0 36.825 20.58 36.825 42.897 0 22.482-12.898 42.894-36.987 42.894-23.915 0-36.853-20.41-36.853-42.895 0-22.318 12.938-42.898 37.015-42.898zm0 82.598c21.828 0 33.642-18.972 33.642-39.7 0-20.418-11.815-39.704-33.643-39.704-22.176 0-33.81 19.287-33.81 39.703 0 20.728 11.634 39.7 33.81 39.7zM194.57 29.982c23.908 0 36.824 20.58 36.824 42.897 0 22.482-12.916 42.894-36.987 42.894-23.925 0-36.84-20.41-36.84-42.895-.002-22.318 12.914-42.898 37.003-42.898zm0 82.598c21.856 0 33.643-18.972 33.643-39.7 0-20.418-11.786-39.704-33.643-39.704-22.17 0-33.822 19.287-33.822 39.703 0 20.728 11.65 39.7 33.822 39.7zM304.436 0h3.194v113.86h-3.194V90.91h-.326c-4.14 14.337-16.082 24.863-32.837 24.863-21.7 0-34.942-18.027-34.942-42.73 0-22.97 12.3-43.06 34.943-43.06 17.386 0 29.02 10.053 32.837 24.87h.326V0zm-33.163 33.176c-22.493 0-31.736 20.883-31.736 39.866 0 21.04 10.526 39.538 31.736 39.538 21.052 0 33.163-18.32 33.163-39.538 0-25.36-13.236-39.866-33.163-39.866zM323.093 31.58h9.25v19.286h.327c5.103-13.248 16.253-21.052 31.098-20.4v10.042c-18.196-.967-30.62 12.427-30.62 29.492v43.86h-10.054V31.58zM372.38 75.426c.147 14.684 7.806 32.363 27.092 32.363 14.688 0 22.65-8.604 25.832-21.03h10.064c-4.308 18.656-15.16 29.486-35.896 29.486-26.124 0-37.146-20.097-37.146-43.52 0-21.693 11.02-43.543 37.146-43.543 26.483 0 37.032 23.132 36.21 46.243h-63.3zm53.25-8.446c-.462-15.148-9.886-29.363-26.158-29.363-16.42 0-25.495 14.372-27.09 29.363h53.248zM444.297 56.775c.945-19.293 14.508-27.592 33.333-27.592 14.54 0 30.342 4.47 30.342 26.46v43.71c0 3.836 1.923 6.063 5.915 6.063 1.113 0 2.36-.326 3.183-.64v8.445c-2.238.484-3.835.642-6.557.642-10.2 0-11.82-5.735-11.82-14.36h-.28c-7.04 10.683-14.226 16.745-30.05 16.745-15.124 0-27.573-7.467-27.573-24.078 0-23.12 22.48-23.913 44.185-26.46 8.31-.978 12.933-2.09 12.933-11.172 0-13.557-9.728-16.92-21.56-16.92-12.436 0-21.67 5.76-22.03 19.16H444.3zm53.61 12.106h-.314c-1.27 2.397-5.758 3.207-8.457 3.68-17.082 3.024-38.292 2.867-38.292 18.968 0 10.054 8.93 16.262 18.342 16.262 15.317 0 28.89-9.716 28.722-25.82V68.88zM596.488 113.86h-9.232V98.24h-.326c-4.308 10.685-17.386 18.006-29.34 18.006-25.068 0-37.01-20.23-37.01-43.52 0-23.29 11.94-43.543 37.01-43.543 12.27 0 24.223 6.22 28.52 18.016h.348V0h10.03v113.86zm-38.9-6.07c21.356 0 28.868-18.017 28.868-35.063 0-17.083-7.512-35.11-28.868-35.11-19.14 0-26.956 18.027-26.956 35.11 0 17.046 7.817 35.062 26.956 35.062zM660.926 55.645c-.494-12.438-10.043-18.027-21.535-18.027-8.94 0-19.443 3.52-19.443 14.215 0 8.918 10.188 12.112 17.06 13.877l13.395 3.014c11.47 1.76 23.425 8.457 23.425 22.804 0 17.88-17.667 24.72-33.007 24.72-19.14 0-32.208-8.93-33.805-29.016h10.03c.82 13.54 10.864 20.558 24.27 20.558 9.38 0 22.47-4.14 22.47-15.62 0-9.56-8.92-12.745-18.005-14.99l-12.933-2.855c-13.068-3.51-22.976-7.984-22.976-22.008 0-16.745 16.43-23.132 30.95-23.132 16.418 0 29.52 8.625 30.14 26.46h-10.034z"/></g></svg>

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

@ -8,18 +8,17 @@ tinymce.init({
selector: "#description", selector: "#description",
branding: false, branding: false,
menubar: "edit view format", menubar: "edit view format",
language language: language
}); });
if (!Modernizr.inputtypes.date) { if (!Modernizr.inputtypes.date) {
$("#pubdate").datepicker({ $("#pubdate").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language language: language
}).on("change", function () { }).on("change", function () {
// Show localized date over top of the standard YYYY-MM-DD date // Show localized date over top of the standard YYYY-MM-DD date
let pubDate; var pubDate;
const results = /(\d{4})[-\/\\](\d{1,2})[-\/\\](\d{1,2})/.exec(this.value); // YYYY-MM-DD var results = /(\d{4})[-\/\\](\d{1,2})[-\/\\](\d{1,2})/.exec(this.value); // YYYY-MM-DD
if (results) { if (results) {
pubDate = new Date(results[1], parseInt(results[2], 10) - 1, results[3]) || new Date(this.value); pubDate = new Date(results[1], parseInt(results[2], 10) - 1, results[3]) || new Date(this.value);
} }
@ -29,6 +28,7 @@ if (!Modernizr.inputtypes.date) {
}).trigger("change"); }).trigger("change");
} }
} }
/* /*
Takes a prefix, query typeahead callback, Bloodhound typeahead adapter Takes a prefix, query typeahead callback, Bloodhound typeahead adapter
and returns the completions it gets from the bloodhound engine prefixed. and returns the completions it gets from the bloodhound engine prefixed.
@ -43,6 +43,7 @@ function prefixedSource(prefix, query, cb, bhAdapter) {
cb(matches); cb(matches);
}); });
} }
function getPath() { function getPath() {
var jsFileLocation = $("script[src*=edit_books]").attr("src"); // the js file path var jsFileLocation = $("script[src*=edit_books]").attr("src"); // the js file path
jsFileLocation = jsFileLocation.replace("/static/js/edit_books.js", ""); // the js folder path jsFileLocation = jsFileLocation.replace("/static/js/edit_books.js", ""); // the js folder path

@ -11,16 +11,17 @@
{%if author.about is not none %} {%if author.about is not none %}
<p>{{author.about|safe}}</p> <p>{{author.about|safe}}</p>
{% endif %} {% endif %}
</section>
<a href="{{author.link}}" class="author-link" target="_blank"> - {{_("via")}} <a href="{{author.link}}" class="author-link" target="_blank" rel="noopener">Goodreads</a>
<img src="{{ url_for('static', filename='img/goodreads.svg') }}" alt="Goodreads"> </section>
</a>
<div class="clearfix"></div> <div class="clearfix"></div>
{% endif %} {% endif %}
<div class="discover load-more"> <div class="discover load-more">
{% if author is not none %}
<h3>{{_("In Library")}}</h3>
{% endif %}
<div class="row"> <div class="row">
{% if entries[0] %} {% if entries[0] %}
{% for entry in entries %} {% for entry in entries %}
@ -62,4 +63,48 @@
{% endif %} {% endif %}
</div> </div>
</div> </div>
{% if other_books %}
<div class="discover">
<h3>{{_("More by")}} {{ author.name|safe }}</h3>
<div class="row">
{% for entry in other_books %}
<div class="col-sm-3 col-lg-2 col-xs-6 book">
<div class="cover">
<a href="https://www.goodreads.com/book/show/{{ entry.gid['#text'] }}" target="_blank" rel="noopener">
<img src="{{ entry.image_url }}" />
</a>
</div>
<div class="meta">
<p class="title">{{entry.title|shortentitle}}</p>
<p class="author">
{% for author in entry.authors %}
<a href="https://www.goodreads.com/author/show/{{ author.gid }}" target="_blank" rel="noopener">
{{author.name}}
</a>
{% if not loop.last %}
&amp;
{% endif %}
{% endfor %}
</p>
<div class="rating">
{% for number in range((entry.average_rating)|float|round|int(2)) %}
<span class="glyphicon glyphicon-star good"></span>
{% if loop.last and loop.index < 5 %}
{% for numer in range(5 - loop.index) %}
<span class="glyphicon glyphicon-star"></span>
{% endfor %}
{% endif %}
{% endfor %}
</div>
</div>
</div>
{% endfor %}
</div>
<a href="{{author.link}}" class="author-link" target="_blank" rel="noopener">
<img src="{{ url_for('static', filename='img/goodreads.svg') }}" alt="Goodreads">
</a>
</div>
{% endif %}
{% endblock %} {% endblock %}

@ -26,9 +26,7 @@
href="{{request.script_root + request.path}}?offset={{ pagination.previous_offset }}" href="{{request.script_root + request.path}}?offset={{ pagination.previous_offset }}"
type="application/atom+xml;profile=opds-catalog;type=feed;kind=navigation"/> type="application/atom+xml;profile=opds-catalog;type=feed;kind=navigation"/>
{% endif %} {% endif %}
<link rel="search" <link title="{{_('Search')}}" type="application/atom+xml" href="{{url_for('feed_normal_search')}}?query={searchTerms}" rel="search"/>
href="{{url_for('feed_osd')}}"
type="application/opensearchdescription+xml"/>
<title>{{instance}}</title> <title>{{instance}}</title>
<author> <author>
<name>{{instance}}</name> <name>{{instance}}</name>

@ -4,8 +4,7 @@
<link rel="self" href="{{url_for('feed_index')}}" type="application/atom+xml;profile=opds-catalog;kind=navigation"/> <link rel="self" href="{{url_for('feed_index')}}" type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
<link rel="start" title="{{_('Start')}}" href="{{url_for('feed_index')}}" <link rel="start" title="{{_('Start')}}" href="{{url_for('feed_index')}}"
type="application/atom+xml;profile=opds-catalog;kind=navigation"/> type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
<link rel="search" title="{{_('Search')}}" href="{{url_for('feed_osd')}}" <link title="{{_('Search')}}" type="application/atom+xml" href="{{url_for('feed_normal_search')}}?query={searchTerms}" rel="search"/>
type="application/opensearchdescription+xml"/>
<title>{{instance}}</title> <title>{{instance}}</title>
<author> <author>
<name>{{instance}}</name> <name>{{instance}}</name>

@ -4,7 +4,7 @@
{% if entries|length < 1 %} {% if entries|length < 1 %}
<h2>{{_('No Results for:')}} {{searchterm}}</h2> <h2>{{_('No Results for:')}} {{searchterm}}</h2>
<p>{{_('Please try a diffrent Search')}}</p> <p>{{_('Please try a different search')}}</p>
{% else %} {% else %}
<h2>{{entries|length}} {{_('Results for:')}} {{searchterm}}</h2> <h2>{{entries|length}} {{_('Results for:')}} {{searchterm}}</h2>
{%endif%} {%endif%}

@ -41,10 +41,6 @@
</select> </select>
</div> </div>
<div class="col-sm-6"> <div class="col-sm-6">
<div class="form-group">
<input type="checkbox" name="show_mature_content" id="show_mature_content" {% if content.mature_content %}checked{% endif %}>
<label for="show_mature_content">{{_('Show mature content')}}</label>
</div>
<div class="form-group"> <div class="form-group">
<input type="checkbox" name="show_random" id="show_random" {% if content.show_random_books() %}checked{% endif %}> <input type="checkbox" name="show_random" id="show_random" {% if content.show_random_books() %}checked{% endif %}>
<label for="show_random">{{_('Show random books')}}</label> <label for="show_random">{{_('Show random books')}}</label>
@ -89,6 +85,10 @@
<input type="checkbox" name="admin_role" id="admin_role" {% if content.role_admin() %}checked{% endif %}> <input type="checkbox" name="admin_role" id="admin_role" {% if content.role_admin() %}checked{% endif %}>
<label for="admin_role">{{_('Admin user')}}</label> <label for="admin_role">{{_('Admin user')}}</label>
</div> </div>
<div class="form-group">
<input type="checkbox" name="show_mature_content" id="show_mature_content" {% if content.mature_content %}checked{% endif %}>
<label for="show_mature_content">{{_('Show mature content')}}</label>
</div>
{% endif %} {% endif %}
<div class="form-group"> <div class="form-group">
<input type="checkbox" name="download_role" id="download_role" {% if content.role_download() %}checked{% endif %}> <input type="checkbox" name="download_role" id="download_role" {% if content.role_download() %}checked{% endif %}>

@ -21,7 +21,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: 2017-08-12 18:19+0200\n" "POT-Creation-Date: 2017-09-01 20:37+0200\n"
"PO-Revision-Date: 2016-07-12 19:54+0200\n" "PO-Revision-Date: 2016-07-12 19:54+0200\n"
"Last-Translator: Ozzie Isaacs\n" "Last-Translator: Ozzie Isaacs\n"
"Language: de\n" "Language: de\n"
@ -32,7 +32,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.4.0\n" "Generated-By: Babel 2.4.0\n"
#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1374 #: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1341
msgid "not installed" msgid "not installed"
msgstr "Nicht installiert" msgstr "Nicht installiert"
@ -78,379 +78,379 @@ msgstr ""
"Konnte keine Formate finden welche für das versenden per E-Mail geeignet " "Konnte keine Formate finden welche für das versenden per E-Mail geeignet "
"sind" "sind"
#: cps/ub.py:542 #: cps/ub.py:543
msgid "Guest" msgid "Guest"
msgstr "Gast" msgstr "Gast"
#: cps/web.py:974 #: cps/web.py:953
msgid "Requesting update package" msgid "Requesting update package"
msgstr "Frage Update Paket an" msgstr "Frage Update Paket an"
#: cps/web.py:975 #: cps/web.py:954
msgid "Downloading update package" msgid "Downloading update package"
msgstr "Lade Update Paket herunter" msgstr "Lade Update Paket herunter"
#: cps/web.py:976 #: cps/web.py:955
msgid "Unzipping update package" msgid "Unzipping update package"
msgstr "Entpacke Update Paket" msgstr "Entpacke Update Paket"
#: cps/web.py:977 #: cps/web.py:956
msgid "Files are replaced" msgid "Files are replaced"
msgstr "Ersetze Dateien" msgstr "Ersetze Dateien"
#: cps/web.py:978 #: cps/web.py:957
msgid "Database connections are closed" msgid "Database connections are closed"
msgstr "Schließe Datenbankverbindungen" msgstr "Schließe Datenbankverbindungen"
#: cps/web.py:979 #: cps/web.py:958
msgid "Server is stopped" msgid "Server is stopped"
msgstr "Stoppe Server" msgstr "Stoppe Server"
#: cps/web.py:980 #: cps/web.py:959
msgid "Update finished, please press okay and reload page" msgid "Update finished, please press okay and reload page"
msgstr "Update abgeschlossen, bitte okay drücken und Seite neu laden" msgstr "Update abgeschlossen, bitte okay drücken und Seite neu laden"
#: cps/web.py:1054 #: cps/web.py:1033
msgid "Recently Added Books" msgid "Recently Added Books"
msgstr "Kürzlich hinzugefügte Bücher" msgstr "Kürzlich hinzugefügte Bücher"
#: cps/web.py:1063 #: cps/web.py:1042
msgid "Newest Books" msgid "Newest Books"
msgstr "Neueste Bücher" msgstr "Neueste Bücher"
#: cps/web.py:1072 #: cps/web.py:1051
msgid "Oldest Books" msgid "Oldest Books"
msgstr "Älteste Bücher" msgstr "Älteste Bücher"
#: cps/web.py:1081 #: cps/web.py:1060
msgid "Books (A-Z)" msgid "Books (A-Z)"
msgstr "Bücher (A-Z)" msgstr "Bücher (A-Z)"
#: cps/web.py:1090 #: cps/web.py:1069
msgid "Books (Z-A)" msgid "Books (Z-A)"
msgstr "Bücher (Z-A)" msgstr "Bücher (Z-A)"
#: cps/web.py:1126 #: cps/web.py:1099
msgid "Hot Books (most downloaded)" msgid "Hot Books (most downloaded)"
msgstr "Beliebte Bücher (die meisten Downloads)" msgstr "Beliebte Bücher (die meisten Downloads)"
#: cps/web.py:1136 #: cps/web.py:1109
msgid "Best rated books" msgid "Best rated books"
msgstr "Best bewertete Bücher" msgstr "Best bewertete Bücher"
#: cps/templates/index.xml:36 cps/web.py:1145 #: cps/templates/index.xml:35 cps/web.py:1118
msgid "Random Books" msgid "Random Books"
msgstr "Zufällige Bücher" msgstr "Zufällige Bücher"
#: cps/web.py:1161 #: cps/web.py:1127
msgid "Author list" msgid "Author list"
msgstr "Autorenliste" msgstr "Autorenliste"
#: cps/web.py:1181 cps/web.py:1212 cps/web.py:1351 cps/web.py:1835 #: cps/web.py:1137 cps/web.py:1193 cps/web.py:1318 cps/web.py:1796
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 ""
"Buch öffnen fehlgeschlagen. Datei existiert nicht, oder ist nicht " "Buch öffnen fehlgeschlagen. Datei existiert nicht, oder ist nicht "
"zugänglich." "zugänglich."
#: cps/templates/index.xml:71 cps/web.py:1198 #: cps/templates/index.xml:70 cps/web.py:1179
msgid "Series list" msgid "Series list"
msgstr "Liste Serien" msgstr "Liste Serien"
#: cps/web.py:1210 #: cps/web.py:1191
#, python-format #, python-format
msgid "Series: %(serie)s" msgid "Series: %(serie)s"
msgstr "Serie: %(serie)s" msgstr "Serie: %(serie)s"
#: cps/web.py:1243 #: cps/web.py:1224
msgid "Available languages" msgid "Available languages"
msgstr "Verfügbare Sprachen" msgstr "Verfügbare Sprachen"
#: cps/web.py:1258 #: cps/web.py:1239
#, python-format #, python-format
msgid "Language: %(name)s" msgid "Language: %(name)s"
msgstr "Sprache: %(name)s" msgstr "Sprache: %(name)s"
#: cps/templates/index.xml:64 cps/web.py:1274 #: cps/templates/index.xml:63 cps/web.py:1248
msgid "Category list" msgid "Category list"
msgstr "Kategorieliste" msgstr "Kategorieliste"
#: cps/web.py:1286 #: cps/web.py:1260
#, python-format #, python-format
msgid "Category: %(name)s" msgid "Category: %(name)s"
msgstr "Kategorie: %(name)s" msgstr "Kategorie: %(name)s"
#: cps/web.py:1385 #: cps/web.py:1352
msgid "Excecution permissions missing" msgid "Excecution permissions missing"
msgstr "Ausführungsberechtigung nicht vorhanden" msgstr "Ausführungsberechtigung nicht vorhanden"
#: cps/web.py:1399 #: cps/web.py:1366
msgid "Statistics" msgid "Statistics"
msgstr "Statistiken" msgstr "Statistiken"
#: cps/web.py:1563 #: cps/web.py:1530
msgid "Server restarted, please reload page" msgid "Server restarted, please reload page"
msgstr "Server neu gestartet,bitte Seite neu laden" msgstr "Server neu gestartet,bitte Seite neu laden"
#: cps/web.py:1565 #: cps/web.py:1532
msgid "Performing shutdown of server, please close window" msgid "Performing shutdown of server, please close window"
msgstr "Server wird runtergefahren, bitte Fenster schließen" msgstr "Server wird runtergefahren, bitte Fenster schließen"
#: cps/web.py:1581 #: cps/web.py:1548
msgid "Update done" msgid "Update done"
msgstr "Update durchgeführt" msgstr "Update durchgeführt"
#: cps/web.py:1662 cps/web.py:1675 #: cps/web.py:1623 cps/web.py:1636
msgid "search" msgid "search"
msgstr "Suche" msgstr "Suche"
#: cps/templates/index.xml:43 cps/templates/index.xml:47 #: cps/templates/index.xml:42 cps/templates/index.xml:46
#: cps/templates/layout.html:127 cps/web.py:1751 #: cps/templates/layout.html:127 cps/web.py:1712
msgid "Read Books" msgid "Read Books"
msgstr "Gelesene Bücher" msgstr "Gelesene Bücher"
#: cps/templates/index.xml:50 cps/templates/index.xml:54 #: cps/templates/index.xml:49 cps/templates/index.xml:53
#: cps/templates/layout.html:128 cps/web.py:1754 #: cps/templates/layout.html:128 cps/web.py:1715
msgid "Unread Books" msgid "Unread Books"
msgstr "Ungelesene Bücher" msgstr "Ungelesene Bücher"
#: cps/web.py:1821 cps/web.py:1823 cps/web.py:1825 cps/web.py:1832 #: cps/web.py:1782 cps/web.py:1784 cps/web.py:1786 cps/web.py:1793
msgid "Read a Book" msgid "Read a Book"
msgstr "Lese ein Buch" msgstr "Lese ein Buch"
#: cps/web.py:1888 cps/web.py:2512 #: cps/web.py:1849 cps/web.py:2474
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:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 #: cps/web.py:1850 cps/web.py:1866 cps/web.py:1871 cps/web.py:1873
msgid "register" msgid "register"
msgstr "Registieren" msgstr "Registieren"
#: cps/web.py:1904 #: cps/web.py:1865
msgid "An unknown error occured. Please try again later." msgid "An unknown error occured. 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:1909 #: cps/web.py:1870
msgid "This username or email address is already in use." msgid "This username or email address is already in use."
msgstr "Der Benutzername oder die E-Mailadresse ist in bereits in Benutzung." msgstr "Der Benutzername oder die E-Mailadresse ist in bereits in Benutzung."
#: cps/web.py:1928 cps/web.py:2024 #: cps/web.py:1889 cps/web.py:1985
#, 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:1933 #: cps/web.py:1894
msgid "Wrong Username or Password" msgid "Wrong Username or Password"
msgstr "Falscher Benutzername oder Passwort" msgstr "Falscher Benutzername oder Passwort"
#: cps/web.py:1939 cps/web.py:1960 #: cps/web.py:1900 cps/web.py:1921
msgid "login" msgid "login"
msgstr "Login" msgstr "Login"
#: cps/web.py:1972 cps/web.py:2003 #: cps/web.py:1933 cps/web.py:1964
msgid "Token not found" msgid "Token not found"
msgstr "Token wurde nicht gefunden" msgstr "Token wurde nicht gefunden"
#: cps/web.py:1980 cps/web.py:2011 #: cps/web.py:1941 cps/web.py:1972
msgid "Token has expired" msgid "Token has expired"
msgstr "Das Token ist abgelaufen" msgstr "Das Token ist abgelaufen"
#: cps/web.py:1988 #: cps/web.py:1949
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:2038 #: cps/web.py:1999
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:2042 #: cps/web.py:2003
#, python-format #, python-format
msgid "Book successfully send to %(kindlemail)s" msgid "Book successfully send to %(kindlemail)s"
msgstr "Buch erfolgreich versandt an %(kindlemail)s" msgstr "Buch erfolgreich versandt an %(kindlemail)s"
#: cps/web.py:2046 #: cps/web.py:2007
#, 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:2048 cps/web.py:2597 #: cps/web.py:2009 cps/web.py:2559
msgid "Please configure your kindle email address first..." msgid "Please configure your kindle email address first..."
msgstr "Bitte die Kindle E-Mail Adresse zuuerst konfigurieren..." msgstr "Bitte die Kindle E-Mail Adresse zuuerst konfigurieren..."
#: cps/web.py:2092 #: cps/web.py:2053
#, 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:2127 #: cps/web.py:2088
#, 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:2146 cps/web.py:2170 #: cps/web.py:2107 cps/web.py:2131
#, 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:2151 #: cps/web.py:2112
#, 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:2153 cps/web.py:2181 #: cps/web.py:2114 cps/web.py:2142
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:2154 cps/web.py:2156 #: cps/web.py:2115 cps/web.py:2117
msgid "create a shelf" msgid "create a shelf"
msgstr "Bücherregal erzeugen" msgstr "Bücherregal erzeugen"
#: cps/web.py:2179 #: cps/web.py:2140
#, 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:2182 cps/web.py:2184 #: cps/web.py:2143 cps/web.py:2145
msgid "Edit a shelf" msgid "Edit a shelf"
msgstr "Bücherregal editieren" msgstr "Bücherregal editieren"
#: cps/web.py:2204 #: cps/web.py:2165
#, 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:2226 #: cps/web.py:2187
#, 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:2229 #: cps/web.py:2190
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:2261 #: cps/web.py:2222
#, 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:2325 #: cps/web.py:2287
msgid "Found an existing account for this email address." msgid "Found an existing account for this email address."
msgstr "Es existiert ein Benutzerkonto für diese E-Mailadresse" msgstr "Es existiert ein Benutzerkonto für diese E-Mailadresse"
#: cps/web.py:2327 cps/web.py:2331 #: cps/web.py:2289 cps/web.py:2293
#, 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:2328 #: cps/web.py:2290
msgid "Profile updated" msgid "Profile updated"
msgstr "Profil aktualisiert" msgstr "Profil aktualisiert"
#: cps/web.py:2342 #: cps/web.py:2304
msgid "Admin page" msgid "Admin page"
msgstr "Admin Seite" msgstr "Admin Seite"
#: cps/web.py:2466 #: cps/web.py:2428
msgid "Calibre-web configuration updated" msgid "Calibre-web configuration updated"
msgstr "Calibre-web Konfiguration wurde aktualisiert" msgstr "Calibre-web Konfiguration wurde aktualisiert"
#: cps/web.py:2473 cps/web.py:2479 cps/web.py:2493 #: cps/web.py:2435 cps/web.py:2441 cps/web.py:2455
msgid "Basic Configuration" msgid "Basic Configuration"
msgstr "Basis Konfiguration" msgstr "Basis Konfiguration"
#: cps/web.py:2477 #: cps/web.py:2439
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:34 cps/web.py:2514 cps/web.py:2567 #: cps/templates/admin.html:34 cps/web.py:2476 cps/web.py:2529
msgid "Add new user" msgid "Add new user"
msgstr "Neuen Benutzer hinzufügen" msgstr "Neuen Benutzer hinzufügen"
#: cps/web.py:2559 #: cps/web.py:2521
#, 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:2563 #: cps/web.py:2525
msgid "Found an existing account for this email address or nickname." msgid "Found an existing account for this email address or nickname."
msgstr "" msgstr ""
"Es existiert ein Benutzerkonto für diese Emailadresse oder den " "Es existiert ein Benutzerkonto für diese Emailadresse oder den "
"Benutzernamen." "Benutzernamen."
#: cps/web.py:2585 #: cps/web.py:2547
msgid "Mail settings updated" msgid "Mail settings updated"
msgstr "E-Mail Einstellungen aktualisiert" msgstr "E-Mail Einstellungen aktualisiert"
#: cps/web.py:2592 #: cps/web.py:2554
#, 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 erfolgreich an %(kindlemail)s versendet" msgstr "Test E-Mail erfolgreich an %(kindlemail)s versendet"
#: cps/web.py:2595 #: cps/web.py:2557
#, 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 "Fehler beim versenden der Test E-Mail: %(res)s" msgstr "Fehler beim versenden der Test E-Mail: %(res)s"
#: cps/web.py:2599 #: cps/web.py:2561
msgid "E-Mail settings updated" msgid "E-Mail settings updated"
msgstr "E-Mail Einstellungen wurde aktualisiert" msgstr "E-Mail Einstellungen wurde aktualisiert"
#: cps/web.py:2600 #: cps/web.py:2562
msgid "Edit mail settings" msgid "Edit mail settings"
msgstr "E-Mail Einstellungen editieren" msgstr "E-Mail Einstellungen editieren"
#: cps/web.py:2629 #: cps/web.py:2591
#, 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:2727 #: cps/web.py:2689
#, 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:2730 #: cps/web.py:2692
msgid "An unknown error occured." msgid "An unknown error occured."
msgstr "Es ist ein unbekanter Fehler aufgetreten" msgstr "Es ist ein unbekanter Fehler aufgetreten"
#: cps/web.py:2733 #: cps/web.py:2695
#, 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:2755 #: cps/web.py:2711
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 ""
"Buch öffnen fehlgeschlagen. Datei existiert nicht, oder ist nicht " "Buch öffnen fehlgeschlagen. Datei existiert nicht, oder ist nicht "
"zugänglich" "zugänglich"
#: cps/web.py:2770 cps/web.py:2953 cps/web.py:3077 #: cps/web.py:2726 cps/web.py:2898 cps/web.py:3041
msgid "edit metadata" msgid "edit metadata"
msgstr "Metadaten editieren" msgstr "Metadaten editieren"
#: cps/web.py:2782 cps/web.py:2786 #: cps/web.py:2738 cps/web.py:2742
msgid "unknown" msgid "unknown"
msgstr "Unbekannt" msgstr "Unbekannt"
#: cps/web.py:2971 #: cps/web.py:2935
#, python-format #, python-format
msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgid "File extension \"%s\" is not allowed to be uploaded to this server"
msgstr "Die Dateiendung \"%s\" kann nicht auf diesen Server hochgeladen werden" msgstr "Die Dateiendung \"%s\" kann nicht auf diesen Server hochgeladen werden"
#: cps/web.py:2977 #: cps/web.py:2941
msgid "File to be uploaded must have an extension" msgid "File to be uploaded must have an extension"
msgstr "Datei müssen eine Erweiterung haben, um hochgeladen zu werden" msgstr "Datei müssen eine Erweiterung haben, um hochgeladen zu werden"
#: cps/web.py:2996 #: cps/web.py:2960
#, python-format #, python-format
msgid "Failed to create path %s (Permission denied)." msgid "Failed to create path %s (Permission denied)."
msgstr "Fehler beim Erzeugen des Pfads %s (Zugriff verweigert)" msgstr "Fehler beim Erzeugen des Pfads %s (Zugriff verweigert)"
#: cps/web.py:3001 #: cps/web.py:2965
#, python-format #, python-format
msgid "Failed to store file %s (Permission denied)." msgid "Failed to store file %s (Permission denied)."
msgstr "Fehler beim speichern der Datei %s (Zugriff verweigert)" msgstr "Fehler beim speichern der Datei %s (Zugriff verweigert)"
#: cps/web.py:3006 #: cps/web.py:2970
#, python-format #, python-format
msgid "Failed to delete file %s (Permission denied)." msgid "Failed to delete file %s (Permission denied)."
msgstr "Fehler beim Löschen von Datei %s (Zugriff verweigert)" msgstr "Fehler beim Löschen von Datei %s (Zugriff verweigert)"
@ -621,6 +621,18 @@ msgstr "Calibre-web wirklich stoppen"
msgid "Updating, please do not reload page" msgid "Updating, please do not reload page"
msgstr "Updatevorgang, bitte Seite nicht neu laden" msgstr "Updatevorgang, bitte Seite nicht neu laden"
#: cps/templates/author.html:15
msgid "via"
msgstr "via"
#: cps/templates/author.html:23
msgid "In Library"
msgstr "In Bibliothek"
#: cps/templates/author.html:69
msgid "More by"
msgstr "Mehr von"
#: cps/templates/book_edit.html:16 #: cps/templates/book_edit.html:16
msgid "Delete Book" msgid "Delete Book"
msgstr "Buch löschen" msgstr "Buch löschen"
@ -629,12 +641,13 @@ msgstr "Buch löschen"
msgid "Book Title" msgid "Book Title"
msgstr "Buchtitel" msgstr "Buchtitel"
#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:188 #: cps/templates/book_edit.html:26 cps/templates/book_edit.html:208
#: cps/templates/search_form.html:10 #: cps/templates/book_edit.html:226 cps/templates/search_form.html:10
msgid "Author" msgid "Author"
msgstr "Autor" msgstr "Autor"
#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:190 #: cps/templates/book_edit.html:30 cps/templates/book_edit.html:213
#: cps/templates/book_edit.html:228
msgid "Description" msgid "Description"
msgstr "Beschreibung" msgstr "Beschreibung"
@ -717,35 +730,35 @@ msgstr "Suchbegriff"
msgid "Go!" msgid "Go!"
msgstr "Los!" msgstr "Los!"
#: cps/templates/book_edit.html:168 #: cps/templates/book_edit.html:171
msgid "Click the cover to load metadata to the form" msgid "Click the cover to load metadata to the form"
msgstr "Klicke auf das Bild um die Metadaten zu übertragen" msgstr "Klicke auf das Bild um die Metadaten zu übertragen"
#: cps/templates/book_edit.html:172 cps/templates/book_edit.html:185 #: cps/templates/book_edit.html:183 cps/templates/book_edit.html:223
msgid "Loading..." msgid "Loading..."
msgstr "Lade..." msgstr "Lade..."
#: cps/templates/book_edit.html:175 cps/templates/layout.html:199 #: cps/templates/book_edit.html:188 cps/templates/layout.html:199
msgid "Close" msgid "Close"
msgstr "Schließen" msgstr "Schließen"
#: cps/templates/book_edit.html:186 #: cps/templates/book_edit.html:210 cps/templates/book_edit.html:227
msgid "Search error!" #: cps/templates/detail.html:125 cps/templates/search_form.html:14
msgstr "Fehler bei Suche!"
#: cps/templates/book_edit.html:187
msgid "No Result! Please try anonther keyword."
msgstr "Kein Ergebniss! Bitte anderen Begriff versuchen"
#: cps/templates/book_edit.html:189 cps/templates/detail.html:125
#: cps/templates/search_form.html:14
msgid "Publisher" msgid "Publisher"
msgstr "Herausgeber" msgstr "Herausgeber"
#: cps/templates/book_edit.html:191 #: cps/templates/book_edit.html:215 cps/templates/book_edit.html:229
msgid "Source" msgid "Source"
msgstr "Quelle" msgstr "Quelle"
#: cps/templates/book_edit.html:224
msgid "Search error!"
msgstr "Fehler bei Suche!"
#: cps/templates/book_edit.html:225
msgid "No Result! Please try anonther keyword."
msgstr "Kein Ergebniss! Bitte anderen Begriff versuchen"
#: cps/templates/config_edit.html:7 #: cps/templates/config_edit.html:7
msgid "Location of Calibre database" msgid "Location of Calibre database"
msgstr "Speicherort der Calibre Datenbank" msgstr "Speicherort der Calibre Datenbank"
@ -829,7 +842,7 @@ msgstr "Öffentlicher Goodreads API Schlüssel"
#: cps/templates/config_edit.html:119 #: cps/templates/config_edit.html:119
msgid "Goodreads API Secret" msgid "Goodreads API Secret"
msgstr Geheimer Goodreads API Schlüssel" msgstr "eheimer Goodreads API Schlüssel"
#: cps/templates/config_edit.html:125 #: cps/templates/config_edit.html:125
msgid "Default Settings for new users" msgid "Default Settings for new users"
@ -938,6 +951,11 @@ msgstr "Einstellungen speichern und Test E-Mail versenden"
msgid "Next" msgid "Next"
msgstr "Nächste" msgstr "Nächste"
#: cps/templates/feed.xml:29 cps/templates/index.xml:7
#: cps/templates/layout.html:40 cps/templates/layout.html:41
msgid "Search"
msgstr "Suche"
#: cps/templates/index.html:5 #: cps/templates/index.html:5
msgid "Discover (Random Books)" msgid "Discover (Random Books)"
msgstr "Entdecke (Zufälliges Buch)" msgstr "Entdecke (Zufälliges Buch)"
@ -946,52 +964,47 @@ msgstr "Entdecke (Zufälliges Buch)"
msgid "Start" msgid "Start"
msgstr "Start" msgstr "Start"
#: cps/templates/index.xml:7 cps/templates/layout.html:40 #: cps/templates/index.xml:14 cps/templates/layout.html:121
#: cps/templates/layout.html:41
msgid "Search"
msgstr "Suche"
#: cps/templates/index.xml:15 cps/templates/layout.html:121
msgid "Hot Books" msgid "Hot Books"
msgstr "Beliebte Bücher" msgstr "Beliebte Bücher"
#: cps/templates/index.xml:19 #: cps/templates/index.xml:18
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:22 cps/templates/layout.html:124 #: cps/templates/index.xml:21 cps/templates/layout.html:124
msgid "Best rated Books" msgid "Best rated Books"
msgstr "Best bewertete Bücher" msgstr "Best bewertete Bücher"
#: cps/templates/index.xml:26 #: cps/templates/index.xml:25
msgid "Popular publications from this catalog based on Rating." msgid "Popular publications from this catalog based on Rating."
msgstr "Beliebte Veröffentlichungen dieses Katalogs basierend auf Bewertungen" msgstr "Beliebte Veröffentlichungen dieses Katalogs basierend auf Bewertungen"
#: cps/templates/index.xml:29 #: cps/templates/index.xml:28
msgid "New Books" msgid "New Books"
msgstr "Neue Bücher" msgstr "Neue Bücher"
#: cps/templates/index.xml:33 #: cps/templates/index.xml:32
msgid "The latest Books" msgid "The latest Books"
msgstr "Die neuesten Bücher" msgstr "Die neuesten Bücher"
#: cps/templates/index.xml:40 #: cps/templates/index.xml:39
msgid "Show Random Books" msgid "Show Random Books"
msgstr "Zeige zufällige Bücher" msgstr "Zeige zufällige Bücher"
#: cps/templates/index.xml:57 cps/templates/layout.html:139 #: cps/templates/index.xml:56 cps/templates/layout.html:139
msgid "Authors" msgid "Authors"
msgstr "Autoren" msgstr "Autoren"
#: cps/templates/index.xml:61 #: cps/templates/index.xml:60
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:68 #: cps/templates/index.xml:67
msgid "Books ordered by category" msgid "Books ordered by category"
msgstr "Bücher nach Kategorien sortiert" msgstr "Bücher nach Kategorien sortiert"
#: cps/templates/index.xml:75 #: cps/templates/index.xml:74
msgid "Books ordered by series" msgid "Books ordered by series"
msgstr "Bücher nach Reihen geordnet" msgstr "Bücher nach Reihen geordnet"
@ -1151,7 +1164,7 @@ msgid "No Results for:"
msgstr "Keine Ergebnisse für:" msgstr "Keine Ergebnisse für:"
#: cps/templates/search.html:7 #: cps/templates/search.html:7
msgid "Please try a diffrent Search" msgid "Please try a different search"
msgstr "Versuche eine andere Suche" msgstr "Versuche eine andere Suche"
#: cps/templates/search.html:9 #: cps/templates/search.html:9

@ -14,7 +14,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: 2017-08-12 18:55+0200\n" "POT-Creation-Date: 2017-09-01 20:37+0200\n"
"PO-Revision-Date: 2017-04-04 15:09+0200\n" "PO-Revision-Date: 2017-04-04 15:09+0200\n"
"Last-Translator: Juan F. Villa <juan.villa@paisdelconocimiento.org>\n" "Last-Translator: Juan F. Villa <juan.villa@paisdelconocimiento.org>\n"
"Language: es\n" "Language: es\n"
@ -25,7 +25,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.4.0\n" "Generated-By: Babel 2.4.0\n"
#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1374 #: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1341
msgid "not installed" msgid "not installed"
msgstr "No instalado" msgstr "No instalado"
@ -69,375 +69,375 @@ msgstr "Enviar a Kindle"
msgid "Could not find any formats suitable for sending by email" msgid "Could not find any formats suitable for sending by email"
msgstr "Formato no compatible para enviar por correo electronico" msgstr "Formato no compatible para enviar por correo electronico"
#: cps/ub.py:542 #: cps/ub.py:543
msgid "Guest" msgid "Guest"
msgstr "Invitado" msgstr "Invitado"
#: cps/web.py:974 #: cps/web.py:953
msgid "Requesting update package" msgid "Requesting update package"
msgstr "Solicitando paquete de actualización" msgstr "Solicitando paquete de actualización"
#: cps/web.py:975 #: cps/web.py:954
msgid "Downloading update package" msgid "Downloading update package"
msgstr "Descargando paquete de actualización" msgstr "Descargando paquete de actualización"
#: cps/web.py:976 #: cps/web.py:955
msgid "Unzipping update package" msgid "Unzipping update package"
msgstr "Descomprimiendo paquete de actualización" msgstr "Descomprimiendo paquete de actualización"
#: cps/web.py:977 #: cps/web.py:956
msgid "Files are replaced" msgid "Files are replaced"
msgstr "Ficheros sustituidos" msgstr "Ficheros sustituidos"
#: cps/web.py:978 #: cps/web.py:957
msgid "Database connections are closed" msgid "Database connections are closed"
msgstr "Los conexiones de base datos están cerradas" msgstr "Los conexiones de base datos están cerradas"
#: cps/web.py:979 #: cps/web.py:958
msgid "Server is stopped" msgid "Server is stopped"
msgstr "El servidor está detenido" msgstr "El servidor está detenido"
#: cps/web.py:980 #: cps/web.py:959
msgid "Update finished, please press okay and reload page" msgid "Update finished, please press okay and reload page"
msgstr "Actualización finalizada. Por favor, pulse OK y recargue la página" msgstr "Actualización finalizada. Por favor, pulse OK y recargue la página"
#: cps/web.py:1054 #: cps/web.py:1033
msgid "Recently Added Books" msgid "Recently Added Books"
msgstr "" msgstr ""
#: cps/web.py:1063 #: cps/web.py:1042
msgid "Newest Books" msgid "Newest Books"
msgstr "" msgstr ""
#: cps/web.py:1072 #: cps/web.py:1051
msgid "Oldest Books" msgid "Oldest Books"
msgstr "" msgstr ""
#: cps/web.py:1081 #: cps/web.py:1060
msgid "Books (A-Z)" msgid "Books (A-Z)"
msgstr "" msgstr ""
#: cps/web.py:1090 #: cps/web.py:1069
msgid "Books (Z-A)" msgid "Books (Z-A)"
msgstr "" msgstr ""
#: cps/web.py:1126 #: cps/web.py:1099
msgid "Hot Books (most downloaded)" msgid "Hot Books (most downloaded)"
msgstr "Libros populares (los mas descargados)" msgstr "Libros populares (los mas descargados)"
#: cps/web.py:1136 #: cps/web.py:1109
msgid "Best rated books" msgid "Best rated books"
msgstr "Libros mejor valorados" msgstr "Libros mejor valorados"
#: cps/templates/index.xml:36 cps/web.py:1145 #: cps/templates/index.xml:35 cps/web.py:1118
msgid "Random Books" msgid "Random Books"
msgstr "Libros al azar" msgstr "Libros al azar"
#: cps/web.py:1161 #: cps/web.py:1127
msgid "Author list" msgid "Author list"
msgstr "Lista de autores" msgstr "Lista de autores"
#: cps/web.py:1181 cps/web.py:1212 cps/web.py:1351 cps/web.py:1835 #: cps/web.py:1137 cps/web.py:1193 cps/web.py:1318 cps/web.py:1796
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 "Error en la apertura del eBook. El archivo no existe o no es accesible:" msgstr "Error en la apertura del eBook. El archivo no existe o no es accesible:"
#: cps/templates/index.xml:71 cps/web.py:1198 #: cps/templates/index.xml:70 cps/web.py:1179
msgid "Series list" msgid "Series list"
msgstr "Lista de series" msgstr "Lista de series"
#: cps/web.py:1210 #: cps/web.py:1191
#, python-format #, python-format
msgid "Series: %(serie)s" msgid "Series: %(serie)s"
msgstr "Series : %(serie)s" msgstr "Series : %(serie)s"
#: cps/web.py:1243 #: cps/web.py:1224
msgid "Available languages" msgid "Available languages"
msgstr "Lenguajes disponibles" msgstr "Lenguajes disponibles"
#: cps/web.py:1258 #: cps/web.py:1239
#, python-format #, python-format
msgid "Language: %(name)s" msgid "Language: %(name)s"
msgstr "Lenguaje: %(name)s" msgstr "Lenguaje: %(name)s"
#: cps/templates/index.xml:64 cps/web.py:1274 #: cps/templates/index.xml:63 cps/web.py:1248
msgid "Category list" msgid "Category list"
msgstr "Lista de categorias" msgstr "Lista de categorias"
#: cps/web.py:1286 #: cps/web.py:1260
#, python-format #, python-format
msgid "Category: %(name)s" msgid "Category: %(name)s"
msgstr "Categoría : %(name)s" msgstr "Categoría : %(name)s"
#: cps/web.py:1385 #: cps/web.py:1352
msgid "Excecution permissions missing" msgid "Excecution permissions missing"
msgstr "" msgstr ""
#: cps/web.py:1399 #: cps/web.py:1366
msgid "Statistics" msgid "Statistics"
msgstr "Estadisticas" msgstr "Estadisticas"
#: cps/web.py:1563 #: cps/web.py:1530
msgid "Server restarted, please reload page" msgid "Server restarted, please reload page"
msgstr "Servidor reiniciado. Por favor, recargue la página" msgstr "Servidor reiniciado. Por favor, recargue la página"
#: cps/web.py:1565 #: cps/web.py:1532
msgid "Performing shutdown of server, please close window" msgid "Performing shutdown of server, please close window"
msgstr "Servidor en proceso de apagado. Por favor, cierre la ventana." msgstr "Servidor en proceso de apagado. Por favor, cierre la ventana."
#: cps/web.py:1581 #: cps/web.py:1548
msgid "Update done" msgid "Update done"
msgstr "Actualización realizada" msgstr "Actualización realizada"
#: cps/web.py:1662 cps/web.py:1675 #: cps/web.py:1623 cps/web.py:1636
msgid "search" msgid "search"
msgstr "búsqueda" msgstr "búsqueda"
#: cps/templates/index.xml:43 cps/templates/index.xml:47 #: cps/templates/index.xml:42 cps/templates/index.xml:46
#: cps/templates/layout.html:127 cps/web.py:1751 #: cps/templates/layout.html:127 cps/web.py:1712
msgid "Read Books" msgid "Read Books"
msgstr "Libros leídos" msgstr "Libros leídos"
#: cps/templates/index.xml:50 cps/templates/index.xml:54 #: cps/templates/index.xml:49 cps/templates/index.xml:53
#: cps/templates/layout.html:128 cps/web.py:1754 #: cps/templates/layout.html:128 cps/web.py:1715
msgid "Unread Books" msgid "Unread Books"
msgstr "Libros no leídos" msgstr "Libros no leídos"
#: cps/web.py:1821 cps/web.py:1823 cps/web.py:1825 cps/web.py:1832 #: cps/web.py:1782 cps/web.py:1784 cps/web.py:1786 cps/web.py:1793
msgid "Read a Book" msgid "Read a Book"
msgstr "Leer un libro" msgstr "Leer un libro"
#: cps/web.py:1888 cps/web.py:2513 #: cps/web.py:1849 cps/web.py:2474
msgid "Please fill out all fields!" msgid "Please fill out all fields!"
msgstr "¡Por favor completar todos los campos!" msgstr "¡Por favor completar todos los campos!"
#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 #: cps/web.py:1850 cps/web.py:1866 cps/web.py:1871 cps/web.py:1873
msgid "register" msgid "register"
msgstr "registrarse" msgstr "registrarse"
#: cps/web.py:1904 #: cps/web.py:1865
msgid "An unknown error occured. Please try again later." msgid "An unknown error occured. Please try again later."
msgstr "Error desconocido. Por favor, inténtelo de nuevo mas tarde." msgstr "Error desconocido. Por favor, inténtelo de nuevo mas tarde."
#: cps/web.py:1909 #: cps/web.py:1870
msgid "This username or email address is already in use." msgid "This username or email address is already in use."
msgstr "Usuario o dirección de correo en uso." msgstr "Usuario o dirección de correo en uso."
#: cps/web.py:1928 cps/web.py:2024 #: cps/web.py:1889 cps/web.py:1985
#, python-format #, python-format
msgid "you are now logged in as: '%(nickname)s'" msgid "you are now logged in as: '%(nickname)s'"
msgstr "Sesion iniciada como : '%(nickname)s'" msgstr "Sesion iniciada como : '%(nickname)s'"
#: cps/web.py:1933 #: cps/web.py:1894
msgid "Wrong Username or Password" msgid "Wrong Username or Password"
msgstr "Usuario o contraseña invalido" msgstr "Usuario o contraseña invalido"
#: cps/web.py:1939 cps/web.py:1960 #: cps/web.py:1900 cps/web.py:1921
msgid "login" msgid "login"
msgstr "Iniciar sesión" msgstr "Iniciar sesión"
#: cps/web.py:1972 cps/web.py:2003 #: cps/web.py:1933 cps/web.py:1964
msgid "Token not found" msgid "Token not found"
msgstr "" msgstr ""
#: cps/web.py:1980 cps/web.py:2011 #: cps/web.py:1941 cps/web.py:1972
msgid "Token has expired" msgid "Token has expired"
msgstr "" msgstr ""
#: cps/web.py:1988 #: cps/web.py:1949
msgid "Success! Please return to your device" msgid "Success! Please return to your device"
msgstr "" msgstr ""
#: cps/web.py:2038 #: cps/web.py:1999
msgid "Please configure the SMTP mail settings first..." msgid "Please configure the SMTP mail settings first..."
msgstr "Configurar primero los parametros SMTP por favor..." msgstr "Configurar primero los parametros SMTP por favor..."
#: cps/web.py:2042 #: cps/web.py:2003
#, python-format #, python-format
msgid "Book successfully send to %(kindlemail)s" msgid "Book successfully send to %(kindlemail)s"
msgstr "Envio de Libro a %(kindlemail)s correctamente" msgstr "Envio de Libro a %(kindlemail)s correctamente"
#: cps/web.py:2046 #: cps/web.py:2007
#, 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 "Ha sucedido un error en el envio del Libro: %(res)s" msgstr "Ha sucedido un error en el envio del Libro: %(res)s"
#: cps/web.py:2048 cps/web.py:2598 #: cps/web.py:2009 cps/web.py:2559
msgid "Please configure your kindle email address first..." msgid "Please configure your kindle email address first..."
msgstr "Configurar primero la dirección de correo Kindle por favor..." msgstr "Configurar primero la dirección de correo Kindle por favor..."
#: cps/web.py:2092 #: cps/web.py:2053
#, python-format #, python-format
msgid "Book has been added to shelf: %(sname)s" msgid "Book has been added to shelf: %(sname)s"
msgstr "El libro fue agregado a el estante: %(sname)s" msgstr "El libro fue agregado a el estante: %(sname)s"
#: cps/web.py:2127 #: cps/web.py:2088
#, python-format #, python-format
msgid "Book has been removed from shelf: %(sname)s" msgid "Book has been removed from shelf: %(sname)s"
msgstr "El libro fue removido del estante: %(sname)s" msgstr "El libro fue removido del estante: %(sname)s"
#: cps/web.py:2146 cps/web.py:2170 #: cps/web.py:2107 cps/web.py:2131
#, 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 "Une étagère de ce nom '%(title)s' existe déjà." msgstr "Une étagère de ce nom '%(title)s' existe déjà."
#: cps/web.py:2151 #: cps/web.py:2112
#, python-format #, python-format
msgid "Shelf %(title)s created" msgid "Shelf %(title)s created"
msgstr "Estante %(title)s creado" msgstr "Estante %(title)s creado"
#: cps/web.py:2153 cps/web.py:2181 #: cps/web.py:2114 cps/web.py:2142
msgid "There was an error" msgid "There was an error"
msgstr "Ha sucedido un error" msgstr "Ha sucedido un error"
#: cps/web.py:2154 cps/web.py:2156 #: cps/web.py:2115 cps/web.py:2117
msgid "create a shelf" msgid "create a shelf"
msgstr "crear un estante" msgstr "crear un estante"
#: cps/web.py:2179 #: cps/web.py:2140
#, python-format #, python-format
msgid "Shelf %(title)s changed" msgid "Shelf %(title)s changed"
msgstr "Estante %(title)s cambiado" msgstr "Estante %(title)s cambiado"
#: cps/web.py:2182 cps/web.py:2184 #: cps/web.py:2143 cps/web.py:2145
msgid "Edit a shelf" msgid "Edit a shelf"
msgstr "Editar un estante" msgstr "Editar un estante"
#: cps/web.py:2204 #: cps/web.py:2165
#, python-format #, python-format
msgid "successfully deleted shelf %(name)s" msgid "successfully deleted shelf %(name)s"
msgstr "Estante %(name)s fue borrado correctamente" msgstr "Estante %(name)s fue borrado correctamente"
#: cps/web.py:2226 #: cps/web.py:2187
#, python-format #, python-format
msgid "Shelf: '%(name)s'" msgid "Shelf: '%(name)s'"
msgstr "Estante: '%(name)s'" msgstr "Estante: '%(name)s'"
#: cps/web.py:2229 #: cps/web.py:2190
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:2261 #: cps/web.py:2222
#, python-format #, python-format
msgid "Change order of Shelf: '%(name)s'" msgid "Change order of Shelf: '%(name)s'"
msgstr "Cambiar orden del estante: '%(name)s'" msgstr "Cambiar orden del estante: '%(name)s'"
#: cps/web.py:2326 #: cps/web.py:2287
msgid "Found an existing account for this email address." msgid "Found an existing account for this email address."
msgstr "Existe una cuenta vinculada a esta dirección de correo." msgstr "Existe una cuenta vinculada a esta dirección de correo."
#: cps/web.py:2328 cps/web.py:2332 #: cps/web.py:2289 cps/web.py:2293
#, python-format #, python-format
msgid "%(name)s's profile" msgid "%(name)s's profile"
msgstr "Perfil de %(name)s" msgstr "Perfil de %(name)s"
#: cps/web.py:2329 #: cps/web.py:2290
msgid "Profile updated" msgid "Profile updated"
msgstr "Perfil actualizado" msgstr "Perfil actualizado"
#: cps/web.py:2343 #: cps/web.py:2304
msgid "Admin page" msgid "Admin page"
msgstr "Página de administración" msgstr "Página de administración"
#: cps/web.py:2467 #: cps/web.py:2428
msgid "Calibre-web configuration updated" msgid "Calibre-web configuration updated"
msgstr "Configuración de Calibre-web actualizada" msgstr "Configuración de Calibre-web actualizada"
#: cps/web.py:2474 cps/web.py:2480 cps/web.py:2494 #: cps/web.py:2435 cps/web.py:2441 cps/web.py:2455
msgid "Basic Configuration" msgid "Basic Configuration"
msgstr "Configuración básica" msgstr "Configuración básica"
#: cps/web.py:2478 #: cps/web.py:2439
msgid "DB location is not valid, please enter correct path" msgid "DB location is not valid, please enter correct path"
msgstr "Localicación de la BD inválida. Por favor, introduzca la ruta correcta." msgstr "Localicación de la BD inválida. Por favor, introduzca la ruta correcta."
#: cps/templates/admin.html:34 cps/web.py:2515 cps/web.py:2568 #: cps/templates/admin.html:34 cps/web.py:2476 cps/web.py:2529
msgid "Add new user" msgid "Add new user"
msgstr "Agregar un nuevo usuario" msgstr "Agregar un nuevo usuario"
#: cps/web.py:2560 #: cps/web.py:2521
#, python-format #, python-format
msgid "User '%(user)s' created" msgid "User '%(user)s' created"
msgstr "Usuario '%(user)s' creado" msgstr "Usuario '%(user)s' creado"
#: cps/web.py:2564 #: cps/web.py:2525
msgid "Found an existing account for this email address or nickname." msgid "Found an existing account for this email address or nickname."
msgstr "" msgstr ""
"Se ha encontrado una cuenta vinculada a esta dirección de correo o nombre" "Se ha encontrado una cuenta vinculada a esta dirección de correo o nombre"
" de usuario." " de usuario."
#: cps/web.py:2586 #: cps/web.py:2547
msgid "Mail settings updated" msgid "Mail settings updated"
msgstr "Parámetros de correo actualizados" msgstr "Parámetros de correo actualizados"
#: cps/web.py:2593 #: cps/web.py:2554
#, python-format #, python-format
msgid "Test E-Mail successfully send to %(kindlemail)s" msgid "Test E-Mail successfully send to %(kindlemail)s"
msgstr "Exito al realizar envio de prueba a %(kindlemail)s" msgstr "Exito al realizar envio de prueba a %(kindlemail)s"
#: cps/web.py:2596 #: cps/web.py:2557
#, 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 "Error al realizar envio de prueba a E-Mail: %(res)s" msgstr "Error al realizar envio de prueba a E-Mail: %(res)s"
#: cps/web.py:2600 #: cps/web.py:2561
msgid "E-Mail settings updated" msgid "E-Mail settings updated"
msgstr "Ajustes de correo electrónico actualizados" msgstr "Ajustes de correo electrónico actualizados"
#: cps/web.py:2601 #: cps/web.py:2562
msgid "Edit mail settings" msgid "Edit mail settings"
msgstr "Editar parametros de correo" msgstr "Editar parametros de correo"
#: cps/web.py:2630 #: cps/web.py:2591
#, python-format #, python-format
msgid "User '%(nick)s' deleted" msgid "User '%(nick)s' deleted"
msgstr "Usuario '%(nick)s' borrado" msgstr "Usuario '%(nick)s' borrado"
#: cps/web.py:2728 #: cps/web.py:2689
#, python-format #, python-format
msgid "User '%(nick)s' updated" msgid "User '%(nick)s' updated"
msgstr "Usuario '%(nick)s' actualizado" msgstr "Usuario '%(nick)s' actualizado"
#: cps/web.py:2731 #: cps/web.py:2692
msgid "An unknown error occured." msgid "An unknown error occured."
msgstr "Error inesperado." msgstr "Error inesperado."
#: cps/web.py:2734 #: cps/web.py:2695
#, python-format #, python-format
msgid "Edit User %(nick)s" msgid "Edit User %(nick)s"
msgstr "Editar Usuario %(nick)s" msgstr "Editar Usuario %(nick)s"
#: cps/web.py:2756 #: cps/web.py:2711
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:2771 cps/web.py:2954 cps/web.py:3078 #: cps/web.py:2726 cps/web.py:2898 cps/web.py:3041
msgid "edit metadata" msgid "edit metadata"
msgstr "editar metainformación" msgstr "editar metainformación"
#: cps/web.py:2783 cps/web.py:2787 #: cps/web.py:2738 cps/web.py:2742
msgid "unknown" msgid "unknown"
msgstr "" msgstr ""
#: cps/web.py:2972 #: cps/web.py:2935
#, python-format #, python-format
msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgid "File extension \"%s\" is not allowed to be uploaded to this server"
msgstr "No se permite subir archivos con la extensión \"%s\" a este servidor" msgstr "No se permite subir archivos con la extensión \"%s\" a este servidor"
#: cps/web.py:2978 #: cps/web.py:2941
msgid "File to be uploaded must have an extension" msgid "File to be uploaded must have an extension"
msgstr "El archivo a subir debe tener una extensión" msgstr "El archivo a subir debe tener una extensión"
#: cps/web.py:2997 #: cps/web.py:2960
#, python-format #, python-format
msgid "Failed to create path %s (Permission denied)." msgid "Failed to create path %s (Permission denied)."
msgstr "Fallo al crear la ruta %s (permiso negado)" msgstr "Fallo al crear la ruta %s (permiso negado)"
#: cps/web.py:3002 #: cps/web.py:2965
#, python-format #, python-format
msgid "Failed to store file %s (Permission denied)." msgid "Failed to store file %s (Permission denied)."
msgstr "Fallo al almacenar el archivo %s (permiso negado)" msgstr "Fallo al almacenar el archivo %s (permiso negado)"
#: cps/web.py:3007 #: cps/web.py:2970
#, python-format #, python-format
msgid "Failed to delete file %s (Permission denied)." msgid "Failed to delete file %s (Permission denied)."
msgstr "Fallo al borrar el archivo %s (permiso negado)" msgstr "Fallo al borrar el archivo %s (permiso negado)"
@ -608,6 +608,18 @@ msgstr "¿Seguro que quiere detener Calibre-web?"
msgid "Updating, please do not reload page" msgid "Updating, please do not reload page"
msgstr "Actualizando. Por favor, no recargue la página." msgstr "Actualizando. Por favor, no recargue la página."
#: cps/templates/author.html:15
msgid "via"
msgstr ""
#: cps/templates/author.html:23
msgid "In Library"
msgstr ""
#: cps/templates/author.html:69
msgid "More by"
msgstr ""
#: cps/templates/book_edit.html:16 #: cps/templates/book_edit.html:16
msgid "Delete Book" msgid "Delete Book"
msgstr "" msgstr ""
@ -616,12 +628,13 @@ msgstr ""
msgid "Book Title" msgid "Book Title"
msgstr "Titulo del Libro" msgstr "Titulo del Libro"
#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:188 #: cps/templates/book_edit.html:26 cps/templates/book_edit.html:208
#: cps/templates/search_form.html:10 #: cps/templates/book_edit.html:226 cps/templates/search_form.html:10
msgid "Author" msgid "Author"
msgstr "Autor" msgstr "Autor"
#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:190 #: cps/templates/book_edit.html:30 cps/templates/book_edit.html:213
#: cps/templates/book_edit.html:228
msgid "Description" msgid "Description"
msgstr "Descripcion" msgstr "Descripcion"
@ -704,35 +717,35 @@ msgstr "Buscar palabras clave"
msgid "Go!" msgid "Go!"
msgstr "¡Vamos!" msgstr "¡Vamos!"
#: cps/templates/book_edit.html:168 #: cps/templates/book_edit.html:171
msgid "Click the cover to load metadata to the form" msgid "Click the cover to load metadata to the form"
msgstr "Haga clic en la portada para cargar la metainformación en el formulario" msgstr "Haga clic en la portada para cargar la metainformación en el formulario"
#: cps/templates/book_edit.html:172 cps/templates/book_edit.html:185 #: cps/templates/book_edit.html:183 cps/templates/book_edit.html:223
msgid "Loading..." msgid "Loading..."
msgstr "Cargando..." msgstr "Cargando..."
#: cps/templates/book_edit.html:175 cps/templates/layout.html:199 #: cps/templates/book_edit.html:188 cps/templates/layout.html:199
msgid "Close" msgid "Close"
msgstr "Cerrar" msgstr "Cerrar"
#: cps/templates/book_edit.html:186 #: cps/templates/book_edit.html:210 cps/templates/book_edit.html:227
msgid "Search error!" #: cps/templates/detail.html:125 cps/templates/search_form.html:14
msgstr "¡Error en la búsqueda!"
#: cps/templates/book_edit.html:187
msgid "No Result! Please try anonther keyword."
msgstr "¡Sin resultados! Por favor, pruebe otra palabra clave."
#: cps/templates/book_edit.html:189 cps/templates/detail.html:125
#: cps/templates/search_form.html:14
msgid "Publisher" msgid "Publisher"
msgstr "Editor" msgstr "Editor"
#: cps/templates/book_edit.html:191 #: cps/templates/book_edit.html:215 cps/templates/book_edit.html:229
msgid "Source" msgid "Source"
msgstr "Origen" msgstr "Origen"
#: cps/templates/book_edit.html:224
msgid "Search error!"
msgstr "¡Error en la búsqueda!"
#: cps/templates/book_edit.html:225
msgid "No Result! Please try anonther keyword."
msgstr "¡Sin resultados! Por favor, pruebe otra palabra clave."
#: cps/templates/config_edit.html:7 #: cps/templates/config_edit.html:7
msgid "Location of Calibre database" msgid "Location of Calibre database"
msgstr "Ubicación de la base de datos Calibre" msgstr "Ubicación de la base de datos Calibre"
@ -925,6 +938,11 @@ msgstr "Guardar cambios y enviar un correo de prueba"
msgid "Next" msgid "Next"
msgstr "Siguiente" msgstr "Siguiente"
#: cps/templates/feed.xml:29 cps/templates/index.xml:7
#: cps/templates/layout.html:40 cps/templates/layout.html:41
msgid "Search"
msgstr "Buscar"
#: cps/templates/index.html:5 #: cps/templates/index.html:5
msgid "Discover (Random Books)" msgid "Discover (Random Books)"
msgstr "Descubrir (Libros al azar)" msgstr "Descubrir (Libros al azar)"
@ -933,52 +951,47 @@ msgstr "Descubrir (Libros al azar)"
msgid "Start" msgid "Start"
msgstr "Iniciar" msgstr "Iniciar"
#: cps/templates/index.xml:7 cps/templates/layout.html:40 #: cps/templates/index.xml:14 cps/templates/layout.html:121
#: cps/templates/layout.html:41
msgid "Search"
msgstr "Buscar"
#: cps/templates/index.xml:15 cps/templates/layout.html:121
msgid "Hot Books" msgid "Hot Books"
msgstr "Libros Populares" msgstr "Libros Populares"
#: cps/templates/index.xml:19 #: cps/templates/index.xml:18
msgid "Popular publications from this catalog based on Downloads." msgid "Popular publications from this catalog based on Downloads."
msgstr "Publicaciones mas populares para este catálogo basadas en las descargas." msgstr "Publicaciones mas populares para este catálogo basadas en las descargas."
#: cps/templates/index.xml:22 cps/templates/layout.html:124 #: cps/templates/index.xml:21 cps/templates/layout.html:124
msgid "Best rated Books" msgid "Best rated Books"
msgstr "Libros mejor valorados" msgstr "Libros mejor valorados"
#: cps/templates/index.xml:26 #: cps/templates/index.xml:25
msgid "Popular publications from this catalog based on Rating." msgid "Popular publications from this catalog based on Rating."
msgstr "Publicaciones populares del catalogo basados en el puntaje." msgstr "Publicaciones populares del catalogo basados en el puntaje."
#: cps/templates/index.xml:29 #: cps/templates/index.xml:28
msgid "New Books" msgid "New Books"
msgstr "Nuevos libros" msgstr "Nuevos libros"
#: cps/templates/index.xml:33 #: cps/templates/index.xml:32
msgid "The latest Books" msgid "The latest Books"
msgstr "Libros recientes" msgstr "Libros recientes"
#: cps/templates/index.xml:40 #: cps/templates/index.xml:39
msgid "Show Random Books" msgid "Show Random Books"
msgstr "Mostrar libros al azar" msgstr "Mostrar libros al azar"
#: cps/templates/index.xml:57 cps/templates/layout.html:139 #: cps/templates/index.xml:56 cps/templates/layout.html:139
msgid "Authors" msgid "Authors"
msgstr "Autores" msgstr "Autores"
#: cps/templates/index.xml:61 #: cps/templates/index.xml:60
msgid "Books ordered by Author" msgid "Books ordered by Author"
msgstr "Libros ordenados por Autor" msgstr "Libros ordenados por Autor"
#: cps/templates/index.xml:68 #: cps/templates/index.xml:67
msgid "Books ordered by category" msgid "Books ordered by category"
msgstr "Libros ordenados por Categorias" msgstr "Libros ordenados por Categorias"
#: cps/templates/index.xml:75 #: cps/templates/index.xml:74
msgid "Books ordered by series" msgid "Books ordered by series"
msgstr "Libros ordenados por Series" msgstr "Libros ordenados por Series"
@ -1138,7 +1151,7 @@ msgid "No Results for:"
msgstr "Sin resultados para:" msgstr "Sin resultados para:"
#: cps/templates/search.html:7 #: cps/templates/search.html:7
msgid "Please try a diffrent Search" msgid "Please try a different search"
msgstr "Intente una busqueda diferente" msgstr "Intente una busqueda diferente"
#: cps/templates/search.html:9 #: cps/templates/search.html:9

@ -20,7 +20,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: 2017-08-12 18:55+0200\n" "POT-Creation-Date: 2017-09-01 20:37+0200\n"
"PO-Revision-Date: 2016-11-13 18:35+0100\n" "PO-Revision-Date: 2016-11-13 18:35+0100\n"
"Last-Translator: Nicolas Roudninski <nicoroud@gmail.com>\n" "Last-Translator: Nicolas Roudninski <nicoroud@gmail.com>\n"
"Language: fr\n" "Language: fr\n"
@ -31,7 +31,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.4.0\n" "Generated-By: Babel 2.4.0\n"
#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1374 #: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1341
msgid "not installed" msgid "not installed"
msgstr "" msgstr ""
@ -75,375 +75,375 @@ msgstr "Envoyer ver Kindle"
msgid "Could not find any formats suitable for sending by email" msgid "Could not find any formats suitable for sending by email"
msgstr "Impossible de trouver un format adapté à envoyer par courriel" msgstr "Impossible de trouver un format adapté à envoyer par courriel"
#: cps/ub.py:542 #: cps/ub.py:543
msgid "Guest" msgid "Guest"
msgstr "" msgstr ""
#: cps/web.py:974 #: cps/web.py:953
msgid "Requesting update package" msgid "Requesting update package"
msgstr "" msgstr ""
#: cps/web.py:975 #: cps/web.py:954
msgid "Downloading update package" msgid "Downloading update package"
msgstr "" msgstr ""
#: cps/web.py:976 #: cps/web.py:955
msgid "Unzipping update package" msgid "Unzipping update package"
msgstr "" msgstr ""
#: cps/web.py:977 #: cps/web.py:956
msgid "Files are replaced" msgid "Files are replaced"
msgstr "" msgstr ""
#: cps/web.py:978 #: cps/web.py:957
msgid "Database connections are closed" msgid "Database connections are closed"
msgstr "" msgstr ""
#: cps/web.py:979 #: cps/web.py:958
msgid "Server is stopped" msgid "Server is stopped"
msgstr "" msgstr ""
#: cps/web.py:980 #: cps/web.py:959
msgid "Update finished, please press okay and reload page" msgid "Update finished, please press okay and reload page"
msgstr "" msgstr ""
#: cps/web.py:1054 #: cps/web.py:1033
msgid "Recently Added Books" msgid "Recently Added Books"
msgstr "" msgstr ""
#: cps/web.py:1063 #: cps/web.py:1042
msgid "Newest Books" msgid "Newest Books"
msgstr "" msgstr ""
#: cps/web.py:1072 #: cps/web.py:1051
msgid "Oldest Books" msgid "Oldest Books"
msgstr "" msgstr ""
#: cps/web.py:1081 #: cps/web.py:1060
msgid "Books (A-Z)" msgid "Books (A-Z)"
msgstr "" msgstr ""
#: cps/web.py:1090 #: cps/web.py:1069
msgid "Books (Z-A)" msgid "Books (Z-A)"
msgstr "" msgstr ""
#: cps/web.py:1126 #: cps/web.py:1099
msgid "Hot Books (most downloaded)" msgid "Hot Books (most downloaded)"
msgstr "Livres populaires (les plus téléchargés)" msgstr "Livres populaires (les plus téléchargés)"
#: cps/web.py:1136 #: cps/web.py:1109
msgid "Best rated books" msgid "Best rated books"
msgstr "" msgstr ""
#: cps/templates/index.xml:36 cps/web.py:1145 #: cps/templates/index.xml:35 cps/web.py:1118
msgid "Random Books" msgid "Random Books"
msgstr "Livres au hasard" msgstr "Livres au hasard"
#: cps/web.py:1161 #: cps/web.py:1127
msgid "Author list" msgid "Author list"
msgstr "Liste des auteurs" msgstr "Liste des auteurs"
#: cps/web.py:1181 cps/web.py:1212 cps/web.py:1351 cps/web.py:1835 #: cps/web.py:1137 cps/web.py:1193 cps/web.py:1318 cps/web.py:1796
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 ""
"Erreur d'ouverture du livre numérique. Le fichier n'existe pas ou n'est " "Erreur d'ouverture du livre numérique. Le fichier n'existe pas ou n'est "
"pas accessible :" "pas accessible :"
#: cps/templates/index.xml:71 cps/web.py:1198 #: cps/templates/index.xml:70 cps/web.py:1179
msgid "Series list" msgid "Series list"
msgstr "Liste des séries" msgstr "Liste des séries"
#: cps/web.py:1210 #: cps/web.py:1191
#, python-format #, python-format
msgid "Series: %(serie)s" msgid "Series: %(serie)s"
msgstr "Séries : %(serie)s" msgstr "Séries : %(serie)s"
#: cps/web.py:1243 #: cps/web.py:1224
msgid "Available languages" msgid "Available languages"
msgstr "Langues disponibles" msgstr "Langues disponibles"
#: cps/web.py:1258 #: cps/web.py:1239
#, python-format #, python-format
msgid "Language: %(name)s" msgid "Language: %(name)s"
msgstr "Langue : %(name)s" msgstr "Langue : %(name)s"
#: cps/templates/index.xml:64 cps/web.py:1274 #: cps/templates/index.xml:63 cps/web.py:1248
msgid "Category list" msgid "Category list"
msgstr "Liste des catégories" msgstr "Liste des catégories"
#: cps/web.py:1286 #: cps/web.py:1260
#, python-format #, python-format
msgid "Category: %(name)s" msgid "Category: %(name)s"
msgstr "Catégorie : %(name)s" msgstr "Catégorie : %(name)s"
#: cps/web.py:1385 #: cps/web.py:1352
msgid "Excecution permissions missing" msgid "Excecution permissions missing"
msgstr "" msgstr ""
#: cps/web.py:1399 #: cps/web.py:1366
msgid "Statistics" msgid "Statistics"
msgstr "Statistiques" msgstr "Statistiques"
#: cps/web.py:1563 #: cps/web.py:1530
msgid "Server restarted, please reload page" msgid "Server restarted, please reload page"
msgstr "" msgstr ""
#: cps/web.py:1565 #: cps/web.py:1532
msgid "Performing shutdown of server, please close window" msgid "Performing shutdown of server, please close window"
msgstr "" msgstr ""
#: cps/web.py:1581 #: cps/web.py:1548
msgid "Update done" msgid "Update done"
msgstr "" msgstr ""
#: cps/web.py:1662 cps/web.py:1675 #: cps/web.py:1623 cps/web.py:1636
msgid "search" msgid "search"
msgstr "" msgstr ""
#: cps/templates/index.xml:43 cps/templates/index.xml:47 #: cps/templates/index.xml:42 cps/templates/index.xml:46
#: cps/templates/layout.html:127 cps/web.py:1751 #: cps/templates/layout.html:127 cps/web.py:1712
msgid "Read Books" msgid "Read Books"
msgstr "" msgstr ""
#: cps/templates/index.xml:50 cps/templates/index.xml:54 #: cps/templates/index.xml:49 cps/templates/index.xml:53
#: cps/templates/layout.html:128 cps/web.py:1754 #: cps/templates/layout.html:128 cps/web.py:1715
msgid "Unread Books" msgid "Unread Books"
msgstr "" msgstr ""
#: cps/web.py:1821 cps/web.py:1823 cps/web.py:1825 cps/web.py:1832 #: cps/web.py:1782 cps/web.py:1784 cps/web.py:1786 cps/web.py:1793
msgid "Read a Book" msgid "Read a Book"
msgstr "Lire un livre" msgstr "Lire un livre"
#: cps/web.py:1888 cps/web.py:2513 #: cps/web.py:1849 cps/web.py:2474
msgid "Please fill out all fields!" msgid "Please fill out all fields!"
msgstr "SVP, complétez tous les champs !" msgstr "SVP, complétez tous les champs !"
#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 #: cps/web.py:1850 cps/web.py:1866 cps/web.py:1871 cps/web.py:1873
msgid "register" msgid "register"
msgstr "S'enregistrer" msgstr "S'enregistrer"
#: cps/web.py:1904 #: cps/web.py:1865
msgid "An unknown error occured. Please try again later." msgid "An unknown error occured. Please try again later."
msgstr "Une erreur a eu lieu. Merci de réessayez plus tard." msgstr "Une erreur a eu lieu. Merci de réessayez plus tard."
#: cps/web.py:1909 #: cps/web.py:1870
msgid "This username or email address is already in use." msgid "This username or email address is already in use."
msgstr "Ce nom d'utilisateur ou cette adresse de courriel est déjà utilisée." msgstr "Ce nom d'utilisateur ou cette adresse de courriel est déjà utilisée."
#: cps/web.py:1928 cps/web.py:2024 #: cps/web.py:1889 cps/web.py:1985
#, python-format #, python-format
msgid "you are now logged in as: '%(nickname)s'" msgid "you are now logged in as: '%(nickname)s'"
msgstr "Vous êtes maintenant connecté sous : '%(nickname)s'" msgstr "Vous êtes maintenant connecté sous : '%(nickname)s'"
#: cps/web.py:1933 #: cps/web.py:1894
msgid "Wrong Username or Password" msgid "Wrong Username or Password"
msgstr "Mauvais nom d'utilisateur ou mot de passe" msgstr "Mauvais nom d'utilisateur ou mot de passe"
#: cps/web.py:1939 cps/web.py:1960 #: cps/web.py:1900 cps/web.py:1921
msgid "login" msgid "login"
msgstr "Connexion" msgstr "Connexion"
#: cps/web.py:1972 cps/web.py:2003 #: cps/web.py:1933 cps/web.py:1964
msgid "Token not found" msgid "Token not found"
msgstr "" msgstr ""
#: cps/web.py:1980 cps/web.py:2011 #: cps/web.py:1941 cps/web.py:1972
msgid "Token has expired" msgid "Token has expired"
msgstr "" msgstr ""
#: cps/web.py:1988 #: cps/web.py:1949
msgid "Success! Please return to your device" msgid "Success! Please return to your device"
msgstr "" msgstr ""
#: cps/web.py:2038 #: cps/web.py:1999
msgid "Please configure the SMTP mail settings first..." msgid "Please configure the SMTP mail settings first..."
msgstr "Veillez configurer les paramètres smtp d'abord..." msgstr "Veillez configurer les paramètres smtp d'abord..."
#: cps/web.py:2042 #: cps/web.py:2003
#, python-format #, python-format
msgid "Book successfully send to %(kindlemail)s" msgid "Book successfully send to %(kindlemail)s"
msgstr "Livres envoyés à %(kindlemail)s avec succès" msgstr "Livres envoyés à %(kindlemail)s avec succès"
#: cps/web.py:2046 #: cps/web.py:2007
#, 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 "Il y a eu une erreur en envoyant ce livre : %(res)s" msgstr "Il y a eu une erreur en envoyant ce livre : %(res)s"
#: cps/web.py:2048 cps/web.py:2598 #: cps/web.py:2009 cps/web.py:2559
msgid "Please configure your kindle email address first..." msgid "Please configure your kindle email address first..."
msgstr "Veuillez configurer votre adresse kindle d'abord..." msgstr "Veuillez configurer votre adresse kindle d'abord..."
#: cps/web.py:2092 #: cps/web.py:2053
#, python-format #, python-format
msgid "Book has been added to shelf: %(sname)s" msgid "Book has been added to shelf: %(sname)s"
msgstr "Le livre a bien été ajouté à l'étagère : %(sname)s" msgstr "Le livre a bien été ajouté à l'étagère : %(sname)s"
#: cps/web.py:2127 #: cps/web.py:2088
#, python-format #, python-format
msgid "Book has been removed from shelf: %(sname)s" msgid "Book has been removed from shelf: %(sname)s"
msgstr "Le livre a été supprimé de l'étagère %(sname)s" msgstr "Le livre a été supprimé de l'étagère %(sname)s"
#: cps/web.py:2146 cps/web.py:2170 #: cps/web.py:2107 cps/web.py:2131
#, 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 "Une étagère de ce nom '%(title)s' existe déjà." msgstr "Une étagère de ce nom '%(title)s' existe déjà."
#: cps/web.py:2151 #: cps/web.py:2112
#, python-format #, python-format
msgid "Shelf %(title)s created" msgid "Shelf %(title)s created"
msgstr "Étagère %(title)s créée" msgstr "Étagère %(title)s créée"
#: cps/web.py:2153 cps/web.py:2181 #: cps/web.py:2114 cps/web.py:2142
msgid "There was an error" msgid "There was an error"
msgstr "Il y a eu une erreur" msgstr "Il y a eu une erreur"
#: cps/web.py:2154 cps/web.py:2156 #: cps/web.py:2115 cps/web.py:2117
msgid "create a shelf" msgid "create a shelf"
msgstr "Créer une étagère" msgstr "Créer une étagère"
#: cps/web.py:2179 #: cps/web.py:2140
#, python-format #, python-format
msgid "Shelf %(title)s changed" msgid "Shelf %(title)s changed"
msgstr "" msgstr ""
#: cps/web.py:2182 cps/web.py:2184 #: cps/web.py:2143 cps/web.py:2145
msgid "Edit a shelf" msgid "Edit a shelf"
msgstr "" msgstr ""
#: cps/web.py:2204 #: cps/web.py:2165
#, python-format #, python-format
msgid "successfully deleted shelf %(name)s" msgid "successfully deleted shelf %(name)s"
msgstr "L'étagère %(name)s a été supprimé avec succès" msgstr "L'étagère %(name)s a été supprimé avec succès"
#: cps/web.py:2226 #: cps/web.py:2187
#, python-format #, python-format
msgid "Shelf: '%(name)s'" msgid "Shelf: '%(name)s'"
msgstr "Étagère : '%(name)s'" msgstr "Étagère : '%(name)s'"
#: cps/web.py:2229 #: cps/web.py:2190
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:2261 #: cps/web.py:2222
#, python-format #, python-format
msgid "Change order of Shelf: '%(name)s'" msgid "Change order of Shelf: '%(name)s'"
msgstr "" msgstr ""
#: cps/web.py:2326 #: cps/web.py:2287
msgid "Found an existing account for this email address." msgid "Found an existing account for this email address."
msgstr "Un compte avec cette adresse de courriel existe déjà." msgstr "Un compte avec cette adresse de courriel existe déjà."
#: cps/web.py:2328 cps/web.py:2332 #: cps/web.py:2289 cps/web.py:2293
#, python-format #, python-format
msgid "%(name)s's profile" msgid "%(name)s's profile"
msgstr "Profil de %(name)s" msgstr "Profil de %(name)s"
#: cps/web.py:2329 #: cps/web.py:2290
msgid "Profile updated" msgid "Profile updated"
msgstr "Profil mis à jour" msgstr "Profil mis à jour"
#: cps/web.py:2343 #: cps/web.py:2304
msgid "Admin page" msgid "Admin page"
msgstr "" msgstr ""
#: cps/web.py:2467 #: cps/web.py:2428
msgid "Calibre-web configuration updated" msgid "Calibre-web configuration updated"
msgstr "" msgstr ""
#: cps/web.py:2474 cps/web.py:2480 cps/web.py:2494 #: cps/web.py:2435 cps/web.py:2441 cps/web.py:2455
msgid "Basic Configuration" msgid "Basic Configuration"
msgstr "" msgstr ""
#: cps/web.py:2478 #: cps/web.py:2439
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:34 cps/web.py:2515 cps/web.py:2568 #: cps/templates/admin.html:34 cps/web.py:2476 cps/web.py:2529
msgid "Add new user" msgid "Add new user"
msgstr "Ajouter un nouvel utilisateur" msgstr "Ajouter un nouvel utilisateur"
#: cps/web.py:2560 #: cps/web.py:2521
#, python-format #, python-format
msgid "User '%(user)s' created" msgid "User '%(user)s' created"
msgstr "Utilisateur '%(user)s' créé" msgstr "Utilisateur '%(user)s' créé"
#: cps/web.py:2564 #: cps/web.py:2525
msgid "Found an existing account for this email address or nickname." msgid "Found an existing account for this email address or nickname."
msgstr "Un compte avec cette adresse de courriel ou ce surnom existe déjà." msgstr "Un compte avec cette adresse de courriel ou ce surnom existe déjà."
#: cps/web.py:2586 #: cps/web.py:2547
msgid "Mail settings updated" msgid "Mail settings updated"
msgstr "Paramètres de courriel mis à jour" msgstr "Paramètres de courriel mis à jour"
#: cps/web.py:2593 #: cps/web.py:2554
#, 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:2596 #: cps/web.py:2557
#, 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:2600 #: cps/web.py:2561
msgid "E-Mail settings updated" msgid "E-Mail settings updated"
msgstr "" msgstr ""
#: cps/web.py:2601 #: cps/web.py:2562
msgid "Edit mail settings" msgid "Edit mail settings"
msgstr "Éditer les paramètres de courriel" msgstr "Éditer les paramètres de courriel"
#: cps/web.py:2630 #: cps/web.py:2591
#, python-format #, python-format
msgid "User '%(nick)s' deleted" msgid "User '%(nick)s' deleted"
msgstr "Utilisateur '%(nick)s' supprimé" msgstr "Utilisateur '%(nick)s' supprimé"
#: cps/web.py:2728 #: cps/web.py:2689
#, python-format #, python-format
msgid "User '%(nick)s' updated" msgid "User '%(nick)s' updated"
msgstr "Utilisateur '%(nick)s' mis à jour" msgstr "Utilisateur '%(nick)s' mis à jour"
#: cps/web.py:2731 #: cps/web.py:2692
msgid "An unknown error occured." msgid "An unknown error occured."
msgstr "Oups ! Une erreur inconnue a eu lieu." msgstr "Oups ! Une erreur inconnue a eu lieu."
#: cps/web.py:2734 #: cps/web.py:2695
#, python-format #, python-format
msgid "Edit User %(nick)s" msgid "Edit User %(nick)s"
msgstr "Éditer l'utilisateur %(nick)s" msgstr "Éditer l'utilisateur %(nick)s"
#: cps/web.py:2756 #: cps/web.py:2711
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:2771 cps/web.py:2954 cps/web.py:3078 #: cps/web.py:2726 cps/web.py:2898 cps/web.py:3041
msgid "edit metadata" msgid "edit metadata"
msgstr "" msgstr ""
#: cps/web.py:2783 cps/web.py:2787 #: cps/web.py:2738 cps/web.py:2742
msgid "unknown" msgid "unknown"
msgstr "" msgstr ""
#: cps/web.py:2972 #: cps/web.py:2935
#, python-format #, python-format
msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgid "File extension \"%s\" is not allowed to be uploaded to this server"
msgstr "" msgstr ""
#: cps/web.py:2978 #: cps/web.py:2941
msgid "File to be uploaded must have an extension" msgid "File to be uploaded must have an extension"
msgstr "" msgstr ""
#: cps/web.py:2997 #: cps/web.py:2960
#, python-format #, python-format
msgid "Failed to create path %s (Permission denied)." msgid "Failed to create path %s (Permission denied)."
msgstr "Impossible de créer le chemin %s (permission refusée)" msgstr "Impossible de créer le chemin %s (permission refusée)"
#: cps/web.py:3002 #: cps/web.py:2965
#, python-format #, python-format
msgid "Failed to store file %s (Permission denied)." msgid "Failed to store file %s (Permission denied)."
msgstr "Impossible d'enregistrer le fichier %s (permission refusée)" msgstr "Impossible d'enregistrer le fichier %s (permission refusée)"
#: cps/web.py:3007 #: cps/web.py:2970
#, python-format #, python-format
msgid "Failed to delete file %s (Permission denied)." msgid "Failed to delete file %s (Permission denied)."
msgstr "Impossible de supprimer le fichier %s (permission refusée)" msgstr "Impossible de supprimer le fichier %s (permission refusée)"
@ -614,6 +614,18 @@ msgstr ""
msgid "Updating, please do not reload page" msgid "Updating, please do not reload page"
msgstr "" msgstr ""
#: cps/templates/author.html:15
msgid "via"
msgstr ""
#: cps/templates/author.html:23
msgid "In Library"
msgstr ""
#: cps/templates/author.html:69
msgid "More by"
msgstr ""
#: cps/templates/book_edit.html:16 #: cps/templates/book_edit.html:16
msgid "Delete Book" msgid "Delete Book"
msgstr "" msgstr ""
@ -622,12 +634,13 @@ msgstr ""
msgid "Book Title" msgid "Book Title"
msgstr "Titre du livre" msgstr "Titre du livre"
#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:188 #: cps/templates/book_edit.html:26 cps/templates/book_edit.html:208
#: cps/templates/search_form.html:10 #: cps/templates/book_edit.html:226 cps/templates/search_form.html:10
msgid "Author" msgid "Author"
msgstr "Auteur" msgstr "Auteur"
#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:190 #: cps/templates/book_edit.html:30 cps/templates/book_edit.html:213
#: cps/templates/book_edit.html:228
msgid "Description" msgid "Description"
msgstr "Description" msgstr "Description"
@ -710,33 +723,33 @@ msgstr ""
msgid "Go!" msgid "Go!"
msgstr "Allez !" msgstr "Allez !"
#: cps/templates/book_edit.html:168 #: cps/templates/book_edit.html:171
msgid "Click the cover to load metadata to the form" msgid "Click the cover to load metadata to the form"
msgstr "" msgstr ""
#: cps/templates/book_edit.html:172 cps/templates/book_edit.html:185 #: cps/templates/book_edit.html:183 cps/templates/book_edit.html:223
msgid "Loading..." msgid "Loading..."
msgstr "" msgstr ""
#: cps/templates/book_edit.html:175 cps/templates/layout.html:199 #: cps/templates/book_edit.html:188 cps/templates/layout.html:199
msgid "Close" msgid "Close"
msgstr "" msgstr ""
#: cps/templates/book_edit.html:186 #: cps/templates/book_edit.html:210 cps/templates/book_edit.html:227
msgid "Search error!" #: cps/templates/detail.html:125 cps/templates/search_form.html:14
msgid "Publisher"
msgstr "" msgstr ""
#: cps/templates/book_edit.html:187 #: cps/templates/book_edit.html:215 cps/templates/book_edit.html:229
msgid "No Result! Please try anonther keyword." msgid "Source"
msgstr "" msgstr ""
#: cps/templates/book_edit.html:189 cps/templates/detail.html:125 #: cps/templates/book_edit.html:224
#: cps/templates/search_form.html:14 msgid "Search error!"
msgid "Publisher"
msgstr "" msgstr ""
#: cps/templates/book_edit.html:191 #: cps/templates/book_edit.html:225
msgid "Source" msgid "No Result! Please try anonther keyword."
msgstr "" msgstr ""
#: cps/templates/config_edit.html:7 #: cps/templates/config_edit.html:7
@ -929,6 +942,11 @@ msgstr ""
msgid "Next" msgid "Next"
msgstr "Suivant" msgstr "Suivant"
#: cps/templates/feed.xml:29 cps/templates/index.xml:7
#: cps/templates/layout.html:40 cps/templates/layout.html:41
msgid "Search"
msgstr "Chercher"
#: cps/templates/index.html:5 #: cps/templates/index.html:5
msgid "Discover (Random Books)" msgid "Discover (Random Books)"
msgstr "Découverte (livres au hasard)" msgstr "Découverte (livres au hasard)"
@ -937,52 +955,47 @@ msgstr "Découverte (livres au hasard)"
msgid "Start" msgid "Start"
msgstr "Démarrer" msgstr "Démarrer"
#: cps/templates/index.xml:7 cps/templates/layout.html:40 #: cps/templates/index.xml:14 cps/templates/layout.html:121
#: cps/templates/layout.html:41
msgid "Search"
msgstr "Chercher"
#: cps/templates/index.xml:15 cps/templates/layout.html:121
msgid "Hot Books" msgid "Hot Books"
msgstr "Livres populaires" msgstr "Livres populaires"
#: cps/templates/index.xml:19 #: cps/templates/index.xml:18
msgid "Popular publications from this catalog based on Downloads." msgid "Popular publications from this catalog based on Downloads."
msgstr "" msgstr ""
#: cps/templates/index.xml:22 cps/templates/layout.html:124 #: cps/templates/index.xml:21 cps/templates/layout.html:124
msgid "Best rated Books" msgid "Best rated Books"
msgstr "" msgstr ""
#: cps/templates/index.xml:26 #: cps/templates/index.xml:25
msgid "Popular publications from this catalog based on Rating." msgid "Popular publications from this catalog based on Rating."
msgstr "Publications populaires de ce catalogue sur la base de notes." msgstr "Publications populaires de ce catalogue sur la base de notes."
#: cps/templates/index.xml:29 #: cps/templates/index.xml:28
msgid "New Books" msgid "New Books"
msgstr "Nouveaux livres" msgstr "Nouveaux livres"
#: cps/templates/index.xml:33 #: cps/templates/index.xml:32
msgid "The latest Books" msgid "The latest Books"
msgstr "Les derniers livres" msgstr "Les derniers livres"
#: cps/templates/index.xml:40 #: cps/templates/index.xml:39
msgid "Show Random Books" msgid "Show Random Books"
msgstr "Montrer des livres au hasard" msgstr "Montrer des livres au hasard"
#: cps/templates/index.xml:57 cps/templates/layout.html:139 #: cps/templates/index.xml:56 cps/templates/layout.html:139
msgid "Authors" msgid "Authors"
msgstr "Auteurs" msgstr "Auteurs"
#: cps/templates/index.xml:61 #: cps/templates/index.xml:60
msgid "Books ordered by Author" msgid "Books ordered by Author"
msgstr "Livres classés par auteur" msgstr "Livres classés par auteur"
#: cps/templates/index.xml:68 #: cps/templates/index.xml:67
msgid "Books ordered by category" msgid "Books ordered by category"
msgstr "Livres classés par catégorie" msgstr "Livres classés par catégorie"
#: cps/templates/index.xml:75 #: cps/templates/index.xml:74
msgid "Books ordered by series" msgid "Books ordered by series"
msgstr "Livres classés par série" msgstr "Livres classés par série"
@ -1142,7 +1155,7 @@ msgid "No Results for:"
msgstr "Aucun résultat pour :" msgstr "Aucun résultat pour :"
#: cps/templates/search.html:7 #: cps/templates/search.html:7
msgid "Please try a diffrent Search" msgid "Please try a different search"
msgstr "Essayer une recherche différente" msgstr "Essayer une recherche différente"
#: cps/templates/search.html:9 #: cps/templates/search.html:9

@ -22,7 +22,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Calibre-web dutch translation by Ed Driesen (GPL V3)\n" "Project-Id-Version: Calibre-web dutch translation by Ed Driesen (GPL V3)\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2017-08-12 18:55+0200\n" "POT-Creation-Date: 2017-09-01 20:37+0200\n"
"PO-Revision-Date: 2017-06-21 20:15+0200\n" "PO-Revision-Date: 2017-06-21 20:15+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language: nl\n" "Language: nl\n"
@ -33,7 +33,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.4.0\n" "Generated-By: Babel 2.4.0\n"
#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1374 #: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1341
msgid "not installed" msgid "not installed"
msgstr "niet geïnstalleerd" msgstr "niet geïnstalleerd"
@ -77,375 +77,375 @@ msgstr "Stuur naar Kindle:"
msgid "Could not find any formats suitable for sending by email" msgid "Could not find any formats suitable for sending by email"
msgstr "Kon geen geschikte formaten vinden om te verzenden per email" msgstr "Kon geen geschikte formaten vinden om te verzenden per email"
#: cps/ub.py:542 #: cps/ub.py:543
msgid "Guest" msgid "Guest"
msgstr "Gast" msgstr "Gast"
#: cps/web.py:974 #: cps/web.py:953
msgid "Requesting update package" msgid "Requesting update package"
msgstr "Update pakket wordt aangevraagd" msgstr "Update pakket wordt aangevraagd"
#: cps/web.py:975 #: cps/web.py:954
msgid "Downloading update package" msgid "Downloading update package"
msgstr "Update pakket wordt gedownload" msgstr "Update pakket wordt gedownload"
#: cps/web.py:976 #: cps/web.py:955
msgid "Unzipping update package" msgid "Unzipping update package"
msgstr "Update pakket wordt uitgepakt" msgstr "Update pakket wordt uitgepakt"
#: cps/web.py:977 #: cps/web.py:956
msgid "Files are replaced" msgid "Files are replaced"
msgstr "Bestanden zijn vervangen" msgstr "Bestanden zijn vervangen"
#: cps/web.py:978 #: cps/web.py:957
msgid "Database connections are closed" msgid "Database connections are closed"
msgstr "Database verbindingen zijn gesloten" msgstr "Database verbindingen zijn gesloten"
#: cps/web.py:979 #: cps/web.py:958
msgid "Server is stopped" msgid "Server is stopped"
msgstr "Server is gestopt" msgstr "Server is gestopt"
#: cps/web.py:980 #: cps/web.py:959
msgid "Update finished, please press okay and reload page" msgid "Update finished, please press okay and reload page"
msgstr "Update voltooid, klik op ok en herlaad de pagina" msgstr "Update voltooid, klik op ok en herlaad de pagina"
#: cps/web.py:1054 #: cps/web.py:1033
msgid "Recently Added Books" msgid "Recently Added Books"
msgstr "" msgstr ""
#: cps/web.py:1063 #: cps/web.py:1042
msgid "Newest Books" msgid "Newest Books"
msgstr "" msgstr ""
#: cps/web.py:1072 #: cps/web.py:1051
msgid "Oldest Books" msgid "Oldest Books"
msgstr "" msgstr ""
#: cps/web.py:1081 #: cps/web.py:1060
msgid "Books (A-Z)" msgid "Books (A-Z)"
msgstr "" msgstr ""
#: cps/web.py:1090 #: cps/web.py:1069
msgid "Books (Z-A)" msgid "Books (Z-A)"
msgstr "" msgstr ""
#: cps/web.py:1126 #: cps/web.py:1099
msgid "Hot Books (most downloaded)" msgid "Hot Books (most downloaded)"
msgstr "Populaire boeken (meeste downloads)" msgstr "Populaire boeken (meeste downloads)"
#: cps/web.py:1136 #: cps/web.py:1109
msgid "Best rated books" msgid "Best rated books"
msgstr "Best beoordeelde boeken" msgstr "Best beoordeelde boeken"
#: cps/templates/index.xml:36 cps/web.py:1145 #: cps/templates/index.xml:35 cps/web.py:1118
msgid "Random Books" msgid "Random Books"
msgstr "Willekeurige boeken" msgstr "Willekeurige boeken"
#: cps/web.py:1161 #: cps/web.py:1127
msgid "Author list" msgid "Author list"
msgstr "Auteur lijst" msgstr "Auteur lijst"
#: cps/web.py:1181 cps/web.py:1212 cps/web.py:1351 cps/web.py:1835 #: cps/web.py:1137 cps/web.py:1193 cps/web.py:1318 cps/web.py:1796
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 ""
"Fout bij openen van het boek. Bestand bestaat niet of is niet " "Fout bij openen van het boek. Bestand bestaat niet of is niet "
"toegankelijk:" "toegankelijk:"
#: cps/templates/index.xml:71 cps/web.py:1198 #: cps/templates/index.xml:70 cps/web.py:1179
msgid "Series list" msgid "Series list"
msgstr "Series lijst" msgstr "Series lijst"
#: cps/web.py:1210 #: cps/web.py:1191
#, python-format #, python-format
msgid "Series: %(serie)s" msgid "Series: %(serie)s"
msgstr "Series: %(serie)s" msgstr "Series: %(serie)s"
#: cps/web.py:1243 #: cps/web.py:1224
msgid "Available languages" msgid "Available languages"
msgstr "Beschikbare talen" msgstr "Beschikbare talen"
#: cps/web.py:1258 #: cps/web.py:1239
#, python-format #, python-format
msgid "Language: %(name)s" msgid "Language: %(name)s"
msgstr "Taal: %(name)s" msgstr "Taal: %(name)s"
#: cps/templates/index.xml:64 cps/web.py:1274 #: cps/templates/index.xml:63 cps/web.py:1248
msgid "Category list" msgid "Category list"
msgstr "Categorie lijst" msgstr "Categorie lijst"
#: cps/web.py:1286 #: cps/web.py:1260
#, python-format #, python-format
msgid "Category: %(name)s" msgid "Category: %(name)s"
msgstr "Categorie: %(name)s" msgstr "Categorie: %(name)s"
#: cps/web.py:1385 #: cps/web.py:1352
msgid "Excecution permissions missing" msgid "Excecution permissions missing"
msgstr "" msgstr ""
#: cps/web.py:1399 #: cps/web.py:1366
msgid "Statistics" msgid "Statistics"
msgstr "Statistieken" msgstr "Statistieken"
#: cps/web.py:1563 #: cps/web.py:1530
msgid "Server restarted, please reload page" msgid "Server restarted, please reload page"
msgstr "Server herstart, gelieve de pagina herladen" msgstr "Server herstart, gelieve de pagina herladen"
#: cps/web.py:1565 #: cps/web.py:1532
msgid "Performing shutdown of server, please close window" msgid "Performing shutdown of server, please close window"
msgstr "Bezig met het stoppen vande server, gelieve venster afsluiten" msgstr "Bezig met het stoppen vande server, gelieve venster afsluiten"
#: cps/web.py:1581 #: cps/web.py:1548
msgid "Update done" msgid "Update done"
msgstr "Update voltooid" msgstr "Update voltooid"
#: cps/web.py:1662 cps/web.py:1675 #: cps/web.py:1623 cps/web.py:1636
msgid "search" msgid "search"
msgstr "zoek" msgstr "zoek"
#: cps/templates/index.xml:43 cps/templates/index.xml:47 #: cps/templates/index.xml:42 cps/templates/index.xml:46
#: cps/templates/layout.html:127 cps/web.py:1751 #: cps/templates/layout.html:127 cps/web.py:1712
msgid "Read Books" msgid "Read Books"
msgstr "Lees Boeken" msgstr "Lees Boeken"
#: cps/templates/index.xml:50 cps/templates/index.xml:54 #: cps/templates/index.xml:49 cps/templates/index.xml:53
#: cps/templates/layout.html:128 cps/web.py:1754 #: cps/templates/layout.html:128 cps/web.py:1715
msgid "Unread Books" msgid "Unread Books"
msgstr "Ongelezen Boeken" msgstr "Ongelezen Boeken"
#: cps/web.py:1821 cps/web.py:1823 cps/web.py:1825 cps/web.py:1832 #: cps/web.py:1782 cps/web.py:1784 cps/web.py:1786 cps/web.py:1793
msgid "Read a Book" msgid "Read a Book"
msgstr "Lees een boek" msgstr "Lees een boek"
#: cps/web.py:1888 cps/web.py:2513 #: cps/web.py:1849 cps/web.py:2474
msgid "Please fill out all fields!" msgid "Please fill out all fields!"
msgstr "Gelieve alle velden in te vullen!" msgstr "Gelieve alle velden in te vullen!"
#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 #: cps/web.py:1850 cps/web.py:1866 cps/web.py:1871 cps/web.py:1873
msgid "register" msgid "register"
msgstr "registreer" msgstr "registreer"
#: cps/web.py:1904 #: cps/web.py:1865
msgid "An unknown error occured. Please try again later." msgid "An unknown error occured. Please try again later."
msgstr "Een onbekende fout deed zich voor. Gelieve later nog eens te proberen." msgstr "Een onbekende fout deed zich voor. Gelieve later nog eens te proberen."
#: cps/web.py:1909 #: cps/web.py:1870
msgid "This username or email address is already in use." msgid "This username or email address is already in use."
msgstr "Deze gebruikersnaam of email adres is reeds in gebruik." msgstr "Deze gebruikersnaam of email adres is reeds in gebruik."
#: cps/web.py:1928 cps/web.py:2024 #: cps/web.py:1889 cps/web.py:1985
#, python-format #, python-format
msgid "you are now logged in as: '%(nickname)s'" msgid "you are now logged in as: '%(nickname)s'"
msgstr "je bent nu ingelogd als: '%(nickname)s'" msgstr "je bent nu ingelogd als: '%(nickname)s'"
#: cps/web.py:1933 #: cps/web.py:1894
msgid "Wrong Username or Password" msgid "Wrong Username or Password"
msgstr "Verkeerde gebruikersnaam of Wachtwoord" msgstr "Verkeerde gebruikersnaam of Wachtwoord"
#: cps/web.py:1939 cps/web.py:1960 #: cps/web.py:1900 cps/web.py:1921
msgid "login" msgid "login"
msgstr "login" msgstr "login"
#: cps/web.py:1972 cps/web.py:2003 #: cps/web.py:1933 cps/web.py:1964
msgid "Token not found" msgid "Token not found"
msgstr "" msgstr ""
#: cps/web.py:1980 cps/web.py:2011 #: cps/web.py:1941 cps/web.py:1972
msgid "Token has expired" msgid "Token has expired"
msgstr "" msgstr ""
#: cps/web.py:1988 #: cps/web.py:1949
msgid "Success! Please return to your device" msgid "Success! Please return to your device"
msgstr "" msgstr ""
#: cps/web.py:2038 #: cps/web.py:1999
msgid "Please configure the SMTP mail settings first..." msgid "Please configure the SMTP mail settings first..."
msgstr "Gelieve de SMTP mail instellingen eerstte configureren..." msgstr "Gelieve de SMTP mail instellingen eerstte configureren..."
#: cps/web.py:2042 #: cps/web.py:2003
#, python-format #, python-format
msgid "Book successfully send to %(kindlemail)s" msgid "Book successfully send to %(kindlemail)s"
msgstr "Boek met succes verstuurd naar %(kindlemail)s" msgstr "Boek met succes verstuurd naar %(kindlemail)s"
#: cps/web.py:2046 #: cps/web.py:2007
#, 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 "Er trad een fout op bij het versturen van dit boek: %(res)s" msgstr "Er trad een fout op bij het versturen van dit boek: %(res)s"
#: cps/web.py:2048 cps/web.py:2598 #: cps/web.py:2009 cps/web.py:2559
msgid "Please configure your kindle email address first..." msgid "Please configure your kindle email address first..."
msgstr "Gelieve eerst je kindle email adres te configureren..." msgstr "Gelieve eerst je kindle email adres te configureren..."
#: cps/web.py:2092 #: cps/web.py:2053
#, python-format #, python-format
msgid "Book has been added to shelf: %(sname)s" msgid "Book has been added to shelf: %(sname)s"
msgstr "Boek werd toegevoegd aan boekenplank: %(sname)s" msgstr "Boek werd toegevoegd aan boekenplank: %(sname)s"
#: cps/web.py:2127 #: cps/web.py:2088
#, python-format #, python-format
msgid "Book has been removed from shelf: %(sname)s" msgid "Book has been removed from shelf: %(sname)s"
msgstr "Boek werd verwijderd van boekenplank: %(sname)s" msgstr "Boek werd verwijderd van boekenplank: %(sname)s"
#: cps/web.py:2146 cps/web.py:2170 #: cps/web.py:2107 cps/web.py:2131
#, 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 "Een boekenplank met de naam '%(title)s' bestaat reeds." msgstr "Een boekenplank met de naam '%(title)s' bestaat reeds."
#: cps/web.py:2151 #: cps/web.py:2112
#, python-format #, python-format
msgid "Shelf %(title)s created" msgid "Shelf %(title)s created"
msgstr "Boekenplank %(title)s aangemaakt" msgstr "Boekenplank %(title)s aangemaakt"
#: cps/web.py:2153 cps/web.py:2181 #: cps/web.py:2114 cps/web.py:2142
msgid "There was an error" msgid "There was an error"
msgstr "Er deed zich een fout voor" msgstr "Er deed zich een fout voor"
#: cps/web.py:2154 cps/web.py:2156 #: cps/web.py:2115 cps/web.py:2117
msgid "create a shelf" msgid "create a shelf"
msgstr "maak een boekenplank" msgstr "maak een boekenplank"
#: cps/web.py:2179 #: cps/web.py:2140
#, python-format #, python-format
msgid "Shelf %(title)s changed" msgid "Shelf %(title)s changed"
msgstr "Boekenplank %(title)s gewijzigd" msgstr "Boekenplank %(title)s gewijzigd"
#: cps/web.py:2182 cps/web.py:2184 #: cps/web.py:2143 cps/web.py:2145
msgid "Edit a shelf" msgid "Edit a shelf"
msgstr "Bewerk een boekenplank" msgstr "Bewerk een boekenplank"
#: cps/web.py:2204 #: cps/web.py:2165
#, python-format #, python-format
msgid "successfully deleted shelf %(name)s" msgid "successfully deleted shelf %(name)s"
msgstr "Succesvol boekenplank %(name)s gewist" msgstr "Succesvol boekenplank %(name)s gewist"
#: cps/web.py:2226 #: cps/web.py:2187
#, python-format #, python-format
msgid "Shelf: '%(name)s'" msgid "Shelf: '%(name)s'"
msgstr "Boekenplank: '%(name)s'" msgstr "Boekenplank: '%(name)s'"
#: cps/web.py:2229 #: cps/web.py:2190
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:2261 #: cps/web.py:2222
#, python-format #, python-format
msgid "Change order of Shelf: '%(name)s'" msgid "Change order of Shelf: '%(name)s'"
msgstr "Verander volgorde van Boekenplank: '%(name)s'" msgstr "Verander volgorde van Boekenplank: '%(name)s'"
#: cps/web.py:2326 #: cps/web.py:2287
msgid "Found an existing account for this email address." msgid "Found an existing account for this email address."
msgstr "Een bestaand gebruiker gevonden voor dit email adres." msgstr "Een bestaand gebruiker gevonden voor dit email adres."
#: cps/web.py:2328 cps/web.py:2332 #: cps/web.py:2289 cps/web.py:2293
#, python-format #, python-format
msgid "%(name)s's profile" msgid "%(name)s's profile"
msgstr "%(name)s's profiel" msgstr "%(name)s's profiel"
#: cps/web.py:2329 #: cps/web.py:2290
msgid "Profile updated" msgid "Profile updated"
msgstr "Profiel aangepast" msgstr "Profiel aangepast"
#: cps/web.py:2343 #: cps/web.py:2304
msgid "Admin page" msgid "Admin page"
msgstr "Administratie pagina" msgstr "Administratie pagina"
#: cps/web.py:2467 #: cps/web.py:2428
msgid "Calibre-web configuration updated" msgid "Calibre-web configuration updated"
msgstr "Calibre-web configuratie aangepast" msgstr "Calibre-web configuratie aangepast"
#: cps/web.py:2474 cps/web.py:2480 cps/web.py:2494 #: cps/web.py:2435 cps/web.py:2441 cps/web.py:2455
msgid "Basic Configuration" msgid "Basic Configuration"
msgstr "Basis configuratie" msgstr "Basis configuratie"
#: cps/web.py:2478 #: cps/web.py:2439
msgid "DB location is not valid, please enter correct path" msgid "DB location is not valid, please enter correct path"
msgstr "DB locatie is niet geldig, gelieve het correcte pad in te geven" msgstr "DB locatie is niet geldig, gelieve het correcte pad in te geven"
#: cps/templates/admin.html:34 cps/web.py:2515 cps/web.py:2568 #: cps/templates/admin.html:34 cps/web.py:2476 cps/web.py:2529
msgid "Add new user" msgid "Add new user"
msgstr "Voeg nieuwe gebruiker toe" msgstr "Voeg nieuwe gebruiker toe"
#: cps/web.py:2560 #: cps/web.py:2521
#, python-format #, python-format
msgid "User '%(user)s' created" msgid "User '%(user)s' created"
msgstr "Gebruiker '%(user)s' aangemaakt" msgstr "Gebruiker '%(user)s' aangemaakt"
#: cps/web.py:2564 #: cps/web.py:2525
msgid "Found an existing account for this email address or nickname." msgid "Found an existing account for this email address or nickname."
msgstr "Een bestaand gebruiker gevonden voor dit email adres of gebruikersnaam." msgstr "Een bestaand gebruiker gevonden voor dit email adres of gebruikersnaam."
#: cps/web.py:2586 #: cps/web.py:2547
msgid "Mail settings updated" msgid "Mail settings updated"
msgstr "Mail instellingen aangepast" msgstr "Mail instellingen aangepast"
#: cps/web.py:2593 #: cps/web.py:2554
#, python-format #, python-format
msgid "Test E-Mail successfully send to %(kindlemail)s" msgid "Test E-Mail successfully send to %(kindlemail)s"
msgstr "Test email met succes verstuurd naar %(kindlemail)s" msgstr "Test email met succes verstuurd naar %(kindlemail)s"
#: cps/web.py:2596 #: cps/web.py:2557
#, 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 "Er trad een fout op met het versturen van de test email: %(res)s" msgstr "Er trad een fout op met het versturen van de test email: %(res)s"
#: cps/web.py:2600 #: cps/web.py:2561
msgid "E-Mail settings updated" msgid "E-Mail settings updated"
msgstr "Email instellingen aangepast" msgstr "Email instellingen aangepast"
#: cps/web.py:2601 #: cps/web.py:2562
msgid "Edit mail settings" msgid "Edit mail settings"
msgstr "Bewerk mail instellingen" msgstr "Bewerk mail instellingen"
#: cps/web.py:2630 #: cps/web.py:2591
#, python-format #, python-format
msgid "User '%(nick)s' deleted" msgid "User '%(nick)s' deleted"
msgstr "Gebruiker '%(nick)s' verwijderd" msgstr "Gebruiker '%(nick)s' verwijderd"
#: cps/web.py:2728 #: cps/web.py:2689
#, python-format #, python-format
msgid "User '%(nick)s' updated" msgid "User '%(nick)s' updated"
msgstr "Gebruiker '%(nick)s' aangepast" msgstr "Gebruiker '%(nick)s' aangepast"
#: cps/web.py:2731 #: cps/web.py:2692
msgid "An unknown error occured." msgid "An unknown error occured."
msgstr "Een onbekende fout deed zich voor." msgstr "Een onbekende fout deed zich voor."
#: cps/web.py:2734 #: cps/web.py:2695
#, python-format #, python-format
msgid "Edit User %(nick)s" msgid "Edit User %(nick)s"
msgstr "Bewerk gebruiker '%(nick)s'" msgstr "Bewerk gebruiker '%(nick)s'"
#: cps/web.py:2756 #: cps/web.py:2711
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:2771 cps/web.py:2954 cps/web.py:3078 #: cps/web.py:2726 cps/web.py:2898 cps/web.py:3041
msgid "edit metadata" msgid "edit metadata"
msgstr "Bewerk metadata" msgstr "Bewerk metadata"
#: cps/web.py:2783 cps/web.py:2787 #: cps/web.py:2738 cps/web.py:2742
msgid "unknown" msgid "unknown"
msgstr "onbekend" msgstr "onbekend"
#: cps/web.py:2972 #: cps/web.py:2935
#, python-format #, python-format
msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgid "File extension \"%s\" is not allowed to be uploaded to this server"
msgstr "Het uploaden van bestandsextensie \"%s\" is niet toegestaan op deze server" msgstr "Het uploaden van bestandsextensie \"%s\" is niet toegestaan op deze server"
#: cps/web.py:2978 #: cps/web.py:2941
msgid "File to be uploaded must have an extension" msgid "File to be uploaded must have an extension"
msgstr "Up te loaden bestanden dienen een extentie te hebben" msgstr "Up te loaden bestanden dienen een extentie te hebben"
#: cps/web.py:2997 #: cps/web.py:2960
#, python-format #, python-format
msgid "Failed to create path %s (Permission denied)." msgid "Failed to create path %s (Permission denied)."
msgstr "Het pad %s aanmaken gefaald (Geen toestemming)." msgstr "Het pad %s aanmaken gefaald (Geen toestemming)."
#: cps/web.py:3002 #: cps/web.py:2965
#, python-format #, python-format
msgid "Failed to store file %s (Permission denied)." msgid "Failed to store file %s (Permission denied)."
msgstr "Bestand %s opslaan gefaald (Geen toestemming)." msgstr "Bestand %s opslaan gefaald (Geen toestemming)."
#: cps/web.py:3007 #: cps/web.py:2970
#, python-format #, python-format
msgid "Failed to delete file %s (Permission denied)." msgid "Failed to delete file %s (Permission denied)."
msgstr "Bestand %s wissen gefaald (Geen toestemming)." msgstr "Bestand %s wissen gefaald (Geen toestemming)."
@ -616,6 +616,18 @@ msgstr "Wil je Calibre-web echt stoppen?"
msgid "Updating, please do not reload page" msgid "Updating, please do not reload page"
msgstr "Aan het updaten, gelieve de pagina niet te herladen" msgstr "Aan het updaten, gelieve de pagina niet te herladen"
#: cps/templates/author.html:15
msgid "via"
msgstr ""
#: cps/templates/author.html:23
msgid "In Library"
msgstr ""
#: cps/templates/author.html:69
msgid "More by"
msgstr ""
#: cps/templates/book_edit.html:16 #: cps/templates/book_edit.html:16
msgid "Delete Book" msgid "Delete Book"
msgstr "Wis boek" msgstr "Wis boek"
@ -624,12 +636,13 @@ msgstr "Wis boek"
msgid "Book Title" msgid "Book Title"
msgstr "Boek titel" msgstr "Boek titel"
#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:188 #: cps/templates/book_edit.html:26 cps/templates/book_edit.html:208
#: cps/templates/search_form.html:10 #: cps/templates/book_edit.html:226 cps/templates/search_form.html:10
msgid "Author" msgid "Author"
msgstr "Auteur" msgstr "Auteur"
#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:190 #: cps/templates/book_edit.html:30 cps/templates/book_edit.html:213
#: cps/templates/book_edit.html:228
msgid "Description" msgid "Description"
msgstr "Omschrijving" msgstr "Omschrijving"
@ -712,35 +725,35 @@ msgstr "Zoek voor zoekwoord"
msgid "Go!" msgid "Go!"
msgstr "Start!" msgstr "Start!"
#: cps/templates/book_edit.html:168 #: cps/templates/book_edit.html:171
msgid "Click the cover to load metadata to the form" msgid "Click the cover to load metadata to the form"
msgstr "Klik op de omslag om de metatadata in het formulier te laden" msgstr "Klik op de omslag om de metatadata in het formulier te laden"
#: cps/templates/book_edit.html:172 cps/templates/book_edit.html:185 #: cps/templates/book_edit.html:183 cps/templates/book_edit.html:223
msgid "Loading..." msgid "Loading..."
msgstr "Aan het laden..." msgstr "Aan het laden..."
#: cps/templates/book_edit.html:175 cps/templates/layout.html:199 #: cps/templates/book_edit.html:188 cps/templates/layout.html:199
msgid "Close" msgid "Close"
msgstr "Sluit" msgstr "Sluit"
#: cps/templates/book_edit.html:186 #: cps/templates/book_edit.html:210 cps/templates/book_edit.html:227
msgid "Search error!" #: cps/templates/detail.html:125 cps/templates/search_form.html:14
msgstr "Zoek fout!"
#: cps/templates/book_edit.html:187
msgid "No Result! Please try anonther keyword."
msgstr "Geen resultaat! Gelieve een ander zoekwoord proberen"
#: cps/templates/book_edit.html:189 cps/templates/detail.html:125
#: cps/templates/search_form.html:14
msgid "Publisher" msgid "Publisher"
msgstr "Uitgever" msgstr "Uitgever"
#: cps/templates/book_edit.html:191 #: cps/templates/book_edit.html:215 cps/templates/book_edit.html:229
msgid "Source" msgid "Source"
msgstr "Bron" msgstr "Bron"
#: cps/templates/book_edit.html:224
msgid "Search error!"
msgstr "Zoek fout!"
#: cps/templates/book_edit.html:225
msgid "No Result! Please try anonther keyword."
msgstr "Geen resultaat! Gelieve een ander zoekwoord proberen"
#: cps/templates/config_edit.html:7 #: cps/templates/config_edit.html:7
msgid "Location of Calibre database" msgid "Location of Calibre database"
msgstr "Locatie van de Calibre database" msgstr "Locatie van de Calibre database"
@ -933,6 +946,11 @@ msgstr "Bewaar instellingen en stuur test email"
msgid "Next" msgid "Next"
msgstr "Volgende" msgstr "Volgende"
#: cps/templates/feed.xml:29 cps/templates/index.xml:7
#: cps/templates/layout.html:40 cps/templates/layout.html:41
msgid "Search"
msgstr "Zoek"
#: cps/templates/index.html:5 #: cps/templates/index.html:5
msgid "Discover (Random Books)" msgid "Discover (Random Books)"
msgstr "Ontdek (Willekeurige Boeken)" msgstr "Ontdek (Willekeurige Boeken)"
@ -941,52 +959,47 @@ msgstr "Ontdek (Willekeurige Boeken)"
msgid "Start" msgid "Start"
msgstr "Start" msgstr "Start"
#: cps/templates/index.xml:7 cps/templates/layout.html:40 #: cps/templates/index.xml:14 cps/templates/layout.html:121
#: cps/templates/layout.html:41
msgid "Search"
msgstr "Zoek"
#: cps/templates/index.xml:15 cps/templates/layout.html:121
msgid "Hot Books" msgid "Hot Books"
msgstr "Populaire Boeken" msgstr "Populaire Boeken"
#: cps/templates/index.xml:19 #: cps/templates/index.xml:18
msgid "Popular publications from this catalog based on Downloads." msgid "Popular publications from this catalog based on Downloads."
msgstr "Populaire publicaties van deze cataloog gebaseerd op Downloads." msgstr "Populaire publicaties van deze cataloog gebaseerd op Downloads."
#: cps/templates/index.xml:22 cps/templates/layout.html:124 #: cps/templates/index.xml:21 cps/templates/layout.html:124
msgid "Best rated Books" msgid "Best rated Books"
msgstr "Best beoordeeld" msgstr "Best beoordeeld"
#: cps/templates/index.xml:26 #: cps/templates/index.xml:25
msgid "Popular publications from this catalog based on Rating." msgid "Popular publications from this catalog based on Rating."
msgstr "Populaire publicaties van deze cataloog gebaseerd op Beoordeling." msgstr "Populaire publicaties van deze cataloog gebaseerd op Beoordeling."
#: cps/templates/index.xml:29 #: cps/templates/index.xml:28
msgid "New Books" msgid "New Books"
msgstr "Nieuwe Boeken" msgstr "Nieuwe Boeken"
#: cps/templates/index.xml:33 #: cps/templates/index.xml:32
msgid "The latest Books" msgid "The latest Books"
msgstr "Recentste boeken" msgstr "Recentste boeken"
#: cps/templates/index.xml:40 #: cps/templates/index.xml:39
msgid "Show Random Books" msgid "Show Random Books"
msgstr "Toon Willekeurige Boeken" msgstr "Toon Willekeurige Boeken"
#: cps/templates/index.xml:57 cps/templates/layout.html:139 #: cps/templates/index.xml:56 cps/templates/layout.html:139
msgid "Authors" msgid "Authors"
msgstr "Auteurs" msgstr "Auteurs"
#: cps/templates/index.xml:61 #: cps/templates/index.xml:60
msgid "Books ordered by Author" msgid "Books ordered by Author"
msgstr "Boeken gesorteerd op Auteur" msgstr "Boeken gesorteerd op Auteur"
#: cps/templates/index.xml:68 #: cps/templates/index.xml:67
msgid "Books ordered by category" msgid "Books ordered by category"
msgstr "Boeken gesorteerd op Categorie" msgstr "Boeken gesorteerd op Categorie"
#: cps/templates/index.xml:75 #: cps/templates/index.xml:74
msgid "Books ordered by series" msgid "Books ordered by series"
msgstr "Boeken gesorteerd op Serie" msgstr "Boeken gesorteerd op Serie"
@ -1146,7 +1159,7 @@ msgid "No Results for:"
msgstr "Geen resultaat voor:" msgstr "Geen resultaat voor:"
#: cps/templates/search.html:7 #: cps/templates/search.html:7
msgid "Please try a diffrent Search" msgid "Please try a different search"
msgstr "Gelieve een ander zoekwoord proberen" msgstr "Gelieve een ander zoekwoord proberen"
#: cps/templates/search.html:9 #: cps/templates/search.html:9

@ -12,7 +12,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Calibre Web - polski (POT: 2017-04-11 22:51)\n" "Project-Id-Version: Calibre Web - polski (POT: 2017-04-11 22:51)\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2017-08-12 18:55+0200\n" "POT-Creation-Date: 2017-09-01 20:37+0200\n"
"PO-Revision-Date: 2017-04-11 22:51+0200\n" "PO-Revision-Date: 2017-04-11 22:51+0200\n"
"Last-Translator: Radosław Kierznowski <radek.kierznowski@outlook.com>\n" "Last-Translator: Radosław Kierznowski <radek.kierznowski@outlook.com>\n"
"Language: pl\n" "Language: pl\n"
@ -24,7 +24,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.4.0\n" "Generated-By: Babel 2.4.0\n"
#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1374 #: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1341
msgid "not installed" msgid "not installed"
msgstr "nie zainstalowane" msgstr "nie zainstalowane"
@ -70,373 +70,373 @@ msgstr ""
"Nie można znaleźć żadnych formatów przystosowane do wysyłania pocztą " "Nie można znaleźć żadnych formatów przystosowane do wysyłania pocztą "
"e-mail" "e-mail"
#: cps/ub.py:542 #: cps/ub.py:543
msgid "Guest" msgid "Guest"
msgstr "Gość" msgstr "Gość"
#: cps/web.py:974 #: cps/web.py:953
msgid "Requesting update package" msgid "Requesting update package"
msgstr "Żądanie o pakiet aktualizacji" msgstr "Żądanie o pakiet aktualizacji"
#: cps/web.py:975 #: cps/web.py:954
msgid "Downloading update package" msgid "Downloading update package"
msgstr "Pobieranie pakietu aktualizacji" msgstr "Pobieranie pakietu aktualizacji"
#: cps/web.py:976 #: cps/web.py:955
msgid "Unzipping update package" msgid "Unzipping update package"
msgstr "Rozpakowywanie pakietu aktualizacji" msgstr "Rozpakowywanie pakietu aktualizacji"
#: cps/web.py:977 #: cps/web.py:956
msgid "Files are replaced" msgid "Files are replaced"
msgstr "Pliki zostały zastąpione" msgstr "Pliki zostały zastąpione"
#: cps/web.py:978 #: cps/web.py:957
msgid "Database connections are closed" msgid "Database connections are closed"
msgstr "Połączenia z bazą danych zostały zakończone" msgstr "Połączenia z bazą danych zostały zakończone"
#: cps/web.py:979 #: cps/web.py:958
msgid "Server is stopped" msgid "Server is stopped"
msgstr "Serwer jest zatrzymany" msgstr "Serwer jest zatrzymany"
#: cps/web.py:980 #: cps/web.py:959
msgid "Update finished, please press okay and reload page" msgid "Update finished, please press okay and reload page"
msgstr "Aktualizacja zakończona, proszę nacisnąć OK i odświeżyć stronę" msgstr "Aktualizacja zakończona, proszę nacisnąć OK i odświeżyć stronę"
#: cps/web.py:1054 #: cps/web.py:1033
msgid "Recently Added Books" msgid "Recently Added Books"
msgstr "" msgstr ""
#: cps/web.py:1063 #: cps/web.py:1042
msgid "Newest Books" msgid "Newest Books"
msgstr "" msgstr ""
#: cps/web.py:1072 #: cps/web.py:1051
msgid "Oldest Books" msgid "Oldest Books"
msgstr "" msgstr ""
#: cps/web.py:1081 #: cps/web.py:1060
msgid "Books (A-Z)" msgid "Books (A-Z)"
msgstr "" msgstr ""
#: cps/web.py:1090 #: cps/web.py:1069
msgid "Books (Z-A)" msgid "Books (Z-A)"
msgstr "" msgstr ""
#: cps/web.py:1126 #: cps/web.py:1099
msgid "Hot Books (most downloaded)" msgid "Hot Books (most downloaded)"
msgstr "Najpopularniejsze książki (najczęściej pobierane)" msgstr "Najpopularniejsze książki (najczęściej pobierane)"
#: cps/web.py:1136 #: cps/web.py:1109
msgid "Best rated books" msgid "Best rated books"
msgstr "Najlepiej oceniane książki" msgstr "Najlepiej oceniane książki"
#: cps/templates/index.xml:36 cps/web.py:1145 #: cps/templates/index.xml:35 cps/web.py:1118
msgid "Random Books" msgid "Random Books"
msgstr "Losowe książki" msgstr "Losowe książki"
#: cps/web.py:1161 #: cps/web.py:1127
msgid "Author list" msgid "Author list"
msgstr "Lista autorów" msgstr "Lista autorów"
#: cps/web.py:1181 cps/web.py:1212 cps/web.py:1351 cps/web.py:1835 #: cps/web.py:1137 cps/web.py:1193 cps/web.py:1318 cps/web.py:1796
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 "Błąd otwierania e-booka. Plik nie istnieje lub plik nie jest dostępny:" msgstr "Błąd otwierania e-booka. Plik nie istnieje lub plik nie jest dostępny:"
#: cps/templates/index.xml:71 cps/web.py:1198 #: cps/templates/index.xml:70 cps/web.py:1179
msgid "Series list" msgid "Series list"
msgstr "Lista serii" msgstr "Lista serii"
#: cps/web.py:1210 #: cps/web.py:1191
#, python-format #, python-format
msgid "Series: %(serie)s" msgid "Series: %(serie)s"
msgstr "Seria: %(serie)s" msgstr "Seria: %(serie)s"
#: cps/web.py:1243 #: cps/web.py:1224
msgid "Available languages" msgid "Available languages"
msgstr "Dostępne języki" msgstr "Dostępne języki"
#: cps/web.py:1258 #: cps/web.py:1239
#, python-format #, python-format
msgid "Language: %(name)s" msgid "Language: %(name)s"
msgstr "Język: %(name)s" msgstr "Język: %(name)s"
#: cps/templates/index.xml:64 cps/web.py:1274 #: cps/templates/index.xml:63 cps/web.py:1248
msgid "Category list" msgid "Category list"
msgstr "Lista kategorii" msgstr "Lista kategorii"
#: cps/web.py:1286 #: cps/web.py:1260
#, python-format #, python-format
msgid "Category: %(name)s" msgid "Category: %(name)s"
msgstr "Kategoria: %(name)s" msgstr "Kategoria: %(name)s"
#: cps/web.py:1385 #: cps/web.py:1352
msgid "Excecution permissions missing" msgid "Excecution permissions missing"
msgstr "" msgstr ""
#: cps/web.py:1399 #: cps/web.py:1366
msgid "Statistics" msgid "Statistics"
msgstr "Statystyki" msgstr "Statystyki"
#: cps/web.py:1563 #: cps/web.py:1530
msgid "Server restarted, please reload page" msgid "Server restarted, please reload page"
msgstr "Serwer uruchomiony ponownie, proszę odświeżyć stronę" msgstr "Serwer uruchomiony ponownie, proszę odświeżyć stronę"
#: cps/web.py:1565 #: cps/web.py:1532
msgid "Performing shutdown of server, please close window" msgid "Performing shutdown of server, please close window"
msgstr "Wykonano wyłączenie serwera, proszę zamknąć okno" msgstr "Wykonano wyłączenie serwera, proszę zamknąć okno"
#: cps/web.py:1581 #: cps/web.py:1548
msgid "Update done" msgid "Update done"
msgstr "Aktualizacja zakończona" msgstr "Aktualizacja zakończona"
#: cps/web.py:1662 cps/web.py:1675 #: cps/web.py:1623 cps/web.py:1636
msgid "search" msgid "search"
msgstr "szukaj" msgstr "szukaj"
#: cps/templates/index.xml:43 cps/templates/index.xml:47 #: cps/templates/index.xml:42 cps/templates/index.xml:46
#: cps/templates/layout.html:127 cps/web.py:1751 #: cps/templates/layout.html:127 cps/web.py:1712
msgid "Read Books" msgid "Read Books"
msgstr "Przeczytane książki" msgstr "Przeczytane książki"
#: cps/templates/index.xml:50 cps/templates/index.xml:54 #: cps/templates/index.xml:49 cps/templates/index.xml:53
#: cps/templates/layout.html:128 cps/web.py:1754 #: cps/templates/layout.html:128 cps/web.py:1715
msgid "Unread Books" msgid "Unread Books"
msgstr "Nieprzeczytane książki" msgstr "Nieprzeczytane książki"
#: cps/web.py:1821 cps/web.py:1823 cps/web.py:1825 cps/web.py:1832 #: cps/web.py:1782 cps/web.py:1784 cps/web.py:1786 cps/web.py:1793
msgid "Read a Book" msgid "Read a Book"
msgstr "Czytaj książkę" msgstr "Czytaj książkę"
#: cps/web.py:1888 cps/web.py:2513 #: cps/web.py:1849 cps/web.py:2474
msgid "Please fill out all fields!" msgid "Please fill out all fields!"
msgstr "Proszę wypełnić wszystkie pola!" msgstr "Proszę wypełnić wszystkie pola!"
#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 #: cps/web.py:1850 cps/web.py:1866 cps/web.py:1871 cps/web.py:1873
msgid "register" msgid "register"
msgstr "rejestracja" msgstr "rejestracja"
#: cps/web.py:1904 #: cps/web.py:1865
msgid "An unknown error occured. Please try again later." msgid "An unknown error occured. Please try again later."
msgstr "Wystąpił nieznany błąd. Spróbuj ponownie później." msgstr "Wystąpił nieznany błąd. Spróbuj ponownie później."
#: cps/web.py:1909 #: cps/web.py:1870
msgid "This username or email address is already in use." msgid "This username or email address is already in use."
msgstr "Nazwa użytkownika lub adres e-mail jest już w użyciu." msgstr "Nazwa użytkownika lub adres e-mail jest już w użyciu."
#: cps/web.py:1928 cps/web.py:2024 #: cps/web.py:1889 cps/web.py:1985
#, python-format #, python-format
msgid "you are now logged in as: '%(nickname)s'" msgid "you are now logged in as: '%(nickname)s'"
msgstr "Zalogowałeś się jako: '%(nickname)s'" msgstr "Zalogowałeś się jako: '%(nickname)s'"
#: cps/web.py:1933 #: cps/web.py:1894
msgid "Wrong Username or Password" msgid "Wrong Username or Password"
msgstr "Błędna nazwa użytkownika lub hasło" msgstr "Błędna nazwa użytkownika lub hasło"
#: cps/web.py:1939 cps/web.py:1960 #: cps/web.py:1900 cps/web.py:1921
msgid "login" msgid "login"
msgstr "logowanie" msgstr "logowanie"
#: cps/web.py:1972 cps/web.py:2003 #: cps/web.py:1933 cps/web.py:1964
msgid "Token not found" msgid "Token not found"
msgstr "" msgstr ""
#: cps/web.py:1980 cps/web.py:2011 #: cps/web.py:1941 cps/web.py:1972
msgid "Token has expired" msgid "Token has expired"
msgstr "" msgstr ""
#: cps/web.py:1988 #: cps/web.py:1949
msgid "Success! Please return to your device" msgid "Success! Please return to your device"
msgstr "" msgstr ""
#: cps/web.py:2038 #: cps/web.py:1999
msgid "Please configure the SMTP mail settings first..." msgid "Please configure the SMTP mail settings first..."
msgstr "Proszę najpierw skonfigurować ustawienia SMTP poczty e-mail..." msgstr "Proszę najpierw skonfigurować ustawienia SMTP poczty e-mail..."
#: cps/web.py:2042 #: cps/web.py:2003
#, python-format #, python-format
msgid "Book successfully send to %(kindlemail)s" msgid "Book successfully send to %(kindlemail)s"
msgstr "Książka została pomyślnie wysłana do %(kindlemail)s" msgstr "Książka została pomyślnie wysłana do %(kindlemail)s"
#: cps/web.py:2046 #: cps/web.py:2007
#, 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 "Wystąpił błąd podczas wysyłania tej książki: %(res)s" msgstr "Wystąpił błąd podczas wysyłania tej książki: %(res)s"
#: cps/web.py:2048 cps/web.py:2598 #: cps/web.py:2009 cps/web.py:2559
msgid "Please configure your kindle email address first..." msgid "Please configure your kindle email address first..."
msgstr "Proszę najpierw skonfigurować adres e-mail swojego kindla..." msgstr "Proszę najpierw skonfigurować adres e-mail swojego kindla..."
#: cps/web.py:2092 #: cps/web.py:2053
#, python-format #, python-format
msgid "Book has been added to shelf: %(sname)s" msgid "Book has been added to shelf: %(sname)s"
msgstr "Książka została dodana do półki: %(sname)s" msgstr "Książka została dodana do półki: %(sname)s"
#: cps/web.py:2127 #: cps/web.py:2088
#, python-format #, python-format
msgid "Book has been removed from shelf: %(sname)s" msgid "Book has been removed from shelf: %(sname)s"
msgstr "Książka została usunięta z półki: %(sname)s" msgstr "Książka została usunięta z półki: %(sname)s"
#: cps/web.py:2146 cps/web.py:2170 #: cps/web.py:2107 cps/web.py:2131
#, 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 "Półka o nazwie '%(title)s' już istnieje." msgstr "Półka o nazwie '%(title)s' już istnieje."
#: cps/web.py:2151 #: cps/web.py:2112
#, python-format #, python-format
msgid "Shelf %(title)s created" msgid "Shelf %(title)s created"
msgstr "Półka %(title)s została utworzona" msgstr "Półka %(title)s została utworzona"
#: cps/web.py:2153 cps/web.py:2181 #: cps/web.py:2114 cps/web.py:2142
msgid "There was an error" msgid "There was an error"
msgstr "Wystąpił błąd" msgstr "Wystąpił błąd"
#: cps/web.py:2154 cps/web.py:2156 #: cps/web.py:2115 cps/web.py:2117
msgid "create a shelf" msgid "create a shelf"
msgstr "utwórz półkę" msgstr "utwórz półkę"
#: cps/web.py:2179 #: cps/web.py:2140
#, python-format #, python-format
msgid "Shelf %(title)s changed" msgid "Shelf %(title)s changed"
msgstr "Półka %(title)s została zmieniona" msgstr "Półka %(title)s została zmieniona"
#: cps/web.py:2182 cps/web.py:2184 #: cps/web.py:2143 cps/web.py:2145
msgid "Edit a shelf" msgid "Edit a shelf"
msgstr "Edytuj półkę" msgstr "Edytuj półkę"
#: cps/web.py:2204 #: cps/web.py:2165
#, python-format #, python-format
msgid "successfully deleted shelf %(name)s" msgid "successfully deleted shelf %(name)s"
msgstr "pomyślnie usunięto półkę %(name)s" msgstr "pomyślnie usunięto półkę %(name)s"
#: cps/web.py:2226 #: cps/web.py:2187
#, python-format #, python-format
msgid "Shelf: '%(name)s'" msgid "Shelf: '%(name)s'"
msgstr "Półka: '%(name)s'" msgstr "Półka: '%(name)s'"
#: cps/web.py:2229 #: cps/web.py:2190
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:2261 #: cps/web.py:2222
#, python-format #, python-format
msgid "Change order of Shelf: '%(name)s'" msgid "Change order of Shelf: '%(name)s'"
msgstr "Zmieniono kolejność półki: '%(name)s'" msgstr "Zmieniono kolejność półki: '%(name)s'"
#: cps/web.py:2326 #: cps/web.py:2287
msgid "Found an existing account for this email address." msgid "Found an existing account for this email address."
msgstr "Znaleziono istniejące konto dla tego adresu e-mail." msgstr "Znaleziono istniejące konto dla tego adresu e-mail."
#: cps/web.py:2328 cps/web.py:2332 #: cps/web.py:2289 cps/web.py:2293
#, python-format #, python-format
msgid "%(name)s's profile" msgid "%(name)s's profile"
msgstr "Profil użytkownika %(name)s" msgstr "Profil użytkownika %(name)s"
#: cps/web.py:2329 #: cps/web.py:2290
msgid "Profile updated" msgid "Profile updated"
msgstr "Zaktualizowano profil" msgstr "Zaktualizowano profil"
#: cps/web.py:2343 #: cps/web.py:2304
msgid "Admin page" msgid "Admin page"
msgstr "Portal administracyjny" msgstr "Portal administracyjny"
#: cps/web.py:2467 #: cps/web.py:2428
msgid "Calibre-web configuration updated" msgid "Calibre-web configuration updated"
msgstr "Konfiguracja Calibre-web została zaktualizowana" msgstr "Konfiguracja Calibre-web została zaktualizowana"
#: cps/web.py:2474 cps/web.py:2480 cps/web.py:2494 #: cps/web.py:2435 cps/web.py:2441 cps/web.py:2455
msgid "Basic Configuration" msgid "Basic Configuration"
msgstr "Podstawowa konfiguracja" msgstr "Podstawowa konfiguracja"
#: cps/web.py:2478 #: cps/web.py:2439
msgid "DB location is not valid, please enter correct path" msgid "DB location is not valid, please enter correct path"
msgstr "Lokalizacja bazy danych jest nieprawidłowa, wpisz poprawną ścieżkę" msgstr "Lokalizacja bazy danych jest nieprawidłowa, wpisz poprawną ścieżkę"
#: cps/templates/admin.html:34 cps/web.py:2515 cps/web.py:2568 #: cps/templates/admin.html:34 cps/web.py:2476 cps/web.py:2529
msgid "Add new user" msgid "Add new user"
msgstr "Dodaj nowego użytkownika" msgstr "Dodaj nowego użytkownika"
#: cps/web.py:2560 #: cps/web.py:2521
#, python-format #, python-format
msgid "User '%(user)s' created" msgid "User '%(user)s' created"
msgstr "Użytkownik '%(user)s' został utworzony" msgstr "Użytkownik '%(user)s' został utworzony"
#: cps/web.py:2564 #: cps/web.py:2525
msgid "Found an existing account for this email address or nickname." msgid "Found an existing account for this email address or nickname."
msgstr "Znaleziono istniejące konto dla tego adresu e-mail lub nazwy użytkownika." msgstr "Znaleziono istniejące konto dla tego adresu e-mail lub nazwy użytkownika."
#: cps/web.py:2586 #: cps/web.py:2547
msgid "Mail settings updated" msgid "Mail settings updated"
msgstr "Zaktualizowano ustawienia poczty e-mail" msgstr "Zaktualizowano ustawienia poczty e-mail"
#: cps/web.py:2593 #: cps/web.py:2554
#, python-format #, python-format
msgid "Test E-Mail successfully send to %(kindlemail)s" msgid "Test E-Mail successfully send to %(kindlemail)s"
msgstr "Testowy e-mail został pomyślnie wysłany do %(kindlemail)s" msgstr "Testowy e-mail został pomyślnie wysłany do %(kindlemail)s"
#: cps/web.py:2596 #: cps/web.py:2557
#, 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 "Wystąpił błąd podczas wysyłania testowej wiadomości e-mail: %(res)s" msgstr "Wystąpił błąd podczas wysyłania testowej wiadomości e-mail: %(res)s"
#: cps/web.py:2600 #: cps/web.py:2561
msgid "E-Mail settings updated" msgid "E-Mail settings updated"
msgstr "Zaktualizowano ustawienia e-mail" msgstr "Zaktualizowano ustawienia e-mail"
#: cps/web.py:2601 #: cps/web.py:2562
msgid "Edit mail settings" msgid "Edit mail settings"
msgstr "Edytuj ustawienia poczty e-mail" msgstr "Edytuj ustawienia poczty e-mail"
#: cps/web.py:2630 #: cps/web.py:2591
#, python-format #, python-format
msgid "User '%(nick)s' deleted" msgid "User '%(nick)s' deleted"
msgstr "Użytkownik '%(nick)s' został usunięty" msgstr "Użytkownik '%(nick)s' został usunięty"
#: cps/web.py:2728 #: cps/web.py:2689
#, python-format #, python-format
msgid "User '%(nick)s' updated" msgid "User '%(nick)s' updated"
msgstr "Użytkownik '%(nick)s' został zaktualizowany" msgstr "Użytkownik '%(nick)s' został zaktualizowany"
#: cps/web.py:2731 #: cps/web.py:2692
msgid "An unknown error occured." msgid "An unknown error occured."
msgstr "Wystąpił nieznany błąd." msgstr "Wystąpił nieznany błąd."
#: cps/web.py:2734 #: cps/web.py:2695
#, python-format #, python-format
msgid "Edit User %(nick)s" msgid "Edit User %(nick)s"
msgstr "Edytuj użytkownika %(nick)s" msgstr "Edytuj użytkownika %(nick)s"
#: cps/web.py:2756 #: cps/web.py:2711
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:2771 cps/web.py:2954 cps/web.py:3078 #: cps/web.py:2726 cps/web.py:2898 cps/web.py:3041
msgid "edit metadata" msgid "edit metadata"
msgstr "edytuj metadane" msgstr "edytuj metadane"
#: cps/web.py:2783 cps/web.py:2787 #: cps/web.py:2738 cps/web.py:2742
msgid "unknown" msgid "unknown"
msgstr "" msgstr ""
#: cps/web.py:2972 #: cps/web.py:2935
#, python-format #, python-format
msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgid "File extension \"%s\" is not allowed to be uploaded to this server"
msgstr "Rozszerzenie pliku \"%s\" nie jest dozwolone do przesłania na ten serwer" msgstr "Rozszerzenie pliku \"%s\" nie jest dozwolone do przesłania na ten serwer"
#: cps/web.py:2978 #: cps/web.py:2941
msgid "File to be uploaded must have an extension" msgid "File to be uploaded must have an extension"
msgstr "Plik do przesłania musi mieć rozszerzenie" msgstr "Plik do przesłania musi mieć rozszerzenie"
#: cps/web.py:2997 #: cps/web.py:2960
#, python-format #, python-format
msgid "Failed to create path %s (Permission denied)." msgid "Failed to create path %s (Permission denied)."
msgstr "Nie udało się utworzyć łącza %s (Odmowa dostępu)." msgstr "Nie udało się utworzyć łącza %s (Odmowa dostępu)."
#: cps/web.py:3002 #: cps/web.py:2965
#, python-format #, python-format
msgid "Failed to store file %s (Permission denied)." msgid "Failed to store file %s (Permission denied)."
msgstr "Nie można przechowywać pliku %s (Odmowa dostępu)." msgstr "Nie można przechowywać pliku %s (Odmowa dostępu)."
#: cps/web.py:3007 #: cps/web.py:2970
#, python-format #, python-format
msgid "Failed to delete file %s (Permission denied)." msgid "Failed to delete file %s (Permission denied)."
msgstr "Nie udało się usunąć pliku %s (Odmowa dostępu)." msgstr "Nie udało się usunąć pliku %s (Odmowa dostępu)."
@ -607,6 +607,18 @@ msgstr "Na pewno chcesz zatrzymać Calibre Web?"
msgid "Updating, please do not reload page" msgid "Updating, please do not reload page"
msgstr "Aktualizowanie, proszę nie odświeżać strony" msgstr "Aktualizowanie, proszę nie odświeżać strony"
#: cps/templates/author.html:15
msgid "via"
msgstr ""
#: cps/templates/author.html:23
msgid "In Library"
msgstr ""
#: cps/templates/author.html:69
msgid "More by"
msgstr ""
#: cps/templates/book_edit.html:16 #: cps/templates/book_edit.html:16
msgid "Delete Book" msgid "Delete Book"
msgstr "" msgstr ""
@ -615,12 +627,13 @@ msgstr ""
msgid "Book Title" msgid "Book Title"
msgstr "Tytuł książki" msgstr "Tytuł książki"
#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:188 #: cps/templates/book_edit.html:26 cps/templates/book_edit.html:208
#: cps/templates/search_form.html:10 #: cps/templates/book_edit.html:226 cps/templates/search_form.html:10
msgid "Author" msgid "Author"
msgstr "Autor" msgstr "Autor"
#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:190 #: cps/templates/book_edit.html:30 cps/templates/book_edit.html:213
#: cps/templates/book_edit.html:228
msgid "Description" msgid "Description"
msgstr "Opis" msgstr "Opis"
@ -703,35 +716,35 @@ msgstr " Szukaj słowa kluczowego "
msgid "Go!" msgid "Go!"
msgstr "Idź!" msgstr "Idź!"
#: cps/templates/book_edit.html:168 #: cps/templates/book_edit.html:171
msgid "Click the cover to load metadata to the form" msgid "Click the cover to load metadata to the form"
msgstr "Kliknij okładkę, aby załadować metadane do formularza" msgstr "Kliknij okładkę, aby załadować metadane do formularza"
#: cps/templates/book_edit.html:172 cps/templates/book_edit.html:185 #: cps/templates/book_edit.html:183 cps/templates/book_edit.html:223
msgid "Loading..." msgid "Loading..."
msgstr "Ładowanie..." msgstr "Ładowanie..."
#: cps/templates/book_edit.html:175 cps/templates/layout.html:199 #: cps/templates/book_edit.html:188 cps/templates/layout.html:199
msgid "Close" msgid "Close"
msgstr "Zamknij" msgstr "Zamknij"
#: cps/templates/book_edit.html:186 #: cps/templates/book_edit.html:210 cps/templates/book_edit.html:227
msgid "Search error!" #: cps/templates/detail.html:125 cps/templates/search_form.html:14
msgstr "Błąd wyszukiwania!"
#: cps/templates/book_edit.html:187
msgid "No Result! Please try anonther keyword."
msgstr "Brak wyników! Spróbuj innego słowa kluczowego."
#: cps/templates/book_edit.html:189 cps/templates/detail.html:125
#: cps/templates/search_form.html:14
msgid "Publisher" msgid "Publisher"
msgstr "Wydawca" msgstr "Wydawca"
#: cps/templates/book_edit.html:191 #: cps/templates/book_edit.html:215 cps/templates/book_edit.html:229
msgid "Source" msgid "Source"
msgstr "Źródło" msgstr "Źródło"
#: cps/templates/book_edit.html:224
msgid "Search error!"
msgstr "Błąd wyszukiwania!"
#: cps/templates/book_edit.html:225
msgid "No Result! Please try anonther keyword."
msgstr "Brak wyników! Spróbuj innego słowa kluczowego."
#: cps/templates/config_edit.html:7 #: cps/templates/config_edit.html:7
msgid "Location of Calibre database" msgid "Location of Calibre database"
msgstr "Lokalizacja bazy danych Calibre" msgstr "Lokalizacja bazy danych Calibre"
@ -925,6 +938,11 @@ msgstr "Zapisz ustawienia i wyślij testową wiadomość e-mail"
msgid "Next" msgid "Next"
msgstr "Następne" msgstr "Następne"
#: cps/templates/feed.xml:29 cps/templates/index.xml:7
#: cps/templates/layout.html:40 cps/templates/layout.html:41
msgid "Search"
msgstr "Szukaj"
#: cps/templates/index.html:5 #: cps/templates/index.html:5
msgid "Discover (Random Books)" msgid "Discover (Random Books)"
msgstr "Odkrywaj (losowe książki)" msgstr "Odkrywaj (losowe książki)"
@ -933,52 +951,47 @@ msgstr "Odkrywaj (losowe książki)"
msgid "Start" msgid "Start"
msgstr "Rozpocznij" msgstr "Rozpocznij"
#: cps/templates/index.xml:7 cps/templates/layout.html:40 #: cps/templates/index.xml:14 cps/templates/layout.html:121
#: cps/templates/layout.html:41
msgid "Search"
msgstr "Szukaj"
#: cps/templates/index.xml:15 cps/templates/layout.html:121
msgid "Hot Books" msgid "Hot Books"
msgstr "Najpopularniejsze książki" msgstr "Najpopularniejsze książki"
#: cps/templates/index.xml:19 #: cps/templates/index.xml:18
msgid "Popular publications from this catalog based on Downloads." msgid "Popular publications from this catalog based on Downloads."
msgstr "Popularne publikacje z tego katalogu bazujące na pobranych." msgstr "Popularne publikacje z tego katalogu bazujące na pobranych."
#: cps/templates/index.xml:22 cps/templates/layout.html:124 #: cps/templates/index.xml:21 cps/templates/layout.html:124
msgid "Best rated Books" msgid "Best rated Books"
msgstr "Najlepiej ocenione książki" msgstr "Najlepiej ocenione książki"
#: cps/templates/index.xml:26 #: cps/templates/index.xml:25
msgid "Popular publications from this catalog based on Rating." msgid "Popular publications from this catalog based on Rating."
msgstr "Popularne publikacje z tego katalogu bazujące na ocenach." msgstr "Popularne publikacje z tego katalogu bazujące na ocenach."
#: cps/templates/index.xml:29 #: cps/templates/index.xml:28
msgid "New Books" msgid "New Books"
msgstr "Nowe książki" msgstr "Nowe książki"
#: cps/templates/index.xml:33 #: cps/templates/index.xml:32
msgid "The latest Books" msgid "The latest Books"
msgstr "Ostatnie książki" msgstr "Ostatnie książki"
#: cps/templates/index.xml:40 #: cps/templates/index.xml:39
msgid "Show Random Books" msgid "Show Random Books"
msgstr "Pokazuj losowe książki" msgstr "Pokazuj losowe książki"
#: cps/templates/index.xml:57 cps/templates/layout.html:139 #: cps/templates/index.xml:56 cps/templates/layout.html:139
msgid "Authors" msgid "Authors"
msgstr "Autorzy" msgstr "Autorzy"
#: cps/templates/index.xml:61 #: cps/templates/index.xml:60
msgid "Books ordered by Author" msgid "Books ordered by Author"
msgstr "Książki sortowane według autorów" msgstr "Książki sortowane według autorów"
#: cps/templates/index.xml:68 #: cps/templates/index.xml:67
msgid "Books ordered by category" msgid "Books ordered by category"
msgstr "Książki sortowane według kategorii" msgstr "Książki sortowane według kategorii"
#: cps/templates/index.xml:75 #: cps/templates/index.xml:74
msgid "Books ordered by series" msgid "Books ordered by series"
msgstr "Książki sortowane według serii" msgstr "Książki sortowane według serii"
@ -1139,7 +1152,7 @@ msgid "No Results for:"
msgstr "Brak wyników dla:" msgstr "Brak wyników dla:"
#: cps/templates/search.html:7 #: cps/templates/search.html:7
msgid "Please try a diffrent Search" msgid "Please try a different search"
msgstr "Proszę wypróbować podobne wyszukiwanie" msgstr "Proszę wypróbować podobne wyszukiwanie"
#: cps/templates/search.html:9 #: cps/templates/search.html:9

@ -14,7 +14,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: 2017-08-12 18:55+0200\n" "POT-Creation-Date: 2017-09-01 20:37+0200\n"
"PO-Revision-Date: 2017-04-30 00:47+0300\n" "PO-Revision-Date: 2017-04-30 00:47+0300\n"
"Last-Translator: Pavel Korovin <p@tristero.se>\n" "Last-Translator: Pavel Korovin <p@tristero.se>\n"
"Language: ru\n" "Language: ru\n"
@ -26,7 +26,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.4.0\n" "Generated-By: Babel 2.4.0\n"
#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1374 #: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1341
msgid "not installed" msgid "not installed"
msgstr "Отсутствует" msgstr "Отсутствует"
@ -70,373 +70,373 @@ msgstr "Отправить на Kindle"
msgid "Could not find any formats suitable for sending by email" msgid "Could not find any formats suitable for sending by email"
msgstr "Невозоможно найти формат, подходящий для отправки по email" msgstr "Невозоможно найти формат, подходящий для отправки по email"
#: cps/ub.py:542 #: cps/ub.py:543
msgid "Guest" msgid "Guest"
msgstr "Гость" msgstr "Гость"
#: cps/web.py:974 #: cps/web.py:953
msgid "Requesting update package" msgid "Requesting update package"
msgstr "Проверка обновлений" msgstr "Проверка обновлений"
#: cps/web.py:975 #: cps/web.py:954
msgid "Downloading update package" msgid "Downloading update package"
msgstr "Загрузка обновлений" msgstr "Загрузка обновлений"
#: cps/web.py:976 #: cps/web.py:955
msgid "Unzipping update package" msgid "Unzipping update package"
msgstr "Распаковка обновлений" msgstr "Распаковка обновлений"
#: cps/web.py:977 #: cps/web.py:956
msgid "Files are replaced" msgid "Files are replaced"
msgstr "Файлы заменены" msgstr "Файлы заменены"
#: cps/web.py:978 #: cps/web.py:957
msgid "Database connections are closed" msgid "Database connections are closed"
msgstr "Соеднинения с базой данных закрыты" msgstr "Соеднинения с базой данных закрыты"
#: cps/web.py:979 #: cps/web.py:958
msgid "Server is stopped" msgid "Server is stopped"
msgstr "Сервер остановлен" msgstr "Сервер остановлен"
#: cps/web.py:980 #: cps/web.py:959
msgid "Update finished, please press okay and reload page" msgid "Update finished, please press okay and reload page"
msgstr "Обновления установлены, нажмите okay и перезагрузите страницу" msgstr "Обновления установлены, нажмите okay и перезагрузите страницу"
#: cps/web.py:1054 #: cps/web.py:1033
msgid "Recently Added Books" msgid "Recently Added Books"
msgstr "" msgstr ""
#: cps/web.py:1063 #: cps/web.py:1042
msgid "Newest Books" msgid "Newest Books"
msgstr "" msgstr ""
#: cps/web.py:1072 #: cps/web.py:1051
msgid "Oldest Books" msgid "Oldest Books"
msgstr "" msgstr ""
#: cps/web.py:1081 #: cps/web.py:1060
msgid "Books (A-Z)" msgid "Books (A-Z)"
msgstr "" msgstr ""
#: cps/web.py:1090 #: cps/web.py:1069
msgid "Books (Z-A)" msgid "Books (Z-A)"
msgstr "" msgstr ""
#: cps/web.py:1126 #: cps/web.py:1099
msgid "Hot Books (most downloaded)" msgid "Hot Books (most downloaded)"
msgstr "Популярные книги (часто загружаемые)" msgstr "Популярные книги (часто загружаемые)"
#: cps/web.py:1136 #: cps/web.py:1109
msgid "Best rated books" msgid "Best rated books"
msgstr "Книги с наивысшим рейтингом" msgstr "Книги с наивысшим рейтингом"
#: cps/templates/index.xml:36 cps/web.py:1145 #: cps/templates/index.xml:35 cps/web.py:1118
msgid "Random Books" msgid "Random Books"
msgstr "Случайный выбор" msgstr "Случайный выбор"
#: cps/web.py:1161 #: cps/web.py:1127
msgid "Author list" msgid "Author list"
msgstr "Авторы" msgstr "Авторы"
#: cps/web.py:1181 cps/web.py:1212 cps/web.py:1351 cps/web.py:1835 #: cps/web.py:1137 cps/web.py:1193 cps/web.py:1318 cps/web.py:1796
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/templates/index.xml:71 cps/web.py:1198 #: cps/templates/index.xml:70 cps/web.py:1179
msgid "Series list" msgid "Series list"
msgstr "Серии" msgstr "Серии"
#: cps/web.py:1210 #: cps/web.py:1191
#, python-format #, python-format
msgid "Series: %(serie)s" msgid "Series: %(serie)s"
msgstr "Серии: %(serie)s" msgstr "Серии: %(serie)s"
#: cps/web.py:1243 #: cps/web.py:1224
msgid "Available languages" msgid "Available languages"
msgstr "Языки" msgstr "Языки"
#: cps/web.py:1258 #: cps/web.py:1239
#, python-format #, python-format
msgid "Language: %(name)s" msgid "Language: %(name)s"
msgstr "Язык: %(name)s" msgstr "Язык: %(name)s"
#: cps/templates/index.xml:64 cps/web.py:1274 #: cps/templates/index.xml:63 cps/web.py:1248
msgid "Category list" msgid "Category list"
msgstr "Категории" msgstr "Категории"
#: cps/web.py:1286 #: cps/web.py:1260
#, python-format #, python-format
msgid "Category: %(name)s" msgid "Category: %(name)s"
msgstr "Категория: %(name)s" msgstr "Категория: %(name)s"
#: cps/web.py:1385 #: cps/web.py:1352
msgid "Excecution permissions missing" msgid "Excecution permissions missing"
msgstr "" msgstr ""
#: cps/web.py:1399 #: cps/web.py:1366
msgid "Statistics" msgid "Statistics"
msgstr "Статистика" msgstr "Статистика"
#: cps/web.py:1563 #: cps/web.py:1530
msgid "Server restarted, please reload page" msgid "Server restarted, please reload page"
msgstr "Сервер перезагружен, пожалуйста, перезагрузите страницу" msgstr "Сервер перезагружен, пожалуйста, перезагрузите страницу"
#: cps/web.py:1565 #: cps/web.py:1532
msgid "Performing shutdown of server, please close window" msgid "Performing shutdown of server, please close window"
msgstr "Производится остановка сервера, пожалуйста, закройте окно" msgstr "Производится остановка сервера, пожалуйста, закройте окно"
#: cps/web.py:1581 #: cps/web.py:1548
msgid "Update done" msgid "Update done"
msgstr "Обновление закончено" msgstr "Обновление закончено"
#: cps/web.py:1662 cps/web.py:1675 #: cps/web.py:1623 cps/web.py:1636
msgid "search" msgid "search"
msgstr "поиск" msgstr "поиск"
#: cps/templates/index.xml:43 cps/templates/index.xml:47 #: cps/templates/index.xml:42 cps/templates/index.xml:46
#: cps/templates/layout.html:127 cps/web.py:1751 #: cps/templates/layout.html:127 cps/web.py:1712
msgid "Read Books" msgid "Read Books"
msgstr "Прочитанные" msgstr "Прочитанные"
#: cps/templates/index.xml:50 cps/templates/index.xml:54 #: cps/templates/index.xml:49 cps/templates/index.xml:53
#: cps/templates/layout.html:128 cps/web.py:1754 #: cps/templates/layout.html:128 cps/web.py:1715
msgid "Unread Books" msgid "Unread Books"
msgstr "Непрочитанные" msgstr "Непрочитанные"
#: cps/web.py:1821 cps/web.py:1823 cps/web.py:1825 cps/web.py:1832 #: cps/web.py:1782 cps/web.py:1784 cps/web.py:1786 cps/web.py:1793
msgid "Read a Book" msgid "Read a Book"
msgstr "Читать книгу" msgstr "Читать книгу"
#: cps/web.py:1888 cps/web.py:2513 #: cps/web.py:1849 cps/web.py:2474
msgid "Please fill out all fields!" msgid "Please fill out all fields!"
msgstr "Пожалуйста, заполните все поля!" msgstr "Пожалуйста, заполните все поля!"
#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 #: cps/web.py:1850 cps/web.py:1866 cps/web.py:1871 cps/web.py:1873
msgid "register" msgid "register"
msgstr "зарегистрироваться" msgstr "зарегистрироваться"
#: cps/web.py:1904 #: cps/web.py:1865
msgid "An unknown error occured. Please try again later." msgid "An unknown error occured. Please try again later."
msgstr "Неизвестная ошибка. Пожалуйста, попробуйте позже." msgstr "Неизвестная ошибка. Пожалуйста, попробуйте позже."
#: cps/web.py:1909 #: cps/web.py:1870
msgid "This username or email address is already in use." msgid "This username or email address is already in use."
msgstr "Имя пользователя или адрес эл. почты уже используется" msgstr "Имя пользователя или адрес эл. почты уже используется"
#: cps/web.py:1928 cps/web.py:2024 #: cps/web.py:1889 cps/web.py:1985
#, python-format #, python-format
msgid "you are now logged in as: '%(nickname)s'" msgid "you are now logged in as: '%(nickname)s'"
msgstr "Вы вошли как пользователь '%(nickname)s'" msgstr "Вы вошли как пользователь '%(nickname)s'"
#: cps/web.py:1933 #: cps/web.py:1894
msgid "Wrong Username or Password" msgid "Wrong Username or Password"
msgstr "Ошибка в имени пользователя или пароле" msgstr "Ошибка в имени пользователя или пароле"
#: cps/web.py:1939 cps/web.py:1960 #: cps/web.py:1900 cps/web.py:1921
msgid "login" msgid "login"
msgstr "войти" msgstr "войти"
#: cps/web.py:1972 cps/web.py:2003 #: cps/web.py:1933 cps/web.py:1964
msgid "Token not found" msgid "Token not found"
msgstr "" msgstr ""
#: cps/web.py:1980 cps/web.py:2011 #: cps/web.py:1941 cps/web.py:1972
msgid "Token has expired" msgid "Token has expired"
msgstr "" msgstr ""
#: cps/web.py:1988 #: cps/web.py:1949
msgid "Success! Please return to your device" msgid "Success! Please return to your device"
msgstr "" msgstr ""
#: cps/web.py:2038 #: cps/web.py:1999
msgid "Please configure the SMTP mail settings first..." msgid "Please configure the SMTP mail settings first..."
msgstr "Пожалуйста, сначала сконфигурируйте параметры SMTP" msgstr "Пожалуйста, сначала сконфигурируйте параметры SMTP"
#: cps/web.py:2042 #: cps/web.py:2003
#, python-format #, python-format
msgid "Book successfully send to %(kindlemail)s" msgid "Book successfully send to %(kindlemail)s"
msgstr "Книга успешно отправлена на %(kindlemail)s" msgstr "Книга успешно отправлена на %(kindlemail)s"
#: cps/web.py:2046 #: cps/web.py:2007
#, 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 "Ошибка при отправке книги: %(res)s" msgstr "Ошибка при отправке книги: %(res)s"
#: cps/web.py:2048 cps/web.py:2598 #: cps/web.py:2009 cps/web.py:2559
msgid "Please configure your kindle email address first..." msgid "Please configure your kindle email address first..."
msgstr "Пожалуйста, сначала укажите ваш kindle email..." msgstr "Пожалуйста, сначала укажите ваш kindle email..."
#: cps/web.py:2092 #: cps/web.py:2053
#, python-format #, python-format
msgid "Book has been added to shelf: %(sname)s" msgid "Book has been added to shelf: %(sname)s"
msgstr "Книга добавлена на книжную полку: %(sname)s" msgstr "Книга добавлена на книжную полку: %(sname)s"
#: cps/web.py:2127 #: cps/web.py:2088
#, python-format #, python-format
msgid "Book has been removed from shelf: %(sname)s" msgid "Book has been removed from shelf: %(sname)s"
msgstr "Книга удалена с книжной полки: %(sname)s" msgstr "Книга удалена с книжной полки: %(sname)s"
#: cps/web.py:2146 cps/web.py:2170 #: cps/web.py:2107 cps/web.py:2131
#, 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 "Книжкная полка с названием '%(title)s' уже существует." msgstr "Книжкная полка с названием '%(title)s' уже существует."
#: cps/web.py:2151 #: cps/web.py:2112
#, python-format #, python-format
msgid "Shelf %(title)s created" msgid "Shelf %(title)s created"
msgstr "Создана книжная полка %(title)s" msgstr "Создана книжная полка %(title)s"
#: cps/web.py:2153 cps/web.py:2181 #: cps/web.py:2114 cps/web.py:2142
msgid "There was an error" msgid "There was an error"
msgstr "Произошла ошибка" msgstr "Произошла ошибка"
#: cps/web.py:2154 cps/web.py:2156 #: cps/web.py:2115 cps/web.py:2117
msgid "create a shelf" msgid "create a shelf"
msgstr "создать книжную полку" msgstr "создать книжную полку"
#: cps/web.py:2179 #: cps/web.py:2140
#, python-format #, python-format
msgid "Shelf %(title)s changed" msgid "Shelf %(title)s changed"
msgstr "Книжная полка %(title)s изменена" msgstr "Книжная полка %(title)s изменена"
#: cps/web.py:2182 cps/web.py:2184 #: cps/web.py:2143 cps/web.py:2145
msgid "Edit a shelf" msgid "Edit a shelf"
msgstr "Изменить книжную полку" msgstr "Изменить книжную полку"
#: cps/web.py:2204 #: cps/web.py:2165
#, python-format #, python-format
msgid "successfully deleted shelf %(name)s" msgid "successfully deleted shelf %(name)s"
msgstr "Книжная полка %(name)s удалена" msgstr "Книжная полка %(name)s удалена"
#: cps/web.py:2226 #: cps/web.py:2187
#, python-format #, python-format
msgid "Shelf: '%(name)s'" msgid "Shelf: '%(name)s'"
msgstr "Книжная полка: '%(name)s'" msgstr "Книжная полка: '%(name)s'"
#: cps/web.py:2229 #: cps/web.py:2190
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:2261 #: cps/web.py:2222
#, python-format #, python-format
msgid "Change order of Shelf: '%(name)s'" msgid "Change order of Shelf: '%(name)s'"
msgstr "Изменить расположение книжной полки '%(name)s'" msgstr "Изменить расположение книжной полки '%(name)s'"
#: cps/web.py:2326 #: cps/web.py:2287
msgid "Found an existing account for this email address." msgid "Found an existing account for this email address."
msgstr "Найдена учётная запись для для данного адреса email." msgstr "Найдена учётная запись для для данного адреса email."
#: cps/web.py:2328 cps/web.py:2332 #: cps/web.py:2289 cps/web.py:2293
#, python-format #, python-format
msgid "%(name)s's profile" msgid "%(name)s's profile"
msgstr "Профиль %(name)s" msgstr "Профиль %(name)s"
#: cps/web.py:2329 #: cps/web.py:2290
msgid "Profile updated" msgid "Profile updated"
msgstr "Профиль обновлён" msgstr "Профиль обновлён"
#: cps/web.py:2343 #: cps/web.py:2304
msgid "Admin page" msgid "Admin page"
msgstr "Администрирование" msgstr "Администрирование"
#: cps/web.py:2467 #: cps/web.py:2428
msgid "Calibre-web configuration updated" msgid "Calibre-web configuration updated"
msgstr "Конфигурация Calibre-web обновлена" msgstr "Конфигурация Calibre-web обновлена"
#: cps/web.py:2474 cps/web.py:2480 cps/web.py:2494 #: cps/web.py:2435 cps/web.py:2441 cps/web.py:2455
msgid "Basic Configuration" msgid "Basic Configuration"
msgstr "Настройки сервера" msgstr "Настройки сервера"
#: cps/web.py:2478 #: cps/web.py:2439
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:34 cps/web.py:2515 cps/web.py:2568 #: cps/templates/admin.html:34 cps/web.py:2476 cps/web.py:2529
msgid "Add new user" msgid "Add new user"
msgstr "Добавить пользователя" msgstr "Добавить пользователя"
#: cps/web.py:2560 #: cps/web.py:2521
#, python-format #, python-format
msgid "User '%(user)s' created" msgid "User '%(user)s' created"
msgstr "Пользователь '%(user)s' добавлен" msgstr "Пользователь '%(user)s' добавлен"
#: cps/web.py:2564 #: cps/web.py:2525
msgid "Found an existing account for this email address or nickname." msgid "Found an existing account for this email address or nickname."
msgstr "Для указанного адреса или имени найдена существующая учётная запись." msgstr "Для указанного адреса или имени найдена существующая учётная запись."
#: cps/web.py:2586 #: cps/web.py:2547
msgid "Mail settings updated" msgid "Mail settings updated"
msgstr "Настройки почты изменены" msgstr "Настройки почты изменены"
#: cps/web.py:2593 #: cps/web.py:2554
#, python-format #, python-format
msgid "Test E-Mail successfully send to %(kindlemail)s" msgid "Test E-Mail successfully send to %(kindlemail)s"
msgstr "Тестовое сообщение успешно отправлено на адрес %(kindlemail)s" msgstr "Тестовое сообщение успешно отправлено на адрес %(kindlemail)s"
#: cps/web.py:2596 #: cps/web.py:2557
#, 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 "Ошибка отправки тестового сообщения: %(res)s" msgstr "Ошибка отправки тестового сообщения: %(res)s"
#: cps/web.py:2600 #: cps/web.py:2561
msgid "E-Mail settings updated" msgid "E-Mail settings updated"
msgstr "Обновлены настройки e-mail" msgstr "Обновлены настройки e-mail"
#: cps/web.py:2601 #: cps/web.py:2562
msgid "Edit mail settings" msgid "Edit mail settings"
msgstr "Изменить почтовые настройки" msgstr "Изменить почтовые настройки"
#: cps/web.py:2630 #: cps/web.py:2591
#, python-format #, python-format
msgid "User '%(nick)s' deleted" msgid "User '%(nick)s' deleted"
msgstr "Пользователь '%(nick)s' удалён" msgstr "Пользователь '%(nick)s' удалён"
#: cps/web.py:2728 #: cps/web.py:2689
#, python-format #, python-format
msgid "User '%(nick)s' updated" msgid "User '%(nick)s' updated"
msgstr "Пользователь '%(nick)s' обновлён" msgstr "Пользователь '%(nick)s' обновлён"
#: cps/web.py:2731 #: cps/web.py:2692
msgid "An unknown error occured." msgid "An unknown error occured."
msgstr "Произошла неизвестная ошибка." msgstr "Произошла неизвестная ошибка."
#: cps/web.py:2734 #: cps/web.py:2695
#, python-format #, python-format
msgid "Edit User %(nick)s" msgid "Edit User %(nick)s"
msgstr "Изменить пользователя %(nick)s" msgstr "Изменить пользователя %(nick)s"
#: cps/web.py:2756 #: cps/web.py:2711
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:2771 cps/web.py:2954 cps/web.py:3078 #: cps/web.py:2726 cps/web.py:2898 cps/web.py:3041
msgid "edit metadata" msgid "edit metadata"
msgstr "изменить метаданные" msgstr "изменить метаданные"
#: cps/web.py:2783 cps/web.py:2787 #: cps/web.py:2738 cps/web.py:2742
msgid "unknown" msgid "unknown"
msgstr "неизвестно" msgstr "неизвестно"
#: cps/web.py:2972 #: cps/web.py:2935
#, python-format #, python-format
msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgid "File extension \"%s\" is not allowed to be uploaded to this server"
msgstr "Запрещена загрузка файлов с расширением \"%s\"" msgstr "Запрещена загрузка файлов с расширением \"%s\""
#: cps/web.py:2978 #: cps/web.py:2941
msgid "File to be uploaded must have an extension" msgid "File to be uploaded must have an extension"
msgstr "Загружаемый файл должен иметь расширение" msgstr "Загружаемый файл должен иметь расширение"
#: cps/web.py:2997 #: cps/web.py:2960
#, python-format #, python-format
msgid "Failed to create path %s (Permission denied)." msgid "Failed to create path %s (Permission denied)."
msgstr "Ошибка при создании пути %s (доступ запрещён)" msgstr "Ошибка при создании пути %s (доступ запрещён)"
#: cps/web.py:3002 #: cps/web.py:2965
#, python-format #, python-format
msgid "Failed to store file %s (Permission denied)." msgid "Failed to store file %s (Permission denied)."
msgstr "Ошибка записи файоа %s (доступ запрещён)" msgstr "Ошибка записи файоа %s (доступ запрещён)"
#: cps/web.py:3007 #: cps/web.py:2970
#, python-format #, python-format
msgid "Failed to delete file %s (Permission denied)." msgid "Failed to delete file %s (Permission denied)."
msgstr "Ошибка удаления файла %s (доступ запрещён)" msgstr "Ошибка удаления файла %s (доступ запрещён)"
@ -607,6 +607,18 @@ msgstr "Вы действительно хотите остановить Calibr
msgid "Updating, please do not reload page" msgid "Updating, please do not reload page"
msgstr "Установка обновлений, пожалуйста, не обновляйте страницу." msgstr "Установка обновлений, пожалуйста, не обновляйте страницу."
#: cps/templates/author.html:15
msgid "via"
msgstr ""
#: cps/templates/author.html:23
msgid "In Library"
msgstr ""
#: cps/templates/author.html:69
msgid "More by"
msgstr ""
#: cps/templates/book_edit.html:16 #: cps/templates/book_edit.html:16
msgid "Delete Book" msgid "Delete Book"
msgstr "Удалить книгу" msgstr "Удалить книгу"
@ -615,12 +627,13 @@ msgstr "Удалить книгу"
msgid "Book Title" msgid "Book Title"
msgstr "Название" msgstr "Название"
#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:188 #: cps/templates/book_edit.html:26 cps/templates/book_edit.html:208
#: cps/templates/search_form.html:10 #: cps/templates/book_edit.html:226 cps/templates/search_form.html:10
msgid "Author" msgid "Author"
msgstr "Автор" msgstr "Автор"
#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:190 #: cps/templates/book_edit.html:30 cps/templates/book_edit.html:213
#: cps/templates/book_edit.html:228
msgid "Description" msgid "Description"
msgstr "Описание" msgstr "Описание"
@ -703,35 +716,35 @@ msgstr " Поиск по ключевому слову"
msgid "Go!" msgid "Go!"
msgstr "Искать" msgstr "Искать"
#: cps/templates/book_edit.html:168 #: cps/templates/book_edit.html:171
msgid "Click the cover to load metadata to the form" msgid "Click the cover to load metadata to the form"
msgstr "Нажмите на обложку, чтобы получить метаданные" msgstr "Нажмите на обложку, чтобы получить метаданные"
#: cps/templates/book_edit.html:172 cps/templates/book_edit.html:185 #: cps/templates/book_edit.html:183 cps/templates/book_edit.html:223
msgid "Loading..." msgid "Loading..."
msgstr "Загрузка..." msgstr "Загрузка..."
#: cps/templates/book_edit.html:175 cps/templates/layout.html:199 #: cps/templates/book_edit.html:188 cps/templates/layout.html:199
msgid "Close" msgid "Close"
msgstr "Закрыть" msgstr "Закрыть"
#: cps/templates/book_edit.html:186 #: cps/templates/book_edit.html:210 cps/templates/book_edit.html:227
msgid "Search error!" #: cps/templates/detail.html:125 cps/templates/search_form.html:14
msgstr "Ошибка поиска!"
#: cps/templates/book_edit.html:187
msgid "No Result! Please try anonther keyword."
msgstr "Нет результатов. Пожалуйста, попробуйте другое ключевое слово"
#: cps/templates/book_edit.html:189 cps/templates/detail.html:125
#: cps/templates/search_form.html:14
msgid "Publisher" msgid "Publisher"
msgstr "Издатель" msgstr "Издатель"
#: cps/templates/book_edit.html:191 #: cps/templates/book_edit.html:215 cps/templates/book_edit.html:229
msgid "Source" msgid "Source"
msgstr "Источник" msgstr "Источник"
#: cps/templates/book_edit.html:224
msgid "Search error!"
msgstr "Ошибка поиска!"
#: cps/templates/book_edit.html:225
msgid "No Result! Please try anonther keyword."
msgstr "Нет результатов. Пожалуйста, попробуйте другое ключевое слово"
#: cps/templates/config_edit.html:7 #: cps/templates/config_edit.html:7
msgid "Location of Calibre database" msgid "Location of Calibre database"
msgstr "Расположение БД Calibre" msgstr "Расположение БД Calibre"
@ -922,6 +935,11 @@ msgstr "Сохранить настройки и отправить тестов
msgid "Next" msgid "Next"
msgstr "Дальше" msgstr "Дальше"
#: cps/templates/feed.xml:29 cps/templates/index.xml:7
#: cps/templates/layout.html:40 cps/templates/layout.html:41
msgid "Search"
msgstr "Поиск"
#: cps/templates/index.html:5 #: cps/templates/index.html:5
msgid "Discover (Random Books)" msgid "Discover (Random Books)"
msgstr "Обзор (случайные книги)" msgstr "Обзор (случайные книги)"
@ -930,52 +948,47 @@ msgstr "Обзор (случайные книги)"
msgid "Start" msgid "Start"
msgstr "Старт" msgstr "Старт"
#: cps/templates/index.xml:7 cps/templates/layout.html:40 #: cps/templates/index.xml:14 cps/templates/layout.html:121
#: cps/templates/layout.html:41
msgid "Search"
msgstr "Поиск"
#: cps/templates/index.xml:15 cps/templates/layout.html:121
msgid "Hot Books" msgid "Hot Books"
msgstr "Популярные книги" msgstr "Популярные книги"
#: cps/templates/index.xml:19 #: cps/templates/index.xml:18
msgid "Popular publications from this catalog based on Downloads." msgid "Popular publications from this catalog based on Downloads."
msgstr "Популярные книги в этом каталоге, на основе количества скачиваний" msgstr "Популярные книги в этом каталоге, на основе количества скачиваний"
#: cps/templates/index.xml:22 cps/templates/layout.html:124 #: cps/templates/index.xml:21 cps/templates/layout.html:124
msgid "Best rated Books" msgid "Best rated Books"
msgstr "Книги с наилучшим рейтингом" msgstr "Книги с наилучшим рейтингом"
#: cps/templates/index.xml:26 #: cps/templates/index.xml:25
msgid "Popular publications from this catalog based on Rating." msgid "Popular publications from this catalog based on Rating."
msgstr "Популярные книги из этого каталога на основании рейтинга" msgstr "Популярные книги из этого каталога на основании рейтинга"
#: cps/templates/index.xml:29 #: cps/templates/index.xml:28
msgid "New Books" msgid "New Books"
msgstr "Новые" msgstr "Новые"
#: cps/templates/index.xml:33 #: cps/templates/index.xml:32
msgid "The latest Books" msgid "The latest Books"
msgstr "Последние поступления" msgstr "Последние поступления"
#: cps/templates/index.xml:40 #: cps/templates/index.xml:39
msgid "Show Random Books" msgid "Show Random Books"
msgstr "Показывать случайные книги" msgstr "Показывать случайные книги"
#: cps/templates/index.xml:57 cps/templates/layout.html:139 #: cps/templates/index.xml:56 cps/templates/layout.html:139
msgid "Authors" msgid "Authors"
msgstr "Авторы" msgstr "Авторы"
#: cps/templates/index.xml:61 #: cps/templates/index.xml:60
msgid "Books ordered by Author" msgid "Books ordered by Author"
msgstr "Книги, отсортированные по автору" msgstr "Книги, отсортированные по автору"
#: cps/templates/index.xml:68 #: cps/templates/index.xml:67
msgid "Books ordered by category" msgid "Books ordered by category"
msgstr "Книги, отсортированные по категории" msgstr "Книги, отсортированные по категории"
#: cps/templates/index.xml:75 #: cps/templates/index.xml:74
msgid "Books ordered by series" msgid "Books ordered by series"
msgstr "Книги, отсортированные по серии" msgstr "Книги, отсортированные по серии"
@ -1135,8 +1148,8 @@ msgid "No Results for:"
msgstr "Ничего не найдено по запросу:" msgstr "Ничего не найдено по запросу:"
#: cps/templates/search.html:7 #: cps/templates/search.html:7
msgid "Please try a diffrent Search" msgid "Please try a different search"
msgstr "Попробуйте изменить критерии поиска" msgstr "Попробуйте изменить критерии поиск"
#: cps/templates/search.html:9 #: cps/templates/search.html:9
msgid "Results for:" msgid "Results for:"

@ -15,7 +15,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: 2017-08-12 18:55+0200\n" "POT-Creation-Date: 2017-09-01 20:37+0200\n"
"PO-Revision-Date: 2017-01-06 17:00+0000\n" "PO-Revision-Date: 2017-01-06 17:00+0000\n"
"Last-Translator: dalin <dalin.lin@gmail.com>\n" "Last-Translator: dalin <dalin.lin@gmail.com>\n"
"Language: zh_Hans_CN\n" "Language: zh_Hans_CN\n"
@ -26,7 +26,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.4.0\n" "Generated-By: Babel 2.4.0\n"
#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1374 #: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1341
msgid "not installed" msgid "not installed"
msgstr "未安装" msgstr "未安装"
@ -70,373 +70,373 @@ msgstr "发送到Kindle"
msgid "Could not find any formats suitable for sending by email" msgid "Could not find any formats suitable for sending by email"
msgstr "无法找到适合邮件发送的格式" msgstr "无法找到适合邮件发送的格式"
#: cps/ub.py:542 #: cps/ub.py:543
msgid "Guest" msgid "Guest"
msgstr "游客" msgstr "游客"
#: cps/web.py:974 #: cps/web.py:953
msgid "Requesting update package" msgid "Requesting update package"
msgstr "正在请求更新包" msgstr "正在请求更新包"
#: cps/web.py:975 #: cps/web.py:954
msgid "Downloading update package" msgid "Downloading update package"
msgstr "正在下载更新包" msgstr "正在下载更新包"
#: cps/web.py:976 #: cps/web.py:955
msgid "Unzipping update package" msgid "Unzipping update package"
msgstr "正在解压更新包" msgstr "正在解压更新包"
#: cps/web.py:977 #: cps/web.py:956
msgid "Files are replaced" msgid "Files are replaced"
msgstr "文件已替换" msgstr "文件已替换"
#: cps/web.py:978 #: cps/web.py:957
msgid "Database connections are closed" msgid "Database connections are closed"
msgstr "数据库连接已关闭" msgstr "数据库连接已关闭"
#: cps/web.py:979 #: cps/web.py:958
msgid "Server is stopped" msgid "Server is stopped"
msgstr "服务器已停止" msgstr "服务器已停止"
#: cps/web.py:980 #: cps/web.py:959
msgid "Update finished, please press okay and reload page" msgid "Update finished, please press okay and reload page"
msgstr "更新完成,请按确定并刷新页面" msgstr "更新完成,请按确定并刷新页面"
#: cps/web.py:1054 #: cps/web.py:1033
msgid "Recently Added Books" msgid "Recently Added Books"
msgstr "最近添加的书籍" msgstr "最近添加的书籍"
#: cps/web.py:1063 #: cps/web.py:1042
msgid "Newest Books" msgid "Newest Books"
msgstr "最新书籍" msgstr "最新书籍"
#: cps/web.py:1072 #: cps/web.py:1051
msgid "Oldest Books" msgid "Oldest Books"
msgstr "最旧书籍" msgstr "最旧书籍"
#: cps/web.py:1081 #: cps/web.py:1060
msgid "Books (A-Z)" msgid "Books (A-Z)"
msgstr "书籍 (A-Z)" msgstr "书籍 (A-Z)"
#: cps/web.py:1090 #: cps/web.py:1069
msgid "Books (Z-A)" msgid "Books (Z-A)"
msgstr "书籍 (Z-A)" msgstr "书籍 (Z-A)"
#: cps/web.py:1126 #: cps/web.py:1099
msgid "Hot Books (most downloaded)" msgid "Hot Books (most downloaded)"
msgstr "热门书籍(最多下载)" msgstr "热门书籍(最多下载)"
#: cps/web.py:1136 #: cps/web.py:1109
msgid "Best rated books" msgid "Best rated books"
msgstr "最高评分书籍" msgstr "最高评分书籍"
#: cps/templates/index.xml:36 cps/web.py:1145 #: cps/templates/index.xml:35 cps/web.py:1118
msgid "Random Books" msgid "Random Books"
msgstr "随机书籍" msgstr "随机书籍"
#: cps/web.py:1161 #: cps/web.py:1127
msgid "Author list" msgid "Author list"
msgstr "作者列表" msgstr "作者列表"
#: cps/web.py:1181 cps/web.py:1212 cps/web.py:1351 cps/web.py:1835 #: cps/web.py:1137 cps/web.py:1193 cps/web.py:1318 cps/web.py:1796
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/templates/index.xml:71 cps/web.py:1198 #: cps/templates/index.xml:70 cps/web.py:1179
msgid "Series list" msgid "Series list"
msgstr "丛书列表" msgstr "丛书列表"
#: cps/web.py:1210 #: cps/web.py:1191
#, python-format #, python-format
msgid "Series: %(serie)s" msgid "Series: %(serie)s"
msgstr "丛书: %(serie)s" msgstr "丛书: %(serie)s"
#: cps/web.py:1243 #: cps/web.py:1224
msgid "Available languages" msgid "Available languages"
msgstr "可用语言" msgstr "可用语言"
#: cps/web.py:1258 #: cps/web.py:1239
#, python-format #, python-format
msgid "Language: %(name)s" msgid "Language: %(name)s"
msgstr "语言: %(name)s" msgstr "语言: %(name)s"
#: cps/templates/index.xml:64 cps/web.py:1274 #: cps/templates/index.xml:63 cps/web.py:1248
msgid "Category list" msgid "Category list"
msgstr "分类列表" msgstr "分类列表"
#: cps/web.py:1286 #: cps/web.py:1260
#, python-format #, python-format
msgid "Category: %(name)s" msgid "Category: %(name)s"
msgstr "分类: %(name)s" msgstr "分类: %(name)s"
#: cps/web.py:1385 #: cps/web.py:1352
msgid "Excecution permissions missing" msgid "Excecution permissions missing"
msgstr "可执行权限缺失" msgstr "可执行权限缺失"
#: cps/web.py:1399 #: cps/web.py:1366
msgid "Statistics" msgid "Statistics"
msgstr "统计" msgstr "统计"
#: cps/web.py:1563 #: cps/web.py:1530
msgid "Server restarted, please reload page" msgid "Server restarted, please reload page"
msgstr "服务器已重启,请刷新页面" msgstr "服务器已重启,请刷新页面"
#: cps/web.py:1565 #: cps/web.py:1532
msgid "Performing shutdown of server, please close window" msgid "Performing shutdown of server, please close window"
msgstr "正在关闭服务器,请关闭窗口" msgstr "正在关闭服务器,请关闭窗口"
#: cps/web.py:1581 #: cps/web.py:1548
msgid "Update done" msgid "Update done"
msgstr "更新完成" msgstr "更新完成"
#: cps/web.py:1662 cps/web.py:1675 #: cps/web.py:1623 cps/web.py:1636
msgid "search" msgid "search"
msgstr "搜索" msgstr "搜索"
#: cps/templates/index.xml:43 cps/templates/index.xml:47 #: cps/templates/index.xml:42 cps/templates/index.xml:46
#: cps/templates/layout.html:127 cps/web.py:1751 #: cps/templates/layout.html:127 cps/web.py:1712
msgid "Read Books" msgid "Read Books"
msgstr "已读书籍" msgstr "已读书籍"
#: cps/templates/index.xml:50 cps/templates/index.xml:54 #: cps/templates/index.xml:49 cps/templates/index.xml:53
#: cps/templates/layout.html:128 cps/web.py:1754 #: cps/templates/layout.html:128 cps/web.py:1715
msgid "Unread Books" msgid "Unread Books"
msgstr "未读书籍" msgstr "未读书籍"
#: cps/web.py:1821 cps/web.py:1823 cps/web.py:1825 cps/web.py:1832 #: cps/web.py:1782 cps/web.py:1784 cps/web.py:1786 cps/web.py:1793
msgid "Read a Book" msgid "Read a Book"
msgstr "阅读一本书" msgstr "阅读一本书"
#: cps/web.py:1888 cps/web.py:2513 #: cps/web.py:1849 cps/web.py:2474
msgid "Please fill out all fields!" msgid "Please fill out all fields!"
msgstr "请填写所有字段" msgstr "请填写所有字段"
#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 #: cps/web.py:1850 cps/web.py:1866 cps/web.py:1871 cps/web.py:1873
msgid "register" msgid "register"
msgstr "注册" msgstr "注册"
#: cps/web.py:1904 #: cps/web.py:1865
msgid "An unknown error occured. Please try again later." msgid "An unknown error occured. Please try again later."
msgstr "发生一个未知错误。请稍后再试。" msgstr "发生一个未知错误。请稍后再试。"
#: cps/web.py:1909 #: cps/web.py:1870
msgid "This username or email address is already in use." msgid "This username or email address is already in use."
msgstr "此用户名或邮箱已被使用。" msgstr "此用户名或邮箱已被使用。"
#: cps/web.py:1928 cps/web.py:2024 #: cps/web.py:1889 cps/web.py:1985
#, python-format #, python-format
msgid "you are now logged in as: '%(nickname)s'" msgid "you are now logged in as: '%(nickname)s'"
msgstr "您现在已以'%(nickname)s'身份登录" msgstr "您现在已以'%(nickname)s'身份登录"
#: cps/web.py:1933 #: cps/web.py:1894
msgid "Wrong Username or Password" msgid "Wrong Username or Password"
msgstr "用户名或密码错误" msgstr "用户名或密码错误"
#: cps/web.py:1939 cps/web.py:1960 #: cps/web.py:1900 cps/web.py:1921
msgid "login" msgid "login"
msgstr "登录" msgstr "登录"
#: cps/web.py:1972 cps/web.py:2003 #: cps/web.py:1933 cps/web.py:1964
msgid "Token not found" msgid "Token not found"
msgstr "找不到Token" msgstr "找不到Token"
#: cps/web.py:1980 cps/web.py:2011 #: cps/web.py:1941 cps/web.py:1972
msgid "Token has expired" msgid "Token has expired"
msgstr "Token已过期" msgstr "Token已过期"
#: cps/web.py:1988 #: cps/web.py:1949
msgid "Success! Please return to your device" msgid "Success! Please return to your device"
msgstr "成功!请返回您的设备" msgstr "成功!请返回您的设备"
#: cps/web.py:2038 #: cps/web.py:1999
msgid "Please configure the SMTP mail settings first..." msgid "Please configure the SMTP mail settings first..."
msgstr "请先配置SMTP邮箱..." msgstr "请先配置SMTP邮箱..."
#: cps/web.py:2042 #: cps/web.py:2003
#, python-format #, python-format
msgid "Book successfully send to %(kindlemail)s" msgid "Book successfully send to %(kindlemail)s"
msgstr "此书已被成功发给 %(kindlemail)s" msgstr "此书已被成功发给 %(kindlemail)s"
#: cps/web.py:2046 #: cps/web.py:2007
#, 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 "发送这本书的时候出现错误: %(res)s" msgstr "发送这本书的时候出现错误: %(res)s"
#: cps/web.py:2048 cps/web.py:2598 #: cps/web.py:2009 cps/web.py:2559
msgid "Please configure your kindle email address first..." msgid "Please configure your kindle email address first..."
msgstr "请先配置您的kindle电子邮箱地址..." msgstr "请先配置您的kindle电子邮箱地址..."
#: cps/web.py:2092 #: cps/web.py:2053
#, python-format #, python-format
msgid "Book has been added to shelf: %(sname)s" msgid "Book has been added to shelf: %(sname)s"
msgstr "此书已被添加到书架: %(sname)s" msgstr "此书已被添加到书架: %(sname)s"
#: cps/web.py:2127 #: cps/web.py:2088
#, python-format #, python-format
msgid "Book has been removed from shelf: %(sname)s" msgid "Book has been removed from shelf: %(sname)s"
msgstr "此书已从书架 %(sname)s 中删除" msgstr "此书已从书架 %(sname)s 中删除"
#: cps/web.py:2146 cps/web.py:2170 #: cps/web.py:2107 cps/web.py:2131
#, 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 "已存在书架 '%(title)s'。" msgstr "已存在书架 '%(title)s'。"
#: cps/web.py:2151 #: cps/web.py:2112
#, python-format #, python-format
msgid "Shelf %(title)s created" msgid "Shelf %(title)s created"
msgstr "书架 %(title)s 已被创建" msgstr "书架 %(title)s 已被创建"
#: cps/web.py:2153 cps/web.py:2181 #: cps/web.py:2114 cps/web.py:2142
msgid "There was an error" msgid "There was an error"
msgstr "发生错误" msgstr "发生错误"
#: cps/web.py:2154 cps/web.py:2156 #: cps/web.py:2115 cps/web.py:2117
msgid "create a shelf" msgid "create a shelf"
msgstr "创建书架" msgstr "创建书架"
#: cps/web.py:2179 #: cps/web.py:2140
#, python-format #, python-format
msgid "Shelf %(title)s changed" msgid "Shelf %(title)s changed"
msgstr "书架 %(title)s 已被修改" msgstr "书架 %(title)s 已被修改"
#: cps/web.py:2182 cps/web.py:2184 #: cps/web.py:2143 cps/web.py:2145
msgid "Edit a shelf" msgid "Edit a shelf"
msgstr "编辑书架" msgstr "编辑书架"
#: cps/web.py:2204 #: cps/web.py:2165
#, python-format #, python-format
msgid "successfully deleted shelf %(name)s" msgid "successfully deleted shelf %(name)s"
msgstr "成功删除书架 %(name)s" msgstr "成功删除书架 %(name)s"
#: cps/web.py:2226 #: cps/web.py:2187
#, python-format #, python-format
msgid "Shelf: '%(name)s'" msgid "Shelf: '%(name)s'"
msgstr "书架: '%(name)s'" msgstr "书架: '%(name)s'"
#: cps/web.py:2229 #: cps/web.py:2190
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:2261 #: cps/web.py:2222
#, python-format #, python-format
msgid "Change order of Shelf: '%(name)s'" msgid "Change order of Shelf: '%(name)s'"
msgstr "修改书架 '%(name)s' 顺序" msgstr "修改书架 '%(name)s' 顺序"
#: cps/web.py:2326 #: cps/web.py:2287
msgid "Found an existing account for this email address." msgid "Found an existing account for this email address."
msgstr "找到已使用此邮箱的账号。" msgstr "找到已使用此邮箱的账号。"
#: cps/web.py:2328 cps/web.py:2332 #: cps/web.py:2289 cps/web.py:2293
#, python-format #, python-format
msgid "%(name)s's profile" msgid "%(name)s's profile"
msgstr "%(name)s 的资料" msgstr "%(name)s 的资料"
#: cps/web.py:2329 #: cps/web.py:2290
msgid "Profile updated" msgid "Profile updated"
msgstr "资料已更新" msgstr "资料已更新"
#: cps/web.py:2343 #: cps/web.py:2304
msgid "Admin page" msgid "Admin page"
msgstr "管理页" msgstr "管理页"
#: cps/web.py:2467 #: cps/web.py:2428
msgid "Calibre-web configuration updated" msgid "Calibre-web configuration updated"
msgstr "Calibre-web配置已更新" msgstr "Calibre-web配置已更新"
#: cps/web.py:2474 cps/web.py:2480 cps/web.py:2494 #: cps/web.py:2435 cps/web.py:2441 cps/web.py:2455
msgid "Basic Configuration" msgid "Basic Configuration"
msgstr "基本配置" msgstr "基本配置"
#: cps/web.py:2478 #: cps/web.py:2439
msgid "DB location is not valid, please enter correct path" msgid "DB location is not valid, please enter correct path"
msgstr "DB位置无效请输入正确路径" msgstr "DB位置无效请输入正确路径"
#: cps/templates/admin.html:34 cps/web.py:2515 cps/web.py:2568 #: cps/templates/admin.html:34 cps/web.py:2476 cps/web.py:2529
msgid "Add new user" msgid "Add new user"
msgstr "添加新用户" msgstr "添加新用户"
#: cps/web.py:2560 #: cps/web.py:2521
#, python-format #, python-format
msgid "User '%(user)s' created" msgid "User '%(user)s' created"
msgstr "用户 '%(user)s' 已被创建" msgstr "用户 '%(user)s' 已被创建"
#: cps/web.py:2564 #: cps/web.py:2525
msgid "Found an existing account for this email address or nickname." msgid "Found an existing account for this email address or nickname."
msgstr "已存在使用此邮箱或昵称的账号。" msgstr "已存在使用此邮箱或昵称的账号。"
#: cps/web.py:2586 #: cps/web.py:2547
msgid "Mail settings updated" msgid "Mail settings updated"
msgstr "邮箱设置已更新" msgstr "邮箱设置已更新"
#: cps/web.py:2593 #: cps/web.py:2554
#, python-format #, python-format
msgid "Test E-Mail successfully send to %(kindlemail)s" msgid "Test E-Mail successfully send to %(kindlemail)s"
msgstr "测试邮件已成功发送到 %(kindlemail)s" msgstr "测试邮件已成功发送到 %(kindlemail)s"
#: cps/web.py:2596 #: cps/web.py:2557
#, 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 "发送测试邮件时发生错误: %(res)s" msgstr "发送测试邮件时发生错误: %(res)s"
#: cps/web.py:2600 #: cps/web.py:2561
msgid "E-Mail settings updated" msgid "E-Mail settings updated"
msgstr "E-Mail 设置已更新" msgstr "E-Mail 设置已更新"
#: cps/web.py:2601 #: cps/web.py:2562
msgid "Edit mail settings" msgid "Edit mail settings"
msgstr "编辑邮箱设置" msgstr "编辑邮箱设置"
#: cps/web.py:2630 #: cps/web.py:2591
#, python-format #, python-format
msgid "User '%(nick)s' deleted" msgid "User '%(nick)s' deleted"
msgstr "用户 '%(nick)s' 已被删除" msgstr "用户 '%(nick)s' 已被删除"
#: cps/web.py:2728 #: cps/web.py:2689
#, python-format #, python-format
msgid "User '%(nick)s' updated" msgid "User '%(nick)s' updated"
msgstr "用户 '%(nick)s' 已被更新" msgstr "用户 '%(nick)s' 已被更新"
#: cps/web.py:2731 #: cps/web.py:2692
msgid "An unknown error occured." msgid "An unknown error occured."
msgstr "发生未知错误。" msgstr "发生未知错误。"
#: cps/web.py:2734 #: cps/web.py:2695
#, python-format #, python-format
msgid "Edit User %(nick)s" msgid "Edit User %(nick)s"
msgstr "编辑用户 %(nick)s" msgstr "编辑用户 %(nick)s"
#: cps/web.py:2756 #: cps/web.py:2711
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:2771 cps/web.py:2954 cps/web.py:3078 #: cps/web.py:2726 cps/web.py:2898 cps/web.py:3041
msgid "edit metadata" msgid "edit metadata"
msgstr "编辑元数据" msgstr "编辑元数据"
#: cps/web.py:2783 cps/web.py:2787 #: cps/web.py:2738 cps/web.py:2742
msgid "unknown" msgid "unknown"
msgstr "未知" msgstr "未知"
#: cps/web.py:2972 #: cps/web.py:2935
#, python-format #, python-format
msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgid "File extension \"%s\" is not allowed to be uploaded to this server"
msgstr "不能上传后缀为 \"%s\" 的文件到此服务器" msgstr "不能上传后缀为 \"%s\" 的文件到此服务器"
#: cps/web.py:2978 #: cps/web.py:2941
msgid "File to be uploaded must have an extension" msgid "File to be uploaded must have an extension"
msgstr "要上传的文件必须有一个后缀" msgstr "要上传的文件必须有一个后缀"
#: cps/web.py:2997 #: cps/web.py:2960
#, python-format #, python-format
msgid "Failed to create path %s (Permission denied)." msgid "Failed to create path %s (Permission denied)."
msgstr "创建路径 %s 失败(权限拒绝)。" msgstr "创建路径 %s 失败(权限拒绝)。"
#: cps/web.py:3002 #: cps/web.py:2965
#, python-format #, python-format
msgid "Failed to store file %s (Permission denied)." msgid "Failed to store file %s (Permission denied)."
msgstr "存储文件 %s 失败(权限拒绝)。" msgstr "存储文件 %s 失败(权限拒绝)。"
#: cps/web.py:3007 #: cps/web.py:2970
#, python-format #, python-format
msgid "Failed to delete file %s (Permission denied)." msgid "Failed to delete file %s (Permission denied)."
msgstr "删除文件 %s 失败(权限拒绝)。" msgstr "删除文件 %s 失败(权限拒绝)。"
@ -607,6 +607,18 @@ msgstr "您确定要关闭 Calibre-web 吗?"
msgid "Updating, please do not reload page" msgid "Updating, please do not reload page"
msgstr "正在更新,请不要刷新页面" msgstr "正在更新,请不要刷新页面"
#: cps/templates/author.html:15
msgid "via"
msgstr ""
#: cps/templates/author.html:23
msgid "In Library"
msgstr ""
#: cps/templates/author.html:69
msgid "More by"
msgstr ""
#: cps/templates/book_edit.html:16 #: cps/templates/book_edit.html:16
msgid "Delete Book" msgid "Delete Book"
msgstr "删除书籍" msgstr "删除书籍"
@ -615,12 +627,13 @@ msgstr "删除书籍"
msgid "Book Title" msgid "Book Title"
msgstr "书名" msgstr "书名"
#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:188 #: cps/templates/book_edit.html:26 cps/templates/book_edit.html:208
#: cps/templates/search_form.html:10 #: cps/templates/book_edit.html:226 cps/templates/search_form.html:10
msgid "Author" msgid "Author"
msgstr "作者" msgstr "作者"
#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:190 #: cps/templates/book_edit.html:30 cps/templates/book_edit.html:213
#: cps/templates/book_edit.html:228
msgid "Description" msgid "Description"
msgstr "简介" msgstr "简介"
@ -703,35 +716,35 @@ msgstr "搜索关键字"
msgid "Go!" msgid "Go!"
msgstr "走起!" msgstr "走起!"
#: cps/templates/book_edit.html:168 #: cps/templates/book_edit.html:171
msgid "Click the cover to load metadata to the form" msgid "Click the cover to load metadata to the form"
msgstr "点击封面加载元数据到表单" msgstr "点击封面加载元数据到表单"
#: cps/templates/book_edit.html:172 cps/templates/book_edit.html:185 #: cps/templates/book_edit.html:183 cps/templates/book_edit.html:223
msgid "Loading..." msgid "Loading..."
msgstr "加载中..." msgstr "加载中..."
#: cps/templates/book_edit.html:175 cps/templates/layout.html:199 #: cps/templates/book_edit.html:188 cps/templates/layout.html:199
msgid "Close" msgid "Close"
msgstr "关闭" msgstr "关闭"
#: cps/templates/book_edit.html:186 #: cps/templates/book_edit.html:210 cps/templates/book_edit.html:227
msgid "Search error!" #: cps/templates/detail.html:125 cps/templates/search_form.html:14
msgstr "搜索错误"
#: cps/templates/book_edit.html:187
msgid "No Result! Please try anonther keyword."
msgstr "没有结果!请尝试别的关键字."
#: cps/templates/book_edit.html:189 cps/templates/detail.html:125
#: cps/templates/search_form.html:14
msgid "Publisher" msgid "Publisher"
msgstr "出版社" msgstr "出版社"
#: cps/templates/book_edit.html:191 #: cps/templates/book_edit.html:215 cps/templates/book_edit.html:229
msgid "Source" msgid "Source"
msgstr "来源" msgstr "来源"
#: cps/templates/book_edit.html:224
msgid "Search error!"
msgstr "搜索错误"
#: cps/templates/book_edit.html:225
msgid "No Result! Please try anonther keyword."
msgstr "没有结果!请尝试别的关键字."
#: cps/templates/config_edit.html:7 #: cps/templates/config_edit.html:7
msgid "Location of Calibre database" msgid "Location of Calibre database"
msgstr "Calibre 数据库位置" msgstr "Calibre 数据库位置"
@ -922,6 +935,11 @@ msgstr "保存设置并发送测试邮件"
msgid "Next" msgid "Next"
msgstr "下一个" msgstr "下一个"
#: cps/templates/feed.xml:29 cps/templates/index.xml:7
#: cps/templates/layout.html:40 cps/templates/layout.html:41
msgid "Search"
msgstr "搜索"
#: cps/templates/index.html:5 #: cps/templates/index.html:5
msgid "Discover (Random Books)" msgid "Discover (Random Books)"
msgstr "发现(随机书籍)" msgstr "发现(随机书籍)"
@ -930,52 +948,47 @@ msgstr "发现(随机书籍)"
msgid "Start" msgid "Start"
msgstr "开始" msgstr "开始"
#: cps/templates/index.xml:7 cps/templates/layout.html:40 #: cps/templates/index.xml:14 cps/templates/layout.html:121
#: cps/templates/layout.html:41
msgid "Search"
msgstr "搜索"
#: cps/templates/index.xml:15 cps/templates/layout.html:121
msgid "Hot Books" msgid "Hot Books"
msgstr "热门书籍" msgstr "热门书籍"
#: cps/templates/index.xml:19 #: cps/templates/index.xml:18
msgid "Popular publications from this catalog based on Downloads." msgid "Popular publications from this catalog based on Downloads."
msgstr "基于下载数的热门书籍" msgstr "基于下载数的热门书籍"
#: cps/templates/index.xml:22 cps/templates/layout.html:124 #: cps/templates/index.xml:21 cps/templates/layout.html:124
msgid "Best rated Books" msgid "Best rated Books"
msgstr "最高评分书籍" msgstr "最高评分书籍"
#: cps/templates/index.xml:26 #: cps/templates/index.xml:25
msgid "Popular publications from this catalog based on Rating." msgid "Popular publications from this catalog based on Rating."
msgstr "基于评分的热门书籍" msgstr "基于评分的热门书籍"
#: cps/templates/index.xml:29 #: cps/templates/index.xml:28
msgid "New Books" msgid "New Books"
msgstr "新书" msgstr "新书"
#: cps/templates/index.xml:33 #: cps/templates/index.xml:32
msgid "The latest Books" msgid "The latest Books"
msgstr "最新书籍" msgstr "最新书籍"
#: cps/templates/index.xml:40 #: cps/templates/index.xml:39
msgid "Show Random Books" msgid "Show Random Books"
msgstr "显示随机书籍" msgstr "显示随机书籍"
#: cps/templates/index.xml:57 cps/templates/layout.html:139 #: cps/templates/index.xml:56 cps/templates/layout.html:139
msgid "Authors" msgid "Authors"
msgstr "作者" msgstr "作者"
#: cps/templates/index.xml:61 #: cps/templates/index.xml:60
msgid "Books ordered by Author" msgid "Books ordered by Author"
msgstr "书籍按作者排序" msgstr "书籍按作者排序"
#: cps/templates/index.xml:68 #: cps/templates/index.xml:67
msgid "Books ordered by category" msgid "Books ordered by category"
msgstr "书籍按分类排序" msgstr "书籍按分类排序"
#: cps/templates/index.xml:75 #: cps/templates/index.xml:74
msgid "Books ordered by series" msgid "Books ordered by series"
msgstr "书籍按丛书排序" msgstr "书籍按丛书排序"
@ -1135,7 +1148,7 @@ msgid "No Results for:"
msgstr "找不到结果:" msgstr "找不到结果:"
#: cps/templates/search.html:7 #: cps/templates/search.html:7
msgid "Please try a diffrent Search" msgid "Please try a different search"
msgstr "请尝试别的关键字" msgstr "请尝试别的关键字"
#: cps/templates/search.html:9 #: cps/templates/search.html:9

@ -8,11 +8,22 @@ except ImportError:
gdrive_support = False gdrive_support = False
try: try:
from goodreads import client as gr_client from goodreads.client import GoodreadsClient
goodreads_support = True goodreads_support = True
except ImportError: except ImportError:
goodreads_support = False goodreads_support = False
try:
import Levenshtein
levenshtein_support = True
except ImportError:
levenshtein_support = False
try:
from functools import reduce
except ImportError:
pass # We're not using Python 3
import mimetypes import mimetypes
import logging import logging
from logging.handlers import RotatingFileHandler from logging.handlers import RotatingFileHandler
@ -21,6 +32,7 @@ from flask import (Flask, render_template, request, Response, redirect,
url_for, send_from_directory, make_response, g, flash, url_for, send_from_directory, make_response, g, flash,
abort, Markup, stream_with_context) abort, Markup, stream_with_context)
from flask import __version__ as flaskVersion from flask import __version__ as flaskVersion
import cache_buster
import ub import ub
from ub import config from ub import config
import helper import helper
@ -200,6 +212,7 @@ mimetypes.add_type('image/vnd.djvu', '.djvu')
app = (Flask(__name__)) app = (Flask(__name__))
app.wsgi_app = ReverseProxied(app.wsgi_app) app.wsgi_app = ReverseProxied(app.wsgi_app)
cache_buster.init_cache_busting(app)
gevent_server = None gevent_server = None
@ -499,24 +512,29 @@ def edit_required(f):
return inner return inner
# Fill indexpage with all requested data from database # Language and content filters
def fill_indexpage(page, database, db_filter, order): def common_filters():
if current_user.filter_language() != "all": if current_user.filter_language() != "all":
lang_filter = db.Books.languages.any(db.Languages.lang_code == current_user.filter_language()) lang_filter = db.Books.languages.any(db.Languages.lang_code == current_user.filter_language())
else: else:
lang_filter = True lang_filter = true()
content_rating_filter = false() if current_user.mature_content else \ content_rating_filter = false() if current_user.mature_content else \
db.Books.tags.any(db.Tags.name.in_(config.mature_content_tags())) db.Books.tags.any(db.Tags.name.in_(config.mature_content_tags()))
return and_(lang_filter, ~content_rating_filter)
# Fill indexpage with all requested data from database
def fill_indexpage(page, database, db_filter, order):
if current_user.show_detail_random(): if current_user.show_detail_random():
random = db.session.query(db.Books).filter(lang_filter).filter(~content_rating_filter)\ random = db.session.query(db.Books).filter(common_filters())\
.order_by(func.random()).limit(config.config_random_books) .order_by(func.random()).limit(config.config_random_books)
else: else:
random = false random = false
off = int(int(config.config_books_per_page) * (page - 1)) off = int(int(config.config_books_per_page) * (page - 1))
pagination = Pagination(page, config.config_books_per_page, pagination = Pagination(page, config.config_books_per_page,
len(db.session.query(database) len(db.session.query(database)
.filter(db_filter).filter(lang_filter).filter(~content_rating_filter).all())) .filter(db_filter).filter(common_filters()).all()))
entries = db.session.query(database).filter(db_filter).filter(lang_filter).filter(~content_rating_filter)\ entries = db.session.query(database).filter(db_filter).filter(common_filters())\
.order_by(order).offset(off).limit(config.config_books_per_page) .order_by(order).offset(off).limit(config.config_books_per_page)
return entries, random, pagination return entries, random, pagination
@ -638,19 +656,13 @@ def feed_normal_search():
def feed_search(term): def feed_search(term):
if current_user.filter_language() != "all":
lang_filter = db.Books.languages.any(db.Languages.lang_code == current_user.filter_language())
else:
lang_filter = True
content_rating_filter = false() if current_user.mature_content else \
db.Books.tags.any(db.Tags.name.in_(config.mature_content_tags()))
if term: if term:
entries = db.session.query(db.Books).filter(db.or_(db.Books.tags.any(db.Tags.name.like("%" + term + "%")), entries = db.session.query(db.Books).filter(db.or_(db.Books.tags.any(db.Tags.name.like("%" + term + "%")),
db.Books.series.any(db.Series.name.like("%" + term + "%")), db.Books.series.any(db.Series.name.like("%" + term + "%")),
db.Books.authors.any(db.Authors.name.like("%" + term + "%")), db.Books.authors.any(db.Authors.name.like("%" + term + "%")),
db.Books.publishers.any(db.Publishers.name.like("%" + term + "%")), db.Books.publishers.any(db.Publishers.name.like("%" + term + "%")),
db.Books.title.like("%" + term + "%")))\ db.Books.title.like("%" + term + "%")))\
.filter(lang_filter).filter(~content_rating_filter).all() .filter(common_filters()).all()
entriescount = len(entries) if len(entries) > 0 else 1 entriescount = len(entries) if len(entries) > 0 else 1
pagination = Pagination(1, entriescount, entriescount) pagination = Pagination(1, entriescount, entriescount)
xml = render_title_template('feed.xml', searchterm=term, entries=entries, pagination=pagination) xml = render_title_template('feed.xml', searchterm=term, entries=entries, pagination=pagination)
@ -678,13 +690,7 @@ def feed_new():
@app.route("/opds/discover") @app.route("/opds/discover")
@requires_basic_auth_if_no_ano @requires_basic_auth_if_no_ano
def feed_discover(): def feed_discover():
if current_user.filter_language() != "all": entries = db.session.query(db.Books).filter(common_filters()).order_by(func.random())\
lang_filter = db.Books.languages.any(db.Languages.lang_code == current_user.filter_language())
else:
lang_filter = True
content_rating_filter = false() if current_user.mature_content else \
db.Books.tags.any(db.Tags.name.in_(config.mature_content_tags()))
entries = db.session.query(db.Books).filter(lang_filter).filter(~content_rating_filter).order_by(func.random())\
.limit(config.config_books_per_page) .limit(config.config_books_per_page)
pagination = Pagination(1, config.config_books_per_page, int(config.config_books_per_page)) pagination = Pagination(1, config.config_books_per_page, int(config.config_books_per_page))
xml = render_title_template('feed.xml', entries=entries, pagination=pagination) xml = render_title_template('feed.xml', entries=entries, pagination=pagination)
@ -713,12 +719,6 @@ def feed_hot():
off = request.args.get("offset") off = request.args.get("offset")
if not off: if not off:
off = 0 off = 0
if current_user.filter_language() != "all":
lang_filter = db.Books.languages.any(db.Languages.lang_code == current_user.filter_language())
else:
lang_filter = True
content_rating_filter = false() if current_user.mature_content else \
db.Books.tags.any(db.Tags.name.in_(config.mature_content_tags()))
all_books = ub.session.query(ub.Downloads, ub.func.count(ub.Downloads.book_id)).order_by( all_books = ub.session.query(ub.Downloads, ub.func.count(ub.Downloads.book_id)).order_by(
ub.func.count(ub.Downloads.book_id).desc()).group_by(ub.Downloads.book_id) ub.func.count(ub.Downloads.book_id).desc()).group_by(ub.Downloads.book_id)
hot_books = all_books.offset(off).limit(config.config_books_per_page) hot_books = all_books.offset(off).limit(config.config_books_per_page)
@ -727,7 +727,7 @@ def feed_hot():
downloadBook = db.session.query(db.Books).filter(db.Books.id == book.Downloads.book_id).first() downloadBook = db.session.query(db.Books).filter(db.Books.id == book.Downloads.book_id).first()
if downloadBook: if downloadBook:
entries.append( entries.append(
db.session.query(db.Books).filter(lang_filter).filter(~content_rating_filter) db.session.query(db.Books).filter(common_filters())
.filter(db.Books.id == book.Downloads.book_id).first() .filter(db.Books.id == book.Downloads.book_id).first()
) )
else: else:
@ -747,14 +747,7 @@ def feed_authorindex():
off = request.args.get("offset") off = request.args.get("offset")
if not off: if not off:
off = 0 off = 0
if current_user.filter_language() != "all": entries = db.session.query(db.Authors).join(db.books_authors_link).join(db.Books).filter(common_filters())\
lang_filter = db.Books.languages.any(db.Languages.lang_code == current_user.filter_language())
else:
lang_filter = True
content_rating_filter = false() if current_user.mature_content else \
db.Books.tags.any(db.Tags.name.in_(config.mature_content_tags()))
entries = db.session.query(db.Authors).join(db.books_authors_link).join(db.Books)\
.filter(lang_filter).filter(~content_rating_filter)\
.group_by('books_authors_link.author').order_by(db.Authors.sort).limit(config.config_books_per_page).offset(off) .group_by('books_authors_link.author').order_by(db.Authors.sort).limit(config.config_books_per_page).offset(off)
pagination = Pagination((int(off) / (int(config.config_books_per_page)) + 1), config.config_books_per_page, pagination = Pagination((int(off) / (int(config.config_books_per_page)) + 1), config.config_books_per_page,
len(db.session.query(db.Authors).all())) len(db.session.query(db.Authors).all()))
@ -784,14 +777,7 @@ def feed_categoryindex():
off = request.args.get("offset") off = request.args.get("offset")
if not off: if not off:
off = 0 off = 0
if current_user.filter_language() != "all": entries = db.session.query(db.Tags).join(db.books_tags_link).join(db.Books).filter(common_filters())\
lang_filter = db.Books.languages.any(db.Languages.lang_code == current_user.filter_language())
else:
lang_filter = True
content_rating_filter = false() if current_user.mature_content else \
db.Books.tags.any(db.Tags.name.in_(config.mature_content_tags()))
entries = db.session.query(db.Tags).join(db.books_tags_link).join(db.Books)\
.filter(lang_filter).filter(~content_rating_filter)\
.group_by('books_tags_link.tag').order_by(db.Tags.name).offset(off).limit(config.config_books_per_page) .group_by('books_tags_link.tag').order_by(db.Tags.name).offset(off).limit(config.config_books_per_page)
pagination = Pagination((int(off) / (int(config.config_books_per_page)) + 1), config.config_books_per_page, pagination = Pagination((int(off) / (int(config.config_books_per_page)) + 1), config.config_books_per_page,
len(db.session.query(db.Tags).all())) len(db.session.query(db.Tags).all()))
@ -821,14 +807,7 @@ def feed_seriesindex():
off = request.args.get("offset") off = request.args.get("offset")
if not off: if not off:
off = 0 off = 0
if current_user.filter_language() != "all": entries = db.session.query(db.Series).join(db.books_series_link).join(db.Books).filter(common_filters())\
lang_filter = db.Books.languages.any(db.Languages.lang_code == current_user.filter_language())
else:
lang_filter = True
content_rating_filter = false() if current_user.mature_content else \
db.Books.tags.any(db.Tags.name.in_(config.mature_content_tags()))
entries = db.session.query(db.Series).join(db.books_series_link).join(db.Books)\
.filter(lang_filter).filter(~content_rating_filter)\
.group_by('books_series_link.series').order_by(db.Series.sort).offset(off).all() .group_by('books_series_link.series').order_by(db.Series.sort).offset(off).all()
pagination = Pagination((int(off) / (int(config.config_books_per_page)) + 1), config.config_books_per_page, pagination = Pagination((int(off) / (int(config.config_books_per_page)) + 1), config.config_books_per_page,
len(db.session.query(db.Series).all())) len(db.session.query(db.Series).all()))
@ -1094,14 +1073,8 @@ def titles_descending(page):
@app.route('/hot/page/<int:page>') @app.route('/hot/page/<int:page>')
@login_required_if_no_ano @login_required_if_no_ano
def hot_books(page): def hot_books(page):
if current_user.filter_language() != "all":
lang_filter = db.Books.languages.any(db.Languages.lang_code == current_user.filter_language())
else:
lang_filter = True
content_rating_filter = false() if current_user.mature_content else \
db.Books.tags.any(db.Tags.name.in_(config.mature_content_tags()))
if current_user.show_detail_random(): if current_user.show_detail_random():
random = db.session.query(db.Books).filter(lang_filter).filter(~content_rating_filter)\ random = db.session.query(db.Books).filter(common_filters())\
.order_by(func.random()).limit(config.config_random_books) .order_by(func.random()).limit(config.config_random_books)
else: else:
random = false random = false
@ -1111,12 +1084,9 @@ def hot_books(page):
hot_books = all_books.offset(off).limit(config.config_books_per_page) hot_books = all_books.offset(off).limit(config.config_books_per_page)
entries = list() entries = list()
for book in hot_books: for book in hot_books:
downloadBook = db.session.query(db.Books).filter(db.Books.id == book.Downloads.book_id).first() downloadBook = db.session.query(db.Books).filter(common_filters()).filter(db.Books.id == book.Downloads.book_id).first()
if downloadBook: if downloadBook:
entries.append( entries.append(downloadBook)
db.session.query(db.Books).filter(lang_filter).filter(~content_rating_filter)
.filter(db.Books.id == book.Downloads.book_id).first()
)
else: else:
ub.session.query(ub.Downloads).filter(book.Downloads.book_id == ub.Downloads.book_id).delete() ub.session.query(ub.Downloads).filter(book.Downloads.book_id == ub.Downloads.book_id).delete()
ub.session.commit() ub.session.commit()
@ -1148,15 +1118,8 @@ def discover(page):
@app.route("/author") @app.route("/author")
@login_required_if_no_ano @login_required_if_no_ano
def author_list(): def author_list():
if current_user.filter_language() != "all":
lang_filter = db.Books.languages.any(db.Languages.lang_code == current_user.filter_language())
else:
lang_filter = True
content_rating_filter = false() if current_user.mature_content else \
db.Books.tags.any(db.Tags.name.in_(config.mature_content_tags()))
entries = db.session.query(db.Authors, func.count('books_authors_link.book').label('count'))\ entries = db.session.query(db.Authors, func.count('books_authors_link.book').label('count'))\
.join(db.books_authors_link).join(db.Books)\ .join(db.books_authors_link).join(db.Books).filter(common_filters())\
.filter(lang_filter).filter(~content_rating_filter)\
.group_by('books_authors_link.author').order_by(db.Authors.sort).all() .group_by('books_authors_link.author').order_by(db.Authors.sort).all()
return render_title_template('list.html', entries=entries, folder='author', title=_(u"Author list")) return render_title_template('list.html', entries=entries, folder='author', title=_(u"Author list"))
@ -1167,33 +1130,48 @@ def author_list():
def author(book_id, page): def author(book_id, page):
entries, random, pagination = fill_indexpage(page, db.Books, db.Books.authors.any(db.Authors.id == book_id), entries, random, pagination = fill_indexpage(page, db.Books, db.Books.authors.any(db.Authors.id == book_id),
db.Books.timestamp.desc()) db.Books.timestamp.desc())
if entries: if entries is None:
flash(_(u"Error opening eBook. File does not exist or file is not accessible:"), category="error")
return redirect(url_for("index"))
name = db.session.query(db.Authors).filter(db.Authors.id == book_id).first().name name = db.session.query(db.Authors).filter(db.Authors.id == book_id).first().name
author_info = None author_info = None
other_books = []
if goodreads_support and config.config_use_goodreads: if goodreads_support and config.config_use_goodreads:
gc = gr_client.GoodreadsClient(config.config_goodreads_api_key, config.config_goodreads_api_secret) gc = GoodreadsClient(config.config_goodreads_api_key, config.config_goodreads_api_secret)
author_info = gc.find_author(author_name=name) author_info = gc.find_author(author_name=name)
other_books = get_unique_other_books(entries.all(), author_info.books)
return render_title_template('author.html', entries=entries, pagination=pagination, return render_title_template('author.html', entries=entries, pagination=pagination,
title=name, author=author_info) title=name, author=author_info, other_books=other_books)
else:
flash(_(u"Error opening eBook. File does not exist or file is not accessible:"), category="error")
return redirect(url_for("index")) def get_unique_other_books(library_books, author_books):
# Get all identifiers (ISBN, Goodreads, etc) and filter author's books by that list so we show fewer duplicates
# Note: Not all images will be shown, even though they're available on Goodreads.com.
# See https://www.goodreads.com/topic/show/18213769-goodreads-book-images
identifiers = reduce(lambda acc, book: acc + map(lambda identifier: identifier.val, book.identifiers), library_books, [])
other_books = filter(lambda book: book.isbn not in identifiers and book.gid["#text"] not in identifiers, author_books)
# Fuzzy match book titles
if levenshtein_support:
library_titles = reduce(lambda acc, book: acc + [book.title], library_books, [])
other_books = filter(lambda author_book: not filter(
lambda library_book:
Levenshtein.ratio(re.sub(r"\(.*\)", "", author_book.title), library_book) > 0.7, # Remove items in parentheses before comparing
library_titles
), other_books)
return other_books
@app.route("/series") @app.route("/series")
@login_required_if_no_ano @login_required_if_no_ano
def series_list(): def series_list():
if current_user.filter_language() != "all":
lang_filter = db.Books.languages.any(db.Languages.lang_code == current_user.filter_language())
else:
lang_filter = True
content_rating_filter = false() if current_user.mature_content else \
db.Books.tags.any(db.Tags.name.in_(config.mature_content_tags()))
entries = db.session.query(db.Series, func.count('books_series_link.book').label('count'))\ entries = db.session.query(db.Series, func.count('books_series_link.book').label('count'))\
.join(db.books_series_link).join(db.Books)\ .join(db.books_series_link).join(db.Books).filter(common_filters())\
.filter(lang_filter).filter(~content_rating_filter)\
.group_by('books_series_link.series').order_by(db.Series.sort).all() .group_by('books_series_link.series').order_by(db.Series.sort).all()
return render_title_template('list.html', entries=entries, folder='series', title=_(u"Series list")) return render_title_template('list.html', entries=entries, folder='series', title=_(u"Series list"))
@ -1261,15 +1239,8 @@ def language(name, page):
@app.route("/category") @app.route("/category")
@login_required_if_no_ano @login_required_if_no_ano
def category_list(): def category_list():
if current_user.filter_language() != "all":
lang_filter = db.Books.languages.any(db.Languages.lang_code == current_user.filter_language())
else:
lang_filter = True
content_rating_filter = false() if current_user.mature_content else \
db.Books.tags.any(db.Tags.name.in_(config.mature_content_tags()))
entries = db.session.query(db.Tags, func.count('books_tags_link.book').label('count'))\ entries = db.session.query(db.Tags, func.count('books_tags_link.book').label('count'))\
.join(db.books_tags_link).join(db.Books)\ .join(db.books_tags_link).join(db.Books).filter(common_filters())\
.filter(lang_filter).filter(~content_rating_filter)\
.group_by('books_tags_link.tag').all() .group_by('books_tags_link.tag').all()
return render_title_template('list.html', entries=entries, folder='category', title=_(u"Category list")) return render_title_template('list.html', entries=entries, folder='category', title=_(u"Category list"))
@ -1307,14 +1278,7 @@ def toggle_read(book_id):
@app.route("/book/<int:book_id>") @app.route("/book/<int:book_id>")
@login_required_if_no_ano @login_required_if_no_ano
def show_book(book_id): def show_book(book_id):
if current_user.filter_language() != "all": entries = db.session.query(db.Books).filter(db.Books.id == book_id).filter(common_filters()).first()
lang_filter = db.Books.languages.any(db.Languages.lang_code == current_user.filter_language())
else:
lang_filter = True
content_rating_filter = false() if current_user.mature_content else \
db.Books.tags.any(db.Tags.name.in_(config.mature_content_tags()))
entries = db.session.query(db.Books)\
.filter(db.Books.id == book_id).filter(lang_filter).filter(~content_rating_filter).first()
if entries: if entries:
for index in range(0, len(entries.languages)): for index in range(0, len(entries.languages)):
try: try:
@ -1587,18 +1551,12 @@ def update():
def search(): def search():
term = request.args.get("query").strip() term = request.args.get("query").strip()
if term: if term:
if current_user.filter_language() != "all":
lang_filter = db.Books.languages.any(db.Languages.lang_code == current_user.filter_language())
else:
lang_filter = True
content_rating_filter = false() if current_user.mature_content else \
db.Books.tags.any(db.Tags.name.in_(config.mature_content_tags()))
entries = db.session.query(db.Books).filter(db.or_(db.Books.tags.any(db.Tags.name.like("%" + term + "%")), entries = db.session.query(db.Books).filter(db.or_(db.Books.tags.any(db.Tags.name.like("%" + term + "%")),
db.Books.series.any(db.Series.name.like("%" + term + "%")), db.Books.series.any(db.Series.name.like("%" + term + "%")),
db.Books.authors.any(db.Authors.name.like("%" + term + "%")), db.Books.authors.any(db.Authors.name.like("%" + term + "%")),
db.Books.publishers.any(db.Publishers.name.like("%" + term + "%")), db.Books.publishers.any(db.Publishers.name.like("%" + term + "%")),
db.Books.title.like("%" + term + "%")))\ db.Books.title.like("%" + term + "%")))\
.filter(lang_filter).filter(~content_rating_filter).all() .filter(common_filters()).all()
return render_title_template('search.html', searchterm=term, entries=entries) return render_title_template('search.html', searchterm=term, entries=entries)
else: else:
return render_title_template('search.html', searchterm="") return render_title_template('search.html', searchterm="")
@ -2741,14 +2699,8 @@ def edit_book(book_id):
# create the function for sorting... # create the function for sorting...
db.session.connection().connection.connection.create_function("title_sort", 1, db.title_sort) db.session.connection().connection.connection.create_function("title_sort", 1, db.title_sort)
cc = db.session.query(db.Custom_Columns).filter(db.Custom_Columns.datatype.notin_(db.cc_exceptions)).all() cc = db.session.query(db.Custom_Columns).filter(db.Custom_Columns.datatype.notin_(db.cc_exceptions)).all()
if current_user.filter_language() != "all":
lang_filter = db.Books.languages.any(db.Languages.lang_code == current_user.filter_language())
else:
lang_filter = True
content_rating_filter = false() if current_user.mature_content else \
db.Books.tags.any(db.Tags.name.in_(config.mature_content_tags()))
book = db.session.query(db.Books)\ book = db.session.query(db.Books)\
.filter(db.Books.id == book_id).filter(lang_filter).filter(~content_rating_filter).first() .filter(db.Books.id == book_id).filter(common_filters()).first()
author_names = [] author_names = []
# Book not found # Book not found
@ -2992,8 +2944,8 @@ def upload():
tags = meta.tags tags = meta.tags
series = meta.series series = meta.series
series_index = meta.series_id series_index = meta.series_id
title_dir = helper.get_valid_filename(title, False) title_dir = helper.get_valid_filename(title)
author_dir = helper.get_valid_filename(author, False) author_dir = helper.get_valid_filename(author)
data_name = title_dir data_name = title_dir
filepath = config.config_calibre_dir + os.sep + author_dir + os.sep + title_dir filepath = config.config_calibre_dir + os.sep + author_dir + os.sep + title_dir
saved_filename = filepath + os.sep + data_name + meta.extension.lower() saved_filename = filepath + os.sep + data_name + meta.extension.lower()

@ -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: 2017-08-12 18:55+0200\n" "POT-Creation-Date: 2017-09-01 20:37+0200\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,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.4.0\n" "Generated-By: Babel 2.4.0\n"
#: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1374 #: cps/book_formats.py:118 cps/book_formats.py:122 cps/web.py:1341
msgid "not installed" msgid "not installed"
msgstr "" msgstr ""
@ -61,373 +61,373 @@ msgstr ""
msgid "Could not find any formats suitable for sending by email" msgid "Could not find any formats suitable for sending by email"
msgstr "" msgstr ""
#: cps/ub.py:542 #: cps/ub.py:543
msgid "Guest" msgid "Guest"
msgstr "" msgstr ""
#: cps/web.py:974 #: cps/web.py:953
msgid "Requesting update package" msgid "Requesting update package"
msgstr "" msgstr ""
#: cps/web.py:975 #: cps/web.py:954
msgid "Downloading update package" msgid "Downloading update package"
msgstr "" msgstr ""
#: cps/web.py:976 #: cps/web.py:955
msgid "Unzipping update package" msgid "Unzipping update package"
msgstr "" msgstr ""
#: cps/web.py:977 #: cps/web.py:956
msgid "Files are replaced" msgid "Files are replaced"
msgstr "" msgstr ""
#: cps/web.py:978 #: cps/web.py:957
msgid "Database connections are closed" msgid "Database connections are closed"
msgstr "" msgstr ""
#: cps/web.py:979 #: cps/web.py:958
msgid "Server is stopped" msgid "Server is stopped"
msgstr "" msgstr ""
#: cps/web.py:980 #: cps/web.py:959
msgid "Update finished, please press okay and reload page" msgid "Update finished, please press okay and reload page"
msgstr "" msgstr ""
#: cps/web.py:1054 #: cps/web.py:1033
msgid "Recently Added Books" msgid "Recently Added Books"
msgstr "" msgstr ""
#: cps/web.py:1063 #: cps/web.py:1042
msgid "Newest Books" msgid "Newest Books"
msgstr "" msgstr ""
#: cps/web.py:1072 #: cps/web.py:1051
msgid "Oldest Books" msgid "Oldest Books"
msgstr "" msgstr ""
#: cps/web.py:1081 #: cps/web.py:1060
msgid "Books (A-Z)" msgid "Books (A-Z)"
msgstr "" msgstr ""
#: cps/web.py:1090 #: cps/web.py:1069
msgid "Books (Z-A)" msgid "Books (Z-A)"
msgstr "" msgstr ""
#: cps/web.py:1126 #: cps/web.py:1099
msgid "Hot Books (most downloaded)" msgid "Hot Books (most downloaded)"
msgstr "" msgstr ""
#: cps/web.py:1136 #: cps/web.py:1109
msgid "Best rated books" msgid "Best rated books"
msgstr "" msgstr ""
#: cps/templates/index.xml:36 cps/web.py:1145 #: cps/templates/index.xml:35 cps/web.py:1118
msgid "Random Books" msgid "Random Books"
msgstr "" msgstr ""
#: cps/web.py:1161 #: cps/web.py:1127
msgid "Author list" msgid "Author list"
msgstr "" msgstr ""
#: cps/web.py:1181 cps/web.py:1212 cps/web.py:1351 cps/web.py:1835 #: cps/web.py:1137 cps/web.py:1193 cps/web.py:1318 cps/web.py:1796
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/templates/index.xml:71 cps/web.py:1198 #: cps/templates/index.xml:70 cps/web.py:1179
msgid "Series list" msgid "Series list"
msgstr "" msgstr ""
#: cps/web.py:1210 #: cps/web.py:1191
#, python-format #, python-format
msgid "Series: %(serie)s" msgid "Series: %(serie)s"
msgstr "" msgstr ""
#: cps/web.py:1243 #: cps/web.py:1224
msgid "Available languages" msgid "Available languages"
msgstr "" msgstr ""
#: cps/web.py:1258 #: cps/web.py:1239
#, python-format #, python-format
msgid "Language: %(name)s" msgid "Language: %(name)s"
msgstr "" msgstr ""
#: cps/templates/index.xml:64 cps/web.py:1274 #: cps/templates/index.xml:63 cps/web.py:1248
msgid "Category list" msgid "Category list"
msgstr "" msgstr ""
#: cps/web.py:1286 #: cps/web.py:1260
#, python-format #, python-format
msgid "Category: %(name)s" msgid "Category: %(name)s"
msgstr "" msgstr ""
#: cps/web.py:1385 #: cps/web.py:1352
msgid "Excecution permissions missing" msgid "Excecution permissions missing"
msgstr "" msgstr ""
#: cps/web.py:1399 #: cps/web.py:1366
msgid "Statistics" msgid "Statistics"
msgstr "" msgstr ""
#: cps/web.py:1563 #: cps/web.py:1530
msgid "Server restarted, please reload page" msgid "Server restarted, please reload page"
msgstr "" msgstr ""
#: cps/web.py:1565 #: cps/web.py:1532
msgid "Performing shutdown of server, please close window" msgid "Performing shutdown of server, please close window"
msgstr "" msgstr ""
#: cps/web.py:1581 #: cps/web.py:1548
msgid "Update done" msgid "Update done"
msgstr "" msgstr ""
#: cps/web.py:1662 cps/web.py:1675 #: cps/web.py:1623 cps/web.py:1636
msgid "search" msgid "search"
msgstr "" msgstr ""
#: cps/templates/index.xml:43 cps/templates/index.xml:47 #: cps/templates/index.xml:42 cps/templates/index.xml:46
#: cps/templates/layout.html:127 cps/web.py:1751 #: cps/templates/layout.html:127 cps/web.py:1712
msgid "Read Books" msgid "Read Books"
msgstr "" msgstr ""
#: cps/templates/index.xml:50 cps/templates/index.xml:54 #: cps/templates/index.xml:49 cps/templates/index.xml:53
#: cps/templates/layout.html:128 cps/web.py:1754 #: cps/templates/layout.html:128 cps/web.py:1715
msgid "Unread Books" msgid "Unread Books"
msgstr "" msgstr ""
#: cps/web.py:1821 cps/web.py:1823 cps/web.py:1825 cps/web.py:1832 #: cps/web.py:1782 cps/web.py:1784 cps/web.py:1786 cps/web.py:1793
msgid "Read a Book" msgid "Read a Book"
msgstr "" msgstr ""
#: cps/web.py:1888 cps/web.py:2513 #: cps/web.py:1849 cps/web.py:2474
msgid "Please fill out all fields!" msgid "Please fill out all fields!"
msgstr "" msgstr ""
#: cps/web.py:1889 cps/web.py:1905 cps/web.py:1910 cps/web.py:1912 #: cps/web.py:1850 cps/web.py:1866 cps/web.py:1871 cps/web.py:1873
msgid "register" msgid "register"
msgstr "" msgstr ""
#: cps/web.py:1904 #: cps/web.py:1865
msgid "An unknown error occured. Please try again later." msgid "An unknown error occured. Please try again later."
msgstr "" msgstr ""
#: cps/web.py:1909 #: cps/web.py:1870
msgid "This username or email address is already in use." msgid "This username or email address is already in use."
msgstr "" msgstr ""
#: cps/web.py:1928 cps/web.py:2024 #: cps/web.py:1889 cps/web.py:1985
#, 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:1933 #: cps/web.py:1894
msgid "Wrong Username or Password" msgid "Wrong Username or Password"
msgstr "" msgstr ""
#: cps/web.py:1939 cps/web.py:1960 #: cps/web.py:1900 cps/web.py:1921
msgid "login" msgid "login"
msgstr "" msgstr ""
#: cps/web.py:1972 cps/web.py:2003 #: cps/web.py:1933 cps/web.py:1964
msgid "Token not found" msgid "Token not found"
msgstr "" msgstr ""
#: cps/web.py:1980 cps/web.py:2011 #: cps/web.py:1941 cps/web.py:1972
msgid "Token has expired" msgid "Token has expired"
msgstr "" msgstr ""
#: cps/web.py:1988 #: cps/web.py:1949
msgid "Success! Please return to your device" msgid "Success! Please return to your device"
msgstr "" msgstr ""
#: cps/web.py:2038 #: cps/web.py:1999
msgid "Please configure the SMTP mail settings first..." msgid "Please configure the SMTP mail settings first..."
msgstr "" msgstr ""
#: cps/web.py:2042 #: cps/web.py:2003
#, python-format #, python-format
msgid "Book successfully send to %(kindlemail)s" msgid "Book successfully send to %(kindlemail)s"
msgstr "" msgstr ""
#: cps/web.py:2046 #: cps/web.py:2007
#, 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:2048 cps/web.py:2598 #: cps/web.py:2009 cps/web.py:2559
msgid "Please configure your kindle email address first..." msgid "Please configure your kindle email address first..."
msgstr "" msgstr ""
#: cps/web.py:2092 #: cps/web.py:2053
#, 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:2127 #: cps/web.py:2088
#, 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:2146 cps/web.py:2170 #: cps/web.py:2107 cps/web.py:2131
#, 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:2151 #: cps/web.py:2112
#, python-format #, python-format
msgid "Shelf %(title)s created" msgid "Shelf %(title)s created"
msgstr "" msgstr ""
#: cps/web.py:2153 cps/web.py:2181 #: cps/web.py:2114 cps/web.py:2142
msgid "There was an error" msgid "There was an error"
msgstr "" msgstr ""
#: cps/web.py:2154 cps/web.py:2156 #: cps/web.py:2115 cps/web.py:2117
msgid "create a shelf" msgid "create a shelf"
msgstr "" msgstr ""
#: cps/web.py:2179 #: cps/web.py:2140
#, python-format #, python-format
msgid "Shelf %(title)s changed" msgid "Shelf %(title)s changed"
msgstr "" msgstr ""
#: cps/web.py:2182 cps/web.py:2184 #: cps/web.py:2143 cps/web.py:2145
msgid "Edit a shelf" msgid "Edit a shelf"
msgstr "" msgstr ""
#: cps/web.py:2204 #: cps/web.py:2165
#, python-format #, python-format
msgid "successfully deleted shelf %(name)s" msgid "successfully deleted shelf %(name)s"
msgstr "" msgstr ""
#: cps/web.py:2226 #: cps/web.py:2187
#, python-format #, python-format
msgid "Shelf: '%(name)s'" msgid "Shelf: '%(name)s'"
msgstr "" msgstr ""
#: cps/web.py:2229 #: cps/web.py:2190
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:2261 #: cps/web.py:2222
#, python-format #, python-format
msgid "Change order of Shelf: '%(name)s'" msgid "Change order of Shelf: '%(name)s'"
msgstr "" msgstr ""
#: cps/web.py:2326 #: cps/web.py:2287
msgid "Found an existing account for this email address." msgid "Found an existing account for this email address."
msgstr "" msgstr ""
#: cps/web.py:2328 cps/web.py:2332 #: cps/web.py:2289 cps/web.py:2293
#, python-format #, python-format
msgid "%(name)s's profile" msgid "%(name)s's profile"
msgstr "" msgstr ""
#: cps/web.py:2329 #: cps/web.py:2290
msgid "Profile updated" msgid "Profile updated"
msgstr "" msgstr ""
#: cps/web.py:2343 #: cps/web.py:2304
msgid "Admin page" msgid "Admin page"
msgstr "" msgstr ""
#: cps/web.py:2467 #: cps/web.py:2428
msgid "Calibre-web configuration updated" msgid "Calibre-web configuration updated"
msgstr "" msgstr ""
#: cps/web.py:2474 cps/web.py:2480 cps/web.py:2494 #: cps/web.py:2435 cps/web.py:2441 cps/web.py:2455
msgid "Basic Configuration" msgid "Basic Configuration"
msgstr "" msgstr ""
#: cps/web.py:2478 #: cps/web.py:2439
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:34 cps/web.py:2515 cps/web.py:2568 #: cps/templates/admin.html:34 cps/web.py:2476 cps/web.py:2529
msgid "Add new user" msgid "Add new user"
msgstr "" msgstr ""
#: cps/web.py:2560 #: cps/web.py:2521
#, python-format #, python-format
msgid "User '%(user)s' created" msgid "User '%(user)s' created"
msgstr "" msgstr ""
#: cps/web.py:2564 #: cps/web.py:2525
msgid "Found an existing account for this email address or nickname." msgid "Found an existing account for this email address or nickname."
msgstr "" msgstr ""
#: cps/web.py:2586 #: cps/web.py:2547
msgid "Mail settings updated" msgid "Mail settings updated"
msgstr "" msgstr ""
#: cps/web.py:2593 #: cps/web.py:2554
#, 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:2596 #: cps/web.py:2557
#, 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:2600 #: cps/web.py:2561
msgid "E-Mail settings updated" msgid "E-Mail settings updated"
msgstr "" msgstr ""
#: cps/web.py:2601 #: cps/web.py:2562
msgid "Edit mail settings" msgid "Edit mail settings"
msgstr "" msgstr ""
#: cps/web.py:2630 #: cps/web.py:2591
#, python-format #, python-format
msgid "User '%(nick)s' deleted" msgid "User '%(nick)s' deleted"
msgstr "" msgstr ""
#: cps/web.py:2728 #: cps/web.py:2689
#, python-format #, python-format
msgid "User '%(nick)s' updated" msgid "User '%(nick)s' updated"
msgstr "" msgstr ""
#: cps/web.py:2731 #: cps/web.py:2692
msgid "An unknown error occured." msgid "An unknown error occured."
msgstr "" msgstr ""
#: cps/web.py:2734 #: cps/web.py:2695
#, python-format #, python-format
msgid "Edit User %(nick)s" msgid "Edit User %(nick)s"
msgstr "" msgstr ""
#: cps/web.py:2756 #: cps/web.py:2711
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:2771 cps/web.py:2954 cps/web.py:3078 #: cps/web.py:2726 cps/web.py:2898 cps/web.py:3041
msgid "edit metadata" msgid "edit metadata"
msgstr "" msgstr ""
#: cps/web.py:2783 cps/web.py:2787 #: cps/web.py:2738 cps/web.py:2742
msgid "unknown" msgid "unknown"
msgstr "" msgstr ""
#: cps/web.py:2972 #: cps/web.py:2935
#, python-format #, python-format
msgid "File extension \"%s\" is not allowed to be uploaded to this server" msgid "File extension \"%s\" is not allowed to be uploaded to this server"
msgstr "" msgstr ""
#: cps/web.py:2978 #: cps/web.py:2941
msgid "File to be uploaded must have an extension" msgid "File to be uploaded must have an extension"
msgstr "" msgstr ""
#: cps/web.py:2997 #: cps/web.py:2960
#, python-format #, python-format
msgid "Failed to create path %s (Permission denied)." msgid "Failed to create path %s (Permission denied)."
msgstr "" msgstr ""
#: cps/web.py:3002 #: cps/web.py:2965
#, python-format #, python-format
msgid "Failed to store file %s (Permission denied)." msgid "Failed to store file %s (Permission denied)."
msgstr "" msgstr ""
#: cps/web.py:3007 #: cps/web.py:2970
#, python-format #, python-format
msgid "Failed to delete file %s (Permission denied)." msgid "Failed to delete file %s (Permission denied)."
msgstr "" msgstr ""
@ -598,6 +598,18 @@ msgstr ""
msgid "Updating, please do not reload page" msgid "Updating, please do not reload page"
msgstr "" msgstr ""
#: cps/templates/author.html:15
msgid "via"
msgstr ""
#: cps/templates/author.html:23
msgid "In Library"
msgstr ""
#: cps/templates/author.html:69
msgid "More by"
msgstr ""
#: cps/templates/book_edit.html:16 #: cps/templates/book_edit.html:16
msgid "Delete Book" msgid "Delete Book"
msgstr "" msgstr ""
@ -606,12 +618,13 @@ msgstr ""
msgid "Book Title" msgid "Book Title"
msgstr "" msgstr ""
#: cps/templates/book_edit.html:26 cps/templates/book_edit.html:188 #: cps/templates/book_edit.html:26 cps/templates/book_edit.html:208
#: cps/templates/search_form.html:10 #: cps/templates/book_edit.html:226 cps/templates/search_form.html:10
msgid "Author" msgid "Author"
msgstr "" msgstr ""
#: cps/templates/book_edit.html:30 cps/templates/book_edit.html:190 #: cps/templates/book_edit.html:30 cps/templates/book_edit.html:213
#: cps/templates/book_edit.html:228
msgid "Description" msgid "Description"
msgstr "" msgstr ""
@ -694,33 +707,33 @@ msgstr ""
msgid "Go!" msgid "Go!"
msgstr "" msgstr ""
#: cps/templates/book_edit.html:168 #: cps/templates/book_edit.html:171
msgid "Click the cover to load metadata to the form" msgid "Click the cover to load metadata to the form"
msgstr "" msgstr ""
#: cps/templates/book_edit.html:172 cps/templates/book_edit.html:185 #: cps/templates/book_edit.html:183 cps/templates/book_edit.html:223
msgid "Loading..." msgid "Loading..."
msgstr "" msgstr ""
#: cps/templates/book_edit.html:175 cps/templates/layout.html:199 #: cps/templates/book_edit.html:188 cps/templates/layout.html:199
msgid "Close" msgid "Close"
msgstr "" msgstr ""
#: cps/templates/book_edit.html:186 #: cps/templates/book_edit.html:210 cps/templates/book_edit.html:227
msgid "Search error!" #: cps/templates/detail.html:125 cps/templates/search_form.html:14
msgid "Publisher"
msgstr "" msgstr ""
#: cps/templates/book_edit.html:187 #: cps/templates/book_edit.html:215 cps/templates/book_edit.html:229
msgid "No Result! Please try anonther keyword." msgid "Source"
msgstr "" msgstr ""
#: cps/templates/book_edit.html:189 cps/templates/detail.html:125 #: cps/templates/book_edit.html:224
#: cps/templates/search_form.html:14 msgid "Search error!"
msgid "Publisher"
msgstr "" msgstr ""
#: cps/templates/book_edit.html:191 #: cps/templates/book_edit.html:225
msgid "Source" msgid "No Result! Please try anonther keyword."
msgstr "" msgstr ""
#: cps/templates/config_edit.html:7 #: cps/templates/config_edit.html:7
@ -913,6 +926,11 @@ msgstr ""
msgid "Next" msgid "Next"
msgstr "" msgstr ""
#: cps/templates/feed.xml:29 cps/templates/index.xml:7
#: cps/templates/layout.html:40 cps/templates/layout.html:41
msgid "Search"
msgstr ""
#: cps/templates/index.html:5 #: cps/templates/index.html:5
msgid "Discover (Random Books)" msgid "Discover (Random Books)"
msgstr "" msgstr ""
@ -921,52 +939,47 @@ msgstr ""
msgid "Start" msgid "Start"
msgstr "" msgstr ""
#: cps/templates/index.xml:7 cps/templates/layout.html:40 #: cps/templates/index.xml:14 cps/templates/layout.html:121
#: cps/templates/layout.html:41
msgid "Search"
msgstr ""
#: cps/templates/index.xml:15 cps/templates/layout.html:121
msgid "Hot Books" msgid "Hot Books"
msgstr "" msgstr ""
#: cps/templates/index.xml:19 #: cps/templates/index.xml:18
msgid "Popular publications from this catalog based on Downloads." msgid "Popular publications from this catalog based on Downloads."
msgstr "" msgstr ""
#: cps/templates/index.xml:22 cps/templates/layout.html:124 #: cps/templates/index.xml:21 cps/templates/layout.html:124
msgid "Best rated Books" msgid "Best rated Books"
msgstr "" msgstr ""
#: cps/templates/index.xml:26 #: cps/templates/index.xml:25
msgid "Popular publications from this catalog based on Rating." msgid "Popular publications from this catalog based on Rating."
msgstr "" msgstr ""
#: cps/templates/index.xml:29 #: cps/templates/index.xml:28
msgid "New Books" msgid "New Books"
msgstr "" msgstr ""
#: cps/templates/index.xml:33 #: cps/templates/index.xml:32
msgid "The latest Books" msgid "The latest Books"
msgstr "" msgstr ""
#: cps/templates/index.xml:40 #: cps/templates/index.xml:39
msgid "Show Random Books" msgid "Show Random Books"
msgstr "" msgstr ""
#: cps/templates/index.xml:57 cps/templates/layout.html:139 #: cps/templates/index.xml:56 cps/templates/layout.html:139
msgid "Authors" msgid "Authors"
msgstr "" msgstr ""
#: cps/templates/index.xml:61 #: cps/templates/index.xml:60
msgid "Books ordered by Author" msgid "Books ordered by Author"
msgstr "" msgstr ""
#: cps/templates/index.xml:68 #: cps/templates/index.xml:67
msgid "Books ordered by category" msgid "Books ordered by category"
msgstr "" msgstr ""
#: cps/templates/index.xml:75 #: cps/templates/index.xml:74
msgid "Books ordered by series" msgid "Books ordered by series"
msgstr "" msgstr ""
@ -1126,7 +1139,7 @@ msgid "No Results for:"
msgstr "" msgstr ""
#: cps/templates/search.html:7 #: cps/templates/search.html:7
msgid "Please try a diffrent Search" msgid "Please try a different search"
msgstr "" msgstr ""
#: cps/templates/search.html:9 #: cps/templates/search.html:9

@ -11,4 +11,5 @@ PyYAML==3.12
rsa==3.4.2 rsa==3.4.2
six==1.10.0 six==1.10.0
uritemplate==3.0.0 uritemplate==3.0.0
goodreads==0.3.2 goodreads>=0.3.2
python-Levenshtein>=0.12.0

@ -30,7 +30,7 @@ Calibre Web is a web app providing a clean interface for browsing, reading and d
## Quick start ## Quick start
1. Install required dependencies by executing `pip install -r requirements.txt` 1. Install dependencies by running `pip install --target vendor -r requirements.txt`.
2. Execute the command: `python cps.py` (or `nohup python cps.py` - recommended if you want to exit the terminal window) 2. Execute the command: `python cps.py` (or `nohup python cps.py` - recommended if you want to exit the terminal window)
3. Point your browser to `http://localhost:8083` or `http://localhost:8083/opds` for the OPDS catalog 3. Point your browser to `http://localhost:8083` or `http://localhost:8083/opds` for the OPDS catalog
4. Set `Location of Calibre database` to the path of the folder where your Calibre library (metadata.db) lives, push "submit" button 4. Set `Location of Calibre database` to the path of the folder where your Calibre library (metadata.db) lives, push "submit" button
@ -70,7 +70,7 @@ Optionally, to enable on-the-fly conversion from EPUB to MOBI when using the sen
## Using Google Drive integration ## Using Google Drive integration
Additional optional dependencys are necessary to get this work. Please install all optional requirements by executing `pip install -r optional-requirements.txt` Additional optional dependencys are necessary to get this work. Please install all optional requirements by executing `pip install --target vendor -r optional-requirements.txt`
To use google drive integration, you have to use the google developer console to create a new app. https://console.developers.google.com To use google drive integration, you have to use the google developer console to create a new app. https://console.developers.google.com

Loading…
Cancel
Save