6eQs7$qDJ-&xEm{Vqc&cB8k
z^xIGyi7j`WshH%Vp@^5FQn>;(@e`=m=K!i|ze9b1u3Nj_X^J)uhcP}D!*MC9cAiEB
z`U-mD+oitig#q}MSOLn=(sO+ZalgF3Pen1g$<
z2Y!#*vF}|b;6U`IAA_1N0evtRLs{R+qoLH4qaJ*~x(v1B6{sCPgIe$yD!_A?h~HZy
z7nndNp{jm~^^hI^4|*{^u+r34Dh^?NXD$szz8Sg4*@ucWa-mr;1Ec5{TI;Ys{Z01z
z5$mU@Bl#5-c#lP9=Yuewei|m=9jNtIqDvQ^qY;fCqR#w#yc+|nOsbZl9$bZ;aX;z^
zj-fJl9w*|j7=YQ;=2M=BT4*tJW2Yt`gmDH+CUU2rr`##>N3Xhxm=J`BW*
zs3Z6pyJFWG^FfJ51vVJ<)?{H8EJEHuRLz0thvBFV^hMQBA`Zd{cDxQ1u*>#cEi|;Vm+@Bo
z2o+H5J?8)YGBK5YIjX9kLM`|SM&f6v+PQ(+aqoLgvBsjVk3;RW43&X8)O?R(nBM=_
zX#_EF5>+G@P!Il&eKF!blj>~Lj_yWHxCXW3CJez{sOOKMUgNW<%w0e}A^g^AK4cX*
zitbX((ffatMt2509^hv?hM^|RL)AbTD)PmsKp#N`xDi!!ZhO7eUO$04s`IGV^c&2?
zt`C~;#m%S;+=~NP-`Pzg9ZzE#`afhoojKM!QD?RqXW>57kp(T`*DXv#1-2ds<95`M
zoI<^BKj8$-VKLR%D(r)AqDyD}DGg0<8C5LKQj^+5)J`%`8OX*-n2$ZM5mht$QR6<#
zOvVaP#aV{oScAQBHRj-psP)>Gk$zA9kXj
zgnAp&Pz&Xtif}rrHcC;oQi(c>hfqh`f}wcm5q7MJKe7W~;4J#rP~#RgO^=2B53$5Hw(pLANm=n%uKWW
zg_uQuE$S@a#bgXxVRk+m_1p~9!VjSCZ$jOF2E8!)akKCMRAyYGX?W8pKCimkA5m@!?&TA-v3!N
z#xZaw`r=;H1g~QZ9!C#sLk0FdD%F{5&Ht*ESf53`e&6CG3}0t{$16i^Y(Hw@e_~I(
zi0%LW{|5~%5b%Wg!|aVTEL5=>cdz891JRs=A#y#Yx{Sh=3jyeV8tfRUyV%+XrdPDF;qb3tiPgC7P#5mKLnMz(WnKc+woEi
zpkIv&cnKB*zmewKyEtU=|+71nksoUZW(8
zpg$KC_)_eN8&DJPL2bm1J+KuO$p2w4yo4#}y_MRa{+vu2LvRWzmCG;%n|GuLlIfBF+q3l!Ua4eE>MLOu69>WKb~Nq8Dvy=ioM)djniMs!2?vsLVWOU4wb_8@6-)`lNngFARFle29ji
zGEs$kJ@2vo<*2h=hbq=)R59&BEpPypu|K2Uj#H>iUB`|X|GarF5mlt=&%4ZnBN))m
z$6^l7K`s0|PD3|#LjM+1#X*=#KMu!Y38rH+s&@X4aTvVA{3}@&4y1n{j=&bw2ETOC
z&}(tY>g+T-2tlPd9<`HfR6rFt2Jb}`*%dC}}}FwUbp6cuo@
z9e)vHS>Jh;hIV!am5HxW)p`T{Fl4vcK@@t^ABlP!#$g{UMFqIb_8U<@8xEm%c*^=E
z`q2Ny`a8D&`=9q7vrr5wm5HbTvQcMTg1)#0J#iCi;Vr15I*dBgqc{+MM}JJ%YrY@p
zsEpR2z89-d0XAZGIgNex!WGm)9bYn49)QYBBx=Gz=z*E2Obo})I2QHXRMbM#QGwN9
z0@lCe_KV%;@4cwLyk>D$l>3d88J*mIL)Ufmol;d_9yP9_vb^Eg{bBC)ncKVjMUAbx
zXHjKUX<2QXXT}I@G7laJin@@;b8vAhL`g_-3#)6^z$k#
ztzE#p1=F{7@W4wmYCXIQ=9gF2m)E+d-OJ>b;ymoGB&AigusG9P*73GT-m)AD@urb~3
zv#Gj6!$+IDc@hhuT-u!EU!D~eJD|L#rm7~s)_u?B;a$2Fme!P)MwKx|)uO7o6=kJa
o?pIrKh^uZ+`@&atUiAp5jViBQT&jtkg1Uwqb>Z#~yQg;eA3ruui2wiq
diff --git a/cps/translations/es/LC_MESSAGES/messages.po b/cps/translations/es/LC_MESSAGES/messages.po
index 6012ed55..ddff0e75 100644
--- a/cps/translations/es/LC_MESSAGES/messages.po
+++ b/cps/translations/es/LC_MESSAGES/messages.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
-"POT-Creation-Date: 2020-10-06 21:47+0200\n"
+"POT-Creation-Date: 2020-10-10 11:32+0200\n"
"PO-Revision-Date: 2020-05-25 17:22+0200\n"
"Last-Translator: minakmostoles \n"
"Language: es\n"
@@ -49,9 +49,9 @@ msgstr "Reconexión correcta"
msgid "Unknown command"
msgstr "Comando desconocido"
-#: cps/admin.py:116 cps/editbooks.py:575 cps/editbooks.py:587
-#: cps/editbooks.py:687 cps/editbooks.py:689 cps/editbooks.py:750
-#: cps/editbooks.py:766 cps/updater.py:509 cps/uploader.py:98
+#: cps/admin.py:116 cps/editbooks.py:612 cps/editbooks.py:624
+#: cps/editbooks.py:724 cps/editbooks.py:726 cps/editbooks.py:787
+#: cps/editbooks.py:803 cps/updater.py:510 cps/uploader.py:98
#: cps/uploader.py:108
msgid "Unknown"
msgstr "Desconocido"
@@ -69,12 +69,12 @@ msgid "Calibre-Web configuration updated"
msgstr "Configuración de Calibre-Web actualizada"
#: cps/admin.py:435 cps/admin.py:441 cps/admin.py:452 cps/admin.py:463
-#: cps/templates/modal_restriction.html:29
+#: cps/templates/modal_dialogs.html:29
msgid "Deny"
msgstr "Denegar"
#: cps/admin.py:437 cps/admin.py:443 cps/admin.py:454 cps/admin.py:465
-#: cps/templates/modal_restriction.html:28
+#: cps/templates/modal_dialogs.html:28
msgid "Allow"
msgstr "Permitir"
@@ -142,7 +142,7 @@ msgstr "La base de datos no es modificable"
msgid "Basic Configuration"
msgstr "Configuración básica"
-#: cps/admin.py:762 cps/web.py:1338
+#: cps/admin.py:762 cps/web.py:1493
msgid "Please fill out all fields!"
msgstr "¡Por favor, completa todos los campos!"
@@ -150,7 +150,7 @@ msgstr "¡Por favor, completa todos los campos!"
msgid "Add new user"
msgstr "Añadir un nuevo usuario"
-#: cps/admin.py:774 cps/web.py:1581
+#: cps/admin.py:774 cps/web.py:1739
msgid "E-mail is not from valid domain"
msgstr "El correo electrónico no tiene un dominio válido"
@@ -176,16 +176,16 @@ msgstr "No queda ningún usuario administrador, no se puede eliminar al usuario"
msgid "No admin user remaining, can't remove admin role"
msgstr "No queda ningún usuario administrador, no se puede eliminar al usuario"
-#: cps/admin.py:853 cps/web.py:1624
+#: cps/admin.py:853 cps/web.py:1781
msgid "Found an existing account for this e-mail address."
msgstr "Encontrada una cuenta existente para esa dirección de correo electrónico."
-#: cps/admin.py:863 cps/admin.py:878 cps/admin.py:989 cps/web.py:1599
+#: cps/admin.py:863 cps/admin.py:878 cps/admin.py:989 cps/web.py:1757
#, python-format
msgid "Edit User %(nick)s"
msgstr "Editar Usuario %(nick)s"
-#: cps/admin.py:869 cps/web.py:1591
+#: cps/admin.py:869 cps/web.py:1750
msgid "This username is already taken"
msgstr "Este nombre de usuario ya está en uso"
@@ -229,11 +229,11 @@ msgstr "Usuario no encontrado"
msgid "Password for user %(user)s reset"
msgstr "Contraseña para el usuario %(user)s reinicializada"
-#: cps/admin.py:1003 cps/web.py:1362 cps/web.py:1426
+#: cps/admin.py:1003 cps/web.py:1517 cps/web.py:1581
msgid "An unknown error occurred. Please try again later."
msgstr "Ha ocurrido un error desconocido. Por favor vuelva a intentarlo más tarde."
-#: cps/admin.py:1006 cps/web.py:1300
+#: cps/admin.py:1006 cps/web.py:1455
msgid "Please configure the SMTP mail settings first..."
msgstr "Configura primero los parámetros del servidor SMTP..."
@@ -274,19 +274,19 @@ msgstr "Actualización finalizada. Por favor, pulse OK y recargue la página"
msgid "Update failed:"
msgstr "Falló la actualización:"
-#: cps/admin.py:1064 cps/updater.py:319 cps/updater.py:520 cps/updater.py:522
+#: cps/admin.py:1064 cps/updater.py:320 cps/updater.py:521 cps/updater.py:523
msgid "HTTP Error"
msgstr "Error HTTP"
-#: cps/admin.py:1065 cps/updater.py:321 cps/updater.py:524
+#: cps/admin.py:1065 cps/updater.py:322 cps/updater.py:525
msgid "Connection error"
msgstr "Error de conexión"
-#: cps/admin.py:1066 cps/updater.py:323 cps/updater.py:526
+#: cps/admin.py:1066 cps/updater.py:324 cps/updater.py:527
msgid "Timeout while establishing connection"
msgstr "Tiempo agotado mientras se trataba de establecer la conexión"
-#: cps/admin.py:1067 cps/updater.py:325 cps/updater.py:528
+#: cps/admin.py:1067 cps/updater.py:326 cps/updater.py:529
msgid "General error"
msgstr "Error general"
@@ -302,103 +302,98 @@ msgstr "no configurado"
msgid "Execution permissions missing"
msgstr "Faltan permisos de ejecución"
-#: cps/editbooks.py:245
+#: cps/editbooks.py:273 cps/editbooks.py:275
msgid "Book Format Successfully Deleted"
msgstr "Formato de libro borrado correctamente"
-#: cps/editbooks.py:248
+#: cps/editbooks.py:282 cps/editbooks.py:284
msgid "Book Successfully Deleted"
msgstr "Libro borrado correctamente"
-#: cps/editbooks.py:257 cps/editbooks.py:560 cps/web.py:1647 cps/web.py:1688
-#: cps/web.py:1750
+#: cps/editbooks.py:293 cps/editbooks.py:596 cps/web.py:1812 cps/web.py:1853
+#: cps/web.py:1915
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr "Error abriendo un eBook. El archivo no existe o no es accesible"
-#: cps/editbooks.py:291
+#: cps/editbooks.py:327
msgid "edit metadata"
msgstr "editar metadatos"
-#: cps/editbooks.py:366
+#: cps/editbooks.py:402
#, python-format
msgid "%(langname)s is not a valid language"
msgstr "%(langname)s no es un idioma válido"
-#: cps/editbooks.py:477 cps/editbooks.py:732
+#: cps/editbooks.py:513 cps/editbooks.py:769
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "No se permite subir archivos con la extensión '%(ext)s' a este servidor"
-#: cps/editbooks.py:481 cps/editbooks.py:736
+#: cps/editbooks.py:517 cps/editbooks.py:773
msgid "File to be uploaded must have an extension"
msgstr "El archivo a subir debe tener una extensión"
-#: cps/editbooks.py:493 cps/editbooks.py:796
+#: cps/editbooks.py:529
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "Fallo al crear la ruta %(path)s (permiso denegado)"
-#: cps/editbooks.py:498
+#: cps/editbooks.py:534
#, python-format
msgid "Failed to store file %(file)s."
msgstr "Fallo al guardar el archivo %(file)s."
-#: cps/editbooks.py:516 cps/editbooks.py:887
+#: cps/editbooks.py:552 cps/editbooks.py:904
#, python-format
msgid "Database error: %(error)s."
msgstr "Error en la base de datos: %(error)s."
-#: cps/editbooks.py:520
+#: cps/editbooks.py:556
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "Archivo con formato %(ext)s añadido a %(book)s"
-#: cps/editbooks.py:636
+#: cps/editbooks.py:673
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr ""
-#: cps/editbooks.py:673
+#: cps/editbooks.py:710
msgid "Metadata successfully updated"
msgstr "Metadatos actualizados correctamente"
-#: cps/editbooks.py:682
+#: cps/editbooks.py:719
msgid "Error editing book, please check logfile for details"
msgstr "Error al editar el libro, por favor, compruebe el archivo de registro (logfile) para tener más detalles"
-#: cps/editbooks.py:744
+#: cps/editbooks.py:781
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr "El archivo %(filename)s no pudo salvarse en el directorio temporal (Temp Dir)"
-#: cps/editbooks.py:754
+#: cps/editbooks.py:791
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr "El libro cargado probablemente existe en la biblioteca, considera cambiarlo antes de subirlo de nuevo: "
-#: cps/editbooks.py:803
-#, python-format
-msgid "Failed to Move File %(file)s: %(error)s"
-msgstr "Fallo al mover el archivo %(file)s: %(error)s"
-
-#: cps/editbooks.py:859
+#: cps/editbooks.py:879
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr "Fallo al mover el archivo de cubierta %(file)s: %(error)s"
-#: cps/editbooks.py:873
+#: cps/editbooks.py:890
#, python-format
msgid "File %(file)s uploaded"
msgstr "El fichero %(file)s a sido subido"
-#: cps/editbooks.py:899
+#: cps/editbooks.py:916
msgid "Source or destination format for conversion missing"
msgstr "Falta la fuente o el formato de destino para la conversión"
-#: cps/editbooks.py:907
+#: cps/editbooks.py:924
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "Libro puesto a la cola para su conversión a %(book_format)s"
-#: cps/editbooks.py:911
+#: cps/editbooks.py:928
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "Ocurrió un error al convertir este libro: %(res)s"
@@ -411,136 +406,131 @@ msgstr "La configuración de Google Drive no se ha completado, intente desactiva
msgid "Callback domain is not verified, please follow steps to verify domain in google developer console"
msgstr "El dominio Callback no se ha verificado, siga los pasos para verificarlo en la consola de desarrollador de Google"
-#: cps/helper.py:77
+#: cps/helper.py:79
#, python-format
msgid "%(format)s format not found for book id: %(book)d"
msgstr "%(format)s formato no encontrado para el id del libro: %(book)d"
-#: cps/helper.py:89
+#: cps/helper.py:85 cps/tasks/convert.py:50
#, python-format
msgid "%(format)s not found on Google Drive: %(fn)s"
msgstr "%(format)s no encontrado en Google Drive: %(fn)s"
-#: cps/helper.py:96 cps/helper.py:224 cps/templates/detail.html:41
-#: cps/templates/detail.html:45
-msgid "Send to Kindle"
-msgstr "Enviar al Kindle"
-
-#: cps/helper.py:97 cps/helper.py:115 cps/helper.py:226
-msgid "This e-mail has been sent via Calibre-Web."
-msgstr "Este correo electrónico ha sido enviado usando Calibre-Web."
-
-#: cps/helper.py:108
+#: cps/helper.py:90
#, python-format
msgid "%(format)s not found: %(fn)s"
msgstr "%(format)s no encontrado: %(fn)s"
-#: cps/helper.py:113
+#: cps/helper.py:95 cps/helper.py:228 cps/templates/detail.html:41
+#: cps/templates/detail.html:45
+msgid "Send to Kindle"
+msgstr "Enviar al Kindle"
+
+#: cps/helper.py:96 cps/helper.py:112 cps/helper.py:230
+msgid "This e-mail has been sent via Calibre-Web."
+msgstr "Este correo electrónico ha sido enviado usando Calibre-Web."
+
+#: cps/helper.py:110
msgid "Calibre-Web test e-mail"
msgstr "Correo de prueba de Calibre-Web"
-#: cps/helper.py:115
+#: cps/helper.py:111
msgid "Test e-mail"
msgstr "Comprobar correo electrónico"
-#: cps/helper.py:130
+#: cps/helper.py:128
msgid "Get Started with Calibre-Web"
msgstr "Primeros pasos con Calibre-Web"
-#: cps/helper.py:132
+#: cps/helper.py:133
#, python-format
msgid "Registration e-mail for user: %(name)s"
msgstr "Correo electrónico de registro para el usuario: %(name)s"
-#: cps/helper.py:149 cps/helper.py:153 cps/helper.py:157 cps/helper.py:166
-#: cps/helper.py:170 cps/helper.py:174
+#: cps/helper.py:153 cps/helper.py:157 cps/helper.py:161 cps/helper.py:170
+#: cps/helper.py:174 cps/helper.py:178
#, python-format
msgid "Send %(format)s to Kindle"
msgstr "Enviado %(format)s al Kindle"
-#: cps/helper.py:179 cps/helper.py:185
+#: cps/helper.py:183 cps/helper.py:189
#, python-format
msgid "Convert %(orig)s to %(format)s and send to Kindle"
msgstr "Convertir %(orig)s a %(format)s y enviar al Kindle"
-#: cps/helper.py:226
+#: cps/helper.py:230
#, python-format
msgid "E-mail: %(book)s"
msgstr "Correo electrónico: %(book)s"
-#: cps/helper.py:228
+#: cps/helper.py:232
msgid "The requested file could not be read. Maybe wrong permissions?"
msgstr "El archivo solicitado no puede ser leído. ¿Quizás existen problemas con los permisos?"
-#: cps/helper.py:325
+#: cps/helper.py:329
#, python-format
msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s"
msgstr "Fallo al intentar borrar la carpeta del libro %(id)s, la ruta tiene subcarpetas: %(path)s"
-#: cps/helper.py:331
+#: cps/helper.py:335
#, python-format
msgid "Deleting book %(id)s failed: %(message)s"
msgstr "El borrado del libro %(id)s falló: %(message)s"
-#: cps/helper.py:341
+#: cps/helper.py:345
#, python-format
msgid "Deleting book %(id)s, book path not valid: %(path)s"
msgstr "Borrando el libro %(id)s, la ruta del libro es inválida: %(path)s"
-#: cps/helper.py:376
+#: cps/helper.py:397
#, python-format
msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr "El renombrado del título de: '%(src)s' a '%(dest)s' falló con el error: %(error)s"
-#: cps/helper.py:386
-#, python-format
-msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
-msgstr "El renombrado del autor de: '%(src)s' a '%(dest)s' falló con el errore: %(error)s"
-
-#: cps/helper.py:402
+#: cps/helper.py:410
#, python-format
msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr "Ha fallado el cambio de nombre del archivo '%(src)s' a '%(dest)s' con el error: %(error)s"
-#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446
+#: cps/helper.py:435 cps/helper.py:445 cps/helper.py:453
#, python-format
msgid "File %(file)s not found on Google Drive"
msgstr "Fichero %(file)s no encontrado en Google Drive"
-#: cps/helper.py:467
+#: cps/helper.py:474
#, python-format
msgid "Book path %(path)s not found on Google Drive"
msgstr "La ruta %(path)s del libro no fue encontrada en Google Drive"
-#: cps/helper.py:576
+#: cps/helper.py:583
msgid "Error Downloading Cover"
msgstr "Error al descargar la cubierta"
-#: cps/helper.py:579
+#: cps/helper.py:586
msgid "Cover Format Error"
msgstr "Error en el formato de la cubierta"
-#: cps/helper.py:594
+#: cps/helper.py:601
msgid "Failed to create path for cover"
msgstr "Error al crear una ruta para la cubierta"
-#: cps/helper.py:599
+#: cps/helper.py:606
msgid "Cover-file is not a valid image file, or could not be stored"
msgstr "El archivo de cubierta no es una imágen válida"
-#: cps/helper.py:610
+#: cps/helper.py:617
msgid "Only jpg/jpeg/png/webp files are supported as coverfile"
msgstr "Las cubiertas deben estar en formato jpg/jpeg/png/webp"
-#: cps/helper.py:624
+#: cps/helper.py:631
msgid "Only jpg/jpeg files are supported as coverfile"
msgstr "Siki kis archivos jpg/jpeg están soportados como cubierta"
-#: cps/helper.py:672
+#: cps/helper.py:679
msgid "Unrar binary file not found"
msgstr "No se ha encontrado el binario del comando UnRar"
-#: cps/helper.py:686
+#: cps/helper.py:693
msgid "Error excecuting UnRar"
msgstr "Error ejecutando UnRar"
@@ -564,22 +554,6 @@ msgstr "Finalizado"
msgid "Unknown Status"
msgstr "Estado desconocido"
-#: cps/helper.py:755
-msgid "E-mail: "
-msgstr "E-mail: "
-
-#: cps/helper.py:757 cps/helper.py:761
-msgid "Convert: "
-msgstr "Convertir: "
-
-#: cps/helper.py:759
-msgid "Upload: "
-msgstr "Subir: "
-
-#: cps/helper.py:763
-msgid "Unknown Task: "
-msgstr "Tarea desconocida:"
-
#: cps/kobo_auth.py:130
msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device"
msgstr "Por favor, accede a calibre-web desde una ubicación que no sea localhost para obtener una api_endpoint válida para tu dispositivo Kobo"
@@ -609,7 +583,7 @@ msgstr "Error al iniciar sesión con Google."
msgid "Failed to fetch user info from Google."
msgstr "Error al obtener información del usuario de Google."
-#: cps/oauth_bb.py:225 cps/web.py:1398 cps/web.py:1540
+#: cps/oauth_bb.py:225 cps/web.py:1553 cps/web.py:1695
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "has iniciado sesión como : '%(nickname)s'"
@@ -714,7 +688,7 @@ msgstr "Estante %(title)s creado"
msgid "There was an error"
msgstr "Ha sucedido un error"
-#: cps/shelf.py:264 cps/shelf.py:266 cps/templates/layout.html:144
+#: cps/shelf.py:264 cps/shelf.py:266 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr "Crear un estante"
@@ -745,388 +719,426 @@ msgstr "Libro oculto"
msgid "Change order of Shelf: '%(name)s'"
msgstr "Cambiar orden del estante: '%(name)s'"
-#: cps/ub.py:65
+#: cps/ub.py:68
msgid "Recently Added"
msgstr "Añadido recientemente"
-#: cps/ub.py:67
+#: cps/ub.py:70
msgid "Show recent books"
msgstr "Mostrar libros recientes"
-#: cps/templates/index.xml:17 cps/ub.py:68
+#: cps/templates/index.xml:17 cps/ub.py:71
msgid "Hot Books"
msgstr "Libros populares"
-#: cps/ub.py:70
+#: cps/ub.py:73
msgid "Show Hot Books"
msgstr "Mostrar libros populares"
-#: cps/templates/index.xml:24 cps/ub.py:72 cps/web.py:653
+#: cps/ub.py:74
+msgid "Downloaded Books"
+msgstr ""
+
+#: cps/ub.py:76
+msgid "Show Downloaded Books"
+msgstr ""
+
+#: cps/templates/index.xml:24 cps/ub.py:79 cps/web.py:635
msgid "Top Rated Books"
msgstr "Libros mejor valorados"
-#: cps/ub.py:74
+#: cps/ub.py:81
msgid "Show Top Rated Books"
msgstr "Mostrar libros mejor valorados"
-#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:75
-#: cps/web.py:1220
+#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:82
+#: cps/web.py:896
msgid "Read Books"
msgstr "Libros leídos"
-#: cps/ub.py:77
+#: cps/ub.py:84
msgid "Show read and unread"
msgstr "Mostrar leídos y no leídos"
-#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:79
-#: cps/web.py:1223
+#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:86
+#: cps/web.py:899
msgid "Unread Books"
msgstr "Libros no leídos"
-#: cps/ub.py:81
+#: cps/ub.py:88
msgid "Show unread"
msgstr "Mostrar no leído"
-#: cps/ub.py:82
+#: cps/ub.py:89
msgid "Discover"
msgstr "Descubrir"
-#: cps/ub.py:84
+#: cps/ub.py:91
msgid "Show random books"
msgstr "Mostrar libros al azar"
-#: cps/templates/index.xml:75 cps/ub.py:85 cps/web.py:968
+#: cps/templates/book_table.html:50 cps/templates/index.xml:75 cps/ub.py:92
+#: cps/web.py:1200
msgid "Categories"
msgstr "Categorías"
-#: cps/ub.py:87
+#: cps/ub.py:94
msgid "Show category selection"
msgstr "Mostrar selección de categorías"
-#: cps/templates/book_edit.html:84 cps/templates/index.xml:82
-#: cps/templates/search_form.html:53 cps/ub.py:88 cps/web.py:884 cps/web.py:894
+#: cps/templates/book_edit.html:84 cps/templates/book_table.html:51
+#: cps/templates/index.xml:82 cps/templates/search_form.html:53 cps/ub.py:95
+#: cps/web.py:1104 cps/web.py:1114
msgid "Series"
msgstr "Series"
-#: cps/ub.py:90
+#: cps/ub.py:97
msgid "Show series selection"
msgstr "Mostrar selección de series"
-#: cps/templates/index.xml:61 cps/ub.py:91
+#: cps/templates/book_table.html:49 cps/templates/index.xml:61 cps/ub.py:98
msgid "Authors"
msgstr "Autores"
-#: cps/ub.py:93
+#: cps/ub.py:100
msgid "Show author selection"
msgstr "Mostrar selección de autores"
-#: cps/templates/index.xml:68 cps/ub.py:95 cps/web.py:867
+#: cps/templates/book_table.html:55 cps/templates/index.xml:68 cps/ub.py:102
+#: cps/web.py:1083
msgid "Publishers"
msgstr "Editores"
-#: cps/ub.py:97
+#: cps/ub.py:104
msgid "Show publisher selection"
msgstr "Mostrar selección de editores"
-#: cps/templates/index.xml:89 cps/templates/search_form.html:74 cps/ub.py:98
-#: cps/web.py:951
+#: cps/templates/book_table.html:53 cps/templates/index.xml:89
+#: cps/templates/search_form.html:74 cps/ub.py:105 cps/web.py:1179
msgid "Languages"
msgstr "Idiomas"
-#: cps/ub.py:101
+#: cps/ub.py:108
msgid "Show language selection"
msgstr "Mostrar selección de idiomas"
-#: cps/templates/index.xml:96 cps/ub.py:102
+#: cps/templates/index.xml:96 cps/ub.py:109
msgid "Ratings"
msgstr "Calificaciones"
-#: cps/ub.py:104
+#: cps/ub.py:111
msgid "Show ratings selection"
msgstr "Mostrar selección de calificaciones"
-#: cps/templates/index.xml:104 cps/ub.py:105
+#: cps/templates/index.xml:104 cps/ub.py:112
msgid "File formats"
msgstr "Formatos de archivo"
-#: cps/ub.py:107
+#: cps/ub.py:114
msgid "Show file formats selection"
msgstr "Mostrar selección de formatos de archivo"
-#: cps/ub.py:109 cps/web.py:1247
+#: cps/ub.py:116 cps/web.py:923
msgid "Archived Books"
msgstr "Libros archivados"
-#: cps/ub.py:111
+#: cps/ub.py:118
msgid "Show archived books"
msgstr "Mostrar libros archivados"
-#: cps/updater.py:294 cps/updater.py:305 cps/updater.py:406 cps/updater.py:420
+#: cps/ub.py:120
+msgid "Books List"
+msgstr ""
+
+#: cps/ub.py:122
+msgid "Show Books List"
+msgstr ""
+
+#: cps/updater.py:295 cps/updater.py:306 cps/updater.py:407 cps/updater.py:421
msgid "Unexpected data while reading update information"
msgstr "Dato inesperado mientras se leía la información de actualización"
-#: cps/updater.py:301 cps/updater.py:412
+#: cps/updater.py:302 cps/updater.py:413
msgid "No update available. You already have the latest version installed"
msgstr "Actualización no disponible. Ya tienes instalada la versión más reciente"
-#: cps/updater.py:333
+#: cps/updater.py:334
msgid "A new update is available. Click on the button below to update to the latest version."
msgstr "Una nueva actualización está disponible. Haz clic en el botón inferior para actualizar a la versión más reciente."
-#: cps/updater.py:385
+#: cps/updater.py:386
msgid "Could not fetch update information"
msgstr "No se puede conseguir información sobre la actualización"
-#: cps/updater.py:399
+#: cps/updater.py:400
msgid "No release information available"
msgstr "No hay información del lanzamiento disponible"
-#: cps/updater.py:456 cps/updater.py:467 cps/updater.py:486
+#: cps/updater.py:457 cps/updater.py:468 cps/updater.py:487
#, python-format
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr "Hay una nueva actualización disponible. Haz clic en el botón de abajo para actualizar a la versión: %(version)s"
-#: cps/updater.py:477
+#: cps/updater.py:478
msgid "Click on the button below to update to the latest stable version."
msgstr "Haz clic en el botón de abajo para actualizar a la última versión estable."
-#: cps/web.py:320
+#: cps/web.py:316
#, python-format
msgid "Error: %(ldaperror)s"
msgstr "Error: %(ldaperror)s"
-#: cps/web.py:324
+#: cps/web.py:320
msgid "Error: No user returned in response of LDAP server"
msgstr "Error: el servidor LDAP no ha devuelto ningún usuario"
-#: cps/web.py:372
+#: cps/web.py:368
msgid "Failed to Create at Least One LDAP User"
msgstr "Error al crear al menos un usuario LDAP"
-#: cps/web.py:375
+#: cps/web.py:371
msgid "At Least One LDAP User Not Found in Database"
msgstr "Al menos, un usuario LDAP no se ha encontrado en la base de datos"
-#: cps/web.py:377
+#: cps/web.py:373
msgid "User Successfully Imported"
msgstr "Usuario importado correctamente"
-#: cps/web.py:623
-msgid "Recently Added Books"
-msgstr "Libros añadidos recientemente"
-
-#: cps/templates/index.html:5 cps/web.py:661
+#: cps/templates/index.html:5 cps/web.py:643
msgid "Discover (Random Books)"
msgstr "Descubrir (Libros al azar)"
-#: cps/web.py:689
+#: cps/web.py:682
msgid "Books"
msgstr "Libros"
-#: cps/web.py:716
+#: cps/web.py:709
msgid "Hot Books (Most Downloaded)"
msgstr "Libros populares (los más descargados)"
-#: cps/web.py:729
+#: cps/web.py:744
+#, python-format
+msgid "Downloaded books by %(user)s"
+msgstr ""
+
+#: cps/web.py:758
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr "oh, oh, el libro seleccionado no está disponible. El archivo no existe o no es accesible"
-#: cps/web.py:743
+#: cps/web.py:772
#, python-format
msgid "Author: %(name)s"
msgstr "Autor/es: %(name)s"
-#: cps/web.py:757
+#: cps/web.py:786
#, python-format
msgid "Publisher: %(name)s"
msgstr "Editor/es: %(name)s"
-#: cps/web.py:770
+#: cps/web.py:799
#, python-format
msgid "Series: %(serie)s"
msgstr "Series: %(serie)s"
-#: cps/web.py:783
+#: cps/web.py:812
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Calificación: %(rating)s estrellas"
-#: cps/web.py:796
+#: cps/web.py:825
#, python-format
msgid "File format: %(format)s"
msgstr "Formato del archivo: %(format)s"
-#: cps/web.py:810
+#: cps/web.py:839
#, python-format
msgid "Category: %(name)s"
msgstr "Categoría : %(name)s"
-#: cps/web.py:829
+#: cps/web.py:858
#, python-format
msgid "Language: %(name)s"
msgstr "Idioma: %(name)s"
-#: cps/web.py:908
-msgid "Ratings list"
-msgstr "Lista de calificaciones"
-
-#: cps/web.py:923
-msgid "File formats list"
-msgstr "Lista de formatos"
-
-#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:982
-msgid "Tasks"
-msgstr "Tareas"
-
-#: cps/templates/book_edit.html:240 cps/templates/feed.xml:33
-#: cps/templates/layout.html:45 cps/templates/layout.html:48
-#: cps/templates/search_form.html:174 cps/web.py:1008 cps/web.py:1013
-msgid "Search"
-msgstr "Buscar"
-
-#: cps/web.py:1064
-msgid "Published after "
-msgstr "Publicado después de "
-
-#: cps/web.py:1071
-msgid "Published before "
-msgstr "Publicado antes de "
-
-#: cps/web.py:1085
-#, python-format
-msgid "Rating <= %(rating)s"
-msgstr "Calificación <= %(rating)s"
-
-#: cps/web.py:1087
-#, python-format
-msgid "Rating >= %(rating)s"
-msgstr "Calificación >= %(rating)s"
-
-#: cps/web.py:1156 cps/web.py:1181
-msgid "search"
-msgstr "búsqueda"
-
-#: cps/web.py:1211
+#: cps/web.py:887
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr ""
-#: cps/web.py:1305
+#: cps/web.py:954 cps/web.py:1395
+msgid "search"
+msgstr "búsqueda"
+
+#: cps/templates/book_edit.html:213 cps/templates/feed.xml:33
+#: cps/templates/layout.html:45 cps/templates/layout.html:48
+#: cps/templates/search_form.html:174 cps/web.py:966 cps/web.py:1235
+msgid "Search"
+msgstr "Buscar"
+
+#: cps/web.py:994
+msgid "Books list"
+msgstr ""
+
+#: cps/web.py:1132
+msgid "Ratings list"
+msgstr "Lista de calificaciones"
+
+#: cps/web.py:1151
+msgid "File formats list"
+msgstr "Lista de formatos"
+
+#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:1214
+msgid "Tasks"
+msgstr "Tareas"
+
+#: cps/web.py:1292
+msgid "Published after "
+msgstr "Publicado después de "
+
+#: cps/web.py:1299
+msgid "Published before "
+msgstr "Publicado antes de "
+
+#: cps/web.py:1313
+#, python-format
+msgid "Rating <= %(rating)s"
+msgstr "Calificación <= %(rating)s"
+
+#: cps/web.py:1315
+#, python-format
+msgid "Rating >= %(rating)s"
+msgstr "Calificación >= %(rating)s"
+
+#: cps/web.py:1460
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Libro puesto en la cola de envío a %(kindlemail)s"
-#: cps/web.py:1309
+#: cps/web.py:1464
#, python-format
msgid "Oops! There was an error sending this book: %(res)s"
msgstr "Ha sucedido un error en el envío del libro: %(res)s"
-#: cps/web.py:1311
+#: cps/web.py:1466
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr "Por favor actualiza tu perfil con la dirección de correo de su kindle..."
-#: cps/web.py:1328
+#: cps/web.py:1483
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr "El servidor de E-Mail no está configurado, por favor, ¡avisa a tu administrador!"
-#: cps/web.py:1329 cps/web.py:1339 cps/web.py:1363 cps/web.py:1367
-#: cps/web.py:1372 cps/web.py:1376
+#: cps/web.py:1484 cps/web.py:1494 cps/web.py:1518 cps/web.py:1522
+#: cps/web.py:1527 cps/web.py:1531
msgid "register"
msgstr "registrarse"
-#: cps/web.py:1365
+#: cps/web.py:1520
msgid "Your e-mail is not allowed to register"
msgstr "Su correo electrónico no está permitido para registrarse"
-#: cps/web.py:1368
+#: cps/web.py:1523
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Se ha enviado un correo electrónico de verificación a su cuenta de correo."
-#: cps/web.py:1371
+#: cps/web.py:1526
msgid "This username or e-mail address is already in use."
msgstr "Este nombre de usuario o correo electrónico ya están en uso."
-#: cps/web.py:1388
+#: cps/web.py:1543
msgid "Cannot activate LDAP authentication"
msgstr "No se puede activar la autenticación LDAP"
-#: cps/web.py:1405
+#: cps/web.py:1560
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr "Fallback login como: '%(nickname)s', no se puede acceder al servidor LDAP o usuario desconocido"
-#: cps/web.py:1411
+#: cps/web.py:1566
#, python-format
msgid "Could not login: %(message)s"
msgstr "No se pudo entrar: %(message)s"
-#: cps/web.py:1415 cps/web.py:1439
+#: cps/web.py:1570 cps/web.py:1594
msgid "Wrong Username or Password"
msgstr "Usuario o contraseña inválido"
-#: cps/web.py:1422
+#: cps/web.py:1577
msgid "New Password was send to your email address"
msgstr "Una nueva contraseña se ha enviado a su cuenta de correo electrónico"
-#: cps/web.py:1428
+#: cps/web.py:1583
msgid "Please enter valid username to reset password"
msgstr "Por favor, introduce un usuario válido para restablecer la contraseña"
-#: cps/web.py:1434
+#: cps/web.py:1589
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "Ahora estás conectado como: '%(nickname)s'"
-#: cps/web.py:1445 cps/web.py:1472
+#: cps/web.py:1600 cps/web.py:1627
msgid "login"
msgstr "iniciar sesión"
-#: cps/web.py:1484 cps/web.py:1518
+#: cps/web.py:1639 cps/web.py:1673
msgid "Token not found"
msgstr "Token no encontrado"
-#: cps/web.py:1493 cps/web.py:1526
+#: cps/web.py:1648 cps/web.py:1681
msgid "Token has expired"
msgstr "El token ha expirado"
-#: cps/web.py:1502
+#: cps/web.py:1657
msgid "Success! Please return to your device"
msgstr "¡Correcto! Por favor regrese a su dispositivo"
-#: cps/web.py:1583 cps/web.py:1628 cps/web.py:1634
+#: cps/web.py:1741 cps/web.py:1797
#, python-format
msgid "%(name)s's profile"
msgstr "Perfil de %(name)s"
-#: cps/web.py:1630
+#: cps/web.py:1777
msgid "Profile updated"
msgstr "Perfil actualizado"
-#: cps/web.py:1659 cps/web.py:1662 cps/web.py:1665 cps/web.py:1672
-#: cps/web.py:1677
+#: cps/web.py:1824 cps/web.py:1827 cps/web.py:1830 cps/web.py:1837
+#: cps/web.py:1842
msgid "Read a Book"
msgstr "Leer un libro"
-#: cps/worker.py:314
+#: cps/tasks/convert.py:103
#, python-format
msgid "Calibre ebook-convert %(tool)s not found"
msgstr ""
-#: cps/worker.py:374
+#: cps/tasks/convert.py:127
#, python-format
-msgid "Ebook-converter failed: %(error)s"
-msgstr "Falló Ebook-converter: %(error)s"
+msgid "%(format)s format not found on disk"
+msgstr ""
-#: cps/worker.py:407
+#: cps/tasks/convert.py:130
+msgid "Ebook converter failed with unknown error"
+msgstr ""
+
+#: cps/tasks/convert.py:140
#, python-format
msgid "Kepubify-converter failed: %(error)s"
msgstr ""
-#: cps/worker.py:431
+#: cps/tasks/convert.py:164
#, python-format
msgid "Converted file not found or more than one file in folder %(folder)s"
msgstr ""
+#: cps/tasks/convert.py:187
+#, python-format
+msgid "Ebook-converter failed: %(error)s"
+msgstr "Falló Ebook-converter: %(error)s"
+
+#: cps/tasks/convert.py:212
+#, python-format
+msgid "Calibre failed with error: %(error)s"
+msgstr ""
+
#: cps/templates/admin.html:9
msgid "Users"
msgstr "Lista de usuarios"
@@ -1178,8 +1190,9 @@ msgid "Edit"
msgstr "Editar"
#: cps/templates/admin.html:22 cps/templates/book_edit.html:16
-#: cps/templates/book_edit.html:221 cps/templates/email_edit.html:100
-#: cps/templates/user_edit.html:66 cps/templates/user_edit.html:179
+#: cps/templates/book_table.html:57 cps/templates/email_edit.html:100
+#: cps/templates/modal_dialogs.html:63 cps/templates/user_edit.html:66
+#: cps/templates/user_edit.html:167
msgid "Delete"
msgstr "Borrar"
@@ -1329,11 +1342,11 @@ msgid "OK"
msgstr "Ok"
#: cps/templates/admin.html:183 cps/templates/admin.html:197
-#: cps/templates/book_edit.html:192 cps/templates/book_edit.html:222
+#: cps/templates/book_edit.html:192 cps/templates/book_table.html:84
#: cps/templates/config_edit.html:391 cps/templates/config_view_edit.html:151
#: cps/templates/email_edit.html:47 cps/templates/email_edit.html:101
-#: cps/templates/shelf.html:73 cps/templates/shelf_edit.html:19
-#: cps/templates/user_edit.html:139
+#: cps/templates/modal_dialogs.html:64 cps/templates/shelf.html:73
+#: cps/templates/shelf_edit.html:19 cps/templates/user_edit.html:139
msgid "Cancel"
msgstr "Cancelar"
@@ -1353,15 +1366,14 @@ msgstr "via"
msgid "In Library"
msgstr "En la Librería"
-#: cps/templates/author.html:34 cps/templates/book_table.html:14
-#: cps/templates/grid.html:14 cps/templates/list.html:14
-#: cps/templates/search.html:38
+#: cps/templates/author.html:34 cps/templates/grid.html:14
+#: cps/templates/list.html:14
msgid "All"
msgstr "Todo"
#: cps/templates/author.html:58 cps/templates/author.html:110
#: cps/templates/discover.html:27 cps/templates/index.html:26
-#: cps/templates/index.html:89 cps/templates/search.html:64
+#: cps/templates/index.html:89 cps/templates/search.html:60
#: cps/templates/shelf.html:36
msgid "reduce"
msgstr "reducir"
@@ -1402,13 +1414,13 @@ msgstr "Convertir libro"
msgid "Book Title"
msgstr "Título del libro"
-#: cps/templates/book_edit.html:57 cps/templates/book_edit.html:284
-#: cps/templates/book_edit.html:302 cps/templates/search_form.html:10
+#: cps/templates/book_edit.html:57 cps/templates/book_edit.html:257
+#: cps/templates/book_edit.html:275 cps/templates/search_form.html:10
msgid "Author"
msgstr "Autor"
-#: cps/templates/book_edit.html:61 cps/templates/book_edit.html:289
-#: cps/templates/book_edit.html:304 cps/templates/search_form.html:126
+#: cps/templates/book_edit.html:61 cps/templates/book_edit.html:262
+#: cps/templates/book_edit.html:277 cps/templates/search_form.html:126
msgid "Description"
msgstr "Descripción"
@@ -1416,15 +1428,15 @@ msgstr "Descripción"
msgid "Identifiers"
msgstr "Identificadores"
-#: cps/templates/book_edit.html:70 cps/templates/book_edit.html:313
+#: cps/templates/book_edit.html:70 cps/templates/book_edit.html:286
msgid "Identifier Type"
msgstr "Tipo de identificador"
-#: cps/templates/book_edit.html:71 cps/templates/book_edit.html:314
+#: cps/templates/book_edit.html:71 cps/templates/book_edit.html:287
msgid "Identifier Value"
msgstr "Valor de identificador"
-#: cps/templates/book_edit.html:72 cps/templates/book_edit.html:315
+#: cps/templates/book_edit.html:72 cps/templates/book_edit.html:288
msgid "Remove"
msgstr "Borrar"
@@ -1456,8 +1468,8 @@ msgstr "Subir portada desde un disco local"
msgid "Published Date"
msgstr "Fecha de publicación"
-#: cps/templates/book_edit.html:116 cps/templates/book_edit.html:286
-#: cps/templates/book_edit.html:303 cps/templates/detail.html:156
+#: cps/templates/book_edit.html:116 cps/templates/book_edit.html:259
+#: cps/templates/book_edit.html:276 cps/templates/detail.html:156
#: cps/templates/search_form.html:14
msgid "Publisher"
msgstr "Editor"
@@ -1483,7 +1495,7 @@ msgstr "Subir formato"
msgid "View Book on Save"
msgstr "Ver libro tras la edición"
-#: cps/templates/book_edit.html:190 cps/templates/book_edit.html:234
+#: cps/templates/book_edit.html:190 cps/templates/book_edit.html:207
msgid "Fetch Metadata"
msgstr "Obtener metadatos"
@@ -1493,60 +1505,133 @@ msgstr "Obtener metadatos"
msgid "Save"
msgstr "Guardar"
-#: cps/templates/book_edit.html:205
-msgid "Are you really sure?"
-msgstr "¿Estás realmente seguro?"
-
-#: cps/templates/book_edit.html:209
-msgid "This book will be permanently erased from database"
-msgstr "El libro será eliminado de la base de datos de Calibre"
-
#: cps/templates/book_edit.html:210
-msgid "and hard disk"
-msgstr "y del disco duro"
-
-#: cps/templates/book_edit.html:214
-msgid "Important Kobo Note: deleted books will remain on any paired Kobo device."
-msgstr "Nota de Kobo importante:los libros borrados permanecerán en los dispositivos Kobo emparejados."
-
-#: cps/templates/book_edit.html:215
-msgid "Books must first be archived and the device synced before a book can safely be deleted."
-msgstr "Antes de que un libro pueda ser borrado con seguridad debe ser archivado y sincronixado con el dispositivo."
-
-#: cps/templates/book_edit.html:237
msgid "Keyword"
msgstr "Palabra clave"
-#: cps/templates/book_edit.html:238
+#: cps/templates/book_edit.html:211
msgid " Search keyword "
msgstr " Buscar por palabras clave "
-#: cps/templates/book_edit.html:244
+#: cps/templates/book_edit.html:217
msgid "Click the cover to load metadata to the form"
msgstr "Haz clic en la portada para cargar los metadatos en el formulario"
-#: cps/templates/book_edit.html:259 cps/templates/book_edit.html:299
+#: cps/templates/book_edit.html:232 cps/templates/book_edit.html:272
msgid "Loading..."
msgstr "Cargando..."
-#: cps/templates/book_edit.html:264 cps/templates/layout.html:190
-#: cps/templates/layout.html:222 cps/templates/modal_restriction.html:34
-#: cps/templates/user_edit.html:166
+#: cps/templates/book_edit.html:237 cps/templates/layout.html:186
+#: cps/templates/layout.html:217 cps/templates/modal_dialogs.html:34
+#: cps/templates/user_edit.html:154
msgid "Close"
msgstr "Cerrar"
-#: cps/templates/book_edit.html:291 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:264 cps/templates/book_edit.html:278
msgid "Source"
msgstr "Origen"
-#: cps/templates/book_edit.html:300
+#: cps/templates/book_edit.html:273
msgid "Search error!"
msgstr "¡Error en la búsqueda!"
-#: cps/templates/book_edit.html:301
+#: cps/templates/book_edit.html:274
msgid "No Result(s) found! Please try another keyword."
msgstr "¡No se encontraron resultados! Por favor intenta con otra palabra clave."
+#: cps/templates/book_table.html:10 cps/templates/book_table.html:52
+msgid "This Field is Required"
+msgstr ""
+
+#: cps/templates/book_table.html:23
+msgid "Merge selected books"
+msgstr ""
+
+#: cps/templates/book_table.html:24
+msgid "Remove Selections"
+msgstr ""
+
+#: cps/templates/book_table.html:30
+msgid "Update Title Sort automatically"
+msgstr ""
+
+#: cps/templates/book_table.html:34
+msgid "Update Author Sort automatically"
+msgstr ""
+
+#: cps/templates/book_table.html:46
+msgid "Enter Title"
+msgstr ""
+
+#: cps/templates/book_table.html:46 cps/templates/config_view_edit.html:23
+#: cps/templates/shelf_edit.html:7
+msgid "Title"
+msgstr "Título"
+
+#: cps/templates/book_table.html:47
+msgid "Enter Title Sort"
+msgstr ""
+
+#: cps/templates/book_table.html:47
+msgid "Title Sort"
+msgstr ""
+
+#: cps/templates/book_table.html:48
+msgid "Enter Author Sort"
+msgstr ""
+
+#: cps/templates/book_table.html:48
+msgid "Author Sort"
+msgstr ""
+
+#: cps/templates/book_table.html:49
+msgid "Enter Authors"
+msgstr ""
+
+#: cps/templates/book_table.html:50
+msgid "Enter Categories"
+msgstr ""
+
+#: cps/templates/book_table.html:51
+msgid "Enter Series"
+msgstr ""
+
+#: cps/templates/book_table.html:52
+msgid "Enter title"
+msgstr ""
+
+#: cps/templates/book_table.html:52
+msgid "Series Index"
+msgstr ""
+
+#: cps/templates/book_table.html:53
+msgid "Enter Languages"
+msgstr ""
+
+#: cps/templates/book_table.html:54
+msgid "Publishing Date"
+msgstr ""
+
+#: cps/templates/book_table.html:55
+msgid "Enter Publishers"
+msgstr ""
+
+#: cps/templates/book_table.html:70 cps/templates/modal_dialogs.html:46
+msgid "Are you really sure?"
+msgstr "¿Estás realmente seguro?"
+
+#: cps/templates/book_table.html:74
+msgid "Books with Title will be merged from:"
+msgstr ""
+
+#: cps/templates/book_table.html:78
+msgid "Into Book with Title:"
+msgstr ""
+
+#: cps/templates/book_table.html:83
+msgid "Merge"
+msgstr ""
+
#: cps/templates/config_edit.html:12
msgid "Library Configuration"
msgstr "Configuración de la librería"
@@ -1836,10 +1921,6 @@ msgstr "Inicio de sesión"
msgid "View Configuration"
msgstr "Ver configuración"
-#: cps/templates/config_view_edit.html:23 cps/templates/shelf_edit.html:7
-msgid "Title"
-msgstr "Título"
-
#: cps/templates/config_view_edit.html:31
msgid "No. of Random Books to Display"
msgstr "Número de libros aleatorios a mostrar"
@@ -1848,7 +1929,7 @@ msgstr "Número de libros aleatorios a mostrar"
msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)"
msgstr "Número de autores para mostrar antes de ocultar (0 = desactivar la ocultación)"
-#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:112
+#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:117
msgid "Theme"
msgstr "Tema"
@@ -1982,7 +2063,7 @@ msgstr "Agregar al estante"
#: cps/templates/detail.html:253 cps/templates/detail.html:270
#: cps/templates/feed.xml:79 cps/templates/layout.html:137
-#: cps/templates/layout.html:141 cps/templates/search.html:20
+#: cps/templates/search.html:20
msgid "(Public)"
msgstr "(Público)"
@@ -2034,7 +2115,7 @@ msgstr "Dominios prohibidos (Blaclist)"
msgid "Are you sure you want to delete this domain?"
msgstr "¿Realmente quiere eliminar esta regla de dominio?"
-#: cps/templates/feed.xml:21 cps/templates/layout.html:174
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr "Siguiente"
@@ -2123,7 +2204,7 @@ msgid "Home"
msgstr "Inicio"
#: cps/templates/layout.html:29 cps/templates/shelf_order.html:32
-#: cps/templates/user_edit.html:180
+#: cps/templates/user_edit.html:168
msgid "Back"
msgstr "Regresar"
@@ -2140,7 +2221,7 @@ msgid "Advanced Search"
msgstr "Búsqueda avanzada"
#: cps/templates/layout.html:77 cps/templates/read.html:71
-#: cps/templates/readcbr.html:83 cps/templates/readcbr.html:107
+#: cps/templates/readcbr.html:88 cps/templates/readcbr.html:112
msgid "Settings"
msgstr "Ajustes"
@@ -2156,7 +2237,7 @@ msgstr "Cerrar sesión"
msgid "Register"
msgstr "Registro"
-#: cps/templates/layout.html:117 cps/templates/layout.html:221
+#: cps/templates/layout.html:117 cps/templates/layout.html:216
msgid "Uploading..."
msgstr "Cargando..."
@@ -2168,27 +2249,23 @@ msgstr "Por favor, no actualice la página"
msgid "Browse"
msgstr "Navegar"
-#: cps/templates/layout.html:139
-msgid "Your Shelves"
-msgstr "Sus estantes"
-
-#: cps/templates/layout.html:145 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr "Acerca de"
-#: cps/templates/layout.html:159
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr "Previo"
-#: cps/templates/layout.html:186
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr "Detalles del libro"
-#: cps/templates/layout.html:220
+#: cps/templates/layout.html:215
msgid "Upload done, processing, please wait..."
msgstr "Carga hecha, procesando, por favor espere ..."
-#: cps/templates/layout.html:223
+#: cps/templates/layout.html:218
msgid "Error"
msgstr "Error"
@@ -2220,30 +2297,50 @@ msgstr "La salida del flujo no pudo ser mostrada"
msgid "Show Access Log: "
msgstr "Mostrar registro de acceso:"
-#: cps/templates/modal_restriction.html:6
+#: cps/templates/modal_dialogs.html:6
msgid "Select Allowed/Denied Tags"
msgstr "Seleccionar etiquetas Permitidas/Denegadas"
-#: cps/templates/modal_restriction.html:7
+#: cps/templates/modal_dialogs.html:7
msgid "Select Allowed/Denied Custom Column Values"
msgstr "Seleccionar valores propios de columnas Permitidas/Denegadas"
-#: cps/templates/modal_restriction.html:8
+#: cps/templates/modal_dialogs.html:8
msgid "Select Allowed/Denied Tags of User"
msgstr "Seleccionar etiquetas de usuario Permitido/Denegado"
-#: cps/templates/modal_restriction.html:9
+#: cps/templates/modal_dialogs.html:9
msgid "Select Allowed/Denied Custom Column Values of User"
msgstr "Seleccionar columnas propias de usuario Permitido/Denegado"
-#: cps/templates/modal_restriction.html:15
+#: cps/templates/modal_dialogs.html:15
msgid "Enter Tag"
msgstr "Introduce la etiqueta"
-#: cps/templates/modal_restriction.html:24
+#: cps/templates/modal_dialogs.html:24
msgid "Add View Restriction"
msgstr "Añadir restricción de vista"
+#: cps/templates/modal_dialogs.html:50
+msgid "This book format will be permanently erased from database"
+msgstr ""
+
+#: cps/templates/modal_dialogs.html:51
+msgid "This book will be permanently erased from database"
+msgstr "El libro será eliminado de la base de datos de Calibre"
+
+#: cps/templates/modal_dialogs.html:52
+msgid "and hard disk"
+msgstr "y del disco duro"
+
+#: cps/templates/modal_dialogs.html:56
+msgid "Important Kobo Note: deleted books will remain on any paired Kobo device."
+msgstr "Nota de Kobo importante:los libros borrados permanecerán en los dispositivos Kobo emparejados."
+
+#: cps/templates/modal_dialogs.html:57
+msgid "Books must first be archived and the device synced before a book can safely be deleted."
+msgstr "Antes de que un libro pueda ser borrado con seguridad debe ser archivado y sincronixado con el dispositivo."
+
#: cps/templates/osd.xml:5
msgid "Calibre-Web eBook Catalog"
msgstr "Cátalogo de ebook de Calibre-Web"
@@ -2252,99 +2349,99 @@ msgstr "Cátalogo de ebook de Calibre-Web"
msgid "Reflow text when sidebars are open."
msgstr "Redimensionar el texto cuando las barras laterales están abiertas."
-#: cps/templates/readcbr.html:88
+#: cps/templates/readcbr.html:93
msgid "Keyboard Shortcuts"
msgstr "Atajos de teclado"
-#: cps/templates/readcbr.html:91
+#: cps/templates/readcbr.html:96
msgid "Previous Page"
msgstr "Página previa"
-#: cps/templates/readcbr.html:92
+#: cps/templates/readcbr.html:97
msgid "Next Page"
msgstr "Página siguiente"
-#: cps/templates/readcbr.html:93
+#: cps/templates/readcbr.html:98
msgid "Scale to Best"
msgstr "Escalar a mejor"
-#: cps/templates/readcbr.html:94
+#: cps/templates/readcbr.html:99
msgid "Scale to Width"
msgstr "Escalar a la ancho"
-#: cps/templates/readcbr.html:95
+#: cps/templates/readcbr.html:100
msgid "Scale to Height"
msgstr "Escalar a lo alto"
-#: cps/templates/readcbr.html:96
+#: cps/templates/readcbr.html:101
msgid "Scale to Native"
msgstr "Escalado nativo"
-#: cps/templates/readcbr.html:97
+#: cps/templates/readcbr.html:102
msgid "Rotate Right"
msgstr "Rotar hacia la derecha"
-#: cps/templates/readcbr.html:98
+#: cps/templates/readcbr.html:103
msgid "Rotate Left"
msgstr "Rotar hacia la izquierda"
-#: cps/templates/readcbr.html:99
+#: cps/templates/readcbr.html:104
msgid "Flip Image"
msgstr "Voltear imagen"
-#: cps/templates/readcbr.html:115
+#: cps/templates/readcbr.html:120
msgid "Light"
msgstr "Claro"
-#: cps/templates/readcbr.html:116
+#: cps/templates/readcbr.html:121
msgid "Dark"
msgstr "Oscuro"
-#: cps/templates/readcbr.html:121
+#: cps/templates/readcbr.html:126
msgid "Scale"
msgstr "Escalar"
-#: cps/templates/readcbr.html:124
+#: cps/templates/readcbr.html:129
msgid "Best"
msgstr "Mejor"
-#: cps/templates/readcbr.html:125
+#: cps/templates/readcbr.html:130
msgid "Width"
msgstr "Ancho"
-#: cps/templates/readcbr.html:126
+#: cps/templates/readcbr.html:131
msgid "Height"
msgstr "Alto"
-#: cps/templates/readcbr.html:127
+#: cps/templates/readcbr.html:132
msgid "Native"
msgstr "Nativo"
-#: cps/templates/readcbr.html:132
+#: cps/templates/readcbr.html:137
msgid "Rotate"
msgstr "Rotar"
-#: cps/templates/readcbr.html:143
+#: cps/templates/readcbr.html:148
msgid "Flip"
msgstr "Voltear"
-#: cps/templates/readcbr.html:146
+#: cps/templates/readcbr.html:151
msgid "Horizontal"
msgstr "Horizontal"
-#: cps/templates/readcbr.html:147
+#: cps/templates/readcbr.html:152
msgid "Vertical"
msgstr "Vertical"
-#: cps/templates/readcbr.html:152
+#: cps/templates/readcbr.html:157
msgid "Direction"
msgstr "Dirección"
-#: cps/templates/readcbr.html:155
+#: cps/templates/readcbr.html:160
msgid "Left to Right"
msgstr "De izquierda a derecha"
-#: cps/templates/readcbr.html:156
+#: cps/templates/readcbr.html:161
msgid "Right to Left"
msgstr "De derecha a izquierda"
@@ -2564,15 +2661,11 @@ msgstr "Añadir columnas de valores propios de Permitidos/Denegados"
msgid "Delete User"
msgstr "Borrar usuario"
-#: cps/templates/user_edit.html:146
-msgid "Recent Downloads"
-msgstr "Descargas recientes"
-
-#: cps/templates/user_edit.html:162
+#: cps/templates/user_edit.html:150
msgid "Generate Kobo Auth URL"
msgstr "Generar Auth URL de Kobo"
-#: cps/templates/user_edit.html:178
+#: cps/templates/user_edit.html:166
msgid "Do you really want to delete the Kobo Token?"
msgstr "¿Realmente quieres borrar el Token de Kobo?"
diff --git a/cps/translations/fi/LC_MESSAGES/messages.mo b/cps/translations/fi/LC_MESSAGES/messages.mo
index ac8b6077a1f136e80245e9ed58d906e0585def1c..c845b69ab3f736e3cd51f572382af12b795028c8 100644
GIT binary patch
delta 7319
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
delta 7698
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
diff --git a/cps/translations/fi/LC_MESSAGES/messages.po b/cps/translations/fi/LC_MESSAGES/messages.po
index 6bd7a078..c82c24cc 100644
--- a/cps/translations/fi/LC_MESSAGES/messages.po
+++ b/cps/translations/fi/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
-"POT-Creation-Date: 2020-10-06 21:47+0200\n"
+"POT-Creation-Date: 2020-10-10 11:32+0200\n"
"PO-Revision-Date: 2020-01-12 13:56+0100\n"
"Last-Translator: Samuli Valavuo \n"
"Language: fi\n"
@@ -46,9 +46,9 @@ msgstr ""
msgid "Unknown command"
msgstr ""
-#: cps/admin.py:116 cps/editbooks.py:575 cps/editbooks.py:587
-#: cps/editbooks.py:687 cps/editbooks.py:689 cps/editbooks.py:750
-#: cps/editbooks.py:766 cps/updater.py:509 cps/uploader.py:98
+#: cps/admin.py:116 cps/editbooks.py:612 cps/editbooks.py:624
+#: cps/editbooks.py:724 cps/editbooks.py:726 cps/editbooks.py:787
+#: cps/editbooks.py:803 cps/updater.py:510 cps/uploader.py:98
#: cps/uploader.py:108
msgid "Unknown"
msgstr "Tuntematon"
@@ -66,12 +66,12 @@ msgid "Calibre-Web configuration updated"
msgstr "Calibre-Web asetukset päivitetty"
#: cps/admin.py:435 cps/admin.py:441 cps/admin.py:452 cps/admin.py:463
-#: cps/templates/modal_restriction.html:29
+#: cps/templates/modal_dialogs.html:29
msgid "Deny"
msgstr ""
#: cps/admin.py:437 cps/admin.py:443 cps/admin.py:454 cps/admin.py:465
-#: cps/templates/modal_restriction.html:28
+#: cps/templates/modal_dialogs.html:28
msgid "Allow"
msgstr ""
@@ -139,7 +139,7 @@ msgstr ""
msgid "Basic Configuration"
msgstr "Perusasetukset"
-#: cps/admin.py:762 cps/web.py:1338
+#: cps/admin.py:762 cps/web.py:1493
msgid "Please fill out all fields!"
msgstr "Ole hyvä ja täytä kaikki kentät!"
@@ -147,7 +147,7 @@ msgstr "Ole hyvä ja täytä kaikki kentät!"
msgid "Add new user"
msgstr "Lisää uusi käyttäjä"
-#: cps/admin.py:774 cps/web.py:1581
+#: cps/admin.py:774 cps/web.py:1739
msgid "E-mail is not from valid domain"
msgstr "Sähköpostiosoite ei ole toimivasta domainista"
@@ -173,16 +173,16 @@ msgstr "Pääkäyttäjiä ei jää jäljelle, käyttäjää ei voi poistaa"
msgid "No admin user remaining, can't remove admin role"
msgstr ""
-#: cps/admin.py:853 cps/web.py:1624
+#: cps/admin.py:853 cps/web.py:1781
msgid "Found an existing account for this e-mail address."
msgstr "Tälle sähköpostiosoitteelle läytyi jo käyttäjätunnus."
-#: cps/admin.py:863 cps/admin.py:878 cps/admin.py:989 cps/web.py:1599
+#: cps/admin.py:863 cps/admin.py:878 cps/admin.py:989 cps/web.py:1757
#, python-format
msgid "Edit User %(nick)s"
msgstr "Muokkaa käyttäjää %(nick)s"
-#: cps/admin.py:869 cps/web.py:1591
+#: cps/admin.py:869 cps/web.py:1750
msgid "This username is already taken"
msgstr ""
@@ -226,11 +226,11 @@ msgstr ""
msgid "Password for user %(user)s reset"
msgstr "Käyttäjän %(user)s salasana palautettu"
-#: cps/admin.py:1003 cps/web.py:1362 cps/web.py:1426
+#: cps/admin.py:1003 cps/web.py:1517 cps/web.py:1581
msgid "An unknown error occurred. Please try again later."
msgstr "Tapahtui tuntematon virhe. Yritä myöhemmin uudelleen."
-#: cps/admin.py:1006 cps/web.py:1300
+#: cps/admin.py:1006 cps/web.py:1455
msgid "Please configure the SMTP mail settings first..."
msgstr "Ole hyvä ja aseta SMTP postiasetukset ensin..."
@@ -271,19 +271,19 @@ msgstr "Päivitys valmistui, ole hyvä ja paina OK ja lataa sivu uudelleen"
msgid "Update failed:"
msgstr "Päivitys epäonnistui:"
-#: cps/admin.py:1064 cps/updater.py:319 cps/updater.py:520 cps/updater.py:522
+#: cps/admin.py:1064 cps/updater.py:320 cps/updater.py:521 cps/updater.py:523
msgid "HTTP Error"
msgstr "HTTP virhe"
-#: cps/admin.py:1065 cps/updater.py:321 cps/updater.py:524
+#: cps/admin.py:1065 cps/updater.py:322 cps/updater.py:525
msgid "Connection error"
msgstr "Yhteysvirhe"
-#: cps/admin.py:1066 cps/updater.py:323 cps/updater.py:526
+#: cps/admin.py:1066 cps/updater.py:324 cps/updater.py:527
msgid "Timeout while establishing connection"
msgstr "Aikakatkaisu yhteyttä luotaessa"
-#: cps/admin.py:1067 cps/updater.py:325 cps/updater.py:528
+#: cps/admin.py:1067 cps/updater.py:326 cps/updater.py:529
msgid "General error"
msgstr "Yleinen virhe"
@@ -299,103 +299,98 @@ msgstr ""
msgid "Execution permissions missing"
msgstr ""
-#: cps/editbooks.py:245
+#: cps/editbooks.py:273 cps/editbooks.py:275
msgid "Book Format Successfully Deleted"
msgstr ""
-#: cps/editbooks.py:248
+#: cps/editbooks.py:282 cps/editbooks.py:284
msgid "Book Successfully Deleted"
msgstr ""
-#: cps/editbooks.py:257 cps/editbooks.py:560 cps/web.py:1647 cps/web.py:1688
-#: cps/web.py:1750
+#: cps/editbooks.py:293 cps/editbooks.py:596 cps/web.py:1812 cps/web.py:1853
+#: cps/web.py:1915
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr "Virhe e-kirjaa avatessa. Tiedostoa ei löydy tai se ei ole saatavilla"
-#: cps/editbooks.py:291
+#: cps/editbooks.py:327
msgid "edit metadata"
msgstr "muokkaa metadataa"
-#: cps/editbooks.py:366
+#: cps/editbooks.py:402
#, python-format
msgid "%(langname)s is not a valid language"
msgstr "%(langname)s ei ole kelvollinen kieli"
-#: cps/editbooks.py:477 cps/editbooks.py:732
+#: cps/editbooks.py:513 cps/editbooks.py:769
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "Tiedostopääte '%(ext)s' ei ole sallittujen palvelimelle ladattavien listalla"
-#: cps/editbooks.py:481 cps/editbooks.py:736
+#: cps/editbooks.py:517 cps/editbooks.py:773
msgid "File to be uploaded must have an extension"
msgstr "Ladattavalla tiedostolla on oltava tiedostopääte"
-#: cps/editbooks.py:493 cps/editbooks.py:796
+#: cps/editbooks.py:529
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "Polun %(path)s luonti epäonnistui (Ei oikeutta)."
-#: cps/editbooks.py:498
+#: cps/editbooks.py:534
#, python-format
msgid "Failed to store file %(file)s."
msgstr "Tiedoston %(file)s tallennus epäonnistui."
-#: cps/editbooks.py:516 cps/editbooks.py:887
+#: cps/editbooks.py:552 cps/editbooks.py:904
#, python-format
msgid "Database error: %(error)s."
msgstr ""
-#: cps/editbooks.py:520
+#: cps/editbooks.py:556
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "Tiedostoformaatti %(ext)s lisätty %(book)s"
-#: cps/editbooks.py:636
+#: cps/editbooks.py:673
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr ""
-#: cps/editbooks.py:673
+#: cps/editbooks.py:710
msgid "Metadata successfully updated"
msgstr "Metadata päivitetty onnistuneesti"
-#: cps/editbooks.py:682
+#: cps/editbooks.py:719
msgid "Error editing book, please check logfile for details"
msgstr "Kirjan editoinnissa tapahtui virhe, tarkista virheilmoitus lokista"
-#: cps/editbooks.py:744
+#: cps/editbooks.py:781
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr ""
-#: cps/editbooks.py:754
+#: cps/editbooks.py:791
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr ""
-#: cps/editbooks.py:803
-#, python-format
-msgid "Failed to Move File %(file)s: %(error)s"
-msgstr ""
-
-#: cps/editbooks.py:859
+#: cps/editbooks.py:879
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr ""
-#: cps/editbooks.py:873
+#: cps/editbooks.py:890
#, python-format
msgid "File %(file)s uploaded"
msgstr "Tiedosto %(file)s tallennettu"
-#: cps/editbooks.py:899
+#: cps/editbooks.py:916
msgid "Source or destination format for conversion missing"
msgstr "Lähteen tai kohteen tiedostomuoto puuttuu"
-#: cps/editbooks.py:907
+#: cps/editbooks.py:924
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "Kirja lisätty muutosjonoon muotoon %(book_format)s"
-#: cps/editbooks.py:911
+#: cps/editbooks.py:928
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "Kirjan muunnoksessa tapahtui virhe: %(res)s"
@@ -408,136 +403,131 @@ msgstr "Google Drive asetukset ei ole valmiit. Koita poistaa Google Drive käyt
msgid "Callback domain is not verified, please follow steps to verify domain in google developer console"
msgstr "Paluuosoitteen domain ei ole varmistettu, seuraa ohjeita vamistaaksesi sen googlen kehittäjäkonsolissa"
-#: cps/helper.py:77
+#: cps/helper.py:79
#, python-format
msgid "%(format)s format not found for book id: %(book)d"
msgstr "%(format)s tiedostomuotoa ei löytynyt kirjalle: %(book)d"
-#: cps/helper.py:89
+#: cps/helper.py:85 cps/tasks/convert.py:50
#, python-format
msgid "%(format)s not found on Google Drive: %(fn)s"
msgstr "%(format)s ei löytynyt Google Drivesta: %(fn)s"
-#: cps/helper.py:96 cps/helper.py:224 cps/templates/detail.html:41
-#: cps/templates/detail.html:45
-msgid "Send to Kindle"
-msgstr "Lähetä Kindleen"
-
-#: cps/helper.py:97 cps/helper.py:115 cps/helper.py:226
-msgid "This e-mail has been sent via Calibre-Web."
-msgstr "Tämä sähköposti on lähetetty Calibre-Web:sta."
-
-#: cps/helper.py:108
+#: cps/helper.py:90
#, python-format
msgid "%(format)s not found: %(fn)s"
msgstr "%(format)s ei löydy: %(fn)s"
-#: cps/helper.py:113
+#: cps/helper.py:95 cps/helper.py:228 cps/templates/detail.html:41
+#: cps/templates/detail.html:45
+msgid "Send to Kindle"
+msgstr "Lähetä Kindleen"
+
+#: cps/helper.py:96 cps/helper.py:112 cps/helper.py:230
+msgid "This e-mail has been sent via Calibre-Web."
+msgstr "Tämä sähköposti on lähetetty Calibre-Web:sta."
+
+#: cps/helper.py:110
msgid "Calibre-Web test e-mail"
msgstr "Calibre-Web testisähköposti"
-#: cps/helper.py:115
+#: cps/helper.py:111
msgid "Test e-mail"
msgstr "Testi sähköposti"
-#: cps/helper.py:130
+#: cps/helper.py:128
msgid "Get Started with Calibre-Web"
msgstr "Aloita Calibre-Web:in käyttö"
-#: cps/helper.py:132
+#: cps/helper.py:133
#, python-format
msgid "Registration e-mail for user: %(name)s"
msgstr "Rekiströintisähköposti käyttäjälle: %(name)s"
-#: cps/helper.py:149 cps/helper.py:153 cps/helper.py:157 cps/helper.py:166
-#: cps/helper.py:170 cps/helper.py:174
+#: cps/helper.py:153 cps/helper.py:157 cps/helper.py:161 cps/helper.py:170
+#: cps/helper.py:174 cps/helper.py:178
#, python-format
msgid "Send %(format)s to Kindle"
msgstr "Lähetä %(format)s Kindleen"
-#: cps/helper.py:179 cps/helper.py:185
+#: cps/helper.py:183 cps/helper.py:189
#, python-format
msgid "Convert %(orig)s to %(format)s and send to Kindle"
msgstr "Muunna %(orig)s muotoon %(format)s ja lähetä Kindleen"
-#: cps/helper.py:226
+#: cps/helper.py:230
#, python-format
msgid "E-mail: %(book)s"
msgstr "Sähköposti: %(book)s"
-#: cps/helper.py:228
+#: cps/helper.py:232
msgid "The requested file could not be read. Maybe wrong permissions?"
msgstr "Haettua tiedostoa ei pystytty lukemaan. Ehkä vaäärät oikeudet?"
-#: cps/helper.py:325
+#: cps/helper.py:329
#, python-format
msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s"
msgstr ""
-#: cps/helper.py:331
+#: cps/helper.py:335
#, python-format
msgid "Deleting book %(id)s failed: %(message)s"
msgstr ""
-#: cps/helper.py:341
+#: cps/helper.py:345
#, python-format
msgid "Deleting book %(id)s, book path not valid: %(path)s"
msgstr ""
-#: cps/helper.py:376
+#: cps/helper.py:397
#, python-format
msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr "Tiedon muuttaminen arvosta: '%(src)s' arvoon '%(dest)s' epäonnistui virheeseen: %(error)s"
-#: cps/helper.py:386
-#, python-format
-msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
-msgstr "Kirjailijan muuttaminen arvosta: \"%(src)s\" arvoon \"%(dest)s\" epäonnistui virheeseen: %(error)s"
-
-#: cps/helper.py:402
+#: cps/helper.py:410
#, python-format
msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr "Tiedoston nimeäminen polusta '%(src)s' polkuun '%(dest)s' epäonnistui virheeseen: %(error)s"
-#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446
+#: cps/helper.py:435 cps/helper.py:445 cps/helper.py:453
#, python-format
msgid "File %(file)s not found on Google Drive"
msgstr "Tiedostoa %(file)s ei löytynyt Google Drivesta"
-#: cps/helper.py:467
+#: cps/helper.py:474
#, python-format
msgid "Book path %(path)s not found on Google Drive"
msgstr "Kirjan polkua %(path)s ei löytynyt Google Drivesta"
-#: cps/helper.py:576
+#: cps/helper.py:583
msgid "Error Downloading Cover"
msgstr ""
-#: cps/helper.py:579
+#: cps/helper.py:586
msgid "Cover Format Error"
msgstr ""
-#: cps/helper.py:594
+#: cps/helper.py:601
msgid "Failed to create path for cover"
msgstr ""
-#: cps/helper.py:599
+#: cps/helper.py:606
msgid "Cover-file is not a valid image file, or could not be stored"
msgstr ""
-#: cps/helper.py:610
+#: cps/helper.py:617
msgid "Only jpg/jpeg/png/webp files are supported as coverfile"
msgstr ""
-#: cps/helper.py:624
+#: cps/helper.py:631
msgid "Only jpg/jpeg files are supported as coverfile"
msgstr ""
-#: cps/helper.py:672
+#: cps/helper.py:679
msgid "Unrar binary file not found"
msgstr ""
-#: cps/helper.py:686
+#: cps/helper.py:693
msgid "Error excecuting UnRar"
msgstr ""
@@ -561,22 +551,6 @@ msgstr "Valmistui"
msgid "Unknown Status"
msgstr "Tuntematon tila"
-#: cps/helper.py:755
-msgid "E-mail: "
-msgstr "Sähköposti: "
-
-#: cps/helper.py:757 cps/helper.py:761
-msgid "Convert: "
-msgstr "Muunna: "
-
-#: cps/helper.py:759
-msgid "Upload: "
-msgstr "Lähetä: "
-
-#: cps/helper.py:763
-msgid "Unknown Task: "
-msgstr "Tuntematon tehtävä: "
-
#: cps/kobo_auth.py:130
msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device"
msgstr ""
@@ -606,7 +580,7 @@ msgstr "Googleen kirjautuminen epäonnistui."
msgid "Failed to fetch user info from Google."
msgstr "Käyttäjätietojen haku Googlesta epäonnistui."
-#: cps/oauth_bb.py:225 cps/web.py:1398 cps/web.py:1540
+#: cps/oauth_bb.py:225 cps/web.py:1553 cps/web.py:1695
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "olet nyt kirjautunut tunnuksella: \"%(nickname)s\""
@@ -711,7 +685,7 @@ msgstr "Hylly %(title)s luotu"
msgid "There was an error"
msgstr "Tapahtui virhe"
-#: cps/shelf.py:264 cps/shelf.py:266 cps/templates/layout.html:144
+#: cps/shelf.py:264 cps/shelf.py:266 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr "luo hylly"
@@ -742,388 +716,426 @@ msgstr ""
msgid "Change order of Shelf: '%(name)s'"
msgstr "Muuta hyllyn: '%(name)s' järjestystä"
-#: cps/ub.py:65
+#: cps/ub.py:68
msgid "Recently Added"
msgstr "Viimeksi lisätty"
-#: cps/ub.py:67
+#: cps/ub.py:70
msgid "Show recent books"
msgstr "Näytä viimeisimmät kirjat"
-#: cps/templates/index.xml:17 cps/ub.py:68
+#: cps/templates/index.xml:17 cps/ub.py:71
msgid "Hot Books"
msgstr "Kuumat kirjat"
-#: cps/ub.py:70
+#: cps/ub.py:73
msgid "Show Hot Books"
msgstr "Näytä kuumat kirjat"
-#: cps/templates/index.xml:24 cps/ub.py:72 cps/web.py:653
+#: cps/ub.py:74
+msgid "Downloaded Books"
+msgstr ""
+
+#: cps/ub.py:76
+msgid "Show Downloaded Books"
+msgstr ""
+
+#: cps/templates/index.xml:24 cps/ub.py:79 cps/web.py:635
msgid "Top Rated Books"
msgstr "Parhaiten arvioidut kirjat"
-#: cps/ub.py:74
+#: cps/ub.py:81
msgid "Show Top Rated Books"
msgstr "Näytä parhaiten arvioidut kirjat"
-#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:75
-#: cps/web.py:1220
+#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:82
+#: cps/web.py:896
msgid "Read Books"
msgstr "Luetut kirjat"
-#: cps/ub.py:77
+#: cps/ub.py:84
msgid "Show read and unread"
msgstr "Näytä luetut ja lukemattomat"
-#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:79
-#: cps/web.py:1223
+#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:86
+#: cps/web.py:899
msgid "Unread Books"
msgstr "Lukemattomat kirjat"
-#: cps/ub.py:81
+#: cps/ub.py:88
msgid "Show unread"
msgstr "Näyt lukemattomat"
-#: cps/ub.py:82
+#: cps/ub.py:89
msgid "Discover"
msgstr "Löydä"
-#: cps/ub.py:84
+#: cps/ub.py:91
msgid "Show random books"
msgstr "Näytä satunnaisia kirjoja"
-#: cps/templates/index.xml:75 cps/ub.py:85 cps/web.py:968
+#: cps/templates/book_table.html:50 cps/templates/index.xml:75 cps/ub.py:92
+#: cps/web.py:1200
msgid "Categories"
msgstr "Kategoriat"
-#: cps/ub.py:87
+#: cps/ub.py:94
msgid "Show category selection"
msgstr "Näytä kategoriavalinta"
-#: cps/templates/book_edit.html:84 cps/templates/index.xml:82
-#: cps/templates/search_form.html:53 cps/ub.py:88 cps/web.py:884 cps/web.py:894
+#: cps/templates/book_edit.html:84 cps/templates/book_table.html:51
+#: cps/templates/index.xml:82 cps/templates/search_form.html:53 cps/ub.py:95
+#: cps/web.py:1104 cps/web.py:1114
msgid "Series"
msgstr "Sarjat"
-#: cps/ub.py:90
+#: cps/ub.py:97
msgid "Show series selection"
msgstr "Näytä sarjavalinta"
-#: cps/templates/index.xml:61 cps/ub.py:91
+#: cps/templates/book_table.html:49 cps/templates/index.xml:61 cps/ub.py:98
msgid "Authors"
msgstr "Kirjailijat"
-#: cps/ub.py:93
+#: cps/ub.py:100
msgid "Show author selection"
msgstr "Näytä kirjailijavalinta"
-#: cps/templates/index.xml:68 cps/ub.py:95 cps/web.py:867
+#: cps/templates/book_table.html:55 cps/templates/index.xml:68 cps/ub.py:102
+#: cps/web.py:1083
msgid "Publishers"
msgstr "Julkaisijat"
-#: cps/ub.py:97
+#: cps/ub.py:104
msgid "Show publisher selection"
msgstr "Näytä julkaisijavalinta"
-#: cps/templates/index.xml:89 cps/templates/search_form.html:74 cps/ub.py:98
-#: cps/web.py:951
+#: cps/templates/book_table.html:53 cps/templates/index.xml:89
+#: cps/templates/search_form.html:74 cps/ub.py:105 cps/web.py:1179
msgid "Languages"
msgstr "Kielet"
-#: cps/ub.py:101
+#: cps/ub.py:108
msgid "Show language selection"
msgstr "Näytä keilivalinta"
-#: cps/templates/index.xml:96 cps/ub.py:102
+#: cps/templates/index.xml:96 cps/ub.py:109
msgid "Ratings"
msgstr "Arvostelut"
-#: cps/ub.py:104
+#: cps/ub.py:111
msgid "Show ratings selection"
msgstr "Näytä arvosteluvalinta"
-#: cps/templates/index.xml:104 cps/ub.py:105
+#: cps/templates/index.xml:104 cps/ub.py:112
msgid "File formats"
msgstr "Tiedotomuodot"
-#: cps/ub.py:107
+#: cps/ub.py:114
msgid "Show file formats selection"
msgstr "Näytä tiedostomuotovalinta"
-#: cps/ub.py:109 cps/web.py:1247
+#: cps/ub.py:116 cps/web.py:923
msgid "Archived Books"
msgstr ""
-#: cps/ub.py:111
+#: cps/ub.py:118
msgid "Show archived books"
msgstr ""
-#: cps/updater.py:294 cps/updater.py:305 cps/updater.py:406 cps/updater.py:420
+#: cps/ub.py:120
+msgid "Books List"
+msgstr ""
+
+#: cps/ub.py:122
+msgid "Show Books List"
+msgstr ""
+
+#: cps/updater.py:295 cps/updater.py:306 cps/updater.py:407 cps/updater.py:421
msgid "Unexpected data while reading update information"
msgstr "Odottamatonta tietoa luettaessa päivitystietoa"
-#: cps/updater.py:301 cps/updater.py:412
+#: cps/updater.py:302 cps/updater.py:413
msgid "No update available. You already have the latest version installed"
msgstr "Ei päivitystä saatavilla. Sinulla on jo uusin versio"
-#: cps/updater.py:333
+#: cps/updater.py:334
msgid "A new update is available. Click on the button below to update to the latest version."
msgstr "Uusi päivitys saatavilla. Paina alla olevaa nappia päivittääksesi uusimpaan versioon."
-#: cps/updater.py:385
+#: cps/updater.py:386
msgid "Could not fetch update information"
msgstr "Päivitystiedon hakeminen epäonnistui"
-#: cps/updater.py:399
+#: cps/updater.py:400
msgid "No release information available"
msgstr "Ei päivitystietoa saatavilla"
-#: cps/updater.py:456 cps/updater.py:467 cps/updater.py:486
+#: cps/updater.py:457 cps/updater.py:468 cps/updater.py:487
#, python-format
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr "Uusi päivitys saatavilla. Paina alla olevaa nappia päivittääksesi versioon: %(version)s"
-#: cps/updater.py:477
+#: cps/updater.py:478
msgid "Click on the button below to update to the latest stable version."
msgstr "Paina alla olevaa nappia päivittääksesi uusimpaan vakaaseen versioon."
-#: cps/web.py:320
+#: cps/web.py:316
#, python-format
msgid "Error: %(ldaperror)s"
msgstr ""
-#: cps/web.py:324
+#: cps/web.py:320
msgid "Error: No user returned in response of LDAP server"
msgstr ""
-#: cps/web.py:372
+#: cps/web.py:368
msgid "Failed to Create at Least One LDAP User"
msgstr ""
-#: cps/web.py:375
+#: cps/web.py:371
msgid "At Least One LDAP User Not Found in Database"
msgstr ""
-#: cps/web.py:377
+#: cps/web.py:373
msgid "User Successfully Imported"
msgstr ""
-#: cps/web.py:623
-msgid "Recently Added Books"
-msgstr "Viimeksi lisätyt kirjat"
-
-#: cps/templates/index.html:5 cps/web.py:661
+#: cps/templates/index.html:5 cps/web.py:643
msgid "Discover (Random Books)"
msgstr "Löydä (satunnaiset kirjat)"
-#: cps/web.py:689
+#: cps/web.py:682
msgid "Books"
msgstr "Kirjat"
-#: cps/web.py:716
+#: cps/web.py:709
msgid "Hot Books (Most Downloaded)"
msgstr "Kuumat kirjat (ladatuimmat)"
-#: cps/web.py:729
+#: cps/web.py:744
+#, python-format
+msgid "Downloaded books by %(user)s"
+msgstr ""
+
+#: cps/web.py:758
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr "Virhe eKirjan avaamisessa. Tiedostoa ei ole tai se ei ole saatavilla:"
-#: cps/web.py:743
+#: cps/web.py:772
#, python-format
msgid "Author: %(name)s"
msgstr "Kirjailija: %(name)s"
-#: cps/web.py:757
+#: cps/web.py:786
#, python-format
msgid "Publisher: %(name)s"
msgstr "Julkaisija: %(name)s"
-#: cps/web.py:770
+#: cps/web.py:799
#, python-format
msgid "Series: %(serie)s"
msgstr "Sarja: %(serie)s"
-#: cps/web.py:783
+#: cps/web.py:812
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Arvostelu: %(rating)s tähteä"
-#: cps/web.py:796
+#: cps/web.py:825
#, python-format
msgid "File format: %(format)s"
msgstr "Tiedostomuoto: %(format)s"
-#: cps/web.py:810
+#: cps/web.py:839
#, python-format
msgid "Category: %(name)s"
msgstr "Kategoria: %(name)s"
-#: cps/web.py:829
+#: cps/web.py:858
#, python-format
msgid "Language: %(name)s"
msgstr "Kieli: %(name)s"
-#: cps/web.py:908
-msgid "Ratings list"
-msgstr "Arvostelulistaus"
-
-#: cps/web.py:923
-msgid "File formats list"
-msgstr "Tiedostomuotolistaus"
-
-#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:982
-msgid "Tasks"
-msgstr "Tehtävät"
-
-#: cps/templates/book_edit.html:240 cps/templates/feed.xml:33
-#: cps/templates/layout.html:45 cps/templates/layout.html:48
-#: cps/templates/search_form.html:174 cps/web.py:1008 cps/web.py:1013
-msgid "Search"
-msgstr "Hae"
-
-#: cps/web.py:1064
-msgid "Published after "
-msgstr "Julkaistu alkaen "
-
-#: cps/web.py:1071
-msgid "Published before "
-msgstr "Julkaisut ennen "
-
-#: cps/web.py:1085
-#, python-format
-msgid "Rating <= %(rating)s"
-msgstr "Arvostelu <= %(rating)s"
-
-#: cps/web.py:1087
-#, python-format
-msgid "Rating >= %(rating)s"
-msgstr "Arvostelu >= %(rating)s"
-
-#: cps/web.py:1156 cps/web.py:1181
-msgid "search"
-msgstr "hae"
-
-#: cps/web.py:1211
+#: cps/web.py:887
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr ""
-#: cps/web.py:1305
+#: cps/web.py:954 cps/web.py:1395
+msgid "search"
+msgstr "hae"
+
+#: cps/templates/book_edit.html:213 cps/templates/feed.xml:33
+#: cps/templates/layout.html:45 cps/templates/layout.html:48
+#: cps/templates/search_form.html:174 cps/web.py:966 cps/web.py:1235
+msgid "Search"
+msgstr "Hae"
+
+#: cps/web.py:994
+msgid "Books list"
+msgstr ""
+
+#: cps/web.py:1132
+msgid "Ratings list"
+msgstr "Arvostelulistaus"
+
+#: cps/web.py:1151
+msgid "File formats list"
+msgstr "Tiedostomuotolistaus"
+
+#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:1214
+msgid "Tasks"
+msgstr "Tehtävät"
+
+#: cps/web.py:1292
+msgid "Published after "
+msgstr "Julkaistu alkaen "
+
+#: cps/web.py:1299
+msgid "Published before "
+msgstr "Julkaisut ennen "
+
+#: cps/web.py:1313
+#, python-format
+msgid "Rating <= %(rating)s"
+msgstr "Arvostelu <= %(rating)s"
+
+#: cps/web.py:1315
+#, python-format
+msgid "Rating >= %(rating)s"
+msgstr "Arvostelu >= %(rating)s"
+
+#: cps/web.py:1460
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Kirja lisätty onnistuneeksi lähetettäväksi osoitteeseen %(kindlemail)s"
-#: cps/web.py:1309
+#: cps/web.py:1464
#, python-format
msgid "Oops! There was an error sending this book: %(res)s"
msgstr "Kirjan: %(res)s lähettämisessa tapahtui virhe"
-#: cps/web.py:1311
+#: cps/web.py:1466
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr "Ole hyvä ja aseta Kindle sähköpostiosoite ensin..."
-#: cps/web.py:1328
+#: cps/web.py:1483
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr ""
-#: cps/web.py:1329 cps/web.py:1339 cps/web.py:1363 cps/web.py:1367
-#: cps/web.py:1372 cps/web.py:1376
+#: cps/web.py:1484 cps/web.py:1494 cps/web.py:1518 cps/web.py:1522
+#: cps/web.py:1527 cps/web.py:1531
msgid "register"
msgstr "rekisteröidy"
-#: cps/web.py:1365
+#: cps/web.py:1520
msgid "Your e-mail is not allowed to register"
msgstr "Sähköpostiosoitteellasi ei ole sallittua rekisteröityä"
-#: cps/web.py:1368
+#: cps/web.py:1523
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Vahvistusviesti on lähetetty sähköpostiosoitteeseesi."
-#: cps/web.py:1371
+#: cps/web.py:1526
msgid "This username or e-mail address is already in use."
msgstr "Käyttäjätunnus tai sähköpostiosoite on jo käytössä."
-#: cps/web.py:1388
+#: cps/web.py:1543
msgid "Cannot activate LDAP authentication"
msgstr "LDAP autnetikoinnin aktivointi ei onnistu"
-#: cps/web.py:1405
+#: cps/web.py:1560
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr ""
-#: cps/web.py:1411
+#: cps/web.py:1566
#, python-format
msgid "Could not login: %(message)s"
msgstr ""
-#: cps/web.py:1415 cps/web.py:1439
+#: cps/web.py:1570 cps/web.py:1594
msgid "Wrong Username or Password"
msgstr "Väärä käyttäjätunnus tai salasana"
-#: cps/web.py:1422
+#: cps/web.py:1577
msgid "New Password was send to your email address"
msgstr ""
-#: cps/web.py:1428
+#: cps/web.py:1583
msgid "Please enter valid username to reset password"
msgstr ""
-#: cps/web.py:1434
+#: cps/web.py:1589
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "olet kirjautunut tunnuksella: '%(nickname)s'"
-#: cps/web.py:1445 cps/web.py:1472
+#: cps/web.py:1600 cps/web.py:1627
msgid "login"
msgstr "kirjaudu"
-#: cps/web.py:1484 cps/web.py:1518
+#: cps/web.py:1639 cps/web.py:1673
msgid "Token not found"
msgstr "Valtuutusta ei löytynyt"
-#: cps/web.py:1493 cps/web.py:1526
+#: cps/web.py:1648 cps/web.py:1681
msgid "Token has expired"
msgstr "Valtuutus vanhentunut"
-#: cps/web.py:1502
+#: cps/web.py:1657
msgid "Success! Please return to your device"
msgstr "Onnistui! Ole hyvä ja palaa laitteellesi"
-#: cps/web.py:1583 cps/web.py:1628 cps/web.py:1634
+#: cps/web.py:1741 cps/web.py:1797
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)sn profiili"
-#: cps/web.py:1630
+#: cps/web.py:1777
msgid "Profile updated"
msgstr "Profiili päivitetty"
-#: cps/web.py:1659 cps/web.py:1662 cps/web.py:1665 cps/web.py:1672
-#: cps/web.py:1677
+#: cps/web.py:1824 cps/web.py:1827 cps/web.py:1830 cps/web.py:1837
+#: cps/web.py:1842
msgid "Read a Book"
msgstr "Lue kirja"
-#: cps/worker.py:314
+#: cps/tasks/convert.py:103
#, python-format
msgid "Calibre ebook-convert %(tool)s not found"
msgstr ""
-#: cps/worker.py:374
+#: cps/tasks/convert.py:127
#, python-format
-msgid "Ebook-converter failed: %(error)s"
-msgstr "E-kirjan muunnos epäonnistui: %(error)s"
+msgid "%(format)s format not found on disk"
+msgstr ""
-#: cps/worker.py:407
+#: cps/tasks/convert.py:130
+msgid "Ebook converter failed with unknown error"
+msgstr ""
+
+#: cps/tasks/convert.py:140
#, python-format
msgid "Kepubify-converter failed: %(error)s"
msgstr ""
-#: cps/worker.py:431
+#: cps/tasks/convert.py:164
#, python-format
msgid "Converted file not found or more than one file in folder %(folder)s"
msgstr ""
+#: cps/tasks/convert.py:187
+#, python-format
+msgid "Ebook-converter failed: %(error)s"
+msgstr "E-kirjan muunnos epäonnistui: %(error)s"
+
+#: cps/tasks/convert.py:212
+#, python-format
+msgid "Calibre failed with error: %(error)s"
+msgstr ""
+
#: cps/templates/admin.html:9
msgid "Users"
msgstr "Käyttäjälista"
@@ -1175,8 +1187,9 @@ msgid "Edit"
msgstr "Muokkaa"
#: cps/templates/admin.html:22 cps/templates/book_edit.html:16
-#: cps/templates/book_edit.html:221 cps/templates/email_edit.html:100
-#: cps/templates/user_edit.html:66 cps/templates/user_edit.html:179
+#: cps/templates/book_table.html:57 cps/templates/email_edit.html:100
+#: cps/templates/modal_dialogs.html:63 cps/templates/user_edit.html:66
+#: cps/templates/user_edit.html:167
msgid "Delete"
msgstr "Poista"
@@ -1326,11 +1339,11 @@ msgid "OK"
msgstr "Ok"
#: cps/templates/admin.html:183 cps/templates/admin.html:197
-#: cps/templates/book_edit.html:192 cps/templates/book_edit.html:222
+#: cps/templates/book_edit.html:192 cps/templates/book_table.html:84
#: cps/templates/config_edit.html:391 cps/templates/config_view_edit.html:151
#: cps/templates/email_edit.html:47 cps/templates/email_edit.html:101
-#: cps/templates/shelf.html:73 cps/templates/shelf_edit.html:19
-#: cps/templates/user_edit.html:139
+#: cps/templates/modal_dialogs.html:64 cps/templates/shelf.html:73
+#: cps/templates/shelf_edit.html:19 cps/templates/user_edit.html:139
msgid "Cancel"
msgstr ""
@@ -1350,15 +1363,14 @@ msgstr ""
msgid "In Library"
msgstr "Kirjastossa"
-#: cps/templates/author.html:34 cps/templates/book_table.html:14
-#: cps/templates/grid.html:14 cps/templates/list.html:14
-#: cps/templates/search.html:38
+#: cps/templates/author.html:34 cps/templates/grid.html:14
+#: cps/templates/list.html:14
msgid "All"
msgstr "Kaikki"
#: cps/templates/author.html:58 cps/templates/author.html:110
#: cps/templates/discover.html:27 cps/templates/index.html:26
-#: cps/templates/index.html:89 cps/templates/search.html:64
+#: cps/templates/index.html:89 cps/templates/search.html:60
#: cps/templates/shelf.html:36
msgid "reduce"
msgstr "vähennä"
@@ -1399,13 +1411,13 @@ msgstr "Muunna kirja"
msgid "Book Title"
msgstr "Kirjan otsikko"
-#: cps/templates/book_edit.html:57 cps/templates/book_edit.html:284
-#: cps/templates/book_edit.html:302 cps/templates/search_form.html:10
+#: cps/templates/book_edit.html:57 cps/templates/book_edit.html:257
+#: cps/templates/book_edit.html:275 cps/templates/search_form.html:10
msgid "Author"
msgstr "Kirjailija"
-#: cps/templates/book_edit.html:61 cps/templates/book_edit.html:289
-#: cps/templates/book_edit.html:304 cps/templates/search_form.html:126
+#: cps/templates/book_edit.html:61 cps/templates/book_edit.html:262
+#: cps/templates/book_edit.html:277 cps/templates/search_form.html:126
msgid "Description"
msgstr "Kuvaus"
@@ -1413,15 +1425,15 @@ msgstr "Kuvaus"
msgid "Identifiers"
msgstr ""
-#: cps/templates/book_edit.html:70 cps/templates/book_edit.html:313
+#: cps/templates/book_edit.html:70 cps/templates/book_edit.html:286
msgid "Identifier Type"
msgstr ""
-#: cps/templates/book_edit.html:71 cps/templates/book_edit.html:314
+#: cps/templates/book_edit.html:71 cps/templates/book_edit.html:287
msgid "Identifier Value"
msgstr ""
-#: cps/templates/book_edit.html:72 cps/templates/book_edit.html:315
+#: cps/templates/book_edit.html:72 cps/templates/book_edit.html:288
msgid "Remove"
msgstr ""
@@ -1453,8 +1465,8 @@ msgstr "Lataa kuva paikalliselta levyltä"
msgid "Published Date"
msgstr "Julkaisupäivä"
-#: cps/templates/book_edit.html:116 cps/templates/book_edit.html:286
-#: cps/templates/book_edit.html:303 cps/templates/detail.html:156
+#: cps/templates/book_edit.html:116 cps/templates/book_edit.html:259
+#: cps/templates/book_edit.html:276 cps/templates/detail.html:156
#: cps/templates/search_form.html:14
msgid "Publisher"
msgstr "Julkaisija"
@@ -1480,7 +1492,7 @@ msgstr "Lataa tiedostomuoto"
msgid "View Book on Save"
msgstr "katso kirjaa muokkauksen jälkeen"
-#: cps/templates/book_edit.html:190 cps/templates/book_edit.html:234
+#: cps/templates/book_edit.html:190 cps/templates/book_edit.html:207
msgid "Fetch Metadata"
msgstr "Hae metadata"
@@ -1490,60 +1502,133 @@ msgstr "Hae metadata"
msgid "Save"
msgstr ""
-#: cps/templates/book_edit.html:205
-msgid "Are you really sure?"
-msgstr "Oletko aivan varma?"
-
-#: cps/templates/book_edit.html:209
-msgid "This book will be permanently erased from database"
-msgstr "Kirja poistetaan Calibren tietokannasta"
-
#: cps/templates/book_edit.html:210
-msgid "and hard disk"
-msgstr "ja kiintolevyltä"
-
-#: cps/templates/book_edit.html:214
-msgid "Important Kobo Note: deleted books will remain on any paired Kobo device."
-msgstr ""
-
-#: cps/templates/book_edit.html:215
-msgid "Books must first be archived and the device synced before a book can safely be deleted."
-msgstr ""
-
-#: cps/templates/book_edit.html:237
msgid "Keyword"
msgstr "Avainsana"
-#: cps/templates/book_edit.html:238
+#: cps/templates/book_edit.html:211
msgid " Search keyword "
msgstr " Hae avainsanaa "
-#: cps/templates/book_edit.html:244
+#: cps/templates/book_edit.html:217
msgid "Click the cover to load metadata to the form"
msgstr "Klikkaa kantta ladataksesi metadata lomakkeelle"
-#: cps/templates/book_edit.html:259 cps/templates/book_edit.html:299
+#: cps/templates/book_edit.html:232 cps/templates/book_edit.html:272
msgid "Loading..."
msgstr "Ladataan..."
-#: cps/templates/book_edit.html:264 cps/templates/layout.html:190
-#: cps/templates/layout.html:222 cps/templates/modal_restriction.html:34
-#: cps/templates/user_edit.html:166
+#: cps/templates/book_edit.html:237 cps/templates/layout.html:186
+#: cps/templates/layout.html:217 cps/templates/modal_dialogs.html:34
+#: cps/templates/user_edit.html:154
msgid "Close"
msgstr "Sulje"
-#: cps/templates/book_edit.html:291 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:264 cps/templates/book_edit.html:278
msgid "Source"
msgstr "Lähde"
-#: cps/templates/book_edit.html:300
+#: cps/templates/book_edit.html:273
msgid "Search error!"
msgstr "Hakuvirhe!"
-#: cps/templates/book_edit.html:301
+#: cps/templates/book_edit.html:274
msgid "No Result(s) found! Please try another keyword."
msgstr "Ei osumia! Kokeile jotain tosita hakusanaa."
+#: cps/templates/book_table.html:10 cps/templates/book_table.html:52
+msgid "This Field is Required"
+msgstr ""
+
+#: cps/templates/book_table.html:23
+msgid "Merge selected books"
+msgstr ""
+
+#: cps/templates/book_table.html:24
+msgid "Remove Selections"
+msgstr ""
+
+#: cps/templates/book_table.html:30
+msgid "Update Title Sort automatically"
+msgstr ""
+
+#: cps/templates/book_table.html:34
+msgid "Update Author Sort automatically"
+msgstr ""
+
+#: cps/templates/book_table.html:46
+msgid "Enter Title"
+msgstr ""
+
+#: cps/templates/book_table.html:46 cps/templates/config_view_edit.html:23
+#: cps/templates/shelf_edit.html:7
+msgid "Title"
+msgstr "Otsikko"
+
+#: cps/templates/book_table.html:47
+msgid "Enter Title Sort"
+msgstr ""
+
+#: cps/templates/book_table.html:47
+msgid "Title Sort"
+msgstr ""
+
+#: cps/templates/book_table.html:48
+msgid "Enter Author Sort"
+msgstr ""
+
+#: cps/templates/book_table.html:48
+msgid "Author Sort"
+msgstr ""
+
+#: cps/templates/book_table.html:49
+msgid "Enter Authors"
+msgstr ""
+
+#: cps/templates/book_table.html:50
+msgid "Enter Categories"
+msgstr ""
+
+#: cps/templates/book_table.html:51
+msgid "Enter Series"
+msgstr ""
+
+#: cps/templates/book_table.html:52
+msgid "Enter title"
+msgstr ""
+
+#: cps/templates/book_table.html:52
+msgid "Series Index"
+msgstr ""
+
+#: cps/templates/book_table.html:53
+msgid "Enter Languages"
+msgstr ""
+
+#: cps/templates/book_table.html:54
+msgid "Publishing Date"
+msgstr ""
+
+#: cps/templates/book_table.html:55
+msgid "Enter Publishers"
+msgstr ""
+
+#: cps/templates/book_table.html:70 cps/templates/modal_dialogs.html:46
+msgid "Are you really sure?"
+msgstr "Oletko aivan varma?"
+
+#: cps/templates/book_table.html:74
+msgid "Books with Title will be merged from:"
+msgstr ""
+
+#: cps/templates/book_table.html:78
+msgid "Into Book with Title:"
+msgstr ""
+
+#: cps/templates/book_table.html:83
+msgid "Merge"
+msgstr ""
+
#: cps/templates/config_edit.html:12
msgid "Library Configuration"
msgstr "Kirjaston asetukset"
@@ -1833,10 +1918,6 @@ msgstr "Kirjaudu sisään"
msgid "View Configuration"
msgstr "Näytä konfiguraatio"
-#: cps/templates/config_view_edit.html:23 cps/templates/shelf_edit.html:7
-msgid "Title"
-msgstr "Otsikko"
-
#: cps/templates/config_view_edit.html:31
msgid "No. of Random Books to Display"
msgstr "Satunnaisten kirjojen näytön lukumäärä"
@@ -1845,7 +1926,7 @@ msgstr "Satunnaisten kirjojen näytön lukumäärä"
msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)"
msgstr "Kirjailijoiden lukumäärä ennen piilotusta (0=poista piilotus)"
-#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:112
+#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:117
msgid "Theme"
msgstr "Teema"
@@ -1979,7 +2060,7 @@ msgstr "Lisää hyllyyn"
#: cps/templates/detail.html:253 cps/templates/detail.html:270
#: cps/templates/feed.xml:79 cps/templates/layout.html:137
-#: cps/templates/layout.html:141 cps/templates/search.html:20
+#: cps/templates/search.html:20
msgid "(Public)"
msgstr ""
@@ -2031,7 +2112,7 @@ msgstr ""
msgid "Are you sure you want to delete this domain?"
msgstr "Haluatko todellakin poistaa tämän domainin säännön?"
-#: cps/templates/feed.xml:21 cps/templates/layout.html:174
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr "Seuraava"
@@ -2120,7 +2201,7 @@ msgid "Home"
msgstr "Koti"
#: cps/templates/layout.html:29 cps/templates/shelf_order.html:32
-#: cps/templates/user_edit.html:180
+#: cps/templates/user_edit.html:168
msgid "Back"
msgstr "Palaa"
@@ -2137,7 +2218,7 @@ msgid "Advanced Search"
msgstr "Edistynyt haku"
#: cps/templates/layout.html:77 cps/templates/read.html:71
-#: cps/templates/readcbr.html:83 cps/templates/readcbr.html:107
+#: cps/templates/readcbr.html:88 cps/templates/readcbr.html:112
msgid "Settings"
msgstr "Asetukset"
@@ -2153,7 +2234,7 @@ msgstr "Kirjaudu ulos"
msgid "Register"
msgstr "Rekisteröi"
-#: cps/templates/layout.html:117 cps/templates/layout.html:221
+#: cps/templates/layout.html:117 cps/templates/layout.html:216
msgid "Uploading..."
msgstr "Ladataan..."
@@ -2165,27 +2246,23 @@ msgstr ""
msgid "Browse"
msgstr "Selaa"
-#: cps/templates/layout.html:139
-msgid "Your Shelves"
-msgstr "Omat hyllysi"
-
-#: cps/templates/layout.html:145 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr "Tietoja"
-#: cps/templates/layout.html:159
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr "Edellinen"
-#: cps/templates/layout.html:186
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr "Kirjan tiedot"
-#: cps/templates/layout.html:220
+#: cps/templates/layout.html:215
msgid "Upload done, processing, please wait..."
msgstr "Lataus tehty, prosessoidaan, ole hyvä ja odota..."
-#: cps/templates/layout.html:223
+#: cps/templates/layout.html:218
msgid "Error"
msgstr "Virhe"
@@ -2217,30 +2294,50 @@ msgstr ""
msgid "Show Access Log: "
msgstr ""
-#: cps/templates/modal_restriction.html:6
+#: cps/templates/modal_dialogs.html:6
msgid "Select Allowed/Denied Tags"
msgstr ""
-#: cps/templates/modal_restriction.html:7
+#: cps/templates/modal_dialogs.html:7
msgid "Select Allowed/Denied Custom Column Values"
msgstr ""
-#: cps/templates/modal_restriction.html:8
+#: cps/templates/modal_dialogs.html:8
msgid "Select Allowed/Denied Tags of User"
msgstr ""
-#: cps/templates/modal_restriction.html:9
+#: cps/templates/modal_dialogs.html:9
msgid "Select Allowed/Denied Custom Column Values of User"
msgstr ""
-#: cps/templates/modal_restriction.html:15
+#: cps/templates/modal_dialogs.html:15
msgid "Enter Tag"
msgstr ""
-#: cps/templates/modal_restriction.html:24
+#: cps/templates/modal_dialogs.html:24
msgid "Add View Restriction"
msgstr ""
+#: cps/templates/modal_dialogs.html:50
+msgid "This book format will be permanently erased from database"
+msgstr ""
+
+#: cps/templates/modal_dialogs.html:51
+msgid "This book will be permanently erased from database"
+msgstr "Kirja poistetaan Calibren tietokannasta"
+
+#: cps/templates/modal_dialogs.html:52
+msgid "and hard disk"
+msgstr "ja kiintolevyltä"
+
+#: cps/templates/modal_dialogs.html:56
+msgid "Important Kobo Note: deleted books will remain on any paired Kobo device."
+msgstr ""
+
+#: cps/templates/modal_dialogs.html:57
+msgid "Books must first be archived and the device synced before a book can safely be deleted."
+msgstr ""
+
#: cps/templates/osd.xml:5
msgid "Calibre-Web eBook Catalog"
msgstr "Calibre-Web e-kirjaluettelo"
@@ -2249,99 +2346,99 @@ msgstr "Calibre-Web e-kirjaluettelo"
msgid "Reflow text when sidebars are open."
msgstr "Uudelleenjärjestä teksti kun sivut on auki."
-#: cps/templates/readcbr.html:88
+#: cps/templates/readcbr.html:93
msgid "Keyboard Shortcuts"
msgstr "Näppäimistöpikakomennot"
-#: cps/templates/readcbr.html:91
+#: cps/templates/readcbr.html:96
msgid "Previous Page"
msgstr "Edellinen sivu"
-#: cps/templates/readcbr.html:92
+#: cps/templates/readcbr.html:97
msgid "Next Page"
msgstr "Seuraava sivu"
-#: cps/templates/readcbr.html:93
+#: cps/templates/readcbr.html:98
msgid "Scale to Best"
msgstr "Skaalaa parhaaseen"
-#: cps/templates/readcbr.html:94
+#: cps/templates/readcbr.html:99
msgid "Scale to Width"
msgstr "Skaalaa leveyteen"
-#: cps/templates/readcbr.html:95
+#: cps/templates/readcbr.html:100
msgid "Scale to Height"
msgstr "Skaalaa korkeuteen"
-#: cps/templates/readcbr.html:96
+#: cps/templates/readcbr.html:101
msgid "Scale to Native"
msgstr "Skaalaa alkuperäiseen"
-#: cps/templates/readcbr.html:97
+#: cps/templates/readcbr.html:102
msgid "Rotate Right"
msgstr "Käännä oikealle"
-#: cps/templates/readcbr.html:98
+#: cps/templates/readcbr.html:103
msgid "Rotate Left"
msgstr "Käännä vasemmalle"
-#: cps/templates/readcbr.html:99
+#: cps/templates/readcbr.html:104
msgid "Flip Image"
msgstr "Käännä kuva"
-#: cps/templates/readcbr.html:115
+#: cps/templates/readcbr.html:120
msgid "Light"
msgstr "Vaalea"
-#: cps/templates/readcbr.html:116
+#: cps/templates/readcbr.html:121
msgid "Dark"
msgstr "Tumma"
-#: cps/templates/readcbr.html:121
+#: cps/templates/readcbr.html:126
msgid "Scale"
msgstr "Skaalaa"
-#: cps/templates/readcbr.html:124
+#: cps/templates/readcbr.html:129
msgid "Best"
msgstr "Paras"
-#: cps/templates/readcbr.html:125
+#: cps/templates/readcbr.html:130
msgid "Width"
msgstr "Leveys"
-#: cps/templates/readcbr.html:126
+#: cps/templates/readcbr.html:131
msgid "Height"
msgstr "Korkeus"
-#: cps/templates/readcbr.html:127
+#: cps/templates/readcbr.html:132
msgid "Native"
msgstr "Alkuperäinen"
-#: cps/templates/readcbr.html:132
+#: cps/templates/readcbr.html:137
msgid "Rotate"
msgstr "Pyöritä"
-#: cps/templates/readcbr.html:143
+#: cps/templates/readcbr.html:148
msgid "Flip"
msgstr "Käännä"
-#: cps/templates/readcbr.html:146
+#: cps/templates/readcbr.html:151
msgid "Horizontal"
msgstr "Vaakasuunta"
-#: cps/templates/readcbr.html:147
+#: cps/templates/readcbr.html:152
msgid "Vertical"
msgstr "Pystysuunta"
-#: cps/templates/readcbr.html:152
+#: cps/templates/readcbr.html:157
msgid "Direction"
msgstr "Suunta"
-#: cps/templates/readcbr.html:155
+#: cps/templates/readcbr.html:160
msgid "Left to Right"
msgstr "Vasemmalta oikealle"
-#: cps/templates/readcbr.html:156
+#: cps/templates/readcbr.html:161
msgid "Right to Left"
msgstr "Oikealta vasemmalle"
@@ -2561,15 +2658,11 @@ msgstr ""
msgid "Delete User"
msgstr "Poista tämä käyttäjä"
-#: cps/templates/user_edit.html:146
-msgid "Recent Downloads"
-msgstr "Viimeisimmät lataukset"
-
-#: cps/templates/user_edit.html:162
+#: cps/templates/user_edit.html:150
msgid "Generate Kobo Auth URL"
msgstr ""
-#: cps/templates/user_edit.html:178
+#: cps/templates/user_edit.html:166
msgid "Do you really want to delete the Kobo Token?"
msgstr ""
diff --git a/cps/translations/fr/LC_MESSAGES/messages.mo b/cps/translations/fr/LC_MESSAGES/messages.mo
index 3a1a59c1f4ba3d77a1a2b0e03b4d5881f6246485..78a24822fe89136cc29111534183096dbcdf2bc0 100644
GIT binary patch
delta 9681
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
Qv<9!qTo>$mzbwz~Kdni8UjP6A
diff --git a/cps/translations/fr/LC_MESSAGES/messages.po b/cps/translations/fr/LC_MESSAGES/messages.po
index f617850d..35e8af21 100644
--- a/cps/translations/fr/LC_MESSAGES/messages.po
+++ b/cps/translations/fr/LC_MESSAGES/messages.po
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2020-10-06 21:47+0200\n"
+"POT-Creation-Date: 2020-10-10 11:32+0200\n"
"PO-Revision-Date: 2020-06-07 06:47+0200\n"
"Last-Translator: Dekani \n"
"Language: fr\n"
@@ -60,9 +60,9 @@ msgstr "Reconnecté avec succès"
msgid "Unknown command"
msgstr "Commande inconnue"
-#: cps/admin.py:116 cps/editbooks.py:575 cps/editbooks.py:587
-#: cps/editbooks.py:687 cps/editbooks.py:689 cps/editbooks.py:750
-#: cps/editbooks.py:766 cps/updater.py:509 cps/uploader.py:98
+#: cps/admin.py:116 cps/editbooks.py:612 cps/editbooks.py:624
+#: cps/editbooks.py:724 cps/editbooks.py:726 cps/editbooks.py:787
+#: cps/editbooks.py:803 cps/updater.py:510 cps/uploader.py:98
#: cps/uploader.py:108
msgid "Unknown"
msgstr "Inconnu"
@@ -80,12 +80,12 @@ msgid "Calibre-Web configuration updated"
msgstr "Configuration de Calibre-Web mise à jour"
#: cps/admin.py:435 cps/admin.py:441 cps/admin.py:452 cps/admin.py:463
-#: cps/templates/modal_restriction.html:29
+#: cps/templates/modal_dialogs.html:29
msgid "Deny"
msgstr "Refuser"
#: cps/admin.py:437 cps/admin.py:443 cps/admin.py:454 cps/admin.py:465
-#: cps/templates/modal_restriction.html:28
+#: cps/templates/modal_dialogs.html:28
msgid "Allow"
msgstr "Autoriser"
@@ -153,7 +153,7 @@ msgstr "La DB n'est pas accessible en écriture"
msgid "Basic Configuration"
msgstr "Configuration principale"
-#: cps/admin.py:762 cps/web.py:1338
+#: cps/admin.py:762 cps/web.py:1493
msgid "Please fill out all fields!"
msgstr "Veuillez compléter tous les champs !"
@@ -161,7 +161,7 @@ msgstr "Veuillez compléter tous les champs !"
msgid "Add new user"
msgstr "Ajouter un nouvel utilisateur"
-#: cps/admin.py:774 cps/web.py:1581
+#: cps/admin.py:774 cps/web.py:1739
msgid "E-mail is not from valid domain"
msgstr "Cette adresse de courriel n’appartient pas à un domaine valide"
@@ -187,16 +187,16 @@ msgstr "Aucun utilisateur admin restant, impossible de supprimer l’utilisateur
msgid "No admin user remaining, can't remove admin role"
msgstr "Aucun utilisateur admin restant, impossible de supprimer le rôle admin"
-#: cps/admin.py:853 cps/web.py:1624
+#: cps/admin.py:853 cps/web.py:1781
msgid "Found an existing account for this e-mail address."
msgstr "Un compte existant a été trouvé pour cette adresse de courriel."
-#: cps/admin.py:863 cps/admin.py:878 cps/admin.py:989 cps/web.py:1599
+#: cps/admin.py:863 cps/admin.py:878 cps/admin.py:989 cps/web.py:1757
#, python-format
msgid "Edit User %(nick)s"
msgstr "Éditer l'utilisateur %(nick)s"
-#: cps/admin.py:869 cps/web.py:1591
+#: cps/admin.py:869 cps/web.py:1750
msgid "This username is already taken"
msgstr "Cet utilisateur est déjà pris"
@@ -240,11 +240,11 @@ msgstr "L'utilisateur n'a pas été trouvé"
msgid "Password for user %(user)s reset"
msgstr "Le mot de passe de l’utilisateur %(user)s a été réinitialisé"
-#: cps/admin.py:1003 cps/web.py:1362 cps/web.py:1426
+#: cps/admin.py:1003 cps/web.py:1517 cps/web.py:1581
msgid "An unknown error occurred. Please try again later."
msgstr "Une erreur inconnue est survenue. Veuillez réessayer plus tard."
-#: cps/admin.py:1006 cps/web.py:1300
+#: cps/admin.py:1006 cps/web.py:1455
msgid "Please configure the SMTP mail settings first..."
msgstr "Veuillez configurer les paramètres SMTP au préalable..."
@@ -285,19 +285,19 @@ msgstr "Mise à jour terminée, merci d’appuyer sur okay et de rafraîchir la
msgid "Update failed:"
msgstr "La mise à jour a échoué :"
-#: cps/admin.py:1064 cps/updater.py:319 cps/updater.py:520 cps/updater.py:522
+#: cps/admin.py:1064 cps/updater.py:320 cps/updater.py:521 cps/updater.py:523
msgid "HTTP Error"
msgstr "Erreur HTTP"
-#: cps/admin.py:1065 cps/updater.py:321 cps/updater.py:524
+#: cps/admin.py:1065 cps/updater.py:322 cps/updater.py:525
msgid "Connection error"
msgstr "Erreur de connexion"
-#: cps/admin.py:1066 cps/updater.py:323 cps/updater.py:526
+#: cps/admin.py:1066 cps/updater.py:324 cps/updater.py:527
msgid "Timeout while establishing connection"
msgstr "Délai d'attente dépassé lors de l'établissement de connexion"
-#: cps/admin.py:1067 cps/updater.py:325 cps/updater.py:528
+#: cps/admin.py:1067 cps/updater.py:326 cps/updater.py:529
msgid "General error"
msgstr "Erreur générale"
@@ -313,103 +313,98 @@ msgstr "non configuré"
msgid "Execution permissions missing"
msgstr "Les permissions d'exécutions manquantes"
-#: cps/editbooks.py:245
+#: cps/editbooks.py:273 cps/editbooks.py:275
msgid "Book Format Successfully Deleted"
msgstr "Le format du livre a été supprimé avec succès"
-#: cps/editbooks.py:248
+#: cps/editbooks.py:282 cps/editbooks.py:284
msgid "Book Successfully Deleted"
msgstr "Le livre a été supprimé avec succès"
-#: cps/editbooks.py:257 cps/editbooks.py:560 cps/web.py:1647 cps/web.py:1688
-#: cps/web.py:1750
+#: cps/editbooks.py:293 cps/editbooks.py:596 cps/web.py:1812 cps/web.py:1853
+#: cps/web.py:1915
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr "Erreur à l’ouverture du livre. Le fichier n’existe pas ou n’est pas accessible"
-#: cps/editbooks.py:291
+#: cps/editbooks.py:327
msgid "edit metadata"
msgstr "modifier les métadonnées"
-#: cps/editbooks.py:366
+#: cps/editbooks.py:402
#, python-format
msgid "%(langname)s is not a valid language"
msgstr "%(langname)s n'est pas une langue valide"
-#: cps/editbooks.py:477 cps/editbooks.py:732
+#: cps/editbooks.py:513 cps/editbooks.py:769
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "L’extension de fichier '%(ext)s' n’est pas autorisée pour être déposée sur ce serveur"
-#: cps/editbooks.py:481 cps/editbooks.py:736
+#: cps/editbooks.py:517 cps/editbooks.py:773
msgid "File to be uploaded must have an extension"
msgstr "Pour être déposé le fichier doit avoir une extension"
-#: cps/editbooks.py:493 cps/editbooks.py:796
+#: cps/editbooks.py:529
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "Impossible de créer le chemin %(path)s (Permission refusée)."
-#: cps/editbooks.py:498
+#: cps/editbooks.py:534
#, python-format
msgid "Failed to store file %(file)s."
msgstr "Échec de la sauvegarde du fichier %(file)s."
-#: cps/editbooks.py:516 cps/editbooks.py:887
+#: cps/editbooks.py:552 cps/editbooks.py:904
#, python-format
msgid "Database error: %(error)s."
msgstr "Erreur de la base de données: %(error)s."
-#: cps/editbooks.py:520
+#: cps/editbooks.py:556
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "Le format de fichier %(ext)s a été ajouté à %(book)s"
-#: cps/editbooks.py:636
+#: cps/editbooks.py:673
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr ""
-#: cps/editbooks.py:673
+#: cps/editbooks.py:710
msgid "Metadata successfully updated"
msgstr "Les métadonnées ont bien été mises à jour"
-#: cps/editbooks.py:682
+#: cps/editbooks.py:719
msgid "Error editing book, please check logfile for details"
msgstr "Erreur d’édition du livre, veuillez consulter le journal (log) pour plus de détails"
-#: cps/editbooks.py:744
+#: cps/editbooks.py:781
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr "Le fichier %(filename)s ne peut pas être sauvegardé dans le répertoire temporaire"
-#: cps/editbooks.py:754
+#: cps/editbooks.py:791
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr "Le fichier téléchargé existe probablement dans la librairie, veuillez le modifier avant de le télécharger de nouveau: "
-#: cps/editbooks.py:803
-#, python-format
-msgid "Failed to Move File %(file)s: %(error)s"
-msgstr "Impossible de déplacer le fichier %(file)s: %(error)s"
-
-#: cps/editbooks.py:859
+#: cps/editbooks.py:879
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr "Impossible de déplacer le fichier de couverture %(file)s: %(error)s"
-#: cps/editbooks.py:873
+#: cps/editbooks.py:890
#, python-format
msgid "File %(file)s uploaded"
msgstr "Le fichier %(file)s a été téléchargé"
-#: cps/editbooks.py:899
+#: cps/editbooks.py:916
msgid "Source or destination format for conversion missing"
msgstr "Le format de conversion de la source ou de la destination est manquant"
-#: cps/editbooks.py:907
+#: cps/editbooks.py:924
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "Le livre a été mis avec succès en file de traitement pour conversion vers %(book_format)s"
-#: cps/editbooks.py:911
+#: cps/editbooks.py:928
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "Une erreur est survenue au cours de la conversion du livre : %(res)s"
@@ -422,136 +417,131 @@ msgstr "La configuration de Google Drive n’est pas terminée, essayez de désa
msgid "Callback domain is not verified, please follow steps to verify domain in google developer console"
msgstr "Le domaine de retour d’appel (Callback domain) est non vérifié, veuillez suivre les étapes nécessaires pour vérifier le domaine dans la console de développement de Google"
-#: cps/helper.py:77
+#: cps/helper.py:79
#, python-format
msgid "%(format)s format not found for book id: %(book)d"
msgstr "le format %(format)s est introuvable pour le livre : %(book)d"
-#: cps/helper.py:89
+#: cps/helper.py:85 cps/tasks/convert.py:50
#, python-format
msgid "%(format)s not found on Google Drive: %(fn)s"
msgstr "le %(format)s est introuvable sur Google Drive : %(fn)s"
-#: cps/helper.py:96 cps/helper.py:224 cps/templates/detail.html:41
-#: cps/templates/detail.html:45
-msgid "Send to Kindle"
-msgstr "Envoyer vers Kindle"
-
-#: cps/helper.py:97 cps/helper.py:115 cps/helper.py:226
-msgid "This e-mail has been sent via Calibre-Web."
-msgstr "Ce courriel a été envoyé depuis Calibre-Web."
-
-#: cps/helper.py:108
+#: cps/helper.py:90
#, python-format
msgid "%(format)s not found: %(fn)s"
msgstr "%(format)s introuvable : %(fn)s"
-#: cps/helper.py:113
+#: cps/helper.py:95 cps/helper.py:228 cps/templates/detail.html:41
+#: cps/templates/detail.html:45
+msgid "Send to Kindle"
+msgstr "Envoyer vers Kindle"
+
+#: cps/helper.py:96 cps/helper.py:112 cps/helper.py:230
+msgid "This e-mail has been sent via Calibre-Web."
+msgstr "Ce courriel a été envoyé depuis Calibre-Web."
+
+#: cps/helper.py:110
msgid "Calibre-Web test e-mail"
msgstr "Courriel de test de Calibre-Web"
-#: cps/helper.py:115
+#: cps/helper.py:111
msgid "Test e-mail"
msgstr "Courriel de test"
-#: cps/helper.py:130
+#: cps/helper.py:128
msgid "Get Started with Calibre-Web"
msgstr "Bien démarrer avec Calibre-Web"
-#: cps/helper.py:132
+#: cps/helper.py:133
#, python-format
msgid "Registration e-mail for user: %(name)s"
msgstr "Courriel d’inscription pour l’utilisateur : %(name)s"
-#: cps/helper.py:149 cps/helper.py:153 cps/helper.py:157 cps/helper.py:166
-#: cps/helper.py:170 cps/helper.py:174
+#: cps/helper.py:153 cps/helper.py:157 cps/helper.py:161 cps/helper.py:170
+#: cps/helper.py:174 cps/helper.py:178
#, python-format
msgid "Send %(format)s to Kindle"
msgstr "Envoyer %(format)s vers le Kindle"
-#: cps/helper.py:179 cps/helper.py:185
+#: cps/helper.py:183 cps/helper.py:189
#, python-format
msgid "Convert %(orig)s to %(format)s and send to Kindle"
msgstr "Convertir de %(orig)s vers %(format)s et envoyer au Kindle"
-#: cps/helper.py:226
+#: cps/helper.py:230
#, python-format
msgid "E-mail: %(book)s"
msgstr "Courriel : %(book)s"
-#: cps/helper.py:228
+#: cps/helper.py:232
msgid "The requested file could not be read. Maybe wrong permissions?"
msgstr "Le fichier demandé n’a pu être lu. Problème de permission d’accès ?"
-#: cps/helper.py:325
+#: cps/helper.py:329
#, python-format
msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s"
msgstr ""
-#: cps/helper.py:331
+#: cps/helper.py:335
#, python-format
msgid "Deleting book %(id)s failed: %(message)s"
msgstr "La suppression du livre %(id)s a échoué: %(message)s"
-#: cps/helper.py:341
+#: cps/helper.py:345
#, python-format
msgid "Deleting book %(id)s, book path not valid: %(path)s"
msgstr "Suppression du livre %(id)s, le chemin du livre est invalide : %(path)s"
-#: cps/helper.py:376
+#: cps/helper.py:397
#, python-format
msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr "Renommer le titre de : '%(src)s' à '%(dest)s' a échoué avec l’erreur : %(error)s"
-#: cps/helper.py:386
-#, python-format
-msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
-msgstr "Renommer l’auteur de : '%(src)s' à '%(dest)s' a échoué avec l’erreur : %(error)s"
-
-#: cps/helper.py:402
+#: cps/helper.py:410
#, python-format
msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr "La modification du nom de fichier du chemin : '%(src)s' vers '%(dest)s' a échoué avec l’erreur : %(error)s"
-#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446
+#: cps/helper.py:435 cps/helper.py:445 cps/helper.py:453
#, python-format
msgid "File %(file)s not found on Google Drive"
msgstr "Le fichier %(file)s n'a pas été trouvé dans Google Drive"
-#: cps/helper.py:467
+#: cps/helper.py:474
#, python-format
msgid "Book path %(path)s not found on Google Drive"
msgstr "Le chemin du livre %(path)s n'a pas été trouvé dans Google Drive"
-#: cps/helper.py:576
+#: cps/helper.py:583
msgid "Error Downloading Cover"
msgstr "Erreur lors du téléchargement de la couverture"
-#: cps/helper.py:579
+#: cps/helper.py:586
msgid "Cover Format Error"
msgstr "Erreur de format de couverture"
-#: cps/helper.py:594
+#: cps/helper.py:601
msgid "Failed to create path for cover"
msgstr "Impossible de créer le chemin pour la couverture"
-#: cps/helper.py:599
+#: cps/helper.py:606
msgid "Cover-file is not a valid image file, or could not be stored"
msgstr "Le fichier couverture n'est pas un fichier image valide, ou ne peut pas être stocké"
-#: cps/helper.py:610
+#: cps/helper.py:617
msgid "Only jpg/jpeg/png/webp files are supported as coverfile"
msgstr "Seuls les fichiers jpg/jpeg/png/webp sont supportés comme fichier de couverture"
-#: cps/helper.py:624
+#: cps/helper.py:631
msgid "Only jpg/jpeg files are supported as coverfile"
msgstr "Seuls les fichiers jpg/jpeg sont supportés comme fichier de couverture"
-#: cps/helper.py:672
+#: cps/helper.py:679
msgid "Unrar binary file not found"
msgstr "Fichier binaire Unrar non trouvé"
-#: cps/helper.py:686
+#: cps/helper.py:693
msgid "Error excecuting UnRar"
msgstr "Une erreur est survenue lors de l'exécution d'UnRar"
@@ -575,22 +565,6 @@ msgstr "Terminé"
msgid "Unknown Status"
msgstr "Statut inconnu"
-#: cps/helper.py:755
-msgid "E-mail: "
-msgstr "Courriel : "
-
-#: cps/helper.py:757 cps/helper.py:761
-msgid "Convert: "
-msgstr "Convertir vers : "
-
-#: cps/helper.py:759
-msgid "Upload: "
-msgstr "Téléverser : "
-
-#: cps/helper.py:763
-msgid "Unknown Task: "
-msgstr "Tâche inconnue : "
-
#: cps/kobo_auth.py:130
msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device"
msgstr "Veuilllez ne pas accéder à calibre-web par localhost pour obtenir un api_endpoint valide pour un appareil kobo"
@@ -620,7 +594,7 @@ msgstr "Échec de la connexion avec Google."
msgid "Failed to fetch user info from Google."
msgstr "Impossible d’obtenir les informations d’utilisateur avec Google."
-#: cps/oauth_bb.py:225 cps/web.py:1398 cps/web.py:1540
+#: cps/oauth_bb.py:225 cps/web.py:1553 cps/web.py:1695
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "vous êtes maintenant connecté comme : '%(nickname)s'"
@@ -725,7 +699,7 @@ msgstr "Étagère %(title)s créée"
msgid "There was an error"
msgstr "Il y a eu une erreur"
-#: cps/shelf.py:264 cps/shelf.py:266 cps/templates/layout.html:144
+#: cps/shelf.py:264 cps/shelf.py:266 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr "Créer une étagère"
@@ -756,388 +730,426 @@ msgstr "Livre caché"
msgid "Change order of Shelf: '%(name)s'"
msgstr "Modifier l’arrangement de l’étagère : ‘%(name)s’"
-#: cps/ub.py:65
+#: cps/ub.py:68
msgid "Recently Added"
msgstr "Ajouts récents"
-#: cps/ub.py:67
+#: cps/ub.py:70
msgid "Show recent books"
msgstr "Afficher les livres récents"
-#: cps/templates/index.xml:17 cps/ub.py:68
+#: cps/templates/index.xml:17 cps/ub.py:71
msgid "Hot Books"
msgstr "Livres populaires"
-#: cps/ub.py:70
+#: cps/ub.py:73
msgid "Show Hot Books"
msgstr "Montrer les livres populaires"
-#: cps/templates/index.xml:24 cps/ub.py:72 cps/web.py:653
+#: cps/ub.py:74
+msgid "Downloaded Books"
+msgstr ""
+
+#: cps/ub.py:76
+msgid "Show Downloaded Books"
+msgstr ""
+
+#: cps/templates/index.xml:24 cps/ub.py:79 cps/web.py:635
msgid "Top Rated Books"
msgstr "Livres les mieux notés"
-#: cps/ub.py:74
+#: cps/ub.py:81
msgid "Show Top Rated Books"
msgstr "Montrer les livres les mieux notés"
-#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:75
-#: cps/web.py:1220
+#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:82
+#: cps/web.py:896
msgid "Read Books"
msgstr "Livres lus"
-#: cps/ub.py:77
+#: cps/ub.py:84
msgid "Show read and unread"
msgstr "Montrer lus et non-lus"
-#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:79
-#: cps/web.py:1223
+#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:86
+#: cps/web.py:899
msgid "Unread Books"
msgstr "Livres non-lus"
-#: cps/ub.py:81
+#: cps/ub.py:88
msgid "Show unread"
msgstr "Afficher non-lus"
-#: cps/ub.py:82
+#: cps/ub.py:89
msgid "Discover"
msgstr "Découvrir"
-#: cps/ub.py:84
+#: cps/ub.py:91
msgid "Show random books"
msgstr "Montrer des livres au hasard"
-#: cps/templates/index.xml:75 cps/ub.py:85 cps/web.py:968
+#: cps/templates/book_table.html:50 cps/templates/index.xml:75 cps/ub.py:92
+#: cps/web.py:1200
msgid "Categories"
msgstr "Catégories"
-#: cps/ub.py:87
+#: cps/ub.py:94
msgid "Show category selection"
msgstr "Montrer la sélection par catégories"
-#: cps/templates/book_edit.html:84 cps/templates/index.xml:82
-#: cps/templates/search_form.html:53 cps/ub.py:88 cps/web.py:884 cps/web.py:894
+#: cps/templates/book_edit.html:84 cps/templates/book_table.html:51
+#: cps/templates/index.xml:82 cps/templates/search_form.html:53 cps/ub.py:95
+#: cps/web.py:1104 cps/web.py:1114
msgid "Series"
msgstr "Séries"
-#: cps/ub.py:90
+#: cps/ub.py:97
msgid "Show series selection"
msgstr "Montrer la sélection par séries"
-#: cps/templates/index.xml:61 cps/ub.py:91
+#: cps/templates/book_table.html:49 cps/templates/index.xml:61 cps/ub.py:98
msgid "Authors"
msgstr "Auteurs"
-#: cps/ub.py:93
+#: cps/ub.py:100
msgid "Show author selection"
msgstr "Montrer la sélection par auteur"
-#: cps/templates/index.xml:68 cps/ub.py:95 cps/web.py:867
+#: cps/templates/book_table.html:55 cps/templates/index.xml:68 cps/ub.py:102
+#: cps/web.py:1083
msgid "Publishers"
msgstr "Éditeurs"
-#: cps/ub.py:97
+#: cps/ub.py:104
msgid "Show publisher selection"
msgstr "Montrer la sélection par éditeur"
-#: cps/templates/index.xml:89 cps/templates/search_form.html:74 cps/ub.py:98
-#: cps/web.py:951
+#: cps/templates/book_table.html:53 cps/templates/index.xml:89
+#: cps/templates/search_form.html:74 cps/ub.py:105 cps/web.py:1179
msgid "Languages"
msgstr "Langues"
-#: cps/ub.py:101
+#: cps/ub.py:108
msgid "Show language selection"
msgstr "Montrer la sélection par langue"
-#: cps/templates/index.xml:96 cps/ub.py:102
+#: cps/templates/index.xml:96 cps/ub.py:109
msgid "Ratings"
msgstr "Notes"
-#: cps/ub.py:104
+#: cps/ub.py:111
msgid "Show ratings selection"
msgstr "Afficher la sélection des évaluations"
-#: cps/templates/index.xml:104 cps/ub.py:105
+#: cps/templates/index.xml:104 cps/ub.py:112
msgid "File formats"
msgstr "Formats de fichier"
-#: cps/ub.py:107
+#: cps/ub.py:114
msgid "Show file formats selection"
msgstr "Afficher la sélection des formats de fichiers"
-#: cps/ub.py:109 cps/web.py:1247
+#: cps/ub.py:116 cps/web.py:923
msgid "Archived Books"
msgstr "Livres archivés"
-#: cps/ub.py:111
+#: cps/ub.py:118
msgid "Show archived books"
msgstr "Afficher les livres archivés"
-#: cps/updater.py:294 cps/updater.py:305 cps/updater.py:406 cps/updater.py:420
+#: cps/ub.py:120
+msgid "Books List"
+msgstr ""
+
+#: cps/ub.py:122
+msgid "Show Books List"
+msgstr ""
+
+#: cps/updater.py:295 cps/updater.py:306 cps/updater.py:407 cps/updater.py:421
msgid "Unexpected data while reading update information"
msgstr "Données inattendues lors de la lecture des informations de mise à jour"
-#: cps/updater.py:301 cps/updater.py:412
+#: cps/updater.py:302 cps/updater.py:413
msgid "No update available. You already have the latest version installed"
msgstr "Aucune mise à jour disponible. Vous avez déjà la dernière version installée"
-#: cps/updater.py:333
+#: cps/updater.py:334
msgid "A new update is available. Click on the button below to update to the latest version."
msgstr "Une nouvelle mise à jour est disponible. Cliquez sur le bouton ci-dessous pour charger la dernière version."
-#: cps/updater.py:385
+#: cps/updater.py:386
msgid "Could not fetch update information"
msgstr "Impossible d'extraire les informations de mise à jour"
-#: cps/updater.py:399
+#: cps/updater.py:400
msgid "No release information available"
msgstr "Aucune information concernant cette version n’est disponible"
-#: cps/updater.py:456 cps/updater.py:467 cps/updater.py:486
+#: cps/updater.py:457 cps/updater.py:468 cps/updater.py:487
#, python-format
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr "Une nouvelle mise à jour est disponible. Cliquez sur le bouton ci-dessous pour charger la version: %(version)s"
-#: cps/updater.py:477
+#: cps/updater.py:478
msgid "Click on the button below to update to the latest stable version."
msgstr "Téléchargez la dernière version en cliquant sur le bouton ci-dessous."
-#: cps/web.py:320
+#: cps/web.py:316
#, python-format
msgid "Error: %(ldaperror)s"
msgstr "Erreur : %(ldaperror)s"
-#: cps/web.py:324
+#: cps/web.py:320
msgid "Error: No user returned in response of LDAP server"
msgstr "Erreur : Aucun utilisateur renvoyé dans la réponse LDAP du serveur"
-#: cps/web.py:372
+#: cps/web.py:368
msgid "Failed to Create at Least One LDAP User"
msgstr "Impossible de créer au moins un utilisateur LDAP"
-#: cps/web.py:375
+#: cps/web.py:371
msgid "At Least One LDAP User Not Found in Database"
msgstr "Au moins un utilisateur LDAP n'a pas été trouvé dans la base de données"
-#: cps/web.py:377
+#: cps/web.py:373
msgid "User Successfully Imported"
msgstr "L'utilisateur a été importé avec succès"
-#: cps/web.py:623
-msgid "Recently Added Books"
-msgstr "Ajouts récents de livres"
-
-#: cps/templates/index.html:5 cps/web.py:661
+#: cps/templates/index.html:5 cps/web.py:643
msgid "Discover (Random Books)"
msgstr "Découvrir (Livres au hasard)"
-#: cps/web.py:689
+#: cps/web.py:682
msgid "Books"
msgstr "Livres"
-#: cps/web.py:716
+#: cps/web.py:709
msgid "Hot Books (Most Downloaded)"
msgstr "Livres populaires (les plus téléchargés)"
-#: cps/web.py:729
+#: cps/web.py:744
+#, python-format
+msgid "Downloaded books by %(user)s"
+msgstr ""
+
+#: cps/web.py:758
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr "Erreur d'ouverture du livre numérique. Le fichier n'existe pas ou n'est pas accessible"
-#: cps/web.py:743
+#: cps/web.py:772
#, python-format
msgid "Author: %(name)s"
msgstr "Auteur : %(name)s"
-#: cps/web.py:757
+#: cps/web.py:786
#, python-format
msgid "Publisher: %(name)s"
msgstr "Éditeur : '%(name)s'"
-#: cps/web.py:770
+#: cps/web.py:799
#, python-format
msgid "Series: %(serie)s"
msgstr "Séries : %(serie)s"
-#: cps/web.py:783
+#: cps/web.py:812
#, python-format
msgid "Rating: %(rating)s stars"
msgstr "Évaluation : %(rating)s étoiles"
-#: cps/web.py:796
+#: cps/web.py:825
#, python-format
msgid "File format: %(format)s"
msgstr "Format de fichier : %(format)s"
-#: cps/web.py:810
+#: cps/web.py:839
#, python-format
msgid "Category: %(name)s"
msgstr "Catégorie : %(name)s"
-#: cps/web.py:829
+#: cps/web.py:858
#, python-format
msgid "Language: %(name)s"
msgstr "Langue : %(name)s"
-#: cps/web.py:908
-msgid "Ratings list"
-msgstr "Liste des évaluations"
-
-#: cps/web.py:923
-msgid "File formats list"
-msgstr "Liste de formats de fichiers"
-
-#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:982
-msgid "Tasks"
-msgstr "Tâches"
-
-#: cps/templates/book_edit.html:240 cps/templates/feed.xml:33
-#: cps/templates/layout.html:45 cps/templates/layout.html:48
-#: cps/templates/search_form.html:174 cps/web.py:1008 cps/web.py:1013
-msgid "Search"
-msgstr "Chercher"
-
-#: cps/web.py:1064
-msgid "Published after "
-msgstr "Publié après le "
-
-#: cps/web.py:1071
-msgid "Published before "
-msgstr "Publié avant le "
-
-#: cps/web.py:1085
-#, python-format
-msgid "Rating <= %(rating)s"
-msgstr "Évaluation <= %(rating)s"
-
-#: cps/web.py:1087
-#, python-format
-msgid "Rating >= %(rating)s"
-msgstr "Évaluation >= %(rating)s"
-
-#: cps/web.py:1156 cps/web.py:1181
-msgid "search"
-msgstr "recherche"
-
-#: cps/web.py:1211
+#: cps/web.py:887
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr "La colonne personnalisée No.%(column)d n'existe pas dans la base de données calibre"
-#: cps/web.py:1305
+#: cps/web.py:954 cps/web.py:1395
+msgid "search"
+msgstr "recherche"
+
+#: cps/templates/book_edit.html:213 cps/templates/feed.xml:33
+#: cps/templates/layout.html:45 cps/templates/layout.html:48
+#: cps/templates/search_form.html:174 cps/web.py:966 cps/web.py:1235
+msgid "Search"
+msgstr "Chercher"
+
+#: cps/web.py:994
+msgid "Books list"
+msgstr ""
+
+#: cps/web.py:1132
+msgid "Ratings list"
+msgstr "Liste des évaluations"
+
+#: cps/web.py:1151
+msgid "File formats list"
+msgstr "Liste de formats de fichiers"
+
+#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:1214
+msgid "Tasks"
+msgstr "Tâches"
+
+#: cps/web.py:1292
+msgid "Published after "
+msgstr "Publié après le "
+
+#: cps/web.py:1299
+msgid "Published before "
+msgstr "Publié avant le "
+
+#: cps/web.py:1313
+#, python-format
+msgid "Rating <= %(rating)s"
+msgstr "Évaluation <= %(rating)s"
+
+#: cps/web.py:1315
+#, python-format
+msgid "Rating >= %(rating)s"
+msgstr "Évaluation >= %(rating)s"
+
+#: cps/web.py:1460
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "Le livre a été mis en file de traitement avec succès pour un envoi vers %(kindlemail)s"
-#: cps/web.py:1309
+#: cps/web.py:1464
#, python-format
msgid "Oops! There was an error sending this book: %(res)s"
msgstr "Il y a eu une erreur en envoyant ce livre : %(res)s"
-#: cps/web.py:1311
+#: cps/web.py:1466
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr "Veuillez mettre à jour votre profil avec une adresse de courriel Kindle valide."
-#: cps/web.py:1328
+#: cps/web.py:1483
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr "Le serveur de courriel n'est pas configuré, veuillez contacter votre administrateur!"
-#: cps/web.py:1329 cps/web.py:1339 cps/web.py:1363 cps/web.py:1367
-#: cps/web.py:1372 cps/web.py:1376
+#: cps/web.py:1484 cps/web.py:1494 cps/web.py:1518 cps/web.py:1522
+#: cps/web.py:1527 cps/web.py:1531
msgid "register"
msgstr "s’enregistrer"
-#: cps/web.py:1365
+#: cps/web.py:1520
msgid "Your e-mail is not allowed to register"
msgstr "Votre adresse de courriel n’est pas autorisé pour une inscription"
-#: cps/web.py:1368
+#: cps/web.py:1523
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Le courriel de confirmation a été envoyé à votre adresse."
-#: cps/web.py:1371
+#: cps/web.py:1526
msgid "This username or e-mail address is already in use."
msgstr "Ce nom d’utilisateur ou cette adresse de courriel sont déjà utilisés."
-#: cps/web.py:1388
+#: cps/web.py:1543
msgid "Cannot activate LDAP authentication"
msgstr "Impossible d’activer l’authentification LDAP"
-#: cps/web.py:1405
+#: cps/web.py:1560
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr "Connexion de secours comme: '%(nickname)s', le serveur LDAP est indisponible, ou l'utilisateur est inconnu"
-#: cps/web.py:1411
+#: cps/web.py:1566
#, python-format
msgid "Could not login: %(message)s"
msgstr "Impossible de se connecter: %(message)s"
-#: cps/web.py:1415 cps/web.py:1439
+#: cps/web.py:1570 cps/web.py:1594
msgid "Wrong Username or Password"
msgstr "Mauvais nom d'utilisateur ou mot de passe"
-#: cps/web.py:1422
+#: cps/web.py:1577
msgid "New Password was send to your email address"
msgstr "Le nouveau mot de passe a été envoyé vers votre adresse de courriel"
-#: cps/web.py:1428
+#: cps/web.py:1583
msgid "Please enter valid username to reset password"
msgstr "Veuillez entrer un nom d'utilisateur valide pour réinitialiser le mot de passe"
-#: cps/web.py:1434
+#: cps/web.py:1589
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr "Vous êtes maintenant connecté en tant que : ‘%(nickname)s’"
-#: cps/web.py:1445 cps/web.py:1472
+#: cps/web.py:1600 cps/web.py:1627
msgid "login"
msgstr "connexion"
-#: cps/web.py:1484 cps/web.py:1518
+#: cps/web.py:1639 cps/web.py:1673
msgid "Token not found"
msgstr "Jeton non trouvé"
-#: cps/web.py:1493 cps/web.py:1526
+#: cps/web.py:1648 cps/web.py:1681
msgid "Token has expired"
msgstr "Jeton expiré"
-#: cps/web.py:1502
+#: cps/web.py:1657
msgid "Success! Please return to your device"
msgstr "Réussite! Merci de vous tourner vers votre appareil"
-#: cps/web.py:1583 cps/web.py:1628 cps/web.py:1634
+#: cps/web.py:1741 cps/web.py:1797
#, python-format
msgid "%(name)s's profile"
msgstr "Profil de %(name)s"
-#: cps/web.py:1630
+#: cps/web.py:1777
msgid "Profile updated"
msgstr "Profil mis à jour"
-#: cps/web.py:1659 cps/web.py:1662 cps/web.py:1665 cps/web.py:1672
-#: cps/web.py:1677
+#: cps/web.py:1824 cps/web.py:1827 cps/web.py:1830 cps/web.py:1837
+#: cps/web.py:1842
msgid "Read a Book"
msgstr "Lire un livre"
-#: cps/worker.py:314
+#: cps/tasks/convert.py:103
#, python-format
msgid "Calibre ebook-convert %(tool)s not found"
msgstr "ebook-convert calibre %(tool)s non trouvé"
-#: cps/worker.py:374
+#: cps/tasks/convert.py:127
#, python-format
-msgid "Ebook-converter failed: %(error)s"
-msgstr "La commande ebook-convert a échouée : %(error)s"
+msgid "%(format)s format not found on disk"
+msgstr ""
-#: cps/worker.py:407
+#: cps/tasks/convert.py:130
+msgid "Ebook converter failed with unknown error"
+msgstr ""
+
+#: cps/tasks/convert.py:140
#, python-format
msgid "Kepubify-converter failed: %(error)s"
msgstr "La commande Kepubify-converter a échouée : %(error)s"
-#: cps/worker.py:431
+#: cps/tasks/convert.py:164
#, python-format
msgid "Converted file not found or more than one file in folder %(folder)s"
msgstr "Fichier converti non trouvé ou plus d'un fichier dans le chemin %(folder)s"
+#: cps/tasks/convert.py:187
+#, python-format
+msgid "Ebook-converter failed: %(error)s"
+msgstr "La commande ebook-convert a échouée : %(error)s"
+
+#: cps/tasks/convert.py:212
+#, python-format
+msgid "Calibre failed with error: %(error)s"
+msgstr ""
+
#: cps/templates/admin.html:9
msgid "Users"
msgstr "Liste des utilisateurs"
@@ -1189,8 +1201,9 @@ msgid "Edit"
msgstr "Éditer"
#: cps/templates/admin.html:22 cps/templates/book_edit.html:16
-#: cps/templates/book_edit.html:221 cps/templates/email_edit.html:100
-#: cps/templates/user_edit.html:66 cps/templates/user_edit.html:179
+#: cps/templates/book_table.html:57 cps/templates/email_edit.html:100
+#: cps/templates/modal_dialogs.html:63 cps/templates/user_edit.html:66
+#: cps/templates/user_edit.html:167
msgid "Delete"
msgstr "Supprimer"
@@ -1340,11 +1353,11 @@ msgid "OK"
msgstr "OK"
#: cps/templates/admin.html:183 cps/templates/admin.html:197
-#: cps/templates/book_edit.html:192 cps/templates/book_edit.html:222
+#: cps/templates/book_edit.html:192 cps/templates/book_table.html:84
#: cps/templates/config_edit.html:391 cps/templates/config_view_edit.html:151
#: cps/templates/email_edit.html:47 cps/templates/email_edit.html:101
-#: cps/templates/shelf.html:73 cps/templates/shelf_edit.html:19
-#: cps/templates/user_edit.html:139
+#: cps/templates/modal_dialogs.html:64 cps/templates/shelf.html:73
+#: cps/templates/shelf_edit.html:19 cps/templates/user_edit.html:139
msgid "Cancel"
msgstr "Annuler"
@@ -1364,15 +1377,14 @@ msgstr "via"
msgid "In Library"
msgstr "Dans la librairie"
-#: cps/templates/author.html:34 cps/templates/book_table.html:14
-#: cps/templates/grid.html:14 cps/templates/list.html:14
-#: cps/templates/search.html:38
+#: cps/templates/author.html:34 cps/templates/grid.html:14
+#: cps/templates/list.html:14
msgid "All"
msgstr "Tout"
#: cps/templates/author.html:58 cps/templates/author.html:110
#: cps/templates/discover.html:27 cps/templates/index.html:26
-#: cps/templates/index.html:89 cps/templates/search.html:64
+#: cps/templates/index.html:89 cps/templates/search.html:60
#: cps/templates/shelf.html:36
msgid "reduce"
msgstr "réduire"
@@ -1413,13 +1425,13 @@ msgstr "Convertir le livre"
msgid "Book Title"
msgstr "Titre du livre"
-#: cps/templates/book_edit.html:57 cps/templates/book_edit.html:284
-#: cps/templates/book_edit.html:302 cps/templates/search_form.html:10
+#: cps/templates/book_edit.html:57 cps/templates/book_edit.html:257
+#: cps/templates/book_edit.html:275 cps/templates/search_form.html:10
msgid "Author"
msgstr "Auteur"
-#: cps/templates/book_edit.html:61 cps/templates/book_edit.html:289
-#: cps/templates/book_edit.html:304 cps/templates/search_form.html:126
+#: cps/templates/book_edit.html:61 cps/templates/book_edit.html:262
+#: cps/templates/book_edit.html:277 cps/templates/search_form.html:126
msgid "Description"
msgstr "Description"
@@ -1427,15 +1439,15 @@ msgstr "Description"
msgid "Identifiers"
msgstr "Identifiants"
-#: cps/templates/book_edit.html:70 cps/templates/book_edit.html:313
+#: cps/templates/book_edit.html:70 cps/templates/book_edit.html:286
msgid "Identifier Type"
msgstr "Type d'identifiant"
-#: cps/templates/book_edit.html:71 cps/templates/book_edit.html:314
+#: cps/templates/book_edit.html:71 cps/templates/book_edit.html:287
msgid "Identifier Value"
msgstr "Valeur d'identifiant"
-#: cps/templates/book_edit.html:72 cps/templates/book_edit.html:315
+#: cps/templates/book_edit.html:72 cps/templates/book_edit.html:288
msgid "Remove"
msgstr "Supprimer"
@@ -1467,8 +1479,8 @@ msgstr "Téléverser la couverture depuis un fichier en local"
msgid "Published Date"
msgstr "Date de publication"
-#: cps/templates/book_edit.html:116 cps/templates/book_edit.html:286
-#: cps/templates/book_edit.html:303 cps/templates/detail.html:156
+#: cps/templates/book_edit.html:116 cps/templates/book_edit.html:259
+#: cps/templates/book_edit.html:276 cps/templates/detail.html:156
#: cps/templates/search_form.html:14
msgid "Publisher"
msgstr "Éditeur"
@@ -1494,7 +1506,7 @@ msgstr "Format du fichier téléversé"
msgid "View Book on Save"
msgstr "Voir le livre lors de la sauvegarde"
-#: cps/templates/book_edit.html:190 cps/templates/book_edit.html:234
+#: cps/templates/book_edit.html:190 cps/templates/book_edit.html:207
msgid "Fetch Metadata"
msgstr "Obtenir les métadonnées"
@@ -1504,60 +1516,133 @@ msgstr "Obtenir les métadonnées"
msgid "Save"
msgstr "Sauvegarder"
-#: cps/templates/book_edit.html:205
-msgid "Are you really sure?"
-msgstr "Êtes-vous vraiment sûr?"
-
-#: cps/templates/book_edit.html:209
-msgid "This book will be permanently erased from database"
-msgstr "Le livre va être supprimé définitivement de la base de données"
-
#: cps/templates/book_edit.html:210
-msgid "and hard disk"
-msgstr "et du disque dur"
-
-#: cps/templates/book_edit.html:214
-msgid "Important Kobo Note: deleted books will remain on any paired Kobo device."
-msgstr "Note Kobo importante: les livres supprimés vont rester sur l'appareil Kobo appairé."
-
-#: cps/templates/book_edit.html:215
-msgid "Books must first be archived and the device synced before a book can safely be deleted."
-msgstr "Les livres doivent d'abord être archivés et l'appareil synchronisé avant qu'un livre puisse être supprimé en tout sécurité."
-
-#: cps/templates/book_edit.html:237
msgid "Keyword"
msgstr "Mot-clé"
-#: cps/templates/book_edit.html:238
+#: cps/templates/book_edit.html:211
msgid " Search keyword "
msgstr " Rechercher le mot-clé "
-#: cps/templates/book_edit.html:244
+#: cps/templates/book_edit.html:217
msgid "Click the cover to load metadata to the form"
msgstr "Cliquer sur la couverture pour importer les métadonnées dans le formulaire"
-#: cps/templates/book_edit.html:259 cps/templates/book_edit.html:299
+#: cps/templates/book_edit.html:232 cps/templates/book_edit.html:272
msgid "Loading..."
msgstr "Chargement..."
-#: cps/templates/book_edit.html:264 cps/templates/layout.html:190
-#: cps/templates/layout.html:222 cps/templates/modal_restriction.html:34
-#: cps/templates/user_edit.html:166
+#: cps/templates/book_edit.html:237 cps/templates/layout.html:186
+#: cps/templates/layout.html:217 cps/templates/modal_dialogs.html:34
+#: cps/templates/user_edit.html:154
msgid "Close"
msgstr "Fermer"
-#: cps/templates/book_edit.html:291 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:264 cps/templates/book_edit.html:278
msgid "Source"
msgstr "Source"
-#: cps/templates/book_edit.html:300
+#: cps/templates/book_edit.html:273
msgid "Search error!"
msgstr "Erreur lors de la recherche!"
-#: cps/templates/book_edit.html:301
+#: cps/templates/book_edit.html:274
msgid "No Result(s) found! Please try another keyword."
msgstr "Aucun résultat. Veuillez essayer avec un nouveau mot clé."
+#: cps/templates/book_table.html:10 cps/templates/book_table.html:52
+msgid "This Field is Required"
+msgstr ""
+
+#: cps/templates/book_table.html:23
+msgid "Merge selected books"
+msgstr ""
+
+#: cps/templates/book_table.html:24
+msgid "Remove Selections"
+msgstr ""
+
+#: cps/templates/book_table.html:30
+msgid "Update Title Sort automatically"
+msgstr ""
+
+#: cps/templates/book_table.html:34
+msgid "Update Author Sort automatically"
+msgstr ""
+
+#: cps/templates/book_table.html:46
+msgid "Enter Title"
+msgstr ""
+
+#: cps/templates/book_table.html:46 cps/templates/config_view_edit.html:23
+#: cps/templates/shelf_edit.html:7
+msgid "Title"
+msgstr "Titre"
+
+#: cps/templates/book_table.html:47
+msgid "Enter Title Sort"
+msgstr ""
+
+#: cps/templates/book_table.html:47
+msgid "Title Sort"
+msgstr ""
+
+#: cps/templates/book_table.html:48
+msgid "Enter Author Sort"
+msgstr ""
+
+#: cps/templates/book_table.html:48
+msgid "Author Sort"
+msgstr ""
+
+#: cps/templates/book_table.html:49
+msgid "Enter Authors"
+msgstr ""
+
+#: cps/templates/book_table.html:50
+msgid "Enter Categories"
+msgstr ""
+
+#: cps/templates/book_table.html:51
+msgid "Enter Series"
+msgstr ""
+
+#: cps/templates/book_table.html:52
+msgid "Enter title"
+msgstr ""
+
+#: cps/templates/book_table.html:52
+msgid "Series Index"
+msgstr ""
+
+#: cps/templates/book_table.html:53
+msgid "Enter Languages"
+msgstr ""
+
+#: cps/templates/book_table.html:54
+msgid "Publishing Date"
+msgstr ""
+
+#: cps/templates/book_table.html:55
+msgid "Enter Publishers"
+msgstr ""
+
+#: cps/templates/book_table.html:70 cps/templates/modal_dialogs.html:46
+msgid "Are you really sure?"
+msgstr "Êtes-vous vraiment sûr?"
+
+#: cps/templates/book_table.html:74
+msgid "Books with Title will be merged from:"
+msgstr ""
+
+#: cps/templates/book_table.html:78
+msgid "Into Book with Title:"
+msgstr ""
+
+#: cps/templates/book_table.html:83
+msgid "Merge"
+msgstr ""
+
#: cps/templates/config_edit.html:12
msgid "Library Configuration"
msgstr "Configuration de la Bibliothèque"
@@ -1847,10 +1932,6 @@ msgstr "Connexion"
msgid "View Configuration"
msgstr "Configuration du mode d’affichage"
-#: cps/templates/config_view_edit.html:23 cps/templates/shelf_edit.html:7
-msgid "Title"
-msgstr "Titre"
-
#: cps/templates/config_view_edit.html:31
msgid "No. of Random Books to Display"
msgstr "Nombre de livres choisis au hasard à afficher"
@@ -1859,7 +1940,7 @@ msgstr "Nombre de livres choisis au hasard à afficher"
msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)"
msgstr "Nombre d’auteurs à afficher avant de masquer (0=désactiver le masquage)"
-#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:112
+#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:117
msgid "Theme"
msgstr "Thème"
@@ -1993,7 +2074,7 @@ msgstr "Ajouter à l'étagère"
#: cps/templates/detail.html:253 cps/templates/detail.html:270
#: cps/templates/feed.xml:79 cps/templates/layout.html:137
-#: cps/templates/layout.html:141 cps/templates/search.html:20
+#: cps/templates/search.html:20
msgid "(Public)"
msgstr "(Public)"
@@ -2045,7 +2126,7 @@ msgstr "Domaines refusés (Liste noire)"
msgid "Are you sure you want to delete this domain?"
msgstr "Souhaitez-vous vraiment supprimer cette règle de domaine ?"
-#: cps/templates/feed.xml:21 cps/templates/layout.html:174
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr "Suivant"
@@ -2134,7 +2215,7 @@ msgid "Home"
msgstr "Accueil"
#: cps/templates/layout.html:29 cps/templates/shelf_order.html:32
-#: cps/templates/user_edit.html:180
+#: cps/templates/user_edit.html:168
msgid "Back"
msgstr "Retour"
@@ -2151,7 +2232,7 @@ msgid "Advanced Search"
msgstr "Recherche avancée"
#: cps/templates/layout.html:77 cps/templates/read.html:71
-#: cps/templates/readcbr.html:83 cps/templates/readcbr.html:107
+#: cps/templates/readcbr.html:88 cps/templates/readcbr.html:112
msgid "Settings"
msgstr "Paramètres"
@@ -2167,7 +2248,7 @@ msgstr "Déconnexion"
msgid "Register"
msgstr "Créer un compte"
-#: cps/templates/layout.html:117 cps/templates/layout.html:221
+#: cps/templates/layout.html:117 cps/templates/layout.html:216
msgid "Uploading..."
msgstr "Téléversement en cours..."
@@ -2179,27 +2260,23 @@ msgstr "Veuillez ne pas rafraîchir la page"
msgid "Browse"
msgstr "Explorer"
-#: cps/templates/layout.html:139
-msgid "Your Shelves"
-msgstr "Vos étagères"
-
-#: cps/templates/layout.html:145 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr "À propos"
-#: cps/templates/layout.html:159
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr "Précédent"
-#: cps/templates/layout.html:186
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr "Détails du livre"
-#: cps/templates/layout.html:220
+#: cps/templates/layout.html:215
msgid "Upload done, processing, please wait..."
msgstr "Téléversement terminé, traitement en cours, veuillez patienter…."
-#: cps/templates/layout.html:223
+#: cps/templates/layout.html:218
msgid "Error"
msgstr "Erreur"
@@ -2231,30 +2308,50 @@ msgstr "Le flux de sortie ne peut pas être affiché"
msgid "Show Access Log: "
msgstr "Afficher le journal d'accès : "
-#: cps/templates/modal_restriction.html:6
+#: cps/templates/modal_dialogs.html:6
msgid "Select Allowed/Denied Tags"
msgstr "Sélectionner les étiquettes autorisées/refusées"
-#: cps/templates/modal_restriction.html:7
+#: cps/templates/modal_dialogs.html:7
msgid "Select Allowed/Denied Custom Column Values"
msgstr "Sélectionner les colonnes personnalisées autorisées/refusées"
-#: cps/templates/modal_restriction.html:8
+#: cps/templates/modal_dialogs.html:8
msgid "Select Allowed/Denied Tags of User"
msgstr "Sélectionner les étiquettes d'utilisateur autorisées/refusées"
-#: cps/templates/modal_restriction.html:9
+#: cps/templates/modal_dialogs.html:9
msgid "Select Allowed/Denied Custom Column Values of User"
msgstr "Sélectionner les colonnes personnalisées d'utilisateur autorisées/refusées"
-#: cps/templates/modal_restriction.html:15
+#: cps/templates/modal_dialogs.html:15
msgid "Enter Tag"
msgstr "Saisir une étiquette"
-#: cps/templates/modal_restriction.html:24
+#: cps/templates/modal_dialogs.html:24
msgid "Add View Restriction"
msgstr "Ajouter une restriction de visualisation"
+#: cps/templates/modal_dialogs.html:50
+msgid "This book format will be permanently erased from database"
+msgstr ""
+
+#: cps/templates/modal_dialogs.html:51
+msgid "This book will be permanently erased from database"
+msgstr "Le livre va être supprimé définitivement de la base de données"
+
+#: cps/templates/modal_dialogs.html:52
+msgid "and hard disk"
+msgstr "et du disque dur"
+
+#: cps/templates/modal_dialogs.html:56
+msgid "Important Kobo Note: deleted books will remain on any paired Kobo device."
+msgstr "Note Kobo importante: les livres supprimés vont rester sur l'appareil Kobo appairé."
+
+#: cps/templates/modal_dialogs.html:57
+msgid "Books must first be archived and the device synced before a book can safely be deleted."
+msgstr "Les livres doivent d'abord être archivés et l'appareil synchronisé avant qu'un livre puisse être supprimé en tout sécurité."
+
#: cps/templates/osd.xml:5
msgid "Calibre-Web eBook Catalog"
msgstr "Catalogue de livres électroniques Calibre-Web"
@@ -2263,99 +2360,99 @@ msgstr "Catalogue de livres électroniques Calibre-Web"
msgid "Reflow text when sidebars are open."
msgstr "Mettre à jour la mise en page du texte quand les bandeaux latéraux sont ouverts."
-#: cps/templates/readcbr.html:88
+#: cps/templates/readcbr.html:93
msgid "Keyboard Shortcuts"
msgstr "Raccourcis clavier"
-#: cps/templates/readcbr.html:91
+#: cps/templates/readcbr.html:96
msgid "Previous Page"
msgstr "Page précédente"
-#: cps/templates/readcbr.html:92
+#: cps/templates/readcbr.html:97
msgid "Next Page"
msgstr "Page suivante"
-#: cps/templates/readcbr.html:93
+#: cps/templates/readcbr.html:98
msgid "Scale to Best"
msgstr "Mise à l’échelle optimale"
-#: cps/templates/readcbr.html:94
+#: cps/templates/readcbr.html:99
msgid "Scale to Width"
msgstr "Mise à l’échelle sur la largeur"
-#: cps/templates/readcbr.html:95
+#: cps/templates/readcbr.html:100
msgid "Scale to Height"
msgstr "Mise à l’échelle sur la hauteur"
-#: cps/templates/readcbr.html:96
+#: cps/templates/readcbr.html:101
msgid "Scale to Native"
msgstr "Mise à l’échelle d’origine"
-#: cps/templates/readcbr.html:97
+#: cps/templates/readcbr.html:102
msgid "Rotate Right"
msgstr "Rotation droite"
-#: cps/templates/readcbr.html:98
+#: cps/templates/readcbr.html:103
msgid "Rotate Left"
msgstr "Rotation gauche"
-#: cps/templates/readcbr.html:99
+#: cps/templates/readcbr.html:104
msgid "Flip Image"
msgstr "Inverser l’image"
-#: cps/templates/readcbr.html:115
+#: cps/templates/readcbr.html:120
msgid "Light"
msgstr "Clair"
-#: cps/templates/readcbr.html:116
+#: cps/templates/readcbr.html:121
msgid "Dark"
msgstr "Sombre"
-#: cps/templates/readcbr.html:121
+#: cps/templates/readcbr.html:126
msgid "Scale"
msgstr "Échelle"
-#: cps/templates/readcbr.html:124
+#: cps/templates/readcbr.html:129
msgid "Best"
msgstr "Optimal"
-#: cps/templates/readcbr.html:125
+#: cps/templates/readcbr.html:130
msgid "Width"
msgstr "Largeur"
-#: cps/templates/readcbr.html:126
+#: cps/templates/readcbr.html:131
msgid "Height"
msgstr "Hauteur"
-#: cps/templates/readcbr.html:127
+#: cps/templates/readcbr.html:132
msgid "Native"
msgstr "Origine"
-#: cps/templates/readcbr.html:132
+#: cps/templates/readcbr.html:137
msgid "Rotate"
msgstr "Rotation"
-#: cps/templates/readcbr.html:143
+#: cps/templates/readcbr.html:148
msgid "Flip"
msgstr "Inverser"
-#: cps/templates/readcbr.html:146
+#: cps/templates/readcbr.html:151
msgid "Horizontal"
msgstr "Horizontal"
-#: cps/templates/readcbr.html:147
+#: cps/templates/readcbr.html:152
msgid "Vertical"
msgstr "Vertical"
-#: cps/templates/readcbr.html:152
+#: cps/templates/readcbr.html:157
msgid "Direction"
msgstr "Direction"
-#: cps/templates/readcbr.html:155
+#: cps/templates/readcbr.html:160
msgid "Left to Right"
msgstr "De gauche à droite"
-#: cps/templates/readcbr.html:156
+#: cps/templates/readcbr.html:161
msgid "Right to Left"
msgstr "De droite à gauche"
@@ -2575,15 +2672,11 @@ msgstr "Ajouter les valeurs de colonnes personnalisées autorisées/refusées"
msgid "Delete User"
msgstr "Supprimer l'utilisateur"
-#: cps/templates/user_edit.html:146
-msgid "Recent Downloads"
-msgstr "Téléchargements récents"
-
-#: cps/templates/user_edit.html:162
+#: cps/templates/user_edit.html:150
msgid "Generate Kobo Auth URL"
msgstr "Générer l'URL d'authentification Kobo"
-#: cps/templates/user_edit.html:178
+#: cps/templates/user_edit.html:166
msgid "Do you really want to delete the Kobo Token?"
msgstr "Voulez-vous vraiment supprimer le jeton Kobo?"
diff --git a/cps/translations/hu/LC_MESSAGES/messages.mo b/cps/translations/hu/LC_MESSAGES/messages.mo
index 4b4682b87350a57dc21d43c4fed6e178809adf51..847209ea4bd28618ec9a0536de4e22ac17c7c25a 100644
GIT binary patch
delta 6402
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
H$nyLLn)p6n
diff --git a/cps/translations/hu/LC_MESSAGES/messages.po b/cps/translations/hu/LC_MESSAGES/messages.po
index 7e0257ac..95f403da 100644
--- a/cps/translations/hu/LC_MESSAGES/messages.po
+++ b/cps/translations/hu/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2020-10-06 21:47+0200\n"
+"POT-Creation-Date: 2020-10-10 11:32+0200\n"
"PO-Revision-Date: 2019-04-06 23:36+0200\n"
"Last-Translator: \n"
"Language: hu\n"
@@ -46,9 +46,9 @@ msgstr ""
msgid "Unknown command"
msgstr ""
-#: cps/admin.py:116 cps/editbooks.py:575 cps/editbooks.py:587
-#: cps/editbooks.py:687 cps/editbooks.py:689 cps/editbooks.py:750
-#: cps/editbooks.py:766 cps/updater.py:509 cps/uploader.py:98
+#: cps/admin.py:116 cps/editbooks.py:612 cps/editbooks.py:624
+#: cps/editbooks.py:724 cps/editbooks.py:726 cps/editbooks.py:787
+#: cps/editbooks.py:803 cps/updater.py:510 cps/uploader.py:98
#: cps/uploader.py:108
msgid "Unknown"
msgstr "Ismeretlen"
@@ -66,12 +66,12 @@ msgid "Calibre-Web configuration updated"
msgstr "A Calibre-Web konfigurációja frissítve."
#: cps/admin.py:435 cps/admin.py:441 cps/admin.py:452 cps/admin.py:463
-#: cps/templates/modal_restriction.html:29
+#: cps/templates/modal_dialogs.html:29
msgid "Deny"
msgstr ""
#: cps/admin.py:437 cps/admin.py:443 cps/admin.py:454 cps/admin.py:465
-#: cps/templates/modal_restriction.html:28
+#: cps/templates/modal_dialogs.html:28
msgid "Allow"
msgstr ""
@@ -139,7 +139,7 @@ msgstr ""
msgid "Basic Configuration"
msgstr "Alapvető beállítások"
-#: cps/admin.py:762 cps/web.py:1338
+#: cps/admin.py:762 cps/web.py:1493
msgid "Please fill out all fields!"
msgstr "Az összes mezőt ki kell tölteni!"
@@ -147,7 +147,7 @@ msgstr "Az összes mezőt ki kell tölteni!"
msgid "Add new user"
msgstr "Új felhasználó hozzáadása"
-#: cps/admin.py:774 cps/web.py:1581
+#: cps/admin.py:774 cps/web.py:1739
msgid "E-mail is not from valid domain"
msgstr "Az e-mail tartománya nem érvényes."
@@ -173,16 +173,16 @@ msgstr ""
msgid "No admin user remaining, can't remove admin role"
msgstr ""
-#: cps/admin.py:853 cps/web.py:1624
+#: cps/admin.py:853 cps/web.py:1781
msgid "Found an existing account for this e-mail address."
msgstr "Már létezik felhasználó ehhez az e-mail címhez."
-#: cps/admin.py:863 cps/admin.py:878 cps/admin.py:989 cps/web.py:1599
+#: cps/admin.py:863 cps/admin.py:878 cps/admin.py:989 cps/web.py:1757
#, python-format
msgid "Edit User %(nick)s"
msgstr " A felhasználó szerkesztése: %(nick)s"
-#: cps/admin.py:869 cps/web.py:1591
+#: cps/admin.py:869 cps/web.py:1750
msgid "This username is already taken"
msgstr ""
@@ -226,11 +226,11 @@ msgstr ""
msgid "Password for user %(user)s reset"
msgstr "A(z) %(user)s felhasználó jelszavának alaphelyzetbe állítása"
-#: cps/admin.py:1003 cps/web.py:1362 cps/web.py:1426
+#: cps/admin.py:1003 cps/web.py:1517 cps/web.py:1581
msgid "An unknown error occurred. Please try again later."
msgstr "Ismeretlen hiba történt. Próbáld újra később!"
-#: cps/admin.py:1006 cps/web.py:1300
+#: cps/admin.py:1006 cps/web.py:1455
msgid "Please configure the SMTP mail settings first..."
msgstr "Először be kell állítani az SMTP levelező beállításokat..."
@@ -271,19 +271,19 @@ msgstr "A frissítés települt, kattints az OK-ra és újra tölt az oldal"
msgid "Update failed:"
msgstr "A frissítés nem sikerült:"
-#: cps/admin.py:1064 cps/updater.py:319 cps/updater.py:520 cps/updater.py:522
+#: cps/admin.py:1064 cps/updater.py:320 cps/updater.py:521 cps/updater.py:523
msgid "HTTP Error"
msgstr "HTTP hiba"
-#: cps/admin.py:1065 cps/updater.py:321 cps/updater.py:524
+#: cps/admin.py:1065 cps/updater.py:322 cps/updater.py:525
msgid "Connection error"
msgstr "Kapcsolódási hiba"
-#: cps/admin.py:1066 cps/updater.py:323 cps/updater.py:526
+#: cps/admin.py:1066 cps/updater.py:324 cps/updater.py:527
msgid "Timeout while establishing connection"
msgstr "Időtúllépés a kapcsolódás során"
-#: cps/admin.py:1067 cps/updater.py:325 cps/updater.py:528
+#: cps/admin.py:1067 cps/updater.py:326 cps/updater.py:529
msgid "General error"
msgstr "Általános hiba"
@@ -299,103 +299,98 @@ msgstr ""
msgid "Execution permissions missing"
msgstr ""
-#: cps/editbooks.py:245
+#: cps/editbooks.py:273 cps/editbooks.py:275
msgid "Book Format Successfully Deleted"
msgstr ""
-#: cps/editbooks.py:248
+#: cps/editbooks.py:282 cps/editbooks.py:284
msgid "Book Successfully Deleted"
msgstr ""
-#: cps/editbooks.py:257 cps/editbooks.py:560 cps/web.py:1647 cps/web.py:1688
-#: cps/web.py:1750
+#: cps/editbooks.py:293 cps/editbooks.py:596 cps/web.py:1812 cps/web.py:1853
+#: cps/web.py:1915
msgid "Error opening eBook. File does not exist or file is not accessible"
msgstr "Hiba az ekönyv megnyitásakor. A fájl nem létezik vagy nem elérhető."
-#: cps/editbooks.py:291
+#: cps/editbooks.py:327
msgid "edit metadata"
msgstr "Metaadatok szerkesztése"
-#: cps/editbooks.py:366
+#: cps/editbooks.py:402
#, python-format
msgid "%(langname)s is not a valid language"
msgstr "A(z) %(langname)s nem érvényes nyelv"
-#: cps/editbooks.py:477 cps/editbooks.py:732
+#: cps/editbooks.py:513 cps/editbooks.py:769
#, python-format
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
msgstr "A(z) \"%(ext)s\" kiterjesztésű fájlok feltöltése nincs engedélyezve ezen a szerveren."
-#: cps/editbooks.py:481 cps/editbooks.py:736
+#: cps/editbooks.py:517 cps/editbooks.py:773
msgid "File to be uploaded must have an extension"
msgstr "A feltöltendő fájlnak kiterjesztéssel kell rendelkeznie!"
-#: cps/editbooks.py:493 cps/editbooks.py:796
+#: cps/editbooks.py:529
#, python-format
msgid "Failed to create path %(path)s (Permission denied)."
msgstr "Nem sikerült létrehozni az elérési utat (engedély megtagadva): %(path)s."
-#: cps/editbooks.py:498
+#: cps/editbooks.py:534
#, python-format
msgid "Failed to store file %(file)s."
msgstr "Nem sikerült elmenteni a %(file)s fájlt."
-#: cps/editbooks.py:516 cps/editbooks.py:887
+#: cps/editbooks.py:552 cps/editbooks.py:904
#, python-format
msgid "Database error: %(error)s."
msgstr ""
-#: cps/editbooks.py:520
+#: cps/editbooks.py:556
#, python-format
msgid "File format %(ext)s added to %(book)s"
msgstr "A(z) %(ext)s fájlformátum hozzáadva a könyvhez: %(book)s."
-#: cps/editbooks.py:636
+#: cps/editbooks.py:673
msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier"
msgstr ""
-#: cps/editbooks.py:673
+#: cps/editbooks.py:710
msgid "Metadata successfully updated"
msgstr "A metaadatok sikeresen frissültek"
-#: cps/editbooks.py:682
+#: cps/editbooks.py:719
msgid "Error editing book, please check logfile for details"
msgstr "Hiba a könyv szerkesztése során, további részletek a naplófájlban."
-#: cps/editbooks.py:744
+#: cps/editbooks.py:781
#, python-format
msgid "File %(filename)s could not saved to temp dir"
msgstr ""
-#: cps/editbooks.py:754
+#: cps/editbooks.py:791
msgid "Uploaded book probably exists in the library, consider to change before upload new: "
msgstr ""
-#: cps/editbooks.py:803
-#, python-format
-msgid "Failed to Move File %(file)s: %(error)s"
-msgstr ""
-
-#: cps/editbooks.py:859
+#: cps/editbooks.py:879
#, python-format
msgid "Failed to Move Cover File %(file)s: %(error)s"
msgstr ""
-#: cps/editbooks.py:873
+#: cps/editbooks.py:890
#, python-format
msgid "File %(file)s uploaded"
msgstr ""
-#: cps/editbooks.py:899
+#: cps/editbooks.py:916
msgid "Source or destination format for conversion missing"
msgstr "Az átalakításhoz hiányzik a forrás- vagy a célformátum!"
-#: cps/editbooks.py:907
+#: cps/editbooks.py:924
#, python-format
msgid "Book successfully queued for converting to %(book_format)s"
msgstr "A könyv sikeresen átalakításra lett jelölve a következő formátumra: %(book_format)s"
-#: cps/editbooks.py:911
+#: cps/editbooks.py:928
#, python-format
msgid "There was an error converting this book: %(res)s"
msgstr "Hiba történt a könyv átalakításakor: %(res)s"
@@ -408,136 +403,131 @@ msgstr "A Google Drive beállítása nem fejeződött be, próbáld kikapcsolni
msgid "Callback domain is not verified, please follow steps to verify domain in google developer console"
msgstr "A visszahívási tartomány nem ellenőrzött, kövesd az alábbi lépéseket a tartomány ellenőrzéséhez a Google Developer Console-ban:"
-#: cps/helper.py:77
+#: cps/helper.py:79
#, python-format
msgid "%(format)s format not found for book id: %(book)d"
msgstr "A(z) %(format)s formátum nem található a következő könyvhöz: %(book)d"
-#: cps/helper.py:89
+#: cps/helper.py:85 cps/tasks/convert.py:50
#, python-format
msgid "%(format)s not found on Google Drive: %(fn)s"
msgstr "%(format)s nem található a Google Drive-on: %(fn)s"
-#: cps/helper.py:96 cps/helper.py:224 cps/templates/detail.html:41
-#: cps/templates/detail.html:45
-msgid "Send to Kindle"
-msgstr "Küldés Kindle-re"
-
-#: cps/helper.py:97 cps/helper.py:115 cps/helper.py:226
-msgid "This e-mail has been sent via Calibre-Web."
-msgstr "Ez az e-mail a Calibre-Web-en keresztül lett küldve."
-
-#: cps/helper.py:108
+#: cps/helper.py:90
#, python-format
msgid "%(format)s not found: %(fn)s"
msgstr "%(format)s nem található: %(fn)s"
-#: cps/helper.py:113
+#: cps/helper.py:95 cps/helper.py:228 cps/templates/detail.html:41
+#: cps/templates/detail.html:45
+msgid "Send to Kindle"
+msgstr "Küldés Kindle-re"
+
+#: cps/helper.py:96 cps/helper.py:112 cps/helper.py:230
+msgid "This e-mail has been sent via Calibre-Web."
+msgstr "Ez az e-mail a Calibre-Web-en keresztül lett küldve."
+
+#: cps/helper.py:110
msgid "Calibre-Web test e-mail"
msgstr "Calibre-Web teszt e-mail"
-#: cps/helper.py:115
+#: cps/helper.py:111
msgid "Test e-mail"
msgstr "Teszt e-mail"
-#: cps/helper.py:130
+#: cps/helper.py:128
msgid "Get Started with Calibre-Web"
msgstr "Kezdő lépések a Calibre-Web-bel"
-#: cps/helper.py:132
+#: cps/helper.py:133
#, python-format
msgid "Registration e-mail for user: %(name)s"
msgstr "Regisztrációs e-mail a következő felhasználóhoz: %(name)s"
-#: cps/helper.py:149 cps/helper.py:153 cps/helper.py:157 cps/helper.py:166
-#: cps/helper.py:170 cps/helper.py:174
+#: cps/helper.py:153 cps/helper.py:157 cps/helper.py:161 cps/helper.py:170
+#: cps/helper.py:174 cps/helper.py:178
#, python-format
msgid "Send %(format)s to Kindle"
msgstr "%(format)s küldése Kindle-re"
-#: cps/helper.py:179 cps/helper.py:185
+#: cps/helper.py:183 cps/helper.py:189
#, python-format
msgid "Convert %(orig)s to %(format)s and send to Kindle"
msgstr "%(orig)s konvertálása %(format)s-ra és küldés Kindle-re"
-#: cps/helper.py:226
+#: cps/helper.py:230
#, python-format
msgid "E-mail: %(book)s"
msgstr "E-mail: %(book)s"
-#: cps/helper.py:228
+#: cps/helper.py:232
msgid "The requested file could not be read. Maybe wrong permissions?"
msgstr "A kért fájl nem olvasható. Esetleg jogosultsági probléma lenne?"
-#: cps/helper.py:325
+#: cps/helper.py:329
#, python-format
msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s"
msgstr ""
-#: cps/helper.py:331
+#: cps/helper.py:335
#, python-format
msgid "Deleting book %(id)s failed: %(message)s"
msgstr ""
-#: cps/helper.py:341
+#: cps/helper.py:345
#, python-format
msgid "Deleting book %(id)s, book path not valid: %(path)s"
msgstr ""
-#: cps/helper.py:376
+#: cps/helper.py:397
#, python-format
msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr "A cím átnevezése \"%(src)s\"-ról \"%(dest)s\"-ra nem sikerült a következő hiba miatt: %(error)s"
-#: cps/helper.py:386
-#, python-format
-msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
-msgstr "A szerző átnevezése \"%(src)s\"-ról \"%(dest)s\"-ra nem sikerült a következő hiba miatt: %(error)s"
-
-#: cps/helper.py:402
+#: cps/helper.py:410
#, python-format
msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s"
msgstr "\"%(src)s\" fájl átnevezése \"%(dest)s\"-re nem sikerült a következő hiba miatt: %(error)s"
-#: cps/helper.py:428 cps/helper.py:438 cps/helper.py:446
+#: cps/helper.py:435 cps/helper.py:445 cps/helper.py:453
#, python-format
msgid "File %(file)s not found on Google Drive"
msgstr "A \"%(file)s\" fájl nem található a Google Drive-on"
-#: cps/helper.py:467
+#: cps/helper.py:474
#, python-format
msgid "Book path %(path)s not found on Google Drive"
msgstr "A könyv elérési útja (\"%(path)s\") nem található a Google Drive-on"
-#: cps/helper.py:576
+#: cps/helper.py:583
msgid "Error Downloading Cover"
msgstr ""
-#: cps/helper.py:579
+#: cps/helper.py:586
msgid "Cover Format Error"
msgstr ""
-#: cps/helper.py:594
+#: cps/helper.py:601
msgid "Failed to create path for cover"
msgstr ""
-#: cps/helper.py:599
+#: cps/helper.py:606
msgid "Cover-file is not a valid image file, or could not be stored"
msgstr ""
-#: cps/helper.py:610
+#: cps/helper.py:617
msgid "Only jpg/jpeg/png/webp files are supported as coverfile"
msgstr ""
-#: cps/helper.py:624
+#: cps/helper.py:631
msgid "Only jpg/jpeg files are supported as coverfile"
msgstr ""
-#: cps/helper.py:672
+#: cps/helper.py:679
msgid "Unrar binary file not found"
msgstr ""
-#: cps/helper.py:686
+#: cps/helper.py:693
msgid "Error excecuting UnRar"
msgstr ""
@@ -561,22 +551,6 @@ msgstr "Végrehajtva"
msgid "Unknown Status"
msgstr "Ismeretlen állapot"
-#: cps/helper.py:755
-msgid "E-mail: "
-msgstr "E-mail cím: "
-
-#: cps/helper.py:757 cps/helper.py:761
-msgid "Convert: "
-msgstr "Konvertálás:"
-
-#: cps/helper.py:759
-msgid "Upload: "
-msgstr "Feltöltés:"
-
-#: cps/helper.py:763
-msgid "Unknown Task: "
-msgstr "Ismeretlen feladat:"
-
#: cps/kobo_auth.py:130
msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device"
msgstr ""
@@ -606,7 +580,7 @@ msgstr ""
msgid "Failed to fetch user info from Google."
msgstr ""
-#: cps/oauth_bb.py:225 cps/web.py:1398 cps/web.py:1540
+#: cps/oauth_bb.py:225 cps/web.py:1553 cps/web.py:1695
#, python-format
msgid "you are now logged in as: '%(nickname)s'"
msgstr "Be vagy jelentkezve mint: %(nickname)s"
@@ -711,7 +685,7 @@ msgstr "A következő polc létre lett hozva: %(title)s"
msgid "There was an error"
msgstr "Hiba történt"
-#: cps/shelf.py:264 cps/shelf.py:266 cps/templates/layout.html:144
+#: cps/shelf.py:264 cps/shelf.py:266 cps/templates/layout.html:140
msgid "Create a Shelf"
msgstr "Polc készítése"
@@ -742,388 +716,426 @@ msgstr ""
msgid "Change order of Shelf: '%(name)s'"
msgstr "A következő polc átrendezése: %(name)s"
-#: cps/ub.py:65
+#: cps/ub.py:68
msgid "Recently Added"
msgstr "Legutóbb hozzáadott"
-#: cps/ub.py:67
+#: cps/ub.py:70
msgid "Show recent books"
msgstr "Legutóbbi könyvek mutatása"
-#: cps/templates/index.xml:17 cps/ub.py:68
+#: cps/templates/index.xml:17 cps/ub.py:71
msgid "Hot Books"
msgstr "Kelendő könyvek"
-#: cps/ub.py:70
+#: cps/ub.py:73
msgid "Show Hot Books"
msgstr "Kelendő könyvek mutatása"
-#: cps/templates/index.xml:24 cps/ub.py:72 cps/web.py:653
+#: cps/ub.py:74
+msgid "Downloaded Books"
+msgstr ""
+
+#: cps/ub.py:76
+msgid "Show Downloaded Books"
+msgstr ""
+
+#: cps/templates/index.xml:24 cps/ub.py:79 cps/web.py:635
msgid "Top Rated Books"
msgstr "Legjobb könyvek"
-#: cps/ub.py:74
+#: cps/ub.py:81
msgid "Show Top Rated Books"
msgstr "Legjobbra értékelt könyvek mutatása"
-#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:75
-#: cps/web.py:1220
+#: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:82
+#: cps/web.py:896
msgid "Read Books"
msgstr "Olvasott könyvek"
-#: cps/ub.py:77
+#: cps/ub.py:84
msgid "Show read and unread"
msgstr "Mutassa az olvasva/olvasatlan állapotot"
-#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:79
-#: cps/web.py:1223
+#: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:86
+#: cps/web.py:899
msgid "Unread Books"
msgstr "Olvasatlan könyvek"
-#: cps/ub.py:81
+#: cps/ub.py:88
msgid "Show unread"
msgstr ""
-#: cps/ub.py:82
+#: cps/ub.py:89
msgid "Discover"
msgstr "Felfedezés"
-#: cps/ub.py:84
+#: cps/ub.py:91
msgid "Show random books"
msgstr "Könyvek találomra mutatása"
-#: cps/templates/index.xml:75 cps/ub.py:85 cps/web.py:968
+#: cps/templates/book_table.html:50 cps/templates/index.xml:75 cps/ub.py:92
+#: cps/web.py:1200
msgid "Categories"
msgstr "Címkék"
-#: cps/ub.py:87
+#: cps/ub.py:94
msgid "Show category selection"
msgstr "Címke választó mutatása"
-#: cps/templates/book_edit.html:84 cps/templates/index.xml:82
-#: cps/templates/search_form.html:53 cps/ub.py:88 cps/web.py:884 cps/web.py:894
+#: cps/templates/book_edit.html:84 cps/templates/book_table.html:51
+#: cps/templates/index.xml:82 cps/templates/search_form.html:53 cps/ub.py:95
+#: cps/web.py:1104 cps/web.py:1114
msgid "Series"
msgstr "Sorozatok"
-#: cps/ub.py:90
+#: cps/ub.py:97
msgid "Show series selection"
msgstr "Sorozat választó mutatása"
-#: cps/templates/index.xml:61 cps/ub.py:91
+#: cps/templates/book_table.html:49 cps/templates/index.xml:61 cps/ub.py:98
msgid "Authors"
msgstr "Szerzők"
-#: cps/ub.py:93
+#: cps/ub.py:100
msgid "Show author selection"
msgstr "Szerző választó mutatása"
-#: cps/templates/index.xml:68 cps/ub.py:95 cps/web.py:867
+#: cps/templates/book_table.html:55 cps/templates/index.xml:68 cps/ub.py:102
+#: cps/web.py:1083
msgid "Publishers"
msgstr "Kiadók"
-#: cps/ub.py:97
+#: cps/ub.py:104
msgid "Show publisher selection"
msgstr "Kiadó választó mutatása"
-#: cps/templates/index.xml:89 cps/templates/search_form.html:74 cps/ub.py:98
-#: cps/web.py:951
+#: cps/templates/book_table.html:53 cps/templates/index.xml:89
+#: cps/templates/search_form.html:74 cps/ub.py:105 cps/web.py:1179
msgid "Languages"
msgstr "Nyelvek"
-#: cps/ub.py:101
+#: cps/ub.py:108
msgid "Show language selection"
msgstr "Nyelv választó mutatása"
-#: cps/templates/index.xml:96 cps/ub.py:102
+#: cps/templates/index.xml:96 cps/ub.py:109
msgid "Ratings"
msgstr ""
-#: cps/ub.py:104
+#: cps/ub.py:111
msgid "Show ratings selection"
msgstr ""
-#: cps/templates/index.xml:104 cps/ub.py:105
+#: cps/templates/index.xml:104 cps/ub.py:112
msgid "File formats"
msgstr ""
-#: cps/ub.py:107
+#: cps/ub.py:114
msgid "Show file formats selection"
msgstr ""
-#: cps/ub.py:109 cps/web.py:1247
+#: cps/ub.py:116 cps/web.py:923
msgid "Archived Books"
msgstr ""
-#: cps/ub.py:111
+#: cps/ub.py:118
msgid "Show archived books"
msgstr ""
-#: cps/updater.py:294 cps/updater.py:305 cps/updater.py:406 cps/updater.py:420
+#: cps/ub.py:120
+msgid "Books List"
+msgstr ""
+
+#: cps/ub.py:122
+msgid "Show Books List"
+msgstr ""
+
+#: cps/updater.py:295 cps/updater.py:306 cps/updater.py:407 cps/updater.py:421
msgid "Unexpected data while reading update information"
msgstr "Ismeretlen adat a frissítési információk olvasásakor"
-#: cps/updater.py:301 cps/updater.py:412
+#: cps/updater.py:302 cps/updater.py:413
msgid "No update available. You already have the latest version installed"
msgstr "Nem érhető el újabb frissítés. Már a legújabb verzió van telepítve."
-#: cps/updater.py:333
+#: cps/updater.py:334
msgid "A new update is available. Click on the button below to update to the latest version."
msgstr "Egy új frissítés érhető el. Kattints a lenti gombra a legújabb verzió frissítésére"
-#: cps/updater.py:385
+#: cps/updater.py:386
msgid "Could not fetch update information"
msgstr "Nem lehetett begyűjteni a frissítési információkat"
-#: cps/updater.py:399
+#: cps/updater.py:400
msgid "No release information available"
msgstr "Nincs információ a kiadásról."
-#: cps/updater.py:456 cps/updater.py:467 cps/updater.py:486
+#: cps/updater.py:457 cps/updater.py:468 cps/updater.py:487
#, python-format
msgid "A new update is available. Click on the button below to update to version: %(version)s"
msgstr "Új frissítés érhető el. Kattints az alábbi gombra a frissítéshez a következő verzióra: %(version)s"
-#: cps/updater.py:477
+#: cps/updater.py:478
msgid "Click on the button below to update to the latest stable version."
msgstr ""
-#: cps/web.py:320
+#: cps/web.py:316
#, python-format
msgid "Error: %(ldaperror)s"
msgstr ""
-#: cps/web.py:324
+#: cps/web.py:320
msgid "Error: No user returned in response of LDAP server"
msgstr ""
-#: cps/web.py:372
+#: cps/web.py:368
msgid "Failed to Create at Least One LDAP User"
msgstr ""
-#: cps/web.py:375
+#: cps/web.py:371
msgid "At Least One LDAP User Not Found in Database"
msgstr ""
-#: cps/web.py:377
+#: cps/web.py:373
msgid "User Successfully Imported"
msgstr ""
-#: cps/web.py:623
-msgid "Recently Added Books"
-msgstr "Legutóbb hozzáadott könyvek"
-
-#: cps/templates/index.html:5 cps/web.py:661
+#: cps/templates/index.html:5 cps/web.py:643
msgid "Discover (Random Books)"
msgstr "Felfedezés (könyvek találomra)"
-#: cps/web.py:689
+#: cps/web.py:682
msgid "Books"
msgstr ""
-#: cps/web.py:716
+#: cps/web.py:709
msgid "Hot Books (Most Downloaded)"
msgstr "Kelendő könyvek (legtöbbet letöltöttek)"
-#: cps/web.py:729
+#: cps/web.py:744
+#, python-format
+msgid "Downloaded books by %(user)s"
+msgstr ""
+
+#: cps/web.py:758
msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible"
msgstr "Hiba történt az e-könyv megnyitásakor. A fájl nem létezik vagy nem érhető el:"
-#: cps/web.py:743
+#: cps/web.py:772
#, python-format
msgid "Author: %(name)s"
msgstr ""
-#: cps/web.py:757
+#: cps/web.py:786
#, python-format
msgid "Publisher: %(name)s"
msgstr "Kiadó: %(name)s"
-#: cps/web.py:770
+#: cps/web.py:799
#, python-format
msgid "Series: %(serie)s"
msgstr "Sorozat: %(serie)s"
-#: cps/web.py:783
+#: cps/web.py:812
#, python-format
msgid "Rating: %(rating)s stars"
msgstr ""
-#: cps/web.py:796
+#: cps/web.py:825
#, python-format
msgid "File format: %(format)s"
msgstr ""
-#: cps/web.py:810
+#: cps/web.py:839
#, python-format
msgid "Category: %(name)s"
msgstr "Címke: %(name)s"
-#: cps/web.py:829
+#: cps/web.py:858
#, python-format
msgid "Language: %(name)s"
msgstr "Nyelv: %(name)s"
-#: cps/web.py:908
-msgid "Ratings list"
-msgstr ""
-
-#: cps/web.py:923
-msgid "File formats list"
-msgstr ""
-
-#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:982
-msgid "Tasks"
-msgstr "Feladatok"
-
-#: cps/templates/book_edit.html:240 cps/templates/feed.xml:33
-#: cps/templates/layout.html:45 cps/templates/layout.html:48
-#: cps/templates/search_form.html:174 cps/web.py:1008 cps/web.py:1013
-msgid "Search"
-msgstr "Keresés"
-
-#: cps/web.py:1064
-msgid "Published after "
-msgstr "Kiadva ezután: "
-
-#: cps/web.py:1071
-msgid "Published before "
-msgstr "Kiadva ezelőtt: "
-
-#: cps/web.py:1085
-#, python-format
-msgid "Rating <= %(rating)s"
-msgstr "Értékelés <= %(rating)s"
-
-#: cps/web.py:1087
-#, python-format
-msgid "Rating >= %(rating)s"
-msgstr "Értékelés <= %(rating)s"
-
-#: cps/web.py:1156 cps/web.py:1181
-msgid "search"
-msgstr "keresés"
-
-#: cps/web.py:1211
+#: cps/web.py:887
#, python-format
msgid "Custom Column No.%(column)d is not existing in calibre database"
msgstr ""
-#: cps/web.py:1305
+#: cps/web.py:954 cps/web.py:1395
+msgid "search"
+msgstr "keresés"
+
+#: cps/templates/book_edit.html:213 cps/templates/feed.xml:33
+#: cps/templates/layout.html:45 cps/templates/layout.html:48
+#: cps/templates/search_form.html:174 cps/web.py:966 cps/web.py:1235
+msgid "Search"
+msgstr "Keresés"
+
+#: cps/web.py:994
+msgid "Books list"
+msgstr ""
+
+#: cps/web.py:1132
+msgid "Ratings list"
+msgstr ""
+
+#: cps/web.py:1151
+msgid "File formats list"
+msgstr ""
+
+#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:1214
+msgid "Tasks"
+msgstr "Feladatok"
+
+#: cps/web.py:1292
+msgid "Published after "
+msgstr "Kiadva ezután: "
+
+#: cps/web.py:1299
+msgid "Published before "
+msgstr "Kiadva ezelőtt: "
+
+#: cps/web.py:1313
+#, python-format
+msgid "Rating <= %(rating)s"
+msgstr "Értékelés <= %(rating)s"
+
+#: cps/web.py:1315
+#, python-format
+msgid "Rating >= %(rating)s"
+msgstr "Értékelés <= %(rating)s"
+
+#: cps/web.py:1460
#, python-format
msgid "Book successfully queued for sending to %(kindlemail)s"
msgstr "A könyv sikeresen küldésre lett jelölve a következő címre: %(kindlemail)s"
-#: cps/web.py:1309
+#: cps/web.py:1464
#, python-format
msgid "Oops! There was an error sending this book: %(res)s"
msgstr "Hiba történt a könyv küldésekor: %(res)s"
-#: cps/web.py:1311
+#: cps/web.py:1466
msgid "Please update your profile with a valid Send to Kindle E-mail Address."
msgstr "Először be kell állítani a kindle e-mail címet..."
-#: cps/web.py:1328
+#: cps/web.py:1483
msgid "E-Mail server is not configured, please contact your administrator!"
msgstr ""
-#: cps/web.py:1329 cps/web.py:1339 cps/web.py:1363 cps/web.py:1367
-#: cps/web.py:1372 cps/web.py:1376
+#: cps/web.py:1484 cps/web.py:1494 cps/web.py:1518 cps/web.py:1522
+#: cps/web.py:1527 cps/web.py:1531
msgid "register"
msgstr "regisztrálás"
-#: cps/web.py:1365
+#: cps/web.py:1520
msgid "Your e-mail is not allowed to register"
msgstr "Nem engedélyezett a megadott e-mail cím bejegyzése"
-#: cps/web.py:1368
+#: cps/web.py:1523
msgid "Confirmation e-mail was send to your e-mail account."
msgstr "Jóváhagyó levél elküldve az email címedre."
-#: cps/web.py:1371
+#: cps/web.py:1526
msgid "This username or e-mail address is already in use."
msgstr "Ez a felhasználónév vagy e-mail cím már használatban van."
-#: cps/web.py:1388
+#: cps/web.py:1543
msgid "Cannot activate LDAP authentication"
msgstr ""
-#: cps/web.py:1405
+#: cps/web.py:1560
#, python-format
msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known"
msgstr ""
-#: cps/web.py:1411
+#: cps/web.py:1566
#, python-format
msgid "Could not login: %(message)s"
msgstr ""
-#: cps/web.py:1415 cps/web.py:1439
+#: cps/web.py:1570 cps/web.py:1594
msgid "Wrong Username or Password"
msgstr "Rossz felhasználó név vagy jelszó!"
-#: cps/web.py:1422
+#: cps/web.py:1577
msgid "New Password was send to your email address"
msgstr ""
-#: cps/web.py:1428
+#: cps/web.py:1583
msgid "Please enter valid username to reset password"
msgstr ""
-#: cps/web.py:1434
+#: cps/web.py:1589
#, python-format
msgid "You are now logged in as: '%(nickname)s'"
msgstr ""
-#: cps/web.py:1445 cps/web.py:1472
+#: cps/web.py:1600 cps/web.py:1627
msgid "login"
msgstr "belépés"
-#: cps/web.py:1484 cps/web.py:1518
+#: cps/web.py:1639 cps/web.py:1673
msgid "Token not found"
msgstr "A token nem található."
-#: cps/web.py:1493 cps/web.py:1526
+#: cps/web.py:1648 cps/web.py:1681
msgid "Token has expired"
msgstr "A token érvényessége lejárt."
-#: cps/web.py:1502
+#: cps/web.py:1657
msgid "Success! Please return to your device"
msgstr "Sikerült! Újra használható az eszköz."
-#: cps/web.py:1583 cps/web.py:1628 cps/web.py:1634
+#: cps/web.py:1741 cps/web.py:1797
#, python-format
msgid "%(name)s's profile"
msgstr "%(name)s profilja"
-#: cps/web.py:1630
+#: cps/web.py:1777
msgid "Profile updated"
msgstr "A profil frissítve."
-#: cps/web.py:1659 cps/web.py:1662 cps/web.py:1665 cps/web.py:1672
-#: cps/web.py:1677
+#: cps/web.py:1824 cps/web.py:1827 cps/web.py:1830 cps/web.py:1837
+#: cps/web.py:1842
msgid "Read a Book"
msgstr "Egy olvasott könyv"
-#: cps/worker.py:314
+#: cps/tasks/convert.py:103
#, python-format
msgid "Calibre ebook-convert %(tool)s not found"
msgstr ""
-#: cps/worker.py:374
+#: cps/tasks/convert.py:127
#, python-format
-msgid "Ebook-converter failed: %(error)s"
-msgstr "Az e-könyv átalakítás nem sikerült: %(error)s"
+msgid "%(format)s format not found on disk"
+msgstr ""
-#: cps/worker.py:407
+#: cps/tasks/convert.py:130
+msgid "Ebook converter failed with unknown error"
+msgstr ""
+
+#: cps/tasks/convert.py:140
#, python-format
msgid "Kepubify-converter failed: %(error)s"
msgstr ""
-#: cps/worker.py:431
+#: cps/tasks/convert.py:164
#, python-format
msgid "Converted file not found or more than one file in folder %(folder)s"
msgstr ""
+#: cps/tasks/convert.py:187
+#, python-format
+msgid "Ebook-converter failed: %(error)s"
+msgstr "Az e-könyv átalakítás nem sikerült: %(error)s"
+
+#: cps/tasks/convert.py:212
+#, python-format
+msgid "Calibre failed with error: %(error)s"
+msgstr ""
+
#: cps/templates/admin.html:9
msgid "Users"
msgstr "Felhasználók listája"
@@ -1175,8 +1187,9 @@ msgid "Edit"
msgstr "Szerkesztés"
#: cps/templates/admin.html:22 cps/templates/book_edit.html:16
-#: cps/templates/book_edit.html:221 cps/templates/email_edit.html:100
-#: cps/templates/user_edit.html:66 cps/templates/user_edit.html:179
+#: cps/templates/book_table.html:57 cps/templates/email_edit.html:100
+#: cps/templates/modal_dialogs.html:63 cps/templates/user_edit.html:66
+#: cps/templates/user_edit.html:167
msgid "Delete"
msgstr "Törlés"
@@ -1326,11 +1339,11 @@ msgid "OK"
msgstr "OK"
#: cps/templates/admin.html:183 cps/templates/admin.html:197
-#: cps/templates/book_edit.html:192 cps/templates/book_edit.html:222
+#: cps/templates/book_edit.html:192 cps/templates/book_table.html:84
#: cps/templates/config_edit.html:391 cps/templates/config_view_edit.html:151
#: cps/templates/email_edit.html:47 cps/templates/email_edit.html:101
-#: cps/templates/shelf.html:73 cps/templates/shelf_edit.html:19
-#: cps/templates/user_edit.html:139
+#: cps/templates/modal_dialogs.html:64 cps/templates/shelf.html:73
+#: cps/templates/shelf_edit.html:19 cps/templates/user_edit.html:139
msgid "Cancel"
msgstr ""
@@ -1350,15 +1363,14 @@ msgstr "keresztül"
msgid "In Library"
msgstr "Könyvtárban"
-#: cps/templates/author.html:34 cps/templates/book_table.html:14
-#: cps/templates/grid.html:14 cps/templates/list.html:14
-#: cps/templates/search.html:38
+#: cps/templates/author.html:34 cps/templates/grid.html:14
+#: cps/templates/list.html:14
msgid "All"
msgstr ""
#: cps/templates/author.html:58 cps/templates/author.html:110
#: cps/templates/discover.html:27 cps/templates/index.html:26
-#: cps/templates/index.html:89 cps/templates/search.html:64
+#: cps/templates/index.html:89 cps/templates/search.html:60
#: cps/templates/shelf.html:36
msgid "reduce"
msgstr "csökkentsd"
@@ -1399,13 +1411,13 @@ msgstr "Könyv konvertálása"
msgid "Book Title"
msgstr "Könyv címe"
-#: cps/templates/book_edit.html:57 cps/templates/book_edit.html:284
-#: cps/templates/book_edit.html:302 cps/templates/search_form.html:10
+#: cps/templates/book_edit.html:57 cps/templates/book_edit.html:257
+#: cps/templates/book_edit.html:275 cps/templates/search_form.html:10
msgid "Author"
msgstr "Szerző"
-#: cps/templates/book_edit.html:61 cps/templates/book_edit.html:289
-#: cps/templates/book_edit.html:304 cps/templates/search_form.html:126
+#: cps/templates/book_edit.html:61 cps/templates/book_edit.html:262
+#: cps/templates/book_edit.html:277 cps/templates/search_form.html:126
msgid "Description"
msgstr "Leírás"
@@ -1413,15 +1425,15 @@ msgstr "Leírás"
msgid "Identifiers"
msgstr ""
-#: cps/templates/book_edit.html:70 cps/templates/book_edit.html:313
+#: cps/templates/book_edit.html:70 cps/templates/book_edit.html:286
msgid "Identifier Type"
msgstr ""
-#: cps/templates/book_edit.html:71 cps/templates/book_edit.html:314
+#: cps/templates/book_edit.html:71 cps/templates/book_edit.html:287
msgid "Identifier Value"
msgstr ""
-#: cps/templates/book_edit.html:72 cps/templates/book_edit.html:315
+#: cps/templates/book_edit.html:72 cps/templates/book_edit.html:288
msgid "Remove"
msgstr ""
@@ -1453,8 +1465,8 @@ msgstr "Borító feltöltése helyi meghajtóról"
msgid "Published Date"
msgstr "Kiadás éve"
-#: cps/templates/book_edit.html:116 cps/templates/book_edit.html:286
-#: cps/templates/book_edit.html:303 cps/templates/detail.html:156
+#: cps/templates/book_edit.html:116 cps/templates/book_edit.html:259
+#: cps/templates/book_edit.html:276 cps/templates/detail.html:156
#: cps/templates/search_form.html:14
msgid "Publisher"
msgstr "Kiadó"
@@ -1480,7 +1492,7 @@ msgstr "Feltöltés formátuma"
msgid "View Book on Save"
msgstr "Könyv megnézése szerkesztés után"
-#: cps/templates/book_edit.html:190 cps/templates/book_edit.html:234
+#: cps/templates/book_edit.html:190 cps/templates/book_edit.html:207
msgid "Fetch Metadata"
msgstr "Metaadatok beszerzése"
@@ -1490,60 +1502,133 @@ msgstr "Metaadatok beszerzése"
msgid "Save"
msgstr ""
-#: cps/templates/book_edit.html:205
-msgid "Are you really sure?"
-msgstr "Biztosan?"
-
-#: cps/templates/book_edit.html:209
-msgid "This book will be permanently erased from database"
-msgstr "A könyv törölve lesz a Calibre adatbázisból"
-
#: cps/templates/book_edit.html:210
-msgid "and hard disk"
-msgstr " és a merevlemezről"
-
-#: cps/templates/book_edit.html:214
-msgid "Important Kobo Note: deleted books will remain on any paired Kobo device."
-msgstr ""
-
-#: cps/templates/book_edit.html:215
-msgid "Books must first be archived and the device synced before a book can safely be deleted."
-msgstr ""
-
-#: cps/templates/book_edit.html:237
msgid "Keyword"
msgstr "Kulcsszó"
-#: cps/templates/book_edit.html:238
+#: cps/templates/book_edit.html:211
msgid " Search keyword "
msgstr " Keresési kulcsszó "
-#: cps/templates/book_edit.html:244
+#: cps/templates/book_edit.html:217
msgid "Click the cover to load metadata to the form"
msgstr "Kattints a borítóra a metadatok betöltésére"
-#: cps/templates/book_edit.html:259 cps/templates/book_edit.html:299
+#: cps/templates/book_edit.html:232 cps/templates/book_edit.html:272
msgid "Loading..."
msgstr "Betöltés..."
-#: cps/templates/book_edit.html:264 cps/templates/layout.html:190
-#: cps/templates/layout.html:222 cps/templates/modal_restriction.html:34
-#: cps/templates/user_edit.html:166
+#: cps/templates/book_edit.html:237 cps/templates/layout.html:186
+#: cps/templates/layout.html:217 cps/templates/modal_dialogs.html:34
+#: cps/templates/user_edit.html:154
msgid "Close"
msgstr "Bezárás"
-#: cps/templates/book_edit.html:291 cps/templates/book_edit.html:305
+#: cps/templates/book_edit.html:264 cps/templates/book_edit.html:278
msgid "Source"
msgstr "Forrás"
-#: cps/templates/book_edit.html:300
+#: cps/templates/book_edit.html:273
msgid "Search error!"
msgstr "Keresési hiba!"
-#: cps/templates/book_edit.html:301
+#: cps/templates/book_edit.html:274
msgid "No Result(s) found! Please try another keyword."
msgstr "Nincs találat! Próbálj másik kulcsszót."
+#: cps/templates/book_table.html:10 cps/templates/book_table.html:52
+msgid "This Field is Required"
+msgstr ""
+
+#: cps/templates/book_table.html:23
+msgid "Merge selected books"
+msgstr ""
+
+#: cps/templates/book_table.html:24
+msgid "Remove Selections"
+msgstr ""
+
+#: cps/templates/book_table.html:30
+msgid "Update Title Sort automatically"
+msgstr ""
+
+#: cps/templates/book_table.html:34
+msgid "Update Author Sort automatically"
+msgstr ""
+
+#: cps/templates/book_table.html:46
+msgid "Enter Title"
+msgstr ""
+
+#: cps/templates/book_table.html:46 cps/templates/config_view_edit.html:23
+#: cps/templates/shelf_edit.html:7
+msgid "Title"
+msgstr "Név"
+
+#: cps/templates/book_table.html:47
+msgid "Enter Title Sort"
+msgstr ""
+
+#: cps/templates/book_table.html:47
+msgid "Title Sort"
+msgstr ""
+
+#: cps/templates/book_table.html:48
+msgid "Enter Author Sort"
+msgstr ""
+
+#: cps/templates/book_table.html:48
+msgid "Author Sort"
+msgstr ""
+
+#: cps/templates/book_table.html:49
+msgid "Enter Authors"
+msgstr ""
+
+#: cps/templates/book_table.html:50
+msgid "Enter Categories"
+msgstr ""
+
+#: cps/templates/book_table.html:51
+msgid "Enter Series"
+msgstr ""
+
+#: cps/templates/book_table.html:52
+msgid "Enter title"
+msgstr ""
+
+#: cps/templates/book_table.html:52
+msgid "Series Index"
+msgstr ""
+
+#: cps/templates/book_table.html:53
+msgid "Enter Languages"
+msgstr ""
+
+#: cps/templates/book_table.html:54
+msgid "Publishing Date"
+msgstr ""
+
+#: cps/templates/book_table.html:55
+msgid "Enter Publishers"
+msgstr ""
+
+#: cps/templates/book_table.html:70 cps/templates/modal_dialogs.html:46
+msgid "Are you really sure?"
+msgstr "Biztosan?"
+
+#: cps/templates/book_table.html:74
+msgid "Books with Title will be merged from:"
+msgstr ""
+
+#: cps/templates/book_table.html:78
+msgid "Into Book with Title:"
+msgstr ""
+
+#: cps/templates/book_table.html:83
+msgid "Merge"
+msgstr ""
+
#: cps/templates/config_edit.html:12
msgid "Library Configuration"
msgstr "Könyvát beállításai"
@@ -1833,10 +1918,6 @@ msgstr "Belépés"
msgid "View Configuration"
msgstr "Általános beállítások"
-#: cps/templates/config_view_edit.html:23 cps/templates/shelf_edit.html:7
-msgid "Title"
-msgstr "Név"
-
#: cps/templates/config_view_edit.html:31
msgid "No. of Random Books to Display"
msgstr "Találomra mutatott könyvek száma"
@@ -1845,7 +1926,7 @@ msgstr "Találomra mutatott könyvek száma"
msgid "No. of Authors to Display Before Hiding (0=Disable Hiding)"
msgstr "Mutatott szerzők száma (0=elrejtés kikapcsolása)"
-#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:112
+#: cps/templates/config_view_edit.html:39 cps/templates/readcbr.html:117
msgid "Theme"
msgstr "Téma"
@@ -1979,7 +2060,7 @@ msgstr "Hozzáadás polchoz"
#: cps/templates/detail.html:253 cps/templates/detail.html:270
#: cps/templates/feed.xml:79 cps/templates/layout.html:137
-#: cps/templates/layout.html:141 cps/templates/search.html:20
+#: cps/templates/search.html:20
msgid "(Public)"
msgstr ""
@@ -2031,7 +2112,7 @@ msgstr ""
msgid "Are you sure you want to delete this domain?"
msgstr "Valóban törölni akarod ezt a tartomány-szabályt?"
-#: cps/templates/feed.xml:21 cps/templates/layout.html:174
+#: cps/templates/feed.xml:21 cps/templates/layout.html:170
msgid "Next"
msgstr "Következő"
@@ -2120,7 +2201,7 @@ msgid "Home"
msgstr "Kezdőlap"
#: cps/templates/layout.html:29 cps/templates/shelf_order.html:32
-#: cps/templates/user_edit.html:180
+#: cps/templates/user_edit.html:168
msgid "Back"
msgstr "Vissza"
@@ -2137,7 +2218,7 @@ msgid "Advanced Search"
msgstr "Részletes keresés"
#: cps/templates/layout.html:77 cps/templates/read.html:71
-#: cps/templates/readcbr.html:83 cps/templates/readcbr.html:107
+#: cps/templates/readcbr.html:88 cps/templates/readcbr.html:112
msgid "Settings"
msgstr "Beállítások"
@@ -2153,7 +2234,7 @@ msgstr "Kilépés"
msgid "Register"
msgstr "Regisztrálás"
-#: cps/templates/layout.html:117 cps/templates/layout.html:221
+#: cps/templates/layout.html:117 cps/templates/layout.html:216
msgid "Uploading..."
msgstr "Feltöltés..."
@@ -2165,27 +2246,23 @@ msgstr ""
msgid "Browse"
msgstr "Böngészés"
-#: cps/templates/layout.html:139
-msgid "Your Shelves"
-msgstr "Saját polcok"
-
-#: cps/templates/layout.html:145 cps/templates/stats.html:3
+#: cps/templates/layout.html:141 cps/templates/stats.html:3
msgid "About"
msgstr "Névjegy"
-#: cps/templates/layout.html:159
+#: cps/templates/layout.html:155
msgid "Previous"
msgstr "Előző"
-#: cps/templates/layout.html:186
+#: cps/templates/layout.html:182
msgid "Book Details"
msgstr "Könyv részletei"
-#: cps/templates/layout.html:220
+#: cps/templates/layout.html:215
msgid "Upload done, processing, please wait..."
msgstr "Feltöltés kész, feldolgozás alatt, kérlek várj..."
-#: cps/templates/layout.html:223
+#: cps/templates/layout.html:218
msgid "Error"
msgstr "Hiba"
@@ -2217,30 +2294,50 @@ msgstr ""
msgid "Show Access Log: "
msgstr ""
-#: cps/templates/modal_restriction.html:6
+#: cps/templates/modal_dialogs.html:6
msgid "Select Allowed/Denied Tags"
msgstr ""
-#: cps/templates/modal_restriction.html:7
+#: cps/templates/modal_dialogs.html:7
msgid "Select Allowed/Denied Custom Column Values"
msgstr ""
-#: cps/templates/modal_restriction.html:8
+#: cps/templates/modal_dialogs.html:8
msgid "Select Allowed/Denied Tags of User"
msgstr ""
-#: cps/templates/modal_restriction.html:9
+#: cps/templates/modal_dialogs.html:9
msgid "Select Allowed/Denied Custom Column Values of User"
msgstr ""
-#: cps/templates/modal_restriction.html:15
+#: cps/templates/modal_dialogs.html:15
msgid "Enter Tag"
msgstr ""
-#: cps/templates/modal_restriction.html:24
+#: cps/templates/modal_dialogs.html:24
msgid "Add View Restriction"
msgstr ""
+#: cps/templates/modal_dialogs.html:50
+msgid "This book format will be permanently erased from database"
+msgstr ""
+
+#: cps/templates/modal_dialogs.html:51
+msgid "This book will be permanently erased from database"
+msgstr "A könyv törölve lesz a Calibre adatbázisból"
+
+#: cps/templates/modal_dialogs.html:52
+msgid "and hard disk"
+msgstr " és a merevlemezről"
+
+#: cps/templates/modal_dialogs.html:56
+msgid "Important Kobo Note: deleted books will remain on any paired Kobo device."
+msgstr ""
+
+#: cps/templates/modal_dialogs.html:57
+msgid "Books must first be archived and the device synced before a book can safely be deleted."
+msgstr ""
+
#: cps/templates/osd.xml:5
msgid "Calibre-Web eBook Catalog"
msgstr "Calibre-Web e-könyv katalógus"
@@ -2249,99 +2346,99 @@ msgstr "Calibre-Web e-könyv katalógus"
msgid "Reflow text when sidebars are open."
msgstr "Szöveg újratördelése amikor az oldalsávok nyitva vannak"
-#: cps/templates/readcbr.html:88
+#: cps/templates/readcbr.html:93
msgid "Keyboard Shortcuts"
msgstr "Gyorsbillentyűk"
-#: cps/templates/readcbr.html:91
+#: cps/templates/readcbr.html:96
msgid "Previous Page"
msgstr "Előző oldal"
-#: cps/templates/readcbr.html:92
+#: cps/templates/readcbr.html:97
msgid "Next Page"
msgstr "Következő oldal"
-#: cps/templates/readcbr.html:93
+#: cps/templates/readcbr.html:98
msgid "Scale to Best"
msgstr "Méretezés a legjobbra"
-#: cps/templates/readcbr.html:94
+#: cps/templates/readcbr.html:99
msgid "Scale to Width"
msgstr "Méretezés a szélességre"
-#: cps/templates/readcbr.html:95
+#: cps/templates/readcbr.html:100
msgid "Scale to Height"
msgstr "Méretezés a magasságra"
-#: cps/templates/readcbr.html:96
+#: cps/templates/readcbr.html:101
msgid "Scale to Native"
msgstr "Méretezés a natívra"
-#: cps/templates/readcbr.html:97
+#: cps/templates/readcbr.html:102
msgid "Rotate Right"
msgstr "Forgatás balra"
-#: cps/templates/readcbr.html:98
+#: cps/templates/readcbr.html:103
msgid "Rotate Left"
msgstr "Forgatás jobbra"
-#: cps/templates/readcbr.html:99
+#: cps/templates/readcbr.html:104
msgid "Flip Image"
msgstr "Kép tükrözése"
-#: cps/templates/readcbr.html:115
+#: cps/templates/readcbr.html:120
msgid "Light"
msgstr "Világos"
-#: cps/templates/readcbr.html:116
+#: cps/templates/readcbr.html:121
msgid "Dark"
msgstr "Sötét"
-#: cps/templates/readcbr.html:121
+#: cps/templates/readcbr.html:126
msgid "Scale"
msgstr "Méretezés"
-#: cps/templates/readcbr.html:124
+#: cps/templates/readcbr.html:129
msgid "Best"
msgstr "Legjobb"
-#: cps/templates/readcbr.html:125
+#: cps/templates/readcbr.html:130
msgid "Width"
msgstr "Szélesség"
-#: cps/templates/readcbr.html:126
+#: cps/templates/readcbr.html:131
msgid "Height"
msgstr "Magasság"
-#: cps/templates/readcbr.html:127
+#: cps/templates/readcbr.html:132
msgid "Native"
msgstr "Natív"
-#: cps/templates/readcbr.html:132
+#: cps/templates/readcbr.html:137
msgid "Rotate"
msgstr "Forgatás"
-#: cps/templates/readcbr.html:143
+#: cps/templates/readcbr.html:148
msgid "Flip"
msgstr "Tökrözés"
-#: cps/templates/readcbr.html:146
+#: cps/templates/readcbr.html:151
msgid "Horizontal"
msgstr "Vízszintes"
-#: cps/templates/readcbr.html:147
+#: cps/templates/readcbr.html:152
msgid "Vertical"
msgstr "Függőleges"
-#: cps/templates/readcbr.html:152
+#: cps/templates/readcbr.html:157
msgid "Direction"
msgstr ""
-#: cps/templates/readcbr.html:155
+#: cps/templates/readcbr.html:160
msgid "Left to Right"
msgstr ""
-#: cps/templates/readcbr.html:156
+#: cps/templates/readcbr.html:161
msgid "Right to Left"
msgstr ""
@@ -2561,15 +2658,11 @@ msgstr ""
msgid "Delete User"
msgstr "A felhasználó törlése"
-#: cps/templates/user_edit.html:146
-msgid "Recent Downloads"
-msgstr "Utolsó letöltések"
-
-#: cps/templates/user_edit.html:162
+#: cps/templates/user_edit.html:150
msgid "Generate Kobo Auth URL"
msgstr ""
-#: cps/templates/user_edit.html:178
+#: cps/templates/user_edit.html:166
msgid "Do you really want to delete the Kobo Token?"
msgstr ""
diff --git a/cps/translations/it/LC_MESSAGES/messages.mo b/cps/translations/it/LC_MESSAGES/messages.mo
index 84293bff63dd44c53d0b3a53bbb3b3a4c819e436..70fad21bc6f50f9d5c4b4216bd0bea975532ddd8 100644
GIT binary patch
delta 9755
zcmYM&2~?I<9>?)Vb`U`n0Ra&Z5Jh$u7EwfU7X<|}_a!FRTq{j{HCN0fGZz#!l`@yK
zdM$M{O;6>LT4Rf}_8^Zjw3bEd=bbMJkh_ul{g|L=X!e!A&WQS0Kk
z-o$O4#eaicEGrz3HBs;X{|$?^tj2VQV=7L;cK9~x`3o3>b*QiU$C>eHjHKTcy>Jv3
z<9IB=6PRgP4lAg&Wo0lh5Z$o?yW(o}#IMm6uV66#i2PU&_`?Uo;w{S$AxLMmPiY`~nQaw=k6Ttq*84$FDFAZ=pAav^8IdMlbpuP=R$p?XW+p6k{*}S7Q_&
zMJ-%of36Rk(N9FJ(;Yo7KS+i(6Sae_Sc(Txf%+zq
zLX1K6yP^Up#TGct{(QCl`5wD}3jO%JCW-tj6?g3q9-va_mrNZo1p{yhYJ4JUft9EQ
zcj0I}ftn|Z?X|*qR0jH?0xU(mq+NMHiyfSqj3I7>3G7Hb&_Fm(WlEvrsAAh?;nt
z?Os&v51|&ifC``nRib~O77XcNS-r6zYJv5rg+D~i_X#R9r%;FeYxLIrzd}RT>jtW(
zb*PlPa3VFHjG8b5bu9;>o*Rxz@;i*fN4DYFX5#L)qft9|-~il;%G^Edk8Ye~
z1y+PwXEbVq6`jey7JQq5XYeA%VqlKRNET`*MW~2JVq2VsIvZ7}TE2tY;U3g{AEQ!y
z6P3A#sEno4(P1pZMmXI;Ly^qKaNK~3@E~fzYp9gp!!UI1YHW#v=x3vzUyZsQhfsl>
zMrHOAYQd|h4BSEm{1Ek=<3BWXDBN<*#D1uW+M;%lg_@u*DxgyAjpI=hI8o!rQD^8I
zjKMpov(bpR7{|woL{A)o`rc?{9fviEhITgBb|dP=aS-{j&hUq7>BC7>h9Xe`=3of+
zxBF#w|0PtaSEIgv3iV2Mnr5ITHc&Q?erN`q+?JE
zzlu65i%|<#p;G%1sUA514?p=!Ok@n!p;Po(n}6j79|zi`sE9w#70`!8I6(r+Siq%46MRfU9lA^)mN(
zG-`qQs7M#10^EXHU?0Zd0c?erQS&^;B+TZ7cESl*gga30lSjyp)uxZh%#1$dzl4E#
z40z#p7>Uu0s^64z<7x48>)3e;}pM%OkDSF~WtPcpalVzwt*P(7pHR}1}cK;G;p}W`!AK3i{
zoJ0lUg_$PhXz0PVsMKWG{qCre6rw8*MShc7BT;9j5*6TOtj`E4#kWv_)uG-8
zZiCGHKB$d`*v6wnJISD-h?1*iyzqXL_NZSfUM!=0#fi%`JkdAv$DY}lTT^(v?{>A2v7=lgdcR;-tdfSdhosHS3
ziMOCKbHMH&Ld|m)6~HCbMt>F
zrl8JDN7RnH+5O(Ac?Y9vJ{0vLn~1Tv5_P5=P8vEihis3bCO(OZ^fV^px7Zk6hnT<7
z1frfBgiUY=rr;!0z*|sf