From 948e415dbd2c2dd93e51530705650199238d4840 Mon Sep 17 00:00:00 2001 From: Rosebud Date: Wed, 1 May 2024 01:42:55 +0000 Subject: [PATCH] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (373 of 373 strings) Translation: Snikket/Web Portal Translate-URL: http://i18n.sotecware.net/projects/snikket/web-portal/zh_Hans/ --- .../zh_Hans_CN/LC_MESSAGES/messages.mo | Bin 29039 -> 37272 bytes .../zh_Hans_CN/LC_MESSAGES/messages.po | 658 ++++++++---------- 2 files changed, 302 insertions(+), 356 deletions(-) diff --git a/snikket_web/translations/zh_Hans_CN/LC_MESSAGES/messages.mo b/snikket_web/translations/zh_Hans_CN/LC_MESSAGES/messages.mo index 6e1cc5ffe9e967f9be613c04a09b8dd532530b87..95afd4fe95f528f22c6e218d26984bb9c14fc520 100644 GIT binary patch literal 37272 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 literal 29039 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 diff --git a/snikket_web/translations/zh_Hans_CN/LC_MESSAGES/messages.po b/snikket_web/translations/zh_Hans_CN/LC_MESSAGES/messages.po index 55baf19..5f3542d 100644 --- a/snikket_web/translations/zh_Hans_CN/LC_MESSAGES/messages.po +++ b/snikket_web/translations/zh_Hans_CN/LC_MESSAGES/messages.po @@ -6,10 +6,10 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" -"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"Report-Msgid-Bugs-To: translations@snikket.org\n" "POT-Creation-Date: 2024-04-30 10:52+0100\n" -"PO-Revision-Date: 2022-05-20 00:01+0000\n" -"Last-Translator: Zack Zhou \n" +"PO-Revision-Date: 2024-05-02 21:15+0000\n" +"Last-Translator: Rosebud \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_Hans_CN\n" @@ -17,23 +17,23 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.8.1\n" +"X-Generator: Weblate 4.14.1\n" "Generated-By: Babel 2.10.1\n" #: snikket_web/admin.py:69 snikket_web/templates/admin_delete_user.html:10 #: snikket_web/templates/admin_edit_circle.html:73 msgid "Login name" -msgstr "账号" +msgstr "登录名" #: snikket_web/admin.py:73 snikket_web/templates/admin_delete_user.html:12 #: snikket_web/user.py:69 msgid "Display name" -msgstr "昵称" +msgstr "显示名" #: snikket_web/admin.py:77 snikket_web/admin.py:295 #: snikket_web/templates/admin_edit_user.html:37 msgid "Access Level" -msgstr "权限级别" +msgstr "访问级别" #: snikket_web/admin.py:79 snikket_web/admin.py:297 msgid "Limited" @@ -41,7 +41,7 @@ msgstr "受限" #: snikket_web/admin.py:80 snikket_web/admin.py:298 msgid "Normal user" -msgstr "普通" +msgstr "普通用户" #: snikket_web/admin.py:81 snikket_web/admin.py:299 msgid "Administrator" @@ -52,16 +52,12 @@ msgid "Update user" msgstr "更新用户" #: snikket_web/admin.py:91 -#, fuzzy -#| msgid "Create account" msgid "Restore account" -msgstr "创建账户" +msgstr "恢复账号" #: snikket_web/admin.py:95 -#, fuzzy -#| msgid "Your account" msgid "Unlock account" -msgstr "你的账户" +msgstr "解锁账号" #: snikket_web/admin.py:99 msgid "Create password reset link" @@ -73,19 +69,19 @@ msgstr "密码重置链接已创建" #: snikket_web/admin.py:129 msgid "User account restored" -msgstr "" +msgstr "用户账号已恢复" #: snikket_web/admin.py:134 msgid "User account unlocked" -msgstr "" +msgstr "用户账号已解锁" #: snikket_web/admin.py:141 msgid "Could not restore user account" -msgstr "" +msgstr "无法恢复用户账号" #: snikket_web/admin.py:146 msgid "Could not unlock user account" -msgstr "" +msgstr "无法解锁用户账号" #: snikket_web/admin.py:158 msgid "User information updated." @@ -101,7 +97,7 @@ msgstr "用户已删除" #: snikket_web/admin.py:231 msgid "Password reset link not found" -msgstr "此密码重置链接不存在" +msgstr "未找到密码重置链接" #: snikket_web/admin.py:243 msgid "Password reset link deleted" @@ -109,35 +105,35 @@ msgstr "密码重置链接已删除" #: snikket_web/admin.py:263 msgid "Invite to circle" -msgstr "邀请到圈子" +msgstr "邀请加入圈子" #: snikket_web/admin.py:269 msgid "At least one circle must be selected" -msgstr "需要至少选择一个圈子" +msgstr "必须至少选择一个圈子" #: snikket_web/admin.py:274 msgid "Valid for" -msgstr "有效期限" +msgstr "有效期" #: snikket_web/admin.py:276 msgid "One hour" -msgstr "一小时" +msgstr "1 小时" #: snikket_web/admin.py:277 msgid "Twelve hours" -msgstr "十二小时" +msgstr "12 小时" #: snikket_web/admin.py:278 msgid "One day" -msgstr "一天" +msgstr "1 天" #: snikket_web/admin.py:279 msgid "One week" -msgstr "一周" +msgstr "1 周" #: snikket_web/admin.py:280 msgid "Four weeks" -msgstr "四周" +msgstr "4 周" #: snikket_web/admin.py:286 snikket_web/templates/admin_edit_invite.html:17 msgid "Invitation type" @@ -145,19 +141,19 @@ msgstr "邀请类型" #: snikket_web/admin.py:288 snikket_web/templates/library.j2:158 msgid "Individual" -msgstr "单个邀请" +msgstr "个人邀请" #: snikket_web/admin.py:289 snikket_web/templates/library.j2:160 msgid "Group" -msgstr "群组邀请" +msgstr "团体邀请" #: snikket_web/admin.py:305 msgid "Comment (optional)" -msgstr "" +msgstr "备注(可选)" #: snikket_web/admin.py:309 msgid "New invitation link" -msgstr "新增邀请链接" +msgstr "新建邀请链接" #: snikket_web/admin.py:371 msgid "Revoke" @@ -183,7 +179,7 @@ msgstr "名称" #: snikket_web/admin.py:452 snikket_web/templates/admin_circles.html:47 msgid "Create circle" -msgstr "新建圈子" +msgstr "创建圈子" #: snikket_web/admin.py:482 msgid "Circle created" @@ -199,7 +195,7 @@ msgstr "更新圈子" #: snikket_web/admin.py:511 msgid "Add user" -msgstr "增加用户" +msgstr "添加用户" #: snikket_web/admin.py:529 snikket_web/admin.py:628 snikket_web/admin.py:676 msgid "No such circle exists" @@ -218,10 +214,8 @@ msgid "User removed from circle" msgstr "用户已从圈子移除" #: snikket_web/admin.py:594 -#, fuzzy -#| msgid "User removed from circle" msgid "Chat removed from circle" -msgstr "用户已从圈子移除" +msgstr "聊天已从圈子移除" #: snikket_web/admin.py:612 msgid "Delete circle permanently" @@ -232,22 +226,16 @@ msgid "Circle deleted" msgstr "圈子已删除" #: snikket_web/admin.py:653 -#, fuzzy -#| msgid "Group chat address" msgid "Group chat name" -msgstr "群聊地址" +msgstr "群聊名" #: snikket_web/admin.py:658 -#, fuzzy -#| msgid "Create account" msgid "Create group chat" -msgstr "创建账户" +msgstr "创建群聊" #: snikket_web/admin.py:688 -#, fuzzy -#| msgid "User added to circle" msgid "New group chat added to circle" -msgstr "用户已添加到圈子" +msgstr "新群聊已添加到圈子" #: snikket_web/admin.py:755 msgid "Message contents" @@ -263,7 +251,7 @@ msgstr "发送给所有用户" #: snikket_web/admin.py:769 msgid "Send preview to yourself" -msgstr "发送预览" +msgstr "发送预览给自己" #: snikket_web/admin.py:791 msgid "Announcement sent!" @@ -275,26 +263,26 @@ msgstr "主圈子" #: snikket_web/infra.py:78 msgid "Never" -msgstr "" +msgstr "从不" #: snikket_web/infra.py:95 msgid "Today" -msgstr "" +msgstr "今天" #: snikket_web/infra.py:101 msgid "Yesterday" -msgstr "" +msgstr "昨天" #: snikket_web/infra.py:105 #, python-format msgid "%(time)s ago" -msgstr "" +msgstr "%(time)s 前" #: snikket_web/invite.py:35 msgid "" "The account data you tried to import is too large to upload. Please contact " "your Snikket operator." -msgstr "账号数据过大,无法上传。请联系Sknikket管理员。" +msgstr "您尝试导入的账号数据太大而无法上传。请联系您的 Snikket 操作员。" #: snikket_web/invite.py:114 msgid "Username" @@ -310,23 +298,23 @@ msgstr "确认密码" #: snikket_web/invite.py:130 snikket_web/invite.py:202 msgid "The passwords must match." -msgstr "两次输入的密码不相符。" +msgstr "密码必须匹配。" #: snikket_web/invite.py:135 msgid "Create account" -msgstr "创建账户" +msgstr "创建账号" #: snikket_web/invite.py:162 msgid "That username is already taken." -msgstr "用户名已被占用。" +msgstr "该用户名已被占用。" #: snikket_web/invite.py:166 snikket_web/invite.py:235 msgid "Registration was declined for unknown reasons." -msgstr "注册被拒绝。" +msgstr "由于未知原因而拒绝了注册。" #: snikket_web/invite.py:170 msgid "The username is not valid." -msgstr "无效的用户名。" +msgstr "用户名无效。" #: snikket_web/invite.py:207 snikket_web/templates/user_home.html:37 #: snikket_web/templates/user_passwd.html:29 @@ -335,7 +323,7 @@ msgstr "更改密码" #: snikket_web/invite.py:254 msgid "Account data file" -msgstr "账户数据文件" +msgstr "账号数据文件" #: snikket_web/invite.py:258 msgid "Import data" @@ -346,8 +334,8 @@ msgstr "导入数据" msgid "" "The account data you tried to import is in an unknown format. Please upload " "an XML file in XEP-0227 format (provided format: %(mimetype)s)." -msgstr "" -"导入失败:未知的数据格式( %(mimetype)s)。请上传使用XEP-0227格式的XML文件。" +msgstr "您尝试导入的账号数据的格式未知。请上传 XEP-0227 格式的 XML " +"文件(提供的格式:%(mimetype)s)。" #: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18 #: snikket_web/user.py:189 @@ -356,7 +344,7 @@ msgstr "错误" #: snikket_web/main.py:38 msgid "Address" -msgstr "账号地址" +msgstr "地址" #: snikket_web/main.py:48 msgid "Sign in" @@ -380,11 +368,11 @@ msgstr "新密码" #: snikket_web/user.py:42 msgid "Confirm new password" -msgstr "确认密码" +msgstr "确认新密码" #: snikket_web/user.py:47 msgid "The new passwords must match." -msgstr "两次输入的密码不相符。" +msgstr "新密码必须匹配。" #: snikket_web/user.py:56 msgid "Sign out" @@ -392,15 +380,15 @@ msgstr "登出" #: snikket_web/user.py:61 msgid "Nobody" -msgstr "仅自己可见" +msgstr "没有人" #: snikket_web/user.py:62 msgid "Friends only" -msgstr "好友可见" +msgstr "仅好友" #: snikket_web/user.py:63 msgid "Everyone" -msgstr "公开" +msgstr "每个人" #: snikket_web/user.py:73 msgid "Avatar" @@ -408,15 +396,15 @@ msgstr "头像" #: snikket_web/user.py:77 msgid "Profile visibility" -msgstr "资料权限" +msgstr "个人资料对谁可见" #: snikket_web/user.py:82 msgid "Update profile" -msgstr "更新资料" +msgstr "更新个人资料" #: snikket_web/user.py:88 msgid "Account data" -msgstr "账户数据" +msgstr "账号数据" #: snikket_web/user.py:92 msgid "Upload" @@ -424,21 +412,21 @@ msgstr "上传" #: snikket_web/user.py:122 msgid "Incorrect password." -msgstr "密码错误。" +msgstr "密码不正确。" #: snikket_web/user.py:126 msgid "Password changed" -msgstr "密码已修改" +msgstr "密码已更改" #: snikket_web/user.py:134 msgid "" "The chosen avatar is too big. To be able to upload larger avatars, please " "use the app." -msgstr "选择的头像过大,你需要使用APP上传大头像。" +msgstr "所选头像太大。要上传更大的头像,请使用应用。" #: snikket_web/user.py:181 msgid "Profile updated" -msgstr "资料已更新" +msgstr "个人资料已更新" #: snikket_web/user.py:195 msgid "Export" @@ -446,45 +434,45 @@ msgstr "导出" #: snikket_web/user.py:213 msgid "You currently have no account data to export." -msgstr "目前没有需要导出的数据。" +msgstr "您目前没有账号数据要导出。" #: snikket_web/templates/_footer.html:4 #, python-format msgid "A Snikket service" -msgstr "一个 Snikket 实例" +msgstr "一个 Snikket 服务" #: snikket_web/templates/_footer.html:6 msgid "" "“Snikket” and the parrot logo are trademarks of Snikket Community Interest " "Company." -msgstr "“Snikket” 和鹦鹉logo是Snikket Community Interest Company的商标。" +msgstr "“Snikket” 和鹦鹉标志是 Snikket Community Interest Company 的商标。" #: snikket_web/templates/about.html:4 msgid "About Snikket" -msgstr "关于Snikket" +msgstr "关于 Snikket" #: snikket_web/templates/about.html:9 msgid "About this Service" -msgstr "关于此实例" +msgstr "关于此服务" #: snikket_web/templates/about.html:10 -#, fuzzy, python-format -#| msgid "This is the Snikket service %(site_name)s." +#, python-format msgid "" "This is the Snikket service %(site_name)s, running open-source " "software from the Snikket project." -msgstr "Snikket实例名称:%(site_name)s。" +msgstr "这是 Snikket 服务 %(site_name)s,运行来自 Snikket 项目的开源软件。" #: snikket_web/templates/about.html:11 #, python-format msgid "" "To learn more about Snikket, visit the Snikket " "website." -msgstr "要了解更多,请访问Snikket官方网站。" +msgstr "要了解有关 Snikket 的更多信息,请访问 Snikket " +"网站。" #: snikket_web/templates/about.html:13 msgid "View service policies" -msgstr "" +msgstr "查看服务策略" #: snikket_web/templates/about.html:15 msgid "Licenses" @@ -498,17 +486,16 @@ msgid "" "a>. The full terms of the license can be reviewed using the aforementioned " "link." msgstr "" -"此Web门户软件许可遵循 GNU Affero通用公共许可证(版本" -"3.0及之后版本)中的条款。此许可证的完整条款请使用前文中的链接查看。" +"门户网站软件根据 GNU Affero 通用公共许可证 3.0 " +"版及之后版本 的条款获得许可。可通过上述链接查看许可证的完整条款。" #: snikket_web/templates/about.html:17 #, python-format msgid "" "The source code of the web portal can be downloaded and viewed in its GitHub repository." -msgstr "" -"此Web门户的源代码可在其GitHub repository查看并" -"下载。" +msgstr "门户网站的源代码可在 其 GitHub repository " +"中下载和查看。" #: snikket_web/templates/about.html:18 #, python-format @@ -517,9 +504,9 @@ msgid "" "Material Icons, made available by Google under the terms of the Apache 2.0 License." msgstr "" -"Web门户中使用的图标为Google’s Material Icons," -"由Google制作分发并遵循Apache 2.0 许可证中的" -"条款。" +"门户网站中使用的图标是 Google 的 Material " +"图标,由 Google 根据 Apache 2.0 许可证 " +"的条款提供。" #: snikket_web/templates/about.html:20 msgid "Trademarks" @@ -532,8 +519,9 @@ msgid "" "Company. For more information about the trademarks, visit the Snikket Trademarks information page." msgstr "" -"“Snikket”和鹦鹉logo是Snikket Community Interest Company的商标。关于商标的更多" -"信息,请访问Snikket商标信息页面。" +"“Snikket” 和鹦鹉标志是 Snikket Community Interest Company " +"的商标。有关商标的更多信息,请访问 Snikket " +"商标信息页。" #: snikket_web/templates/about.html:23 msgid "Software Versions" @@ -541,7 +529,7 @@ msgstr "软件版本" #: snikket_web/templates/about.html:37 snikket_web/templates/policies.html:34 msgid "Back to the main page" -msgstr "返回主页面" +msgstr "返回主页" #: snikket_web/templates/admin_app.html:5 msgid "Admin area" @@ -556,28 +544,23 @@ msgstr "管理圈子" msgid "" "Circles aim to help people who are in the same social circle find " "each other on your service." -msgstr "圈子 旨在协助此实例上的用户找到自己社交圈的朋友。" +msgstr "圈子 旨在帮助处于同一社交圈子的人在您的服务中互相找到。" #: snikket_web/templates/admin_circles.html:6 -#, fuzzy -#| msgid "" -#| "Users who are in the same circle will see each other in their contact " -#| "list. In addition, each circle has a group chat where the circle members " -#| "are included." msgid "" "Users who are in the same circle will see each other in their contact list. " "In addition, each circle may have group chats where the circle members are " "included." -msgstr "" -"同一个圈子的用户可以在联系人列表中互相看到。同时每个圈子还有圈子专属的群聊。" +msgstr "在同一个圈子里的用户将在他们的联系人列表中看到对方。此外,每个圈子还有群聊," +"圈子成员也包括在内。" #: snikket_web/templates/admin_circles.html:13 msgid "Circle name" -msgstr "圈子名称" +msgstr "圈子名" #: snikket_web/templates/admin_circles.html:14 msgid "Members" -msgstr "成员数量" +msgstr "成员" #: snikket_web/templates/admin_circles.html:15 #: snikket_web/templates/admin_edit_circle.html:45 @@ -585,23 +568,23 @@ msgstr "成员数量" #: snikket_web/templates/admin_invites.html:25 #: snikket_web/templates/admin_users.html:10 msgid "Actions" -msgstr "动作" +msgstr "操作" #: snikket_web/templates/admin_circles.html:25 #, python-format msgid "Create invitation to circle %(circle_name)s" -msgstr "创建 %(circle_name)s 圈子的邀请链接" +msgstr "创建圈子 %(circle_name)s 的邀请" #: snikket_web/templates/admin_circles.html:28 #, python-format msgid "Manage members of %(circle_name)s" -msgstr "管理 %(circle_name)s 圈子的成员" +msgstr "管理 %(circle_name)s 的成员" #: snikket_web/templates/admin_circles.html:31 #: snikket_web/templates/admin_edit_circle.html:8 #, python-format msgid "Edit circle %(circle_name)s" -msgstr "修改 %(circle_name)s 圈子信息" +msgstr "编辑圈子 %(circle_name)s" #: snikket_web/templates/admin_circles.html:40 msgid "No circles" @@ -611,32 +594,31 @@ msgstr "没有圈子" msgid "" "Currently, there are no circles on this service. Use the form below to " "create one." -msgstr "目前此实例没有圈子。使用下面的表格创建一个。" +msgstr "目前,此服务没有圈子。请使用下方表单创建一个。" #: snikket_web/templates/admin_circles.html:44 msgid "New circle" -msgstr "新建圈子" +msgstr "新圈子" #: snikket_web/templates/admin_create_circle_group_chat_form.html:5 -#, fuzzy -#| msgid "Create circle" msgid "Create new circle group chat" -msgstr "新建圈子" +msgstr "创建新的圈子群聊" #: snikket_web/templates/admin_create_circle_group_chat_form.html:6 msgid "Add a chat to your circle so its members can hold group discussions." -msgstr "" +msgstr "向您的圈子添加聊天,以便其成员可以进行群组讨论。" #: snikket_web/templates/admin_create_circle_group_chat_form.html:7 msgid "Tip:" -msgstr "" +msgstr "提示:" #: snikket_web/templates/admin_create_circle_group_chat_form.html:7 msgid "" "This is only for creating group chats that automatically include all members of the circle. If you want a normal group chat, create it in the " "Snikket app instead." -msgstr "" +msgstr "这仅适用于创建自动包含全部圈子成员的群聊。如果您想要普通的群聊," +"请在 Snikket 应用中创建。" #: snikket_web/templates/admin_create_invite.html:3 msgid "Create invitation" @@ -651,38 +633,38 @@ msgstr "创建新邀请" msgid "" "Create a new invitation link to invite more users to your Snikket service by " "clicking the button below." -msgstr "点击下面的按钮来新建邀请更多用户到此实例的链接。" +msgstr "单击下方按钮,创建新的邀请链接,邀请更多用户加入您的 Snikket 服务。" #: snikket_web/templates/admin_create_invite_form.html:16 msgid "" "Choose whether this invitation link will allow more than one person to join." -msgstr "" +msgstr "选择此邀请链接是否允许多人加入。" #: snikket_web/templates/admin_create_invite_form.html:21 -#, fuzzy, python-format -#| msgid "%(title)s%(icon)s

