From fc58906bce535f9f3af6fa91539f9ac8b4d6c075 Mon Sep 17 00:00:00 2001 From: BaiJiangJie Date: Mon, 11 Nov 2019 18:15:25 +0800 Subject: [PATCH] =?UTF-8?q?[Update]=20=E4=BF=AE=E6=94=B9=E7=BF=BB=E8=AF=91?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/locale/zh/LC_MESSAGES/django.mo | Bin 80616 -> 80819 bytes apps/locale/zh/LC_MESSAGES/django.po | 197 +++++++++++++-------------- apps/settings/api.py | 6 +- 3 files changed, 96 insertions(+), 107 deletions(-) diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index ae4f19da812c095df7e12e22afc6c7383f957604..e002c1e2aab622b09e691c200aff0d5c6a8d983f 100644 GIT binary patch delta 23407 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 C5@m+~ delta 23216 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
    u`qGMqi$i9 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\n" "Language-Team: Jumpserver team\n" @@ -197,7 +197,7 @@ msgstr "参数" #: orgs/models.py:16 perms/models/base.py:54 #: perms/templates/perms/asset_permission_detail.html:98 #: perms/templates/perms/remote_app_permission_detail.html:90 -#: users/models/user.py:414 users/serializers/v1.py:143 +#: users/models/user.py:414 users/serializers/group.py:32 #: users/templates/users/user_detail.html:111 #: xpack/plugins/change_auth_plan/models.py:109 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_detail.html:113 @@ -308,7 +308,7 @@ msgstr "远程应用" #: settings/templates/settings/security_setting.html:73 #: settings/templates/settings/terminal_setting.html:71 #: terminal/templates/terminal/terminal_update.html:45 -#: users/templates/users/_user.html:50 +#: users/templates/users/_user.html:51 #: users/templates/users/user_bulk_update.html:23 #: users/templates/users/user_detail.html:178 #: users/templates/users/user_group_create_update.html:31 @@ -352,7 +352,7 @@ msgstr "重置" #: terminal/templates/terminal/command_list.html:47 #: terminal/templates/terminal/session_list.html:52 #: terminal/templates/terminal/terminal_update.html:46 -#: users/templates/users/_user.html:51 +#: users/templates/users/_user.html:52 #: users/templates/users/forgot_password.html:42 #: users/templates/users/user_bulk_update.html:24 #: users/templates/users/user_list.html:57 @@ -703,7 +703,7 @@ msgstr "SSH网关,支持代理SSH,RDP和VNC" #: ops/models/adhoc.py:189 perms/templates/perms/asset_permission_list.html:70 #: perms/templates/perms/asset_permission_user.html:55 #: perms/templates/perms/remote_app_permission_user.html:54 -#: settings/templates/settings/_ldap_list_users_modal.html:31 users/forms.py:13 +#: settings/templates/settings/_ldap_list_users_modal.html:31 users/forms.py:14 #: users/models/user.py:371 users/templates/users/_select_user_modal.html:14 #: users/templates/users/user_detail.html:67 #: users/templates/users/user_list.html:36 @@ -730,7 +730,7 @@ msgstr "密码或密钥密码" #: authentication/forms.py:15 #: authentication/templates/authentication/login.html:68 #: authentication/templates/authentication/new_login.html:95 -#: settings/forms.py:114 users/forms.py:15 users/forms.py:27 +#: settings/forms.py:114 users/forms.py:16 users/forms.py:42 #: users/templates/users/reset_password.html:53 #: users/templates/users/user_password_authentication.html:18 #: users/templates/users/user_password_update.html:44 @@ -1110,9 +1110,10 @@ msgstr "默认资产组" #: terminal/models.py:156 terminal/templates/terminal/command_list.html:29 #: terminal/templates/terminal/command_list.html:65 #: terminal/templates/terminal/session_list.html:27 -#: terminal/templates/terminal/session_list.html:71 users/forms.py:319 +#: terminal/templates/terminal/session_list.html:71 users/forms.py:339 #: users/models/user.py:127 users/models/user.py:143 users/models/user.py:500 -#: users/serializers/v1.py:132 users/templates/users/user_group_detail.html:78 +#: users/serializers/group.py:21 +#: users/templates/users/user_group_detail.html:78 #: users/templates/users/user_group_list.html:36 users/views/user.py:250 #: xpack/plugins/orgs/forms.py:28 #: xpack/plugins/orgs/templates/orgs/org_detail.html:113 @@ -1265,7 +1266,7 @@ msgstr "组织名称" msgid "Backend" msgstr "后端" -#: assets/serializers/asset_user.py:67 users/forms.py:262 +#: assets/serializers/asset_user.py:67 users/forms.py:282 #: users/models/user.py:403 users/templates/users/first_login.html:42 #: users/templates/users/user_password_update.html:49 #: users/templates/users/user_profile.html:69 @@ -1436,7 +1437,7 @@ msgid "Asset list" msgstr "资产列表" #: assets/templates/assets/_asset_list_modal.html:33 -#: assets/templates/assets/_node_tree.html:40 +#: assets/templates/assets/_node_tree.html:39 #: ops/templates/ops/command_execution_create.html:70 #: ops/templates/ops/command_execution_create.html:127 #: settings/templates/settings/_ldap_list_users_modal.html:41 @@ -1482,7 +1483,7 @@ msgstr "获取认证信息错误" #: assets/templates/assets/_user_asset_detail_modal.html:23 #: authentication/templates/authentication/_access_key_modal.html:142 #: authentication/templates/authentication/_mfa_confirm_modal.html:53 -#: settings/templates/settings/_ldap_list_users_modal.html:170 +#: settings/templates/settings/_ldap_list_users_modal.html:171 #: templates/_modal.html:22 msgid "Close" msgstr "关闭" @@ -1532,31 +1533,31 @@ msgstr "SSH端口" msgid "If use nat, set the ssh real port" msgstr "如果使用了nat端口映射,请设置为ssh真实监听的端口" -#: assets/templates/assets/_node_tree.html:50 +#: assets/templates/assets/_node_tree.html:49 msgid "Add node" msgstr "新建节点" -#: assets/templates/assets/_node_tree.html:51 +#: assets/templates/assets/_node_tree.html:50 msgid "Rename node" msgstr "重命名节点" -#: assets/templates/assets/_node_tree.html:52 +#: assets/templates/assets/_node_tree.html:51 msgid "Delete node" msgstr "删除节点" -#: assets/templates/assets/_node_tree.html:166 +#: assets/templates/assets/_node_tree.html:165 msgid "Create node failed" msgstr "创建节点失败" -#: assets/templates/assets/_node_tree.html:178 +#: assets/templates/assets/_node_tree.html:177 msgid "Have child node, cancel" msgstr "存在子节点,不能删除" -#: assets/templates/assets/_node_tree.html:180 +#: assets/templates/assets/_node_tree.html:179 msgid "Have assets, cancel" msgstr "存在资产,不能删除" -#: assets/templates/assets/_node_tree.html:255 +#: assets/templates/assets/_node_tree.html:254 msgid "Rename success" msgstr "重命名成功" @@ -1698,7 +1699,7 @@ msgstr "导出" #: assets/templates/assets/admin_user_list.html:21 #: assets/templates/assets/asset_list.html:73 #: assets/templates/assets/system_user_list.html:24 -#: settings/templates/settings/_ldap_list_users_modal.html:171 +#: settings/templates/settings/_ldap_list_users_modal.html:172 #: users/templates/users/user_group_list.html:15 #: users/templates/users/user_list.html:15 #: xpack/plugins/license/templates/license/license_detail.html:110 @@ -1883,16 +1884,16 @@ msgstr "删除选择资产" msgid "Cancel" msgstr "取消" -#: assets/templates/assets/asset_list.html:434 +#: assets/templates/assets/asset_list.html:432 msgid "Asset Deleted." msgstr "已被删除" -#: assets/templates/assets/asset_list.html:435 -#: assets/templates/assets/asset_list.html:439 +#: assets/templates/assets/asset_list.html:433 +#: assets/templates/assets/asset_list.html:441 msgid "Asset Delete" msgstr "删除" -#: assets/templates/assets/asset_list.html:438 +#: assets/templates/assets/asset_list.html:440 msgid "Asset Deleting failed." msgstr "删除失败" @@ -2265,7 +2266,7 @@ msgstr "Agent" #: audits/models.py:86 audits/templates/audits/login_log_list.html:62 #: authentication/templates/authentication/_mfa_confirm_modal.html:14 -#: users/forms.py:174 users/models/user.py:395 +#: users/forms.py:194 users/models/user.py:395 #: users/templates/users/first_login.html:45 msgid "MFA" msgstr "MFA" @@ -2488,7 +2489,7 @@ msgid "" "after {} minutes)" msgstr "账号已被锁定(请联系管理员解锁 或 {}分钟后重试)" -#: authentication/forms.py:66 users/forms.py:21 +#: authentication/forms.py:66 users/forms.py:22 msgid "MFA code" msgstr "MFA 验证码" @@ -3136,7 +3137,7 @@ msgstr "提示:RDP 协议不支持单独控制上传或下载文件" #: perms/templates/perms/asset_permission_list.html:71 #: perms/templates/perms/asset_permission_list.html:118 #: perms/templates/perms/remote_app_permission_list.html:16 -#: templates/_nav.html:21 users/forms.py:293 users/models/group.py:26 +#: templates/_nav.html:21 users/forms.py:313 users/models/group.py:26 #: users/models/user.py:379 users/templates/users/_select_user_modal.html:16 #: users/templates/users/user_detail.html:218 #: users/templates/users/user_list.html:38 @@ -3396,29 +3397,41 @@ msgstr "远程应用授权用户列表" msgid "RemoteApp permission RemoteApp list" msgstr "远程应用授权远程应用列表" -#: settings/api.py:34 +#: settings/api.py:37 msgid "Test mail sent to {}, please check" msgstr "邮件已经发送{}, 请检查" -#: settings/api.py:73 +#: settings/api.py:76 msgid "Test ldap success" msgstr "连接LDAP成功" -#: settings/api.py:113 +#: settings/api.py:107 +msgid "LDAP attr map not valid" +msgstr "LDAP 属性映射无效" + +#: settings/api.py:116 msgid "Match {} s users" msgstr "匹配 {} 个用户" -#: settings/api.py:258 settings/api.py:294 +#: settings/api.py:224 +msgid "Get ldap users is None" +msgstr "获取 LDAP 用户为 None" + +#: settings/api.py:231 +msgid "Imported {} users successfully" +msgstr "导入 {} 个用户成功" + +#: settings/api.py:262 settings/api.py:298 msgid "" "Error: Account invalid (Please make sure the information such as Access key " "or Secret key is correct)" msgstr "错误:账户无效 (请确保 Access key 或 Secret key 等信息正确)" -#: settings/api.py:264 settings/api.py:300 +#: settings/api.py:268 settings/api.py:304 msgid "Create succeed" msgstr "创建成功" -#: settings/api.py:282 settings/api.py:320 +#: settings/api.py:286 settings/api.py:324 #: settings/templates/settings/terminal_setting.html:154 msgid "Delete succeed" msgstr "删除成功" @@ -3752,7 +3765,7 @@ msgstr "邮件" msgid "Existing" msgstr "已存在" -#: settings/templates/settings/_ldap_list_users_modal.html:143 +#: settings/templates/settings/_ldap_list_users_modal.html:144 msgid "" "User is not currently selected, please check the user you want to import" msgstr "当前无勾选用户,请勾选你想要导入的用户" @@ -3829,7 +3842,7 @@ msgstr "文档类型" msgid "Create User setting" msgstr "创建用户设置" -#: settings/templates/settings/ldap_setting.html:68 +#: settings/templates/settings/ldap_setting.html:66 msgid "Bulk import" msgstr "一键导入" @@ -3973,8 +3986,8 @@ msgid "Commercial support" msgstr "商业支持" #: templates/_header_bar.html:70 templates/_nav.html:30 -#: templates/_nav_user.html:32 users/forms.py:153 -#: users/templates/users/_user.html:43 +#: templates/_nav_user.html:32 users/forms.py:173 +#: users/templates/users/_user.html:44 #: users/templates/users/first_login.html:39 #: users/templates/users/user_password_update.html:40 #: users/templates/users/user_profile.html:17 @@ -4538,7 +4551,7 @@ msgstr "你可以使用ssh客户端工具连接终端" msgid "Could not reset self otp, use profile reset instead" msgstr "不能再该页面重置MFA, 请去个人信息页面重置" -#: users/forms.py:32 users/models/user.py:383 +#: users/forms.py:47 users/models/user.py:383 #: users/templates/users/_select_user_modal.html:15 #: users/templates/users/user_detail.html:87 #: users/templates/users/user_list.html:37 @@ -4546,44 +4559,51 @@ msgstr "不能再该页面重置MFA, 请去个人信息页面重置" msgid "Role" msgstr "角色" -#: users/forms.py:35 users/forms.py:232 +#: users/forms.py:51 users/models/user.py:418 +#: users/templates/users/user_detail.html:103 +#: users/templates/users/user_list.html:39 +#: users/templates/users/user_profile.html:102 +msgid "Source" +msgstr "用户来源" + +#: users/forms.py:54 users/forms.py:252 #: users/templates/users/user_update.html:30 msgid "ssh public key" msgstr "ssh公钥" -#: users/forms.py:36 users/forms.py:233 +#: users/forms.py:55 users/forms.py:253 msgid "ssh-rsa AAAA..." msgstr "" -#: users/forms.py:37 +#: users/forms.py:56 msgid "Paste user id_rsa.pub here." msgstr "复制用户公钥到这里" -#: users/forms.py:51 users/templates/users/user_detail.html:226 +#: users/forms.py:71 users/templates/users/user_detail.html:226 msgid "Join user groups" msgstr "添加到用户组" -#: users/forms.py:86 users/forms.py:247 +#: users/forms.py:106 users/forms.py:267 msgid "Public key should not be the same as your old one." msgstr "不能和原来的密钥相同" -#: users/forms.py:90 users/forms.py:251 users/serializers/v1.py:116 +#: users/forms.py:110 users/forms.py:271 users/serializers/user.py:110 msgid "Not a valid ssh public key" msgstr "ssh密钥不合法" -#: users/forms.py:103 users/views/login.py:114 users/views/user.py:287 +#: users/forms.py:123 users/views/login.py:114 users/views/user.py:287 msgid "* Your password does not meet the requirements" msgstr "* 您的密码不符合要求" -#: users/forms.py:124 +#: users/forms.py:144 msgid "Reset link will be generated and sent to the user" msgstr "生成重置密码链接,通过邮件发送给用户" -#: users/forms.py:125 +#: users/forms.py:145 msgid "Set password" msgstr "设置密码" -#: users/forms.py:132 xpack/plugins/change_auth_plan/models.py:89 +#: users/forms.py:152 xpack/plugins/change_auth_plan/models.py:89 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_create_update.html:51 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_detail.html:69 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_execution_list.html:57 @@ -4591,7 +4611,7 @@ msgstr "设置密码" msgid "Password strategy" msgstr "密码策略" -#: users/forms.py:159 +#: users/forms.py:179 msgid "" "When enabled, you will enter the MFA binding process the next time you log " "in. you can also directly bind in \"personal information -> quick " @@ -4600,11 +4620,11 @@ msgstr "" "启用之后您将会在下次登录时进入MFA绑定流程;您也可以在(个人信息->快速修改->更" "改MFA设置)中直接绑定!" -#: users/forms.py:169 +#: users/forms.py:189 msgid "* Enable MFA authentication to make the account more secure." msgstr "* 启用MFA认证,使账号更加安全。" -#: users/forms.py:179 +#: users/forms.py:199 msgid "" "In order to protect you and your company, please keep your account, password " "and key sensitive information properly. (for example: setting complex " @@ -4613,41 +4633,41 @@ msgstr "" "为了保护您和公司的安全,请妥善保管您的账户、密码和密钥等重要敏感信息;(如:" "设置复杂密码,启用MFA认证)" -#: users/forms.py:186 users/templates/users/first_login.html:48 +#: users/forms.py:206 users/templates/users/first_login.html:48 #: users/templates/users/first_login.html:110 #: users/templates/users/first_login.html:139 msgid "Finish" msgstr "完成" -#: users/forms.py:192 +#: users/forms.py:212 msgid "Old password" msgstr "原来密码" -#: users/forms.py:197 +#: users/forms.py:217 msgid "New password" msgstr "新密码" -#: users/forms.py:202 +#: users/forms.py:222 msgid "Confirm password" msgstr "确认密码" -#: users/forms.py:212 +#: users/forms.py:232 msgid "Old password error" msgstr "原来密码错误" -#: users/forms.py:220 +#: users/forms.py:240 msgid "Password does not match" msgstr "密码不一致" -#: users/forms.py:230 +#: users/forms.py:250 msgid "Automatically configure and download the SSH key" msgstr "自动配置并下载SSH密钥" -#: users/forms.py:234 +#: users/forms.py:254 msgid "Paste your id_rsa.pub here." msgstr "复制你的公钥到这里" -#: users/forms.py:268 users/forms.py:273 users/forms.py:323 +#: users/forms.py:288 users/forms.py:293 users/forms.py:343 #: xpack/plugins/orgs/forms.py:18 msgid "Select users" msgstr "选择用户" @@ -4690,12 +4710,6 @@ msgstr "头像" msgid "Wechat" msgstr "微信" -#: users/models/user.py:418 users/templates/users/user_detail.html:103 -#: users/templates/users/user_list.html:39 -#: users/templates/users/user_profile.html:102 -msgid "Source" -msgstr "用户来源" - #: users/models/user.py:422 msgid "Date password last updated" msgstr "最后更新密码日期" @@ -4704,46 +4718,46 @@ msgstr "最后更新密码日期" msgid "Administrator is the super user of system" msgstr "Administrator是初始的超级管理员" -#: users/serializers/v1.py:45 +#: users/serializers/group.py:46 +msgid "Auditors cannot be join in the user group" +msgstr "审计员不能被加入到用户组" + +#: users/serializers/user.py:40 msgid "Groups name" msgstr "用户组名" -#: users/serializers/v1.py:46 +#: users/serializers/user.py:41 msgid "Source name" msgstr "用户来源名" -#: users/serializers/v1.py:47 +#: users/serializers/user.py:42 msgid "Is first login" msgstr "首次登录" -#: users/serializers/v1.py:48 +#: users/serializers/user.py:43 msgid "Role name" msgstr "角色名" -#: users/serializers/v1.py:49 +#: users/serializers/user.py:44 msgid "Is valid" msgstr "账户是否有效" -#: users/serializers/v1.py:50 +#: users/serializers/user.py:45 msgid "Is expired" msgstr " 是否过期" -#: users/serializers/v1.py:51 +#: users/serializers/user.py:46 msgid "Avatar url" msgstr "头像路径" -#: users/serializers/v1.py:72 +#: users/serializers/user.py:66 msgid "Role limit to {}" msgstr "角色只能为 {}" -#: users/serializers/v1.py:84 +#: users/serializers/user.py:78 msgid "Password does not match security rules" msgstr "密码不满足安全规则" -#: users/serializers/v1.py:157 -msgid "Auditors cannot be join in the user group" -msgstr "审计员不能被加入到用户组" - #: users/serializers_v2/user.py:36 msgid "name not unique" msgstr "名称重复" @@ -4776,7 +4790,7 @@ msgstr "选择用户" msgid "Asset num" msgstr "资产数量" -#: users/templates/users/_user.html:26 +#: users/templates/users/_user.html:27 msgid "Security and Role" msgstr "角色安全" @@ -6203,12 +6217,6 @@ msgstr "密码匣子" msgid "vault create" msgstr "创建" -#~ msgid "succeed: {} failed: {} total: {}" -#~ msgstr "成功:{} 失败:{} 总数:{}" - -#~ msgid "The user source is not LDAP" -#~ msgstr "用户来源不是LDAP" - #~ msgid "Recipient" #~ msgstr "收件人" @@ -6334,25 +6342,6 @@ msgstr "创建" #~ msgid "Sync User" #~ msgstr "同步用户" -#~ msgid "Have user but attr mapping error" -#~ msgstr "有用户但attr映射错误" - -#~ msgid "" -#~ "Import {} users successfully; import {} users failed, the database " -#~ "already exists with the same name" -#~ msgstr "导入 {} 个用户成功; 导入 {} 这些用户失败,数据库已经存在同名的用户" - -#~ msgid "" -#~ "Import {} users successfully; import {} users failed, the database " -#~ "already exists with the same name; import {}users failed, " -#~ "Because’TypeError' object has no attribute 'keys'" -#~ msgstr "" -#~ "导入 {} 个用户成功; 导入 {} 这些用户失败,数据库已经存在同名的用户; 导入 " -#~ "{} 这些用户失败,因为对象没有属性'keys'" - -#~ msgid "Import {} users successfully" -#~ msgstr "导入 {} 个用户成功" - #~ msgid "" #~ "Import {} users successfully;import {} users failed, Because’TypeError' " #~ "object has no attribute 'keys'" diff --git a/apps/settings/api.py b/apps/settings/api.py index 7f349117b..f55b37749 100644 --- a/apps/settings/api.py +++ b/apps/settings/api.py @@ -104,7 +104,7 @@ class LDAPTestingAPI(APIView): try: json.loads(attr_map) except json.JSONDecodeError: - return Response({"error": "AUTH_LDAP_USER_ATTR_MAP not valid"}, status=401) + return Response({"error": _("LDAP attr map not valid")}, status=401) config = self.get_ldap_config(serializer) util = LDAPServerUtil(config=config) @@ -221,14 +221,14 @@ class LDAPUserImportAPI(APIView): return Response({'error': str(e)}, status=401) if users is None: - return Response({'msg': 'Get ldap users is None'}, status=401) + return Response({'msg': _('Get ldap users is None')}, status=401) errors = LDAPImportUtil().perform_import(users) if errors: return Response({'errors': errors}, status=401) count = users if users is None else len(users) - return Response({'msg': 'Imported {} users successfully'.format(count)}) + return Response({'msg': _('Imported {} users successfully').format(count)}) class LDAPCacheRefreshAPI(generics.RetrieveAPIView):