From 4d61c5535e63cb83e4d7aabdf206b438d91db985 Mon Sep 17 00:00:00 2001 From: xlivevil Date: Wed, 28 Sep 2022 20:14:58 +0800 Subject: [PATCH] Update Simplifield Chinese translation --- .../zh_Hans_CN/LC_MESSAGES/messages.mo | Bin 53399 -> 53885 bytes .../zh_Hans_CN/LC_MESSAGES/messages.po | 405 +++++++++--------- messages.pot | 404 ++++++++--------- 3 files changed, 424 insertions(+), 385 deletions(-) diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.mo index b72a64b5dfdf3d02cdb20af0eede609f16be7bca..cb0b012aa5de538a801a543613c08b422c9a97e0 100644 GIT binary patch delta 13169 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 Y++Vh+%FBsmi+ZfN6IV24ciGtg0XQrRoB#j- diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po index ed478ad5..b9abae76 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-08-27 10:01+0200\n" +"POT-Creation-Date: 2022-09-28 20:08+0800\n" "PO-Revision-Date: 2020-09-27 22:18+0800\n" "Last-Translator: xlivevil \n" "Language: zh_CN\n" @@ -38,456 +38,464 @@ msgstr "重新连接成功" msgid "Unknown command" msgstr "未知命令" -#: cps/admin.py:192 cps/editbooks.py:572 cps/editbooks.py:574 -#: cps/editbooks.py:610 cps/editbooks.py:627 cps/editbooks.py:1234 -#: cps/updater.py:613 cps/uploader.py:87 cps/uploader.py:97 +#: cps/admin.py:169 +msgid "Books successfully queued for Metadata Backup" +msgstr "书籍已为元数据备份排队" + +#: cps/admin.py:202 cps/editbooks.py:576 cps/editbooks.py:578 +#: cps/editbooks.py:614 cps/editbooks.py:631 cps/editbooks.py:1238 +#: cps/updater.py:613 cps/uploader.py:86 cps/uploader.py:96 msgid "Unknown" msgstr "未知" -#: cps/admin.py:217 +#: cps/admin.py:227 msgid "Admin page" msgstr "管理页" -#: cps/admin.py:237 +#: cps/admin.py:247 msgid "Basic Configuration" msgstr "基本配置" -#: cps/admin.py:275 +#: cps/admin.py:285 msgid "UI Configuration" msgstr "界面配置" -#: cps/admin.py:309 cps/templates/admin.html:51 +#: cps/admin.py:319 cps/templates/admin.html:51 msgid "Edit Users" msgstr "管理用户" -#: cps/admin.py:353 cps/opds.py:532 cps/templates/grid.html:14 +#: cps/admin.py:363 cps/opds.py:532 cps/templates/grid.html:14 #: cps/templates/list.html:13 msgid "All" msgstr "全部" -#: cps/admin.py:380 cps/admin.py:1370 +#: cps/admin.py:390 cps/admin.py:1380 msgid "User not found" msgstr "找不到用户" -#: cps/admin.py:394 +#: cps/admin.py:404 msgid "{} users deleted successfully" msgstr "成功删除 {} 个用户" -#: cps/admin.py:417 cps/templates/config_view_edit.html:133 +#: cps/admin.py:427 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:438 cps/admin.py:444 +#: cps/admin.py:448 cps/admin.py:454 msgid "Malformed request" msgstr "格式错误的请求" -#: cps/admin.py:456 cps/admin.py:1968 +#: cps/admin.py:466 cps/admin.py:1981 msgid "Guest Name can't be changed" msgstr "访客名称无法更改" -#: cps/admin.py:468 +#: cps/admin.py:478 msgid "Guest can't have this role" msgstr "游客无法拥有此角色" -#: cps/admin.py:480 cps/admin.py:1926 +#: cps/admin.py:490 cps/admin.py:1936 msgid "No admin user remaining, can't remove admin role" msgstr "理员账户不存在,无法删除管理员角色" -#: cps/admin.py:484 cps/admin.py:498 +#: cps/admin.py:494 cps/admin.py:508 msgid "Value has to be true or false" msgstr "值必须是 true 或 false" -#: cps/admin.py:486 +#: cps/admin.py:496 msgid "Invalid role" msgstr "无效角色" -#: cps/admin.py:490 +#: cps/admin.py:500 msgid "Guest can't have this view" msgstr "游客无法拥有此视图" -#: cps/admin.py:500 +#: cps/admin.py:510 msgid "Invalid view" msgstr "无效视图" -#: cps/admin.py:503 +#: cps/admin.py:513 msgid "Guest's Locale is determined automatically and can't be set" msgstr "游客的本地化是自动侦测而无法设置的" -#: cps/admin.py:507 +#: cps/admin.py:517 msgid "No Valid Locale Given" msgstr "无可用本地化" -#: cps/admin.py:518 +#: cps/admin.py:528 msgid "No Valid Book Language Given" msgstr "无有效书籍语言" -#: cps/admin.py:520 cps/editbooks.py:439 +#: cps/admin.py:530 cps/editbooks.py:442 msgid "Parameter not found" msgstr "参数未找到" -#: cps/admin.py:557 +#: cps/admin.py:567 msgid "Invalid Read Column" msgstr "无效的阅读列" -#: cps/admin.py:563 +#: cps/admin.py:573 msgid "Invalid Restricted Column" msgstr "无效的限制列" -#: cps/admin.py:583 cps/admin.py:1797 +#: cps/admin.py:593 cps/admin.py:1807 msgid "Calibre-Web configuration updated" msgstr "Calibre-Web配置已更新" -#: cps/admin.py:595 +#: cps/admin.py:605 msgid "Do you really want to delete the Kobo Token?" msgstr "您确定删除Kobo Token吗?" -#: cps/admin.py:597 +#: cps/admin.py:607 msgid "Do you really want to delete this domain?" msgstr "您确定要删除此域吗?" -#: cps/admin.py:599 +#: cps/admin.py:609 msgid "Do you really want to delete this user?" msgstr "您确定要删除此用户吗?" -#: cps/admin.py:601 +#: cps/admin.py:611 msgid "Are you sure you want to delete this shelf?" msgstr "您确定要删除此书架吗?" -#: cps/admin.py:603 +#: cps/admin.py:613 msgid "Are you sure you want to change locales of selected user(s)?" msgstr "您确定要修改选定用户的本地化设置吗?" -#: cps/admin.py:605 +#: cps/admin.py:615 msgid "Are you sure you want to change visible book languages for selected user(s)?" msgstr "您确定要修改选定用户的可见书籍语言吗?" -#: cps/admin.py:607 +#: cps/admin.py:617 msgid "Are you sure you want to change the selected role for the selected user(s)?" msgstr "您确定要修改选定用户的选定角色吗?" -#: cps/admin.py:609 +#: cps/admin.py:619 msgid "Are you sure you want to change the selected restrictions for the selected user(s)?" msgstr "您确定要修改选定用户的选定限制吗?" -#: cps/admin.py:611 +#: cps/admin.py:621 msgid "Are you sure you want to change the selected visibility restrictions for the selected user(s)?" msgstr "您确定要修改选定用户的选定可视化限制吗?" -#: cps/admin.py:614 +#: cps/admin.py:624 msgid "Are you sure you want to change shelf sync behavior for the selected user(s)?" msgstr "您确定要更改所选用户的书架同步行为吗?" -#: cps/admin.py:616 +#: cps/admin.py:626 msgid "Are you sure you want to change Calibre library location?" msgstr "您确定要更改 Calibre 库位置吗?" -#: cps/admin.py:618 +#: cps/admin.py:628 msgid "Calibre-Web will search for updated Covers and update Cover Thumbnails, this may take a while?" msgstr "Calibre-Web 将搜索更新封面,并更新缩略图,这可能需要一段时间" -#: cps/admin.py:621 +#: cps/admin.py:631 msgid "Are you sure you want delete Calibre-Web's sync database to force a full sync with your Kobo Reader?" msgstr "您确定要删除 Calibre-Web 的同步数据库以强制与您的 Kobo Reader 进行完全同步吗" -#: cps/admin.py:864 cps/admin.py:870 cps/admin.py:880 cps/admin.py:890 +#: cps/admin.py:874 cps/admin.py:880 cps/admin.py:890 cps/admin.py:900 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "拒绝" -#: cps/admin.py:866 cps/admin.py:872 cps/admin.py:882 cps/admin.py:892 +#: cps/admin.py:876 cps/admin.py:882 cps/admin.py:892 cps/admin.py:902 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "允许" -#: cps/admin.py:907 +#: cps/admin.py:917 msgid "{} sync entries deleted" msgstr "{} 同步项目被删除" -#: cps/admin.py:955 +#: cps/admin.py:965 msgid "Tag not found" msgstr "标签未找到" -#: cps/admin.py:967 +#: cps/admin.py:977 msgid "Invalid Action" msgstr "无效的动作" -#: cps/admin.py:1082 +#: cps/admin.py:1092 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "client_secrets.json 未为 Web 应用程序配置" -#: cps/admin.py:1127 +#: cps/admin.py:1137 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "日志文件路径无效,请输入正确的路径" -#: cps/admin.py:1133 +#: cps/admin.py:1143 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "访问日志路径无效,请输入正确的路径" -#: cps/admin.py:1163 +#: cps/admin.py:1173 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "请输入LDAP主机、端口、DN和用户对象标识符" -#: cps/admin.py:1169 +#: cps/admin.py:1179 msgid "Please Enter a LDAP Service Account and Password" msgstr "请输入一个LDAP服务账号和密码 " -#: cps/admin.py:1172 +#: cps/admin.py:1182 msgid "Please Enter a LDAP Service Account" msgstr "请输入一个LDAP服务账号" -#: cps/admin.py:1177 +#: cps/admin.py:1187 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "LDAP组对象过滤器需要一个具有“%s”格式标识符" -#: cps/admin.py:1179 +#: cps/admin.py:1189 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "LDAP组对象过滤器的括号不匹配" -#: cps/admin.py:1183 +#: cps/admin.py:1193 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "LDAP用户对象过滤器需要一个具有“%s”格式标识符" -#: cps/admin.py:1185 +#: cps/admin.py:1195 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "LDAP用户对象过滤器的括号不匹配" -#: cps/admin.py:1192 +#: cps/admin.py:1202 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "LDAP成员用户过滤器需要有一个“%s”格式标识符" -#: cps/admin.py:1194 +#: cps/admin.py:1204 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "LDAP成员用户过滤器中有不匹配的括号" -#: cps/admin.py:1201 +#: cps/admin.py:1211 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "LDAP CA证书、证书或密钥位置无效,请输入正确的路径" -#: cps/admin.py:1232 cps/admin.py:1858 +#: cps/admin.py:1242 cps/admin.py:1868 msgid "Add new user" msgstr "添加新用户" -#: cps/admin.py:1241 cps/templates/admin.html:100 +#: cps/admin.py:1251 cps/templates/admin.html:100 msgid "Edit E-mail Server Settings" msgstr "编辑邮件服务器设置" -#: cps/admin.py:1260 +#: cps/admin.py:1270 msgid "Gmail Account Verification Successful" msgstr "G-Mail账号校验成功" -#: cps/admin.py:1279 cps/admin.py:1282 cps/admin.py:1663 cps/admin.py:1781 -#: cps/admin.py:1879 cps/admin.py:1996 cps/editbooks.py:228 -#: cps/editbooks.py:302 cps/editbooks.py:1197 cps/shelf.py:82 cps/shelf.py:142 +#: cps/admin.py:1289 cps/admin.py:1292 cps/admin.py:1673 cps/admin.py:1791 +#: cps/admin.py:1889 cps/admin.py:2009 cps/editbooks.py:229 +#: cps/editbooks.py:305 cps/editbooks.py:1201 cps/shelf.py:82 cps/shelf.py:142 #: cps/shelf.py:185 cps/shelf.py:235 cps/shelf.py:272 cps/shelf.py:343 -#: cps/shelf.py:457 cps/tasks/convert.py:136 cps/web.py:1416 +#: cps/shelf.py:457 cps/tasks/convert.py:136 cps/web.py:1419 #, python-format msgid "Database error: %(error)s." msgstr "数据库错误:%(error)s。" -#: cps/admin.py:1289 +#: cps/admin.py:1299 #, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "发送给%(email)s的测试邮件已进入队列。请检查任务结果" -#: cps/admin.py:1292 +#: cps/admin.py:1302 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "发送测试邮件时出错:%(res)s" -#: cps/admin.py:1294 +#: cps/admin.py:1304 msgid "Please configure your e-mail address first..." msgstr "请先配置您的邮箱地址..." -#: cps/admin.py:1296 +#: cps/admin.py:1306 msgid "E-mail server settings updated" msgstr "邮件服务器设置已更新" -#: cps/admin.py:1319 cps/templates/admin.html:191 +#: cps/admin.py:1329 cps/templates/admin.html:191 msgid "Edit Scheduled Tasks Settings" msgstr "编辑计划任务设置" -#: cps/admin.py:1331 +#: cps/admin.py:1341 msgid "Invalid start time for task specified" msgstr "指定任务的开始时间无效" -#: cps/admin.py:1336 +#: cps/admin.py:1346 msgid "Invalid duration for task specified" msgstr "指定任务的持续时间无效" -#: cps/admin.py:1345 +#: cps/admin.py:1355 msgid "Scheduled tasks settings updated" msgstr "已更新计划任务设置" -#: cps/admin.py:1355 cps/admin.py:1404 cps/admin.py:1992 cps/web.py:1257 +#: cps/admin.py:1365 cps/admin.py:1414 cps/admin.py:2005 cps/web.py:1257 #: cps/web.py:1318 msgid "An unknown error occurred. Please try again later." msgstr "发生一个未知错误,请稍后再试。" -#: cps/admin.py:1359 +#: cps/admin.py:1369 msgid "Settings DB is not Writeable" msgstr "设置数据库不可写" -#: cps/admin.py:1389 cps/admin.py:1984 +#: cps/admin.py:1399 cps/admin.py:1997 #, python-format msgid "Edit User %(nick)s" msgstr "编辑用户 %(nick)s" -#: cps/admin.py:1401 +#: cps/admin.py:1411 #, python-format msgid "Password for user %(user)s reset" msgstr "用户 %(user)s 的密码已重置" -#: cps/admin.py:1407 cps/web.py:1197 +#: cps/admin.py:1417 cps/web.py:1197 msgid "Please configure the SMTP mail settings first..." msgstr "请先配置SMTP邮箱设置..." -#: cps/admin.py:1418 +#: cps/admin.py:1428 msgid "Logfile viewer" msgstr "日志文件查看器" -#: cps/admin.py:1484 +#: cps/admin.py:1494 msgid "Requesting update package" msgstr "正在请求更新包" -#: cps/admin.py:1485 +#: cps/admin.py:1495 msgid "Downloading update package" msgstr "正在下载更新包" -#: cps/admin.py:1486 +#: cps/admin.py:1496 msgid "Unzipping update package" msgstr "正在解压更新包" -#: cps/admin.py:1487 +#: cps/admin.py:1497 msgid "Replacing files" msgstr "正在替换文件" -#: cps/admin.py:1488 +#: cps/admin.py:1498 msgid "Database connections are closed" msgstr "数据库连接已关闭" -#: cps/admin.py:1489 +#: cps/admin.py:1499 msgid "Stopping server" msgstr "正在停止服务器" -#: cps/admin.py:1490 +#: cps/admin.py:1500 msgid "Update finished, please press okay and reload page" msgstr "更新完成,请点击确定并刷新页面" -#: cps/admin.py:1491 cps/admin.py:1492 cps/admin.py:1493 cps/admin.py:1494 -#: cps/admin.py:1495 cps/admin.py:1496 +#: cps/admin.py:1501 cps/admin.py:1502 cps/admin.py:1503 cps/admin.py:1504 +#: cps/admin.py:1505 cps/admin.py:1506 msgid "Update failed:" msgstr "更新失败:" -#: cps/admin.py:1491 cps/updater.py:389 cps/updater.py:624 cps/updater.py:626 +#: cps/admin.py:1501 cps/updater.py:389 cps/updater.py:624 cps/updater.py:626 msgid "HTTP Error" msgstr "HTTP错误" -#: cps/admin.py:1492 cps/updater.py:391 cps/updater.py:628 +#: cps/admin.py:1502 cps/updater.py:391 cps/updater.py:628 msgid "Connection error" msgstr "连接错误" -#: cps/admin.py:1493 cps/updater.py:393 cps/updater.py:630 +#: cps/admin.py:1503 cps/updater.py:393 cps/updater.py:630 msgid "Timeout while establishing connection" msgstr "建立连接超时" -#: cps/admin.py:1494 cps/updater.py:395 cps/updater.py:632 +#: cps/admin.py:1504 cps/updater.py:395 cps/updater.py:632 msgid "General error" msgstr "一般错误" -#: cps/admin.py:1495 +#: cps/admin.py:1505 msgid "Update file could not be saved in temp dir" msgstr "更新文件无法保存在临时目录中" -#: cps/admin.py:1496 +#: cps/admin.py:1506 msgid "Files could not be replaced during update" msgstr "更新期间无法替换文件" -#: cps/admin.py:1520 +#: cps/admin.py:1530 msgid "Failed to extract at least One LDAP User" msgstr "未能提取至少一个LDAP用户" -#: cps/admin.py:1565 +#: cps/admin.py:1575 msgid "Failed to Create at Least One LDAP User" msgstr "未能创建至少一个LDAP用户" -#: cps/admin.py:1578 +#: cps/admin.py:1588 #, python-format msgid "Error: %(ldaperror)s" msgstr "错误:%(ldaperror)s" -#: cps/admin.py:1582 +#: cps/admin.py:1592 msgid "Error: No user returned in response of LDAP server" msgstr "错误:在LDAP服务器的响应中没有返回用户" -#: cps/admin.py:1615 +#: cps/admin.py:1625 msgid "At Least One LDAP User Not Found in Database" msgstr "数据库中没有找到至少一个LDAP用户" -#: cps/admin.py:1617 +#: cps/admin.py:1627 msgid "{} User Successfully Imported" msgstr "{} 用户被成功导入" -#: cps/admin.py:1675 +#: cps/admin.py:1685 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "数据库路径无效,请输入正确的路径" -#: cps/admin.py:1695 +#: cps/admin.py:1705 msgid "DB is not Writeable" msgstr "数据库不可写入" -#: cps/admin.py:1708 +#: cps/admin.py:1718 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "密钥文件路径无效,请输入正确的路径" -#: cps/admin.py:1712 +#: cps/admin.py:1722 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "证书文件路径无效,请输入正确的路径" -#: cps/admin.py:1820 +#: cps/admin.py:1830 msgid "Database Settings updated" msgstr "数据库设置已更新" -#: cps/admin.py:1828 +#: cps/admin.py:1838 msgid "Database Configuration" msgstr "数据库配置" -#: cps/admin.py:1844 cps/web.py:1232 +#: cps/admin.py:1854 cps/web.py:1232 msgid "Please fill out all fields!" msgstr "请填写所有字段!" -#: cps/admin.py:1852 +#: cps/admin.py:1862 msgid "E-mail is not from valid domain" msgstr "邮箱不在有效域中" -#: cps/admin.py:1869 +#: cps/admin.py:1879 #, python-format msgid "User '%(user)s' created" msgstr "用户“%(user)s”已创建" -#: cps/admin.py:1875 +#: cps/admin.py:1885 msgid "Found an existing account for this e-mail address or name." msgstr "使用此邮箱或用户名的账号已经存在。" -#: cps/admin.py:1905 +#: cps/admin.py:1915 #, python-format msgid "User '%(nick)s' deleted" msgstr "用户“%(nick)s”已删除" -#: cps/admin.py:1907 cps/admin.py:1908 +#: cps/admin.py:1917 cps/admin.py:1918 msgid "Can't delete Guest User" msgstr "无法删除游客用户" -#: cps/admin.py:1911 +#: cps/admin.py:1921 msgid "No admin user remaining, can't delete user" msgstr "管理员账户不存在,无法删除用户" -#: cps/admin.py:1988 +#: cps/admin.py:1975 cps/web.py:1369 +msgid "E-Mail Address can't be empty and has to be a valid E-Mail" +msgstr "电子邮件地址不能为空,并且必须是有效的电子邮件" + +#: cps/admin.py:2001 #, python-format msgid "User '%(nick)s' updated" msgstr "用户“%(nick)s”已更新" @@ -500,122 +508,122 @@ msgstr "未安装" msgid "Execution permissions missing" msgstr "缺少执行权限" -#: cps/db.py:679 cps/search.py:137 cps/web.py:722 +#: cps/db.py:724 cps/search.py:137 cps/web.py:722 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" msgstr "自定义列号:%(column)d在Calibre数据库中不存在" -#: cps/db.py:922 cps/templates/config_edit.html:204 +#: cps/db.py:967 cps/templates/config_edit.html:204 #: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41 #: cps/web.py:549 cps/web.py:583 cps/web.py:658 cps/web.py:683 cps/web.py:964 #: cps/web.py:994 cps/web.py:1030 cps/web.py:1058 cps/web.py:1097 msgid "None" msgstr "无" -#: cps/editbooks.py:110 cps/editbooks.py:891 cps/web.py:516 cps/web.py:1457 -#: cps/web.py:1499 cps/web.py:1544 +#: cps/editbooks.py:110 cps/editbooks.py:895 cps/web.py:516 cps/web.py:1460 +#: cps/web.py:1502 cps/web.py:1547 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "糟糕!选择书名无法打开。文件不存在或者文件不可访问" -#: cps/editbooks.py:154 cps/editbooks.py:1217 +#: cps/editbooks.py:154 cps/editbooks.py:1221 msgid "User has no rights to upload cover" msgstr "用户没有权限上传封面" -#: cps/editbooks.py:174 cps/editbooks.py:712 +#: cps/editbooks.py:174 cps/editbooks.py:716 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "标识符不区分大小写,覆盖旧标识符" -#: cps/editbooks.py:215 +#: cps/editbooks.py:216 msgid "Metadata successfully updated" msgstr "已成功更新元数据" -#: cps/editbooks.py:233 +#: cps/editbooks.py:234 msgid "Error editing book: {}" msgstr "编辑书籍时出错: {}" -#: cps/editbooks.py:288 +#: cps/editbooks.py:291 #, python-format msgid "File %(file)s uploaded" msgstr "文件 %(file)s 已上传" -#: cps/editbooks.py:315 +#: cps/editbooks.py:318 msgid "Source or destination format for conversion missing" msgstr "转换的源或目的格式缺失" -#: cps/editbooks.py:323 +#: cps/editbooks.py:326 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "书籍已经被成功加入到 %(book_format)s 格式转换队列" -#: cps/editbooks.py:327 +#: cps/editbooks.py:330 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "转换此书籍时出现错误: %(res)s" -#: cps/editbooks.py:631 +#: cps/editbooks.py:635 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "上传的书籍可能已经存在,建议修改后重新上传: " -#: cps/editbooks.py:686 cps/editbooks.py:1011 +#: cps/editbooks.py:690 cps/editbooks.py:1015 #, python-format msgid "'%(langname)s' is not a valid language" msgstr "'%(langname)s' 不是一种有效语言" -#: cps/editbooks.py:724 cps/editbooks.py:1158 +#: cps/editbooks.py:728 cps/editbooks.py:1162 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "不能上传文件扩展名为“%(ext)s”的文件到此服务器" -#: cps/editbooks.py:728 cps/editbooks.py:1162 +#: cps/editbooks.py:732 cps/editbooks.py:1166 msgid "File to be uploaded must have an extension" msgstr "要上传的文件必须具有扩展名" -#: cps/editbooks.py:736 +#: cps/editbooks.py:740 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "文件 %(filename)s 无法保存到临时目录" -#: cps/editbooks.py:756 +#: cps/editbooks.py:760 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "移动封面文件失败 %(file)s:%(error)s" -#: cps/editbooks.py:813 cps/editbooks.py:815 +#: cps/editbooks.py:817 cps/editbooks.py:819 msgid "Book Format Successfully Deleted" msgstr "书籍格式已成功删除" -#: cps/editbooks.py:822 cps/editbooks.py:824 +#: cps/editbooks.py:826 cps/editbooks.py:828 msgid "Book Successfully Deleted" msgstr "书籍已成功删除" -#: cps/editbooks.py:876 +#: cps/editbooks.py:880 msgid "You are missing permissions to delete books" msgstr "您没有删除书籍的权限" -#: cps/editbooks.py:926 +#: cps/editbooks.py:930 msgid "edit metadata" msgstr "编辑元数据" -#: cps/editbooks.py:975 +#: cps/editbooks.py:979 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "%(seriesindex)s 不是一个有效的数值,忽略" -#: cps/editbooks.py:1153 +#: cps/editbooks.py:1157 msgid "User has no rights to upload additional file formats" msgstr "用户没有权限上传其他文件格式" -#: cps/editbooks.py:1174 +#: cps/editbooks.py:1178 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "创建路径 %(path)s 失败(权限拒绝)。" -#: cps/editbooks.py:1179 +#: cps/editbooks.py:1183 #, python-format msgid "Failed to store file %(file)s." msgstr "保存文件 %(file)s 失败。" -#: cps/editbooks.py:1202 +#: cps/editbooks.py:1206 #, python-format msgid "File format %(ext)s added to %(book)s" msgstr "已添加 %(ext)s 格式到 %(book)s" @@ -628,166 +636,173 @@ 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:79 +#: cps/helper.py:80 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "找不到id为 %(book)d 的书籍的 %(format)s 格式" -#: cps/helper.py:86 cps/tasks/convert.py:75 +#: 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:91 +#: cps/helper.py:92 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "找不到 %(format)s:%(fn)s" -#: cps/helper.py:96 cps/helper.py:225 cps/templates/detail.html:42 +#: cps/helper.py:97 cps/helper.py:226 cps/templates/detail.html:42 #: cps/templates/detail.html:46 msgid "Send to E-Reader" msgstr "发送到电子阅读器" -#: cps/helper.py:97 cps/helper.py:115 cps/helper.py:227 +#: cps/helper.py:98 cps/helper.py:116 cps/helper.py:228 msgid "This e-mail has been sent via Calibre-Web." msgstr "此邮件已经通过Calibre-Web发送。" -#: cps/helper.py:113 +#: cps/helper.py:114 msgid "Calibre-Web test e-mail" msgstr "Calibre-Web测试邮件" -#: cps/helper.py:114 +#: cps/helper.py:115 msgid "Test e-mail" msgstr "测试邮件" -#: cps/helper.py:131 +#: cps/helper.py:132 msgid "Get Started with Calibre-Web" msgstr "开启Calibre-Web之旅" -#: cps/helper.py:136 +#: cps/helper.py:137 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "用户注册电子邮件:%(name)s" -#: cps/helper.py:147 cps/helper.py:153 +#: cps/helper.py:148 cps/helper.py:154 #, python-format msgid "Convert %(orig)s to %(format)s and send to E-Reader" msgstr "转换 %(orig)s 到 %(format)s 并发送到电子阅读器" -#: cps/helper.py:172 cps/helper.py:176 cps/helper.py:180 cps/helper.py:184 +#: cps/helper.py:173 cps/helper.py:177 cps/helper.py:181 cps/helper.py:185 #, python-format msgid "Send %(format)s to E-Reader" msgstr "发送 %(format)s 到电子阅读器" -#: cps/helper.py:224 cps/tasks/convert.py:92 +#: cps/helper.py:225 cps/tasks/convert.py:92 #, python-format msgid "%(book)s send to E-Reader" msgstr "%(book)s发送到电子阅读器" -#: cps/helper.py:229 +#: cps/helper.py:230 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "无法读取请求的文件。可能有错误的权限设置?" -#: cps/helper.py:344 +#: cps/helper.py:345 msgid "Read status could not set: {}" msgstr "阅读状态无法设置: {}" -#: cps/helper.py:367 +#: cps/helper.py:368 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "删除书的文件夹%(id)s失败,路径有子文件夹:%(path)s" -#: cps/helper.py:373 +#: cps/helper.py:374 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "删除书籍 %(id)s失败:%(message)s" -#: cps/helper.py:384 +#: cps/helper.py:385 #, 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:449 +#: cps/helper.py:450 #, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "将作者从“%(src)s”改为“%(dest)s”时失败,出错信息:%(error)s" -#: cps/helper.py:521 cps/helper.py:530 +#: cps/helper.py:522 cps/helper.py:531 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "Google Drive上找不到文件 %(file)s" -#: cps/helper.py:564 +#: cps/helper.py:565 #, 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:584 +#: cps/helper.py:585 msgid "Error in rename file in path: {}" msgstr "重命名此路径: {}文件时出错" -#: cps/helper.py:602 +#: cps/helper.py:603 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "Google Drive上找不到书籍路径 %(path)s" -#: cps/helper.py:643 cps/web.py:1411 +#: cps/helper.py:644 cps/web.py:1414 msgid "Found an existing account for this e-mail address" msgstr "使用此邮箱的账号已经存在。" -#: cps/helper.py:651 +#: cps/helper.py:652 msgid "This username is already taken" msgstr "此用户名已被使用" -#: cps/helper.py:661 +#: cps/helper.py:664 msgid "Invalid e-mail address format" msgstr "无效的邮件地址格式" -#: cps/helper.py:811 +#: cps/helper.py:815 msgid "Python module 'advocate' is not installed but is needed for cover uploads" msgstr "上传封面需要的Python模块'advocate'未安装" -#: cps/helper.py:821 +#: cps/helper.py:825 msgid "Error Downloading Cover" msgstr "下载封面时出错" -#: cps/helper.py:824 +#: cps/helper.py:828 msgid "Cover Format Error" msgstr "封面格式出错" -#: cps/helper.py:827 +#: cps/helper.py:831 msgid "You are not allowed to access localhost or the local network for cover uploads" msgstr "您没有访问本地主机或本地网络进行封面上传" -#: cps/helper.py:837 +#: cps/helper.py:841 msgid "Failed to create path for cover" msgstr "创建封面路径失败" -#: cps/helper.py:853 +#: cps/helper.py:857 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "封面文件不是有效的图片文件,或者无法存储" -#: cps/helper.py:864 +#: cps/helper.py:868 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "封面文件只支持jpg/jpeg/png/webp/bmp文件" -#: cps/helper.py:876 +#: cps/helper.py:880 msgid "Invalid cover file content" msgstr "封面文件内容无效" -#: cps/helper.py:880 +#: cps/helper.py:884 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "仅将jpg、jpeg文件作为封面文件" -#: cps/helper.py:932 +#: cps/helper.py:936 msgid "Unrar binary file not found" msgstr "找不到Unrar执行文件" -#: cps/helper.py:943 -#, fuzzy +#: cps/helper.py:947 msgid "Error executing UnRar" msgstr "执行UnRar时出错" +#: cps/helper.py:1040 +msgid "Cover" +msgstr "封面" + +#: cps/helper.py:1042 cps/templates/admin.html:211 +msgid "Queue all books for metadata backup" +msgstr "将所有书籍排队以进行元数据备份" + #: cps/kobo_auth.py:89 msgid "Please access Calibre-Web from non localhost to get valid api_endpoint for kobo device" msgstr "请不要使用localhost访问Calibre-Web,以便Kobo设备能获取有效的api_endpoint" @@ -1357,12 +1372,12 @@ msgstr "请输入有效的用户名进行密码重置" msgid "You are now logged in as: '%(nickname)s'" msgstr "您现在已以“%(nickname)s”登录" -#: cps/web.py:1391 cps/web.py:1440 +#: cps/web.py:1394 cps/web.py:1443 #, python-format msgid "%(name)s's profile" msgstr "%(name)s 的用户配置" -#: cps/web.py:1407 +#: cps/web.py:1410 msgid "Profile updated" msgstr "资料已更新" @@ -1416,6 +1431,10 @@ msgstr "正在重新连接到Calibre数据库" msgid "E-mail" msgstr "电子邮件" +#: cps/tasks/metadata_backup.py:47 +msgid "Backing up Metadata" +msgstr "正在备份元数据" + #: cps/tasks/thumbnail.py:95 #, python-format msgid "Generated %(count)s cover thumbnails" @@ -1647,40 +1666,40 @@ msgstr "重启" msgid "Shutdown" msgstr "停止" -#: cps/templates/admin.html:213 +#: cps/templates/admin.html:216 msgid "Version Information" msgstr "版本信息" -#: cps/templates/admin.html:217 +#: cps/templates/admin.html:220 msgid "Version" msgstr "版本" -#: cps/templates/admin.html:218 +#: cps/templates/admin.html:221 msgid "Details" msgstr "详情" -#: cps/templates/admin.html:224 +#: cps/templates/admin.html:227 msgid "Current version" msgstr "当前版本" -#: cps/templates/admin.html:231 +#: cps/templates/admin.html:234 msgid "Check for Update" msgstr "检查更新" -#: cps/templates/admin.html:232 +#: cps/templates/admin.html:235 msgid "Perform Update" msgstr "执行更新" -#: cps/templates/admin.html:245 +#: cps/templates/admin.html:248 msgid "Are you sure you want to restart?" msgstr "您确定要重启吗?" -#: cps/templates/admin.html:250 cps/templates/admin.html:264 -#: cps/templates/admin.html:284 cps/templates/config_db.html:70 +#: cps/templates/admin.html:253 cps/templates/admin.html:267 +#: cps/templates/admin.html:287 cps/templates/config_db.html:70 msgid "OK" msgstr "确定" -#: cps/templates/admin.html:251 cps/templates/admin.html:265 +#: cps/templates/admin.html:254 cps/templates/admin.html:268 #: cps/templates/book_edit.html:214 cps/templates/book_table.html:127 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 #: cps/templates/config_view_edit.html:175 cps/templates/modal_dialogs.html:64 @@ -1691,11 +1710,11 @@ msgstr "确定" msgid "Cancel" msgstr "取消" -#: cps/templates/admin.html:263 +#: cps/templates/admin.html:266 msgid "Are you sure you want to shutdown?" msgstr "您确定要关闭吗?" -#: cps/templates/admin.html:275 +#: cps/templates/admin.html:278 msgid "Updating, please do not reload this page" msgstr "正在更新,请不要刷新页面" @@ -1997,7 +2016,7 @@ msgid "Comments" msgstr "简介" #: cps/templates/book_table.html:75 -msgid "Archiv Status" +msgid "Archive Status" msgstr "存档状态" #: cps/templates/book_table.html:77 cps/templates/search_form.html:42 diff --git a/messages.pot b/messages.pot index 789c4c53..03227002 100644 --- a/messages.pot +++ b/messages.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2022-08-27 10:01+0200\n" +"POT-Creation-Date: 2022-09-28 20:08+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -37,456 +37,464 @@ msgstr "" msgid "Unknown command" msgstr "" -#: cps/admin.py:192 cps/editbooks.py:572 cps/editbooks.py:574 -#: cps/editbooks.py:610 cps/editbooks.py:627 cps/editbooks.py:1234 -#: cps/updater.py:613 cps/uploader.py:87 cps/uploader.py:97 +#: cps/admin.py:169 +msgid "Books successfully queued for Metadata Backup" +msgstr "" + +#: cps/admin.py:202 cps/editbooks.py:576 cps/editbooks.py:578 +#: cps/editbooks.py:614 cps/editbooks.py:631 cps/editbooks.py:1238 +#: cps/updater.py:613 cps/uploader.py:86 cps/uploader.py:96 msgid "Unknown" msgstr "" -#: cps/admin.py:217 +#: cps/admin.py:227 msgid "Admin page" msgstr "" -#: cps/admin.py:237 +#: cps/admin.py:247 msgid "Basic Configuration" msgstr "" -#: cps/admin.py:275 +#: cps/admin.py:285 msgid "UI Configuration" msgstr "" -#: cps/admin.py:309 cps/templates/admin.html:51 +#: cps/admin.py:319 cps/templates/admin.html:51 msgid "Edit Users" msgstr "" -#: cps/admin.py:353 cps/opds.py:532 cps/templates/grid.html:14 +#: cps/admin.py:363 cps/opds.py:532 cps/templates/grid.html:14 #: cps/templates/list.html:13 msgid "All" msgstr "" -#: cps/admin.py:380 cps/admin.py:1370 +#: cps/admin.py:390 cps/admin.py:1380 msgid "User not found" msgstr "" -#: cps/admin.py:394 +#: cps/admin.py:404 msgid "{} users deleted successfully" msgstr "" -#: cps/admin.py:417 cps/templates/config_view_edit.html:133 +#: cps/admin.py:427 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:438 cps/admin.py:444 +#: cps/admin.py:448 cps/admin.py:454 msgid "Malformed request" msgstr "" -#: cps/admin.py:456 cps/admin.py:1968 +#: cps/admin.py:466 cps/admin.py:1981 msgid "Guest Name can't be changed" msgstr "" -#: cps/admin.py:468 +#: cps/admin.py:478 msgid "Guest can't have this role" msgstr "" -#: cps/admin.py:480 cps/admin.py:1926 +#: cps/admin.py:490 cps/admin.py:1936 msgid "No admin user remaining, can't remove admin role" msgstr "" -#: cps/admin.py:484 cps/admin.py:498 +#: cps/admin.py:494 cps/admin.py:508 msgid "Value has to be true or false" msgstr "" -#: cps/admin.py:486 +#: cps/admin.py:496 msgid "Invalid role" msgstr "" -#: cps/admin.py:490 +#: cps/admin.py:500 msgid "Guest can't have this view" msgstr "" -#: cps/admin.py:500 +#: cps/admin.py:510 msgid "Invalid view" msgstr "" -#: cps/admin.py:503 +#: cps/admin.py:513 msgid "Guest's Locale is determined automatically and can't be set" msgstr "" -#: cps/admin.py:507 +#: cps/admin.py:517 msgid "No Valid Locale Given" msgstr "" -#: cps/admin.py:518 +#: cps/admin.py:528 msgid "No Valid Book Language Given" msgstr "" -#: cps/admin.py:520 cps/editbooks.py:439 +#: cps/admin.py:530 cps/editbooks.py:442 msgid "Parameter not found" msgstr "" -#: cps/admin.py:557 +#: cps/admin.py:567 msgid "Invalid Read Column" msgstr "" -#: cps/admin.py:563 +#: cps/admin.py:573 msgid "Invalid Restricted Column" msgstr "" -#: cps/admin.py:583 cps/admin.py:1797 +#: cps/admin.py:593 cps/admin.py:1807 msgid "Calibre-Web configuration updated" msgstr "" -#: cps/admin.py:595 +#: cps/admin.py:605 msgid "Do you really want to delete the Kobo Token?" msgstr "" -#: cps/admin.py:597 +#: cps/admin.py:607 msgid "Do you really want to delete this domain?" msgstr "" -#: cps/admin.py:599 +#: cps/admin.py:609 msgid "Do you really want to delete this user?" msgstr "" -#: cps/admin.py:601 +#: cps/admin.py:611 msgid "Are you sure you want to delete this shelf?" msgstr "" -#: cps/admin.py:603 +#: cps/admin.py:613 msgid "Are you sure you want to change locales of selected user(s)?" msgstr "" -#: cps/admin.py:605 +#: cps/admin.py:615 msgid "Are you sure you want to change visible book languages for selected user(s)?" msgstr "" -#: cps/admin.py:607 +#: cps/admin.py:617 msgid "Are you sure you want to change the selected role for the selected user(s)?" msgstr "" -#: cps/admin.py:609 +#: cps/admin.py:619 msgid "Are you sure you want to change the selected restrictions for the selected user(s)?" msgstr "" -#: cps/admin.py:611 +#: cps/admin.py:621 msgid "Are you sure you want to change the selected visibility restrictions for the selected user(s)?" msgstr "" -#: cps/admin.py:614 +#: cps/admin.py:624 msgid "Are you sure you want to change shelf sync behavior for the selected user(s)?" msgstr "" -#: cps/admin.py:616 +#: cps/admin.py:626 msgid "Are you sure you want to change Calibre library location?" msgstr "" -#: cps/admin.py:618 +#: cps/admin.py:628 msgid "Calibre-Web will search for updated Covers and update Cover Thumbnails, this may take a while?" msgstr "" -#: cps/admin.py:621 +#: cps/admin.py:631 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:864 cps/admin.py:870 cps/admin.py:880 cps/admin.py:890 +#: cps/admin.py:874 cps/admin.py:880 cps/admin.py:890 cps/admin.py:900 #: cps/templates/modal_dialogs.html:29 cps/templates/user_table.html:41 #: cps/templates/user_table.html:58 msgid "Deny" msgstr "" -#: cps/admin.py:866 cps/admin.py:872 cps/admin.py:882 cps/admin.py:892 +#: cps/admin.py:876 cps/admin.py:882 cps/admin.py:892 cps/admin.py:902 #: cps/templates/modal_dialogs.html:28 cps/templates/user_table.html:44 #: cps/templates/user_table.html:61 msgid "Allow" msgstr "" -#: cps/admin.py:907 +#: cps/admin.py:917 msgid "{} sync entries deleted" msgstr "" -#: cps/admin.py:955 +#: cps/admin.py:965 msgid "Tag not found" msgstr "" -#: cps/admin.py:967 +#: cps/admin.py:977 msgid "Invalid Action" msgstr "" -#: cps/admin.py:1082 +#: cps/admin.py:1092 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "" -#: cps/admin.py:1127 +#: cps/admin.py:1137 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1133 +#: cps/admin.py:1143 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1163 +#: cps/admin.py:1173 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "" -#: cps/admin.py:1169 +#: cps/admin.py:1179 msgid "Please Enter a LDAP Service Account and Password" msgstr "" -#: cps/admin.py:1172 +#: cps/admin.py:1182 msgid "Please Enter a LDAP Service Account" msgstr "" -#: cps/admin.py:1177 +#: cps/admin.py:1187 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1179 +#: cps/admin.py:1189 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1183 +#: cps/admin.py:1193 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1185 +#: cps/admin.py:1195 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1192 +#: cps/admin.py:1202 #, python-format msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:1194 +#: cps/admin.py:1204 msgid "LDAP Member User Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:1201 +#: cps/admin.py:1211 msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1232 cps/admin.py:1858 +#: cps/admin.py:1242 cps/admin.py:1868 msgid "Add new user" msgstr "" -#: cps/admin.py:1241 cps/templates/admin.html:100 +#: cps/admin.py:1251 cps/templates/admin.html:100 msgid "Edit E-mail Server Settings" msgstr "" -#: cps/admin.py:1260 +#: cps/admin.py:1270 msgid "Gmail Account Verification Successful" msgstr "" -#: cps/admin.py:1279 cps/admin.py:1282 cps/admin.py:1663 cps/admin.py:1781 -#: cps/admin.py:1879 cps/admin.py:1996 cps/editbooks.py:228 -#: cps/editbooks.py:302 cps/editbooks.py:1197 cps/shelf.py:82 cps/shelf.py:142 +#: cps/admin.py:1289 cps/admin.py:1292 cps/admin.py:1673 cps/admin.py:1791 +#: cps/admin.py:1889 cps/admin.py:2009 cps/editbooks.py:229 +#: cps/editbooks.py:305 cps/editbooks.py:1201 cps/shelf.py:82 cps/shelf.py:142 #: cps/shelf.py:185 cps/shelf.py:235 cps/shelf.py:272 cps/shelf.py:343 -#: cps/shelf.py:457 cps/tasks/convert.py:136 cps/web.py:1416 +#: cps/shelf.py:457 cps/tasks/convert.py:136 cps/web.py:1419 #, python-format msgid "Database error: %(error)s." msgstr "" -#: cps/admin.py:1289 +#: cps/admin.py:1299 #, python-format msgid "Test e-mail queued for sending to %(email)s, please check Tasks for result" msgstr "" -#: cps/admin.py:1292 +#: cps/admin.py:1302 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "" -#: cps/admin.py:1294 +#: cps/admin.py:1304 msgid "Please configure your e-mail address first..." msgstr "" -#: cps/admin.py:1296 +#: cps/admin.py:1306 msgid "E-mail server settings updated" msgstr "" -#: cps/admin.py:1319 cps/templates/admin.html:191 +#: cps/admin.py:1329 cps/templates/admin.html:191 msgid "Edit Scheduled Tasks Settings" msgstr "" -#: cps/admin.py:1331 +#: cps/admin.py:1341 msgid "Invalid start time for task specified" msgstr "" -#: cps/admin.py:1336 +#: cps/admin.py:1346 msgid "Invalid duration for task specified" msgstr "" -#: cps/admin.py:1345 +#: cps/admin.py:1355 msgid "Scheduled tasks settings updated" msgstr "" -#: cps/admin.py:1355 cps/admin.py:1404 cps/admin.py:1992 cps/web.py:1257 +#: cps/admin.py:1365 cps/admin.py:1414 cps/admin.py:2005 cps/web.py:1257 #: cps/web.py:1318 msgid "An unknown error occurred. Please try again later." msgstr "" -#: cps/admin.py:1359 +#: cps/admin.py:1369 msgid "Settings DB is not Writeable" msgstr "" -#: cps/admin.py:1389 cps/admin.py:1984 +#: cps/admin.py:1399 cps/admin.py:1997 #, python-format msgid "Edit User %(nick)s" msgstr "" -#: cps/admin.py:1401 +#: cps/admin.py:1411 #, python-format msgid "Password for user %(user)s reset" msgstr "" -#: cps/admin.py:1407 cps/web.py:1197 +#: cps/admin.py:1417 cps/web.py:1197 msgid "Please configure the SMTP mail settings first..." msgstr "" -#: cps/admin.py:1418 +#: cps/admin.py:1428 msgid "Logfile viewer" msgstr "" -#: cps/admin.py:1484 +#: cps/admin.py:1494 msgid "Requesting update package" msgstr "" -#: cps/admin.py:1485 +#: cps/admin.py:1495 msgid "Downloading update package" msgstr "" -#: cps/admin.py:1486 +#: cps/admin.py:1496 msgid "Unzipping update package" msgstr "" -#: cps/admin.py:1487 +#: cps/admin.py:1497 msgid "Replacing files" msgstr "" -#: cps/admin.py:1488 +#: cps/admin.py:1498 msgid "Database connections are closed" msgstr "" -#: cps/admin.py:1489 +#: cps/admin.py:1499 msgid "Stopping server" msgstr "" -#: cps/admin.py:1490 +#: cps/admin.py:1500 msgid "Update finished, please press okay and reload page" msgstr "" -#: cps/admin.py:1491 cps/admin.py:1492 cps/admin.py:1493 cps/admin.py:1494 -#: cps/admin.py:1495 cps/admin.py:1496 +#: cps/admin.py:1501 cps/admin.py:1502 cps/admin.py:1503 cps/admin.py:1504 +#: cps/admin.py:1505 cps/admin.py:1506 msgid "Update failed:" msgstr "" -#: cps/admin.py:1491 cps/updater.py:389 cps/updater.py:624 cps/updater.py:626 +#: cps/admin.py:1501 cps/updater.py:389 cps/updater.py:624 cps/updater.py:626 msgid "HTTP Error" msgstr "" -#: cps/admin.py:1492 cps/updater.py:391 cps/updater.py:628 +#: cps/admin.py:1502 cps/updater.py:391 cps/updater.py:628 msgid "Connection error" msgstr "" -#: cps/admin.py:1493 cps/updater.py:393 cps/updater.py:630 +#: cps/admin.py:1503 cps/updater.py:393 cps/updater.py:630 msgid "Timeout while establishing connection" msgstr "" -#: cps/admin.py:1494 cps/updater.py:395 cps/updater.py:632 +#: cps/admin.py:1504 cps/updater.py:395 cps/updater.py:632 msgid "General error" msgstr "" -#: cps/admin.py:1495 +#: cps/admin.py:1505 msgid "Update file could not be saved in temp dir" msgstr "" -#: cps/admin.py:1496 +#: cps/admin.py:1506 msgid "Files could not be replaced during update" msgstr "" -#: cps/admin.py:1520 +#: cps/admin.py:1530 msgid "Failed to extract at least One LDAP User" msgstr "" -#: cps/admin.py:1565 +#: cps/admin.py:1575 msgid "Failed to Create at Least One LDAP User" msgstr "" -#: cps/admin.py:1578 +#: cps/admin.py:1588 #, python-format msgid "Error: %(ldaperror)s" msgstr "" -#: cps/admin.py:1582 +#: cps/admin.py:1592 msgid "Error: No user returned in response of LDAP server" msgstr "" -#: cps/admin.py:1615 +#: cps/admin.py:1625 msgid "At Least One LDAP User Not Found in Database" msgstr "" -#: cps/admin.py:1617 +#: cps/admin.py:1627 msgid "{} User Successfully Imported" msgstr "" -#: cps/admin.py:1675 +#: cps/admin.py:1685 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1695 +#: cps/admin.py:1705 msgid "DB is not Writeable" msgstr "" -#: cps/admin.py:1708 +#: cps/admin.py:1718 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1712 +#: cps/admin.py:1722 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "" -#: cps/admin.py:1820 +#: cps/admin.py:1830 msgid "Database Settings updated" msgstr "" -#: cps/admin.py:1828 +#: cps/admin.py:1838 msgid "Database Configuration" msgstr "" -#: cps/admin.py:1844 cps/web.py:1232 +#: cps/admin.py:1854 cps/web.py:1232 msgid "Please fill out all fields!" msgstr "" -#: cps/admin.py:1852 +#: cps/admin.py:1862 msgid "E-mail is not from valid domain" msgstr "" -#: cps/admin.py:1869 +#: cps/admin.py:1879 #, python-format msgid "User '%(user)s' created" msgstr "" -#: cps/admin.py:1875 +#: cps/admin.py:1885 msgid "Found an existing account for this e-mail address or name." msgstr "" -#: cps/admin.py:1905 +#: cps/admin.py:1915 #, python-format msgid "User '%(nick)s' deleted" msgstr "" -#: cps/admin.py:1907 cps/admin.py:1908 +#: cps/admin.py:1917 cps/admin.py:1918 msgid "Can't delete Guest User" msgstr "" -#: cps/admin.py:1911 +#: cps/admin.py:1921 msgid "No admin user remaining, can't delete user" msgstr "" -#: cps/admin.py:1988 +#: cps/admin.py:1975 cps/web.py:1369 +msgid "E-Mail Address can't be empty and has to be a valid E-Mail" +msgstr "" + +#: cps/admin.py:2001 #, python-format msgid "User '%(nick)s' updated" msgstr "" @@ -499,122 +507,122 @@ msgstr "" msgid "Execution permissions missing" msgstr "" -#: cps/db.py:679 cps/search.py:137 cps/web.py:722 +#: cps/db.py:724 cps/search.py:137 cps/web.py:722 #, python-format msgid "Custom Column No.%(column)d does not exist in calibre database" msgstr "" -#: cps/db.py:922 cps/templates/config_edit.html:204 +#: cps/db.py:967 cps/templates/config_edit.html:204 #: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41 #: cps/web.py:549 cps/web.py:583 cps/web.py:658 cps/web.py:683 cps/web.py:964 #: cps/web.py:994 cps/web.py:1030 cps/web.py:1058 cps/web.py:1097 msgid "None" msgstr "" -#: cps/editbooks.py:110 cps/editbooks.py:891 cps/web.py:516 cps/web.py:1457 -#: cps/web.py:1499 cps/web.py:1544 +#: cps/editbooks.py:110 cps/editbooks.py:895 cps/web.py:516 cps/web.py:1460 +#: cps/web.py:1502 cps/web.py:1547 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "" -#: cps/editbooks.py:154 cps/editbooks.py:1217 +#: cps/editbooks.py:154 cps/editbooks.py:1221 msgid "User has no rights to upload cover" msgstr "" -#: cps/editbooks.py:174 cps/editbooks.py:712 +#: cps/editbooks.py:174 cps/editbooks.py:716 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" msgstr "" -#: cps/editbooks.py:215 +#: cps/editbooks.py:216 msgid "Metadata successfully updated" msgstr "" -#: cps/editbooks.py:233 +#: cps/editbooks.py:234 msgid "Error editing book: {}" msgstr "" -#: cps/editbooks.py:288 +#: cps/editbooks.py:291 #, python-format msgid "File %(file)s uploaded" msgstr "" -#: cps/editbooks.py:315 +#: cps/editbooks.py:318 msgid "Source or destination format for conversion missing" msgstr "" -#: cps/editbooks.py:323 +#: cps/editbooks.py:326 #, python-format msgid "Book successfully queued for converting to %(book_format)s" msgstr "" -#: cps/editbooks.py:327 +#: cps/editbooks.py:330 #, python-format msgid "There was an error converting this book: %(res)s" msgstr "" -#: cps/editbooks.py:631 +#: cps/editbooks.py:635 msgid "Uploaded book probably exists in the library, consider to change before upload new: " msgstr "" -#: cps/editbooks.py:686 cps/editbooks.py:1011 +#: cps/editbooks.py:690 cps/editbooks.py:1015 #, python-format msgid "'%(langname)s' is not a valid language" msgstr "" -#: cps/editbooks.py:724 cps/editbooks.py:1158 +#: cps/editbooks.py:728 cps/editbooks.py:1162 #, python-format msgid "File extension '%(ext)s' is not allowed to be uploaded to this server" msgstr "" -#: cps/editbooks.py:728 cps/editbooks.py:1162 +#: cps/editbooks.py:732 cps/editbooks.py:1166 msgid "File to be uploaded must have an extension" msgstr "" -#: cps/editbooks.py:736 +#: cps/editbooks.py:740 #, python-format msgid "File %(filename)s could not saved to temp dir" msgstr "" -#: cps/editbooks.py:756 +#: cps/editbooks.py:760 #, python-format msgid "Failed to Move Cover File %(file)s: %(error)s" msgstr "" -#: cps/editbooks.py:813 cps/editbooks.py:815 +#: cps/editbooks.py:817 cps/editbooks.py:819 msgid "Book Format Successfully Deleted" msgstr "" -#: cps/editbooks.py:822 cps/editbooks.py:824 +#: cps/editbooks.py:826 cps/editbooks.py:828 msgid "Book Successfully Deleted" msgstr "" -#: cps/editbooks.py:876 +#: cps/editbooks.py:880 msgid "You are missing permissions to delete books" msgstr "" -#: cps/editbooks.py:926 +#: cps/editbooks.py:930 msgid "edit metadata" msgstr "" -#: cps/editbooks.py:975 +#: cps/editbooks.py:979 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" msgstr "" -#: cps/editbooks.py:1153 +#: cps/editbooks.py:1157 msgid "User has no rights to upload additional file formats" msgstr "" -#: cps/editbooks.py:1174 +#: cps/editbooks.py:1178 #, python-format msgid "Failed to create path %(path)s (Permission denied)." msgstr "" -#: cps/editbooks.py:1179 +#: cps/editbooks.py:1183 #, python-format msgid "Failed to store file %(file)s." msgstr "" -#: cps/editbooks.py:1202 +#: cps/editbooks.py:1206 #, python-format msgid "File format %(ext)s added to %(book)s" msgstr "" @@ -627,165 +635,173 @@ msgstr "" msgid "Callback domain is not verified, please follow steps to verify domain in google developer console" msgstr "" -#: cps/helper.py:79 +#: cps/helper.py:80 #, python-format msgid "%(format)s format not found for book id: %(book)d" msgstr "" -#: cps/helper.py:86 cps/tasks/convert.py:75 +#: 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:91 +#: cps/helper.py:92 #, python-format msgid "%(format)s not found: %(fn)s" msgstr "" -#: cps/helper.py:96 cps/helper.py:225 cps/templates/detail.html:42 +#: cps/helper.py:97 cps/helper.py:226 cps/templates/detail.html:42 #: cps/templates/detail.html:46 msgid "Send to E-Reader" msgstr "" -#: cps/helper.py:97 cps/helper.py:115 cps/helper.py:227 +#: cps/helper.py:98 cps/helper.py:116 cps/helper.py:228 msgid "This e-mail has been sent via Calibre-Web." msgstr "" -#: cps/helper.py:113 +#: cps/helper.py:114 msgid "Calibre-Web test e-mail" msgstr "" -#: cps/helper.py:114 +#: cps/helper.py:115 msgid "Test e-mail" msgstr "" -#: cps/helper.py:131 +#: cps/helper.py:132 msgid "Get Started with Calibre-Web" msgstr "" -#: cps/helper.py:136 +#: cps/helper.py:137 #, python-format msgid "Registration e-mail for user: %(name)s" msgstr "" -#: cps/helper.py:147 cps/helper.py:153 +#: cps/helper.py:148 cps/helper.py:154 #, python-format msgid "Convert %(orig)s to %(format)s and send to E-Reader" msgstr "" -#: cps/helper.py:172 cps/helper.py:176 cps/helper.py:180 cps/helper.py:184 +#: cps/helper.py:173 cps/helper.py:177 cps/helper.py:181 cps/helper.py:185 #, python-format msgid "Send %(format)s to E-Reader" msgstr "" -#: cps/helper.py:224 cps/tasks/convert.py:92 +#: cps/helper.py:225 cps/tasks/convert.py:92 #, python-format msgid "%(book)s send to E-Reader" msgstr "" -#: cps/helper.py:229 +#: cps/helper.py:230 msgid "The requested file could not be read. Maybe wrong permissions?" msgstr "" -#: cps/helper.py:344 +#: cps/helper.py:345 msgid "Read status could not set: {}" msgstr "" -#: cps/helper.py:367 +#: cps/helper.py:368 #, python-format msgid "Deleting bookfolder for book %(id)s failed, path has subfolders: %(path)s" msgstr "" -#: cps/helper.py:373 +#: cps/helper.py:374 #, python-format msgid "Deleting book %(id)s failed: %(message)s" msgstr "" -#: cps/helper.py:384 +#: cps/helper.py:385 #, python-format msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" msgstr "" -#: cps/helper.py:449 +#: cps/helper.py:450 #, python-format msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "" -#: cps/helper.py:521 cps/helper.py:530 +#: cps/helper.py:522 cps/helper.py:531 #, python-format msgid "File %(file)s not found on Google Drive" msgstr "" -#: cps/helper.py:564 +#: cps/helper.py:565 #, python-format msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s" msgstr "" -#: cps/helper.py:584 +#: cps/helper.py:585 msgid "Error in rename file in path: {}" msgstr "" -#: cps/helper.py:602 +#: cps/helper.py:603 #, python-format msgid "Book path %(path)s not found on Google Drive" msgstr "" -#: cps/helper.py:643 cps/web.py:1411 +#: cps/helper.py:644 cps/web.py:1414 msgid "Found an existing account for this e-mail address" msgstr "" -#: cps/helper.py:651 +#: cps/helper.py:652 msgid "This username is already taken" msgstr "" -#: cps/helper.py:661 +#: cps/helper.py:664 msgid "Invalid e-mail address format" msgstr "" -#: cps/helper.py:811 +#: cps/helper.py:815 msgid "Python module 'advocate' is not installed but is needed for cover uploads" msgstr "" -#: cps/helper.py:821 +#: cps/helper.py:825 msgid "Error Downloading Cover" msgstr "" -#: cps/helper.py:824 +#: cps/helper.py:828 msgid "Cover Format Error" msgstr "" -#: cps/helper.py:827 +#: cps/helper.py:831 msgid "You are not allowed to access localhost or the local network for cover uploads" msgstr "" -#: cps/helper.py:837 +#: cps/helper.py:841 msgid "Failed to create path for cover" msgstr "" -#: cps/helper.py:853 +#: cps/helper.py:857 msgid "Cover-file is not a valid image file, or could not be stored" msgstr "" -#: cps/helper.py:864 +#: cps/helper.py:868 msgid "Only jpg/jpeg/png/webp/bmp files are supported as coverfile" msgstr "" -#: cps/helper.py:876 +#: cps/helper.py:880 msgid "Invalid cover file content" msgstr "" -#: cps/helper.py:880 +#: cps/helper.py:884 msgid "Only jpg/jpeg files are supported as coverfile" msgstr "" -#: cps/helper.py:932 +#: cps/helper.py:936 msgid "Unrar binary file not found" msgstr "" -#: cps/helper.py:943 +#: cps/helper.py:947 msgid "Error executing UnRar" msgstr "" +#: cps/helper.py:1040 +msgid "Cover" +msgstr "" + +#: cps/helper.py:1042 cps/templates/admin.html:211 +msgid "Queue all books for metadata backup" +msgstr "" + #: cps/kobo_auth.py:89 msgid "Please access Calibre-Web from non localhost to get valid api_endpoint for kobo device" msgstr "" @@ -1355,12 +1371,12 @@ msgstr "" msgid "You are now logged in as: '%(nickname)s'" msgstr "" -#: cps/web.py:1391 cps/web.py:1440 +#: cps/web.py:1394 cps/web.py:1443 #, python-format msgid "%(name)s's profile" msgstr "" -#: cps/web.py:1407 +#: cps/web.py:1410 msgid "Profile updated" msgstr "" @@ -1414,6 +1430,10 @@ msgstr "" msgid "E-mail" msgstr "" +#: cps/tasks/metadata_backup.py:47 +msgid "Backing up Metadata" +msgstr "" + #: cps/tasks/thumbnail.py:95 #, python-format msgid "Generated %(count)s cover thumbnails" @@ -1645,40 +1665,40 @@ msgstr "" msgid "Shutdown" msgstr "" -#: cps/templates/admin.html:213 +#: cps/templates/admin.html:216 msgid "Version Information" msgstr "" -#: cps/templates/admin.html:217 +#: cps/templates/admin.html:220 msgid "Version" msgstr "" -#: cps/templates/admin.html:218 +#: cps/templates/admin.html:221 msgid "Details" msgstr "" -#: cps/templates/admin.html:224 +#: cps/templates/admin.html:227 msgid "Current version" msgstr "" -#: cps/templates/admin.html:231 +#: cps/templates/admin.html:234 msgid "Check for Update" msgstr "" -#: cps/templates/admin.html:232 +#: cps/templates/admin.html:235 msgid "Perform Update" msgstr "" -#: cps/templates/admin.html:245 +#: cps/templates/admin.html:248 msgid "Are you sure you want to restart?" msgstr "" -#: cps/templates/admin.html:250 cps/templates/admin.html:264 -#: cps/templates/admin.html:284 cps/templates/config_db.html:70 +#: cps/templates/admin.html:253 cps/templates/admin.html:267 +#: cps/templates/admin.html:287 cps/templates/config_db.html:70 msgid "OK" msgstr "" -#: cps/templates/admin.html:251 cps/templates/admin.html:265 +#: cps/templates/admin.html:254 cps/templates/admin.html:268 #: cps/templates/book_edit.html:214 cps/templates/book_table.html:127 #: cps/templates/config_db.html:54 cps/templates/config_edit.html:359 #: cps/templates/config_view_edit.html:175 cps/templates/modal_dialogs.html:64 @@ -1689,11 +1709,11 @@ msgstr "" msgid "Cancel" msgstr "" -#: cps/templates/admin.html:263 +#: cps/templates/admin.html:266 msgid "Are you sure you want to shutdown?" msgstr "" -#: cps/templates/admin.html:275 +#: cps/templates/admin.html:278 msgid "Updating, please do not reload this page" msgstr "" @@ -1995,7 +2015,7 @@ msgid "Comments" msgstr "" #: cps/templates/book_table.html:75 -msgid "Archiv Status" +msgid "Archive Status" msgstr "" #: cps/templates/book_table.html:77 cps/templates/search_form.html:42