%(description)s

" +#, python-format msgid "" "%(title)s%(icon)s

%(description)s

" -msgstr "%(title)s%(icon)s

%(description)s

" +msgstr "" +"%(title)s%(icon)s

%(description)s

" #: snikket_web/templates/admin_create_invite_form.html:34 #: snikket_web/templates/admin_edit_user.html:38 msgid "" "The access level of a user determines what interactions are allowed for them " "on your Snikket service." -msgstr "权限级别控制此Sknikket实例的用户能发起交流的范围。" +msgstr "用户的访问级别决定了他们可以在您的 Snikket 服务上进行哪些互动。" #: snikket_web/templates/admin_create_invite_form.html:38 -#, fuzzy, python-format -#| msgid "%(title)s%(icon)s

%(description)s

" +#, python-format msgid "" "%(title)s%(icon)s

%(description)s

" -msgstr "%(title)s%(icon)s

%(description)s

" +msgstr "" +"%(title)s%(icon)s

%(description)s

" #: snikket_web/templates/admin_debug_user.html:8 #, python-format msgid "Debug information for %(user_name)s" -msgstr "Debug信息:%(user_name)s" +msgstr "%(user_name)s 的调试信息" #: snikket_web/templates/admin_debug_user.html:11 #: snikket_web/templates/user_passwd.html:23 @@ -691,21 +673,20 @@ msgstr "警告" #: snikket_web/templates/admin_debug_user.html:12 msgid "The below dump may contain sensitive information." -msgstr "调试信息中可能包括敏感信息。" +msgstr "下方转储可能包含敏感信息。" #: snikket_web/templates/admin_debug_user.html:15 msgid "Raw debug dump" -msgstr "原始调试信息" +msgstr "原始调试转储" #: snikket_web/templates/admin_debug_user.html:17 msgid "Copy complete output" -msgstr "复制" +msgstr "复制完整输出" #: snikket_web/templates/admin_delete_circle.html:4 -#, fuzzy, python-format -#| msgid "Edit circle %(circle_name)s" +#, python-format msgid "Delete circle %(circle_name)s" -msgstr "修改 %(circle_name)s 圈子信息" +msgstr "删除圈子 %(circle_name)s" #: snikket_web/templates/admin_delete_circle.html:6 #: snikket_web/templates/admin_edit_circle.html:30 @@ -714,10 +695,8 @@ msgid "Delete circle" msgstr "删除圈子" #: snikket_web/templates/admin_delete_circle.html:8 -#, fuzzy -#| msgid "Are you sure you want to delete the following user?" msgid "Are you sure you want to delete the following circle?" -msgstr "你确定要删除以下用户吗?" +msgstr "是否确定要删除以下圈子?" #: snikket_web/templates/admin_delete_circle.html:13 #: snikket_web/templates/admin_delete_user.html:15 @@ -725,18 +704,12 @@ msgid "Danger" msgstr "危险" #: snikket_web/templates/admin_delete_circle.html:14 -#, fuzzy -#| msgid "" -#| "The user and their data will be deleted irrevocably, permanently and " -#| "immediately upon pushing the below button. There is no way back!" msgid "" "The circle and the corresponding chat will be deleted, permanently and " "immediately upon pushing the below button. There is no way back!" -msgstr "" -"当你按下按钮的时候,此用户的相关数据将被立刻永久删除,此操作无法撤销。" -"没有后悔药!" +msgstr "按下下面的按钮后,圈子和相应的聊天将立即永久删除。此操作无法撤销!" #: snikket_web/templates/admin_delete_circle.html:17 #: snikket_web/templates/admin_delete_user.html:19 @@ -760,24 +733,23 @@ msgstr "删除用户" #: snikket_web/templates/admin_delete_user.html:8 msgid "Are you sure you want to delete the following user?" -msgstr "你确定要删除以下用户吗?" +msgstr "是否确定要删除以下用户?" #: snikket_web/templates/admin_delete_user.html:16 msgid "" "The user and their data will be deleted irrevocably, permanently and " "immediately upon pushing the below button. There is no way back!" -msgstr "" -"当你按下按钮的时候,此用户的相关数据将被立刻永久删除,此操作无法撤销。" -"没有后悔药!" +msgstr "按下下面的按钮后,用户及其数据将不可撤销、永久立即删除。此操作无法撤" +"销!" #: snikket_web/templates/admin_edit_circle.html:14 msgid "This is your main circle" -msgstr "这是你的主圈子" +msgstr "这是您的主圈子" #: snikket_web/templates/admin_edit_circle.html:15 msgid "This circle is managed automatically and cannot be removed or renamed." -msgstr "此圈子由系统自动生成,无法被修改或删除。" +msgstr "此圈子是自动管理的,无法移除或重命名。" #: snikket_web/templates/admin_edit_circle.html:19 msgid "Circle information" @@ -789,33 +761,28 @@ msgstr "返回圈子列表" #: snikket_web/templates/admin_edit_circle.html:31 msgid "Deleting a circle does not delete any users in the circle." -msgstr "删除圈子不会删除其中的用户账户。" +msgstr "删除圈子不会删除圈子中的任何用户。" #: snikket_web/templates/admin_edit_circle.html:38 -#, fuzzy -#| msgid "Group chat address" msgid "Group chats" -msgstr "群聊地址" +msgstr "群聊" #: snikket_web/templates/admin_edit_circle.html:39 msgid "These group chats will be available to all members of the circle." -msgstr "" +msgstr "这些群聊将提供给圈子的所有成员。" #: snikket_web/templates/admin_edit_circle.html:53 -#, fuzzy, python-format -#| msgid "Delete user %(user_name)s" +#, python-format msgid "Delete group chat '%(name)s'" -msgstr "删除用户 %(user_name)s" +msgstr "删除群聊 “%(name)s”" #: snikket_web/templates/admin_edit_circle.html:61 -#, fuzzy -#| msgid "This circle currently has no members." msgid "This circle currently has no group chats." -msgstr "圈子目前没有成员。" +msgstr "此圈子目前没有群聊。" #: snikket_web/templates/admin_edit_circle.html:64 msgid "Add group chat" -msgstr "" +msgstr "添加群聊" #: snikket_web/templates/admin_edit_circle.html:67 msgid "Circle members" @@ -823,11 +790,11 @@ msgstr "圈子成员" #: snikket_web/templates/admin_edit_circle.html:68 msgid "All members of the circle will see each other in their contact list." -msgstr "" +msgstr "圈子的所有成员都将在其联系人列表中看到对方。" #: snikket_web/templates/admin_edit_circle.html:84 msgid "The user has been deleted from the server." -msgstr "用户已从实例删除。" +msgstr "用户已从服务器中删除。" #: snikket_web/templates/admin_edit_circle.html:84 #: snikket_web/templates/library.j2:152 @@ -841,7 +808,7 @@ msgstr "将用户 %(username)s 从圈子中移除" #: snikket_web/templates/admin_edit_circle.html:97 msgid "This circle currently has no members." -msgstr "圈子目前没有成员。" +msgstr "此圈子目前没有成员。" #: snikket_web/templates/admin_edit_circle.html:99 msgid "Invite more members" @@ -849,7 +816,7 @@ msgstr "邀请更多成员" #: snikket_web/templates/admin_edit_circle.html:102 msgid "Add existing user" -msgstr "添加已注册用户" +msgstr "添加现有用户" #: snikket_web/templates/admin_edit_circle.html:113 msgid "All users added" @@ -857,7 +824,7 @@ msgstr "所有用户已添加" #: snikket_web/templates/admin_edit_circle.html:114 msgid "All users on this service are already in this circle." -msgstr "此实例的所有用户已在此圈子。" +msgstr "此服务上的所有用户都已在此圈子中。" #: snikket_web/templates/admin_edit_invite.html:8 msgid "View invitation" @@ -874,10 +841,8 @@ msgid "Link" msgstr "链接" #: snikket_web/templates/admin_edit_invite.html:16 -#, fuzzy -#| msgid "Invitation type" msgid "Invitation to Snikket" -msgstr "邀请类型" +msgstr "邀请加入 Snikket" #: snikket_web/templates/admin_edit_invite.html:23 #: snikket_web/templates/admin_home.html:19 @@ -887,7 +852,7 @@ msgstr "圈子" #: snikket_web/templates/admin_edit_invite.html:24 msgid "" "Users joining via this invitation will be added to the following circles:" -msgstr "使用此邀请链接的用户将加入以下圈子:" +msgstr "通过此邀请加入的用户将会添加到以下圈子:" #: snikket_web/templates/admin_edit_invite.html:30 #: snikket_web/templates/admin_invites.html:22 @@ -896,7 +861,7 @@ msgstr "圈子" #: snikket_web/templates/admin_edit_invite.html:36 msgid "The user will not be added to any circle and will have no contacts." -msgstr "此用户将不会有任何圈子和联系人。" +msgstr "用户将不会添加到任何圈子中,也不会有联系人。" #: snikket_web/templates/admin_edit_invite.html:41 msgid "Contact" @@ -905,7 +870,7 @@ msgstr "联系人" #: snikket_web/templates/admin_edit_invite.html:42 #, python-format msgid "The user will get added as contact of %(peer_jid)s." -msgstr "此用户将被添加为 %(peer_jid)s 的联系人。" +msgstr "用户将会添加为 %(peer_jid)s 的联系人。" #: snikket_web/templates/admin_edit_invite.html:44 msgid "Created" @@ -923,35 +888,35 @@ msgstr "编辑用户 %(user_name)s" #: snikket_web/templates/admin_edit_user.html:8 msgid "This user account is pending deletion" -msgstr "" +msgstr "此用户账号正在等待删除" #: snikket_web/templates/admin_edit_user.html:9 #, python-format msgid "" "The owner of the account sent a deletion request on %(date)s using their app." -msgstr "" +msgstr "账号所有者在 %(date)s 使用其应用发送了删除请求。" #: snikket_web/templates/admin_edit_user.html:10 #, python-format msgid "" "The account has been locked, and will be automatically deleted permanently " "in %(time)s." -msgstr "" +msgstr "账户已被锁定,将会在 %(time)s 后自动永久删除。" #: snikket_web/templates/admin_edit_user.html:12 msgid "" "If this was a mistake, you can cancel the deletion and restore the account." -msgstr "" +msgstr "如果这是错误,您可以取消删除并恢复账号。" #: snikket_web/templates/admin_edit_user.html:18 msgid "This user account is locked" -msgstr "" +msgstr "此用户账号已锁定" #: snikket_web/templates/admin_edit_user.html:19 msgid "" "The user will not be able to log in to their account until it is unlocked " "again." -msgstr "" +msgstr "直到解锁前,用户将无法登录其账号。" #: snikket_web/templates/admin_edit_user.html:25 msgid "Edit user" @@ -959,7 +924,7 @@ msgstr "编辑用户" #: snikket_web/templates/admin_edit_user.html:30 msgid "The login name cannot be changed." -msgstr "登录账号无法被修改。" +msgstr "无法更改登录名。" #: snikket_web/templates/admin_edit_user.html:45 #, python-format @@ -968,7 +933,7 @@ msgstr "%(title)s%(icon)s

