diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo index d0ffc14c..a2e59093 100644 Binary files a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo and b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo differ diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po index 73bc4efa..1f7099cf 100644 --- a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po +++ b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2022-01-15 09:19+0100\n" +"POT-Creation-Date: 2022-04-18 12:20+0800\n" "PO-Revision-Date: 2020-09-27 22:18+0800\n" "Last-Translator: xlivevil \n" "Language: zh_CN\n" @@ -16,578 +16,581 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" -#: cps/about.py:34 cps/about.py:49 cps/about.py:65 cps/converter.py:31 -msgid "not installed" -msgstr "未安装" - -#: cps/about.py:47 cps/about.py:63 -msgid "installed" -msgstr "已安装" - -#: cps/about.py:145 +#: cps/about.py:86 msgid "Statistics" msgstr "统计" -#: cps/admin.py:144 +#: cps/admin.py:141 msgid "Server restarted, please reload page" msgstr "服务器已重启,请刷新页面" -#: cps/admin.py:146 +#: cps/admin.py:143 msgid "Performing shutdown of server, please close window" msgstr "正在关闭服务器,请关闭窗口" -#: cps/admin.py:154 +#: cps/admin.py:151 msgid "Reconnect successful" msgstr "重新连接成功" -#: cps/admin.py:157 +#: cps/admin.py:154 msgid "Unknown command" msgstr "未知命令" -#: cps/admin.py:167 cps/editbooks.py:707 cps/editbooks.py:721 -#: cps/editbooks.py:866 cps/editbooks.py:868 cps/editbooks.py:895 -#: cps/editbooks.py:911 cps/updater.py:584 cps/uploader.py:93 -#: cps/uploader.py:103 +#: cps/admin.py:176 cps/editbooks.py:713 cps/editbooks.py:892 +#: cps/editbooks.py:894 cps/editbooks.py:930 cps/editbooks.py:947 +#: cps/updater.py:608 cps/uploader.py:93 cps/uploader.py:103 msgid "Unknown" msgstr "未知" -#: cps/admin.py:188 +#: cps/admin.py:197 msgid "Admin page" msgstr "管理页" -#: cps/admin.py:207 +#: cps/admin.py:217 msgid "Basic Configuration" msgstr "基本配置" -#: cps/admin.py:244 +#: cps/admin.py:255 msgid "UI Configuration" msgstr "界面配置" -#: cps/admin.py:277 cps/templates/admin.html:50 +#: cps/admin.py:289 cps/templates/admin.html:51 msgid "Edit Users" msgstr "管理用户" -#: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275 -#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9 +#: cps/admin.py:333 cps/opds.py:529 cps/templates/grid.html:13 #: cps/templates/list.html:13 msgid "All" msgstr "全部" -#: cps/admin.py:343 cps/admin.py:1615 +#: cps/admin.py:360 cps/admin.py:1648 msgid "User not found" msgstr "找不到用户" -#: cps/admin.py:357 +#: cps/admin.py:374 msgid "{} users deleted successfully" msgstr "成功删除 {} 个用户" -#: cps/admin.py:379 cps/templates/config_view_edit.html:133 +#: cps/admin.py:397 cps/templates/config_view_edit.html:133 #: cps/templates/user_edit.html:45 cps/templates/user_table.html:81 msgid "Show All" msgstr "显示全部" -#: cps/admin.py:400 cps/admin.py:406 +#: cps/admin.py:418 cps/admin.py:424 msgid "Malformed request" msgstr "格式错误的请求" -#: cps/admin.py:418 cps/admin.py:1493 +#: cps/admin.py:436 cps/admin.py:1526 msgid "Guest Name can't be changed" msgstr "访客名称无法更改" -#: cps/admin.py:430 +#: cps/admin.py:448 msgid "Guest can't have this role" msgstr "游客无法拥有此角色" -#: cps/admin.py:442 cps/admin.py:1451 +#: cps/admin.py:460 cps/admin.py:1484 msgid "No admin user remaining, can't remove admin role" msgstr "理员账户不存在,无法删除管理员角色" -#: cps/admin.py:446 cps/admin.py:460 +#: cps/admin.py:464 cps/admin.py:478 msgid "Value has to be true or false" msgstr "值必须是 true 或 false" -#: cps/admin.py:448 +#: cps/admin.py:466 msgid "Invalid role" msgstr "无效角色" -#: cps/admin.py:452 +#: cps/admin.py:470 msgid "Guest can't have this view" msgstr "游客无法拥有此视图" -#: cps/admin.py:462 +#: cps/admin.py:480 msgid "Invalid view" msgstr "无效视图" -#: cps/admin.py:465 +#: cps/admin.py:483 msgid "Guest's Locale is determined automatically and can't be set" msgstr "游客的本地化是自动侦测而无法设置的" -#: cps/admin.py:469 +#: cps/admin.py:487 msgid "No Valid Locale Given" msgstr "无可用本地化" -#: cps/admin.py:480 +#: cps/admin.py:498 msgid "No Valid Book Language Given" msgstr "无有效书籍语言" -#: cps/admin.py:482 +#: cps/admin.py:500 cps/editbooks.py:1267 msgid "Parameter not found" msgstr "参数未找到" -#: cps/admin.py:533 +#: cps/admin.py:553 msgid "Invalid Read Column" msgstr "无效的阅读列" -#: cps/admin.py:539 +#: cps/admin.py:559 msgid "Invalid Restricted Column" msgstr "无效的限制列" -#: cps/admin.py:560 cps/admin.py:1323 +#: cps/admin.py:579 cps/admin.py:1355 msgid "Calibre-Web configuration updated" msgstr "Calibre-Web配置已更新" -#: cps/admin.py:572 +#: cps/admin.py:591 msgid "Do you really want to delete the Kobo Token?" msgstr "您确定删除Kobo Token吗?" -#: cps/admin.py:574 +#: cps/admin.py:593 msgid "Do you really want to delete this domain?" msgstr "您确定要删除此域吗?" -#: cps/admin.py:576 +#: cps/admin.py:595 msgid "Do you really want to delete this user?" msgstr "您确定要删除此用户吗?" -#: cps/admin.py:578 +#: cps/admin.py:597 msgid "Are you sure you want to delete this shelf?" msgstr "您确定要删除此书架吗?" -#: cps/admin.py:580 +#: cps/admin.py:599 msgid "Are you sure you want to change locales of selected user(s)?" msgstr "您确定要修改选定用户的本地化设置吗?" -#: cps/admin.py:582 +#: cps/admin.py:601 msgid "Are you sure you want to change visible book languages for selected user(s)?" msgstr "您确定要修改选定用户的可见书籍语言吗?" -#: cps/admin.py:584 +#: cps/admin.py:603 msgid "Are you sure you want to change the selected role for the selected user(s)?" msgstr "您确定要修改选定用户的选定角色吗?" -#: cps/admin.py:586 +#: cps/admin.py:605 msgid "Are you sure you want to change the selected restrictions for the selected user(s)?" msgstr "您确定要修改选定用户的选定限制吗?" -#: cps/admin.py:588 +#: cps/admin.py:607 msgid "Are you sure you want to change the selected visibility restrictions for the selected user(s)?" msgstr "您确定要修改选定用户的选定可视化限制吗?" -#: cps/admin.py:590 +#: cps/admin.py:610 msgid "Are you sure you want to change shelf sync behavior for the selected user(s)?" msgstr "您确定要更改所选用户的书架同步行为吗?" -#: cps/admin.py:592 +#: cps/admin.py:612 msgid "Are you sure you want to change Calibre library location?" msgstr "您确定要更改 Calibre 库位置吗?" -#: cps/admin.py:594 +#: cps/admin.py:614 msgid "Are you sure you want delete Calibre-Web's sync database to force a full sync with your Kobo Reader?" -msgstr "" +msgstr "您确定要删除 Calibre-Web 的同步数据库以强制与您的 Kobo Reader 进行完全同步吗" -#: cps/admin.py:743 +#: cps/admin.py:764 msgid "Tag not found" msgstr "标签未找到" -#: cps/admin.py:755 +#: cps/admin.py:776 msgid "Invalid Action" msgstr "无效的动作" -#: cps/admin.py:871 cps/admin.py:877 cps/admin.py:887 cps/admin.py:897 +#: cps/admin.py:893 cps/admin.py:899 cps/admin.py:909 cps/admin.py:919 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "拒绝" -#: cps/admin.py:873 cps/admin.py:879 cps/admin.py:889 cps/admin.py:899 +#: cps/admin.py:895 cps/admin.py:901 cps/admin.py:911 cps/admin.py:921 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "允许" -#: cps/admin.py:913 +#: cps/admin.py:936 msgid "{} sync entries deleted" -msgstr "" +msgstr "{} 同步项目被删除" -#: cps/admin.py:1036 +#: cps/admin.py:1059 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "client_secrets.json 未为 Web 应用程序配置" -#: cps/admin.py:1081 +#: cps/admin.py:1104 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "日志文件路径无效,请输入正确的路径" -#: cps/admin.py:1087 +#: cps/admin.py:1110 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "访问日志路径无效,请输入正确的路径" -#: cps/admin.py:1117 +#: cps/admin.py:1140 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "请输入LDAP主机、端口、DN和用户对象标识符" -#: cps/admin.py:1123 +#: cps/admin.py:1146 msgid "Please Enter a LDAP Service Account and Password" msgstr "请输入一个LDAP服务账号和密码 " -#: cps/admin.py:1126 +#: cps/admin.py:1149 msgid "Please Enter a LDAP Service Account" msgstr "请输入一个LDAP服务账号" -#: cps/admin.py:1131 +#: cps/admin.py:1154 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "LDAP组对象过滤器需要一个具有“%s”格式标识符" -#: cps/admin.py:1133 +#: cps/admin.py:1156 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "LDAP组对象过滤器的括号不匹配" -#: cps/admin.py:1137 +#: cps/admin.py:1160 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "LDAP用户对象过滤器需要一个具有“%s”格式标识符" -#: cps/admin.py:1139 +#: cps/admin.py:1162 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "LDAP用户对象过滤器的括号不匹配" -#: cps/admin.py:1146 +#: cps/admin.py:1169 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "LDAP成员用户过滤器需要有一个“%s”格式标识符" -#: cps/admin.py:1148 +#: cps/admin.py:1171 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "LDAP成员用户过滤器中有不匹配的括号" -#: cps/admin.py:1155 +#: cps/admin.py:1178 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "LDAP CA证书、证书或密钥位置无效,请输入正确的路径" -#: cps/admin.py:1197 cps/admin.py:1308 cps/admin.py:1405 cps/admin.py:1521 -#: cps/admin.py:1590 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 -#: cps/shelf.py:279 cps/shelf.py:341 cps/shelf.py:376 cps/shelf.py:451 -msgid "Settings DB is not Writeable" -msgstr "设置数据库不可写入" +#: cps/admin.py:1223 cps/admin.py:1339 cps/admin.py:1437 cps/admin.py:1554 +#: cps/admin.py:1623 cps/editbooks.py:678 cps/editbooks.py:882 +#: cps/editbooks.py:1130 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 +#: cps/shelf.py:278 cps/shelf.py:343 cps/shelf.py:380 cps/shelf.py:456 +#: cps/web.py:1742 +#, python-format +msgid "Database error: %(error)s." +msgstr "数据库错误:%(error)s。" -#: cps/admin.py:1208 +#: cps/admin.py:1235 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "数据库路径无效,请输入正确的路径" -#: cps/admin.py:1223 +#: cps/admin.py:1253 msgid "DB is not Writeable" msgstr "数据库不可写入" -#: cps/admin.py:1235 +#: cps/admin.py:1266 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "密钥文件路径无效,请输入正确的路径" -#: cps/admin.py:1239 +#: cps/admin.py:1270 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "证书文件路径无效,请输入正确的路径" -#: cps/admin.py:1346 +#: cps/admin.py:1378 msgid "Database Settings updated" msgstr "数据库设置已更新" -#: cps/admin.py:1354 +#: cps/admin.py:1386 msgid "Database Configuration" msgstr "数据库配置" -#: cps/admin.py:1370 cps/web.py:1479 +#: cps/admin.py:1402 cps/web.py:1557 msgid "Please fill out all fields!" msgstr "请填写所有字段!" -#: cps/admin.py:1378 +#: cps/admin.py:1410 msgid "E-mail is not from valid domain" msgstr "邮箱不在有效域中" -#: cps/admin.py:1384 cps/admin.py:1543 +#: cps/admin.py:1416 cps/admin.py:1576 msgid "Add new user" msgstr "添加新用户" -#: cps/admin.py:1395 +#: cps/admin.py:1427 #, python-format msgid "User '%(user)s' created" msgstr "用户“%(user)s”已创建" -#: cps/admin.py:1401 +#: cps/admin.py:1433 msgid "Found an existing account for this e-mail address or name." msgstr "使用此邮箱或用户名的账号已经存在。" -#: cps/admin.py:1430 +#: cps/admin.py:1463 #, python-format msgid "User '%(nick)s' deleted" msgstr "用户“%(nick)s”已删除" -#: cps/admin.py:1432 cps/admin.py:1433 +#: cps/admin.py:1465 cps/admin.py:1466 msgid "Can't delete Guest User" msgstr "无法删除游客用户" -#: cps/admin.py:1436 +#: cps/admin.py:1469 msgid "No admin user remaining, can't delete user" msgstr "管理员账户不存在,无法删除用户" -#: cps/admin.py:1509 cps/admin.py:1634 +#: cps/admin.py:1542 cps/admin.py:1667 #, python-format msgid "Edit User %(nick)s" msgstr "编辑用户 %(nick)s" -#: cps/admin.py:1513 +#: cps/admin.py:1546 #, python-format msgid "User '%(nick)s' updated" msgstr "用户“%(nick)s”已更新" -#: cps/admin.py:1517 cps/admin.py:1649 cps/web.py:1504 cps/web.py:1564 +#: cps/admin.py:1550 cps/admin.py:1682 cps/web.py:1582 cps/web.py:1642 msgid "An unknown error occurred. Please try again later." msgstr "发生一个未知错误,请稍后再试。" -#: cps/admin.py:1552 cps/templates/admin.html:98 +#: cps/admin.py:1585 cps/templates/admin.html:100 msgid "Edit E-mail Server Settings" msgstr "编辑邮件服务器设置" -#: cps/admin.py:1571 +#: cps/admin.py:1604 msgid "Gmail Account Verification Successful" msgstr "G-Mail账号校验成功" -#: cps/admin.py:1597 +#: cps/admin.py:1630 #, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "发送给%(email)s的测试邮件已进入队列。请检查任务结果" -#: cps/admin.py:1600 +#: cps/admin.py:1633 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "发送测试邮件时出错:%(res)s" -#: cps/admin.py:1602 +#: cps/admin.py:1635 msgid "Please configure your e-mail address first..." msgstr "请先配置您的邮箱地址..." -#: cps/admin.py:1604 +#: cps/admin.py:1637 msgid "E-mail server settings updated" msgstr "邮件服务器设置已更新" -#: cps/admin.py:1646 +#: cps/admin.py:1679 #, python-format msgid "Password for user %(user)s reset" msgstr "用户 %(user)s 的密码已重置" -#: cps/admin.py:1652 cps/web.py:1444 +#: cps/admin.py:1685 cps/web.py:1522 msgid "Please configure the SMTP mail settings first..." msgstr "请先配置SMTP邮箱设置..." -#: cps/admin.py:1663 +#: cps/admin.py:1696 msgid "Logfile viewer" msgstr "日志文件查看器" -#: cps/admin.py:1729 +#: cps/admin.py:1762 msgid "Requesting update package" msgstr "正在请求更新包" -#: cps/admin.py:1730 +#: cps/admin.py:1763 msgid "Downloading update package" msgstr "正在下载更新包" -#: cps/admin.py:1731 +#: cps/admin.py:1764 msgid "Unzipping update package" msgstr "正在解压更新包" -#: cps/admin.py:1732 +#: cps/admin.py:1765 msgid "Replacing files" msgstr "正在替换文件" -#: cps/admin.py:1733 +#: cps/admin.py:1766 msgid "Database connections are closed" msgstr "数据库连接已关闭" -#: cps/admin.py:1734 +#: cps/admin.py:1767 msgid "Stopping server" msgstr "正在停止服务器" -#: cps/admin.py:1735 +#: cps/admin.py:1768 msgid "Update finished, please press okay and reload page" msgstr "更新完成,请点击确定并刷新页面" -#: cps/admin.py:1736 cps/admin.py:1737 cps/admin.py:1738 cps/admin.py:1739 -#: cps/admin.py:1740 cps/admin.py:1741 +#: cps/admin.py:1769 cps/admin.py:1770 cps/admin.py:1771 cps/admin.py:1772 +#: cps/admin.py:1773 cps/admin.py:1774 msgid "Update failed:" msgstr "更新失败:" -#: cps/admin.py:1736 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 +#: cps/admin.py:1769 cps/updater.py:384 cps/updater.py:619 cps/updater.py:621 msgid "HTTP Error" msgstr "HTTP错误" -#: cps/admin.py:1737 cps/updater.py:387 cps/updater.py:599 +#: cps/admin.py:1770 cps/updater.py:386 cps/updater.py:623 msgid "Connection error" msgstr "连接错误" -#: cps/admin.py:1738 cps/updater.py:389 cps/updater.py:601 +#: cps/admin.py:1771 cps/updater.py:388 cps/updater.py:625 msgid "Timeout while establishing connection" msgstr "建立连接超时" -#: cps/admin.py:1739 cps/updater.py:391 cps/updater.py:603 +#: cps/admin.py:1772 cps/updater.py:390 cps/updater.py:627 msgid "General error" msgstr "一般错误" -#: cps/admin.py:1740 +#: cps/admin.py:1773 msgid "Update file could not be saved in temp dir" msgstr "更新文件无法保存在临时目录中" -#: cps/admin.py:1741 +#: cps/admin.py:1774 msgid "Files could not be replaced during update" msgstr "更新期间无法替换文件" -#: cps/admin.py:1765 +#: cps/admin.py:1798 msgid "Failed to extract at least One LDAP User" msgstr "未能提取至少一个LDAP用户" -#: cps/admin.py:1810 +#: cps/admin.py:1843 msgid "Failed to Create at Least One LDAP User" msgstr "未能创建至少一个LDAP用户" -#: cps/admin.py:1823 +#: cps/admin.py:1856 #, python-format msgid "Error: %(ldaperror)s" msgstr "错误:%(ldaperror)s" -#: cps/admin.py:1827 +#: cps/admin.py:1860 msgid "Error: No user returned in response of LDAP server" msgstr "错误:在LDAP服务器的响应中没有返回用户" -#: cps/admin.py:1860 +#: cps/admin.py:1893 msgid "At Least One LDAP User Not Found in Database" msgstr "数据库中没有找到至少一个LDAP用户" -#: cps/admin.py:1862 +#: cps/admin.py:1895 msgid "{} User Successfully Imported" msgstr "{} 用户被成功导入" #: cps/converter.py:30 -msgid "not configured" -msgstr "未配置" +msgid "not installed" +msgstr "未安装" -#: cps/converter.py:32 +#: cps/converter.py:31 msgid "Execution permissions missing" msgstr "缺少执行权限" -#: cps/db.py:651 cps/web.py:667 cps/web.py:1155 +#: cps/db.py:674 cps/web.py:710 cps/web.py:1222 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "自定义列号:%(column)d在Calibre数据库中不存在" -#: cps/editbooks.py:300 cps/editbooks.py:302 +#: cps/db.py:917 cps/templates/config_edit.html:204 +#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41 +#: cps/web.py:551 cps/web.py:585 cps/web.py:646 cps/web.py:671 cps/web.py:1003 +#: cps/web.py:1032 cps/web.py:1066 cps/web.py:1093 cps/web.py:1132 +msgid "None" +msgstr "无" + +#: cps/editbooks.py:295 cps/editbooks.py:297 msgid "Book Format Successfully Deleted" msgstr "书籍格式已成功删除" -#: cps/editbooks.py:309 cps/editbooks.py:311 +#: cps/editbooks.py:304 cps/editbooks.py:306 msgid "Book Successfully Deleted" msgstr "书籍已成功删除" -#: cps/editbooks.py:361 +#: cps/editbooks.py:358 msgid "You are missing permissions to delete books" -msgstr "" +msgstr "您没有删除书籍的权限" -#: cps/editbooks.py:376 cps/editbooks.py:763 cps/web.py:523 cps/web.py:1703 -#: cps/web.py:1744 cps/web.py:1811 +#: cps/editbooks.py:373 cps/editbooks.py:765 cps/web.py:518 cps/web.py:1783 +#: cps/web.py:1825 cps/web.py:1870 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "糟糕!选择书名无法打开。文件不存在或者文件不可访问" -#: cps/editbooks.py:410 +#: cps/editbooks.py:408 msgid "edit metadata" msgstr "编辑元数据" -#: cps/editbooks.py:458 +#: cps/editbooks.py:457 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "%(seriesindex)s 不是一个有效的数值,忽略" -#: cps/editbooks.py:494 cps/editbooks.py:958 +#: cps/editbooks.py:493 cps/editbooks.py:1001 #, python-format msgid "'%(langname)s' is not a valid language" msgstr "'%(langname)s' 不是一种有效语言" -#: cps/editbooks.py:634 cps/editbooks.py:985 +#: cps/editbooks.py:634 +msgid "User has no rights to upload additional file formats" +msgstr "用户没有权限上传其他文件格式" + +#: cps/editbooks.py:639 cps/editbooks.py:1029 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "不能上传文件扩展名为“%(ext)s”的文件到此服务器" -#: cps/editbooks.py:638 cps/editbooks.py:989 +#: cps/editbooks.py:643 cps/editbooks.py:1033 msgid "File to be uploaded must have an extension" msgstr "要上传的文件必须具有扩展名" -#: cps/editbooks.py:650 +#: cps/editbooks.py:655 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "创建路径 %(path)s 失败(权限拒绝)。" -#: cps/editbooks.py:655 +#: cps/editbooks.py:660 #, python-format msgid "Failed to store file %(file)s." msgstr "保存文件 %(file)s 失败。" -#: cps/editbooks.py:673 cps/editbooks.py:1076 cps/web.py:1664 -#, python-format -msgid "Database error: %(error)s." -msgstr "数据库错误:%(error)s。" - -#: cps/editbooks.py:678 +#: cps/editbooks.py:683 #, python-format msgid "File format %(ext)s added to %(book)s" msgstr "已添加 %(ext)s 格式到 %(book)s" -#: cps/editbooks.py:814 +#: cps/editbooks.py:697 cps/editbooks.py:809 +msgid "User has no rights to upload cover" +msgstr "用户没有权限上传封面" + +#: cps/editbooks.py:828 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "标识符不区分大小写,覆盖旧标识符" -#: cps/editbooks.py:848 +#: cps/editbooks.py:869 msgid "Metadata successfully updated" msgstr "已成功更新元数据" -#: cps/editbooks.py:861 -msgid "Error editing book, please check logfile for details" -msgstr "编辑书籍出错,请检查日志文件以获取详细信息" +#: cps/editbooks.py:887 +msgid "Error editing book: {}" +msgstr "编辑书籍时出错: {}" -#: cps/editbooks.py:899 +#: cps/editbooks.py:951 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "上传的书籍可能已经存在,建议修改后重新上传: " -#: cps/editbooks.py:997 +#: cps/editbooks.py:1041 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "文件 %(filename)s 无法保存到临时目录" -#: cps/editbooks.py:1016 +#: cps/editbooks.py:1061 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "移动封面文件失败 %(file)s:%(error)s" -#: cps/editbooks.py:1063 +#: cps/editbooks.py:1117 #, python-format msgid "File %(file)s uploaded" msgstr "文件 %(file)s 已上传" -#: cps/editbooks.py:1088 +#: cps/editbooks.py:1143 msgid "Source or destination format for conversion missing" msgstr "转换的源或目的格式缺失" -#: cps/editbooks.py:1096 +#: cps/editbooks.py:1151 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "书籍已经被成功加入到 %(book_format)s 格式转换队列" -#: cps/editbooks.py:1100 +#: cps/editbooks.py:1155 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "转换此书籍时出现错误: %(res)s" @@ -600,174 +603,190 @@ msgstr "Google Drive 设置未完成,请尝试停用并再次激活Google云 msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "回调域名尚未被校验,请在google开发者控制台按步骤校验域名" -#: cps/helper.py:77 +#: cps/helper.py:81 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "找不到id为 %(book)d 的书籍的 %(format)s 格式" -#: cps/helper.py:83 cps/tasks/convert.py:73 +#: cps/helper.py:87 cps/tasks/convert.py:75 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "Google Drive %(fn)s 上找不到 %(format)s" -#: cps/helper.py:88 +#: cps/helper.py:92 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "找不到 %(format)s:%(fn)s" -#: cps/helper.py:93 cps/helper.py:217 cps/templates/detail.html:41 +#: cps/helper.py:97 cps/helper.py:221 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "发送到Kindle" -#: cps/helper.py:94 cps/helper.py:111 cps/helper.py:219 +#: cps/helper.py:98 cps/helper.py:115 cps/helper.py:223 msgid "This e-mail has been sent via Calibre-Web." msgstr "此邮件已经通过Calibre-Web发送。" -#: cps/helper.py:109 +#: cps/helper.py:113 msgid "Calibre-Web test e-mail" msgstr "Calibre-Web测试邮件" -#: cps/helper.py:110 +#: cps/helper.py:114 msgid "Test e-mail" msgstr "测试邮件" -#: cps/helper.py:127 +#: cps/helper.py:131 msgid "Get Started with Calibre-Web" msgstr "开启Calibre-Web之旅" -#: cps/helper.py:132 +#: cps/helper.py:136 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "用户注册电子邮件:%(name)s" -#: cps/helper.py:143 cps/helper.py:149 +#: cps/helper.py:147 cps/helper.py:153 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "转换 %(orig)s 到 %(format)s 并发送到Kindle" -#: cps/helper.py:168 cps/helper.py:172 cps/helper.py:176 +#: cps/helper.py:172 cps/helper.py:176 cps/helper.py:180 #, python-format msgid "Send %(format)s to Kindle" msgstr "发送 %(format)s 到Kindle" -#: cps/helper.py:216 cps/tasks/convert.py:90 +#: cps/helper.py:220 cps/tasks/convert.py:92 #, python-format msgid "%(book)s send to Kindle" msgstr "%(book)s发送到Kindle" -#: cps/helper.py:221 +#: cps/helper.py:225 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "无法读取请求的文件。可能有错误的权限设置?" -#: cps/helper.py:313 +#: cps/helper.py:353 +msgid "Read status could not set: {}" +msgstr "阅读状态无法设置: {}" + +#: cps/helper.py:376 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "删除书的文件夹%(id)s失败,路径有子文件夹:%(path)s" -#: cps/helper.py:319 +#: cps/helper.py:382 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "删除书籍 %(id)s失败:%(message)s" -#: cps/helper.py:330 +#: cps/helper.py:393 #, python-format msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "仅从数据库中删除书籍 %(id)s,数据库中的书籍路径无效: %(path)s" -#: cps/helper.py:385 +#: cps/helper.py:458 #, python-format -msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" -msgstr "将标题从“%(src)s”改为“%(dest)s”时失败,出错信息:%(error)s" - -#: cps/helper.py:400 -#, python-format -msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" -msgstr "从“%(src)s”重命名为“%(dest)s”失败,出错信息:%(error)s" +msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" +msgstr "将作者从“%(src)s”改为“%(dest)s”时失败,出错信息:%(error)s" -#: cps/helper.py:425 cps/helper.py:435 cps/helper.py:443 +#: cps/helper.py:529 cps/helper.py:538 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Google Drive上找不到文件 %(file)s" -#: cps/helper.py:464 +#: cps/helper.py:572 +#, python-format +msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" +msgstr "将标题从“%(src)s”改为“%(dest)s”时失败,出错信息:%(error)s" + +#: cps/helper.py:592 +msgid "Error in rename file in path: {}" +msgstr "重命名此路径: {}文件时出错" + +#: cps/helper.py:610 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Google Drive上找不到书籍路径 %(path)s" -#: cps/helper.py:504 cps/web.py:1659 +#: cps/helper.py:651 cps/web.py:1737 msgid "Found an existing account for this e-mail address" msgstr "使用此邮箱的账号已经存在。" -#: cps/helper.py:512 +#: cps/helper.py:659 msgid "This username is already taken" msgstr "此用户名已被使用" -#: cps/helper.py:522 +#: cps/helper.py:669 msgid "Invalid e-mail address format" msgstr "无效的邮件地址格式" -#: cps/helper.py:595 +#: cps/helper.py:754 +msgid "Python modul 'advocate' is not installed but is needed for cover downloads" +msgstr "下载封面必须的 Python 模块'advocate' 未安装" + +#: cps/helper.py:767 msgid "Error Downloading Cover" msgstr "下载封面时出错" -#: cps/helper.py:598 +#: cps/helper.py:770 msgid "Cover Format Error" msgstr "封面格式出错" -#: cps/helper.py:608 +#: cps/helper.py:773 +msgid "You are not allowed to access localhost or the local network for cover uploads" +msgstr "您没有访问本地主机或本地网络进行封面上传" + +#: cps/helper.py:783 msgid "Failed to create path for cover" msgstr "创建封面路径失败" -#: cps/helper.py:624 +#: cps/helper.py:799 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "封面文件不是有效的图片文件,或者无法存储" -#: cps/helper.py:635 +#: cps/helper.py:810 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "封面文件只支持jpg/jpeg/png/webp/bmp文件" -#: cps/helper.py:648 +#: cps/helper.py:822 msgid "Invalid cover file content" msgstr "封面文件内容无效" -#: cps/helper.py:652 +#: cps/helper.py:826 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "仅将jpg、jpeg文件作为封面文件" -#: cps/helper.py:704 +#: cps/helper.py:878 msgid "Unrar binary file not found" msgstr "找不到Unrar执行文件" -#: cps/helper.py:715 +#: cps/helper.py:889 msgid "Error excecuting UnRar" msgstr "执行UnRar时出错" -#: cps/helper.py:763 +#: cps/helper.py:937 msgid "Waiting" msgstr "等待中" -#: cps/helper.py:765 +#: cps/helper.py:939 msgid "Failed" msgstr "失败" -#: cps/helper.py:767 +#: cps/helper.py:941 msgid "Started" msgstr "已开始" -#: cps/helper.py:769 +#: cps/helper.py:943 msgid "Finished" msgstr "已完成" -#: cps/helper.py:771 +#: cps/helper.py:945 msgid "Unknown Status" msgstr "未知状态" -#: cps/kobo_auth.py:127 -msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" +#: cps/kobo_auth.py:128 +msgid "Please access Calibre-Web from non localhost to get valid api_endpoint for kobo device" msgstr "请不要使用localhost访问Calibre-Web,以便Kobo设备能获取有效的api_endpoint" -#: cps/kobo_auth.py:130 cps/kobo_auth.py:158 +#: cps/kobo_auth.py:154 msgid "Kobo Setup" msgstr "Kobo 设置" @@ -776,7 +795,7 @@ msgstr "Kobo 设置" msgid "Register with %(provider)s" msgstr "使用 %(provider)s 注册" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1535 +#: cps/oauth_bb.py:138 cps/remotelogin.py:130 cps/web.py:1613 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "您现在已以“%(nickname)s”身份登录" @@ -837,163 +856,163 @@ msgstr "Google Oauth 错误,请重试。" msgid "Google Oauth error: {}" msgstr "Google Oauth 错误: {}" -#: cps/opds.py:384 +#: cps/opds.py:298 msgid "{} Stars" msgstr "{} 星" -#: cps/remotelogin.py:65 cps/templates/layout.html:84 -#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 +#: cps/remotelogin.py:62 cps/templates/layout.html:84 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1662 msgid "Login" msgstr "登录" -#: cps/remotelogin.py:77 cps/remotelogin.py:111 +#: cps/remotelogin.py:74 cps/remotelogin.py:108 msgid "Token not found" msgstr "找不到Token" -#: cps/remotelogin.py:86 cps/remotelogin.py:119 +#: cps/remotelogin.py:83 cps/remotelogin.py:116 msgid "Token has expired" msgstr "Token已过期" -#: cps/remotelogin.py:95 +#: cps/remotelogin.py:92 msgid "Success! Please return to your device" msgstr "成功!请返回您的设备" -#: cps/render_template.py:39 cps/web.py:416 +#: cps/render_template.py:41 cps/web.py:407 msgid "Books" msgstr "书籍" -#: cps/render_template.py:41 +#: cps/render_template.py:43 msgid "Show recent books" msgstr "显示最近书籍" -#: cps/render_template.py:42 cps/templates/index.xml:25 +#: cps/render_template.py:44 cps/templates/index.xml:25 msgid "Hot Books" msgstr "热门书籍" -#: cps/render_template.py:44 +#: cps/render_template.py:46 msgid "Show Hot Books" msgstr "显示热门书籍" -#: cps/render_template.py:46 cps/render_template.py:51 +#: cps/render_template.py:48 cps/render_template.py:53 msgid "Downloaded Books" msgstr "下载历史" -#: cps/render_template.py:48 cps/render_template.py:53 +#: cps/render_template.py:50 cps/render_template.py:55 #: cps/templates/user_table.html:167 msgid "Show Downloaded Books" msgstr "显示下载过的书籍" -#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:430 +#: cps/render_template.py:58 cps/templates/index.xml:32 cps/web.py:422 msgid "Top Rated Books" msgstr "最高评分书籍" -#: cps/render_template.py:58 cps/templates/user_table.html:161 +#: cps/render_template.py:60 cps/templates/user_table.html:161 msgid "Show Top Rated Books" msgstr "显示最高评分书籍" -#: cps/render_template.py:59 cps/templates/index.xml:54 -#: cps/templates/index.xml:58 cps/web.py:676 +#: cps/render_template.py:61 cps/templates/index.xml:54 +#: cps/templates/index.xml:58 cps/web.py:729 msgid "Read Books" msgstr "已读书籍" -#: cps/render_template.py:61 +#: cps/render_template.py:63 msgid "Show read and unread" msgstr "显示阅读状态" -#: cps/render_template.py:63 cps/templates/index.xml:61 -#: cps/templates/index.xml:65 cps/web.py:679 +#: cps/render_template.py:65 cps/templates/index.xml:61 +#: cps/templates/index.xml:65 cps/web.py:732 msgid "Unread Books" msgstr "未读书籍" -#: cps/render_template.py:65 +#: cps/render_template.py:67 msgid "Show unread" msgstr "显示未读" -#: cps/render_template.py:66 +#: cps/render_template.py:68 msgid "Discover" msgstr "发现" -#: cps/render_template.py:68 cps/templates/index.xml:50 +#: cps/render_template.py:70 cps/templates/index.xml:50 #: cps/templates/user_table.html:162 msgid "Show Random Books" msgstr "显示随机书籍" -#: cps/render_template.py:69 cps/templates/book_table.html:67 -#: cps/templates/index.xml:83 cps/web.py:1041 +#: cps/render_template.py:71 cps/templates/book_table.html:67 +#: cps/templates/index.xml:83 cps/web.py:1135 msgid "Categories" msgstr "分类" -#: cps/render_template.py:71 cps/templates/user_table.html:158 +#: cps/render_template.py:73 cps/templates/user_table.html:158 msgid "Show category selection" msgstr "显示分类选择" -#: cps/render_template.py:72 cps/templates/book_edit.html:90 +#: cps/render_template.py:74 cps/templates/book_edit.html:90 #: cps/templates/book_table.html:68 cps/templates/index.xml:90 -#: cps/templates/search_form.html:69 cps/web.py:948 cps/web.py:959 +#: cps/templates/search_form.html:69 cps/web.py:1034 cps/web.py:1041 msgid "Series" msgstr "丛书" -#: cps/render_template.py:74 cps/templates/user_table.html:157 +#: cps/render_template.py:76 cps/templates/user_table.html:157 msgid "Show series selection" msgstr "显示丛书选择" -#: cps/render_template.py:75 cps/templates/book_table.html:66 +#: cps/render_template.py:77 cps/templates/book_table.html:66 #: cps/templates/index.xml:69 msgid "Authors" msgstr "作者" -#: cps/render_template.py:77 cps/templates/user_table.html:160 +#: cps/render_template.py:79 cps/templates/user_table.html:160 msgid "Show author selection" msgstr "显示作者选择" -#: cps/render_template.py:79 cps/templates/book_table.html:72 -#: cps/templates/index.xml:76 cps/web.py:925 +#: cps/render_template.py:81 cps/templates/book_table.html:72 +#: cps/templates/index.xml:76 cps/web.py:1006 msgid "Publishers" msgstr "出版社" -#: cps/render_template.py:81 cps/templates/user_table.html:163 +#: cps/render_template.py:83 cps/templates/user_table.html:163 msgid "Show publisher selection" msgstr "显示出版社选择" -#: cps/render_template.py:82 cps/templates/book_table.html:70 +#: cps/render_template.py:84 cps/templates/book_table.html:70 #: cps/templates/index.xml:97 cps/templates/search_form.html:107 -#: cps/web.py:1018 +#: cps/web.py:1108 msgid "Languages" msgstr "语言" -#: cps/render_template.py:85 cps/templates/user_table.html:155 +#: cps/render_template.py:87 cps/templates/user_table.html:155 msgid "Show language selection" msgstr "显示语言选择" -#: cps/render_template.py:86 cps/templates/index.xml:104 +#: cps/render_template.py:88 cps/templates/index.xml:104 msgid "Ratings" msgstr "评分" -#: cps/render_template.py:88 cps/templates/user_table.html:164 +#: cps/render_template.py:90 cps/templates/user_table.html:164 msgid "Show ratings selection" msgstr "显示评分选择" -#: cps/render_template.py:89 cps/templates/index.xml:112 +#: cps/render_template.py:91 cps/templates/index.xml:112 msgid "File formats" msgstr "文件格式" -#: cps/render_template.py:91 cps/templates/user_table.html:165 +#: cps/render_template.py:93 cps/templates/user_table.html:165 msgid "Show file formats selection" msgstr "显示文件格式选择" -#: cps/render_template.py:93 cps/web.py:703 +#: cps/render_template.py:95 cps/web.py:755 msgid "Archived Books" msgstr "归档书籍" -#: cps/render_template.py:95 cps/templates/user_table.html:166 +#: cps/render_template.py:97 cps/templates/user_table.html:166 msgid "Show archived books" msgstr "显示归档书籍" -#: cps/render_template.py:97 cps/web.py:780 +#: cps/render_template.py:100 cps/web.py:837 msgid "Books List" msgstr "书籍列表" -#: cps/render_template.py:99 cps/templates/user_table.html:168 +#: cps/render_template.py:102 cps/templates/user_table.html:168 msgid "Show Books List" msgstr "显示书籍列表" @@ -1017,7 +1036,7 @@ msgstr "此书籍已被添加到书架:%(sname)s" #: cps/shelf.py:126 msgid "You are not allowed to add a book to the shelf" -msgstr "你没有向书架添加书籍的权限" +msgstr "您没有向书架添加书籍的权限" #: cps/shelf.py:144 #, python-format @@ -1041,267 +1060,270 @@ msgstr "此书已从书架 %(sname)s 中删除" #: cps/shelf.py:218 msgid "Sorry you are not allowed to remove a book from this shelf" -msgstr "抱歉,你没有从这个书架删除书籍的权限" +msgstr "抱歉,您没有从这个书架删除书籍的权限" #: cps/shelf.py:228 cps/templates/layout.html:140 msgid "Create a Shelf" msgstr "创建书架" -#: cps/shelf.py:237 +#: cps/shelf.py:236 msgid "Sorry you are not allowed to edit this shelf" msgstr "对不起,您没有编辑这个书架的权限" -#: cps/shelf.py:239 +#: cps/shelf.py:238 msgid "Edit a shelf" msgstr "编辑书架" -#: cps/shelf.py:249 +#: cps/shelf.py:248 msgid "Sorry you are not allowed to create a public shelf" -msgstr "抱歉,你没有创建公开书架的权限" +msgstr "抱歉,您没有创建公开书架的权限" -#: cps/shelf.py:266 +#: cps/shelf.py:265 #, python-format msgid "Shelf %(title)s created" msgstr "书架 %(title)s 已创建" -#: cps/shelf.py:269 +#: cps/shelf.py:268 #, python-format msgid "Shelf %(title)s changed" msgstr "书架 %(title)s 已修改" -#: cps/shelf.py:283 +#: cps/shelf.py:282 msgid "There was an error" msgstr "发生错误" -#: cps/shelf.py:305 +#: cps/shelf.py:304 #, python-format msgid "A public shelf with the name '%(title)s' already exists." msgstr "公共书架:%(title)s已经存在已经存在。" -#: cps/shelf.py:316 +#: cps/shelf.py:315 #, python-format msgid "A private shelf with the name '%(title)s' already exists." msgstr "私有书架:%(title)s已经存在已经存在。" #: cps/shelf.py:337 -#, fuzzy +msgid "Error deleting Shelf" +msgstr "删除书架时出错" + +#: cps/shelf.py:339 msgid "Shelf successfully deleted" -msgstr "书籍已成功删除" +msgstr "书架已成功删除" -#: cps/shelf.py:386 +#: cps/shelf.py:389 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "修改书架 %(name)s 顺序" -#: cps/shelf.py:456 +#: cps/shelf.py:461 #, python-format msgid "Shelf: '%(name)s'" msgstr "书架:%(name)s" -#: cps/shelf.py:460 +#: cps/shelf.py:465 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "打开书架出错。书架不存在或不可访问" -#: cps/updater.py:403 cps/updater.py:414 cps/updater.py:514 cps/updater.py:529 +#: cps/updater.py:426 cps/updater.py:437 cps/updater.py:538 cps/updater.py:553 msgid "Unexpected data while reading update information" msgstr "读取更新信息时出现意外数据" -#: cps/updater.py:410 cps/updater.py:521 +#: cps/updater.py:433 cps/updater.py:545 msgid "No update available. You already have the latest version installed" msgstr "无可用更新。您已经安装了最新版本" -#: cps/updater.py:428 +#: cps/updater.py:451 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "有新的更新。单击下面的按钮以更新到最新版本。" -#: cps/updater.py:446 +#: cps/updater.py:469 msgid "Could not fetch update information" msgstr "无法获取更新信息" -#: cps/updater.py:456 +#: cps/updater.py:479 msgid "Click on the button below to update to the latest stable version." msgstr "点击下面按钮更新到最新稳定版本。" -#: cps/updater.py:465 cps/updater.py:479 cps/updater.py:490 +#: cps/updater.py:488 cps/updater.py:502 cps/updater.py:513 #, python-format msgid "A new update is available. Click on the button below to update to version: %(version)s" msgstr "有新的更新。单击下面的按钮以更新到版本: %(version)s" -#: cps/updater.py:507 +#: cps/updater.py:531 msgid "No release information available" msgstr "无可用发布信息" -#: cps/templates/index.html:5 cps/web.py:440 +#: cps/templates/index.html:5 cps/web.py:434 msgid "Discover (Random Books)" msgstr "发现(随机书籍)" -#: cps/web.py:471 +#: cps/web.py:470 msgid "Hot Books (Most Downloaded)" msgstr "热门书籍(最多下载)" -#: cps/web.py:507 +#: cps/web.py:501 #, python-format msgid "Downloaded books by %(user)s" msgstr "%(user)s 下载过的书籍" -#: cps/web.py:539 +#: cps/web.py:534 #, python-format msgid "Author: %(name)s" msgstr "作者:%(name)s" -#: cps/web.py:554 +#: cps/web.py:570 #, python-format msgid "Publisher: %(name)s" msgstr "出版社:%(name)s" -#: cps/web.py:569 +#: cps/web.py:598 #, python-format msgid "Series: %(serie)s" msgstr "丛书:%(serie)s" -#: cps/web.py:582 +#: cps/web.py:610 #, python-format msgid "Rating: %(rating)s stars" msgstr "评分:%(rating)s 星" -#: cps/web.py:597 +#: cps/web.py:626 #, python-format msgid "File format: %(format)s" msgstr "文件格式:%(format)s" -#: cps/web.py:615 +#: cps/web.py:663 #, python-format msgid "Category: %(name)s" msgstr "分类:%(name)s" -#: cps/web.py:631 +#: cps/web.py:690 #, python-format msgid "Language: %(name)s" msgstr "语言:%(name)s" -#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1371 +#: cps/templates/layout.html:56 cps/web.py:789 cps/web.py:1444 msgid "Advanced Search" msgstr "高级搜索" #: cps/templates/book_edit.html:235 cps/templates/feed.xml:33 #: cps/templates/index.xml:11 cps/templates/layout.html:45 #: cps/templates/layout.html:48 cps/templates/search_form.html:226 -#: cps/web.py:750 cps/web.py:1077 +#: cps/web.py:807 cps/web.py:1164 msgid "Search" msgstr "搜索" -#: cps/templates/admin.html:16 cps/web.py:903 +#: cps/templates/admin.html:16 cps/web.py:979 msgid "Downloads" msgstr "下载次数" -#: cps/web.py:980 +#: cps/web.py:1068 msgid "Ratings list" msgstr "评分列表" -#: cps/web.py:1001 +#: cps/web.py:1095 msgid "File formats list" msgstr "文件格式列表" -#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1055 +#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1149 msgid "Tasks" msgstr "任务列表" -#: cps/web.py:1215 +#: cps/web.py:1286 msgid "Published after " msgstr "出版时间晚于 " -#: cps/web.py:1222 +#: cps/web.py:1293 msgid "Published before " msgstr "出版时间早于 " -#: cps/web.py:1244 +#: cps/web.py:1315 #, python-format msgid "Rating <= %(rating)s" msgstr "评分 <= %(rating)s" -#: cps/web.py:1246 +#: cps/web.py:1317 #, python-format msgid "Rating >= %(rating)s" msgstr "评分 >= %(rating)s" -#: cps/web.py:1248 +#: cps/web.py:1319 #, python-format msgid "Read Status = %(status)s" msgstr "阅读状态 = %(status)s" -#: cps/web.py:1353 +#: cps/web.py:1425 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "搜索自定义列时出错,请重启 Calibre-Web" -#: cps/web.py:1449 +#: cps/web.py:1527 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "书籍已经成功加入 %(kindlemail)s 的发送队列" -#: cps/web.py:1453 +#: cps/web.py:1531 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "糟糕!发送这本书籍的时候出现错误:%(res)s" -#: cps/web.py:1455 +#: cps/web.py:1533 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "请先配置您的kindle邮箱。" -#: cps/web.py:1472 +#: cps/web.py:1550 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "邮件服务未配置,请联系网站管理员!" -#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1473 -#: cps/web.py:1480 cps/web.py:1486 cps/web.py:1505 cps/web.py:1509 -#: cps/web.py:1515 +#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1551 +#: cps/web.py:1558 cps/web.py:1564 cps/web.py:1583 cps/web.py:1587 +#: cps/web.py:1593 msgid "Register" msgstr "注册" -#: cps/web.py:1507 +#: cps/web.py:1585 msgid "Your e-mail is not allowed to register" msgstr "您的电子邮件不允许注册" -#: cps/web.py:1510 +#: cps/web.py:1588 msgid "Confirmation e-mail was send to your e-mail account." msgstr "确认邮件已经发送到您的邮箱。" -#: cps/web.py:1524 +#: cps/web.py:1602 msgid "Cannot activate LDAP authentication" msgstr "无法激活LDAP认证" -#: cps/web.py:1543 +#: cps/web.py:1621 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "后备登录“%(nickname)s”:无法访问LDAP服务器,或用户未知" -#: cps/web.py:1549 +#: cps/web.py:1627 #, python-format msgid "Could not login: %(message)s" msgstr "无法登录:%(message)s" -#: cps/web.py:1553 cps/web.py:1578 +#: cps/web.py:1631 cps/web.py:1656 msgid "Wrong Username or Password" msgstr "用户名或密码错误" -#: cps/web.py:1560 +#: cps/web.py:1638 msgid "New Password was send to your email address" msgstr "新密码已发送到您的邮箱" -#: cps/web.py:1566 +#: cps/web.py:1644 msgid "Please enter valid username to reset password" msgstr "请输入有效的用户名进行密码重置" -#: cps/web.py:1573 +#: cps/web.py:1651 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "您现在已以“%(nickname)s”登录" -#: cps/web.py:1639 cps/web.py:1688 +#: cps/web.py:1717 cps/web.py:1766 #, python-format msgid "%(name)s's profile" msgstr "%(name)s 的用户配置" -#: cps/web.py:1655 +#: cps/web.py:1733 msgid "Profile updated" msgstr "资料已更新" @@ -1309,36 +1331,36 @@ msgstr "资料已更新" msgid "Found no valid gmail.json file with OAuth information" msgstr "找不到包含 OAuth 信息的有效 gmail.json 文件" -#: cps/tasks/convert.py:137 +#: cps/tasks/convert.py:154 #, python-format msgid "Calibre ebook-convert %(tool)s not found" msgstr "Calibre 电子书转换器%(tool)s没有发现" -#: cps/tasks/convert.py:163 +#: cps/tasks/convert.py:187 #, python-format msgid "%(format)s format not found on disk" msgstr "硬盘上找不到 %(format)s 格式" -#: cps/tasks/convert.py:167 +#: cps/tasks/convert.py:191 msgid "Ebook converter failed with unknown error" msgstr "发生未知错误,书籍转换失败" -#: cps/tasks/convert.py:177 +#: cps/tasks/convert.py:201 #, python-format msgid "Kepubify-converter failed: %(error)s" msgstr "Kepubify 转换失败:%(error)s" -#: cps/tasks/convert.py:199 +#: cps/tasks/convert.py:223 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "找不到转换后的文件或文件夹%(folder)s中有多个文件" -#: cps/tasks/convert.py:222 +#: cps/tasks/convert.py:246 #, python-format msgid "Ebook-converter failed: %(error)s" msgstr "电子书转换器失败: %(error)s" -#: cps/tasks/convert.py:245 +#: cps/tasks/convert.py:269 #, python-format msgid "Calibre failed with error: %(error)s" msgstr "Calibre 运行失败,错误信息:%(error)s" @@ -1393,7 +1415,7 @@ msgid "Edit" msgstr "编辑书籍" #: cps/templates/admin.html:25 cps/templates/book_edit.html:16 -#: cps/templates/book_table.html:97 cps/templates/modal_dialogs.html:63 +#: cps/templates/book_table.html:100 cps/templates/modal_dialogs.html:63 #: cps/templates/modal_dialogs.html:116 cps/templates/user_edit.html:67 #: cps/templates/user_table.html:149 msgid "Delete" @@ -1403,179 +1425,179 @@ msgstr "删除数据" msgid "Public Shelf" msgstr "公共书架" -#: cps/templates/admin.html:51 +#: cps/templates/admin.html:53 msgid "Add New User" msgstr "添加新用户" -#: cps/templates/admin.html:53 +#: cps/templates/admin.html:55 msgid "Import LDAP Users" msgstr "导入LDAP用户" -#: cps/templates/admin.html:60 +#: cps/templates/admin.html:62 msgid "E-mail Server Settings" msgstr "SMTP邮件服务器设置" -#: cps/templates/admin.html:65 cps/templates/email_edit.html:31 +#: cps/templates/admin.html:67 cps/templates/email_edit.html:31 msgid "SMTP Hostname" msgstr "SMTP主机名" -#: cps/templates/admin.html:69 cps/templates/email_edit.html:35 +#: cps/templates/admin.html:71 cps/templates/email_edit.html:35 msgid "SMTP Port" msgstr "SMTP端口" -#: cps/templates/admin.html:73 cps/templates/email_edit.html:39 +#: cps/templates/admin.html:75 cps/templates/email_edit.html:39 msgid "Encryption" msgstr "加密" -#: cps/templates/admin.html:77 cps/templates/email_edit.html:47 +#: cps/templates/admin.html:79 cps/templates/email_edit.html:47 msgid "SMTP Login" msgstr "SMTP用户名" -#: cps/templates/admin.html:81 cps/templates/admin.html:92 +#: cps/templates/admin.html:83 cps/templates/admin.html:94 #: cps/templates/email_edit.html:55 msgid "From E-mail" msgstr "发件人邮箱" -#: cps/templates/admin.html:88 +#: cps/templates/admin.html:90 msgid "E-Mail Service" msgstr "电子邮件服务" -#: cps/templates/admin.html:89 +#: cps/templates/admin.html:91 msgid "Gmail via Oauth2" msgstr "通过Oauth2的Gmail" -#: cps/templates/admin.html:104 +#: cps/templates/admin.html:106 msgid "Configuration" msgstr "配置" -#: cps/templates/admin.html:107 +#: cps/templates/admin.html:109 msgid "Calibre Database Directory" msgstr "Calibre 数据库路径" -#: cps/templates/admin.html:111 cps/templates/config_edit.html:68 +#: cps/templates/admin.html:113 cps/templates/config_edit.html:68 msgid "Log Level" msgstr "日志级别" -#: cps/templates/admin.html:115 +#: cps/templates/admin.html:117 msgid "Port" msgstr "端口" -#: cps/templates/admin.html:120 +#: cps/templates/admin.html:122 msgid "External Port" msgstr "扩展端口" -#: cps/templates/admin.html:127 cps/templates/config_view_edit.html:28 +#: cps/templates/admin.html:129 cps/templates/config_view_edit.html:28 msgid "Books per Page" msgstr "每页书籍数" -#: cps/templates/admin.html:131 +#: cps/templates/admin.html:133 msgid "Uploads" msgstr "上传" -#: cps/templates/admin.html:135 +#: cps/templates/admin.html:137 msgid "Anonymous Browsing" msgstr "匿名浏览" -#: cps/templates/admin.html:139 +#: cps/templates/admin.html:141 msgid "Public Registration" msgstr "开放注册" -#: cps/templates/admin.html:143 +#: cps/templates/admin.html:145 msgid "Magic Link Remote Login" msgstr "魔法链接远程登录" -#: cps/templates/admin.html:147 +#: cps/templates/admin.html:149 msgid "Reverse Proxy Login" msgstr "反向代理登录" -#: cps/templates/admin.html:152 cps/templates/config_edit.html:173 +#: cps/templates/admin.html:154 cps/templates/config_edit.html:173 msgid "Reverse Proxy Header Name" msgstr "反向代理头部名称" -#: cps/templates/admin.html:157 +#: cps/templates/admin.html:159 msgid "Edit Calibre Database Configuration" msgstr "编辑Calibre数据库配置" -#: cps/templates/admin.html:158 +#: cps/templates/admin.html:160 msgid "Edit Basic Configuration" msgstr "编辑基本配置" -#: cps/templates/admin.html:159 +#: cps/templates/admin.html:161 msgid "Edit UI Configuration" msgstr "编辑界面配置" -#: cps/templates/admin.html:164 +#: cps/templates/admin.html:166 msgid "Administration" msgstr "管理" -#: cps/templates/admin.html:165 +#: cps/templates/admin.html:167 msgid "Download Debug Package" msgstr "下载Debug包" -#: cps/templates/admin.html:166 +#: cps/templates/admin.html:168 msgid "View Logs" msgstr "查看日志文件" -#: cps/templates/admin.html:169 +#: cps/templates/admin.html:171 msgid "Reconnect Calibre Database" msgstr "重新连接到Calibre数据库" -#: cps/templates/admin.html:170 +#: cps/templates/admin.html:172 msgid "Restart" msgstr "重启" -#: cps/templates/admin.html:171 +#: cps/templates/admin.html:173 msgid "Shutdown" msgstr "停止" -#: cps/templates/admin.html:176 +#: cps/templates/admin.html:178 msgid "Update" msgstr "更新" -#: cps/templates/admin.html:180 +#: cps/templates/admin.html:182 msgid "Version" msgstr "版本" -#: cps/templates/admin.html:181 +#: cps/templates/admin.html:183 msgid "Details" msgstr "详情" -#: cps/templates/admin.html:187 +#: cps/templates/admin.html:189 msgid "Current version" msgstr "当前版本" -#: cps/templates/admin.html:194 +#: cps/templates/admin.html:196 msgid "Check for Update" msgstr "检查更新" -#: cps/templates/admin.html:195 +#: cps/templates/admin.html:197 msgid "Perform Update" msgstr "执行更新" -#: cps/templates/admin.html:208 +#: cps/templates/admin.html:210 msgid "Are you sure you want to restart?" msgstr "您确定要重启吗?" -#: cps/templates/admin.html:213 cps/templates/admin.html:227 -#: cps/templates/admin.html:247 cps/templates/config_db.html:70 +#: cps/templates/admin.html:215 cps/templates/admin.html:229 +#: cps/templates/admin.html:249 cps/templates/config_db.html:70 msgid "OK" msgstr "确定" -#: cps/templates/admin.html:214 cps/templates/admin.html:228 -#: cps/templates/book_edit.html:213 cps/templates/book_table.html:124 +#: cps/templates/admin.html:216 cps/templates/admin.html:230 +#: cps/templates/book_edit.html:213 cps/templates/book_table.html:127 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 -#: cps/templates/config_view_edit.html:173 cps/templates/modal_dialogs.html:64 +#: cps/templates/config_view_edit.html:175 cps/templates/modal_dialogs.html:64 #: cps/templates/modal_dialogs.html:99 cps/templates/modal_dialogs.html:117 #: cps/templates/modal_dialogs.html:135 cps/templates/shelf_edit.html:27 #: cps/templates/user_edit.html:144 msgid "Cancel" msgstr "取消" -#: cps/templates/admin.html:226 +#: cps/templates/admin.html:228 msgid "Are you sure you want to shutdown?" msgstr "您确定要关闭吗?" -#: cps/templates/admin.html:238 +#: cps/templates/admin.html:240 msgid "Updating, please do not reload this page" msgstr "正在更新,请不要刷新页面" @@ -1587,44 +1609,43 @@ msgstr "通过" msgid "In Library" msgstr "在书库" -#: cps/templates/author.html:26 cps/templates/index.html:72 -#: cps/templates/search.html:29 cps/templates/shelf.html:19 +#: cps/templates/author.html:26 cps/templates/index.html:73 +#: cps/templates/search.html:30 cps/templates/shelf.html:19 msgid "Sort according to book date, newest first" msgstr "按图书日期排序,最新优先" -#: cps/templates/author.html:27 cps/templates/index.html:73 -#: cps/templates/search.html:30 cps/templates/shelf.html:20 +#: cps/templates/author.html:27 cps/templates/index.html:74 +#: cps/templates/search.html:31 cps/templates/shelf.html:20 msgid "Sort according to book date, oldest first" msgstr "按图书日期排序,最旧优先" -#: cps/templates/author.html:28 cps/templates/index.html:74 -#: cps/templates/search.html:31 cps/templates/shelf.html:21 +#: cps/templates/author.html:28 cps/templates/index.html:75 +#: cps/templates/search.html:32 cps/templates/shelf.html:21 msgid "Sort title in alphabetical order" msgstr "按标题按字母顺序排序" -#: cps/templates/author.html:29 cps/templates/index.html:75 -#: cps/templates/search.html:32 cps/templates/shelf.html:22 +#: cps/templates/author.html:29 cps/templates/index.html:76 +#: cps/templates/search.html:33 cps/templates/shelf.html:22 msgid "Sort title in reverse alphabetical order" msgstr "按标题逆字母顺序排序" -#: cps/templates/author.html:30 cps/templates/index.html:78 -#: cps/templates/search.html:35 cps/templates/shelf.html:25 +#: cps/templates/author.html:30 cps/templates/index.html:79 +#: cps/templates/search.html:36 cps/templates/shelf.html:25 msgid "Sort according to publishing date, newest first" msgstr "按出版日期排序,最新优先" -#: cps/templates/author.html:31 cps/templates/index.html:79 -#: cps/templates/search.html:36 cps/templates/shelf.html:26 +#: cps/templates/author.html:31 cps/templates/index.html:80 +#: cps/templates/search.html:37 cps/templates/shelf.html:26 msgid "Sort according to publishing date, oldest first" msgstr "按出版日期排序,最旧优先" -#: cps/templates/author.html:57 cps/templates/author.html:117 -#: cps/templates/discover.html:30 cps/templates/index.html:29 -#: cps/templates/index.html:111 cps/templates/search.html:65 -#: cps/templates/shelf.html:54 +#: cps/templates/author.html:56 cps/templates/author.html:115 +#: cps/templates/index.html:29 cps/templates/index.html:112 +#: cps/templates/search.html:66 cps/templates/shelf.html:54 msgid "reduce" msgstr "减少" -#: cps/templates/author.html:101 +#: cps/templates/author.html:99 msgid "More by" msgstr "更多" @@ -1749,7 +1770,7 @@ msgid "Fetch Metadata" msgstr "获取元数据" #: cps/templates/book_edit.html:212 cps/templates/config_db.html:53 -#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:172 +#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:174 #: cps/templates/email_edit.html:65 cps/templates/shelf_edit.html:25 #: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:142 msgid "Save" @@ -1876,26 +1897,34 @@ msgstr "输入简介" msgid "Comments" msgstr "简介" -#: cps/templates/book_table.html:77 cps/templates/book_table.html:79 -#: cps/templates/book_table.html:81 cps/templates/book_table.html:83 -#: cps/templates/book_table.html:87 cps/templates/book_table.html:89 -#: cps/templates/book_table.html:91 cps/templates/book_table.html:93 +#: cps/templates/book_table.html:75 +msgid "Archiv Status" +msgstr "存档状态" + +#: cps/templates/book_table.html:77 cps/templates/search_form.html:42 +msgid "Read Status" +msgstr "阅读状态" + +#: cps/templates/book_table.html:80 cps/templates/book_table.html:82 +#: cps/templates/book_table.html:84 cps/templates/book_table.html:86 +#: cps/templates/book_table.html:90 cps/templates/book_table.html:92 +#: cps/templates/book_table.html:96 msgid "Enter " msgstr "输入" -#: cps/templates/book_table.html:110 cps/templates/modal_dialogs.html:46 +#: cps/templates/book_table.html:113 cps/templates/modal_dialogs.html:46 msgid "Are you really sure?" msgstr "您真的确认?" -#: cps/templates/book_table.html:114 +#: cps/templates/book_table.html:117 msgid "Books with Title will be merged from:" msgstr "这本书籍将被合并:" -#: cps/templates/book_table.html:118 +#: cps/templates/book_table.html:121 msgid "Into Book with Title:" msgstr "合并到这本书籍:" -#: cps/templates/book_table.html:123 +#: cps/templates/book_table.html:126 msgid "Merge" msgstr "合并" @@ -2071,11 +2100,6 @@ msgstr "LDAP服务器端口" msgid "LDAP Encryption" msgstr "LDAP 加密" -#: cps/templates/config_edit.html:204 cps/templates/config_view_edit.html:62 -#: cps/templates/email_edit.html:41 -msgid "None" -msgstr "无" - #: cps/templates/config_edit.html:205 msgid "TLS" msgstr "TLS协议" @@ -2292,11 +2316,11 @@ msgstr "新用户默认显示权限" msgid "Show Random Books in Detail View" msgstr "在主页显示随机书籍" -#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:87 +#: cps/templates/config_view_edit.html:166 cps/templates/user_edit.html:87 msgid "Add Allowed/Denied Tags" msgstr "添加显示或隐藏书籍的标签值" -#: cps/templates/config_view_edit.html:166 +#: cps/templates/config_view_edit.html:167 msgid "Add Allowed/Denied custom column values" msgstr "添加显示或隐藏书籍的自定义栏目值" @@ -2345,13 +2369,13 @@ msgstr "归档" msgid "Description:" msgstr "简介:" -#: cps/templates/detail.html:256 cps/templates/search.html:14 +#: cps/templates/detail.html:256 cps/templates/search.html:15 msgid "Add to shelf" msgstr "添加到书架" #: cps/templates/detail.html:267 cps/templates/detail.html:284 #: cps/templates/feed.xml:79 cps/templates/layout.html:137 -#: cps/templates/search.html:20 +#: cps/templates/search.html:21 msgid "(Public)" msgstr "(公共)" @@ -2429,10 +2453,14 @@ msgstr "禁止注册的域名(黑名单)" msgid "Next" msgstr "下一个" -#: cps/templates/generate_kobo_auth_url.html:5 +#: cps/templates/generate_kobo_auth_url.html:6 msgid "Open the .kobo/Kobo eReader.conf file in a text editor and add (or edit):" msgstr "在文本编辑器中打开.kobo/Kobo eReader.conf,添加(或编辑):" +#: cps/templates/generate_kobo_auth_url.html:11 +msgid "Kobo Token:" +msgstr "Kobo Token:" + #: cps/templates/http_error.html:31 msgid "Calibre-Web Instance is unconfigured, please contact your administrator" msgstr "Calibre-Web 实例未配置,请联系您的管理员!" @@ -2449,29 +2477,29 @@ msgstr "回到首页" msgid "Logout User" msgstr "登出账号" -#: cps/templates/index.html:69 +#: cps/templates/index.html:70 msgid "Sort ascending according to download count" msgstr "按下载数排序" -#: cps/templates/index.html:70 +#: cps/templates/index.html:71 msgid "Sort descending according to download count" msgstr "按下载数逆序排序" -#: cps/templates/index.html:76 cps/templates/search.html:33 +#: cps/templates/index.html:77 cps/templates/search.html:34 #: cps/templates/shelf.html:23 msgid "Sort authors in alphabetical order" msgstr "按作者字母顺序排序" -#: cps/templates/index.html:77 cps/templates/search.html:34 +#: cps/templates/index.html:78 cps/templates/search.html:35 #: cps/templates/shelf.html:24 msgid "Sort authors in reverse alphabetical order" msgstr "按作者逆字母顺序排序" -#: cps/templates/index.html:81 +#: cps/templates/index.html:82 msgid "Sort ascending according to series index" msgstr "按丛书编号排序" -#: cps/templates/index.html:82 +#: cps/templates/index.html:83 msgid "Sort descending according to series index" msgstr "按丛书编号逆排序" @@ -2901,10 +2929,6 @@ msgstr "出版日期从" msgid "Published Date To" msgstr "出版日期到" -#: cps/templates/search_form.html:42 -msgid "Read Status" -msgstr "阅读状态" - #: cps/templates/search_form.html:59 msgid "Exclude Tags" msgstr "排除标签" @@ -3067,7 +3091,7 @@ msgstr "新建或查看" #: cps/templates/user_edit.html:70 msgid "Force full kobo sync" -msgstr "" +msgstr "强制与kobo完全同步" #: cps/templates/user_edit.html:88 msgid "Add allowed/Denied Custom Column Values" diff --git a/messages.pot b/messages.pot index 7fc39068..b3c09809 100644 --- a/messages.pot +++ b/messages.pot @@ -8,585 +8,588 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2022-01-15 09:19+0100\n" +"POT-Creation-Date: 2022-04-18 12:20+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" -#: cps/about.py:34 cps/about.py:49 cps/about.py:65 cps/converter.py:31 -msgid "not installed" -msgstr "" - -#: cps/about.py:47 cps/about.py:63 -msgid "installed" -msgstr "" - -#: cps/about.py:145 +#: cps/about.py:86 msgid "Statistics" msgstr "" -#: cps/admin.py:144 +#: cps/admin.py:141 msgid "Server restarted, please reload page" msgstr "" -#: cps/admin.py:146 +#: cps/admin.py:143 msgid "Performing shutdown of server, please close window" msgstr "" -#: cps/admin.py:154 +#: cps/admin.py:151 msgid "Reconnect successful" msgstr "" -#: cps/admin.py:157 +#: cps/admin.py:154 msgid "Unknown command" msgstr "" -#: cps/admin.py:167 cps/editbooks.py:707 cps/editbooks.py:721 -#: cps/editbooks.py:866 cps/editbooks.py:868 cps/editbooks.py:895 -#: cps/editbooks.py:911 cps/updater.py:584 cps/uploader.py:93 -#: cps/uploader.py:103 +#: cps/admin.py:176 cps/editbooks.py:713 cps/editbooks.py:892 +#: cps/editbooks.py:894 cps/editbooks.py:930 cps/editbooks.py:947 +#: cps/updater.py:608 cps/uploader.py:93 cps/uploader.py:103 msgid "Unknown" msgstr "" -#: cps/admin.py:188 +#: cps/admin.py:197 msgid "Admin page" msgstr "" -#: cps/admin.py:207 +#: cps/admin.py:217 msgid "Basic Configuration" msgstr "" -#: cps/admin.py:244 +#: cps/admin.py:255 msgid "UI Configuration" msgstr "" -#: cps/admin.py:277 cps/templates/admin.html:50 +#: cps/admin.py:289 cps/templates/admin.html:51 msgid "Edit Users" msgstr "" -#: cps/admin.py:318 cps/opds.py:109 cps/opds.py:198 cps/opds.py:275 -#: cps/opds.py:327 cps/templates/grid.html:13 cps/templates/languages.html:9 +#: cps/admin.py:333 cps/opds.py:529 cps/templates/grid.html:13 #: cps/templates/list.html:13 msgid "All" msgstr "" -#: cps/admin.py:343 cps/admin.py:1615 +#: cps/admin.py:360 cps/admin.py:1648 msgid "User not found" msgstr "" -#: cps/admin.py:357 +#: cps/admin.py:374 msgid "{} users deleted successfully" msgstr "" -#: cps/admin.py:379 cps/templates/config_view_edit.html:133 +#: cps/admin.py:397 cps/templates/config_view_edit.html:133 #: cps/templates/user_edit.html:45 cps/templates/user_table.html:81 msgid "Show All" msgstr "" -#: cps/admin.py:400 cps/admin.py:406 +#: cps/admin.py:418 cps/admin.py:424 msgid "Malformed request" msgstr "" -#: cps/admin.py:418 cps/admin.py:1493 +#: cps/admin.py:436 cps/admin.py:1526 msgid "Guest Name can't be changed" msgstr "" -#: cps/admin.py:430 +#: cps/admin.py:448 msgid "Guest can't have this role" msgstr "" -#: cps/admin.py:442 cps/admin.py:1451 +#: cps/admin.py:460 cps/admin.py:1484 msgid "No admin user remaining, can't remove admin role" msgstr "" -#: cps/admin.py:446 cps/admin.py:460 +#: cps/admin.py:464 cps/admin.py:478 msgid "Value has to be true or false" msgstr "" -#: cps/admin.py:448 +#: cps/admin.py:466 msgid "Invalid role" msgstr "" -#: cps/admin.py:452 +#: cps/admin.py:470 msgid "Guest can't have this view" msgstr "" -#: cps/admin.py:462 +#: cps/admin.py:480 msgid "Invalid view" msgstr "" -#: cps/admin.py:465 +#: cps/admin.py:483 msgid "Guest's Locale is determined automatically and can't be set" msgstr "" -#: cps/admin.py:469 +#: cps/admin.py:487 msgid "No Valid Locale Given" msgstr "" -#: cps/admin.py:480 +#: cps/admin.py:498 msgid "No Valid Book Language Given" msgstr "" -#: cps/admin.py:482 +#: cps/admin.py:500 cps/editbooks.py:1267 msgid "Parameter not found" msgstr "" -#: cps/admin.py:533 +#: cps/admin.py:553 msgid "Invalid Read Column" msgstr "" -#: cps/admin.py:539 +#: cps/admin.py:559 msgid "Invalid Restricted Column" msgstr "" -#: cps/admin.py:560 cps/admin.py:1323 +#: cps/admin.py:579 cps/admin.py:1355 msgid "Calibre-Web configuration updated" msgstr "" -#: cps/admin.py:572 +#: cps/admin.py:591 msgid "Do you really want to delete the Kobo Token?" msgstr "" -#: cps/admin.py:574 +#: cps/admin.py:593 msgid "Do you really want to delete this domain?" msgstr "" -#: cps/admin.py:576 +#: cps/admin.py:595 msgid "Do you really want to delete this user?" msgstr "" -#: cps/admin.py:578 +#: cps/admin.py:597 msgid "Are you sure you want to delete this shelf?" msgstr "" -#: cps/admin.py:580 +#: cps/admin.py:599 msgid "Are you sure you want to change locales of selected user(s)?" msgstr "" -#: cps/admin.py:582 +#: cps/admin.py:601 msgid "Are you sure you want to change visible book languages for selected user(s)?" msgstr "" -#: cps/admin.py:584 +#: cps/admin.py:603 msgid "Are you sure you want to change the selected role for the selected user(s)?" msgstr "" -#: cps/admin.py:586 +#: cps/admin.py:605 msgid "Are you sure you want to change the selected restrictions for the selected user(s)?" msgstr "" -#: cps/admin.py:588 +#: cps/admin.py:607 msgid "Are you sure you want to change the selected visibility restrictions for the selected user(s)?" msgstr "" -#: cps/admin.py:590 +#: cps/admin.py:610 msgid "Are you sure you want to change shelf sync behavior for the selected user(s)?" msgstr "" -#: cps/admin.py:592 +#: cps/admin.py:612 msgid "Are you sure you want to change Calibre library location?" msgstr "" -#: cps/admin.py:594 +#: cps/admin.py:614 msgid "Are you sure you want delete Calibre-Web's sync database to force a full sync with your Kobo Reader?" msgstr "" -#: cps/admin.py:743 +#: cps/admin.py:764 msgid "Tag not found" msgstr "" -#: cps/admin.py:755 +#: cps/admin.py:776 msgid "Invalid Action" msgstr "" -#: cps/admin.py:871 cps/admin.py:877 cps/admin.py:887 cps/admin.py:897 +#: cps/admin.py:893 cps/admin.py:899 cps/admin.py:909 cps/admin.py:919 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "" -#: cps/admin.py:873 cps/admin.py:879 cps/admin.py:889 cps/admin.py:899 +#: cps/admin.py:895 cps/admin.py:901 cps/admin.py:911 cps/admin.py:921 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "" -#: cps/admin.py:913 +#: cps/admin.py:936 msgid "{} sync entries deleted" msgstr "" -#: cps/admin.py:1036 +#: cps/admin.py:1059 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "" -#: cps/admin.py:1081 +#: cps/admin.py:1104 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1087 +#: cps/admin.py:1110 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1117 +#: cps/admin.py:1140 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "" -#: cps/admin.py:1123 +#: cps/admin.py:1146 msgid "Please Enter a LDAP Service Account and Password" msgstr "" -#: cps/admin.py:1126 +#: cps/admin.py:1149 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1131 +#: cps/admin.py:1154 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1133 +#: cps/admin.py:1156 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1137 +#: cps/admin.py:1160 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1139 +#: cps/admin.py:1162 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1146 +#: cps/admin.py:1169 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1148 +#: cps/admin.py:1171 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1155 +#: cps/admin.py:1178 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1197 cps/admin.py:1308 cps/admin.py:1405 cps/admin.py:1521 -#: cps/admin.py:1590 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 -#: cps/shelf.py:279 cps/shelf.py:341 cps/shelf.py:376 cps/shelf.py:451 -msgid "Settings DB is not Writeable" +#: cps/admin.py:1223 cps/admin.py:1339 cps/admin.py:1437 cps/admin.py:1554 +#: cps/admin.py:1623 cps/editbooks.py:678 cps/editbooks.py:882 +#: cps/editbooks.py:1130 cps/shelf.py:100 cps/shelf.py:160 cps/shelf.py:203 +#: cps/shelf.py:278 cps/shelf.py:343 cps/shelf.py:380 cps/shelf.py:456 +#: cps/web.py:1742 +#, python-format +msgid "Database error: %(error)s." msgstr "" -#: cps/admin.py:1208 +#: cps/admin.py:1235 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1223 +#: cps/admin.py:1253 msgid "DB is not Writeable" msgstr "" -#: cps/admin.py:1235 +#: cps/admin.py:1266 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1239 +#: cps/admin.py:1270 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1346 +#: cps/admin.py:1378 msgid "Database Settings updated" msgstr "" -#: cps/admin.py:1354 +#: cps/admin.py:1386 msgid "Database Configuration" msgstr "" -#: cps/admin.py:1370 cps/web.py:1479 +#: cps/admin.py:1402 cps/web.py:1557 msgid "Please fill out all fields!" msgstr "" -#: cps/admin.py:1378 +#: cps/admin.py:1410 msgid "E-mail is not from valid domain" msgstr "" -#: cps/admin.py:1384 cps/admin.py:1543 +#: cps/admin.py:1416 cps/admin.py:1576 msgid "Add new user" msgstr "" -#: cps/admin.py:1395 +#: cps/admin.py:1427 #, python-format msgid "User '%(user)s' created" msgstr "" -#: cps/admin.py:1401 +#: cps/admin.py:1433 msgid "Found an existing account for this e-mail address or name." msgstr "" -#: cps/admin.py:1430 +#: cps/admin.py:1463 #, python-format msgid "User '%(nick)s' deleted" msgstr "" -#: cps/admin.py:1432 cps/admin.py:1433 +#: cps/admin.py:1465 cps/admin.py:1466 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1436 +#: cps/admin.py:1469 msgid "No admin user remaining, can't delete user" msgstr "" -#: cps/admin.py:1509 cps/admin.py:1634 +#: cps/admin.py:1542 cps/admin.py:1667 #, python-format msgid "Edit User %(nick)s" msgstr "" -#: cps/admin.py:1513 +#: cps/admin.py:1546 #, python-format msgid "User '%(nick)s' updated" msgstr "" -#: cps/admin.py:1517 cps/admin.py:1649 cps/web.py:1504 cps/web.py:1564 +#: cps/admin.py:1550 cps/admin.py:1682 cps/web.py:1582 cps/web.py:1642 msgid "An unknown error occurred. Please try again later." msgstr "" -#: cps/admin.py:1552 cps/templates/admin.html:98 +#: cps/admin.py:1585 cps/templates/admin.html:100 msgid "Edit E-mail Server Settings" msgstr "" -#: cps/admin.py:1571 +#: cps/admin.py:1604 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1597 +#: cps/admin.py:1630 #, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "" -#: cps/admin.py:1600 +#: cps/admin.py:1633 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "" -#: cps/admin.py:1602 +#: cps/admin.py:1635 msgid "Please configure your e-mail address first..." msgstr "" -#: cps/admin.py:1604 +#: cps/admin.py:1637 msgid "E-mail server settings updated" msgstr "" -#: cps/admin.py:1646 +#: cps/admin.py:1679 #, python-format msgid "Password for user %(user)s reset" msgstr "" -#: cps/admin.py:1652 cps/web.py:1444 +#: cps/admin.py:1685 cps/web.py:1522 msgid "Please configure the SMTP mail settings first..." msgstr "" -#: cps/admin.py:1663 +#: cps/admin.py:1696 msgid "Logfile viewer" msgstr "" -#: cps/admin.py:1729 +#: cps/admin.py:1762 msgid "Requesting update package" msgstr "" -#: cps/admin.py:1730 +#: cps/admin.py:1763 msgid "Downloading update package" msgstr "" -#: cps/admin.py:1731 +#: cps/admin.py:1764 msgid "Unzipping update package" msgstr "" -#: cps/admin.py:1732 +#: cps/admin.py:1765 msgid "Replacing files" msgstr "" -#: cps/admin.py:1733 +#: cps/admin.py:1766 msgid "Database connections are closed" msgstr "" -#: cps/admin.py:1734 +#: cps/admin.py:1767 msgid "Stopping server" msgstr "" -#: cps/admin.py:1735 +#: cps/admin.py:1768 msgid "Update finished, please press okay and reload page" msgstr "" -#: cps/admin.py:1736 cps/admin.py:1737 cps/admin.py:1738 cps/admin.py:1739 -#: cps/admin.py:1740 cps/admin.py:1741 +#: cps/admin.py:1769 cps/admin.py:1770 cps/admin.py:1771 cps/admin.py:1772 +#: cps/admin.py:1773 cps/admin.py:1774 msgid "Update failed:" msgstr "" -#: cps/admin.py:1736 cps/updater.py:385 cps/updater.py:595 cps/updater.py:597 +#: cps/admin.py:1769 cps/updater.py:384 cps/updater.py:619 cps/updater.py:621 msgid "HTTP Error" msgstr "" -#: cps/admin.py:1737 cps/updater.py:387 cps/updater.py:599 +#: cps/admin.py:1770 cps/updater.py:386 cps/updater.py:623 msgid "Connection error" msgstr "" -#: cps/admin.py:1738 cps/updater.py:389 cps/updater.py:601 +#: cps/admin.py:1771 cps/updater.py:388 cps/updater.py:625 msgid "Timeout while establishing connection" msgstr "" -#: cps/admin.py:1739 cps/updater.py:391 cps/updater.py:603 +#: cps/admin.py:1772 cps/updater.py:390 cps/updater.py:627 msgid "General error" msgstr "" -#: cps/admin.py:1740 +#: cps/admin.py:1773 msgid "Update file could not be saved in temp dir" msgstr "" -#: cps/admin.py:1741 +#: cps/admin.py:1774 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1765 +#: cps/admin.py:1798 msgid "Failed to extract at least One LDAP User" msgstr "" -#: cps/admin.py:1810 +#: cps/admin.py:1843 msgid "Failed to Create at Least One LDAP User" msgstr "" -#: cps/admin.py:1823 +#: cps/admin.py:1856 #, python-format msgid "Error: %(ldaperror)s" msgstr "" -#: cps/admin.py:1827 +#: cps/admin.py:1860 msgid "Error: No user returned in response of LDAP server" msgstr "" -#: cps/admin.py:1860 +#: cps/admin.py:1893 msgid "At Least One LDAP User Not Found in Database" msgstr "" -#: cps/admin.py:1862 +#: cps/admin.py:1895 msgid "{} User Successfully Imported" msgstr "" #: cps/converter.py:30 -msgid "not configured" +msgid "not installed" msgstr "" -#: cps/converter.py:32 +#: cps/converter.py:31 msgid "Execution permissions missing" msgstr "" -#: cps/db.py:651 cps/web.py:667 cps/web.py:1155 +#: cps/db.py:674 cps/web.py:710 cps/web.py:1222 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "" -#: cps/editbooks.py:300 cps/editbooks.py:302 +#: cps/db.py:917 cps/templates/config_edit.html:204 +#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41 +#: cps/web.py:551 cps/web.py:585 cps/web.py:646 cps/web.py:671 cps/web.py:1003 +#: cps/web.py:1032 cps/web.py:1066 cps/web.py:1093 cps/web.py:1132 +msgid "None" +msgstr "" + +#: cps/editbooks.py:295 cps/editbooks.py:297 msgid "Book Format Successfully Deleted" msgstr "" -#: cps/editbooks.py:309 cps/editbooks.py:311 +#: cps/editbooks.py:304 cps/editbooks.py:306 msgid "Book Successfully Deleted" msgstr "" -#: cps/editbooks.py:361 +#: cps/editbooks.py:358 msgid "You are missing permissions to delete books" msgstr "" -#: cps/editbooks.py:376 cps/editbooks.py:763 cps/web.py:523 cps/web.py:1703 -#: cps/web.py:1744 cps/web.py:1811 +#: cps/editbooks.py:373 cps/editbooks.py:765 cps/web.py:518 cps/web.py:1783 +#: cps/web.py:1825 cps/web.py:1870 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "" -#: cps/editbooks.py:410 +#: cps/editbooks.py:408 msgid "edit metadata" msgstr "" -#: cps/editbooks.py:458 +#: cps/editbooks.py:457 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "" -#: cps/editbooks.py:494 cps/editbooks.py:958 +#: cps/editbooks.py:493 cps/editbooks.py:1001 #, python-format msgid "'%(langname)s' is not a valid language" msgstr "" -#: cps/editbooks.py:634 cps/editbooks.py:985 +#: cps/editbooks.py:634 +msgid "User has no rights to upload additional file formats" +msgstr "" + +#: cps/editbooks.py:639 cps/editbooks.py:1029 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "" -#: cps/editbooks.py:638 cps/editbooks.py:989 +#: cps/editbooks.py:643 cps/editbooks.py:1033 msgid "File to be uploaded must have an extension" msgstr "" -#: cps/editbooks.py:650 +#: cps/editbooks.py:655 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "" -#: cps/editbooks.py:655 +#: cps/editbooks.py:660 #, python-format msgid "Failed to store file %(file)s." msgstr "" -#: cps/editbooks.py:673 cps/editbooks.py:1076 cps/web.py:1664 +#: cps/editbooks.py:683 #, python-format -msgid "Database error: %(error)s." +msgid "File format %(ext)s added to %(book)s" msgstr "" -#: cps/editbooks.py:678 -#, python-format -msgid "File format %(ext)s added to %(book)s" +#: cps/editbooks.py:697 cps/editbooks.py:809 +msgid "User has no rights to upload cover" msgstr "" -#: cps/editbooks.py:814 +#: cps/editbooks.py:828 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "" -#: cps/editbooks.py:848 +#: cps/editbooks.py:869 msgid "Metadata successfully updated" msgstr "" -#: cps/editbooks.py:861 -msgid "Error editing book, please check logfile for details" +#: cps/editbooks.py:887 +msgid "Error editing book: {}" msgstr "" -#: cps/editbooks.py:899 +#: cps/editbooks.py:951 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "" -#: cps/editbooks.py:997 +#: cps/editbooks.py:1041 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "" -#: cps/editbooks.py:1016 +#: cps/editbooks.py:1061 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "" -#: cps/editbooks.py:1063 +#: cps/editbooks.py:1117 #, python-format msgid "File %(file)s uploaded" msgstr "" -#: cps/editbooks.py:1088 +#: cps/editbooks.py:1143 msgid "Source or destination format for conversion missing" msgstr "" -#: cps/editbooks.py:1096 +#: cps/editbooks.py:1151 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "" -#: cps/editbooks.py:1100 +#: cps/editbooks.py:1155 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "" @@ -599,174 +602,190 @@ msgstr "" msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "" -#: cps/helper.py:77 +#: cps/helper.py:81 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "" -#: cps/helper.py:83 cps/tasks/convert.py:73 +#: cps/helper.py:87 cps/tasks/convert.py:75 #, python-format msgid "%(format)s not found on Google Drive: %(fn)s" msgstr "" -#: cps/helper.py:88 +#: cps/helper.py:92 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "" -#: cps/helper.py:93 cps/helper.py:217 cps/templates/detail.html:41 +#: cps/helper.py:97 cps/helper.py:221 cps/templates/detail.html:41 #: cps/templates/detail.html:45 msgid "Send to Kindle" msgstr "" -#: cps/helper.py:94 cps/helper.py:111 cps/helper.py:219 +#: cps/helper.py:98 cps/helper.py:115 cps/helper.py:223 msgid "This e-mail has been sent via Calibre-Web." msgstr "" -#: cps/helper.py:109 +#: cps/helper.py:113 msgid "Calibre-Web test e-mail" msgstr "" -#: cps/helper.py:110 +#: cps/helper.py:114 msgid "Test e-mail" msgstr "" -#: cps/helper.py:127 +#: cps/helper.py:131 msgid "Get Started with Calibre-Web" msgstr "" -#: cps/helper.py:132 +#: cps/helper.py:136 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "" -#: cps/helper.py:143 cps/helper.py:149 +#: cps/helper.py:147 cps/helper.py:153 #, python-format msgid "Convert %(orig)s to %(format)s and send to Kindle" msgstr "" -#: cps/helper.py:168 cps/helper.py:172 cps/helper.py:176 +#: cps/helper.py:172 cps/helper.py:176 cps/helper.py:180 #, python-format msgid "Send %(format)s to Kindle" msgstr "" -#: cps/helper.py:216 cps/tasks/convert.py:90 +#: cps/helper.py:220 cps/tasks/convert.py:92 #, python-format msgid "%(book)s send to Kindle" msgstr "" -#: cps/helper.py:221 +#: cps/helper.py:225 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "" -#: cps/helper.py:313 +#: cps/helper.py:353 +msgid "Read status could not set: {}" +msgstr "" + +#: cps/helper.py:376 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:319 +#: cps/helper.py:382 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "" -#: cps/helper.py:330 +#: cps/helper.py:393 #, python-format msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "" -#: cps/helper.py:385 +#: cps/helper.py:458 #, python-format -msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" +msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "" -#: cps/helper.py:400 +#: cps/helper.py:529 cps/helper.py:538 #, python-format -msgid "Rename file in path '%(src)s' to '%(dest)s' failed with error: %(error)s" +msgid "File %(file)s not found on Google Drive" msgstr "" -#: cps/helper.py:425 cps/helper.py:435 cps/helper.py:443 +#: cps/helper.py:572 #, python-format -msgid "File %(file)s not found on Google Drive" +msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" +msgstr "" + +#: cps/helper.py:592 +msgid "Error in rename file in path: {}" msgstr "" -#: cps/helper.py:464 +#: cps/helper.py:610 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "" -#: cps/helper.py:504 cps/web.py:1659 +#: cps/helper.py:651 cps/web.py:1737 msgid "Found an existing account for this e-mail address" msgstr "" -#: cps/helper.py:512 +#: cps/helper.py:659 msgid "This username is already taken" msgstr "" -#: cps/helper.py:522 +#: cps/helper.py:669 msgid "Invalid e-mail address format" msgstr "" -#: cps/helper.py:595 +#: cps/helper.py:754 +msgid "Python modul 'advocate' is not installed but is needed for cover downloads" +msgstr "" + +#: cps/helper.py:767 msgid "Error Downloading Cover" msgstr "" -#: cps/helper.py:598 +#: cps/helper.py:770 msgid "Cover Format Error" msgstr "" -#: cps/helper.py:608 +#: cps/helper.py:773 +msgid "You are not allowed to access localhost or the local network for cover uploads" +msgstr "" + +#: cps/helper.py:783 msgid "Failed to create path for cover" msgstr "" -#: cps/helper.py:624 +#: cps/helper.py:799 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "" -#: cps/helper.py:635 +#: cps/helper.py:810 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:648 +#: cps/helper.py:822 msgid "Invalid cover file content" msgstr "" -#: cps/helper.py:652 +#: cps/helper.py:826 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "" -#: cps/helper.py:704 +#: cps/helper.py:878 msgid "Unrar binary file not found" msgstr "" -#: cps/helper.py:715 +#: cps/helper.py:889 msgid "Error excecuting UnRar" msgstr "" -#: cps/helper.py:763 +#: cps/helper.py:937 msgid "Waiting" msgstr "" -#: cps/helper.py:765 +#: cps/helper.py:939 msgid "Failed" msgstr "" -#: cps/helper.py:767 +#: cps/helper.py:941 msgid "Started" msgstr "" -#: cps/helper.py:769 +#: cps/helper.py:943 msgid "Finished" msgstr "" -#: cps/helper.py:771 +#: cps/helper.py:945 msgid "Unknown Status" msgstr "" -#: cps/kobo_auth.py:127 -msgid "PLease access calibre-web from non localhost to get valid api_endpoint for kobo device" +#: cps/kobo_auth.py:128 +msgid "Please access Calibre-Web from non localhost to get valid api_endpoint for kobo device" msgstr "" -#: cps/kobo_auth.py:130 cps/kobo_auth.py:158 +#: cps/kobo_auth.py:154 msgid "Kobo Setup" msgstr "" @@ -775,7 +794,7 @@ msgstr "" msgid "Register with %(provider)s" msgstr "" -#: cps/oauth_bb.py:138 cps/remotelogin.py:133 cps/web.py:1535 +#: cps/oauth_bb.py:138 cps/remotelogin.py:130 cps/web.py:1613 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "" @@ -836,163 +855,163 @@ msgstr "" msgid "Google Oauth error: {}" msgstr "" -#: cps/opds.py:384 +#: cps/opds.py:298 msgid "{} Stars" msgstr "" -#: cps/remotelogin.py:65 cps/templates/layout.html:84 -#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1584 +#: cps/remotelogin.py:62 cps/templates/layout.html:84 +#: cps/templates/login.html:4 cps/templates/login.html:21 cps/web.py:1662 msgid "Login" msgstr "" -#: cps/remotelogin.py:77 cps/remotelogin.py:111 +#: cps/remotelogin.py:74 cps/remotelogin.py:108 msgid "Token not found" msgstr "" -#: cps/remotelogin.py:86 cps/remotelogin.py:119 +#: cps/remotelogin.py:83 cps/remotelogin.py:116 msgid "Token has expired" msgstr "" -#: cps/remotelogin.py:95 +#: cps/remotelogin.py:92 msgid "Success! Please return to your device" msgstr "" -#: cps/render_template.py:39 cps/web.py:416 +#: cps/render_template.py:41 cps/web.py:407 msgid "Books" msgstr "" -#: cps/render_template.py:41 +#: cps/render_template.py:43 msgid "Show recent books" msgstr "" -#: cps/render_template.py:42 cps/templates/index.xml:25 +#: cps/render_template.py:44 cps/templates/index.xml:25 msgid "Hot Books" msgstr "" -#: cps/render_template.py:44 +#: cps/render_template.py:46 msgid "Show Hot Books" msgstr "" -#: cps/render_template.py:46 cps/render_template.py:51 +#: cps/render_template.py:48 cps/render_template.py:53 msgid "Downloaded Books" msgstr "" -#: cps/render_template.py:48 cps/render_template.py:53 +#: cps/render_template.py:50 cps/render_template.py:55 #: cps/templates/user_table.html:167 msgid "Show Downloaded Books" msgstr "" -#: cps/render_template.py:56 cps/templates/index.xml:32 cps/web.py:430 +#: cps/render_template.py:58 cps/templates/index.xml:32 cps/web.py:422 msgid "Top Rated Books" msgstr "" -#: cps/render_template.py:58 cps/templates/user_table.html:161 +#: cps/render_template.py:60 cps/templates/user_table.html:161 msgid "Show Top Rated Books" msgstr "" -#: cps/render_template.py:59 cps/templates/index.xml:54 -#: cps/templates/index.xml:58 cps/web.py:676 +#: cps/render_template.py:61 cps/templates/index.xml:54 +#: cps/templates/index.xml:58 cps/web.py:729 msgid "Read Books" msgstr "" -#: cps/render_template.py:61 +#: cps/render_template.py:63 msgid "Show read and unread" msgstr "" -#: cps/render_template.py:63 cps/templates/index.xml:61 -#: cps/templates/index.xml:65 cps/web.py:679 +#: cps/render_template.py:65 cps/templates/index.xml:61 +#: cps/templates/index.xml:65 cps/web.py:732 msgid "Unread Books" msgstr "" -#: cps/render_template.py:65 +#: cps/render_template.py:67 msgid "Show unread" msgstr "" -#: cps/render_template.py:66 +#: cps/render_template.py:68 msgid "Discover" msgstr "" -#: cps/render_template.py:68 cps/templates/index.xml:50 +#: cps/render_template.py:70 cps/templates/index.xml:50 #: cps/templates/user_table.html:162 msgid "Show Random Books" msgstr "" -#: cps/render_template.py:69 cps/templates/book_table.html:67 -#: cps/templates/index.xml:83 cps/web.py:1041 +#: cps/render_template.py:71 cps/templates/book_table.html:67 +#: cps/templates/index.xml:83 cps/web.py:1135 msgid "Categories" msgstr "" -#: cps/render_template.py:71 cps/templates/user_table.html:158 +#: cps/render_template.py:73 cps/templates/user_table.html:158 msgid "Show category selection" msgstr "" -#: cps/render_template.py:72 cps/templates/book_edit.html:90 +#: cps/render_template.py:74 cps/templates/book_edit.html:90 #: cps/templates/book_table.html:68 cps/templates/index.xml:90 -#: cps/templates/search_form.html:69 cps/web.py:948 cps/web.py:959 +#: cps/templates/search_form.html:69 cps/web.py:1034 cps/web.py:1041 msgid "Series" msgstr "" -#: cps/render_template.py:74 cps/templates/user_table.html:157 +#: cps/render_template.py:76 cps/templates/user_table.html:157 msgid "Show series selection" msgstr "" -#: cps/render_template.py:75 cps/templates/book_table.html:66 +#: cps/render_template.py:77 cps/templates/book_table.html:66 #: cps/templates/index.xml:69 msgid "Authors" msgstr "" -#: cps/render_template.py:77 cps/templates/user_table.html:160 +#: cps/render_template.py:79 cps/templates/user_table.html:160 msgid "Show author selection" msgstr "" -#: cps/render_template.py:79 cps/templates/book_table.html:72 -#: cps/templates/index.xml:76 cps/web.py:925 +#: cps/render_template.py:81 cps/templates/book_table.html:72 +#: cps/templates/index.xml:76 cps/web.py:1006 msgid "Publishers" msgstr "" -#: cps/render_template.py:81 cps/templates/user_table.html:163 +#: cps/render_template.py:83 cps/templates/user_table.html:163 msgid "Show publisher selection" msgstr "" -#: cps/render_template.py:82 cps/templates/book_table.html:70 +#: cps/render_template.py:84 cps/templates/book_table.html:70 #: cps/templates/index.xml:97 cps/templates/search_form.html:107 -#: cps/web.py:1018 +#: cps/web.py:1108 msgid "Languages" msgstr "" -#: cps/render_template.py:85 cps/templates/user_table.html:155 +#: cps/render_template.py:87 cps/templates/user_table.html:155 msgid "Show language selection" msgstr "" -#: cps/render_template.py:86 cps/templates/index.xml:104 +#: cps/render_template.py:88 cps/templates/index.xml:104 msgid "Ratings" msgstr "" -#: cps/render_template.py:88 cps/templates/user_table.html:164 +#: cps/render_template.py:90 cps/templates/user_table.html:164 msgid "Show ratings selection" msgstr "" -#: cps/render_template.py:89 cps/templates/index.xml:112 +#: cps/render_template.py:91 cps/templates/index.xml:112 msgid "File formats" msgstr "" -#: cps/render_template.py:91 cps/templates/user_table.html:165 +#: cps/render_template.py:93 cps/templates/user_table.html:165 msgid "Show file formats selection" msgstr "" -#: cps/render_template.py:93 cps/web.py:703 +#: cps/render_template.py:95 cps/web.py:755 msgid "Archived Books" msgstr "" -#: cps/render_template.py:95 cps/templates/user_table.html:166 +#: cps/render_template.py:97 cps/templates/user_table.html:166 msgid "Show archived books" msgstr "" -#: cps/render_template.py:97 cps/web.py:780 +#: cps/render_template.py:100 cps/web.py:837 msgid "Books List" msgstr "" -#: cps/render_template.py:99 cps/templates/user_table.html:168 +#: cps/render_template.py:102 cps/templates/user_table.html:168 msgid "Show Books List" msgstr "" @@ -1046,260 +1065,264 @@ msgstr "" msgid "Create a Shelf" msgstr "" -#: cps/shelf.py:237 +#: cps/shelf.py:236 msgid "Sorry you are not allowed to edit this shelf" msgstr "" -#: cps/shelf.py:239 +#: cps/shelf.py:238 msgid "Edit a shelf" msgstr "" -#: cps/shelf.py:249 +#: cps/shelf.py:248 msgid "Sorry you are not allowed to create a public shelf" msgstr "" -#: cps/shelf.py:266 +#: cps/shelf.py:265 #, python-format msgid "Shelf %(title)s created" msgstr "" -#: cps/shelf.py:269 +#: cps/shelf.py:268 #, python-format msgid "Shelf %(title)s changed" msgstr "" -#: cps/shelf.py:283 +#: cps/shelf.py:282 msgid "There was an error" msgstr "" -#: cps/shelf.py:305 +#: cps/shelf.py:304 #, python-format msgid "A public shelf with the name '%(title)s' already exists." msgstr "" -#: cps/shelf.py:316 +#: cps/shelf.py:315 #, python-format msgid "A private shelf with the name '%(title)s' already exists." msgstr "" #: cps/shelf.py:337 +msgid "Error deleting Shelf" +msgstr "" + +#: cps/shelf.py:339 msgid "Shelf successfully deleted" msgstr "" -#: cps/shelf.py:386 +#: cps/shelf.py:389 #, python-format msgid "Change order of Shelf: '%(name)s'" msgstr "" -#: cps/shelf.py:456 +#: cps/shelf.py:461 #, python-format msgid "Shelf: '%(name)s'" msgstr "" -#: cps/shelf.py:460 +#: cps/shelf.py:465 msgid "Error opening shelf. Shelf does not exist or is not accessible" msgstr "" -#: cps/updater.py:403 cps/updater.py:414 cps/updater.py:514 cps/updater.py:529 +#: cps/updater.py:426 cps/updater.py:437 cps/updater.py:538 cps/updater.py:553 msgid "Unexpected data while reading update information" msgstr "" -#: cps/updater.py:410 cps/updater.py:521 +#: cps/updater.py:433 cps/updater.py:545 msgid "No update available. You already have the latest version installed" msgstr "" -#: cps/updater.py:428 +#: cps/updater.py:451 msgid "A new update is available. Click on the button below to update to the latest version." msgstr "" -#: cps/updater.py:446 +#: cps/updater.py:469 msgid "Could not fetch update information" msgstr "" -#: cps/updater.py:456 +#: cps/updater.py:479 msgid "Click on the button below to update to the latest stable version." msgstr "" -#: cps/updater.py:465 cps/updater.py:479 cps/updater.py:490 +#: cps/updater.py:488 cps/updater.py:502 cps/updater.py:513 #, python-format msgid "A new update is available. Click on the button below to update to version: %(version)s" msgstr "" -#: cps/updater.py:507 +#: cps/updater.py:531 msgid "No release information available" msgstr "" -#: cps/templates/index.html:5 cps/web.py:440 +#: cps/templates/index.html:5 cps/web.py:434 msgid "Discover (Random Books)" msgstr "" -#: cps/web.py:471 +#: cps/web.py:470 msgid "Hot Books (Most Downloaded)" msgstr "" -#: cps/web.py:507 +#: cps/web.py:501 #, python-format msgid "Downloaded books by %(user)s" msgstr "" -#: cps/web.py:539 +#: cps/web.py:534 #, python-format msgid "Author: %(name)s" msgstr "" -#: cps/web.py:554 +#: cps/web.py:570 #, python-format msgid "Publisher: %(name)s" msgstr "" -#: cps/web.py:569 +#: cps/web.py:598 #, python-format msgid "Series: %(serie)s" msgstr "" -#: cps/web.py:582 +#: cps/web.py:610 #, python-format msgid "Rating: %(rating)s stars" msgstr "" -#: cps/web.py:597 +#: cps/web.py:626 #, python-format msgid "File format: %(format)s" msgstr "" -#: cps/web.py:615 +#: cps/web.py:663 #, python-format msgid "Category: %(name)s" msgstr "" -#: cps/web.py:631 +#: cps/web.py:690 #, python-format msgid "Language: %(name)s" msgstr "" -#: cps/templates/layout.html:56 cps/web.py:737 cps/web.py:1371 +#: cps/templates/layout.html:56 cps/web.py:789 cps/web.py:1444 msgid "Advanced Search" msgstr "" #: cps/templates/book_edit.html:235 cps/templates/feed.xml:33 #: cps/templates/index.xml:11 cps/templates/layout.html:45 #: cps/templates/layout.html:48 cps/templates/search_form.html:226 -#: cps/web.py:750 cps/web.py:1077 +#: cps/web.py:807 cps/web.py:1164 msgid "Search" msgstr "" -#: cps/templates/admin.html:16 cps/web.py:903 +#: cps/templates/admin.html:16 cps/web.py:979 msgid "Downloads" msgstr "" -#: cps/web.py:980 +#: cps/web.py:1068 msgid "Ratings list" msgstr "" -#: cps/web.py:1001 +#: cps/web.py:1095 msgid "File formats list" msgstr "" -#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1055 +#: cps/templates/layout.html:73 cps/templates/tasks.html:7 cps/web.py:1149 msgid "Tasks" msgstr "" -#: cps/web.py:1215 +#: cps/web.py:1286 msgid "Published after " msgstr "" -#: cps/web.py:1222 +#: cps/web.py:1293 msgid "Published before " msgstr "" -#: cps/web.py:1244 +#: cps/web.py:1315 #, python-format msgid "Rating <= %(rating)s" msgstr "" -#: cps/web.py:1246 +#: cps/web.py:1317 #, python-format msgid "Rating >= %(rating)s" msgstr "" -#: cps/web.py:1248 +#: cps/web.py:1319 #, python-format msgid "Read Status = %(status)s" msgstr "" -#: cps/web.py:1353 +#: cps/web.py:1425 msgid "Error on search for custom columns, please restart Calibre-Web" msgstr "" -#: cps/web.py:1449 +#: cps/web.py:1527 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "" -#: cps/web.py:1453 +#: cps/web.py:1531 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "" -#: cps/web.py:1455 +#: cps/web.py:1533 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "" -#: cps/web.py:1472 +#: cps/web.py:1550 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "" -#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1473 -#: cps/web.py:1480 cps/web.py:1486 cps/web.py:1505 cps/web.py:1509 -#: cps/web.py:1515 +#: cps/templates/layout.html:85 cps/templates/register.html:17 cps/web.py:1551 +#: cps/web.py:1558 cps/web.py:1564 cps/web.py:1583 cps/web.py:1587 +#: cps/web.py:1593 msgid "Register" msgstr "" -#: cps/web.py:1507 +#: cps/web.py:1585 msgid "Your e-mail is not allowed to register" msgstr "" -#: cps/web.py:1510 +#: cps/web.py:1588 msgid "Confirmation e-mail was send to your e-mail account." msgstr "" -#: cps/web.py:1524 +#: cps/web.py:1602 msgid "Cannot activate LDAP authentication" msgstr "" -#: cps/web.py:1543 +#: cps/web.py:1621 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1549 +#: cps/web.py:1627 #, python-format msgid "Could not login: %(message)s" msgstr "" -#: cps/web.py:1553 cps/web.py:1578 +#: cps/web.py:1631 cps/web.py:1656 msgid "Wrong Username or Password" msgstr "" -#: cps/web.py:1560 +#: cps/web.py:1638 msgid "New Password was send to your email address" msgstr "" -#: cps/web.py:1566 +#: cps/web.py:1644 msgid "Please enter valid username to reset password" msgstr "" -#: cps/web.py:1573 +#: cps/web.py:1651 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "" -#: cps/web.py:1639 cps/web.py:1688 +#: cps/web.py:1717 cps/web.py:1766 #, python-format msgid "%(name)s's profile" msgstr "" -#: cps/web.py:1655 +#: cps/web.py:1733 msgid "Profile updated" msgstr "" @@ -1307,36 +1330,36 @@ msgstr "" msgid "Found no valid gmail.json file with OAuth information" msgstr "" -#: cps/tasks/convert.py:137 +#: cps/tasks/convert.py:154 #, python-format msgid "Calibre ebook-convert %(tool)s not found" msgstr "" -#: cps/tasks/convert.py:163 +#: cps/tasks/convert.py:187 #, python-format msgid "%(format)s format not found on disk" msgstr "" -#: cps/tasks/convert.py:167 +#: cps/tasks/convert.py:191 msgid "Ebook converter failed with unknown error" msgstr "" -#: cps/tasks/convert.py:177 +#: cps/tasks/convert.py:201 #, python-format msgid "Kepubify-converter failed: %(error)s" msgstr "" -#: cps/tasks/convert.py:199 +#: cps/tasks/convert.py:223 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" msgstr "" -#: cps/tasks/convert.py:222 +#: cps/tasks/convert.py:246 #, python-format msgid "Ebook-converter failed: %(error)s" msgstr "" -#: cps/tasks/convert.py:245 +#: cps/tasks/convert.py:269 #, python-format msgid "Calibre failed with error: %(error)s" msgstr "" @@ -1391,7 +1414,7 @@ msgid "Edit" msgstr "" #: cps/templates/admin.html:25 cps/templates/book_edit.html:16 -#: cps/templates/book_table.html:97 cps/templates/modal_dialogs.html:63 +#: cps/templates/book_table.html:100 cps/templates/modal_dialogs.html:63 #: cps/templates/modal_dialogs.html:116 cps/templates/user_edit.html:67 #: cps/templates/user_table.html:149 msgid "Delete" @@ -1401,179 +1424,179 @@ msgstr "" msgid "Public Shelf" msgstr "" -#: cps/templates/admin.html:51 +#: cps/templates/admin.html:53 msgid "Add New User" msgstr "" -#: cps/templates/admin.html:53 +#: cps/templates/admin.html:55 msgid "Import LDAP Users" msgstr "" -#: cps/templates/admin.html:60 +#: cps/templates/admin.html:62 msgid "E-mail Server Settings" msgstr "" -#: cps/templates/admin.html:65 cps/templates/email_edit.html:31 +#: cps/templates/admin.html:67 cps/templates/email_edit.html:31 msgid "SMTP Hostname" msgstr "" -#: cps/templates/admin.html:69 cps/templates/email_edit.html:35 +#: cps/templates/admin.html:71 cps/templates/email_edit.html:35 msgid "SMTP Port" msgstr "" -#: cps/templates/admin.html:73 cps/templates/email_edit.html:39 +#: cps/templates/admin.html:75 cps/templates/email_edit.html:39 msgid "Encryption" msgstr "" -#: cps/templates/admin.html:77 cps/templates/email_edit.html:47 +#: cps/templates/admin.html:79 cps/templates/email_edit.html:47 msgid "SMTP Login" msgstr "" -#: cps/templates/admin.html:81 cps/templates/admin.html:92 +#: cps/templates/admin.html:83 cps/templates/admin.html:94 #: cps/templates/email_edit.html:55 msgid "From E-mail" msgstr "" -#: cps/templates/admin.html:88 +#: cps/templates/admin.html:90 msgid "E-Mail Service" msgstr "" -#: cps/templates/admin.html:89 +#: cps/templates/admin.html:91 msgid "Gmail via Oauth2" msgstr "" -#: cps/templates/admin.html:104 +#: cps/templates/admin.html:106 msgid "Configuration" msgstr "" -#: cps/templates/admin.html:107 +#: cps/templates/admin.html:109 msgid "Calibre Database Directory" msgstr "" -#: cps/templates/admin.html:111 cps/templates/config_edit.html:68 +#: cps/templates/admin.html:113 cps/templates/config_edit.html:68 msgid "Log Level" msgstr "" -#: cps/templates/admin.html:115 +#: cps/templates/admin.html:117 msgid "Port" msgstr "" -#: cps/templates/admin.html:120 +#: cps/templates/admin.html:122 msgid "External Port" msgstr "" -#: cps/templates/admin.html:127 cps/templates/config_view_edit.html:28 +#: cps/templates/admin.html:129 cps/templates/config_view_edit.html:28 msgid "Books per Page" msgstr "" -#: cps/templates/admin.html:131 +#: cps/templates/admin.html:133 msgid "Uploads" msgstr "" -#: cps/templates/admin.html:135 +#: cps/templates/admin.html:137 msgid "Anonymous Browsing" msgstr "" -#: cps/templates/admin.html:139 +#: cps/templates/admin.html:141 msgid "Public Registration" msgstr "" -#: cps/templates/admin.html:143 +#: cps/templates/admin.html:145 msgid "Magic Link Remote Login" msgstr "" -#: cps/templates/admin.html:147 +#: cps/templates/admin.html:149 msgid "Reverse Proxy Login" msgstr "" -#: cps/templates/admin.html:152 cps/templates/config_edit.html:173 +#: cps/templates/admin.html:154 cps/templates/config_edit.html:173 msgid "Reverse Proxy Header Name" msgstr "" -#: cps/templates/admin.html:157 +#: cps/templates/admin.html:159 msgid "Edit Calibre Database Configuration" msgstr "" -#: cps/templates/admin.html:158 +#: cps/templates/admin.html:160 msgid "Edit Basic Configuration" msgstr "" -#: cps/templates/admin.html:159 +#: cps/templates/admin.html:161 msgid "Edit UI Configuration" msgstr "" -#: cps/templates/admin.html:164 +#: cps/templates/admin.html:166 msgid "Administration" msgstr "" -#: cps/templates/admin.html:165 +#: cps/templates/admin.html:167 msgid "Download Debug Package" msgstr "" -#: cps/templates/admin.html:166 +#: cps/templates/admin.html:168 msgid "View Logs" msgstr "" -#: cps/templates/admin.html:169 +#: cps/templates/admin.html:171 msgid "Reconnect Calibre Database" msgstr "" -#: cps/templates/admin.html:170 +#: cps/templates/admin.html:172 msgid "Restart" msgstr "" -#: cps/templates/admin.html:171 +#: cps/templates/admin.html:173 msgid "Shutdown" msgstr "" -#: cps/templates/admin.html:176 +#: cps/templates/admin.html:178 msgid "Update" msgstr "" -#: cps/templates/admin.html:180 +#: cps/templates/admin.html:182 msgid "Version" msgstr "" -#: cps/templates/admin.html:181 +#: cps/templates/admin.html:183 msgid "Details" msgstr "" -#: cps/templates/admin.html:187 +#: cps/templates/admin.html:189 msgid "Current version" msgstr "" -#: cps/templates/admin.html:194 +#: cps/templates/admin.html:196 msgid "Check for Update" msgstr "" -#: cps/templates/admin.html:195 +#: cps/templates/admin.html:197 msgid "Perform Update" msgstr "" -#: cps/templates/admin.html:208 +#: cps/templates/admin.html:210 msgid "Are you sure you want to restart?" msgstr "" -#: cps/templates/admin.html:213 cps/templates/admin.html:227 -#: cps/templates/admin.html:247 cps/templates/config_db.html:70 +#: cps/templates/admin.html:215 cps/templates/admin.html:229 +#: cps/templates/admin.html:249 cps/templates/config_db.html:70 msgid "OK" msgstr "" -#: cps/templates/admin.html:214 cps/templates/admin.html:228 -#: cps/templates/book_edit.html:213 cps/templates/book_table.html:124 +#: cps/templates/admin.html:216 cps/templates/admin.html:230 +#: cps/templates/book_edit.html:213 cps/templates/book_table.html:127 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 -#: cps/templates/config_view_edit.html:173 cps/templates/modal_dialogs.html:64 +#: cps/templates/config_view_edit.html:175 cps/templates/modal_dialogs.html:64 #: cps/templates/modal_dialogs.html:99 cps/templates/modal_dialogs.html:117 #: cps/templates/modal_dialogs.html:135 cps/templates/shelf_edit.html:27 #: cps/templates/user_edit.html:144 msgid "Cancel" msgstr "" -#: cps/templates/admin.html:226 +#: cps/templates/admin.html:228 msgid "Are you sure you want to shutdown?" msgstr "" -#: cps/templates/admin.html:238 +#: cps/templates/admin.html:240 msgid "Updating, please do not reload this page" msgstr "" @@ -1585,44 +1608,43 @@ msgstr "" msgid "In Library" msgstr "" -#: cps/templates/author.html:26 cps/templates/index.html:72 -#: cps/templates/search.html:29 cps/templates/shelf.html:19 +#: cps/templates/author.html:26 cps/templates/index.html:73 +#: cps/templates/search.html:30 cps/templates/shelf.html:19 msgid "Sort according to book date, newest first" msgstr "" -#: cps/templates/author.html:27 cps/templates/index.html:73 -#: cps/templates/search.html:30 cps/templates/shelf.html:20 +#: cps/templates/author.html:27 cps/templates/index.html:74 +#: cps/templates/search.html:31 cps/templates/shelf.html:20 msgid "Sort according to book date, oldest first" msgstr "" -#: cps/templates/author.html:28 cps/templates/index.html:74 -#: cps/templates/search.html:31 cps/templates/shelf.html:21 +#: cps/templates/author.html:28 cps/templates/index.html:75 +#: cps/templates/search.html:32 cps/templates/shelf.html:21 msgid "Sort title in alphabetical order" msgstr "" -#: cps/templates/author.html:29 cps/templates/index.html:75 -#: cps/templates/search.html:32 cps/templates/shelf.html:22 +#: cps/templates/author.html:29 cps/templates/index.html:76 +#: cps/templates/search.html:33 cps/templates/shelf.html:22 msgid "Sort title in reverse alphabetical order" msgstr "" -#: cps/templates/author.html:30 cps/templates/index.html:78 -#: cps/templates/search.html:35 cps/templates/shelf.html:25 +#: cps/templates/author.html:30 cps/templates/index.html:79 +#: cps/templates/search.html:36 cps/templates/shelf.html:25 msgid "Sort according to publishing date, newest first" msgstr "" -#: cps/templates/author.html:31 cps/templates/index.html:79 -#: cps/templates/search.html:36 cps/templates/shelf.html:26 +#: cps/templates/author.html:31 cps/templates/index.html:80 +#: cps/templates/search.html:37 cps/templates/shelf.html:26 msgid "Sort according to publishing date, oldest first" msgstr "" -#: cps/templates/author.html:57 cps/templates/author.html:117 -#: cps/templates/discover.html:30 cps/templates/index.html:29 -#: cps/templates/index.html:111 cps/templates/search.html:65 -#: cps/templates/shelf.html:54 +#: cps/templates/author.html:56 cps/templates/author.html:115 +#: cps/templates/index.html:29 cps/templates/index.html:112 +#: cps/templates/search.html:66 cps/templates/shelf.html:54 msgid "reduce" msgstr "" -#: cps/templates/author.html:101 +#: cps/templates/author.html:99 msgid "More by" msgstr "" @@ -1747,7 +1769,7 @@ msgid "Fetch Metadata" msgstr "" #: cps/templates/book_edit.html:212 cps/templates/config_db.html:53 -#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:172 +#: cps/templates/config_edit.html:358 cps/templates/config_view_edit.html:174 #: cps/templates/email_edit.html:65 cps/templates/shelf_edit.html:25 #: cps/templates/shelf_order.html:41 cps/templates/user_edit.html:142 msgid "Save" @@ -1874,26 +1896,34 @@ msgstr "" msgid "Comments" msgstr "" -#: cps/templates/book_table.html:77 cps/templates/book_table.html:79 -#: cps/templates/book_table.html:81 cps/templates/book_table.html:83 -#: cps/templates/book_table.html:87 cps/templates/book_table.html:89 -#: cps/templates/book_table.html:91 cps/templates/book_table.html:93 +#: cps/templates/book_table.html:75 +msgid "Archiv Status" +msgstr "" + +#: cps/templates/book_table.html:77 cps/templates/search_form.html:42 +msgid "Read Status" +msgstr "" + +#: cps/templates/book_table.html:80 cps/templates/book_table.html:82 +#: cps/templates/book_table.html:84 cps/templates/book_table.html:86 +#: cps/templates/book_table.html:90 cps/templates/book_table.html:92 +#: cps/templates/book_table.html:96 msgid "Enter " msgstr "" -#: cps/templates/book_table.html:110 cps/templates/modal_dialogs.html:46 +#: cps/templates/book_table.html:113 cps/templates/modal_dialogs.html:46 msgid "Are you really sure?" msgstr "" -#: cps/templates/book_table.html:114 +#: cps/templates/book_table.html:117 msgid "Books with Title will be merged from:" msgstr "" -#: cps/templates/book_table.html:118 +#: cps/templates/book_table.html:121 msgid "Into Book with Title:" msgstr "" -#: cps/templates/book_table.html:123 +#: cps/templates/book_table.html:126 msgid "Merge" msgstr "" @@ -2069,11 +2099,6 @@ msgstr "" msgid "LDAP Encryption" msgstr "" -#: cps/templates/config_edit.html:204 cps/templates/config_view_edit.html:62 -#: cps/templates/email_edit.html:41 -msgid "None" -msgstr "" - #: cps/templates/config_edit.html:205 msgid "TLS" msgstr "" @@ -2290,11 +2315,11 @@ msgstr "" msgid "Show Random Books in Detail View" msgstr "" -#: cps/templates/config_view_edit.html:165 cps/templates/user_edit.html:87 +#: cps/templates/config_view_edit.html:166 cps/templates/user_edit.html:87 msgid "Add Allowed/Denied Tags" msgstr "" -#: cps/templates/config_view_edit.html:166 +#: cps/templates/config_view_edit.html:167 msgid "Add Allowed/Denied custom column values" msgstr "" @@ -2343,13 +2368,13 @@ msgstr "" msgid "Description:" msgstr "" -#: cps/templates/detail.html:256 cps/templates/search.html:14 +#: cps/templates/detail.html:256 cps/templates/search.html:15 msgid "Add to shelf" msgstr "" #: cps/templates/detail.html:267 cps/templates/detail.html:284 #: cps/templates/feed.xml:79 cps/templates/layout.html:137 -#: cps/templates/search.html:20 +#: cps/templates/search.html:21 msgid "(Public)" msgstr "" @@ -2427,10 +2452,14 @@ msgstr "" msgid "Next" msgstr "" -#: cps/templates/generate_kobo_auth_url.html:5 +#: cps/templates/generate_kobo_auth_url.html:6 msgid "Open the .kobo/Kobo eReader.conf file in a text editor and add (or edit):" msgstr "" +#: cps/templates/generate_kobo_auth_url.html:11 +msgid "Kobo Token:" +msgstr "" + #: cps/templates/http_error.html:31 msgid "Calibre-Web Instance is unconfigured, please contact your administrator" msgstr "" @@ -2447,29 +2476,29 @@ msgstr "" msgid "Logout User" msgstr "" -#: cps/templates/index.html:69 +#: cps/templates/index.html:70 msgid "Sort ascending according to download count" msgstr "" -#: cps/templates/index.html:70 +#: cps/templates/index.html:71 msgid "Sort descending according to download count" msgstr "" -#: cps/templates/index.html:76 cps/templates/search.html:33 +#: cps/templates/index.html:77 cps/templates/search.html:34 #: cps/templates/shelf.html:23 msgid "Sort authors in alphabetical order" msgstr "" -#: cps/templates/index.html:77 cps/templates/search.html:34 +#: cps/templates/index.html:78 cps/templates/search.html:35 #: cps/templates/shelf.html:24 msgid "Sort authors in reverse alphabetical order" msgstr "" -#: cps/templates/index.html:81 +#: cps/templates/index.html:82 msgid "Sort ascending according to series index" msgstr "" -#: cps/templates/index.html:82 +#: cps/templates/index.html:83 msgid "Sort descending according to series index" msgstr "" @@ -2899,10 +2928,6 @@ msgstr "" msgid "Published Date To" msgstr "" -#: cps/templates/search_form.html:42 -msgid "Read Status" -msgstr "" - #: cps/templates/search_form.html:59 msgid "Exclude Tags" msgstr ""