mirror of
				https://github.com/janeczku/calibre-web
				synced 2025-10-30 23:03:02 +00:00 
			
		
		
		
	Update pdf upload
Translation of uploadprogress dialog
This commit is contained in:
		| @@ -101,7 +101,7 @@ def default_meta(tmp_file_path, original_file_name, original_file_extension): | |||||||
| def pdf_meta(tmp_file_path, original_file_name, original_file_extension): | def pdf_meta(tmp_file_path, original_file_name, original_file_extension): | ||||||
|  |  | ||||||
|     if use_pdf_meta: |     if use_pdf_meta: | ||||||
|         pdf = PdfFileReader(open(tmp_file_path, 'rb')) |         pdf = PdfFileReader(open(tmp_file_path, 'rb'), strict=False) | ||||||
|         doc_info = pdf.getDocumentInfo() |         doc_info = pdf.getDocumentInfo() | ||||||
|     else: |     else: | ||||||
|         doc_info = None |         doc_info = None | ||||||
|   | |||||||
| @@ -230,7 +230,10 @@ def get_valid_filename(value, replace_whitespace=True): | |||||||
|     value = value[:128] |     value = value[:128] | ||||||
|     if not value: |     if not value: | ||||||
|         raise ValueError("Filename cannot be empty") |         raise ValueError("Filename cannot be empty") | ||||||
|  |     if sys.version_info.major == 3: | ||||||
|         return value |         return value | ||||||
|  |     else: | ||||||
|  |         return value.decode('utf-8') | ||||||
|  |  | ||||||
|  |  | ||||||
| def get_sorted_author(value): | def get_sorted_author(value): | ||||||
|   | |||||||
| @@ -6,41 +6,41 @@ | |||||||
|  * Version 1.0.0 |  * Version 1.0.0 | ||||||
|  * Licensed under the MIT license. |  * Licensed under the MIT license. | ||||||
|  */ |  */ | ||||||
| (function($){ | (function($) { | ||||||
|     "use strict"; |     "use strict"; | ||||||
|  |  | ||||||
|     $.support.xhrFileUpload = !!(window.FileReader && window.ProgressEvent); |     $.support.xhrFileUpload = !!(window.FileReader && window.ProgressEvent); | ||||||
|     $.support.xhrFormData = !!window.FormData; |     $.support.xhrFormData = !!window.FormData; | ||||||
|  |  | ||||||
|     if(!$.support.xhrFileUpload || !$.support.xhrFormData){ |     if (!$.support.xhrFileUpload || !$.support.xhrFormData) { | ||||||
|         // skip decorating form |         // skip decorating form | ||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     var template = '<div class="modal fade" id="file-progress-modal">\ |     var template = "<div class=\"modal fade\" id=\"file-progress-modal\">" + | ||||||
|   <div class="modal-dialog">\ |     "<div class=\"modal-dialog\">" + | ||||||
|     <div class="modal-content">\ |     "  <div class=\"modal-content\">" + | ||||||
|       <div class="modal-header">\ |     "    <div class=\"modal-header\">" + | ||||||
|         <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>\ |     "      <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\"><span aria-hidden=\"true\">×</span></button>" + | ||||||
|         <h4 class="modal-title">Uploading</h4>\ |     "      <h4 class=\"modal-title\">Uploading</h4>" + | ||||||
|       </div>\ |     "    </div>" + | ||||||
|       <div class="modal-body">\ |     "    <div class=\"modal-body\">" + | ||||||
|         <div class="modal-message"></div>\ |     "      <div class=\"modal-message\"></div>" + | ||||||
|         <div class="progress">\ |     "      <div class=\"progress\">" + | ||||||
|           <div class="progress-bar progress-bar-striped active" role="progressbar" aria-valuenow="0" aria-valuemin="0"\ |     "        <div class=\"progress-bar progress-bar-striped active\" role=\"progressbar\" aria-valuenow=\"0\" aria-valuemin=\"0\"" + | ||||||
|                aria-valuemax="100" style="width: 0%;min-width: 2em;">\ |     "             aria-valuemax=\"100\" style=\"width: 0%;min-width: 2em;\">" + | ||||||
|             0%\ |     "          0%" + | ||||||
|           </div>\ |     "        </div>" + | ||||||
|         </div>\ |     "     </div>" + | ||||||
|       </div>\ |     "   </div>" + | ||||||
|       <div class="modal-footer" style="display:none">\ |     "   <div class=\"modal-footer\" style=\"display:none\">" + | ||||||
|         <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>\ |     "     <button type=\"button\" class=\"btn btn-default\" data-dismiss=\"modal\">Close</button>" + | ||||||
|       </div>\ |     "   </div>" + | ||||||
|     </div>\ |     "   </div>" + | ||||||
|   </div>\ |     "  </div>" + | ||||||
| </div>'; |     "</div>"; | ||||||
|  |  | ||||||
|     var UploadProgress = function(element, options){ |     var UploadProgress = function(element, options) { | ||||||
|         this.options = options; |         this.options = options; | ||||||
|         this.$element = $(element); |         this.$element = $(element); | ||||||
|     }; |     }; | ||||||
| @@ -49,22 +49,25 @@ | |||||||
|  |  | ||||||
|         constructor: function() { |         constructor: function() { | ||||||
|             this.$form = this.$element; |             this.$form = this.$element; | ||||||
|             this.$form.on('submit', $.proxy(this.submit, this)); |             this.$form.on("submit", $.proxy(this.submit, this)); | ||||||
|             this.$modal = $(this.options.template); |             this.$modal = $(this.options.template); | ||||||
|             this.$modal_message = this.$modal.find('.modal-message'); |             this.$modalTitle = this.$modal.find(".modal-title"); | ||||||
|             this.$modal_title = this.$modal.find('.modal-title'); |             this.$modalFooter = this.$modal.find(".modal-footer"); | ||||||
|             this.$modal_footer = this.$modal.find('.modal-footer'); |             this.$modalBar = this.$modal.find(".progress-bar"); | ||||||
|             this.$modal_bar = this.$modal.find('.progress-bar'); |  | ||||||
|  |  | ||||||
|             this.$modal.on('hidden.bs.modal', $.proxy(this.reset, this)); |             // Translate texts | ||||||
|  |             this.$modalTitle.text(this.options.modalTitle) | ||||||
|  |             this.$modalFooter.children("button").text(this.options.modalFooter) | ||||||
|  |  | ||||||
|  |             this.$modal.on("hidden.bs.modal", $.proxy(this.reset, this)); | ||||||
|         }, |         }, | ||||||
|  |  | ||||||
|         reset: function(){ |         reset: function() { | ||||||
|             this.$modal_title = this.$modal_title.text('Uploading'); |             this.$modalTitle.text(this.options.modalTitle) | ||||||
|             this.$modal_footer.hide(); |             this.$modalFooter.hide(); | ||||||
|             this.$modal_bar.addClass('progress-bar-success'); |             this.$modalBar.addClass("progress-bar-success"); | ||||||
|             this.$modal_bar.removeClass('progress-bar-danger'); |             this.$modalBar.removeClass("progress-bar-danger"); | ||||||
|             if(this.xhr){ |             if (this.xhr) { | ||||||
|                 this.xhr.abort(); |                 this.xhr.abort(); | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
| @@ -73,7 +76,7 @@ | |||||||
|             e.preventDefault(); |             e.preventDefault(); | ||||||
|  |  | ||||||
|             this.$modal.modal({ |             this.$modal.modal({ | ||||||
|                 backdrop: 'static', |                 backdrop: "static", | ||||||
|                 keyboard: false |                 keyboard: false | ||||||
|             }); |             }); | ||||||
|  |  | ||||||
| @@ -81,35 +84,33 @@ | |||||||
|             var xhr = new XMLHttpRequest(); |             var xhr = new XMLHttpRequest(); | ||||||
|             this.xhr = xhr; |             this.xhr = xhr; | ||||||
|  |  | ||||||
|             xhr.addEventListener('load', $.proxy(this.success, this, xhr)); |             xhr.addEventListener("load", $.proxy(this.success, this, xhr)); | ||||||
|             xhr.addEventListener('error', $.proxy(this.error, this, xhr)); |             xhr.addEventListener("error", $.proxy(this.error, this, xhr)); | ||||||
|             //xhr.addEventListener('abort', function(){}); |  | ||||||
|  |  | ||||||
|             xhr.upload.addEventListener('progress', $.proxy(this.progress, this)); |             xhr.upload.addEventListener("progress", $.proxy(this.progress, this)); | ||||||
|  |  | ||||||
|             var form = this.$form; |             var form = this.$form; | ||||||
|  |  | ||||||
|             xhr.open(form.attr('method'), form.attr("action")); |             xhr.open(form.attr("method"), form.attr("action")); | ||||||
|             xhr.setRequestHeader('X-REQUESTED-WITH', 'XMLHttpRequest'); |             xhr.setRequestHeader("X-REQUESTED-WITH", "XMLHttpRequest"); | ||||||
|  |  | ||||||
|             var data = new FormData(form.get(0)); |             var data = new FormData(form.get(0)); | ||||||
|             xhr.send(data); |             xhr.send(data); | ||||||
|         }, |         }, | ||||||
|  |  | ||||||
|         success: function(xhr) { |         success: function(xhr) { | ||||||
|             if(xhr.status == 0 || xhr.status >= 400){ |             if (xhr.status === 0 || xhr.status >= 400) { | ||||||
|                 // HTTP 500 ends up here!?! |                 // HTTP 500 ends up here!?! | ||||||
|                 return this.error(xhr); |                 return this.error(xhr); | ||||||
|             } |             } | ||||||
|             this.set_progress(100); |             this.set_progress(100); | ||||||
|             var url; |             var url; | ||||||
|             var content_type = xhr.getResponseHeader('Content-Type'); |             var contentType = xhr.getResponseHeader("Content-Type"); | ||||||
|  |  | ||||||
|             // make it possible to return the redirect URL in |             // make it possible to return the redirect URL in | ||||||
|             // a JSON response |             // a JSON response | ||||||
|             if(content_type.indexOf('application/json') !== -1){ |             if (contentType.indexOf("application/json") !== -1) { | ||||||
|                 var response = $.parseJSON(xhr.responseText); |                 var response = $.parseJSON(xhr.responseText); | ||||||
|                 console.log(response); |  | ||||||
|                 url = response.location; |                 url = response.location; | ||||||
|             } |             } | ||||||
|             else{ |             else{ | ||||||
| @@ -120,39 +121,41 @@ | |||||||
|  |  | ||||||
|         // handle form error |         // handle form error | ||||||
|         // we replace the form with the returned one |         // we replace the form with the returned one | ||||||
|         error: function(xhr){ |         error: function(xhr) { | ||||||
|             this.$modal_title.text('Upload failed'); |             this.$modalTitle.text(this.options.modalTitleFailed); | ||||||
|  |  | ||||||
|             this.$modal_bar.removeClass('progress-bar-success'); |             this.$modalBar.removeClass("progress-bar-success"); | ||||||
|             this.$modal_bar.addClass('progress-bar-danger'); |             this.$modalBar.addClass("progress-bar-danger"); | ||||||
|             this.$modal_footer.show(); |             this.$modalFooter.show(); | ||||||
|  |  | ||||||
|             var content_type = xhr.getResponseHeader('Content-Type'); |  | ||||||
|  |  | ||||||
|  |             var contentType = xhr.getResponseHeader("Content-Type"); | ||||||
|             // Replace the contents of the form, with the returned html |             // Replace the contents of the form, with the returned html | ||||||
|             if(xhr.status === 422){ |             if (xhr.status === 422) { | ||||||
|                 var new_html = $.parseHTML(xhr.responseText); |                 var newHtml = $.parseHTML(xhr.responseText); | ||||||
|                 this.replace_form(new_html); |                 this.replace_form(newHtml); | ||||||
|                 this.$modal.modal('hide'); |                 this.$modal.modal("hide"); | ||||||
|             } |             } | ||||||
|             // Write the error response to the document. |             // Write the error response to the document. | ||||||
|             else{ |             else{ | ||||||
|                 var response_text = xhr.responseText; |                 var responseText = xhr.responseText; | ||||||
|                 if(content_type.indexOf('text/plain') !== -1){ |                 // Handle no response error | ||||||
|                     response_text = '<pre>' + response_text + '</pre>'; |                 if (contentType) { | ||||||
|  |                     if (contentType.indexOf("text/plain") !== -1) { | ||||||
|  |                         responseText = "<pre>" + responseText + "</pre>"; | ||||||
|                     } |                     } | ||||||
|                     document.write(xhr.responseText); |                     document.write(xhr.responseText); | ||||||
|                 } |                 } | ||||||
|  |             } | ||||||
|         }, |         }, | ||||||
|  |  | ||||||
|         set_progress: function(percent){ |         set_progress: function(percent){ | ||||||
|             var txt = percent + '%'; |             var txt = percent + "%"; | ||||||
|             if (percent == 100) { |             if (percent == 100) { | ||||||
|                 txt = this.options.uploaded_msg; |                 txt = this.options.uploadedMsg; | ||||||
|             } |             } | ||||||
|             this.$modal_bar.attr('aria-valuenow', percent); |             this.$modalBar.attr("aria-valuenow", percent); | ||||||
|             this.$modal_bar.text(txt); |             this.$modalBar.text(txt); | ||||||
|             this.$modal_bar.css('width', percent + '%'); |             this.$modalBar.css("width", percent + "%"); | ||||||
|         }, |         }, | ||||||
|  |  | ||||||
|         progress: function(/*ProgressEvent*/e){ |         progress: function(/*ProgressEvent*/e){ | ||||||
| @@ -163,24 +166,23 @@ | |||||||
|         // replace_form replaces the contents of the current form |         // replace_form replaces the contents of the current form | ||||||
|         // with the form in the html argument. |         // with the form in the html argument. | ||||||
|         // We use the id of the current form to find the new form in the html |         // We use the id of the current form to find the new form in the html | ||||||
|         replace_form: function(html){ |         replace_form: function(html) { | ||||||
|             var new_form; |             var newForm; | ||||||
|             var form_id = this.$form.attr('id'); |             var formId = this.$form.attr("id"); | ||||||
|             if(form_id !== undefined){ |             if(formId !== undefined){ | ||||||
|                 new_form = $(html).find('#' + form_id); |                 newForm = $(html).find("#" + formId); | ||||||
|             } |             } | ||||||
|             else{ |             else{ | ||||||
|                 new_form = $(html).find('form'); |                 newForm = $(html).find("form"); | ||||||
|             } |             } | ||||||
|  |  | ||||||
|             // add the filestyle again |             // add the filestyle again | ||||||
|             new_form.find(':file').filestyle({buttonBefore: true}); |             newForm.find(":file").filestyle({buttonBefore: true}); | ||||||
|             this.$form.html(new_form.children()); |             this.$form.html(newForm.children()); | ||||||
|         } |         } | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|     $.fn.uploadprogress = function(options, value){ |     $.fn.uploadprogress = function(options, value){ | ||||||
|         return this.each(function(){ |         return this.each(function() { | ||||||
|             var _options = $.extend({}, $.fn.uploadprogress.defaults, options); |             var _options = $.extend({}, $.fn.uploadprogress.defaults, options); | ||||||
|             var file_progress = new UploadProgress(this, _options); |             var file_progress = new UploadProgress(this, _options); | ||||||
|             file_progress.constructor(); |             file_progress.constructor(); | ||||||
| @@ -189,9 +191,11 @@ | |||||||
|  |  | ||||||
|     $.fn.uploadprogress.defaults = { |     $.fn.uploadprogress.defaults = { | ||||||
|         template: template, |         template: template, | ||||||
|         uploaded_msg: "Upload done, processing, please wait..." |         uploadedMsg: "Upload done, processing, please wait...", | ||||||
|  |         modalTitle: "Uploading", | ||||||
|  |         modalFooter: "Close", | ||||||
|  |         modalTitleFailed: "Upload failed" | ||||||
|         //redirect_url: ... |         //redirect_url: ... | ||||||
|  |  | ||||||
|         // need to customize stuff? Add here, and change code accordingly. |         // need to customize stuff? Add here, and change code accordingly. | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -250,7 +250,13 @@ | |||||||
|     {% endif %} |     {% endif %} | ||||||
|     <script type="text/javascript"> |     <script type="text/javascript"> | ||||||
|         $(function() { |         $(function() { | ||||||
|             $("#form-upload").uploadprogress({redirect_url: '{{ url_for('index')}}'}); |             $("#form-upload").uploadprogress({ | ||||||
|  |               redirect_url: "{{ url_for('index')}}", | ||||||
|  |               uploadedMsg: "{{_('Upload done, processing, please wait...')}}", | ||||||
|  |               modalTitle: "{{_('Uploading...')}}", | ||||||
|  |               modalFooter: "{{_('Close')}}", | ||||||
|  |               modalTitleFailed: "{{_('Error')}}" | ||||||
|  |             }); | ||||||
|             $("#btn-upload").change(function() { |             $("#btn-upload").change(function() { | ||||||
|                 $("#form-upload").submit(); |                 $("#form-upload").submit(); | ||||||
|             }); |             }); | ||||||
|   | |||||||
										
											Binary file not shown.
										
									
								
							| @@ -7,7 +7,7 @@ msgid "" | |||||||
| msgstr "" | msgstr "" | ||||||
| "Project-Id-Version:  Calibre-Web\n" | "Project-Id-Version:  Calibre-Web\n" | ||||||
| "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" | "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" | ||||||
| "POT-Creation-Date: 2019-02-03 16:21+0100\n" | "POT-Creation-Date: 2019-02-20 20:23+0100\n" | ||||||
| "PO-Revision-Date: 2019-01-20 19:36+0100\n" | "PO-Revision-Date: 2019-01-20 19:36+0100\n" | ||||||
| "Last-Translator: Ozzie Isaacs\n" | "Last-Translator: Ozzie Isaacs\n" | ||||||
| "Language: de\n" | "Language: de\n" | ||||||
| @@ -18,8 +18,8 @@ msgstr "" | |||||||
| "Content-Transfer-Encoding: 8bit\n" | "Content-Transfer-Encoding: 8bit\n" | ||||||
| "Generated-By: Babel 2.6.0\n" | "Generated-By: Babel 2.6.0\n" | ||||||
|  |  | ||||||
| #: cps/book_formats.py:145 cps/book_formats.py:146 cps/book_formats.py:150 | #: cps/book_formats.py:152 cps/book_formats.py:153 cps/book_formats.py:157 | ||||||
| #: cps/book_formats.py:154 cps/converter.py:29 cps/converter.py:45 | #: cps/book_formats.py:161 cps/converter.py:29 cps/converter.py:45 | ||||||
| msgid "not installed" | msgid "not installed" | ||||||
| msgstr "Nicht installiert" | msgstr "Nicht installiert" | ||||||
|  |  | ||||||
| @@ -31,132 +31,132 @@ msgstr "Ausführungsberechtigung nicht vorhanden" | |||||||
| msgid "not configured" | msgid "not configured" | ||||||
| msgstr "Nicht konfiguriert" | msgstr "Nicht konfiguriert" | ||||||
|  |  | ||||||
| #: cps/helper.py:77 | #: cps/helper.py:72 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "%(format)s format not found for book id: %(book)d" | msgid "%(format)s format not found for book id: %(book)d" | ||||||
| msgstr "%(format)s Format nicht gefunden bei Buch ID %(book)d" | msgstr "%(format)s Format nicht gefunden bei Buch ID %(book)d" | ||||||
|  |  | ||||||
| #: cps/helper.py:89 | #: cps/helper.py:84 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "%(format)s not found on Google Drive: %(fn)s" | msgid "%(format)s not found on Google Drive: %(fn)s" | ||||||
| msgstr "%(format)s von Buch %(fn)s nicht auf Google Drive gefunden" | msgstr "%(format)s von Buch %(fn)s nicht auf Google Drive gefunden" | ||||||
|  |  | ||||||
| #: cps/helper.py:96 cps/helper.py:204 cps/templates/detail.html:49 | #: cps/helper.py:91 cps/helper.py:199 cps/templates/detail.html:49 | ||||||
| msgid "Send to Kindle" | msgid "Send to Kindle" | ||||||
| msgstr "An Kindle senden" | msgstr "An Kindle senden" | ||||||
|  |  | ||||||
| #: cps/helper.py:97 cps/helper.py:115 cps/helper.py:206 | #: cps/helper.py:92 cps/helper.py:110 cps/helper.py:201 | ||||||
| msgid "This e-mail has been sent via Calibre-Web." | msgid "This e-mail has been sent via Calibre-Web." | ||||||
| msgstr "Diese E-Mail wurde durch Calibre-Web versendet." | msgstr "Diese E-Mail wurde durch Calibre-Web versendet." | ||||||
|  |  | ||||||
| #: cps/helper.py:108 | #: cps/helper.py:103 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "%(format)s not found: %(fn)s" | msgid "%(format)s not found: %(fn)s" | ||||||
| msgstr "%(format)s nicht gefunden: %(fn)s" | msgstr "%(format)s nicht gefunden: %(fn)s" | ||||||
|  |  | ||||||
| #: cps/helper.py:113 | #: cps/helper.py:108 | ||||||
| msgid "Calibre-Web test e-mail" | msgid "Calibre-Web test e-mail" | ||||||
| msgstr "Calibre-Web Test E-Mail" | msgstr "Calibre-Web Test E-Mail" | ||||||
|  |  | ||||||
| #: cps/helper.py:114 | #: cps/helper.py:109 | ||||||
| msgid "Test e-mail" | msgid "Test e-mail" | ||||||
| msgstr "Test E-Mail" | msgstr "Test E-Mail" | ||||||
|  |  | ||||||
| #: cps/helper.py:130 | #: cps/helper.py:125 | ||||||
| msgid "Get Started with Calibre-Web" | msgid "Get Started with Calibre-Web" | ||||||
| msgstr "Loslegen mit Calibre-Web" | msgstr "Loslegen mit Calibre-Web" | ||||||
|  |  | ||||||
| #: cps/helper.py:131 | #: cps/helper.py:126 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Registration e-mail for user: %(name)s" | msgid "Registration e-mail for user: %(name)s" | ||||||
| msgstr "Registrierungs E-Mail für Benutzer %(name)s" | msgstr "Registrierungs E-Mail für Benutzer %(name)s" | ||||||
|  |  | ||||||
| #: cps/helper.py:144 cps/helper.py:146 cps/helper.py:148 cps/helper.py:150 | #: cps/helper.py:139 cps/helper.py:141 cps/helper.py:143 cps/helper.py:145 | ||||||
| #: cps/helper.py:156 cps/helper.py:158 cps/helper.py:160 cps/helper.py:162 | #: cps/helper.py:151 cps/helper.py:153 cps/helper.py:155 cps/helper.py:157 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Send %(format)s to Kindle" | msgid "Send %(format)s to Kindle" | ||||||
| msgstr "Sende %(format)s an Kindle" | msgstr "Sende %(format)s an Kindle" | ||||||
|  |  | ||||||
| #: cps/helper.py:166 cps/helper.py:170 | #: cps/helper.py:161 cps/helper.py:165 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Convert %(orig)s to %(format)s and send to Kindle" | msgid "Convert %(orig)s to %(format)s and send to Kindle" | ||||||
| msgstr "Konvertiere %(orig)s nach %(format)s und sende an Kindle" | msgstr "Konvertiere %(orig)s nach %(format)s und sende an Kindle" | ||||||
|  |  | ||||||
| #: cps/helper.py:205 | #: cps/helper.py:200 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "E-mail: %(book)s" | msgid "E-mail: %(book)s" | ||||||
| msgstr "E-Mail: %(book)s" | msgstr "E-Mail: %(book)s" | ||||||
|  |  | ||||||
| #: cps/helper.py:208 | #: cps/helper.py:203 | ||||||
| msgid "The requested file could not be read. Maybe wrong permissions?" | msgid "The requested file could not be read. Maybe wrong permissions?" | ||||||
| msgstr "Die angeforderte Datei konnte nicht gelesen werden. Evtl. falsche Zugriffsrechte?" | msgstr "Die angeforderte Datei konnte nicht gelesen werden. Evtl. falsche Zugriffsrechte?" | ||||||
|  |  | ||||||
| #: cps/helper.py:313 | #: cps/helper.py:308 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" | msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" | ||||||
| msgstr "Umbenennen des Titelpfades '%(src)s' nach '%(dest)s' schlug fehl: %(error)s" | msgstr "Umbenennen des Titelpfades '%(src)s' nach '%(dest)s' schlug fehl: %(error)s" | ||||||
|  |  | ||||||
| #: cps/helper.py:323 | #: cps/helper.py:318 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" | msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" | ||||||
| msgstr "Umbenennen des Authorpfades '%(src)s' nach '%(dest)s' schlug fehl: %(error)s" | msgstr "Umbenennen des Authorpfades '%(src)s' nach '%(dest)s' schlug fehl: %(error)s" | ||||||
|  |  | ||||||
| #: cps/helper.py:337 | #: cps/helper.py:332 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" | msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" | ||||||
| msgstr "Umbenennen der Datei im Pfad '%(src)s' nach '%(dest)s' ist fehlgeschlagen: %(error)s" | msgstr "Umbenennen der Datei im Pfad '%(src)s' nach '%(dest)s' ist fehlgeschlagen: %(error)s" | ||||||
|  |  | ||||||
| #: cps/helper.py:362 cps/helper.py:371 | #: cps/helper.py:358 cps/helper.py:368 cps/helper.py:376 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "File %(file)s not found on Google Drive" | msgid "File %(file)s not found on Google Drive" | ||||||
| msgstr "Datei %(file)s wurde nicht auf Google Drive gefunden" | msgstr "Datei %(file)s wurde nicht auf Google Drive gefunden" | ||||||
|  |  | ||||||
| #: cps/helper.py:402 | #: cps/helper.py:397 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Book path %(path)s not found on Google Drive" | msgid "Book path %(path)s not found on Google Drive" | ||||||
| msgstr "Buchpfad %(path)s wurde nicht auf Google Drive gefunden" | msgstr "Buchpfad %(path)s wurde nicht auf Google Drive gefunden" | ||||||
|  |  | ||||||
| #: cps/helper.py:510 | #: cps/helper.py:505 | ||||||
| msgid "Error excecuting UnRar" | msgid "Error excecuting UnRar" | ||||||
| msgstr "Fehler bei der Ausführung von UnRar" | msgstr "Fehler bei der Ausführung von UnRar" | ||||||
|  |  | ||||||
| #: cps/helper.py:512 | #: cps/helper.py:507 | ||||||
| msgid "Unrar binary file not found" | msgid "Unrar binary file not found" | ||||||
| msgstr "UnRar Datei nicht gefunden" | msgstr "UnRar Datei nicht gefunden" | ||||||
|  |  | ||||||
| #: cps/helper.py:543 | #: cps/helper.py:538 | ||||||
| msgid "Waiting" | msgid "Waiting" | ||||||
| msgstr "Wartend" | msgstr "Wartend" | ||||||
|  |  | ||||||
| #: cps/helper.py:545 | #: cps/helper.py:540 | ||||||
| msgid "Failed" | msgid "Failed" | ||||||
| msgstr "Fehlgeschlagen" | msgstr "Fehlgeschlagen" | ||||||
|  |  | ||||||
| #: cps/helper.py:547 | #: cps/helper.py:542 | ||||||
| msgid "Started" | msgid "Started" | ||||||
| msgstr "Gestartet" | msgstr "Gestartet" | ||||||
|  |  | ||||||
| #: cps/helper.py:549 | #: cps/helper.py:544 | ||||||
| msgid "Finished" | msgid "Finished" | ||||||
| msgstr "Beendet" | msgstr "Beendet" | ||||||
|  |  | ||||||
| #: cps/helper.py:551 | #: cps/helper.py:546 | ||||||
| msgid "Unknown Status" | msgid "Unknown Status" | ||||||
| msgstr "Unbekannter Status" | msgstr "Unbekannter Status" | ||||||
|  |  | ||||||
| #: cps/helper.py:556 | #: cps/helper.py:551 | ||||||
| msgid "E-mail: " | msgid "E-mail: " | ||||||
| msgstr "E-Mail: " | msgstr "E-Mail: " | ||||||
|  |  | ||||||
| #: cps/helper.py:558 cps/helper.py:562 | #: cps/helper.py:553 cps/helper.py:557 | ||||||
| msgid "Convert: " | msgid "Convert: " | ||||||
| msgstr "Konvertiere: " | msgstr "Konvertiere: " | ||||||
|  |  | ||||||
| #: cps/helper.py:560 | #: cps/helper.py:555 | ||||||
| msgid "Upload: " | msgid "Upload: " | ||||||
| msgstr "Upload: " | msgstr "Upload: " | ||||||
|  |  | ||||||
| #: cps/helper.py:564 | #: cps/helper.py:559 | ||||||
| msgid "Unknown Task: " | msgid "Unknown Task: " | ||||||
| msgstr "Unbekannte Aufgabe: " | msgstr "Unbekannte Aufgabe: " | ||||||
|  |  | ||||||
| @@ -201,7 +201,7 @@ msgstr "Keine Release Informationen verfügbar" | |||||||
| msgid "A new update is available. Click on the button below to update to version: %(version)s" | msgid "A new update is available. Click on the button below to update to version: %(version)s" | ||||||
| msgstr "Ein neues Update ist verfügbar. Klicke auf den Button unten, um auf Version: %(version)s zu aktualisieren" | msgstr "Ein neues Update ist verfügbar. Klicke auf den Button unten, um auf Version: %(version)s zu aktualisieren" | ||||||
|  |  | ||||||
| #: cps/updater.py:491 cps/web.py:2766 | #: cps/updater.py:491 cps/web.py:2767 | ||||||
| msgid "Unknown" | msgid "Unknown" | ||||||
| msgstr "Unbekannt" | msgstr "Unbekannt" | ||||||
|  |  | ||||||
| @@ -269,7 +269,7 @@ msgstr "Best bewertete Bücher" | |||||||
| msgid "Random Books" | msgid "Random Books" | ||||||
| msgstr "Zufällige Bücher" | msgstr "Zufällige Bücher" | ||||||
|  |  | ||||||
| #: cps/web.py:1337 cps/web.py:1592 cps/web.py:2135 | #: cps/web.py:1337 cps/web.py:1592 cps/web.py:2136 | ||||||
| msgid "Error opening eBook. File does not exist or file is not accessible:" | msgid "Error opening eBook. File does not exist or file is not accessible:" | ||||||
| msgstr "Buch öffnen fehlgeschlagen. Datei existiert nicht, oder ist nicht zugänglich:" | msgstr "Buch öffnen fehlgeschlagen. Datei existiert nicht, oder ist nicht zugänglich:" | ||||||
|  |  | ||||||
| @@ -309,7 +309,7 @@ msgstr "Kategorieliste" | |||||||
| msgid "Category: %(name)s" | msgid "Category: %(name)s" | ||||||
| msgstr "Kategorie: %(name)s" | msgstr "Kategorie: %(name)s" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:71 cps/web.py:1628 | #: cps/templates/layout.html:72 cps/web.py:1628 | ||||||
| msgid "Tasks" | msgid "Tasks" | ||||||
| msgstr "Aufgaben" | msgstr "Aufgaben" | ||||||
|  |  | ||||||
| @@ -319,7 +319,7 @@ msgstr "Statistiken" | |||||||
|  |  | ||||||
| #: cps/web.py:1730 | #: cps/web.py:1730 | ||||||
| msgid "Google Drive setup not completed, try to deactivate and activate Google Drive again" | msgid "Google Drive setup not completed, try to deactivate and activate Google Drive again" | ||||||
| msgstr "" | msgstr "Google Drive setup is nicht komplett, bitte versuche Google Drive zu deaktivieren und aktiviere es anschließend wieder" | ||||||
|  |  | ||||||
| #: cps/web.py:1775 | #: cps/web.py:1775 | ||||||
| msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" | msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" | ||||||
| @@ -356,395 +356,395 @@ msgid "search" | |||||||
| msgstr "Suche" | msgstr "Suche" | ||||||
|  |  | ||||||
| #: cps/templates/index.xml:47 cps/templates/index.xml:51 | #: cps/templates/index.xml:47 cps/templates/index.xml:51 | ||||||
| #: cps/templates/layout.html:146 cps/web.py:2094 | #: cps/templates/layout.html:147 cps/web.py:2095 | ||||||
| msgid "Read Books" | msgid "Read Books" | ||||||
| msgstr "Gelesene Bücher" | msgstr "Gelesene Bücher" | ||||||
|  |  | ||||||
| #: cps/templates/index.xml:55 cps/templates/index.xml:59 | #: cps/templates/index.xml:55 cps/templates/index.xml:59 | ||||||
| #: cps/templates/layout.html:148 cps/web.py:2097 | #: cps/templates/layout.html:149 cps/web.py:2098 | ||||||
| msgid "Unread Books" | msgid "Unread Books" | ||||||
| msgstr "Ungelesene Bücher" | msgstr "Ungelesene Bücher" | ||||||
|  |  | ||||||
| #: cps/web.py:2145 cps/web.py:2147 cps/web.py:2149 cps/web.py:2161 | #: cps/web.py:2146 cps/web.py:2148 cps/web.py:2150 cps/web.py:2162 | ||||||
| msgid "Read a Book" | msgid "Read a Book" | ||||||
| msgstr "Lese ein Buch" | msgstr "Lese ein Buch" | ||||||
|  |  | ||||||
| #: cps/web.py:2220 cps/web.py:3138 | #: cps/web.py:2221 cps/web.py:3139 | ||||||
| msgid "Please fill out all fields!" | msgid "Please fill out all fields!" | ||||||
| msgstr "Bitte alle Felder ausfüllen!" | msgstr "Bitte alle Felder ausfüllen!" | ||||||
|  |  | ||||||
| #: cps/web.py:2221 cps/web.py:2243 cps/web.py:2247 cps/web.py:2252 | #: cps/web.py:2222 cps/web.py:2244 cps/web.py:2248 cps/web.py:2253 | ||||||
| #: cps/web.py:2254 | #: cps/web.py:2255 | ||||||
| msgid "register" | msgid "register" | ||||||
| msgstr "Registieren" | msgstr "Registieren" | ||||||
|  |  | ||||||
| #: cps/web.py:2242 cps/web.py:3357 | #: cps/web.py:2243 cps/web.py:3358 | ||||||
| msgid "An unknown error occurred. Please try again later." | msgid "An unknown error occurred. Please try again later." | ||||||
| msgstr "Es ist ein unbekannter Fehler aufgetreten. Bitte später erneut versuchen." | msgstr "Es ist ein unbekannter Fehler aufgetreten. Bitte später erneut versuchen." | ||||||
|  |  | ||||||
| #: cps/web.py:2245 | #: cps/web.py:2246 | ||||||
| msgid "Your e-mail is not allowed to register" | msgid "Your e-mail is not allowed to register" | ||||||
| msgstr "Diese E-Mail ist nicht für die Registrierung zugelassen" | msgstr "Diese E-Mail ist nicht für die Registrierung zugelassen" | ||||||
|  |  | ||||||
| #: cps/web.py:2248 | #: cps/web.py:2249 | ||||||
| msgid "Confirmation e-mail was send to your e-mail account." | msgid "Confirmation e-mail was send to your e-mail account." | ||||||
| msgstr "Eine Bestätigungs E-Mail wurde an den E-Mail Account versendet." | msgstr "Eine Bestätigungs E-Mail wurde an den E-Mail Account versendet." | ||||||
|  |  | ||||||
| #: cps/web.py:2251 | #: cps/web.py:2252 | ||||||
| msgid "This username or e-mail address is already in use." | msgid "This username or e-mail address is already in use." | ||||||
| msgstr "Benutzername oder E-Mailadresse ist bereits in Verwendung." | msgstr "Benutzername oder E-Mailadresse ist bereits in Verwendung." | ||||||
|  |  | ||||||
| #: cps/web.py:2268 cps/web.py:2364 | #: cps/web.py:2269 cps/web.py:2365 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "you are now logged in as: '%(nickname)s'" | msgid "you are now logged in as: '%(nickname)s'" | ||||||
| msgstr "Du bist nun eingeloggt als '%(nickname)s'" | msgstr "Du bist nun eingeloggt als '%(nickname)s'" | ||||||
|  |  | ||||||
| #: cps/web.py:2273 | #: cps/web.py:2274 | ||||||
| msgid "Wrong Username or Password" | msgid "Wrong Username or Password" | ||||||
| msgstr "Falscher Benutzername oder Passwort" | msgstr "Falscher Benutzername oder Passwort" | ||||||
|  |  | ||||||
| #: cps/web.py:2279 cps/web.py:2300 | #: cps/web.py:2280 cps/web.py:2301 | ||||||
| msgid "login" | msgid "login" | ||||||
| msgstr "Login" | msgstr "Login" | ||||||
|  |  | ||||||
| #: cps/web.py:2312 cps/web.py:2343 | #: cps/web.py:2313 cps/web.py:2344 | ||||||
| msgid "Token not found" | msgid "Token not found" | ||||||
| msgstr "Token wurde nicht gefunden" | msgstr "Token wurde nicht gefunden" | ||||||
|  |  | ||||||
| #: cps/web.py:2320 cps/web.py:2351 | #: cps/web.py:2321 cps/web.py:2352 | ||||||
| msgid "Token has expired" | msgid "Token has expired" | ||||||
| msgstr "Das Token ist abgelaufen" | msgstr "Das Token ist abgelaufen" | ||||||
|  |  | ||||||
| #: cps/web.py:2328 | #: cps/web.py:2329 | ||||||
| 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:2378 | #: cps/web.py:2379 | ||||||
| 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:2383 | #: cps/web.py:2384 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Book successfully queued for sending to %(kindlemail)s" | msgid "Book successfully queued for sending to %(kindlemail)s" | ||||||
| msgstr "Buch erfolgreich zum Senden an %(kindlemail)s eingereiht" | msgstr "Buch erfolgreich zum Senden an %(kindlemail)s eingereiht" | ||||||
|  |  | ||||||
| #: cps/web.py:2387 | #: cps/web.py:2388 | ||||||
| #, 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:2389 cps/web.py:3191 | #: cps/web.py:2390 cps/web.py:3192 | ||||||
| msgid "Please configure your kindle e-mail address first..." | msgid "Please configure your kindle e-mail address first..." | ||||||
| msgstr "Bitte zuerst die Kindle E-Mailadresse konfigurieren..." | msgstr "Bitte zuerst die Kindle E-Mailadresse konfigurieren..." | ||||||
|  |  | ||||||
| #: cps/web.py:2400 cps/web.py:2452 | #: cps/web.py:2401 cps/web.py:2453 | ||||||
| msgid "Invalid shelf specified" | msgid "Invalid shelf specified" | ||||||
| msgstr "Ungültiges Bücherregal angegeben" | msgstr "Ungültiges Bücherregal angegeben" | ||||||
|  |  | ||||||
| #: cps/web.py:2407 | #: cps/web.py:2408 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Sorry you are not allowed to add a book to the the shelf: %(shelfname)s" | msgid "Sorry you are not allowed to add a book to the the shelf: %(shelfname)s" | ||||||
| msgstr "Keine Erlaubnis ein Buch zum Bücherregale %(shelfname)s hinzuzufügen vorhanden" | msgstr "Keine Erlaubnis ein Buch zum Bücherregale %(shelfname)s hinzuzufügen vorhanden" | ||||||
|  |  | ||||||
| #: cps/web.py:2415 | #: cps/web.py:2416 | ||||||
| msgid "You are not allowed to edit public shelves" | msgid "You are not allowed to edit public shelves" | ||||||
| msgstr "Keine Erlaubnis öffentliche Bücherregale zu editieren vorhanden" | msgstr "Keine Erlaubnis öffentliche Bücherregale zu editieren vorhanden" | ||||||
|  |  | ||||||
| #: cps/web.py:2424 | #: cps/web.py:2425 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Book is already part of the shelf: %(shelfname)s" | msgid "Book is already part of the shelf: %(shelfname)s" | ||||||
| msgstr "Buch ist bereits Teil des Bücherregals %(shelfname)s" | msgstr "Buch ist bereits Teil des Bücherregals %(shelfname)s" | ||||||
|  |  | ||||||
| #: cps/web.py:2438 | #: cps/web.py:2439 | ||||||
| #, 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:2457 | #: cps/web.py:2458 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "You are not allowed to add a book to the the shelf: %(name)s" | msgid "You are not allowed to add a book to the the shelf: %(name)s" | ||||||
| msgstr "Keine Erlaubnis ein Buch zum Bücherregal %(name)s  hinzuzufügen" | msgstr "Keine Erlaubnis ein Buch zum Bücherregal %(name)s  hinzuzufügen" | ||||||
|  |  | ||||||
| #: cps/web.py:2462 | #: cps/web.py:2463 | ||||||
| msgid "User is not allowed to edit public shelves" | msgid "User is not allowed to edit public shelves" | ||||||
| msgstr "Benutzer hat keine Erlaubnis öffentliche Bücherregale zu editieren" | msgstr "Benutzer hat keine Erlaubnis öffentliche Bücherregale zu editieren" | ||||||
|  |  | ||||||
| #: cps/web.py:2480 | #: cps/web.py:2481 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Books are already part of the shelf: %(name)s" | msgid "Books are already part of the shelf: %(name)s" | ||||||
| msgstr "Bücher sind bereits Teil des Bücherregals %(name)s" | msgstr "Bücher sind bereits Teil des Bücherregals %(name)s" | ||||||
|  |  | ||||||
| #: cps/web.py:2494 | #: cps/web.py:2495 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Books have been added to shelf: %(sname)s" | msgid "Books have been added to shelf: %(sname)s" | ||||||
| msgstr "Bücher wurden zum Bücherregal %(sname)s hinzugefügt" | msgstr "Bücher wurden zum Bücherregal %(sname)s hinzugefügt" | ||||||
|  |  | ||||||
| #: cps/web.py:2496 | #: cps/web.py:2497 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Could not add books to shelf: %(sname)s" | msgid "Could not add books to shelf: %(sname)s" | ||||||
| msgstr "Bücher konnten nicht zum Bücherregal %(sname)s hinzugefügt werden" | msgstr "Bücher konnten nicht zum Bücherregal %(sname)s hinzugefügt werden" | ||||||
|  |  | ||||||
| #: cps/web.py:2533 | #: cps/web.py:2534 | ||||||
| #, 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:2539 | #: cps/web.py:2540 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Sorry you are not allowed to remove a book from this shelf: %(sname)s" | msgid "Sorry you are not allowed to remove a book from this shelf: %(sname)s" | ||||||
| msgstr "Keine Erlaubnis das Buch aus dem Bücherregal %(sname)s zu entfernen" | msgstr "Keine Erlaubnis das Buch aus dem Bücherregal %(sname)s zu entfernen" | ||||||
|  |  | ||||||
| #: cps/web.py:2560 cps/web.py:2584 | #: cps/web.py:2561 cps/web.py:2585 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "A shelf with the name '%(title)s' already exists." | msgid "A shelf with the name '%(title)s' already exists." | ||||||
| msgstr "Es existiert bereits ein Bücheregal mit dem Titel '%(title)s'." | msgstr "Es existiert bereits ein Bücheregal mit dem Titel '%(title)s'." | ||||||
|  |  | ||||||
| #: cps/web.py:2565 | #: cps/web.py:2566 | ||||||
| #, 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:2567 cps/web.py:2595 | #: cps/web.py:2568 cps/web.py:2596 | ||||||
| msgid "There was an error" | msgid "There was an error" | ||||||
| msgstr "Es trat ein Fehler auf" | msgstr "Es trat ein Fehler auf" | ||||||
|  |  | ||||||
| #: cps/web.py:2568 cps/web.py:2570 | #: cps/web.py:2569 cps/web.py:2571 | ||||||
| msgid "create a shelf" | msgid "create a shelf" | ||||||
| msgstr "Bücherregal erzeugen" | msgstr "Bücherregal erzeugen" | ||||||
|  |  | ||||||
| #: cps/web.py:2593 | #: cps/web.py:2594 | ||||||
| #, 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:2596 cps/web.py:2598 | #: cps/web.py:2597 cps/web.py:2599 | ||||||
| msgid "Edit a shelf" | msgid "Edit a shelf" | ||||||
| msgstr "Bücherregal editieren" | msgstr "Bücherregal editieren" | ||||||
|  |  | ||||||
| #: cps/web.py:2619 | #: cps/web.py:2620 | ||||||
| #, 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:2646 | #: cps/web.py:2647 | ||||||
| #, 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:2649 | #: cps/web.py:2650 | ||||||
| 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:2680 | #: cps/web.py:2681 | ||||||
| #, 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:2709 cps/web.py:3144 | #: cps/web.py:2710 cps/web.py:3145 | ||||||
| msgid "E-mail is not from valid domain" | msgid "E-mail is not from valid domain" | ||||||
| msgstr "E-Mail ist nicht Teil einer gültigen Domain" | msgstr "E-Mail ist nicht Teil einer gültigen Domain" | ||||||
|  |  | ||||||
| #: cps/web.py:2711 cps/web.py:2753 cps/web.py:2756 | #: cps/web.py:2712 cps/web.py:2754 cps/web.py:2757 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "%(name)s's profile" | msgid "%(name)s's profile" | ||||||
| msgstr "%(name)s's Profil" | msgstr "%(name)s's Profil" | ||||||
|  |  | ||||||
| #: cps/web.py:2751 | #: cps/web.py:2752 | ||||||
| msgid "Found an existing account for this e-mail address." | msgid "Found an existing account for this e-mail address." | ||||||
| msgstr "Es existiert bereits ein Benutzer für diese E-Mailadresse." | msgstr "Es existiert bereits ein Benutzer für diese E-Mailadresse." | ||||||
|  |  | ||||||
| #: cps/web.py:2754 | #: cps/web.py:2755 | ||||||
| msgid "Profile updated" | msgid "Profile updated" | ||||||
| msgstr "Profil aktualisiert" | msgstr "Profil aktualisiert" | ||||||
|  |  | ||||||
| #: cps/web.py:2785 | #: cps/web.py:2786 | ||||||
| msgid "Admin page" | msgid "Admin page" | ||||||
| msgstr "Admin Seite" | msgstr "Admin Seite" | ||||||
|  |  | ||||||
| #: cps/web.py:2867 cps/web.py:3047 | #: cps/web.py:2868 cps/web.py:3048 | ||||||
| msgid "Calibre-Web configuration updated" | msgid "Calibre-Web configuration updated" | ||||||
| msgstr "Calibre-Web Konfiguration wurde aktualisiert" | msgstr "Calibre-Web Konfiguration wurde aktualisiert" | ||||||
|  |  | ||||||
| #: cps/templates/admin.html:100 cps/web.py:2881 | #: cps/templates/admin.html:100 cps/web.py:2882 | ||||||
| msgid "UI Configuration" | msgid "UI Configuration" | ||||||
| msgstr "Konfiguration Benutzeroberfläche" | msgstr "Konfiguration Benutzeroberfläche" | ||||||
|  |  | ||||||
| #: cps/web.py:2899 | #: cps/web.py:2900 | ||||||
| msgid "Import of optional Google Drive requirements missing" | msgid "Import of optional Google Drive requirements missing" | ||||||
| msgstr "Optionale Abhängigkeiten für Google Drive fehlen" | msgstr "Optionale Abhängigkeiten für Google Drive fehlen" | ||||||
|  |  | ||||||
| #: cps/web.py:2902 | #: cps/web.py:2903 | ||||||
| msgid "client_secrets.json is missing or not readable" | msgid "client_secrets.json is missing or not readable" | ||||||
| msgstr "client_secrets.json nicht vorhanden, oder nicht lesbar" | msgstr "client_secrets.json nicht vorhanden, oder nicht lesbar" | ||||||
|  |  | ||||||
| #: cps/web.py:2907 cps/web.py:2936 | #: cps/web.py:2908 cps/web.py:2937 | ||||||
| msgid "client_secrets.json is not configured for web application" | msgid "client_secrets.json is not configured for web application" | ||||||
| msgstr "client_secrets.json nicht als Webapplication konfiguriert" | msgstr "client_secrets.json nicht als Webapplication konfiguriert" | ||||||
|  |  | ||||||
| #: cps/templates/admin.html:99 cps/web.py:2939 cps/web.py:2965 cps/web.py:2977 | #: cps/templates/admin.html:99 cps/web.py:2940 cps/web.py:2966 cps/web.py:2978 | ||||||
| #: cps/web.py:3022 cps/web.py:3037 cps/web.py:3056 cps/web.py:3064 | #: cps/web.py:3023 cps/web.py:3038 cps/web.py:3057 cps/web.py:3065 | ||||||
| #: cps/web.py:3080 | #: cps/web.py:3081 | ||||||
| msgid "Basic Configuration" | msgid "Basic Configuration" | ||||||
| msgstr "Basis Konfiguration" | msgstr "Basis Konfiguration" | ||||||
|  |  | ||||||
| #: cps/web.py:2962 | #: cps/web.py:2963 | ||||||
| msgid "Keyfile location is not valid, please enter correct path" | msgid "Keyfile location is not valid, please enter correct path" | ||||||
| msgstr "SSL-Keydatei Speicherort ist ungültig, bitte gültigen Pfad angeben" | msgstr "SSL-Keydatei Speicherort ist ungültig, bitte gültigen Pfad angeben" | ||||||
|  |  | ||||||
| #: cps/web.py:2974 | #: cps/web.py:2975 | ||||||
| msgid "Certfile location is not valid, please enter correct path" | msgid "Certfile location is not valid, please enter correct path" | ||||||
| msgstr "SSL-Certdatei Speicherort ist ungültig, bitte gültigen Pfad angeben" | msgstr "SSL-Certdatei Speicherort ist ungültig, bitte gültigen Pfad angeben" | ||||||
|  |  | ||||||
| #: cps/web.py:3019 | #: cps/web.py:3020 | ||||||
| msgid "Logfile location is not valid, please enter correct path" | msgid "Logfile location is not valid, please enter correct path" | ||||||
| msgstr "Speicherort Logdatei ist ungültig, bitte Pfad korrigieren" | msgstr "Speicherort Logdatei ist ungültig, bitte Pfad korrigieren" | ||||||
|  |  | ||||||
| #: cps/web.py:3060 | #: cps/web.py:3061 | ||||||
| msgid "DB location is not valid, please enter correct path" | msgid "DB location is not valid, please enter correct path" | ||||||
| msgstr "DB Speicherort ist ungültig, bitte Pfad korrigieren" | msgstr "DB Speicherort ist ungültig, bitte Pfad korrigieren" | ||||||
|  |  | ||||||
| #: cps/templates/admin.html:33 cps/web.py:3140 cps/web.py:3146 cps/web.py:3162 | #: cps/templates/admin.html:33 cps/web.py:3141 cps/web.py:3147 cps/web.py:3163 | ||||||
| msgid "Add new user" | msgid "Add new user" | ||||||
| msgstr "Neuen Benutzer hinzufügen" | msgstr "Neuen Benutzer hinzufügen" | ||||||
|  |  | ||||||
| #: cps/web.py:3152 | #: cps/web.py:3153 | ||||||
| #, 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:3156 | #: cps/web.py:3157 | ||||||
| msgid "Found an existing account for this e-mail address or nickname." | msgid "Found an existing account for this e-mail address or nickname." | ||||||
| msgstr "Es existiert bereits ein Account für diese E-Mailadresse oder Benutzernamen." | msgstr "Es existiert bereits ein Account für diese E-Mailadresse oder Benutzernamen." | ||||||
|  |  | ||||||
| #: cps/web.py:3186 | #: cps/web.py:3187 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Test e-mail successfully send to %(kindlemail)s" | msgid "Test e-mail successfully send to %(kindlemail)s" | ||||||
| msgstr "Test E-Mail wurde erfolgreich an %(kindlemail)s versendet" | msgstr "Test E-Mail wurde erfolgreich an %(kindlemail)s versendet" | ||||||
|  |  | ||||||
| #: cps/web.py:3189 | #: cps/web.py:3190 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "There was an error sending the Test e-mail: %(res)s" | msgid "There was an error sending the Test e-mail: %(res)s" | ||||||
| msgstr "Es trat ein Fehler beim Versenden der Test E-Mail auf: %(res)s" | msgstr "Es trat ein Fehler beim Versenden der Test E-Mail auf: %(res)s" | ||||||
|  |  | ||||||
| #: cps/web.py:3193 | #: cps/web.py:3194 | ||||||
| msgid "E-mail server settings updated" | msgid "E-mail server settings updated" | ||||||
| msgstr "E-Mail Server Einstellungen aktualisiert" | msgstr "E-Mail Server Einstellungen aktualisiert" | ||||||
|  |  | ||||||
| #: cps/web.py:3194 | #: cps/web.py:3195 | ||||||
| msgid "Edit e-mail server settings" | msgid "Edit e-mail server settings" | ||||||
| msgstr "E-Mail Server Einstellungen bearbeiten" | msgstr "E-Mail Server Einstellungen bearbeiten" | ||||||
|  |  | ||||||
| #: cps/web.py:3219 | #: cps/web.py:3220 | ||||||
| #, 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:3332 | #: cps/web.py:3333 | ||||||
| #, 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:3335 | #: cps/web.py:3336 | ||||||
| msgid "An unknown error occured." | msgid "An unknown error occured." | ||||||
| msgstr "Es ist ein unbekannter Fehler aufgetreten." | msgstr "Es ist ein unbekannter Fehler aufgetreten." | ||||||
|  |  | ||||||
| #: cps/web.py:3337 | #: cps/web.py:3338 | ||||||
| #, 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:3354 | #: cps/web.py:3355 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Password for user %(user)s reset" | msgid "Password for user %(user)s reset" | ||||||
| msgstr "Passwort für Benutzer %(user)s wurde zurückgesetzt" | msgstr "Passwort für Benutzer %(user)s wurde zurückgesetzt" | ||||||
|  |  | ||||||
| #: cps/web.py:3368 cps/web.py:3574 | #: cps/web.py:3369 cps/web.py:3575 | ||||||
| msgid "Error opening eBook. File does not exist or file is not accessible" | msgid "Error opening eBook. File does not exist or file is not accessible" | ||||||
| msgstr "Buch öffnen fehlgeschlagen. Datei existiert nicht, oder ist nicht zugänglich" | msgstr "Buch öffnen fehlgeschlagen. Datei existiert nicht, oder ist nicht zugänglich" | ||||||
|  |  | ||||||
| #: cps/web.py:3396 cps/web.py:3868 | #: cps/web.py:3397 | ||||||
| msgid "edit metadata" | msgid "edit metadata" | ||||||
| msgstr "Metadaten editieren" | msgstr "Metadaten editieren" | ||||||
|  |  | ||||||
| #: cps/web.py:3489 cps/web.py:3736 | #: cps/web.py:3490 cps/web.py:3737 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" | msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" | ||||||
| msgstr "Dateiendung '%(ext)s' kann nicht auf diesen Server hochgeladen werden" | msgstr "Dateiendung '%(ext)s' kann nicht auf diesen Server hochgeladen werden" | ||||||
|  |  | ||||||
| #: cps/web.py:3493 cps/web.py:3740 | #: cps/web.py:3494 cps/web.py:3741 | ||||||
| msgid "File to be uploaded must have an extension" | msgid "File to be uploaded must have an extension" | ||||||
| msgstr "Dateien müssen eine Erweiterung haben, um hochgeladen zu werden" | msgstr "Dateien müssen eine Erweiterung haben, um hochgeladen zu werden" | ||||||
|  |  | ||||||
| #: cps/web.py:3505 cps/web.py:3760 | #: cps/web.py:3506 cps/web.py:3761 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Failed to create path %(path)s (Permission denied)." | msgid "Failed to create path %(path)s (Permission denied)." | ||||||
| msgstr "Fehler beim Erzeugen des Pfads %(path)s (Zugriff verweigert)" | msgstr "Fehler beim Erzeugen des Pfads %(path)s (Zugriff verweigert)" | ||||||
|  |  | ||||||
| #: cps/web.py:3510 | #: cps/web.py:3511 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Failed to store file %(file)s." | msgid "Failed to store file %(file)s." | ||||||
| msgstr "Fehler beim speichern der Datei %(file)s." | msgstr "Fehler beim speichern der Datei %(file)s." | ||||||
|  |  | ||||||
| #: cps/web.py:3527 | #: cps/web.py:3528 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "File format %(ext)s added to %(book)s" | msgid "File format %(ext)s added to %(book)s" | ||||||
| msgstr "Dateiformat %(ext)s zu %(book)s hinzugefügt" | msgstr "Dateiformat %(ext)s zu %(book)s hinzugefügt" | ||||||
|  |  | ||||||
| #: cps/web.py:3545 | #: cps/web.py:3546 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Failed to create path for cover %(path)s (Permission denied)." | msgid "Failed to create path for cover %(path)s (Permission denied)." | ||||||
| msgstr "Fehler beim Erzeugen des Pfads für das Cover %(path)s (Zugriff verweigert)" | msgstr "Fehler beim Erzeugen des Pfads für das Cover %(path)s (Zugriff verweigert)" | ||||||
|  |  | ||||||
| #: cps/web.py:3553 | #: cps/web.py:3554 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Failed to store cover-file %(cover)s." | msgid "Failed to store cover-file %(cover)s." | ||||||
| msgstr "Fehler beim Speichern des Covers %(cover)s." | msgstr "Fehler beim Speichern des Covers %(cover)s." | ||||||
|  |  | ||||||
| #: cps/web.py:3556 | #: cps/web.py:3557 | ||||||
| msgid "Cover-file is not a valid image file" | msgid "Cover-file is not a valid image file" | ||||||
| msgstr "Cover-Datei ist keine gültige Bilddatei" | msgstr "Cover-Datei ist keine gültige Bilddatei" | ||||||
|  |  | ||||||
| #: cps/web.py:3586 cps/web.py:3595 | #: cps/web.py:3587 cps/web.py:3596 | ||||||
| msgid "unknown" | msgid "unknown" | ||||||
| msgstr "Unbekannt" | msgstr "Unbekannt" | ||||||
|  |  | ||||||
| #: cps/web.py:3627 | #: cps/web.py:3628 | ||||||
| msgid "Cover is not a jpg file, can't save" | msgid "Cover is not a jpg file, can't save" | ||||||
| msgstr "Cover ist keine JPG Datei, konnte nicht gespeichert werden" | msgstr "Cover ist keine JPG Datei, konnte nicht gespeichert werden" | ||||||
|  |  | ||||||
| #: cps/web.py:3675 | #: cps/web.py:3676 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "%(langname)s is not a valid language" | msgid "%(langname)s is not a valid language" | ||||||
| msgstr "%(langname)s ist keine gültige Sprache" | msgstr "%(langname)s ist keine gültige Sprache" | ||||||
|  |  | ||||||
| #: cps/web.py:3706 | #: cps/web.py:3707 | ||||||
| msgid "Metadata successfully updated" | msgid "Metadata successfully updated" | ||||||
| msgstr "Metadaten wurden erfolgreich aktualisiert" | msgstr "Metadaten wurden erfolgreich aktualisiert" | ||||||
|  |  | ||||||
| #: cps/web.py:3715 | #: cps/web.py:3716 | ||||||
| msgid "Error editing book, please check logfile for details" | msgid "Error editing book, please check logfile for details" | ||||||
| msgstr "Fehler beim Editieren des Buchs, Details im Logfile" | msgstr "Fehler beim Editieren des Buchs, Details im Logfile" | ||||||
|  |  | ||||||
| #: cps/web.py:3765 | #: cps/web.py:3766 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Failed to store file %(file)s (Permission denied)." | msgid "Failed to store file %(file)s (Permission denied)." | ||||||
| msgstr "Fehler beim speichern der Datei %(file)s (Zugriff verweigert)" | msgstr "Fehler beim speichern der Datei %(file)s (Zugriff verweigert)" | ||||||
|  |  | ||||||
| #: cps/web.py:3770 | #: cps/web.py:3771 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Failed to delete file %(file)s (Permission denied)." | msgid "Failed to delete file %(file)s (Permission denied)." | ||||||
| msgstr "Fehler beim Löschen von Datei %(file)s (Zugriff verweigert)" | msgstr "Fehler beim Löschen von Datei %(file)s (Zugriff verweigert)" | ||||||
|  |  | ||||||
| #: cps/web.py:3888 | #: cps/web.py:3883 | ||||||
| msgid "Source or destination format for conversion missing" | msgid "Source or destination format for conversion missing" | ||||||
| msgstr "Quell- oder Zielformat für Konvertierung fehlt" | msgstr "Quell- oder Zielformat für Konvertierung fehlt" | ||||||
|  |  | ||||||
| #: cps/web.py:3898 | #: cps/web.py:3893 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Book successfully queued for converting to %(book_format)s" | msgid "Book successfully queued for converting to %(book_format)s" | ||||||
| msgstr "Buch wurde erfolgreich für die Konvertierung in das %(book_format)s Format eingereiht" | msgstr "Buch wurde erfolgreich für die Konvertierung in das %(book_format)s Format eingereiht" | ||||||
|  |  | ||||||
| #: cps/web.py:3902 | #: cps/web.py:3897 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "There was an error converting this book: %(res)s" | msgid "There was an error converting this book: %(res)s" | ||||||
| msgstr "Es trat ein Fehlker beim Konvertieren des Buches auf: %(res)s" | msgstr "Es trat ein Fehlker beim Konvertieren des Buches auf: %(res)s" | ||||||
| @@ -779,7 +779,7 @@ msgstr "Kindle" | |||||||
| msgid "DLS" | msgid "DLS" | ||||||
| msgstr "DLS" | msgstr "DLS" | ||||||
|  |  | ||||||
| #: cps/templates/admin.html:13 cps/templates/layout.html:74 | #: cps/templates/admin.html:13 cps/templates/layout.html:75 | ||||||
| msgid "Admin" | msgid "Admin" | ||||||
| msgstr "Admin" | msgstr "Admin" | ||||||
|  |  | ||||||
| @@ -788,7 +788,7 @@ msgstr "Admin" | |||||||
| msgid "Download" | msgid "Download" | ||||||
| msgstr "Download" | msgstr "Download" | ||||||
|  |  | ||||||
| #: cps/templates/admin.html:15 cps/templates/layout.html:64 | #: cps/templates/admin.html:15 cps/templates/layout.html:65 | ||||||
| msgid "Upload" | msgid "Upload" | ||||||
| msgstr "Hochladen" | msgstr "Hochladen" | ||||||
|  |  | ||||||
| @@ -989,7 +989,7 @@ msgstr "Beschreibung" | |||||||
| msgid "Tags" | msgid "Tags" | ||||||
| msgstr "Tags" | msgstr "Tags" | ||||||
|  |  | ||||||
| #: cps/templates/book_edit.html:75 cps/templates/layout.html:157 | #: cps/templates/book_edit.html:75 cps/templates/layout.html:158 | ||||||
| #: cps/templates/search_form.html:53 | #: cps/templates/search_form.html:53 | ||||||
| msgid "Series" | msgid "Series" | ||||||
| msgstr "Serien" | msgstr "Serien" | ||||||
| @@ -1071,7 +1071,7 @@ msgstr "Suchbegriff" | |||||||
| msgid " Search keyword " | msgid " Search keyword " | ||||||
| msgstr " Suchbegriff " | msgstr " Suchbegriff " | ||||||
|  |  | ||||||
| #: cps/templates/book_edit.html:218 cps/templates/layout.html:46 | #: cps/templates/book_edit.html:218 cps/templates/layout.html:47 | ||||||
| msgid "Go!" | msgid "Go!" | ||||||
| msgstr "Los!" | msgstr "Los!" | ||||||
|  |  | ||||||
| @@ -1083,7 +1083,7 @@ msgstr "Klicke auf das Bild um die Metadaten zu übertragen" | |||||||
| msgid "Loading..." | msgid "Loading..." | ||||||
| msgstr "Lade..." | msgstr "Lade..." | ||||||
|  |  | ||||||
| #: cps/templates/book_edit.html:239 cps/templates/layout.html:224 | #: cps/templates/book_edit.html:239 cps/templates/layout.html:225 | ||||||
| msgid "Close" | msgid "Close" | ||||||
| msgstr "Schließen" | msgstr "Schließen" | ||||||
|  |  | ||||||
| @@ -1121,7 +1121,7 @@ msgstr "Google Drive authentifizieren" | |||||||
|  |  | ||||||
| #: cps/templates/config_edit.html:40 | #: cps/templates/config_edit.html:40 | ||||||
| msgid "Please hit submit to continue with setup" | msgid "Please hit submit to continue with setup" | ||||||
| msgstr "" | msgstr "Bitte wähle Abschicken um mit dem Setup fortzufahren " | ||||||
|  |  | ||||||
| #: cps/templates/config_edit.html:43 | #: cps/templates/config_edit.html:43 | ||||||
| msgid "Please finish Google Drive setup after login" | msgid "Please finish Google Drive setup after login" | ||||||
| @@ -1251,7 +1251,7 @@ msgstr "Pfad zu Konvertertool" | |||||||
| msgid "Location of Unrar binary" | msgid "Location of Unrar binary" | ||||||
| msgstr "Pfad zum UnRar Programm" | msgstr "Pfad zum UnRar Programm" | ||||||
|  |  | ||||||
| #: cps/templates/config_edit.html:229 cps/templates/layout.html:82 | #: cps/templates/config_edit.html:229 cps/templates/layout.html:83 | ||||||
| #: cps/templates/login.html:4 | #: cps/templates/login.html:4 | ||||||
| msgid "Login" | msgid "Login" | ||||||
| msgstr "Login" | msgstr "Login" | ||||||
| @@ -1260,8 +1260,8 @@ msgstr "Login" | |||||||
| msgid "View Configuration" | msgid "View Configuration" | ||||||
| msgstr "Ansichtskonfiguration" | msgstr "Ansichtskonfiguration" | ||||||
|  |  | ||||||
| #: cps/templates/config_view_edit.html:19 cps/templates/layout.html:133 | #: cps/templates/config_view_edit.html:19 cps/templates/layout.html:134 | ||||||
| #: cps/templates/layout.html:134 cps/templates/shelf_edit.html:7 | #: cps/templates/layout.html:135 cps/templates/shelf_edit.html:7 | ||||||
| msgid "Title" | msgid "Title" | ||||||
| msgstr "Titel" | msgstr "Titel" | ||||||
|  |  | ||||||
| @@ -1473,12 +1473,12 @@ msgstr "Hinzufügen" | |||||||
| msgid "Do you really want to delete this domain rule?" | msgid "Do you really want to delete this domain rule?" | ||||||
| msgstr "Soll diese Domain Regel wirklich gelöscht werden?" | msgstr "Soll diese Domain Regel wirklich gelöscht werden?" | ||||||
|  |  | ||||||
| #: cps/templates/feed.xml:21 cps/templates/layout.html:208 | #: cps/templates/feed.xml:21 cps/templates/layout.html:209 | ||||||
| msgid "Next" | msgid "Next" | ||||||
| msgstr "Nächste" | msgstr "Nächste" | ||||||
|  |  | ||||||
| #: cps/templates/feed.xml:33 cps/templates/index.xml:11 | #: cps/templates/feed.xml:33 cps/templates/index.xml:11 | ||||||
| #: cps/templates/layout.html:43 cps/templates/layout.html:44 | #: cps/templates/layout.html:44 cps/templates/layout.html:45 | ||||||
| msgid "Search" | msgid "Search" | ||||||
| msgstr "Suche" | msgstr "Suche" | ||||||
|  |  | ||||||
| @@ -1494,7 +1494,7 @@ msgstr "Entdecke (Zufälliges Buch)" | |||||||
| msgid "Start" | msgid "Start" | ||||||
| msgstr "Start" | msgstr "Start" | ||||||
|  |  | ||||||
| #: cps/templates/index.xml:18 cps/templates/layout.html:139 | #: cps/templates/index.xml:18 cps/templates/layout.html:140 | ||||||
| msgid "Hot Books" | msgid "Hot Books" | ||||||
| msgstr "Beliebte Bücher" | msgstr "Beliebte Bücher" | ||||||
|  |  | ||||||
| @@ -1502,7 +1502,7 @@ msgstr "Beliebte Bücher" | |||||||
| msgid "Popular publications from this catalog based on Downloads." | msgid "Popular publications from this catalog based on Downloads." | ||||||
| msgstr "Beliebte Publikationen aus dieser Bibliothek basierend auf Downloadzahlen." | msgstr "Beliebte Publikationen aus dieser Bibliothek basierend auf Downloadzahlen." | ||||||
|  |  | ||||||
| #: cps/templates/index.xml:25 cps/templates/layout.html:142 | #: cps/templates/index.xml:25 cps/templates/layout.html:143 | ||||||
| msgid "Best rated Books" | msgid "Best rated Books" | ||||||
| msgstr "Best bewertete Bücher" | msgstr "Best bewertete Bücher" | ||||||
|  |  | ||||||
| @@ -1522,7 +1522,7 @@ msgstr "Die neuesten Bücher" | |||||||
| msgid "Show Random Books" | msgid "Show Random Books" | ||||||
| msgstr "Zeige zufällige Bücher" | msgstr "Zeige zufällige Bücher" | ||||||
|  |  | ||||||
| #: cps/templates/index.xml:62 cps/templates/layout.html:160 | #: cps/templates/index.xml:62 cps/templates/layout.html:161 | ||||||
| msgid "Authors" | msgid "Authors" | ||||||
| msgstr "Autoren" | msgstr "Autoren" | ||||||
|  |  | ||||||
| @@ -1530,7 +1530,7 @@ msgstr "Autoren" | |||||||
| msgid "Books ordered by Author" | msgid "Books ordered by Author" | ||||||
| msgstr "Bücher nach Autoren sortiert" | msgstr "Bücher nach Autoren sortiert" | ||||||
|  |  | ||||||
| #: cps/templates/index.xml:69 cps/templates/layout.html:163 | #: cps/templates/index.xml:69 cps/templates/layout.html:164 | ||||||
| msgid "Publishers" | msgid "Publishers" | ||||||
| msgstr "Verleger" | msgstr "Verleger" | ||||||
|  |  | ||||||
| @@ -1546,7 +1546,7 @@ msgstr "Bücher nach Kategorien sortiert" | |||||||
| msgid "Books ordered by series" | msgid "Books ordered by series" | ||||||
| msgstr "Bücher nach Reihen geordnet" | msgstr "Bücher nach Reihen geordnet" | ||||||
|  |  | ||||||
| #: cps/templates/index.xml:90 cps/templates/layout.html:169 | #: cps/templates/index.xml:90 cps/templates/layout.html:170 | ||||||
| msgid "Public Shelves" | msgid "Public Shelves" | ||||||
| msgstr "Öffentliche Bücherregale" | msgstr "Öffentliche Bücherregale" | ||||||
|  |  | ||||||
| @@ -1554,7 +1554,7 @@ msgstr "Öffentliche Bücherregale" | |||||||
| msgid "Books organized in public shelfs, visible to everyone" | msgid "Books organized in public shelfs, visible to everyone" | ||||||
| msgstr "Bücher organisiert in öffentlichem Bücherregal, sichtbar für jedermann" | msgstr "Bücher organisiert in öffentlichem Bücherregal, sichtbar für jedermann" | ||||||
|  |  | ||||||
| #: cps/templates/index.xml:98 cps/templates/layout.html:173 | #: cps/templates/index.xml:98 cps/templates/layout.html:174 | ||||||
| msgid "Your Shelves" | msgid "Your Shelves" | ||||||
| msgstr "Deine Bücherregale" | msgstr "Deine Bücherregale" | ||||||
|  |  | ||||||
| @@ -1562,91 +1562,95 @@ msgstr "Deine Bücherregale" | |||||||
| msgid "User's own shelfs, only visible to the current user himself" | msgid "User's own shelfs, only visible to the current user himself" | ||||||
| msgstr "Persönliches Bücherregal des Benutzers, nur sichtbar für den aktuellen Benutzer" | msgstr "Persönliches Bücherregal des Benutzers, nur sichtbar für den aktuellen Benutzer" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:33 | #: cps/templates/layout.html:34 | ||||||
| msgid "Toggle navigation" | msgid "Toggle navigation" | ||||||
| msgstr "Nagivation umschalten" | msgstr "Nagivation umschalten" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:54 | #: cps/templates/layout.html:55 | ||||||
| msgid "Advanced Search" | msgid "Advanced Search" | ||||||
| msgstr "Erweiterte Suche" | msgstr "Erweiterte Suche" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:78 | #: cps/templates/layout.html:79 | ||||||
| msgid "Logout" | msgid "Logout" | ||||||
| msgstr "Logout" | msgstr "Logout" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:83 cps/templates/register.html:14 | #: cps/templates/layout.html:84 cps/templates/register.html:14 | ||||||
| msgid "Register" | msgid "Register" | ||||||
| msgstr "Registrieren" | msgstr "Registrieren" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:108 | #: cps/templates/layout.html:110 | ||||||
| msgid "Uploading..." | msgid "Uploading..." | ||||||
| msgstr "Hochladen..." | msgstr "Hochladen..." | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:109 | #: cps/templates/layout.html:111 | ||||||
| msgid "please don't refresh the page" | msgid "please don't refresh the page" | ||||||
| msgstr "Bitte die Seite nicht neu laden" | msgstr "Bitte die Seite nicht neu laden" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:120 | #: cps/templates/layout.html:121 | ||||||
| msgid "Browse" | msgid "Browse" | ||||||
| msgstr "Browsen" | msgstr "Browsen" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:122 | #: cps/templates/layout.html:123 | ||||||
| msgid "Recently Added" | msgid "Recently Added" | ||||||
| msgstr "Kürzlich hinzugefügt" | msgstr "Kürzlich hinzugefügt" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:127 | #: cps/templates/layout.html:128 | ||||||
| msgid "Sorted Books" | msgid "Sorted Books" | ||||||
| msgstr "Bücher Sortiert" | msgstr "Bücher Sortiert" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:131 cps/templates/layout.html:132 | #: cps/templates/layout.html:132 cps/templates/layout.html:133 | ||||||
| #: cps/templates/layout.html:133 cps/templates/layout.html:134 | #: cps/templates/layout.html:134 cps/templates/layout.html:135 | ||||||
| msgid "Sort By" | msgid "Sort By" | ||||||
| msgstr "Sortiert nach" | msgstr "Sortiert nach" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:131 | #: cps/templates/layout.html:132 | ||||||
| msgid "Newest" | msgid "Newest" | ||||||
| msgstr "Neueste" | msgstr "Neueste" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:132 | #: cps/templates/layout.html:133 | ||||||
| msgid "Oldest" | msgid "Oldest" | ||||||
| msgstr "Älteste" | msgstr "Älteste" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:133 | #: cps/templates/layout.html:134 | ||||||
| msgid "Ascending" | msgid "Ascending" | ||||||
| msgstr "Aufsteigend" | msgstr "Aufsteigend" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:134 | #: cps/templates/layout.html:135 | ||||||
| msgid "Descending" | msgid "Descending" | ||||||
| msgstr "Absteigend" | msgstr "Absteigend" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:151 | #: cps/templates/layout.html:152 | ||||||
| msgid "Discover" | msgid "Discover" | ||||||
| msgstr "Entdecke" | msgstr "Entdecke" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:154 | #: cps/templates/layout.html:155 | ||||||
| msgid "Categories" | msgid "Categories" | ||||||
| msgstr "Kategorien" | msgstr "Kategorien" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:166 cps/templates/search_form.html:74 | #: cps/templates/layout.html:167 cps/templates/search_form.html:74 | ||||||
| msgid "Languages" | msgid "Languages" | ||||||
| msgstr "Sprachen" | msgstr "Sprachen" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:178 | #: cps/templates/layout.html:179 | ||||||
| msgid "Create a Shelf" | msgid "Create a Shelf" | ||||||
| msgstr "Bücherregal erzeugen" | msgstr "Bücherregal erzeugen" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:179 cps/templates/stats.html:3 | #: cps/templates/layout.html:180 cps/templates/stats.html:3 | ||||||
| msgid "About" | msgid "About" | ||||||
| msgstr "Über" | msgstr "Über" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:193 | #: cps/templates/layout.html:194 | ||||||
| msgid "Previous" | msgid "Previous" | ||||||
| msgstr "Vorheriger" | msgstr "Vorheriger" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:220 | #: cps/templates/layout.html:221 | ||||||
| msgid "Book Details" | msgid "Book Details" | ||||||
| msgstr "Buchdetails" | msgstr "Buchdetails" | ||||||
|  |  | ||||||
|  | #: cps/templates/layout.html:255 | ||||||
|  | msgid "Upload done, processing, please wait..." | ||||||
|  | msgstr "Hochladen beendet, verarbeite Daten, bitte warten..." | ||||||
|  |  | ||||||
| #: cps/templates/login.html:8 cps/templates/login.html:9 | #: cps/templates/login.html:8 cps/templates/login.html:9 | ||||||
| #: cps/templates/register.html:7 cps/templates/user_edit.html:8 | #: cps/templates/register.html:7 cps/templates/user_edit.html:8 | ||||||
| msgid "Username" | msgid "Username" | ||||||
| @@ -1669,12 +1673,12 @@ msgstr "Einloggen mit magischem Link" | |||||||
| msgid "Calibre-Web ebook catalog" | msgid "Calibre-Web ebook catalog" | ||||||
| msgstr "Calibre-Web E-Book Katalog" | msgstr "Calibre-Web E-Book Katalog" | ||||||
|  |  | ||||||
| #: cps/templates/read.html:69 cps/templates/readcbr.html:79 | #: cps/templates/read.html:71 cps/templates/readcbr.html:79 | ||||||
| #: cps/templates/readcbr.html:103 | #: cps/templates/readcbr.html:103 | ||||||
| msgid "Settings" | msgid "Settings" | ||||||
| msgstr "Einstellungen" | msgstr "Einstellungen" | ||||||
|  |  | ||||||
| #: cps/templates/read.html:72 | #: cps/templates/read.html:74 | ||||||
| msgid "Reflow text when sidebars are open." | msgid "Reflow text when sidebars are open." | ||||||
| msgstr "Text umbrechen wenn Seitenleiste geöffnet ist." | msgstr "Text umbrechen wenn Seitenleiste geöffnet ist." | ||||||
|  |  | ||||||
| @@ -1962,42 +1966,3 @@ msgstr "Benutzer löschen" | |||||||
| msgid "Recent Downloads" | msgid "Recent Downloads" | ||||||
| msgstr "Letzte Downloads" | msgstr "Letzte Downloads" | ||||||
|  |  | ||||||
| #~ msgid "Current commit timestamp" |  | ||||||
| #~ msgstr "Aktuelles Commit Datum" |  | ||||||
|  |  | ||||||
| #~ msgid "Newest commit timestamp" |  | ||||||
| #~ msgstr "Neuestes Commit Datum" |  | ||||||
|  |  | ||||||
| #~ msgid "Convert: %(book)s" |  | ||||||
| #~ msgstr "Konvertiere: %(book)s" |  | ||||||
|  |  | ||||||
| #~ msgid "Convert to %(format)s: %(book)s" |  | ||||||
| #~ msgstr "Konvertiere %(book)s in %(format)s: " |  | ||||||
|  |  | ||||||
| #~ msgid "Files are replaced" |  | ||||||
| #~ msgstr "Ersetze Dateien" |  | ||||||
|  |  | ||||||
| #~ msgid "Server is stopped" |  | ||||||
| #~ msgstr "Stoppe Server" |  | ||||||
|  |  | ||||||
| #~ msgid "Convertertool %(converter)s not found" |  | ||||||
| #~ msgstr "Konvertertool %(converter)s nicht gefunden" |  | ||||||
|  |  | ||||||
| #~ msgid "Choose a password" |  | ||||||
| #~ msgstr "Wähle ein Passwort" |  | ||||||
|  |  | ||||||
| #~ msgid "Could not find any formats suitable for sending by e-mail" |  | ||||||
| #~ msgstr "Es konnten keine passenden Formate für das Versenden per E-Mail gefunden werden" |  | ||||||
|  |  | ||||||
| #~ msgid "Author list" |  | ||||||
| #~ msgstr "Autorenliste" |  | ||||||
|  |  | ||||||
| #~ msgid "File %(file)s uploaded" |  | ||||||
| #~ msgstr "Datei %(file)s hochgeladen" |  | ||||||
|  |  | ||||||
| #~ msgid "Update done" |  | ||||||
| #~ msgstr "Update durchgeführt" |  | ||||||
|  |  | ||||||
| #~ msgid "A new update is available. Click on the button below to update to version: " |  | ||||||
| #~ msgstr "Ein neues Update ist verfügbar. Klicke auf den Button unten, um auf Version: " |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -2027,7 +2027,7 @@ def advanced_search(): | |||||||
|                                  series=series, title=_(u"search"), cc=cc, page="advsearch") |                                  series=series, title=_(u"search"), cc=cc, page="advsearch") | ||||||
|  |  | ||||||
|  |  | ||||||
| @app.route("/cover/<book_id>") | @app.route("/cover/<int:book_id>") | ||||||
| @login_required_if_no_ano | @login_required_if_no_ano | ||||||
| def get_cover(book_id): | def get_cover(book_id): | ||||||
|     book = db.session.query(db.Books).filter(db.Books.id == book_id).first() |     book = db.session.query(db.Books).filter(db.Books.id == book_id).first() | ||||||
| @@ -3851,7 +3851,7 @@ def upload(): | |||||||
|                 gdriveutils.updateGdriveCalibreFromLocal() |                 gdriveutils.updateGdriveCalibreFromLocal() | ||||||
|             if error: |             if error: | ||||||
|                 flash(error, category="error") |                 flash(error, category="error") | ||||||
|             uploadText=(u"File %s" % book.title) |             uploadText=_(u"File %(title)s", title=book.title) | ||||||
|             helper.global_WorkerThread.add_upload(current_user.nickname, |             helper.global_WorkerThread.add_upload(current_user.nickname, | ||||||
|                 "<a href=\"" + url_for('show_book', book_id=book.id) + "\">" + uploadText + "</a>") |                 "<a href=\"" + url_for('show_book', book_id=book.id) + "\">" + uploadText + "</a>") | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										338
									
								
								messages.pot
									
									
									
									
									
								
							
							
						
						
									
										338
									
								
								messages.pot
									
									
									
									
									
								
							| @@ -8,7 +8,7 @@ msgid "" | |||||||
| msgstr "" | msgstr "" | ||||||
| "Project-Id-Version: PROJECT VERSION\n" | "Project-Id-Version: PROJECT VERSION\n" | ||||||
| "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" | "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" | ||||||
| "POT-Creation-Date: 2019-02-03 16:21+0100\n" | "POT-Creation-Date: 2019-02-20 20:23+0100\n" | ||||||
| "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" | ||||||
| "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" | ||||||
| "Language-Team: LANGUAGE <LL@li.org>\n" | "Language-Team: LANGUAGE <LL@li.org>\n" | ||||||
| @@ -17,8 +17,8 @@ msgstr "" | |||||||
| "Content-Transfer-Encoding: 8bit\n" | "Content-Transfer-Encoding: 8bit\n" | ||||||
| "Generated-By: Babel 2.6.0\n" | "Generated-By: Babel 2.6.0\n" | ||||||
|  |  | ||||||
| #: cps/book_formats.py:145 cps/book_formats.py:146 cps/book_formats.py:150 | #: cps/book_formats.py:152 cps/book_formats.py:153 cps/book_formats.py:157 | ||||||
| #: cps/book_formats.py:154 cps/converter.py:29 cps/converter.py:45 | #: cps/book_formats.py:161 cps/converter.py:29 cps/converter.py:45 | ||||||
| msgid "not installed" | msgid "not installed" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| @@ -30,132 +30,132 @@ msgstr "" | |||||||
| msgid "not configured" | msgid "not configured" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:77 | #: cps/helper.py:72 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "%(format)s format not found for book id: %(book)d" | msgid "%(format)s format not found for book id: %(book)d" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:89 | #: cps/helper.py:84 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "%(format)s not found on Google Drive: %(fn)s" | msgid "%(format)s not found on Google Drive: %(fn)s" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:96 cps/helper.py:204 cps/templates/detail.html:49 | #: cps/helper.py:91 cps/helper.py:199 cps/templates/detail.html:49 | ||||||
| msgid "Send to Kindle" | msgid "Send to Kindle" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:97 cps/helper.py:115 cps/helper.py:206 | #: cps/helper.py:92 cps/helper.py:110 cps/helper.py:201 | ||||||
| msgid "This e-mail has been sent via Calibre-Web." | msgid "This e-mail has been sent via Calibre-Web." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:108 | #: cps/helper.py:103 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "%(format)s not found: %(fn)s" | msgid "%(format)s not found: %(fn)s" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:113 | #: cps/helper.py:108 | ||||||
| msgid "Calibre-Web test e-mail" | msgid "Calibre-Web test e-mail" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:114 | #: cps/helper.py:109 | ||||||
| msgid "Test e-mail" | msgid "Test e-mail" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:130 | #: cps/helper.py:125 | ||||||
| msgid "Get Started with Calibre-Web" | msgid "Get Started with Calibre-Web" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:131 | #: cps/helper.py:126 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Registration e-mail for user: %(name)s" | msgid "Registration e-mail for user: %(name)s" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:144 cps/helper.py:146 cps/helper.py:148 cps/helper.py:150 | #: cps/helper.py:139 cps/helper.py:141 cps/helper.py:143 cps/helper.py:145 | ||||||
| #: cps/helper.py:156 cps/helper.py:158 cps/helper.py:160 cps/helper.py:162 | #: cps/helper.py:151 cps/helper.py:153 cps/helper.py:155 cps/helper.py:157 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Send %(format)s to Kindle" | msgid "Send %(format)s to Kindle" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:166 cps/helper.py:170 | #: cps/helper.py:161 cps/helper.py:165 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Convert %(orig)s to %(format)s and send to Kindle" | msgid "Convert %(orig)s to %(format)s and send to Kindle" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:205 | #: cps/helper.py:200 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "E-mail: %(book)s" | msgid "E-mail: %(book)s" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:208 | #: cps/helper.py:203 | ||||||
| msgid "The requested file could not be read. Maybe wrong permissions?" | msgid "The requested file could not be read. Maybe wrong permissions?" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:313 | #: cps/helper.py:308 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" | msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:323 | #: cps/helper.py:318 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" | msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:337 | #: cps/helper.py:332 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" | msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:362 cps/helper.py:371 | #: cps/helper.py:358 cps/helper.py:368 cps/helper.py:376 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "File %(file)s not found on Google Drive" | msgid "File %(file)s not found on Google Drive" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:402 | #: cps/helper.py:397 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Book path %(path)s not found on Google Drive" | msgid "Book path %(path)s not found on Google Drive" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:510 | #: cps/helper.py:505 | ||||||
| msgid "Error excecuting UnRar" | msgid "Error excecuting UnRar" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:512 | #: cps/helper.py:507 | ||||||
| msgid "Unrar binary file not found" | msgid "Unrar binary file not found" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:543 | #: cps/helper.py:538 | ||||||
| msgid "Waiting" | msgid "Waiting" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:545 | #: cps/helper.py:540 | ||||||
| msgid "Failed" | msgid "Failed" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:547 | #: cps/helper.py:542 | ||||||
| msgid "Started" | msgid "Started" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:549 | #: cps/helper.py:544 | ||||||
| msgid "Finished" | msgid "Finished" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:551 | #: cps/helper.py:546 | ||||||
| msgid "Unknown Status" | msgid "Unknown Status" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:556 | #: cps/helper.py:551 | ||||||
| msgid "E-mail: " | msgid "E-mail: " | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:558 cps/helper.py:562 | #: cps/helper.py:553 cps/helper.py:557 | ||||||
| msgid "Convert: " | msgid "Convert: " | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:560 | #: cps/helper.py:555 | ||||||
| msgid "Upload: " | msgid "Upload: " | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/helper.py:564 | #: cps/helper.py:559 | ||||||
| msgid "Unknown Task: " | msgid "Unknown Task: " | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| @@ -200,7 +200,7 @@ msgstr "" | |||||||
| msgid "A new update is available. Click on the button below to update to version: %(version)s" | msgid "A new update is available. Click on the button below to update to version: %(version)s" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/updater.py:491 cps/web.py:2766 | #: cps/updater.py:491 cps/web.py:2767 | ||||||
| msgid "Unknown" | msgid "Unknown" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| @@ -268,7 +268,7 @@ msgstr "" | |||||||
| msgid "Random Books" | msgid "Random Books" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:1337 cps/web.py:1592 cps/web.py:2135 | #: cps/web.py:1337 cps/web.py:1592 cps/web.py:2136 | ||||||
| msgid "Error opening eBook. File does not exist or file is not accessible:" | msgid "Error opening eBook. File does not exist or file is not accessible:" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| @@ -308,7 +308,7 @@ msgstr "" | |||||||
| msgid "Category: %(name)s" | msgid "Category: %(name)s" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:71 cps/web.py:1628 | #: cps/templates/layout.html:72 cps/web.py:1628 | ||||||
| msgid "Tasks" | msgid "Tasks" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| @@ -355,395 +355,395 @@ msgid "search" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/index.xml:47 cps/templates/index.xml:51 | #: cps/templates/index.xml:47 cps/templates/index.xml:51 | ||||||
| #: cps/templates/layout.html:146 cps/web.py:2094 | #: cps/templates/layout.html:147 cps/web.py:2095 | ||||||
| msgid "Read Books" | msgid "Read Books" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/index.xml:55 cps/templates/index.xml:59 | #: cps/templates/index.xml:55 cps/templates/index.xml:59 | ||||||
| #: cps/templates/layout.html:148 cps/web.py:2097 | #: cps/templates/layout.html:149 cps/web.py:2098 | ||||||
| msgid "Unread Books" | msgid "Unread Books" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2145 cps/web.py:2147 cps/web.py:2149 cps/web.py:2161 | #: cps/web.py:2146 cps/web.py:2148 cps/web.py:2150 cps/web.py:2162 | ||||||
| msgid "Read a Book" | msgid "Read a Book" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2220 cps/web.py:3138 | #: cps/web.py:2221 cps/web.py:3139 | ||||||
| msgid "Please fill out all fields!" | msgid "Please fill out all fields!" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2221 cps/web.py:2243 cps/web.py:2247 cps/web.py:2252 | #: cps/web.py:2222 cps/web.py:2244 cps/web.py:2248 cps/web.py:2253 | ||||||
| #: cps/web.py:2254 | #: cps/web.py:2255 | ||||||
| msgid "register" | msgid "register" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2242 cps/web.py:3357 | #: cps/web.py:2243 cps/web.py:3358 | ||||||
| msgid "An unknown error occurred. Please try again later." | msgid "An unknown error occurred. Please try again later." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2245 | #: cps/web.py:2246 | ||||||
| msgid "Your e-mail is not allowed to register" | msgid "Your e-mail is not allowed to register" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2248 | #: cps/web.py:2249 | ||||||
| msgid "Confirmation e-mail was send to your e-mail account." | msgid "Confirmation e-mail was send to your e-mail account." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2251 | #: cps/web.py:2252 | ||||||
| msgid "This username or e-mail address is already in use." | msgid "This username or e-mail address is already in use." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2268 cps/web.py:2364 | #: cps/web.py:2269 cps/web.py:2365 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "you are now logged in as: '%(nickname)s'" | msgid "you are now logged in as: '%(nickname)s'" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2273 | #: cps/web.py:2274 | ||||||
| msgid "Wrong Username or Password" | msgid "Wrong Username or Password" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2279 cps/web.py:2300 | #: cps/web.py:2280 cps/web.py:2301 | ||||||
| msgid "login" | msgid "login" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2312 cps/web.py:2343 | #: cps/web.py:2313 cps/web.py:2344 | ||||||
| msgid "Token not found" | msgid "Token not found" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2320 cps/web.py:2351 | #: cps/web.py:2321 cps/web.py:2352 | ||||||
| msgid "Token has expired" | msgid "Token has expired" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2328 | #: cps/web.py:2329 | ||||||
| msgid "Success! Please return to your device" | msgid "Success! Please return to your device" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2378 | #: cps/web.py:2379 | ||||||
| msgid "Please configure the SMTP mail settings first..." | msgid "Please configure the SMTP mail settings first..." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2383 | #: cps/web.py:2384 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Book successfully queued for sending to %(kindlemail)s" | msgid "Book successfully queued for sending to %(kindlemail)s" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2387 | #: cps/web.py:2388 | ||||||
| #, 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:2389 cps/web.py:3191 | #: cps/web.py:2390 cps/web.py:3192 | ||||||
| msgid "Please configure your kindle e-mail address first..." | msgid "Please configure your kindle e-mail address first..." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2400 cps/web.py:2452 | #: cps/web.py:2401 cps/web.py:2453 | ||||||
| msgid "Invalid shelf specified" | msgid "Invalid shelf specified" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2407 | #: cps/web.py:2408 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Sorry you are not allowed to add a book to the the shelf: %(shelfname)s" | msgid "Sorry you are not allowed to add a book to the the shelf: %(shelfname)s" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2415 | #: cps/web.py:2416 | ||||||
| msgid "You are not allowed to edit public shelves" | msgid "You are not allowed to edit public shelves" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2424 | #: cps/web.py:2425 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Book is already part of the shelf: %(shelfname)s" | msgid "Book is already part of the shelf: %(shelfname)s" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2438 | #: cps/web.py:2439 | ||||||
| #, 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:2457 | #: cps/web.py:2458 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "You are not allowed to add a book to the the shelf: %(name)s" | msgid "You are not allowed to add a book to the the shelf: %(name)s" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2462 | #: cps/web.py:2463 | ||||||
| msgid "User is not allowed to edit public shelves" | msgid "User is not allowed to edit public shelves" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2480 | #: cps/web.py:2481 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Books are already part of the shelf: %(name)s" | msgid "Books are already part of the shelf: %(name)s" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2494 | #: cps/web.py:2495 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Books have been added to shelf: %(sname)s" | msgid "Books have been added to shelf: %(sname)s" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2496 | #: cps/web.py:2497 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Could not add books to shelf: %(sname)s" | msgid "Could not add books to shelf: %(sname)s" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2533 | #: cps/web.py:2534 | ||||||
| #, 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:2539 | #: cps/web.py:2540 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Sorry you are not allowed to remove a book from this shelf: %(sname)s" | msgid "Sorry you are not allowed to remove a book from this shelf: %(sname)s" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2560 cps/web.py:2584 | #: cps/web.py:2561 cps/web.py:2585 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "A shelf with the name '%(title)s' already exists." | msgid "A shelf with the name '%(title)s' already exists." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2565 | #: cps/web.py:2566 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Shelf %(title)s created" | msgid "Shelf %(title)s created" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2567 cps/web.py:2595 | #: cps/web.py:2568 cps/web.py:2596 | ||||||
| msgid "There was an error" | msgid "There was an error" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2568 cps/web.py:2570 | #: cps/web.py:2569 cps/web.py:2571 | ||||||
| msgid "create a shelf" | msgid "create a shelf" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2593 | #: cps/web.py:2594 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Shelf %(title)s changed" | msgid "Shelf %(title)s changed" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2596 cps/web.py:2598 | #: cps/web.py:2597 cps/web.py:2599 | ||||||
| msgid "Edit a shelf" | msgid "Edit a shelf" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2619 | #: cps/web.py:2620 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "successfully deleted shelf %(name)s" | msgid "successfully deleted shelf %(name)s" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2646 | #: cps/web.py:2647 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Shelf: '%(name)s'" | msgid "Shelf: '%(name)s'" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2649 | #: cps/web.py:2650 | ||||||
| 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:2680 | #: cps/web.py:2681 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Change order of Shelf: '%(name)s'" | msgid "Change order of Shelf: '%(name)s'" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2709 cps/web.py:3144 | #: cps/web.py:2710 cps/web.py:3145 | ||||||
| msgid "E-mail is not from valid domain" | msgid "E-mail is not from valid domain" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2711 cps/web.py:2753 cps/web.py:2756 | #: cps/web.py:2712 cps/web.py:2754 cps/web.py:2757 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "%(name)s's profile" | msgid "%(name)s's profile" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2751 | #: cps/web.py:2752 | ||||||
| msgid "Found an existing account for this e-mail address." | msgid "Found an existing account for this e-mail address." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2754 | #: cps/web.py:2755 | ||||||
| msgid "Profile updated" | msgid "Profile updated" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2785 | #: cps/web.py:2786 | ||||||
| msgid "Admin page" | msgid "Admin page" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2867 cps/web.py:3047 | #: cps/web.py:2868 cps/web.py:3048 | ||||||
| msgid "Calibre-Web configuration updated" | msgid "Calibre-Web configuration updated" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/admin.html:100 cps/web.py:2881 | #: cps/templates/admin.html:100 cps/web.py:2882 | ||||||
| msgid "UI Configuration" | msgid "UI Configuration" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2899 | #: cps/web.py:2900 | ||||||
| msgid "Import of optional Google Drive requirements missing" | msgid "Import of optional Google Drive requirements missing" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2902 | #: cps/web.py:2903 | ||||||
| msgid "client_secrets.json is missing or not readable" | msgid "client_secrets.json is missing or not readable" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2907 cps/web.py:2936 | #: cps/web.py:2908 cps/web.py:2937 | ||||||
| msgid "client_secrets.json is not configured for web application" | msgid "client_secrets.json is not configured for web application" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/admin.html:99 cps/web.py:2939 cps/web.py:2965 cps/web.py:2977 | #: cps/templates/admin.html:99 cps/web.py:2940 cps/web.py:2966 cps/web.py:2978 | ||||||
| #: cps/web.py:3022 cps/web.py:3037 cps/web.py:3056 cps/web.py:3064 | #: cps/web.py:3023 cps/web.py:3038 cps/web.py:3057 cps/web.py:3065 | ||||||
| #: cps/web.py:3080 | #: cps/web.py:3081 | ||||||
| msgid "Basic Configuration" | msgid "Basic Configuration" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2962 | #: cps/web.py:2963 | ||||||
| msgid "Keyfile location is not valid, please enter correct path" | msgid "Keyfile location is not valid, please enter correct path" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:2974 | #: cps/web.py:2975 | ||||||
| msgid "Certfile location is not valid, please enter correct path" | msgid "Certfile location is not valid, please enter correct path" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3019 | #: cps/web.py:3020 | ||||||
| msgid "Logfile location is not valid, please enter correct path" | msgid "Logfile location is not valid, please enter correct path" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3060 | #: cps/web.py:3061 | ||||||
| msgid "DB location is not valid, please enter correct path" | msgid "DB location is not valid, please enter correct path" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/admin.html:33 cps/web.py:3140 cps/web.py:3146 cps/web.py:3162 | #: cps/templates/admin.html:33 cps/web.py:3141 cps/web.py:3147 cps/web.py:3163 | ||||||
| msgid "Add new user" | msgid "Add new user" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3152 | #: cps/web.py:3153 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "User '%(user)s' created" | msgid "User '%(user)s' created" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3156 | #: cps/web.py:3157 | ||||||
| msgid "Found an existing account for this e-mail address or nickname." | msgid "Found an existing account for this e-mail address or nickname." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3186 | #: cps/web.py:3187 | ||||||
| #, 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:3189 | #: cps/web.py:3190 | ||||||
| #, 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:3193 | #: cps/web.py:3194 | ||||||
| msgid "E-mail server settings updated" | msgid "E-mail server settings updated" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3194 | #: cps/web.py:3195 | ||||||
| msgid "Edit e-mail server settings" | msgid "Edit e-mail server settings" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3219 | #: cps/web.py:3220 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "User '%(nick)s' deleted" | msgid "User '%(nick)s' deleted" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3332 | #: cps/web.py:3333 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "User '%(nick)s' updated" | msgid "User '%(nick)s' updated" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3335 | #: cps/web.py:3336 | ||||||
| msgid "An unknown error occured." | msgid "An unknown error occured." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3337 | #: cps/web.py:3338 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Edit User %(nick)s" | msgid "Edit User %(nick)s" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3354 | #: cps/web.py:3355 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Password for user %(user)s reset" | msgid "Password for user %(user)s reset" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3368 cps/web.py:3574 | #: cps/web.py:3369 cps/web.py:3575 | ||||||
| msgid "Error opening eBook. File does not exist or file is not accessible" | msgid "Error opening eBook. File does not exist or file is not accessible" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3396 cps/web.py:3868 | #: cps/web.py:3397 | ||||||
| msgid "edit metadata" | msgid "edit metadata" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3489 cps/web.py:3736 | #: cps/web.py:3490 cps/web.py:3737 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" | msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3493 cps/web.py:3740 | #: cps/web.py:3494 cps/web.py:3741 | ||||||
| msgid "File to be uploaded must have an extension" | msgid "File to be uploaded must have an extension" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3505 cps/web.py:3760 | #: cps/web.py:3506 cps/web.py:3761 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Failed to create path %(path)s (Permission denied)." | msgid "Failed to create path %(path)s (Permission denied)." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3510 | #: cps/web.py:3511 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Failed to store file %(file)s." | msgid "Failed to store file %(file)s." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3527 | #: cps/web.py:3528 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "File format %(ext)s added to %(book)s" | msgid "File format %(ext)s added to %(book)s" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3545 | #: cps/web.py:3546 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Failed to create path for cover %(path)s (Permission denied)." | msgid "Failed to create path for cover %(path)s (Permission denied)." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3553 | #: cps/web.py:3554 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Failed to store cover-file %(cover)s." | msgid "Failed to store cover-file %(cover)s." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3556 | #: cps/web.py:3557 | ||||||
| msgid "Cover-file is not a valid image file" | msgid "Cover-file is not a valid image file" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3586 cps/web.py:3595 | #: cps/web.py:3587 cps/web.py:3596 | ||||||
| msgid "unknown" | msgid "unknown" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3627 | #: cps/web.py:3628 | ||||||
| msgid "Cover is not a jpg file, can't save" | msgid "Cover is not a jpg file, can't save" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3675 | #: cps/web.py:3676 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "%(langname)s is not a valid language" | msgid "%(langname)s is not a valid language" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3706 | #: cps/web.py:3707 | ||||||
| msgid "Metadata successfully updated" | msgid "Metadata successfully updated" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3715 | #: cps/web.py:3716 | ||||||
| msgid "Error editing book, please check logfile for details" | msgid "Error editing book, please check logfile for details" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3765 | #: cps/web.py:3766 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Failed to store file %(file)s (Permission denied)." | msgid "Failed to store file %(file)s (Permission denied)." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3770 | #: cps/web.py:3771 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Failed to delete file %(file)s (Permission denied)." | msgid "Failed to delete file %(file)s (Permission denied)." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3888 | #: cps/web.py:3883 | ||||||
| msgid "Source or destination format for conversion missing" | msgid "Source or destination format for conversion missing" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3898 | #: cps/web.py:3893 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Book successfully queued for converting to %(book_format)s" | msgid "Book successfully queued for converting to %(book_format)s" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/web.py:3902 | #: cps/web.py:3897 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "There was an error converting this book: %(res)s" | msgid "There was an error converting this book: %(res)s" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -778,7 +778,7 @@ msgstr "" | |||||||
| msgid "DLS" | msgid "DLS" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/admin.html:13 cps/templates/layout.html:74 | #: cps/templates/admin.html:13 cps/templates/layout.html:75 | ||||||
| msgid "Admin" | msgid "Admin" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| @@ -787,7 +787,7 @@ msgstr "" | |||||||
| msgid "Download" | msgid "Download" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/admin.html:15 cps/templates/layout.html:64 | #: cps/templates/admin.html:15 cps/templates/layout.html:65 | ||||||
| msgid "Upload" | msgid "Upload" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| @@ -988,7 +988,7 @@ msgstr "" | |||||||
| msgid "Tags" | msgid "Tags" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/book_edit.html:75 cps/templates/layout.html:157 | #: cps/templates/book_edit.html:75 cps/templates/layout.html:158 | ||||||
| #: cps/templates/search_form.html:53 | #: cps/templates/search_form.html:53 | ||||||
| msgid "Series" | msgid "Series" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -1070,7 +1070,7 @@ msgstr "" | |||||||
| msgid " Search keyword " | msgid " Search keyword " | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/book_edit.html:218 cps/templates/layout.html:46 | #: cps/templates/book_edit.html:218 cps/templates/layout.html:47 | ||||||
| msgid "Go!" | msgid "Go!" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| @@ -1082,7 +1082,7 @@ msgstr "" | |||||||
| msgid "Loading..." | msgid "Loading..." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/book_edit.html:239 cps/templates/layout.html:224 | #: cps/templates/book_edit.html:239 cps/templates/layout.html:225 | ||||||
| msgid "Close" | msgid "Close" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| @@ -1250,7 +1250,7 @@ msgstr "" | |||||||
| msgid "Location of Unrar binary" | msgid "Location of Unrar binary" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/config_edit.html:229 cps/templates/layout.html:82 | #: cps/templates/config_edit.html:229 cps/templates/layout.html:83 | ||||||
| #: cps/templates/login.html:4 | #: cps/templates/login.html:4 | ||||||
| msgid "Login" | msgid "Login" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -1259,8 +1259,8 @@ msgstr "" | |||||||
| msgid "View Configuration" | msgid "View Configuration" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/config_view_edit.html:19 cps/templates/layout.html:133 | #: cps/templates/config_view_edit.html:19 cps/templates/layout.html:134 | ||||||
| #: cps/templates/layout.html:134 cps/templates/shelf_edit.html:7 | #: cps/templates/layout.html:135 cps/templates/shelf_edit.html:7 | ||||||
| msgid "Title" | msgid "Title" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| @@ -1472,12 +1472,12 @@ msgstr "" | |||||||
| msgid "Do you really want to delete this domain rule?" | msgid "Do you really want to delete this domain rule?" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/feed.xml:21 cps/templates/layout.html:208 | #: cps/templates/feed.xml:21 cps/templates/layout.html:209 | ||||||
| msgid "Next" | msgid "Next" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/feed.xml:33 cps/templates/index.xml:11 | #: cps/templates/feed.xml:33 cps/templates/index.xml:11 | ||||||
| #: cps/templates/layout.html:43 cps/templates/layout.html:44 | #: cps/templates/layout.html:44 cps/templates/layout.html:45 | ||||||
| msgid "Search" | msgid "Search" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| @@ -1493,7 +1493,7 @@ msgstr "" | |||||||
| msgid "Start" | msgid "Start" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/index.xml:18 cps/templates/layout.html:139 | #: cps/templates/index.xml:18 cps/templates/layout.html:140 | ||||||
| msgid "Hot Books" | msgid "Hot Books" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| @@ -1501,7 +1501,7 @@ msgstr "" | |||||||
| msgid "Popular publications from this catalog based on Downloads." | msgid "Popular publications from this catalog based on Downloads." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/index.xml:25 cps/templates/layout.html:142 | #: cps/templates/index.xml:25 cps/templates/layout.html:143 | ||||||
| msgid "Best rated Books" | msgid "Best rated Books" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| @@ -1521,7 +1521,7 @@ msgstr "" | |||||||
| msgid "Show Random Books" | msgid "Show Random Books" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/index.xml:62 cps/templates/layout.html:160 | #: cps/templates/index.xml:62 cps/templates/layout.html:161 | ||||||
| msgid "Authors" | msgid "Authors" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| @@ -1529,7 +1529,7 @@ msgstr "" | |||||||
| msgid "Books ordered by Author" | msgid "Books ordered by Author" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/index.xml:69 cps/templates/layout.html:163 | #: cps/templates/index.xml:69 cps/templates/layout.html:164 | ||||||
| msgid "Publishers" | msgid "Publishers" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| @@ -1545,7 +1545,7 @@ msgstr "" | |||||||
| msgid "Books ordered by series" | msgid "Books ordered by series" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/index.xml:90 cps/templates/layout.html:169 | #: cps/templates/index.xml:90 cps/templates/layout.html:170 | ||||||
| msgid "Public Shelves" | msgid "Public Shelves" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| @@ -1553,7 +1553,7 @@ msgstr "" | |||||||
| msgid "Books organized in public shelfs, visible to everyone" | msgid "Books organized in public shelfs, visible to everyone" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/index.xml:98 cps/templates/layout.html:173 | #: cps/templates/index.xml:98 cps/templates/layout.html:174 | ||||||
| msgid "Your Shelves" | msgid "Your Shelves" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| @@ -1561,91 +1561,95 @@ msgstr "" | |||||||
| msgid "User's own shelfs, only visible to the current user himself" | msgid "User's own shelfs, only visible to the current user himself" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:33 | #: cps/templates/layout.html:34 | ||||||
| msgid "Toggle navigation" | msgid "Toggle navigation" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:54 | #: cps/templates/layout.html:55 | ||||||
| msgid "Advanced Search" | msgid "Advanced Search" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:78 | #: cps/templates/layout.html:79 | ||||||
| msgid "Logout" | msgid "Logout" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:83 cps/templates/register.html:14 | #: cps/templates/layout.html:84 cps/templates/register.html:14 | ||||||
| msgid "Register" | msgid "Register" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:108 | #: cps/templates/layout.html:110 | ||||||
| msgid "Uploading..." | msgid "Uploading..." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:109 | #: cps/templates/layout.html:111 | ||||||
| msgid "please don't refresh the page" | msgid "please don't refresh the page" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:120 | #: cps/templates/layout.html:121 | ||||||
| msgid "Browse" | msgid "Browse" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:122 | #: cps/templates/layout.html:123 | ||||||
| msgid "Recently Added" | msgid "Recently Added" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:127 | #: cps/templates/layout.html:128 | ||||||
| msgid "Sorted Books" | msgid "Sorted Books" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:131 cps/templates/layout.html:132 | #: cps/templates/layout.html:132 cps/templates/layout.html:133 | ||||||
| #: cps/templates/layout.html:133 cps/templates/layout.html:134 | #: cps/templates/layout.html:134 cps/templates/layout.html:135 | ||||||
| msgid "Sort By" | msgid "Sort By" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:131 | #: cps/templates/layout.html:132 | ||||||
| msgid "Newest" | msgid "Newest" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:132 | #: cps/templates/layout.html:133 | ||||||
| msgid "Oldest" | msgid "Oldest" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:133 | #: cps/templates/layout.html:134 | ||||||
| msgid "Ascending" | msgid "Ascending" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:134 | #: cps/templates/layout.html:135 | ||||||
| msgid "Descending" | msgid "Descending" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:151 | #: cps/templates/layout.html:152 | ||||||
| msgid "Discover" | msgid "Discover" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:154 | #: cps/templates/layout.html:155 | ||||||
| msgid "Categories" | msgid "Categories" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:166 cps/templates/search_form.html:74 | #: cps/templates/layout.html:167 cps/templates/search_form.html:74 | ||||||
| msgid "Languages" | msgid "Languages" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:178 | #: cps/templates/layout.html:179 | ||||||
| msgid "Create a Shelf" | msgid "Create a Shelf" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:179 cps/templates/stats.html:3 | #: cps/templates/layout.html:180 cps/templates/stats.html:3 | ||||||
| msgid "About" | msgid "About" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:193 | #: cps/templates/layout.html:194 | ||||||
| msgid "Previous" | msgid "Previous" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/layout.html:220 | #: cps/templates/layout.html:221 | ||||||
| msgid "Book Details" | msgid "Book Details" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
|  | #: cps/templates/layout.html:255 | ||||||
|  | msgid "Upload done, processing, please wait..." | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/login.html:8 cps/templates/login.html:9 | #: cps/templates/login.html:8 cps/templates/login.html:9 | ||||||
| #: cps/templates/register.html:7 cps/templates/user_edit.html:8 | #: cps/templates/register.html:7 cps/templates/user_edit.html:8 | ||||||
| msgid "Username" | msgid "Username" | ||||||
| @@ -1668,12 +1672,12 @@ msgstr "" | |||||||
| msgid "Calibre-Web ebook catalog" | msgid "Calibre-Web ebook catalog" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/read.html:69 cps/templates/readcbr.html:79 | #: cps/templates/read.html:71 cps/templates/readcbr.html:79 | ||||||
| #: cps/templates/readcbr.html:103 | #: cps/templates/readcbr.html:103 | ||||||
| msgid "Settings" | msgid "Settings" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: cps/templates/read.html:72 | #: cps/templates/read.html:74 | ||||||
| msgid "Reflow text when sidebars are open." | msgid "Reflow text when sidebars are open." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Ozzieisaacs
					Ozzieisaacs