%(description)s

" #: snikket_web/templates/admin_edit_user.html:55 msgid "Return to user list" -msgstr "返回用户列表" +msgstr "返回到用户列表" #: snikket_web/templates/admin_edit_user.html:63 msgid "Further actions" @@ -982,33 +947,33 @@ msgstr "重置密码" msgid "" "If the user has lost their password, you can use the button below to create " "a special link which allows to change the password of the account, once." -msgstr "如果用户忘记密码,你可以用下面的链接创建一个一次性的密码重置链接。" +msgstr "如果用户丢失了密码,您可以使用下方按钮创建一个特殊链接,允许更改账号密码一次" +"。" #: snikket_web/templates/admin_edit_user.html:73 msgid "Debug information" -msgstr "Debug信息" +msgstr "调试信息" #: snikket_web/templates/admin_edit_user.html:75 msgid "" "In some cases, extended information about the user account and the connected " "devices is necessary to troubleshoot issues. The button below reveals this " "(sensitive) information." -msgstr "" -"某些情况下,此用户的扩展信息和设备信息为了debug是必须的。下面的按钮显示这些敏" -"感信息。" +msgstr "在某些情况下,需要有关用户账号和连接设备的扩展信息来排查问题。下方按钮显示此" +"(敏感)信息。" #: snikket_web/templates/admin_edit_user.html:79 msgid "Show debug information" -msgstr "显示debug信息" +msgstr "显示调试信息" #: snikket_web/templates/admin_home.html:4 msgid "Welcome to the admin panel!" -msgstr "欢迎使用管理员控制面板!" +msgstr "欢迎使用管理面板!" #: snikket_web/templates/admin_home.html:5 #, python-format msgid "At your service, %(user_name)s." -msgstr "为您效劳,%(user_name)s。" +msgstr "为您服务,%(user_name)s。" #: snikket_web/templates/admin_home.html:9 msgid "Users" @@ -1025,7 +990,7 @@ msgstr "管理用户" #: snikket_web/templates/admin_home.html:21 msgid "Create and manage social circles represented on your service." -msgstr "创建与管理此实例上的社交圈子。" +msgstr "创建和管理您服务中的社交圈子。" #: snikket_web/templates/admin_home.html:27 msgid "Invitations" @@ -1042,32 +1007,32 @@ msgstr "管理邀请" #: snikket_web/templates/admin_home.html:35 msgid "System health" -msgstr "系统健康状况" +msgstr "系统运行状况" #: snikket_web/templates/admin_home.html:38 msgid "View the server status or send a broadcast message to all users." -msgstr "查看服务器状态或向所有用户发布广播消息。" +msgstr "查看服务状态或向所有用户发送广播消息。" #: snikket_web/templates/admin_home.html:40 msgid "Send a broadcast message to all users." -msgstr "向所有用户发布广播消息。" +msgstr "向所有用户发送广播消息。" #: snikket_web/templates/admin_home.html:43 #: snikket_web/templates/admin_system.html:4 msgid "Manage system" -msgstr "系统管理" +msgstr "管理系统" #: snikket_web/templates/admin_home.html:48 msgid "Go back to your user's web portal page." -msgstr "返回用户门户页面。" +msgstr "返回到用户的门户网站页面。" #: snikket_web/templates/admin_home.html:50 msgid "Exit admin panel" -msgstr "退出管理控制面板" +msgstr "退出管理面板" #: snikket_web/templates/admin_invites.html:10 msgid "Pending invitations" -msgstr "待定邀请" +msgstr "待处理的邀请" #: snikket_web/templates/admin_invites.html:21 msgid "Type" @@ -1079,21 +1044,19 @@ msgstr "过期" #: snikket_web/templates/admin_invites.html:24 msgid "Comment" -msgstr "" +msgstr "备注" #: snikket_web/templates/admin_invites.html:46 msgid "Show invite details" -msgstr "显示邀请细节" +msgstr "显示邀请详情" #: snikket_web/templates/admin_invites.html:49 msgid "Copy invite link to clipboard" -msgstr "复制邀请链接" +msgstr "复制邀请链接到剪贴板" #: snikket_web/templates/admin_invites.html:52 -#, fuzzy -#| msgid "New invitation link" msgid "Share invitation link" -msgstr "新增邀请链接" +msgstr "分享邀请链接" #: snikket_web/templates/admin_invites.html:55 msgid "Delete invitation" @@ -1101,7 +1064,7 @@ msgstr "删除邀请" #: snikket_web/templates/admin_invites.html:63 msgid "Currently, there are no pending invitations." -msgstr "当前没有待定邀请。" +msgstr "当前没有待处理的邀请。" #: snikket_web/templates/admin_reset_user_password.html:8 msgid "Password reset" @@ -1110,13 +1073,13 @@ msgstr "密码重置" #: snikket_web/templates/admin_reset_user_password.html:12 #, python-format msgid "Password reset link for %(user_name)s" -msgstr "用户 %(user_name)s 的密码重置链接" +msgstr "%(user_name)s 的密码重置链接" #: snikket_web/templates/admin_reset_user_password.html:13 msgid "" "The following link will allow the user to reset their password on their " "device, once." -msgstr "此一次性链接允许用户重置密码。" +msgstr "以下链接将允许用户在其设备上重置密码一次。" #: snikket_web/templates/admin_reset_user_password.html:22 msgid "Destroy link" @@ -1128,7 +1091,7 @@ msgstr "整体系统状态" #: snikket_web/templates/admin_system.html:9 msgid "System load (5 minute average)" -msgstr "系统负载(5分钟平均)" +msgstr "系统负载(5 分钟平均值)" #: snikket_web/templates/admin_system.html:14 #: snikket_web/templates/admin_system.html:22 @@ -1151,12 +1114,12 @@ msgid "" "%(percentage_global)s of %(mem_available)s. Of that, Snikket uses " "%(percentage_snikket)s." msgstr "" -"%(percentage_global)s 已使用(%(mem_available)s可用)。其中Snikket使用 " +"%(percentage_global)s 已使用,共可用 %(mem_available)s。其中 Snikket 使用 " "%(percentage_snikket)s。" #: snikket_web/templates/admin_system.html:27 msgid "Web portal status" -msgstr "Web门户状态" +msgstr "门户网站状态" #: snikket_web/templates/admin_system.html:30 #: snikket_web/templates/admin_system.html:53 @@ -1166,49 +1129,45 @@ msgstr "版本" #: snikket_web/templates/admin_system.html:31 #: snikket_web/templates/admin_system.html:54 msgid "View all versions" -msgstr "查看所有版本信息" +msgstr "查看所有版本" #: snikket_web/templates/admin_system.html:32 #: snikket_web/templates/admin_system.html:55 msgid "Average CPU use" -msgstr "平均CPU占用" +msgstr "平均 CPU 使用率" #: snikket_web/templates/admin_system.html:40 #: snikket_web/templates/admin_system.html:63 msgid "Current memory use" -msgstr "当前内存占用" +msgstr "当前内存使用" #: snikket_web/templates/admin_system.html:50 msgid "Snikket server status" -msgstr "Snikket实例状态" +msgstr "Snikket 服务状态" #: snikket_web/templates/admin_system.html:71 msgid "Storage used by shared files" -msgstr "共享文件存储占用" +msgstr "共享文件使用的存储" #: snikket_web/templates/admin_system.html:79 -#, fuzzy -#| msgid "Update user" msgid "Active users" -msgstr "更新用户" +msgstr "活动用户" #: snikket_web/templates/admin_system.html:83 -#, fuzzy -#| msgid "Connected devices" msgid "Connected now:" -msgstr "已连接的设备" +msgstr "现在已连接:" #: snikket_web/templates/admin_system.html:88 msgid "Past 24 hours:" -msgstr "" +msgstr "过去 24 小时:" #: snikket_web/templates/admin_system.html:89 msgid "Past 7 days:" -msgstr "" +msgstr "过去 7 天:" #: snikket_web/templates/admin_system.html:90 msgid "Past 30 days:" -msgstr "" +msgstr "过去 30 天:" #: snikket_web/templates/admin_system.html:97 msgid "Broadcast message" @@ -1218,31 +1177,27 @@ msgstr "广播消息" msgid "" "This form allows you to send a message to all users currently online on your " "Snikket server. Use it wisely." -msgstr "此表单允许你给所有在线用户发送消息。好好使用。" +msgstr "此表单允许您向 Snikket 服务中当前在线的所有用户发送消息。请明智使用。" #: snikket_web/templates/admin_users.html:8 -#, fuzzy -#| msgid "Users" msgid "User" msgstr "用户" #: snikket_web/templates/admin_users.html:9 msgid "Last active" -msgstr "" +msgstr "最后活动" #: snikket_web/templates/admin_users.html:22 -#, fuzzy -#| msgid "deleted" msgid "Deleted" msgstr "已删除" #: snikket_web/templates/admin_users.html:24 msgid "Locked" -msgstr "" +msgstr "已锁定" #: snikket_web/templates/app.html:4 msgid "Snikket Web Portal" -msgstr "Snikket Web门户" +msgstr "Snikket 门户网站" #: snikket_web/templates/app.html:8 msgid "Log out" @@ -1256,26 +1211,26 @@ msgstr "内部错误" #: snikket_web/templates/backend_error.html:4 msgid "The web portal was not able to communicate with the backend." -msgstr "Web门户无法和后端正常通信。" +msgstr "门户网站无法与后端通信。" #: snikket_web/templates/backend_error.html:5 #: snikket_web/templates/internal_error.html:5 msgid "Please try again later and/or inform your Snikket service admin." -msgstr "请稍后重试或通知此Snikket实例的管理员。" +msgstr "请稍后再试并/或通知您的 Snikket 服务管理员。" #: snikket_web/templates/generic_http_error.html:9 msgid "Go back to the main page" -msgstr "返回主页面" +msgstr "返回主页" #: snikket_web/templates/internal_error.html:4 msgid "The web portal encountered an internal error." -msgstr "Web门户遇到了内部错误。" +msgstr "门户网站遇到内部错误。" #: snikket_web/templates/invite_invalid.html:5 #: snikket_web/templates/invite_view.html:13 #, python-format msgid "Invite to %(site_name)s" -msgstr "邀请到 %(site_name)s" +msgstr "邀请加入 %(site_name)s" #: snikket_web/templates/invite_invalid.html:6 #: snikket_web/templates/invite_register.html:10 @@ -1283,15 +1238,15 @@ msgstr "邀请到 %(site_name)s" #: snikket_web/templates/invite_view.html:14 #, python-format msgid "Powered by \"Snikket\"" -msgstr "由\"Snikket\"强力驱动" +msgstr "由 \"Snikket\" 提供支持" #: snikket_web/templates/invite_invalid.html:8 msgid "Invite expired" -msgstr "邀请过期" +msgstr "邀请已过期" #: snikket_web/templates/invite_invalid.html:9 msgid "Sorry, it looks like this invitation link has expired!" -msgstr "抱歉,这个邀请链接过期了!" +msgstr "抱歉,此邀请链接似乎已过期!" #: snikket_web/templates/invite_register.html:5 #, python-format @@ -1306,11 +1261,11 @@ msgstr "在 %(site_name)s 注册" #: snikket_web/templates/invite_register.html:11 #, python-format msgid "%(site_name)s is using Snikket - a secure, privacy-friendly chat app." -msgstr "%(site_name)s 正在使用Snikket - 安全,注重隐私的聊天APP。" +msgstr "%(site_name)s 正在使用 Snikket - 安全、隐私友好的聊天应用。" #: snikket_web/templates/invite_register.html:12 msgid "Create an account" -msgstr "创建账户" +msgstr "创建账号" #: snikket_web/templates/invite_register.html:13 msgid "" @@ -1318,14 +1273,13 @@ msgid "" "Snikket app or compatible software. If you already have the app installed, " "we recommend that you continue the account creation process inside the app " "by clicking on the button below:" -msgstr "" -"创建账户后就可以使用Snikket APP或者其他兼容客户端与其他用户通信。如果你已经安" -"装了APP,我们建议你点击下面的按钮后在APP中完成注册流程:" +msgstr "创建账号将允许使用 Snikket 应用或兼容软件与其他人进行交流。如果您已经安装了应" +"用,我们建议您单击下方按钮后在应用内完成账号注册流程:" #: snikket_web/templates/invite_register.html:14 #: snikket_web/templates/invite_view.html:46 msgid "App already installed?" -msgstr "已经安装APP?" +msgstr "应用已安装?" #: snikket_web/templates/invite_register.html:16 #: snikket_web/templates/invite_reset_view.html:21 @@ -1333,48 +1287,47 @@ msgstr "已经安装APP?" #: snikket_web/templates/invite_view.html:91 #: snikket_web/templates/invite_view.html:119 msgid "Open the app" -msgstr "打开APP" +msgstr "打开应用" #: snikket_web/templates/invite_register.html:18 #: snikket_web/templates/invite_view.html:50 msgid "This button works only if you have the app installed already!" -msgstr "这个按钮只有在安装了APP后才有效!" +msgstr "此按钮仅在您已经安装了应用的情况下才有效!" #: snikket_web/templates/invite_register.html:19 msgid "Create an account online" -msgstr "在线创建账户" +msgstr "在线创建账号" #: snikket_web/templates/invite_register.html:20 msgid "" "If you plan to use a legacy XMPP client, you can register an account online " "and enter your credentials into any XMPP-compatible software." -msgstr "" -"如果你计划使用旧式的XMPP客户端,你可以注册后在你的XMPP兼容软件中输入你的账户" -"信息。" +msgstr "如果您打算使用传统的 XMPP 客户端,可以在线注册账号,在任何兼容 XMPP " +"的软件中输入您的凭据。" #: snikket_web/templates/invite_register.html:27 msgid "" "Choose a username, this will become the first part of your new chat address." -msgstr "输入用户名,这会成为聊天地址的前半部分。" +msgstr "选择用户名,这将成为您新聊天地址的前部分。" #: snikket_web/templates/invite_register.html:32 msgid "Enter a secure password that you do not use anywhere else." -msgstr "输入一个没有在其他地方使用过的安全密码。" +msgstr "请输入您在其他任何地方都不使用的安全密码。" #: snikket_web/templates/invite_reset.html:9 #: snikket_web/templates/invite_reset_view.html:9 msgid "Reset your password | Snikket" -msgstr "重置密码 | Snikket" +msgstr "重置您的密码 | Snikket" #: snikket_web/templates/invite_reset.html:14 msgid "Reset your password online" -msgstr "在线重置密码" +msgstr "在线重置您的密码" #: snikket_web/templates/invite_reset.html:15 msgid "" "To reset your password online, fill out the fields below and confirm using " "the button." -msgstr "填写信息并使用下面的按钮提交来在线重置密码。" +msgstr "要在线重置密码,请填写下面的字段并使用按钮确认。" #: snikket_web/templates/invite_reset_success.html:5 msgid "Password reset successful | Snikket" @@ -1386,51 +1339,52 @@ msgstr "密码重置成功" #: snikket_web/templates/invite_reset_success.html:10 msgid "Your password has been changed" -msgstr "你的密码已变更" +msgstr "您的密码已更改" #: snikket_web/templates/invite_reset_success.html:11 msgid "You can now log in using your new password." -msgstr "你现在可以使用新密码登录了。" +msgstr "您现在可以使用新密码登录。" #: snikket_web/templates/invite_reset_success.html:12 msgid "You can now safely close this page." -msgstr "你现在可以安全地关闭此页面。" +msgstr "您现在可以安全地关闭此页面。" #: snikket_web/templates/invite_reset_view.html:14 msgid "Reset your password" -msgstr "重置密码" +msgstr "重置您的密码" #: snikket_web/templates/invite_reset_view.html:15 #, python-format msgid "" "This page allows you to reset the password of your account, " "%(account_jid)s, once." -msgstr "此一次性页面允许你重置 %(account_jid)s 的账户密码。" +msgstr "此页面允许您重置账号 %(account_jid)s 的密码一次。" #: snikket_web/templates/invite_reset_view.html:17 msgid "Using the app" -msgstr "使用APP" +msgstr "使用应用" #: snikket_web/templates/invite_reset_view.html:18 msgid "To reset your password using the Snikket App, tap the button below." -msgstr "点击下面的按钮使用Sknikket APP重置密码。" +msgstr "要使用 Snikket 应用重置密码,请单击下方按钮。" #: snikket_web/templates/invite_reset_view.html:25 msgid "" "Alternatively, you can scan the below code with the Snikket App using the " "Scan button at the top." -msgstr "或者,使用Snikket APP顶部的扫码按钮扫一扫下面的码。" +msgstr "或者,您可以使用 Snikket 应用顶部的“扫描”按钮扫描下方二维码。" #: snikket_web/templates/invite_reset_view.html:26 msgid "" "Your camera will turn on. Point it at the square code below until it is " "within the highlighted square on your screen, and wait until the app " "recognises it." -msgstr "这会打开你的相机。把红框对准下面的二维码,直到APP成功扫描。" +msgstr "您的相机将打开。将摄像头对准下方二维码,直到它位于屏幕上突出显示的正方形内," +"然后等待应用识别。" #: snikket_web/templates/invite_reset_view.html:27 msgid "You will then be prompted to enter a new password for your account." -msgstr "然后你将可以重新设置你的账户密码。" +msgstr "然后,将提示您输入账号的新密码。" #: snikket_web/templates/invite_reset_view.html:29 #: snikket_web/templates/invite_view.html:52 @@ -1442,29 +1396,28 @@ msgstr "其他方式" msgid "" "You can also reset your password online if the " "above button or scanning the QR code does not work for you." -msgstr "" -"你也可以 点此在线重置密码,如果上面的按钮或者扫" -"码都不好用的话。" +msgstr "如果上方按钮或扫描二维码对您不起作用,您也可以 在线重置密码。" #: snikket_web/templates/invite_success.html:5 #, python-format msgid "Successfully registered on %(site_name)s | Snikket" -msgstr "成功在 %(site_name)s 注册 | Snikket" +msgstr "已在 %(site_name)s 成功注册 | Snikket" #: snikket_web/templates/invite_success.html:10 #, python-format msgid "Successfully registered on %(site_name)s" -msgstr "成功在 %(site_name)s 注册" +msgstr "已在 %(site_name)s 成功注册" #: snikket_web/templates/invite_success.html:12 #, python-format msgid "" "Congratulations! You successfully registered on %(site_name)s as %(jid)s." -msgstr "恭喜!你成功在 %(site_name)s 注册了账户 %(jid)s 。" +msgstr "恭喜!您已在 %(site_name)s 成功注册了账号 %(jid)s 。" #: snikket_web/templates/invite_success.html:13 msgid "Your address" -msgstr "你的地址" +msgstr "您的地址" #: snikket_web/templates/invite_success.html:15 #: snikket_web/templates/user_home.html:26 @@ -1475,16 +1428,15 @@ msgstr "复制地址" msgid "" "You can now set up your legacy XMPP client with the above address and the " "password you chose during registration." -msgstr "你现在可以在旧式XMPP客户端中使用上面的地址和密码登录了。" +msgstr "您现在可以使用上方地址和注册时选择的密码设置传统 XMPP 客户端。" #: snikket_web/templates/invite_success.html:18 #, python-format msgid "" "You can now safely close this page, or log in to the web portal to manage your account." -msgstr "" -"你现在可以安全地关闭页面,或者登录到Web门户管理你的" -"账户。" +msgstr "您现在可以安全地关闭此页面,或登录到门户网站 管理您的账号。" #: snikket_web/templates/invite_success.html:21 msgid "Import successful" @@ -1492,11 +1444,11 @@ msgstr "导入成功" #: snikket_web/templates/invite_success.html:22 msgid "Congratulations! Your account data has been successfully imported." -msgstr "恭喜!你的账户数据被成功导入了。" +msgstr "恭喜!您的账号数据已成功导入。" #: snikket_web/templates/invite_success.html:26 msgid "Moving to Snikket?" -msgstr "迁移到Snikket?" +msgstr "迁移到 Snikket?" #: snikket_web/templates/invite_success.html:27 msgid "" @@ -1505,17 +1457,18 @@ msgid "" "information, etc.) from your previous account. When you have exported the " "data from your previous account, upload it using the form below." msgstr "" -"如果你从其他的Snikket实例或XMPP兼容实例迁移至此,你可以把旧帐户的信息导入进来" -"(联系人、个人资料等)。当你把数据从之前的实例导出后,在这里进行导入操作。" +"如果您从不同的 Snikket 实例或其他兼容 XMPP 的服务迁移,您可以选择从以前的账号" +"导入数据(联系人、个人资料信息等)。当您从以前的账号导出数据后,请使用下方表" +"单上传数据。" #: snikket_web/templates/invite_success.html:30 msgid "Upload account data" -msgstr "上传账户数据" +msgstr "上传账号数据" #: snikket_web/templates/invite_view.html:6 #, python-format msgid "Invite to %(site_name)s | Snikket" -msgstr "邀请到 %(site_name)s | Snikket" +msgstr "邀请加入 %(site_name)s | Snikket" #: snikket_web/templates/invite_view.html:16 #, python-format @@ -1523,17 +1476,16 @@ msgid "" "You have been invited to chat with %(inviter_name)s using Snikket, a secure, " "privacy-friendly chat app on %(site_name)s." msgstr "" -"%(inviter_name)s 邀请你使用 Snikket 在 %(site_name)s 和TA一起聊天。Snikket是" -"一个安全、注重隐私的聊天APP。" +"您已受邀使用 Snikket 与 %(inviter_name)s 在 %(site_name)s 上聊天,Snikket " +"是安全、隐私友好的聊天应用。" #: snikket_web/templates/invite_view.html:18 #, python-format msgid "" "You have been invited to chat on %(site_name)s using Snikket, a secure, " "privacy-friendly chat app." -msgstr "" -"你被邀请使用 Snikket 在 %(site_name)s 聊天。Snikket是一个安全、注重隐私的聊天" -"APP。" +msgstr "您已受邀使用 Snikket 在 %(site_name)s 上聊天,Snikket " +"是安全、隐私友好的聊天应用。" #: snikket_web/templates/invite_view.html:23 #, python-format @@ -1541,6 +1493,8 @@ msgid "" "By continuing, you agree to the Terms of Service " "and Privacy Policy." msgstr "" +"继续,即表示您同意 服务条款隐私政策。" #: snikket_web/templates/invite_view.html:27 msgid "Get started" @@ -1548,7 +1502,7 @@ msgstr "开始使用" #: snikket_web/templates/invite_view.html:29 msgid "Install the Snikket App on your Android or iOS device." -msgstr "在你的Android或iOS设备上安装Snikket APP。" +msgstr "在您的 Android 或 iOS 设备上安装 Snikket 应用。" #: snikket_web/templates/invite_view.html:31 #, python-format @@ -1556,21 +1510,21 @@ msgid "" "Install the Snikket App on your Android device (iOS coming soon!)." msgstr "" -"在你的Android设备上安装Snikket App(iOS 版本即将到来!)。" +"在您的 Android 设备上安装 Snikket 应用(iOS 版即将推出!)。" #: snikket_web/templates/invite_view.html:35 msgid "Get it on Google Play" -msgstr "从Google Play获取" +msgstr "在 Google Play 获取" #: snikket_web/templates/invite_view.html:37 #: snikket_web/templates/invite_view.html:87 msgid "Download on the App Store" -msgstr "从App Store下载" +msgstr "在 App Store 下载" #: snikket_web/templates/invite_view.html:39 msgid "Get it on F-Droid" -msgstr "从F-Droid获取" +msgstr "在 F-Droid 获取" #: snikket_web/templates/invite_view.html:42 msgid "Send to mobile device" @@ -1580,7 +1534,7 @@ msgstr "发送到移动设备" msgid "" "After installation the app should automatically open and prompt you to " "create an account. If not, simply click the button below." -msgstr "APP首次运行时会自动提示你创建账户。如果没有提示,点击下面的按钮即可。" +msgstr "安装后,应用会自动打开并提示您创建账号。如果没有,只需单击下方按钮。" #: snikket_web/templates/invite_view.html:53 #, python-format @@ -1589,8 +1543,8 @@ msgid "" "above does not work with your app, you may need to register an account manually." msgstr "" -"你可以使用任意XMPP兼容软件连接到Snikket。如果上面的按钮没有效果,你可能需要" -"手动注册。" +"您可以使用任何兼容 XMPP 的软件连接到 Snikket。如果上方按钮不适用于您的应用," +"您可能需要 手动注册账号。" #: snikket_web/templates/invite_view.html:59 msgid "Scan invite code" @@ -1609,46 +1563,46 @@ msgstr "关闭" msgid "" "You can transfer this invite to your mobile device by scanning a code with " "your camera. You can use either a QR scanner app or the Snikket app itself." -msgstr "" -"你可以用手机相机扫码来打开邀请链接。你可以使用Snikket APP或者任意的二维码扫码" -"APP。" +msgstr "您可以使用相机扫描二维码将此邀请传送到您的移动设备。" +"您可以使用二维码扫描仪应用或 Snikket 应用本身。" #: snikket_web/templates/invite_view.html:78 msgid "Install on iOS" -msgstr "在iOS安装" +msgstr "在 iOS 安装" #: snikket_web/templates/invite_view.html:84 msgid "" "After downloading Snikket from the App Store, you have to return to this " "invite link and tap on \"Open the app\" to proceed." -msgstr "从App Store下载后,你需要回到这个邀请链接,然后点击“打开APP”来继续。" +msgstr "从 App Store 下载 Snikket " +"后,您必须返回到此邀请链接,然后轻击“打开应用”继续。" #: snikket_web/templates/invite_view.html:86 msgid "First download Snikket from the App Store using the button below:" -msgstr "首先使用下面的按钮从App Store下载Snikket APP:" +msgstr "首先使用下方按钮从 App Store 下载 Snikket:" #: snikket_web/templates/invite_view.html:88 #: snikket_web/templates/invite_view.html:116 msgid "" "After the installation is complete, you can return to this page and tap the " "\"Open the app\" button to continue with the setup:" -msgstr "安装完之后,你可以回到此页面,然后点击“打开APP”按钮来继续安装:" +msgstr "安装完成后,您可以返回此页面并轻击“打开应用”按钮以继续设置:" #: snikket_web/templates/invite_view.html:106 #: snikket_web/templates/invite_view.html:115 msgid "Install via F-Droid" -msgstr "从F-Droid安装" +msgstr "通过 F-Droid 安装" #: snikket_web/templates/invite_view.html:112 msgid "" "After installing Snikket via F-Droid, you have to return to this invite link " "and tap on \"Open the app\" to proceed." -msgstr "" -"从F-Droid安装Snikket APP后,你需要回到这个邀请链接,然后点击“打开APP”来继续。" +msgstr "通过 F-Droid 安装 Snikket " +"后,您必须返回到此邀请链接,然后轻击“打开应用”继续。" #: snikket_web/templates/invite_view.html:114 msgid "First install Snikket from F-Droid using the button below:" -msgstr "首先使用下面的按钮从F-Droid安装Snikket APP:" +msgstr "首先使用下方按钮从 F-Droid 安装 Snikket:" #: snikket_web/templates/library.j2:19 msgid "The user is an administrator." @@ -1660,7 +1614,7 @@ msgstr " (管理员)" #: snikket_web/templates/library.j2:23 msgid "The user is restricted." -msgstr "此用户受到限制。" +msgstr "此用户是受限用户。" #: snikket_web/templates/library.j2:23 msgid " (Restricted)" @@ -1672,7 +1626,7 @@ msgstr "复制链接" #: snikket_web/templates/library.j2:43 msgid "Share" -msgstr "" +msgstr "分享" #: snikket_web/templates/library.j2:125 msgid "Invalid input" @@ -1682,81 +1636,74 @@ msgstr "无效输入" msgid "" "Limited users can interact with users on the same Snikket service and be " "members of circles." -msgstr "受限用户只能与此Sknikket实例的用户交流,只能加入此实例的圈子。" +msgstr "受限用户可以与使用同一 Snikket 服务的用户互动,并成为圈子成员。" #: snikket_web/templates/library.j2:168 msgid "" "Like limited users and can also interact with users on other Snikket " "services." -msgstr "除了受限用户的权限,还可以和其他Snikket实例的用户交流。" +msgstr "像受限用户一样,还可以与其他 Snikket 服务上的用户互动。" #: snikket_web/templates/library.j2:170 msgid "Like normal users and can access the admin panel in the web portal." -msgstr "除了普通用户的权限,还可以使用管理员控制面板。" +msgstr "像普通用户一样,还可以访问门户网站中的管理面板。" #: snikket_web/templates/library.j2:184 msgid "Invite a single person (invitation link can only be used once)." -msgstr "" +msgstr "邀请一个人(邀请链接只能使用一次)。" #: snikket_web/templates/library.j2:186 msgid "Invite a group of people (invitation link can be used multiple times)." -msgstr "" +msgstr "邀请一群人(邀请链接可以多次使用)。" #: snikket_web/templates/login.html:5 msgid "Snikket Login" -msgstr "Snikket登录" +msgstr "Snikket 登录" #: snikket_web/templates/login.html:14 msgid "Enter your Snikket address and password to manage your account." -msgstr "输入你的Snikket地址和密码来管理账户。" +msgstr "输入您的 Snikket 地址和密码以管理您的账号。" #: snikket_web/templates/login.html:19 msgid "Incorrect address" -msgstr "无效地址" +msgstr "地址不正确" #: snikket_web/templates/login.html:20 #, python-format msgid "" "This Snikket service only hosts addresses ending in @%(snikket_domain)s. Your password was not sent." -msgstr "" -"此Snikket实例只支持后缀为 @%(snikket_domain)s 的地址。未提交你的密" -"码。" +msgstr "此 Snikket 服务仅托管以 @%(snikket_domain)s " +"结尾的地址。未发送您的密码。" #: snikket_web/templates/policies.html:4 snikket_web/templates/policies.html:10 msgid "Policies" -msgstr "" +msgstr "策略" #: snikket_web/templates/policies.html:13 -#, fuzzy -#| msgid "" -#| "Users joining via this invitation will be added to the following circles:" msgid "Use of this service is subject to the following policies:" -msgstr "使用此邀请链接的用户将加入以下圈子:" +msgstr "此服务的使用遵守以下策略:" #: snikket_web/templates/policies.html:16 msgid "Terms of Service" -msgstr "" +msgstr "服务条款" #: snikket_web/templates/policies.html:19 msgid "Privacy Policy" -msgstr "" +msgstr "隐私政策" #: snikket_web/templates/policies.html:23 msgid "" "Please contact the administrator of this instance if you have questions " "about policies." -msgstr "" +msgstr "如果您对策略有疑问,请与此实例的管理员联系。" #: snikket_web/templates/policies.html:26 -#, fuzzy, python-format -#| msgid "" -#| "To learn more about Snikket, visit the Snikket website." +#, python-format msgid "" "Use of the Snikket apps is subject to the Snikket Apps " "Privacy Policy." -msgstr "要了解更多,请访问Snikket官方网站。" +msgstr "Snikket 应用的使用遵守 Snikket 应用隐私政策。" #: snikket_web/templates/policies.html:29 #, python-format @@ -1764,48 +1711,48 @@ msgid "" "To report policy violations or other abuse from this service, please send an " "email to %(email)s. Specify the domain name of this instance (%(domain)s) " "and include details of the incident(s)." -msgstr "" +msgstr "要报告此服务违反策略或其他滥用行为,请发送电子邮件至 " +"%(email)s。指定此实例的域名(%(domain)s)并包括事件的详情。" #: snikket_web/templates/unauth.html:16 msgid "Operation successful" msgstr "操作成功" #: snikket_web/templates/user_home.html:11 -#, fuzzy -#| msgid "Moving to Snikket?" msgid "Welcome to Snikket!" -msgstr "迁移到Snikket?" +msgstr "欢迎使用 Snikket!" #: snikket_web/templates/user_home.html:12 msgid "" "Now your Snikket instance is up and running, the next step is to invite " "people to join it. Family, friends, colleagues... you choose!" -msgstr "" +msgstr "现在,您的 Snikket " +"实例已经启动并运行,下一步就是邀请他人加入。家人、朋友、同事…由您选择!" #: snikket_web/templates/user_home.html:19 msgid "Your account" -msgstr "你的账户" +msgstr "您的账号" #: snikket_web/templates/user_home.html:25 msgid "Your XMPP address" -msgstr "你的XMPP地址" +msgstr "您的 XMPP 地址" #: snikket_web/templates/user_home.html:36 msgid "Edit profile" -msgstr "编辑资料" +msgstr "编辑个人资料" #: snikket_web/templates/user_home.html:38 #: snikket_web/templates/user_manage_data.html:4 msgid "Manage your data" -msgstr "管理你的数据" +msgstr "管理您的数据" #: snikket_web/templates/user_home.html:44 msgid "Your Snikket" -msgstr "你的Snikket" +msgstr "您的 Snikket" #: snikket_web/templates/user_home.html:46 msgid "Manage users, invitations and circles of your Snikket service." -msgstr "管理此Snikket实例的用户、邀请和圈子。" +msgstr "管理您的 Snikket 服务的用户、邀请和圈子。" #: snikket_web/templates/user_home.html:48 msgid "Admin panel" @@ -1813,60 +1760,59 @@ msgstr "管理面板" #: snikket_web/templates/user_logout.html:5 msgid "Sign out of the Snikket Web Portal" -msgstr "从Snikket Web门户登出" +msgstr "退出登录 Snikket 门户网站" #: snikket_web/templates/user_logout.html:6 msgid "" "Click below to log yourself out of the web portal. This does not affect any " "other connected devices." -msgstr "点击下面的按钮从Web门户登出。不会影响其他设备上的账户登录状态。" +msgstr "单击下方按钮以登出门户网站。这不会影响任何其他已连接的设备。" #: snikket_web/templates/user_manage_data.html:8 msgid "Export account" -msgstr "账户导出" +msgstr "导出账号" #: snikket_web/templates/user_manage_data.html:9 msgid "" "Download your account data as a file for backup purposes or to move your " "account to another service." -msgstr "把你的账户数据导出,用于备份或迁移到其他实例。" +msgstr "将您的账号数据下载为文件,用于备份或将您的账号迁移到其他服务。" #: snikket_web/templates/user_passwd.html:5 msgid "Change your password" -msgstr "修改密码" +msgstr "更改您的密码" #: snikket_web/templates/user_passwd.html:6 msgid "" "To change your password, you need to provide the current password as well as " "the new one. To reduce the chance of typos, we ask for your new password " "twice." -msgstr "" -"要修改密码,你必须同时提供旧密码和新密码。为了减少输错的情况,你需要输入新密" -"码两次。" +msgstr "要更改您的密码,您需要提供当前密码和新密码。为了减少输入错误的机会,我们会要" +"求您输入两次新密码。" #: snikket_web/templates/user_passwd.html:24 msgid "" "After changing your password, you will have to enter the new password on all " "of your devices." -msgstr "在密码修改后,你需要在所有的设备上重新输入密码。" +msgstr "更改密码后,您必须在所有设备上输入新密码。" #: snikket_web/templates/user_profile.html:4 msgid "Update your profile" -msgstr "更新资料" +msgstr "更新您的个人资料" #: snikket_web/templates/user_profile.html:6 msgid "Profile" -msgstr "资料" +msgstr "个人资料" #: snikket_web/templates/user_profile.html:23 msgid "Visibility" -msgstr "可见性" +msgstr "对谁可见" #: snikket_web/templates/user_profile.html:24 msgid "" "This section allows you to control who can see your profile information, " "like avatar and nickname." -msgstr "允许你控制谁能看到你的个人资料,比如头像和昵称。" +msgstr "此部分允许您控制谁可以看到您的个人资料信息,如头像和昵称。" #~ msgid "" #~ "Can be used multiple times to create accounts on this Snikket service."