From 083f061665dd6dc36bf6084e01e1495c4287d498 Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Sun, 17 Jan 2021 16:22:06 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E6=9B=B4=E6=96=B0=E7=BF=BB=E8=AF=91=20?= =?UTF-8?q?(#5438)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * perf: 更新翻译 * perf: 更新翻译 Co-authored-by: Bai --- apps/locale/zh/LC_MESSAGES/django.mo | Bin 63643 -> 61771 bytes apps/locale/zh/LC_MESSAGES/django.po | 3336 +++++--------------------- apps/terminal/serializers/storage.py | 4 +- apps/users/views/profile/reset.py | 6 +- 4 files changed, 580 insertions(+), 2766 deletions(-) diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index 8a1afc835b68dd24401a9ff82db53dc845a1b761..b346f48041df5120529d322fa01b86d486c44439 100644 GIT binary patch delta 21021 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

U%B7mtw#tDWZD@ z&eXp@YHLvT@PW~hoND7Jx8jK%+^bjQFn{-fJ%W5M2Ho=i7SkXoMP$^Fu>O(ZzDjYG z-IMlrjT;aY5*{(ke|m7!AfIPwd~n2Yf1P0)gHndGxwuGf-uJ^JL%jAJc}9-%6dyUN zgwrx&s3$5qJR(pT7#15lG&&}nU|5{fGTPJKZm#ZHcTZSM1h;ZCa9TpWi zB22BG?juKacZcZg|5NAM|K7W8;EuH8hWw`?uZ-|Tjv87!D#8=p%M;g!$K>U0=@HRC zI;yuPF8Y7&$rBbnATlbJt;Gxo>+er7x@eHUrMGsFf8m(qA!(vx;yg)*xpaKF9D3=Z zW1QCR>&Ij3KGXhB$KMa~9h*4B-*QrD3VXO4&n)gAF|%fHr|xE5{9?gRq6&>e^7#11pPvL72)KudFYt}FA z8Q4D}EH=W^J6gx3V+>3eJ1{ybJd!iC*MPR3eZr!8M+CYgJs7@v^LP7~F9-?B-X|>9 z^YTloX42#2i(gpQH*k?JMbcNnUyJVf8ZOD||9Ww?5P$h)6GQx=E7u46_N^}E&$eb- z@@$DqC&cex7e8}B{QlkdS8s`5J0Wq-Bz@=ko@@?H6KMGl-+4Q?qzm$u+n&<@(YBN+ zeKR(-_+LiU%=O>D^ElyAbrQ!NjGuhimv?hT_v`Q2-ekcAc1(IOZ=G|0&-#QZ`{So9 zy1!~;QZQ#`;)b36v-^7oS4iA-IR3-wPU3w3{T=)79Xj+%E&kB_#Q7T&H%^b||43)S z;R(LhhpKqp?rzRT+}}Il-k}Xn{G1sH6J|RJQ`yiYok(Dk{~X(}m;L`ePV^s6JiLN^ za1k$ONjKruv~T*MxxNyITl*FtZkl=aA`V^G5ua4^=R9&OC{@C$eev#PU-@W5Q0l}D zGr4jHd}EHilRWXr!o-zheaSx_lx(8^!J=(G@5i@uC9c|jfBV|_DJvf=S?gG^W0Lyi zI$k8r_Ji?DHrkZ6j=vM+Uw7hYkngXPJJTjCoSd*~jeD^ECa1%LvLtTV!5wm3;^)jt zJTk_=`OLr|U#HKm```L}Kv1$pD-#w>@$EiWIVAD$1pke5ZG)2SSsj05fxpc8dO^N1 z7rqL4Fn_y$&c$Ux$rr6lShm9P-F{lk-{MlGP;dOiH9c#zUMqNBHfos!)({i}+v)3fJ2if38(Jb!!7kCr`Zz45+?;Ae^`69lH z^xyvOm*hHX-4pNdcyK`_a|@WtH`(OiN{yq2cNI#kB@S`{CaV(?d1*kb$C?Ucj?g#Ux%M= a__II$BiLWzS+@}Xsb6~s`)dAP?*9Q#bGI-6 delta 22925 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\n" "Language-Team: JumpServer team\n" @@ -17,31 +17,29 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: applications/const.py:53 applications/models/application.py:33 -msgid "Custom" -msgstr "自定义" - -#: applications/models/application.py:60 applications/models/database_app.py:29 -#: applications/serializers/database_app.py:16 -#: applications/serializers/remote_app.py:69 +#: applications/const.py:9 +#: applications/serializers/attrs/application_category/db.py:14 +#: applications/serializers/attrs/application_type/mysql_workbench.py:26 #: users/templates/users/user_granted_database_app.html:37 msgid "Database" msgstr "数据库" -#: applications/models/application.py:61 +#: applications/const.py:10 msgid "Remote app" msgstr "远程应用" -#: applications/models/application.py:121 -#: applications/models/database_app.py:18 applications/models/k8s_app.py:11 -#: applications/models/remote_app.py:21 assets/models/asset.py:149 +#: applications/const.py:29 +msgid "Custom" +msgstr "自定义" + +#: applications/models/application.py:10 assets/models/asset.py:149 #: assets/models/base.py:234 assets/models/cluster.py:18 #: assets/models/cmd_filter.py:21 assets/models/domain.py:21 #: assets/models/group.py:20 assets/models/label.py:18 ops/mixin.py:24 #: orgs/models.py:23 perms/models/base.py:48 settings/models.py:27 -#: terminal/models/storage.py:21 terminal/models/storage.py:58 +#: terminal/models/storage.py:15 terminal/models/storage.py:55 #: terminal/models/task.py:16 terminal/models/terminal.py:131 -#: users/forms/profile.py:20 users/models/group.py:15 users/models/user.py:495 +#: users/forms/profile.py:20 users/models/group.py:15 users/models/user.py:518 #: users/templates/users/_select_user_modal.html:13 #: users/templates/users/user_asset_permission.html:37 #: users/templates/users/user_asset_permission.html:154 @@ -59,45 +57,49 @@ msgstr "远程应用" msgid "Name" msgstr "名称" -#: applications/models/application.py:122 assets/models/asset.py:198 -#: assets/models/domain.py:27 assets/models/domain.py:54 -msgid "Domain" -msgstr "网域" - -#: applications/models/application.py:123 -#: applications/serializers/application.py:16 assets/models/label.py:21 -#: perms/models/application_permission.py:19 +#: applications/models/application.py:12 +#: applications/serializers/application.py:41 assets/models/label.py:21 +#: perms/models/application_permission.py:20 #: perms/serializers/application/permission.py:16 #: perms/serializers/application/user_permission.py:33 +#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:18 msgid "Category" -msgstr "分类" +msgstr "种类" -#: applications/models/application.py:124 -#: applications/models/database_app.py:22 applications/models/k8s_app.py:14 -#: applications/serializers/application.py:17 assets/models/cmd_filter.py:52 -#: perms/models/application_permission.py:20 +#: applications/models/application.py:15 +#: applications/serializers/application.py:42 assets/models/cmd_filter.py:52 +#: perms/models/application_permission.py:23 #: perms/serializers/application/permission.py:17 #: perms/serializers/application/user_permission.py:34 -#: terminal/models/storage.py:23 terminal/models/storage.py:60 -#: tickets/models/ticket.py:40 +#: terminal/models/storage.py:18 terminal/models/storage.py:58 +#: tickets/models/ticket.py:38 +#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:25 +#: tickets/serializers/ticket/ticket.py:19 #: users/templates/users/user_granted_database_app.html:35 msgid "Type" msgstr "类型" +#: applications/models/application.py:19 assets/models/asset.py:198 +#: assets/models/domain.py:27 assets/models/domain.py:55 +msgid "Domain" +msgstr "网域" + +#: applications/models/application.py:21 +msgid "Attrs" +msgstr "" + # msgid "Date created" # msgstr "创建日期" -#: applications/models/application.py:127 -#: applications/models/database_app.py:33 applications/models/k8s_app.py:18 -#: applications/models/remote_app.py:45 assets/models/asset.py:154 +#: applications/models/application.py:23 assets/models/asset.py:154 #: assets/models/asset.py:230 assets/models/base.py:239 #: assets/models/cluster.py:29 assets/models/cmd_filter.py:23 #: assets/models/cmd_filter.py:57 assets/models/domain.py:22 -#: assets/models/domain.py:55 assets/models/group.py:23 +#: assets/models/domain.py:56 assets/models/group.py:23 #: assets/models/label.py:23 ops/models/adhoc.py:37 orgs/models.py:26 -#: perms/models/base.py:56 settings/models.py:32 terminal/models/storage.py:28 -#: terminal/models/storage.py:65 terminal/models/terminal.py:145 -#: tickets/models/ticket.py:43 users/models/group.py:16 -#: users/models/user.py:528 users/templates/users/user_detail.html:115 +#: perms/models/base.py:56 settings/models.py:32 terminal/models/storage.py:21 +#: terminal/models/storage.py:61 terminal/models/terminal.py:145 +#: tickets/models/ticket.py:73 users/models/group.py:16 +#: users/models/user.py:551 users/templates/users/user_detail.html:115 #: users/templates/users/user_granted_database_app.html:38 #: users/templates/users/user_granted_remote_app.html:37 #: users/templates/users/user_group_detail.html:62 @@ -108,53 +110,32 @@ msgstr "类型" msgid "Comment" msgstr "备注" -#: applications/models/database_app.py:25 -#: applications/serializers/database_app.py:13 ops/models/adhoc.py:146 -#: users/templates/users/user_granted_database_app.html:36 -msgid "Host" -msgstr "主机" - -#: applications/models/database_app.py:27 -#: applications/serializers/database_app.py:14 -#: applications/serializers/database_app.py:20 -#: applications/serializers/database_app.py:24 -#: applications/serializers/database_app.py:28 -#: applications/serializers/remote_app.py:68 assets/models/asset.py:195 -#: assets/models/domain.py:52 -msgid "Port" -msgstr "端口" - -#: applications/models/database_app.py:41 -#: perms/forms/database_app_permission.py:44 -#: perms/models/database_app_permission.py:18 -#: perms/utils/database_app_permission.py:77 templates/_nav.html:66 -#: templates/_nav.html:86 templates/_nav_user.html:22 -#: users/templates/users/user_database_app_permission.html:39 -#: users/templates/users/user_database_app_permission.html:64 -msgid "DatabaseApp" -msgstr "数据库应用" - -#: applications/models/k8s_app.py:9 -msgid "Kubernetes" -msgstr "" - -#: applications/models/k8s_app.py:16 applications/serializers/k8s_app.py:9 +#: applications/serializers/attrs/application_category/cloud.py:9 #: assets/models/cluster.py:40 msgid "Cluster" msgstr "集群" -#: applications/models/k8s_app.py:26 perms/models/k8s_app_permission.py:18 -#: perms/utils/k8s_app_permission.py:70 -msgid "KubernetesApp" -msgstr "Kubernetes应用" +#: applications/serializers/attrs/application_category/db.py:11 +#: ops/models/adhoc.py:146 +#: users/templates/users/user_granted_database_app.html:36 +msgid "Host" +msgstr "主机" -#: applications/models/remote_app.py:23 -#: applications/serializers/remote_app.py:36 assets/models/asset.py:363 -#: assets/models/authbook.py:26 assets/models/gathered_user.py:14 -#: assets/serializers/admin_user.py:32 assets/serializers/asset_user.py:47 -#: assets/serializers/asset_user.py:84 assets/serializers/system_user.py:191 -#: audits/models.py:38 perms/forms/asset_permission.py:89 -#: perms/models/asset_permission.py:94 templates/index.html:82 +#: applications/serializers/attrs/application_category/db.py:12 +#: applications/serializers/attrs/application_type/mysql.py:11 +#: applications/serializers/attrs/application_type/mysql_workbench.py:22 +#: applications/serializers/attrs/application_type/oracle.py:11 +#: applications/serializers/attrs/application_type/pgsql.py:11 +#: assets/models/asset.py:195 assets/models/domain.py:53 +msgid "Port" +msgstr "端口" + +#: applications/serializers/attrs/application_category/remote_app.py:33 +#: assets/models/asset.py:363 assets/models/authbook.py:26 +#: assets/models/gathered_user.py:14 assets/serializers/admin_user.py:32 +#: assets/serializers/asset_user.py:47 assets/serializers/asset_user.py:84 +#: assets/serializers/system_user.py:191 audits/models.py:38 +#: perms/models/asset_permission.py:96 templates/index.html:82 #: terminal/backends/command/models.py:19 #: terminal/backends/command/serializers.py:13 terminal/models/session.py:39 #: users/templates/users/user_asset_permission.html:40 @@ -165,81 +146,26 @@ msgstr "Kubernetes应用" msgid "Asset" msgstr "资产" -#: applications/models/remote_app.py:28 -#: users/templates/users/user_granted_remote_app.html:35 -msgid "App type" -msgstr "应用类型" - -#: applications/models/remote_app.py:32 -msgid "App path" -msgstr "应用路径" - -#: applications/models/remote_app.py:36 -#: applications/serializers/remote_app.py:146 -msgid "Parameters" -msgstr "参数" - -#: applications/models/remote_app.py:39 assets/models/asset.py:228 -#: assets/models/base.py:242 assets/models/cluster.py:28 -#: assets/models/cmd_filter.py:26 assets/models/cmd_filter.py:60 -#: assets/models/group.py:21 common/db/models.py:67 common/mixins/models.py:49 -#: orgs/models.py:24 orgs/models.py:400 perms/models/base.py:54 -#: users/models/user.py:536 users/serializers/group.py:35 -#: users/templates/users/user_detail.html:97 -#: xpack/plugins/change_auth_plan/models.py:81 xpack/plugins/cloud/models.py:58 -#: xpack/plugins/cloud/models.py:156 xpack/plugins/gathered_user/models.py:30 -msgid "Created by" -msgstr "创建者" - -# msgid "Created by" -# msgstr "创建者" -#: applications/models/remote_app.py:42 assets/models/asset.py:229 -#: assets/models/base.py:240 assets/models/cluster.py:26 -#: assets/models/domain.py:24 assets/models/gathered_user.py:19 -#: assets/models/group.py:22 assets/models/label.py:25 common/db/models.py:69 -#: common/mixins/models.py:50 ops/models/adhoc.py:38 ops/models/command.py:27 -#: orgs/models.py:25 orgs/models.py:398 perms/models/base.py:55 -#: users/models/group.py:18 users/templates/users/user_group_detail.html:58 -#: xpack/plugins/cloud/models.py:61 xpack/plugins/cloud/models.py:159 -msgid "Date created" -msgstr "创建日期" - -#: applications/models/remote_app.py:49 perms/forms/remote_app_permission.py:46 -#: perms/models/remote_app_permission.py:15 -#: perms/utils/remote_app_permission.py:76 templates/_nav.html:64 -#: templates/_nav.html:82 templates/_nav_user.html:16 -#: users/templates/users/user_remote_app_permission.html:39 -#: users/templates/users/user_remote_app_permission.html:64 -msgid "RemoteApp" -msgstr "远程应用" - -#: applications/serializers/database_app.py:49 -#: applications/serializers/k8s_app.py:17 -#: applications/serializers/remote_app.py:162 audits/serializers.py:26 -msgid "Type for display" -msgstr "类型(显示名称)" - -#: applications/serializers/remote_app.py:37 -#: applications/serializers/remote_app.py:58 -#: applications/serializers/remote_app.py:66 -#: applications/serializers/remote_app.py:76 +#: applications/serializers/attrs/application_category/remote_app.py:36 +#: applications/serializers/attrs/application_type/chrome.py:14 +#: applications/serializers/attrs/application_type/mysql_workbench.py:14 +#: applications/serializers/attrs/application_type/vmware_client.py:18 msgid "Application path" msgstr "应用路径" -#: applications/serializers/remote_app.py:59 -#: applications/serializers/remote_app.py:77 +#: applications/serializers/attrs/application_type/chrome.py:17 +#: applications/serializers/attrs/application_type/vmware_client.py:22 msgid "Target URL" msgstr "目标URL" -#: applications/serializers/remote_app.py:60 -#: applications/serializers/remote_app.py:70 -#: applications/serializers/remote_app.py:78 -#: applications/serializers/remote_app.py:85 assets/models/base.py:235 -#: assets/models/gathered_user.py:15 audits/models.py:99 -#: authentication/forms.py:11 -#: authentication/templates/authentication/login.html:21 -#: authentication/templates/authentication/xpack_login.html:101 -#: ops/models/adhoc.py:148 users/forms/profile.py:19 users/models/user.py:493 +#: applications/serializers/attrs/application_type/chrome.py:20 +#: applications/serializers/attrs/application_type/custom.py:21 +#: applications/serializers/attrs/application_type/mysql_workbench.py:30 +#: applications/serializers/attrs/application_type/vmware_client.py:26 +#: assets/models/base.py:235 assets/models/gathered_user.py:15 +#: audits/models.py:99 authentication/forms.py:11 +#: authentication/templates/authentication/login.html:101 +#: ops/models/adhoc.py:148 users/forms/profile.py:19 users/models/user.py:516 #: users/templates/users/_select_user_modal.html:14 #: users/templates/users/user_detail.html:53 #: users/templates/users/user_list.html:15 @@ -249,14 +175,13 @@ msgstr "目标URL" msgid "Username" msgstr "用户名" -#: applications/serializers/remote_app.py:61 -#: applications/serializers/remote_app.py:71 -#: applications/serializers/remote_app.py:79 -#: applications/serializers/remote_app.py:86 assets/models/base.py:236 -#: assets/serializers/asset_user.py:71 audits/signals_handler.py:42 -#: authentication/forms.py:13 -#: authentication/templates/authentication/login.html:29 -#: authentication/templates/authentication/xpack_login.html:109 +#: applications/serializers/attrs/application_type/chrome.py:23 +#: applications/serializers/attrs/application_type/custom.py:25 +#: applications/serializers/attrs/application_type/mysql_workbench.py:34 +#: applications/serializers/attrs/application_type/vmware_client.py:30 +#: assets/models/base.py:236 assets/serializers/asset_user.py:71 +#: audits/signals_handler.py:42 authentication/forms.py:13 +#: authentication/templates/authentication/login.html:109 #: users/forms/user.py:22 users/forms/user.py:193 #: users/templates/users/user_otp_check_password.html:13 #: users/templates/users/user_password_update.html:43 @@ -270,26 +195,22 @@ msgstr "用户名" msgid "Password" msgstr "密码" -#: applications/serializers/remote_app.py:67 assets/models/asset.py:190 -#: assets/models/domain.py:51 assets/serializers/asset_user.py:46 -#: settings/serializers/settings.py:52 +#: applications/serializers/attrs/application_type/custom.py:13 +msgid "Operating parameter" +msgstr "运行参数" + +#: applications/serializers/attrs/application_type/custom.py:17 +msgid "Target url" +msgstr "目标URL" + +#: applications/serializers/attrs/application_type/mysql_workbench.py:18 +#: assets/models/asset.py:190 assets/models/domain.py:52 +#: assets/serializers/asset_user.py:46 settings/serializers/settings.py:52 #: users/templates/users/_granted_assets.html:26 #: users/templates/users/user_asset_permission.html:156 msgid "IP" msgstr "IP" -#: applications/serializers/remote_app.py:83 -msgid "Operating parameter" -msgstr "运行参数" - -#: applications/serializers/remote_app.py:84 -msgid "Target url" -msgstr "目标URL" - -#: applications/serializers/remote_app.py:161 -msgid "Asset info" -msgstr "资产信息" - #: assets/api/admin_user.py:46 msgid "Deleted failed, There are related assets" msgstr "删除失败,存在关联资产" @@ -326,7 +247,7 @@ msgstr "基础" msgid "Charset" msgstr "编码" -#: assets/models/asset.py:152 tickets/models/ticket.py:35 +#: assets/models/asset.py:152 tickets/models/ticket.py:40 msgid "Meta" msgstr "元数据" @@ -341,15 +262,14 @@ msgstr "系统平台" #: assets/models/asset.py:191 assets/serializers/asset_user.py:45 #: assets/serializers/gathered_user.py:20 settings/serializers/settings.py:51 -#: tickets/api/request_asset_perm.py:67 -#: tickets/serializers/request_asset_perm.py:23 #: users/templates/users/_granted_assets.html:25 #: users/templates/users/user_asset_permission.html:157 msgid "Hostname" msgstr "主机名" -#: assets/models/asset.py:194 assets/models/domain.py:53 -#: assets/models/user.py:103 terminal/serializers/session.py:29 +#: assets/models/asset.py:194 assets/models/domain.py:54 +#: assets/models/user.py:120 terminal/serializers/session.py:29 +#: terminal/serializers/storage.py:59 msgid "Protocol" msgstr "协议" @@ -358,22 +278,22 @@ msgstr "协议" msgid "Protocols" msgstr "协议组" -#: assets/models/asset.py:199 assets/models/user.py:98 -#: perms/models/asset_permission.py:95 +#: assets/models/asset.py:199 assets/models/user.py:115 +#: perms/models/asset_permission.py:97 #: xpack/plugins/change_auth_plan/models.py:56 #: xpack/plugins/gathered_user/models.py:24 msgid "Nodes" msgstr "节点" #: assets/models/asset.py:200 assets/models/cmd_filter.py:22 -#: assets/models/domain.py:56 assets/models/label.py:22 +#: assets/models/domain.py:57 assets/models/label.py:22 #: authentication/models.py:46 msgid "Is active" msgstr "激活" #: assets/models/asset.py:203 assets/models/cluster.py:19 #: assets/models/user.py:66 templates/_nav.html:44 -#: xpack/plugins/cloud/models.py:143 xpack/plugins/cloud/serializers.py:114 +#: xpack/plugins/cloud/models.py:143 xpack/plugins/cloud/serializers.py:126 msgid "Admin user" msgstr "管理用户" @@ -445,6 +365,30 @@ msgstr "主机名原始" msgid "Labels" msgstr "标签管理" +#: assets/models/asset.py:228 assets/models/base.py:242 +#: assets/models/cluster.py:28 assets/models/cmd_filter.py:26 +#: assets/models/cmd_filter.py:60 assets/models/group.py:21 +#: common/db/models.py:67 common/mixins/models.py:49 orgs/models.py:24 +#: orgs/models.py:427 perms/models/base.py:54 users/models/user.py:559 +#: users/serializers/group.py:35 users/templates/users/user_detail.html:97 +#: xpack/plugins/change_auth_plan/models.py:81 xpack/plugins/cloud/models.py:58 +#: xpack/plugins/cloud/models.py:156 xpack/plugins/gathered_user/models.py:30 +msgid "Created by" +msgstr "创建者" + +# msgid "Created by" +# msgstr "创建者" +#: assets/models/asset.py:229 assets/models/base.py:240 +#: assets/models/cluster.py:26 assets/models/domain.py:24 +#: assets/models/gathered_user.py:19 assets/models/group.py:22 +#: assets/models/label.py:25 common/db/models.py:69 common/mixins/models.py:50 +#: ops/models/adhoc.py:38 ops/models/command.py:27 orgs/models.py:25 +#: orgs/models.py:425 perms/models/base.py:55 users/models/group.py:18 +#: users/templates/users/user_group_detail.html:58 +#: xpack/plugins/cloud/models.py:61 xpack/plugins/cloud/models.py:159 +msgid "Date created" +msgstr "创建日期" + #: assets/models/authbook.py:17 msgid "Bulk delete deny" msgstr "拒绝批量删除" @@ -475,7 +419,7 @@ msgstr "SSH公钥" #: assets/models/base.py:241 assets/models/gathered_user.py:20 #: common/db/models.py:70 common/mixins/models.py:51 ops/models/adhoc.py:39 -#: orgs/models.py:399 +#: orgs/models.py:426 msgid "Date updated" msgstr "更新日期" @@ -487,7 +431,7 @@ msgstr "带宽" msgid "Contact" msgstr "联系人" -#: assets/models/cluster.py:22 users/models/user.py:514 +#: assets/models/cluster.py:22 users/models/user.py:537 #: users/templates/users/user_detail.html:62 msgid "Phone" msgstr "手机" @@ -513,7 +457,7 @@ msgid "Default" msgstr "默认" #: assets/models/cluster.py:36 assets/models/label.py:14 -#: users/models/user.py:655 +#: users/models/user.py:678 msgid "System" msgstr "系统" @@ -521,7 +465,7 @@ msgstr "系统" msgid "Default Cluster" msgstr "默认Cluster" -#: assets/models/cmd_filter.py:33 assets/models/user.py:108 +#: assets/models/cmd_filter.py:33 assets/models/user.py:125 msgid "Command filter" msgstr "命令过滤器" @@ -546,7 +490,7 @@ msgstr "允许" msgid "Filter" msgstr "过滤器" -#: assets/models/cmd_filter.py:53 assets/models/user.py:102 +#: assets/models/cmd_filter.py:53 assets/models/user.py:119 msgid "Priority" msgstr "优先级" @@ -564,9 +508,7 @@ msgstr "每行一个命令" #: assets/models/cmd_filter.py:56 audits/models.py:57 #: authentication/templates/authentication/_access_key_modal.html:34 -#: perms/forms/asset_permission.py:20 -#: tickets/serializers/request_asset_perm.py:63 -#: tickets/serializers/ticket.py:30 +#: tickets/models/ticket.py:43 tickets/serializers/ticket/ticket.py:20 #: users/templates/users/_granted_assets.html:29 #: users/templates/users/user_asset_permission.html:44 #: users/templates/users/user_asset_permission.html:79 @@ -581,11 +523,11 @@ msgstr "动作" msgid "Command filter rule" msgstr "命令过滤规则" -#: assets/models/domain.py:63 +#: assets/models/domain.py:64 msgid "Gateway" msgstr "网关" -#: assets/models/domain.py:69 +#: assets/models/domain.py:70 msgid "Password should not contains special characters" msgstr "密码不能包含特殊字符" @@ -615,16 +557,12 @@ msgstr "默认资产组" #: assets/models/label.py:15 audits/models.py:36 audits/models.py:56 #: audits/models.py:69 audits/serializers.py:81 authentication/models.py:44 -#: authentication/models.py:88 orgs/models.py:18 orgs/models.py:396 -#: perms/forms/asset_permission.py:83 perms/forms/database_app_permission.py:38 -#: perms/forms/remote_app_permission.py:40 perms/models/asset_permission.py:171 -#: perms/models/base.py:49 templates/index.html:78 -#: terminal/backends/command/models.py:18 +#: authentication/models.py:96 orgs/models.py:18 orgs/models.py:423 +#: perms/models/asset_permission.py:173 perms/models/base.py:49 +#: templates/index.html:78 terminal/backends/command/models.py:18 #: terminal/backends/command/serializers.py:12 terminal/models/session.py:37 -#: tickets/models/ticket.py:30 tickets/models/ticket.py:136 -#: tickets/serializers/request_asset_perm.py:64 -#: tickets/serializers/ticket.py:31 users/forms/group.py:15 -#: users/models/user.py:159 users/models/user.py:643 +#: tickets/models/comment.py:17 users/forms/group.py:15 +#: users/models/user.py:159 users/models/user.py:666 #: users/serializers/group.py:20 #: users/templates/users/user_asset_permission.html:38 #: users/templates/users/user_asset_permission.html:64 @@ -638,109 +576,102 @@ msgstr "默认资产组" msgid "User" msgstr "用户" -#: assets/models/label.py:19 assets/models/node.py:401 settings/models.py:28 +#: assets/models/label.py:19 assets/models/node.py:413 settings/models.py:28 msgid "Value" msgstr "值" -#: assets/models/node.py:131 +#: assets/models/node.py:143 msgid "New node" msgstr "新节点" -#: assets/models/node.py:304 users/templates/users/_granted_assets.html:130 +#: assets/models/node.py:316 users/templates/users/_granted_assets.html:130 msgid "empty" msgstr "空" -#: assets/models/node.py:400 perms/models/asset_permission.py:146 +#: assets/models/node.py:412 perms/models/asset_permission.py:148 msgid "Key" msgstr "键" -#: assets/models/node.py:402 +#: assets/models/node.py:414 msgid "Full value" msgstr "全称" -#: assets/models/node.py:405 perms/models/asset_permission.py:150 +#: assets/models/node.py:417 perms/models/asset_permission.py:152 msgid "Parent key" msgstr "ssh私钥" -#: assets/models/node.py:414 assets/serializers/system_user.py:190 -#: perms/forms/asset_permission.py:92 perms/forms/asset_permission.py:99 +#: assets/models/node.py:426 assets/serializers/system_user.py:190 #: users/templates/users/user_asset_permission.html:41 #: users/templates/users/user_asset_permission.html:73 #: users/templates/users/user_asset_permission.html:158 -#: xpack/plugins/cloud/models.py:139 xpack/plugins/cloud/serializers.py:115 +#: xpack/plugins/cloud/models.py:139 xpack/plugins/cloud/serializers.py:127 msgid "Node" msgstr "节点" -#: assets/models/user.py:94 +#: assets/models/user.py:111 msgid "Automatic login" msgstr "自动登录" -#: assets/models/user.py:95 +#: assets/models/user.py:112 msgid "Manually login" msgstr "手动登录" -#: assets/models/user.py:97 +#: assets/models/user.py:114 msgid "Username same with user" msgstr "用户名与用户相同" -#: assets/models/user.py:99 assets/serializers/domain.py:30 +#: assets/models/user.py:116 assets/serializers/domain.py:30 #: templates/_nav.html:39 xpack/plugins/change_auth_plan/models.py:52 msgid "Assets" msgstr "资产" -#: assets/models/user.py:100 templates/_nav.html:17 +#: assets/models/user.py:117 templates/_nav.html:17 #: users/views/profile/password.py:42 users/views/profile/pubkey.py:36 msgid "Users" msgstr "用户管理" -#: assets/models/user.py:101 users/templates/users/user_group_list.html:90 +#: assets/models/user.py:118 users/templates/users/user_group_list.html:90 #: users/templates/users/user_profile.html:124 msgid "User groups" msgstr "用户组" -#: assets/models/user.py:104 +#: assets/models/user.py:121 msgid "Auto push" msgstr "自动推送" -#: assets/models/user.py:105 +#: assets/models/user.py:122 msgid "Sudo" msgstr "Sudo" -#: assets/models/user.py:106 +#: assets/models/user.py:123 msgid "Shell" msgstr "Shell" -#: assets/models/user.py:107 +#: assets/models/user.py:124 msgid "Login mode" msgstr "登录模式" -#: assets/models/user.py:109 +#: assets/models/user.py:126 msgid "SFTP Root" msgstr "SFTP根路径" -#: assets/models/user.py:110 authentication/models.py:86 +#: assets/models/user.py:127 authentication/models.py:94 msgid "Token" msgstr "" -#: assets/models/user.py:111 +#: assets/models/user.py:128 msgid "Home" msgstr "家目录" -#: assets/models/user.py:112 +#: assets/models/user.py:129 msgid "System groups" msgstr "用户组" -#: assets/models/user.py:211 audits/models.py:39 -#: perms/forms/asset_permission.py:95 perms/forms/remote_app_permission.py:49 -#: perms/models/application_permission.py:22 -#: perms/models/asset_permission.py:96 -#: perms/models/database_app_permission.py:22 -#: perms/models/k8s_app_permission.py:22 -#: perms/models/remote_app_permission.py:16 templates/_nav.html:45 +#: assets/models/user.py:221 audits/models.py:39 +#: perms/models/application_permission.py:31 +#: perms/models/asset_permission.py:98 templates/_nav.html:45 #: terminal/backends/command/models.py:20 #: terminal/backends/command/serializers.py:14 terminal/models/session.py:41 -#: tickets/api/request_asset_perm.py:68 -#: tickets/serializers/request_asset_perm.py:25 #: users/templates/users/_granted_assets.html:27 #: users/templates/users/user_asset_permission.html:42 #: users/templates/users/user_asset_permission.html:76 @@ -812,14 +743,14 @@ msgid "Backend" msgstr "后端" #: assets/serializers/asset_user.py:75 users/forms/profile.py:148 -#: users/models/user.py:525 users/templates/users/user_password_update.html:48 +#: users/models/user.py:548 users/templates/users/user_password_update.html:48 #: users/templates/users/user_profile.html:69 #: users/templates/users/user_profile_update.html:46 #: users/templates/users/user_pubkey_update.html:46 msgid "Public key" msgstr "SSH公钥" -#: assets/serializers/asset_user.py:79 users/models/user.py:522 +#: assets/serializers/asset_user.py:79 users/models/user.py:545 msgid "Private key" msgstr "ssh私钥" @@ -903,11 +834,11 @@ msgstr "测试管理帐号可连接性: {}" msgid "Test assets connectivity" msgstr "测试资产可连接性" -#: assets/tasks/asset_connectivity.py:76 +#: assets/tasks/asset_connectivity.py:76 assets/tasks/asset_connectivity.py:87 msgid "Test assets connectivity: {}" msgstr "测试资产可连接性: {}" -#: assets/tasks/asset_connectivity.py:87 +#: assets/tasks/asset_connectivity.py:98 msgid "Test if the assets under the node are connectable: {}" msgstr "测试节点下资产是否可连接: {}" @@ -919,19 +850,23 @@ msgstr "资产 {} 系统平台 {} 不支持运行 Ansible 任务" msgid "Test asset user connectivity: {}" msgstr "测试资产用户可连接性: {}" -#: assets/tasks/gather_asset_hardware_info.py:45 +#: assets/tasks/gather_asset_hardware_info.py:46 msgid "Get asset info failed: {}" msgstr "获取资产信息失败:{}" -#: assets/tasks/gather_asset_hardware_info.py:96 +#: assets/tasks/gather_asset_hardware_info.py:97 msgid "Update some assets hardware info" msgstr "更新资产硬件信息" -#: assets/tasks/gather_asset_hardware_info.py:113 +#: assets/tasks/gather_asset_hardware_info.py:114 msgid "Update asset hardware info: {}" msgstr "更新资产硬件信息: {}" -#: assets/tasks/gather_asset_hardware_info.py:130 +#: assets/tasks/gather_asset_hardware_info.py:120 +msgid "Update assets hardware info: {}" +msgstr "更新资产硬件信息: {}" + +#: assets/tasks/gather_asset_hardware_info.py:137 msgid "Update node asset hardware information: {}" msgstr "更新节点资产硬件信息: {}" @@ -1060,7 +995,11 @@ msgid "Success" msgstr "成功" #: audits/models.py:43 ops/models/command.py:28 perms/models/base.py:52 -#: terminal/models/session.py:51 tickets/serializers/request_asset_perm.py:27 +#: terminal/models/session.py:51 +#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:41 +#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:69 +#: tickets/serializers/ticket/meta/ticket_type/apply_asset.py:38 +#: tickets/serializers/ticket/meta/ticket_type/apply_asset.py:73 #: xpack/plugins/change_auth_plan/models.py:177 #: xpack/plugins/change_auth_plan/models.py:307 #: xpack/plugins/gathered_user/models.py:76 @@ -1126,10 +1065,12 @@ msgid "Login type" msgstr "登录方式" #: audits/models.py:101 +#: tickets/serializers/ticket/meta/ticket_type/login_confirm.py:14 msgid "Login ip" msgstr "登录IP" #: audits/models.py:102 +#: tickets/serializers/ticket/meta/ticket_type/login_confirm.py:17 msgid "Login city" msgstr "登录城市" @@ -1140,7 +1081,7 @@ msgstr "用户代理" #: audits/models.py:104 #: authentication/templates/authentication/_mfa_confirm_modal.html:14 #: authentication/templates/authentication/login_otp.html:6 -#: users/forms/profile.py:52 users/models/user.py:517 +#: users/forms/profile.py:52 users/models/user.py:540 #: users/serializers/user.py:232 users/templates/users/user_detail.html:77 #: users/templates/users/user_profile.html:87 msgid "MFA" @@ -1151,8 +1092,8 @@ msgstr "多因子认证" msgid "Reason" msgstr "原因" -#: audits/models.py:106 tickets/serializers/request_asset_perm.py:62 -#: tickets/serializers/ticket.py:29 xpack/plugins/cloud/models.py:224 +#: audits/models.py:106 tickets/models/ticket.py:47 +#: tickets/serializers/ticket/ticket.py:21 xpack/plugins/cloud/models.py:224 #: xpack/plugins/cloud/models.py:282 msgid "Status" msgstr "状态" @@ -1169,6 +1110,10 @@ msgstr "认证方式" msgid "Operate for display" msgstr "操作(显示名称)" +#: audits/serializers.py:26 +msgid "Type for display" +msgstr "类型(显示名称)" + #: audits/serializers.py:27 msgid "Status for display" msgstr "状态(显示名称)" @@ -1177,7 +1122,7 @@ msgstr "状态(显示名称)" msgid "MFA for display" msgstr "多因子认证状态(显示名称)" -#: audits/serializers.py:66 audits/serializers.py:78 ops/models/adhoc.py:246 +#: audits/serializers.py:66 audits/serializers.py:78 ops/models/adhoc.py:247 #: terminal/serializers/session.py:34 msgid "Is success" msgstr "是否成功" @@ -1187,7 +1132,7 @@ msgstr "是否成功" msgid "Result" msgstr "结果" -#: audits/serializers.py:79 +#: audits/serializers.py:79 terminal/serializers/storage.py:157 msgid "Hosts" msgstr "主机" @@ -1347,17 +1292,16 @@ msgstr "登录复核 {}" msgid "SSO auth closed" msgstr "SSO 认证关闭了" -#: authentication/errors.py:218 authentication/views/login.py:247 +#: authentication/errors.py:218 authentication/views/login.py:218 msgid "Your password is too simple, please change it for security" msgstr "你的密码过于简单,为了安全,请修改" -#: authentication/errors.py:227 authentication/views/login.py:262 +#: authentication/errors.py:227 authentication/views/login.py:233 msgid "Your password has expired, please reset before logging in" msgstr "您的密码已过期,先修改再登录" #: authentication/forms.py:26 authentication/forms.py:38 -#: authentication/templates/authentication/login.html:39 -#: authentication/templates/authentication/xpack_login.html:119 +#: authentication/templates/authentication/login.html:119 #: users/forms/user.py:199 msgid "MFA code" msgstr "多因子认证验证码" @@ -1378,16 +1322,12 @@ msgstr "SSH密钥" msgid "Reviewers" msgstr "审批人" -#: authentication/models.py:54 tickets/models/ticket.py:23 +#: authentication/models.py:71 tickets/const.py:9 #: users/templates/users/user_detail.html:250 msgid "Login confirm" msgstr "登录复核" -#: authentication/models.py:64 -msgid "City" -msgstr "城市" - -#: authentication/models.py:87 +#: authentication/models.py:95 msgid "Expired" msgstr "过期时间" @@ -1417,7 +1357,7 @@ msgid "Show" msgstr "显示" #: authentication/templates/authentication/_access_key_modal.html:66 -#: users/models/user.py:421 users/serializers/user.py:229 +#: users/models/user.py:444 users/serializers/user.py:229 #: users/templates/users/user_profile.html:94 #: users/templates/users/user_profile.html:163 #: users/templates/users/user_profile.html:166 @@ -1426,7 +1366,7 @@ msgid "Disable" msgstr "禁用" #: authentication/templates/authentication/_access_key_modal.html:67 -#: users/models/user.py:422 users/serializers/user.py:230 +#: users/models/user.py:445 users/serializers/user.py:230 #: users/templates/users/user_profile.html:92 #: users/templates/users/user_profile.html:170 msgid "Enable" @@ -1438,7 +1378,7 @@ msgstr "删除成功" #: authentication/templates/authentication/_access_key_modal.html:155 #: authentication/templates/authentication/_mfa_confirm_modal.html:53 -#: templates/_modal.html:22 tickets/models/ticket.py:68 +#: templates/_modal.html:22 tickets/const.py:18 msgid "Close" msgstr "关闭" @@ -1475,40 +1415,37 @@ msgstr "确认" msgid "Code error" msgstr "代码错误" -#: authentication/templates/authentication/login.html:6 -#: authentication/templates/authentication/login.html:50 -#: authentication/templates/authentication/xpack_login.html:131 -#: templates/_base_only_msg_content.html:51 templates/_header_bar.html:83 -msgid "Login" -msgstr "登录" +#: authentication/templates/authentication/login.html:78 +msgid "Welcome back, please enter username and password to login" +msgstr "欢迎回来,请输入用户名和密码登录" -#: authentication/templates/authentication/login.html:17 -#: authentication/templates/authentication/xpack_login.html:95 +#: authentication/templates/authentication/login.html:95 msgid "Captcha invalid" msgstr "验证码错误" -#: authentication/templates/authentication/login.html:61 -#: authentication/templates/authentication/xpack_login.html:135 +#: authentication/templates/authentication/login.html:135 +#: templates/_header_bar.html:83 +msgid "Login" +msgstr "登录" + +#: authentication/templates/authentication/login.html:142 +msgid "More login options" +msgstr "更多登录方式" + +#: authentication/templates/authentication/login.html:145 +msgid "OpenID" +msgstr "OpenID" + +#: authentication/templates/authentication/login.html:150 +msgid "CAS" +msgstr "" + +#: authentication/templates/authentication/login.html:159 #: users/templates/users/forgot_password.html:7 #: users/templates/users/forgot_password.html:8 msgid "Forgot password" msgstr "忘记密码" -#: authentication/templates/authentication/login.html:68 -msgid "More login options" -msgstr "更多登录方式" - -#: authentication/templates/authentication/login.html:72 -msgid "OpenID" -msgstr "OpenID" - -#: authentication/templates/authentication/login.html:102 -#: authentication/templates/authentication/xpack_login.html:174 -msgid "" -"You are using another authentication server, please contact your " -"administrator" -msgstr "正在使用其他认证服务器,请联系管理员" - #: authentication/templates/authentication/login_otp.html:17 msgid "One-time password" msgstr "一次性密码" @@ -1547,15 +1484,11 @@ msgstr "返回" msgid "Copy success" msgstr "复制成功" -#: authentication/templates/authentication/xpack_login.html:78 -msgid "Welcome back, please enter username and password to login" -msgstr "欢迎回来,请输入用户名和密码登录" - -#: authentication/views/login.py:86 +#: authentication/views/login.py:56 msgid "Please enable cookies and try again." msgstr "设置你的浏览器支持cookie" -#: authentication/views/login.py:193 +#: authentication/views/login.py:164 msgid "" "Wait for {} confirm, You also can copy link to her/him
\n" " Don't close this page" @@ -1563,19 +1496,19 @@ msgstr "" "等待 {} 确认, 你也可以复制链接发给他/她
\n" " 不要关闭本页面" -#: authentication/views/login.py:198 +#: authentication/views/login.py:169 msgid "No ticket found" msgstr "没有发现工单" -#: authentication/views/login.py:230 +#: authentication/views/login.py:201 msgid "Logout success" msgstr "退出登录成功" -#: authentication/views/login.py:231 +#: authentication/views/login.py:202 msgid "Logout success, return login page" msgstr "退出登录成功,返回到登录页面" -#: authentication/views/login.py:246 authentication/views/login.py:261 +#: authentication/views/login.py:217 authentication/views/login.py:232 msgid "Please change your password" msgstr "请修改密码" @@ -1593,7 +1526,7 @@ msgstr "%(name)s 更新成功" msgid "Updated by" msgstr "更新人" -#: common/drf/parsers/base.py:16 +#: common/drf/parsers/base.py:17 msgid "The file content overflowed (The maximum length `{}` bytes)" msgstr "文件内容益处 (最大长度 `{}` 字节)" @@ -1618,14 +1551,6 @@ msgstr "" msgid "Is referenced by other objects and cannot be deleted" msgstr "被其他对象关联,不能删除" -#: common/fields/form.py:33 -msgid "Not a valid json" -msgstr "不是合法json" - -#: common/fields/form.py:35 -msgid "Not a string type" -msgstr "不是字符类型" - #: common/fields/model.py:80 msgid "Marshal dict data to char field" msgstr "" @@ -1678,8 +1603,8 @@ msgstr "字段必须唯一" msgid "Should not contains special characters" msgstr "不能包含特殊字符" -#: jumpserver/conf.py:477 templates/_base_only_msg_content.html:27 -#: xpack/plugins/interface/api.py:18 xpack/plugins/interface/models.py:36 +#: jumpserver/conf.py:474 xpack/plugins/interface/api.py:18 +#: xpack/plugins/interface/models.py:36 msgid "Welcome to the JumpServer open source fortress" msgstr "欢迎使用JumpServer开源堡垒机" @@ -1710,7 +1635,7 @@ msgstr "" "div>

如果你看到了这个页面,证明你访问的不是nginx监听的端口,祝你好运" -#: ops/api/celery.py:57 +#: ops/api/celery.py:61 ops/api/celery.py:76 msgid "Waiting task start" msgstr "等待任务开始" @@ -1794,42 +1719,42 @@ msgstr "创建者" msgid "Task display" msgstr "任务展示" -#: ops/models/adhoc.py:240 +#: ops/models/adhoc.py:241 msgid "Host amount" msgstr "主机数量" -#: ops/models/adhoc.py:242 +#: ops/models/adhoc.py:243 msgid "Start time" msgstr "开始时间" -#: ops/models/adhoc.py:243 +#: ops/models/adhoc.py:244 msgid "End time" msgstr "完成时间" -#: ops/models/adhoc.py:244 xpack/plugins/change_auth_plan/models.py:180 +#: ops/models/adhoc.py:245 xpack/plugins/change_auth_plan/models.py:180 #: xpack/plugins/change_auth_plan/models.py:310 #: xpack/plugins/gathered_user/models.py:79 msgid "Time" msgstr "时间" -#: ops/models/adhoc.py:245 ops/models/command.py:26 +#: ops/models/adhoc.py:246 ops/models/command.py:26 #: terminal/serializers/session.py:38 msgid "Is finished" msgstr "是否完成" -#: ops/models/adhoc.py:247 +#: ops/models/adhoc.py:248 msgid "Adhoc raw result" msgstr "结果" -#: ops/models/adhoc.py:248 +#: ops/models/adhoc.py:249 msgid "Adhoc result summary" msgstr "汇总" -#: ops/models/adhoc.py:288 xpack/plugins/change_auth_plan/utils.py:137 +#: ops/models/adhoc.py:290 xpack/plugins/change_auth_plan/utils.py:137 msgid "{} Start task: {}" msgstr "{} 任务开始: {}" -#: ops/models/adhoc.py:297 xpack/plugins/change_auth_plan/utils.py:149 +#: ops/models/adhoc.py:299 xpack/plugins/change_auth_plan/utils.py:149 msgid "{} Task finish" msgstr "{} 任务结束" @@ -1861,11 +1786,11 @@ msgstr "定期清除Celery日志" msgid "Task log" msgstr "任务列表" -#: ops/utils.py:60 +#: ops/utils.py:62 msgid "Update task content: {}" msgstr "更新任务内容: {}" -#: ops/utils.py:70 +#: ops/utils.py:72 msgid "Disk used more than 80%: {} => {}" msgstr "磁盘使用率超过 80%: {} => {}" @@ -1878,7 +1803,8 @@ msgid "The current organization cannot be deleted" msgstr "当前组织不能被删除" #: orgs/mixins/models.py:56 orgs/mixins/serializers.py:25 orgs/models.py:41 -#: orgs/models.py:395 orgs/serializers.py:79 +#: orgs/models.py:422 orgs/serializers.py:100 +#: tickets/serializers/ticket/ticket.py:74 msgid "Organization" msgstr "组织" @@ -1890,7 +1816,7 @@ msgstr "组织管理员" msgid "Organization auditor" msgstr "组织审计员" -#: orgs/models.py:397 users/forms/user.py:27 users/models/user.py:505 +#: orgs/models.py:424 users/forms/user.py:27 users/models/user.py:528 #: users/templates/users/_select_user_modal.html:15 #: users/templates/users/user_detail.html:73 #: users/templates/users/user_list.html:16 @@ -1914,16 +1840,58 @@ msgstr "管理员正在修改授权,请稍等" msgid "The authorization cannot be revoked for the time being" msgstr "该授权暂时不能撤销" -#: perms/forms/asset_permission.py:23 -msgid "" -"Tips: The RDP protocol does not support separate controls for uploading or " -"downloading files" -msgstr "提示:RDP 协议不支持单独控制上传或下载文件" +#: perms/models/application_permission.py:27 users/models/user.py:160 +msgid "Application" +msgstr "应用程序" -#: perms/forms/asset_permission.py:86 perms/forms/database_app_permission.py:41 -#: perms/forms/remote_app_permission.py:43 perms/models/base.py:50 -#: templates/_nav.html:21 users/forms/user.py:168 users/models/group.py:31 -#: users/models/user.py:501 users/templates/users/_select_user_modal.html:16 +#: perms/models/application_permission.py:36 +msgid "Application permission" +msgstr "应用管理" + +#: perms/models/asset_permission.py:34 settings/serializers/settings.py:56 +msgid "All" +msgstr "全部" + +#: perms/models/asset_permission.py:35 +msgid "Connect" +msgstr "连接" + +#: perms/models/asset_permission.py:36 +msgid "Upload file" +msgstr "上传文件" + +#: perms/models/asset_permission.py:37 +msgid "Download file" +msgstr "下载文件" + +#: perms/models/asset_permission.py:38 +msgid "Upload download" +msgstr "上传下载" + +#: perms/models/asset_permission.py:39 +msgid "Clipboard copy" +msgstr "剪贴板复制" + +#: perms/models/asset_permission.py:40 +msgid "Clipboard paste" +msgstr "剪贴板粘贴" + +#: perms/models/asset_permission.py:41 +msgid "Clipboard copy paste" +msgstr "剪贴板复制粘贴" + +#: perms/models/asset_permission.py:99 perms/serializers/asset/permission.py:60 +msgid "Actions" +msgstr "动作" + +#: perms/models/asset_permission.py:103 templates/_nav.html:78 +#: users/templates/users/_user_detail_nav_header.html:31 +msgid "Asset permission" +msgstr "资产授权" + +#: perms/models/base.py:50 templates/_nav.html:21 users/forms/user.py:168 +#: users/models/group.py:31 users/models/user.py:524 +#: users/templates/users/_select_user_modal.html:16 #: users/templates/users/user_asset_permission.html:39 #: users/templates/users/user_asset_permission.html:67 #: users/templates/users/user_database_app_permission.html:38 @@ -1935,87 +1903,16 @@ msgstr "提示:RDP 协议不支持单独控制上传或下载文件" msgid "User group" msgstr "用户组" -#: perms/forms/asset_permission.py:108 -msgid "User or group at least one required" -msgstr "用户和用户组至少选一个" - -#: perms/forms/asset_permission.py:117 -msgid "Asset or group at least one required" -msgstr "资产和节点至少选一个" - -#: perms/forms/database_app_permission.py:47 -msgid "System users" -msgstr "系统用户" - -#: perms/models/application_permission.py:21 users/models/user.py:160 -msgid "Application" -msgstr "应用程序" - -#: perms/models/application_permission.py:26 -msgid "Application permission" -msgstr "应用管理" - -#: perms/models/asset_permission.py:37 settings/serializers/settings.py:56 -msgid "All" -msgstr "全部" - -#: perms/models/asset_permission.py:38 -msgid "Connect" -msgstr "连接" - -#: perms/models/asset_permission.py:39 -msgid "Upload file" -msgstr "上传文件" - -#: perms/models/asset_permission.py:40 -msgid "Download file" -msgstr "下载文件" - -#: perms/models/asset_permission.py:41 -msgid "Upload download" -msgstr "上传下载" - -#: perms/models/asset_permission.py:42 -msgid "Clipboard copy" -msgstr "剪贴板复制" - -#: perms/models/asset_permission.py:43 -msgid "Clipboard paste" -msgstr "剪贴板粘贴" - -#: perms/models/asset_permission.py:44 -msgid "Clipboard copy paste" -msgstr "剪贴板复制粘贴" - -#: perms/models/asset_permission.py:97 perms/serializers/asset/permission.py:60 -msgid "Actions" -msgstr "动作" - -#: perms/models/asset_permission.py:101 templates/_nav.html:78 -#: users/templates/users/_user_detail_nav_header.html:31 -msgid "Asset permission" -msgstr "资产授权" - -#: perms/models/base.py:53 tickets/serializers/request_asset_perm.py:29 -#: users/models/user.py:533 users/templates/users/user_detail.html:93 +#: perms/models/base.py:53 +#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:44 +#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:72 +#: tickets/serializers/ticket/meta/ticket_type/apply_asset.py:41 +#: tickets/serializers/ticket/meta/ticket_type/apply_asset.py:76 +#: users/models/user.py:556 users/templates/users/user_detail.html:93 #: users/templates/users/user_profile.html:120 msgid "Date expired" msgstr "失效日期" -#: perms/models/database_app_permission.py:27 -#: users/templates/users/_user_detail_nav_header.html:61 -msgid "DatabaseApp permission" -msgstr "数据库应用授权" - -#: perms/models/k8s_app_permission.py:27 -msgid "KubernetesApp permission" -msgstr "Kubernetes应用授权" - -#: perms/models/remote_app_permission.py:20 -#: users/templates/users/_user_detail_nav_header.html:47 -msgid "RemoteApp permission" -msgstr "远程应用授权" - #: perms/serializers/application/permission.py:53 msgid "" "The application list contains applications that are different from the " @@ -2026,56 +1923,22 @@ msgstr "应用列表中包含与授权类型不同的应用。({})" msgid "Is expired" msgstr "是否过期" -#: perms/serializers/asset/permission.py:59 -#: perms/serializers/database_app_permission.py:43 -#: perms/serializers/database_app_permission.py:62 -#: perms/serializers/k8s_app_permission.py:41 -#: perms/serializers/k8s_app_permission.py:60 -#: perms/serializers/remote_app_permission.py:36 users/serializers/user.py:79 +#: perms/serializers/asset/permission.py:59 users/serializers/user.py:79 msgid "Is valid" msgstr "账户是否有效" -#: perms/serializers/asset/permission.py:61 -#: perms/serializers/database_app_permission.py:44 -#: perms/serializers/database_app_permission.py:63 -#: perms/serializers/k8s_app_permission.py:42 -#: perms/serializers/k8s_app_permission.py:61 -#: perms/serializers/remote_app_permission.py:37 users/serializers/group.py:36 +#: perms/serializers/asset/permission.py:61 users/serializers/group.py:36 msgid "Users amount" msgstr "用户数量" #: perms/serializers/asset/permission.py:62 -#: perms/serializers/database_app_permission.py:45 -#: perms/serializers/database_app_permission.py:64 -#: perms/serializers/k8s_app_permission.py:43 -#: perms/serializers/k8s_app_permission.py:62 -#: perms/serializers/remote_app_permission.py:38 msgid "User groups amount" msgstr "用户组数量" #: perms/serializers/asset/permission.py:65 -#: perms/serializers/database_app_permission.py:46 -#: perms/serializers/database_app_permission.py:65 -#: perms/serializers/k8s_app_permission.py:44 -#: perms/serializers/k8s_app_permission.py:63 -#: perms/serializers/remote_app_permission.py:39 msgid "System users amount" msgstr "系统用户数量" -#: perms/serializers/database_app_permission.py:47 -#: perms/serializers/database_app_permission.py:66 -#: perms/serializers/k8s_app_permission.py:45 -msgid "Database apps amount" -msgstr "数据库应用数量" - -#: perms/serializers/k8s_app_permission.py:64 -msgid "K8s apps amount" -msgstr "K8S 应用数量" - -#: perms/serializers/remote_app_permission.py:40 -msgid "Remote apps amount" -msgstr "远程应用数量" - #: perms/utils/asset/user_permission.py:30 msgid "Favorite" msgstr "收藏夹" @@ -2206,38 +2069,6 @@ msgstr "认证成功: {}" msgid "Search" msgstr "搜索" -#: templates/_base_only_msg_content.html:32 -msgid "" -"The world's first fully open source fortress, using the GNU GPL v2.0 open " -"source protocol, is a professional operation and maintenance audit system in " -"compliance with 4A." -msgstr "" -"全球首款完全开源的堡垒机,使用GNU GPL v2.0开源协议,是符合 4A 的专业运维审计" -"系统。" - -#: templates/_base_only_msg_content.html:35 -msgid "" -"Developed using Python/Django, following the Web 2.0 specification and " -"equipped with industry-leading Web Terminal solutions, with beautiful " -"interactive interface and good user experience." -msgstr "" -"使用Python / Django 进行开发,遵循 Web 2.0 规范,配备了业界领先的 Web " -"Terminal 解决方案,交互界面美观、用户体验好。" - -#: templates/_base_only_msg_content.html:38 -msgid "" -"Distributed architecture is adopted to support multi-machine room deployment " -"across regions, central node provides API, and each machine room deploys " -"login node, which can be extended horizontally and without concurrent access " -"restrictions." -msgstr "" -"采纳分布式架构,支持多机房跨区域部署,中心节点提供 API,各机房部署登录节点," -"可横向扩展、无并发访问限制。" - -#: templates/_base_only_msg_content.html:41 -msgid "Changes the world, starting with a little bit." -msgstr "改变世界,从一点点开始。" - #: templates/_csv_import_export.html:8 msgid "Export" msgstr "导出" @@ -2410,6 +2241,18 @@ msgstr "平台列表" msgid "Applications" msgstr "应用管理" +#: templates/_nav.html:64 templates/_nav.html:82 templates/_nav_user.html:16 +#: users/templates/users/user_remote_app_permission.html:39 +#: users/templates/users/user_remote_app_permission.html:64 +msgid "RemoteApp" +msgstr "远程应用" + +#: templates/_nav.html:66 templates/_nav.html:86 templates/_nav_user.html:22 +#: users/templates/users/user_database_app_permission.html:39 +#: users/templates/users/user_database_app_permission.html:64 +msgid "DatabaseApp" +msgstr "数据库应用" + #: templates/_nav.html:75 msgid "Perms" msgstr "权限管理" @@ -2751,15 +2594,15 @@ msgstr "风险等级(显示名称)" msgid "Timestamp" msgstr "时间戳" -#: terminal/const.py:117 +#: terminal/const.py:31 msgid "Critical" msgstr "严重" -#: terminal/const.py:118 +#: terminal/const.py:32 msgid "High" msgstr "较高" -#: terminal/const.py:119 users/templates/users/reset_password.html:50 +#: terminal/const.py:33 users/templates/users/reset_password.html:50 #: users/templates/users/user_create.html:35 #: users/templates/users/user_password_update.html:104 #: users/templates/users/user_update.html:57 @@ -2874,6 +2717,63 @@ msgstr "是否可重放" msgid "Can join" msgstr "是否可加入" +#: terminal/serializers/storage.py:19 +msgid "Bucket" +msgstr "桶名称" + +#: terminal/serializers/storage.py:22 +msgid "Access key" +msgstr "" + +#: terminal/serializers/storage.py:26 +msgid "Secret key" +msgstr "" + +#: terminal/serializers/storage.py:30 terminal/serializers/storage.py:41 +#: terminal/serializers/storage.py:70 +msgid "Endpoint" +msgstr "端点" + +#: terminal/serializers/storage.py:56 xpack/plugins/cloud/models.py:276 +msgid "Region" +msgstr "地域" + +#: terminal/serializers/storage.py:80 +msgid "Container name" +msgstr "容器名称" + +#: terminal/serializers/storage.py:82 +msgid "Account name" +msgstr "账户名称" + +#: terminal/serializers/storage.py:83 +msgid "Account key" +msgstr "账户密钥" + +#: terminal/serializers/storage.py:86 +msgid "Endpoint suffix" +msgstr "端点后缀" + +#: terminal/serializers/storage.py:135 +msgid "The address format is incorrect" +msgstr "地址格式不正确" + +#: terminal/serializers/storage.py:142 +msgid "Host invalid" +msgstr "主机无效" + +#: terminal/serializers/storage.py:145 +msgid "Port invalid" +msgstr "端口无效" + +#: terminal/serializers/storage.py:161 +msgid "Index" +msgstr "索引" + +#: terminal/serializers/storage.py:164 +msgid "Doc type" +msgstr "文档类型" + #: terminal/serializers/terminal.py:44 terminal/serializers/terminal.py:52 msgid "Not found" msgstr "没有发现" @@ -2914,224 +2814,219 @@ msgstr "" "
\n" " " -#: tickets/api/request_asset_perm.py:47 -#, python-format -msgid "Ticket has %s" -msgstr "工单已%s" - -#: tickets/api/request_asset_perm.py:66 -#: tickets/serializers/request_asset_perm.py:21 -msgid "IP group" -msgstr "IP组" - -#: tickets/api/request_asset_perm.py:69 -#: tickets/serializers/request_asset_perm.py:33 -msgid "Confirmed assets" -msgstr "确认的资产" - -#: tickets/api/request_asset_perm.py:70 -msgid "Confirmed system users" -msgstr "确认的系统用户" - -#: tickets/api/request_asset_perm.py:91 -msgid "Confirm assets first" -msgstr "请先确认资产" - -#: tickets/api/request_asset_perm.py:94 -msgid "Confirmed assets changed" -msgstr "确认的资产变更了" - -#: tickets/api/request_asset_perm.py:98 -msgid "Confirm system-users first" -msgstr "请先确认系统用户" - -#: tickets/api/request_asset_perm.py:102 -msgid "Confirmed system-users changed" -msgstr "确认的系统用户变更了" - -#: tickets/api/request_asset_perm.py:108 tickets/api/request_asset_perm.py:115 -#: xpack/plugins/cloud/models.py:215 -msgid "Succeed" -msgstr "成功" - -#: tickets/api/request_asset_perm.py:122 -msgid "From request ticket: {} {}" -msgstr "来自工单申请: {} {}" - -#: tickets/api/request_asset_perm.py:124 -msgid "{} request assets, approved by {}" -msgstr "{} 申请资产,通过人 {}" - -#: tickets/exceptions.py:23 -msgid "Ticket closed" -msgstr "工单已关闭" - -#: tickets/exceptions.py:32 -msgid "Only assignee can operate ticket" -msgstr "只有审批人可以操作工单" - -#: tickets/exceptions.py:37 -msgid "Ticket can not be operated" -msgstr "不能操作该工单" - -#: tickets/models/ticket.py:18 tickets/models/ticket.py:70 -msgid "Open" -msgstr "待处理" - -#: tickets/models/ticket.py:19 -msgid "Closed" -msgstr "已完成" - -#: tickets/models/ticket.py:22 +#: tickets/const.py:8 msgid "General" msgstr "一般" -#: tickets/models/ticket.py:24 -msgid "Request asset permission" -msgstr "申请资产权限" +#: tickets/const.py:10 +msgid "Apply for asset" +msgstr "申请资产" -#: tickets/models/ticket.py:27 +#: tickets/const.py:11 +msgid "Apply for application" +msgstr "申请应用" + +#: tickets/const.py:15 tickets/const.py:22 +msgid "Open" +msgstr "打开" + +#: tickets/const.py:16 msgid "Approve" msgstr "同意" -#: tickets/models/ticket.py:28 +#: tickets/const.py:17 msgid "Reject" msgstr "拒绝" -#: tickets/models/ticket.py:31 tickets/models/ticket.py:137 +#: tickets/const.py:23 +msgid "Closed" +msgstr "关闭" + +#: tickets/models/comment.py:19 msgid "User display name" msgstr "用户显示名称" -#: tickets/models/ticket.py:33 -msgid "Title" -msgstr "标题" - -#: tickets/models/ticket.py:34 tickets/models/ticket.py:138 +#: tickets/models/comment.py:20 msgid "Body" msgstr "内容" -#: tickets/models/ticket.py:36 -msgid "Assignee" +#: tickets/models/ticket.py:28 +msgid "ugettext_lazy" +msgstr "" + +#: tickets/models/ticket.py:35 +msgid "Title" +msgstr "标题" + +#: tickets/models/ticket.py:52 +msgid "Applicant" +msgstr "申请人" + +#: tickets/models/ticket.py:55 +msgid "Applicant display" +msgstr "申请人" + +#: tickets/models/ticket.py:60 +msgid "Processor" msgstr "处理人" -#: tickets/models/ticket.py:37 -msgid "Assignee display name" -msgstr "处理人名称" +#: tickets/models/ticket.py:63 +msgid "Processor display" +msgstr "处理人" -#: tickets/models/ticket.py:38 +#: tickets/models/ticket.py:67 msgid "Assignees" -msgstr "待处理人" +msgstr "受理人" -#: tickets/models/ticket.py:39 -msgid "Assignees display name" -msgstr "待处理人名称" +#: tickets/models/ticket.py:70 +msgid "Assignees display" +msgstr "受理人" -#: tickets/models/ticket.py:71 -msgid "{} {} this ticket" -msgstr "{} {} 这个工单" +#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:22 +msgid "Category display" +msgstr "种类" -#: tickets/models/ticket.py:85 -msgid "this ticket" -msgstr "这个工单" +#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:29 +msgid "Type display" +msgstr "类型" -#: tickets/serializers/request_asset_perm.py:37 -msgid "Confirmed system user" -msgstr "确认的系统用户" +#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:33 +msgid "Application group" +msgstr "应用组" -#: tickets/serializers/request_asset_perm.py:86 -msgid "Invalid `org_id`" -msgstr "无效的 `org_id`" +#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:37 +#: tickets/serializers/ticket/meta/ticket_type/apply_asset.py:26 +msgid "System user group" +msgstr "系统用户组" -#: tickets/serializers/request_asset_perm.py:95 -msgid "Field `assignees` must be organization admin or superuser" -msgstr "字段 assignees 必须是组织管理员或者超级管理员" +#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:51 +msgid "Approve applications" +msgstr "批准的应用" -#: tickets/serializers/request_asset_perm.py:156 -#, python-brace-format +#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:56 +msgid "Approve applications display" +msgstr "批准的应用" + +#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:60 +#: tickets/serializers/ticket/meta/ticket_type/apply_asset.py:57 +msgid "Approve system users" +msgstr "批准的系统用户" + +#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:65 +msgid "Approve system user display" +msgstr "批准的系统用户" + +#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:89 +msgid "No `Application` are found under Organization `{}`" +msgstr "在组织 `{}` 下没有发现 `应用`" + +#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:107 +#: tickets/serializers/ticket/meta/ticket_type/apply_asset.py:106 +msgid "No `SystemUser` are found under Organization `{}`" +msgstr "在组织 `{}` 下没有发现 `系统用户`" + +#: tickets/serializers/ticket/meta/ticket_type/apply_asset.py:18 +msgid "IP group" +msgstr "IP组" + +#: tickets/serializers/ticket/meta/ticket_type/apply_asset.py:22 +msgid "Hostname group" +msgstr "主机名组" + +#: tickets/serializers/ticket/meta/ticket_type/apply_asset.py:34 +#: tickets/serializers/ticket/meta/ticket_type/apply_asset.py:52 +#: tickets/serializers/ticket/meta/ticket_type/apply_asset.py:61 +#: tickets/serializers/ticket/meta/ticket_type/apply_asset.py:69 +msgid "Approve assets display" +msgstr "批准的资产" + +#: tickets/serializers/ticket/meta/ticket_type/apply_asset.py:48 +msgid "Approve assets" +msgstr "批准的资产" + +#: tickets/serializers/ticket/meta/ticket_type/apply_asset.py:90 +msgid "No `Asset` are found under Organization `{}`" +msgstr "在组织 `{}` 下没有发现 `资产`" + +#: tickets/serializers/ticket/meta/ticket_type/login_confirm.py:20 +msgid "Login datetime" +msgstr "登录日期" + +#: tickets/serializers/ticket/ticket.py:92 msgid "" -"\n" -" Type: {type}
\n" -" User: {username}
\n" -" Ip group: {ips}
\n" -" Hostname: {hostname}
\n" -" System user: {system_user}
\n" -" Date start: {date_start}
\n" -" Date expired: {date_expired}
\n" -" " -msgstr "" -"\n" -" 类型: {type}
\n" -" 用户: {username}
\n" -" IP 组: {ips}
\n" -" 主机名: {hostname}
\n" -" 系统用户: {system_user}
\n" -" 开始时间: {date_start}
\n" -" 过期时间: {date_expired}
\n" -" " +"The `type` in the submission data (`{}`) is different from the type in the " +"request url (`{}`)" +msgstr "提交数据中的类型 (`{}`) 与请求URL地址中的类型 (`{}`) 不一致" + +#: tickets/serializers/ticket/ticket.py:102 +msgid "The organization `{}` does not exist" +msgstr "组织 `{}` 不存在" + +#: tickets/serializers/ticket/ticket.py:113 +msgid "None of the assignees belong to Organization `{}` admins" +msgstr "所有受理人都不属于组织 `{}` 下的管理员" #: tickets/utils.py:21 -msgid "New ticket" -msgstr "新工单" +msgid "New Ticket: {} ({})" +msgstr "新建工单: {} ({})" -#: tickets/utils.py:25 +#: tickets/utils.py:26 #, python-brace-format msgid "" -"\n" -"
\n" +"\n" -" " +" " msgstr "" -"\n" -"
\n" +"
\n" "

你有一个新工单

\n" "
\n" -" {body}\n" +" 工单: \n" "
\n" -" 点击我查看 \n" +" {body}\n" +"
\n" +" 点击查看 \n" "
\n" "
\n" -" " +" " -#: tickets/utils.py:44 -msgid "Ticket has been reply" -msgstr "工单已被回复" +#: tickets/utils.py:51 +msgid "Ticket has processed: {} ({})" +msgstr "工单已处理: {} ({})" -#: tickets/utils.py:45 +#: tickets/utils.py:53 #, python-brace-format msgid "" "\n" "
\n" -"

Your ticket has been replay

\n" +"

Your ticket has been processed

\n" "
\n" -" Title: {ticket.title}\n" +" Ticket: \n" "
\n" -" Assignee: {ticket.assignee_display}\n" -"
\n" -" Status: {ticket.status_display}\n" +" {body}\n" "
\n" "
\n" "
\n" -" " +" " msgstr "" "\n" "
\n" -"

您的工单已被回复

\n" +"

你的工单已被处理

\n" "
\n" -" 标题: {ticket.title}\n" +" 工单: \n" "
\n" -" 处理人: {ticket.assignee_display}\n" -"
\n" -" 状态: {ticket.status_display}\n" +" {body}\n" "
\n" "
\n" "
\n" -" " +" " #: users/api/user.py:199 msgid "Could not reset self otp, use profile reset instead" @@ -3179,7 +3074,7 @@ msgstr "确认密码" msgid "Password does not match" msgstr "密码不一致" -#: users/forms/profile.py:89 users/models/user.py:497 +#: users/forms/profile.py:89 users/models/user.py:520 #: users/templates/users/user_detail.html:57 #: users/templates/users/user_profile.html:59 msgid "Email" @@ -3220,7 +3115,7 @@ msgstr "不能和原来的密钥相同" msgid "Not a valid ssh public key" msgstr "SSH密钥不合法" -#: users/forms/user.py:31 users/models/user.py:540 +#: users/forms/user.py:31 users/models/user.py:563 #: users/templates/users/user_detail.html:89 #: users/templates/users/user_list.html:18 #: users/templates/users/user_profile.html:102 @@ -3236,7 +3131,7 @@ msgid "Join user groups" msgstr "添加到用户组" #: users/forms/user.py:103 users/views/profile/password.py:59 -#: users/views/profile/reset.py:124 +#: users/views/profile/reset.py:127 msgid "* Your password does not meet the requirements" msgstr "* 您的密码不符合要求" @@ -3262,31 +3157,31 @@ msgstr "系统管理员" msgid "System auditor" msgstr "系统审计员" -#: users/models/user.py:423 users/templates/users/user_profile.html:90 +#: users/models/user.py:446 users/templates/users/user_profile.html:90 msgid "Force enable" msgstr "强制启用" -#: users/models/user.py:485 +#: users/models/user.py:508 msgid "Local" msgstr "数据库" -#: users/models/user.py:508 +#: users/models/user.py:531 msgid "Avatar" msgstr "头像" -#: users/models/user.py:511 users/templates/users/user_detail.html:68 +#: users/models/user.py:534 users/templates/users/user_detail.html:68 msgid "Wechat" msgstr "微信" -#: users/models/user.py:544 +#: users/models/user.py:567 msgid "Date password last updated" msgstr "最后更新密码日期" -#: users/models/user.py:651 +#: users/models/user.py:674 msgid "Administrator" msgstr "管理员" -#: users/models/user.py:654 +#: users/models/user.py:677 msgid "Administrator is the super user of system" msgstr "Administrator是初始的超级管理员" @@ -3368,7 +3263,7 @@ msgstr "安全令牌验证" #: users/templates/users/_base_otp.html:14 users/templates/users/_user.html:13 #: users/templates/users/user_profile_update.html:55 -#: xpack/plugins/cloud/models.py:125 xpack/plugins/cloud/serializers.py:113 +#: xpack/plugins/cloud/models.py:125 xpack/plugins/cloud/serializers.py:125 msgid "Account" msgstr "账户" @@ -3436,10 +3331,18 @@ msgstr "授权的资产" msgid "RemoteApp granted" msgstr "授权的远程应用" +#: users/templates/users/_user_detail_nav_header.html:47 +msgid "RemoteApp permission" +msgstr "远程应用授权" + #: users/templates/users/_user_detail_nav_header.html:54 msgid "DatabaseApp granted" msgstr "授权的数据库应用" +#: users/templates/users/_user_detail_nav_header.html:61 +msgid "DatabaseApp permission" +msgstr "数据库应用授权" + #: users/templates/users/_user_update_pk_modal.html:4 msgid "Update User SSH Public Key" msgstr "更新SSH密钥" @@ -3674,6 +3577,10 @@ msgstr "解除用户登录限制后,此用户即可正常登录" msgid "Reset user MFA success" msgstr "重置用户多因子认证成功" +#: users/templates/users/user_granted_remote_app.html:35 +msgid "App type" +msgstr "应用类型" + #: users/templates/users/user_group_detail.html:17 #: users/templates/users/user_group_granted_asset.html:18 msgid "User group detail" @@ -3855,8 +3762,7 @@ msgstr "新的公钥已设置成功,请下载对应的私钥" msgid "Update user" msgstr "更新用户" -#: users/templates/users/user_update.html:22 users/views/profile/reset.py:50 -#: users/views/profile/reset.py:117 +#: users/templates/users/user_update.html:22 users/views/profile/reset.py:120 msgid "User auth from {}, go there change password" msgstr "用户认证源来自 {}, 请去相应系统修改密码" @@ -3964,7 +3870,7 @@ msgstr "" "
\n" " " -#: users/utils.py:116 users/views/profile/reset.py:77 +#: users/utils.py:116 users/views/profile/reset.py:80 msgid "Reset password success" msgstr "重置密码成功" @@ -4167,24 +4073,30 @@ msgstr "用户名或密码无效" msgid "Public key update" msgstr "密钥更新" -#: users/views/profile/reset.py:46 +#: users/views/profile/reset.py:45 msgid "Email address invalid, please input again" msgstr "邮箱地址错误,重新输入" -#: users/views/profile/reset.py:63 +#: users/views/profile/reset.py:51 +msgid "" +"The user is from A, please go to the corresponding system to change the " +"password" +msgstr "用户来自 {} 请去相应系统修改密码" + +#: users/views/profile/reset.py:66 msgid "Send reset password message" msgstr "发送重置密码邮件" -#: users/views/profile/reset.py:64 +#: users/views/profile/reset.py:67 msgid "Send reset password mail success, login your mail box and follow it " msgstr "" "发送重置邮件成功, 请登录邮箱查看, 按照提示操作 (如果没收到,请等待3-5分钟)" -#: users/views/profile/reset.py:78 +#: users/views/profile/reset.py:81 msgid "Reset password success, return to login page" msgstr "重置密码成功,返回到登录页面" -#: users/views/profile/reset.py:102 users/views/profile/reset.py:112 +#: users/views/profile/reset.py:105 users/views/profile/reset.py:115 msgid "Token invalid or expired" msgstr "Token错误或失效" @@ -4315,7 +4227,7 @@ msgstr "实例名称" msgid "Instance name and Partial IP" msgstr "实例名称和部分IP" -#: xpack/plugins/cloud/models.py:128 xpack/plugins/cloud/serializers.py:89 +#: xpack/plugins/cloud/models.py:128 xpack/plugins/cloud/serializers.py:101 msgid "Regions" msgstr "地域" @@ -4327,7 +4239,7 @@ msgstr "实例" msgid "Hostname strategy" msgstr "主机名策略" -#: xpack/plugins/cloud/models.py:147 xpack/plugins/cloud/serializers.py:117 +#: xpack/plugins/cloud/models.py:147 xpack/plugins/cloud/serializers.py:129 msgid "Always update" msgstr "总是更新" @@ -4339,6 +4251,10 @@ msgstr "最后同步日期" msgid "Sync instance task" msgstr "同步实例任务" +#: xpack/plugins/cloud/models.py:215 +msgid "Succeed" +msgstr "成功" + #: xpack/plugins/cloud/models.py:230 xpack/plugins/cloud/models.py:285 msgid "Date sync" msgstr "同步日期" @@ -4371,10 +4287,6 @@ msgstr "同步实例任务历史" msgid "Instance" msgstr "实例" -#: xpack/plugins/cloud/models.py:276 -msgid "Region" -msgstr "地域" - #: xpack/plugins/cloud/providers/aliyun.py:22 msgid "Alibaba Cloud" msgstr "阿里云" @@ -4387,7 +4299,7 @@ msgstr "AWS (国际)" msgid "AWS (China)" msgstr "AWS (中国)" -#: xpack/plugins/cloud/providers/azure_.py:18 +#: xpack/plugins/cloud/providers/azure_.py:16 msgid "Azure (China)" msgstr "Azure (中国)" @@ -4451,23 +4363,23 @@ msgstr "拉美-圣地亚哥" msgid "Tencent Cloud" msgstr "腾讯云" -#: xpack/plugins/cloud/serializers.py:26 +#: xpack/plugins/cloud/serializers.py:22 msgid "Tenant ID" msgstr "租户ID" -#: xpack/plugins/cloud/serializers.py:30 +#: xpack/plugins/cloud/serializers.py:26 msgid "Subscription ID" msgstr "订阅ID" -#: xpack/plugins/cloud/serializers.py:87 +#: xpack/plugins/cloud/serializers.py:99 msgid "History count" msgstr "执行次数" -#: xpack/plugins/cloud/serializers.py:88 +#: xpack/plugins/cloud/serializers.py:100 msgid "Instance count" msgstr "实例个数" -#: xpack/plugins/cloud/serializers.py:116 +#: xpack/plugins/cloud/serializers.py:128 #: xpack/plugins/gathered_user/serializers.py:20 msgid "Periodic display" msgstr "定时执行" @@ -4559,2105 +4471,3 @@ msgstr "旗舰版" #: xpack/plugins/license/models.py:77 msgid "Community edition" msgstr "社区版" - -#, python-format -#~ msgid "The max size of CSV is %d bytes" -#~ msgstr "CSV 文件最大为 %d 字节" - -#, fuzzy -#~| msgid "Confirmed system user" -#~ msgid "Confirmed systemusers" -#~ msgstr "确认的系统用户" - -#~ msgid "MFA level" -#~ msgstr "多因子认证级别" - -#~ msgid "Beijing unicom" -#~ msgstr "北京联通" - -#~ msgid "Beijing telecom" -#~ msgstr "北京电信" - -#~ msgid "BGP full netcom" -#~ msgstr "BGP全网通" - -#~ msgid "ungrouped" -#~ msgstr "未分组" - -#~ msgid "Organization User" -#~ msgstr "组织用户" - -#~ msgid "System User" -#~ msgstr "系统用户" - -#~ msgid "Auditor" -#~ msgstr "审计员" - -#~ msgid "Org admin" -#~ msgstr "组织管理员" - -#~ msgid "Role name" -#~ msgstr "角色名" - -#~ msgid "Covered always" -#~ msgstr "总是被覆盖" - -#~ msgid "Account name" -#~ msgstr "账户名称" - -#~ msgid "Superuser" -#~ msgstr "超级管理员" - -#~ msgid "Auditors cannot be join in the user group" -#~ msgstr "审计员不能被加入到用户组" - -#~ msgid "Login username" -#~ msgstr "登录账号" - -#~ msgid "Login password" -#~ msgstr "登录密码" - -#~ msgid "Database IP" -#~ msgstr "数据库IP" - -#~ msgid "Database name" -#~ msgstr "数据库名" - -#~ msgid "Database username" -#~ msgstr "数据库账号" - -#~ msgid "Database password" -#~ msgstr "数据库密码" - -#~ msgid "Target address" -#~ msgstr "目标地址" - -#~ msgid "Detail" -#~ msgstr "详情" - -#~ msgid "Create DatabaseApp" -#~ msgstr "创建数据库应用" - -#~ msgid "" -#~ "Before using this feature, make sure that the application loader has been " -#~ "uploaded to the application server and successfully published as a " -#~ "RemoteApp application" -#~ msgstr "" -#~ "使用此功能前,请确保已将应用加载器上传到应用服务器并成功发布为一个 " -#~ "RemoteApp 应用" - -#~ msgid "Download application loader" -#~ msgstr "下载应用加载器" - -#~ msgid "Create RemoteApp" -#~ msgstr "创建远程应用" - -#~ msgid "DatabaseApp list" -#~ msgstr "数据库应用列表" - -#~ msgid "DatabaseApp detail" -#~ msgstr "数据库应用详情" - -#~ msgid "My DatabaseApp" -#~ msgstr "我的数据库应用" - -#~ msgid "Update RemoteApp" -#~ msgstr "更新远程应用" - -#~ msgid "RemoteApp detail" -#~ msgstr "远程应用详情" - -#~ msgid "My RemoteApp" -#~ msgstr "我的远程应用" - -#~ msgid "Label" -#~ msgstr "标签" - -#~ msgid "" -#~ "root or other NOPASSWD sudo privilege user existed in asset,If asset is " -#~ "windows or other set any one, more see admin user left menu" -#~ msgstr "" -#~ "root或其他拥有NOPASSWD: ALL权限的用户, 如果是windows或其它硬件可以随意设置" -#~ "一个, 更多信息查看左侧 `管理用户` 菜单" - -#~ msgid "Windows 2016 RDP protocol is different, If is window 2016, set it" -#~ msgstr "Windows 2016的RDP协议与之前不同,如果是请设置" - -#~ msgid "" -#~ "If your have some network not connect with each other, you can set domain" -#~ msgstr "" -#~ "如果有多个的互相隔离的网络,设置资产属于的网域,使用网域网关跳转登录" - -#~ msgid "Select assets" -#~ msgstr "选择资产" - -#~ msgid "Content should not be contain: {}" -#~ msgstr "内容不能包含: {}" - -#~ msgid "SSH gateway support proxy SSH,RDP,VNC" -#~ msgstr "SSH网关,支持代理SSH,RDP和VNC" - -#~ msgid "Yes" -#~ msgstr "是" - -#~ msgid "No" -#~ msgstr "否" - -#~ msgid "Base platform" -#~ msgstr "基础平台" - -#~ msgid "Password or private key passphrase" -#~ msgstr "密码或密钥密码" - -#~ msgid "Invalid private key, Only support RSA/DSA format key" -#~ msgstr "不合法的密钥,仅支持RSA/DSA格式的密钥" - -#~ msgid "Password and private key file must be input one" -#~ msgstr "密码和私钥, 必须输入一个" - -#~ msgid "Auto push system user to asset" -#~ msgstr "自动推送系统用户到资产" - -#~ msgid "" -#~ "1-100, High level will be using login asset as default, if user was " -#~ "granted more than 2 system user" -#~ msgstr "" -#~ "1-100, 1最低优先级,100最高优先级。授权多个用户时,高优先级的系统用户将会" -#~ "作为默认登录用户" - -#~ msgid "" -#~ "If you choose manual login mode, you do not need to fill in the username " -#~ "and password." -#~ msgstr "如果选择手动登录模式,用户名和密码可以不填写" - -#~ msgid "Use comma split multi command, ex: /bin/whoami,/bin/ifconfig" -#~ msgstr "使用逗号分隔多个命令,如: /bin/whoami,/sbin/ifconfig" - -#~ msgid "SFTP root dir, tmp, home or custom" -#~ msgstr "SFTP的起始路径,tmp目录, 用户home目录或者自定义" - -#~ msgid "" -#~ "Username is dynamic, When connect asset, using current user's username" -#~ msgstr "用户名是动态的,登录资产时使用当前用户的用户名登录" - -#~ msgid "Update asset group" -#~ msgstr "更新用户组" - -#~ msgid "Hint: only change the field you want to update." -#~ msgstr "仅修改你需要更新的字段" - -#~ msgid "Select Asset" -#~ msgstr "选择资产" - -#~ msgid "Select System Users" -#~ msgstr "选择系统用户" - -#~ msgid "Enable-MFA" -#~ msgstr "启用多因子认证" - -#~ msgid "Update asset user auth" -#~ msgstr "更新资产用户认证信息" - -#~ msgid "Asset user auth" -#~ msgstr "资产用户信息" - -#~ msgid "Get auth info error" -#~ msgstr "获取认证信息错误" - -#~ msgid "Test datetime: " -#~ msgstr "测试日期: " - -#~ msgid "Only latest version" -#~ msgstr "仅最新版本" - -#~ msgid "View" -#~ msgstr "查看" - -#~ msgid "Test" -#~ msgstr "测试" - -#~ msgid "Push" -#~ msgstr "推送" - -#~ msgid "Test gateway test connection" -#~ msgstr "测试连接网关" - -#~ msgid "If use nat, set the ssh real port" -#~ msgstr "如果使用了nat端口映射,请设置为ssh真实监听的端口" - -#~ msgid "Node detail" -#~ msgstr "节点详情" - -#~ msgid "Full name" -#~ msgstr "全称" - -#~ msgid "Add node" -#~ msgstr "新建节点" - -#~ msgid "Rename node" -#~ msgstr "重命名节点" - -#~ msgid "Delete node" -#~ msgstr "删除节点" - -#~ msgid "Create node failed" -#~ msgstr "创建节点失败" - -#~ msgid "Rename success" -#~ msgstr "重命名成功" - -#~ msgid "Basic" -#~ msgstr "基本" - -#~ msgid "Auto generate key" -#~ msgstr "自动生成密钥" - -#~ msgid "Other" -#~ msgstr "其它" - -#~ msgid "Asset detail" -#~ msgstr "资产详情" - -#~ msgid "Assets list" -#~ msgstr "资产列表" - -#~ msgid "Asset list of " -#~ msgstr "资产列表" - -#~ msgid "Quick update" -#~ msgstr "快速更新" - -#~ msgid "Test connective" -#~ msgstr "测试可连接性" - -#~ msgid "Replace node assets admin user with this" -#~ msgstr "替换资产的管理员" - -#~ msgid "Select nodes" -#~ msgstr "选择节点" - -#~ msgid "" -#~ "Admin users are asset (charged server) on the root, or have NOPASSWD: ALL " -#~ "sudo permissions users, " -#~ msgstr "" -#~ "管理用户是资产(被控服务器)上的 root,或拥有 NOPASSWD: ALL sudo 权限的用" -#~ "户," - -#~ msgid "" -#~ "JumpServer users of the system using the user to `push system user`, " -#~ "`get assets hardware information`, etc. " -#~ msgstr "JumpServer 使用该用户来 `推送系统用户`、`获取资产硬件信息` 等。" - -#~ msgid "Create admin user" -#~ msgstr "创建管理用户" - -#~ msgid "Asset user list" -#~ msgstr "资产用户列表" - -#~ msgid "Asset users of" -#~ msgstr "资产用户" - -#~ msgid "CPU" -#~ msgstr "CPU" - -#~ msgid "Disk" -#~ msgstr "硬盘" - -#~ msgid "Refresh hardware" -#~ msgstr "更新硬件信息" - -#~ msgid "" -#~ "The left side is the asset tree, right click to create, delete, and " -#~ "change the tree node, authorization asset is also organized as a node, " -#~ "and the right side is the asset under that node" -#~ msgstr "" -#~ "左侧是资产树,右击可以新建、删除、更改树节点,授权资产也是以节点方式组织" -#~ "的,右侧是属于该节点下的资产" - -#~ msgid "Create asset" -#~ msgstr "创建资产" - -#~ msgid "Hardware" -#~ msgstr "硬件" - -#~ msgid "Remove from this node" -#~ msgstr "从节点移除" - -#~ msgid "Add assets to node" -#~ msgstr "添加资产到节点" - -#~ msgid "Move assets to node" -#~ msgstr "移动资产到节点" - -#~ msgid "Refresh node hardware info" -#~ msgstr "更新节点资产硬件信息" - -#~ msgid "Test node connective" -#~ msgstr "测试节点资产可连接性" - -#~ msgid "Display only current node assets" -#~ msgstr "仅显示当前节点资产" - -#~ msgid "Displays all child node assets" -#~ msgstr "显示所有子节点资产" - -#~ msgid "This will delete the selected assets !!!" -#~ msgstr "删除选择资产" - -#~ msgid "Asset Deleting failed." -#~ msgstr "删除失败" - -#~ msgid "Asset Delete" -#~ msgstr "删除" - -#~ msgid "Asset Deleted." -#~ msgstr "已被删除" - -#~ msgid "Please select node" -#~ msgstr "请选择节点" - -#~ msgid "Configuration" -#~ msgstr "配置" - -#~ msgid "Rules" -#~ msgstr "规则" - -#~ msgid "Binding to system user" -#~ msgstr "绑定到系统用户" - -#~ msgid "" -#~ "System user bound some command filter, each command filter has some rules," -#~ msgstr "系统用户可以绑定一些命令过滤器,一个过滤器可以定义一些规则" - -#~ msgid "When user login asset with this system user, then run a command," -#~ msgstr "当用户使用这个系统用户登录资产,然后执行一个命令" - -#~ msgid "The command will be filter by rules, higher priority rule run first," -#~ msgstr "这个命令需要被绑定过滤器的所有规则匹配,高优先级先被匹配," - -#~ msgid "" -#~ "When a rule matched, if rule action is allow, then allow command execute," -#~ msgstr "当一个规则匹配到了,如果规则的动作是允许,这个命令会被放行," - -#~ msgid "else if action is deny, then command with be deny," -#~ msgstr "如果规则的动作是禁止,命令将会被禁止执行," - -#~ msgid "else match next rule, if none matched, allowed" -#~ msgstr "否则就匹配下一个规则,如果最后没有匹配到规则,则允许执行" - -#~ msgid "Create command filter" -#~ msgstr "创建命令过滤器" - -#~ msgid "Command filter rule list" -#~ msgstr "命令过滤器规则列表" - -#~ msgid "Create rule" -#~ msgstr "创建规则" - -#~ msgid "Strategy" -#~ msgstr "策略" - -#~ msgid "Gateway list" -#~ msgstr "网关列表" - -#~ msgid "Create gateway" -#~ msgstr "创建网关" - -#~ msgid "Test connection" -#~ msgstr "测试连接" - -#~ msgid "Can be connected" -#~ msgstr "可连接" - -#~ msgid "" -#~ "The domain function is added to address the fact that some environments " -#~ "(such as the hybrid cloud) cannot be connected directly by jumping on the " -#~ "gateway server." -#~ msgstr "" -#~ "网域功能是为了解决部分环境(如:混合云)无法直接连接而新增的功能,原理是通" -#~ "过网关服务器进行跳转登录。" - -#~ msgid "JMS => Domain gateway => Target assets" -#~ msgstr "JMS => 网域网关 => 目标资产" - -#~ msgid "Create domain" -#~ msgstr "创建网域" - -#~ msgid "Create label" -#~ msgstr "创建标签" - -#~ msgid "Create platform" -#~ msgstr "创建系统平台" - -#~ msgid "Test assets connective" -#~ msgstr "测试资产可连接性" - -#~ msgid "Push system user now" -#~ msgstr "立刻推送系统" - -#~ msgid "Have existed: " -#~ msgstr "已经存在: " - -#~ msgid "Uid" -#~ msgstr "Uid" - -#~ msgid "Binding command filters" -#~ msgstr "绑定命令过滤器" - -#~ msgid "" -#~ "System user is JumpServer jump login assets used by the users, can be " -#~ "understood as the user login assets, such as web, sa, the dba (` ssh " -#~ "web@some-host `), rather than using a user the username login server jump " -#~ "(` ssh xiaoming@some-host `); " -#~ msgstr "" -#~ "系统用户是 JumpServer 跳转登录资产时使用的用户,可以理解为登录资产用户," -#~ "如 web,sa,dba(`ssh web@some-host`),而不是使用某个用户的用户名跳转登录" -#~ "服务器(`ssh xiaoming@some-host`);" - -#~ msgid "" -#~ "In simple terms, users log into JumpServer using their own username, and " -#~ "JumpServer uses system users to log into assets. " -#~ msgstr "" -#~ "简单来说是用户使用自己的用户名登录 JumpServer,JumpServer 使用系统用户登录" -#~ "资产。" - -#~ msgid "" -#~ "When system users are created, if you choose auto push JumpServer to use " -#~ "Ansible push system users into the asset, if the asset (Switch) does not " -#~ "support ansible, please manually fill in the account password." -#~ msgstr "" -#~ "系统用户创建时,如果选择了自动推送,JumpServer 会使用 Ansible 自动推送系统" -#~ "用户到资产中,如果资产(交换机)不支持 Ansible,请手动填写账号密码。" - -#~ msgid "Remove success" -#~ msgstr "移除成功" - -#~ msgid "Admin user list" -#~ msgstr "管理用户列表" - -#~ msgid "Update admin user" -#~ msgstr "更新管理用户" - -#~ msgid "Admin user detail" -#~ msgstr "管理用户详情" - -#~ msgid "Admin user assets" -#~ msgstr "管理用户关联资产" - -#~ msgid "Update asset" -#~ msgstr "更新资产" - -#~ msgid "Bulk update asset success" -#~ msgstr "批量更新资产成功" - -#~ msgid "Bulk update asset" -#~ msgstr "批量更新资产" - -#~ msgid "Command filter list" -#~ msgstr "命令过滤器列表" - -#~ msgid "Update command filter" -#~ msgstr "更新命令过滤器" - -#~ msgid "Command filter detail" -#~ msgstr "命令过滤器详情" - -#~ msgid "Create command filter rule" -#~ msgstr "创建命令过滤器规则" - -#~ msgid "Update command filter rule" -#~ msgstr "更新命令过滤器规则" - -#~ msgid "Domain detail" -#~ msgstr "网域详情" - -#~ msgid "Domain gateway list" -#~ msgstr "域网关列表" - -#~ msgid "Update gateway" -#~ msgstr "创建网关" - -#~ msgid "Label list" -#~ msgstr "标签列表" - -#~ msgid "Tips: Avoid using label names reserved internally: {}" -#~ msgstr "提示: 请避免使用内部预留标签名: {}" - -#~ msgid "Update label" -#~ msgstr "更新标签" - -#~ msgid "Update platform" -#~ msgstr "更新系统平台" - -#~ msgid "Platform detail" -#~ msgstr "平台详情" - -#~ msgid "Update system user" -#~ msgstr "更新系统用户" - -#~ msgid "System user detail" -#~ msgstr "系统用户详情" - -#~ msgid "assets" -#~ msgstr "资产管理" - -#~ msgid "System user assets" -#~ msgstr "系统用户关联资产" - -#~ msgid "Select user" -#~ msgstr "选择用户" - -#~ msgid "UA" -#~ msgstr "Agent" - -#~ msgid "Handlers" -#~ msgstr "操作者" - -#~ msgid "Command execution log" -#~ msgstr "命令执行" - -#~ msgid "Version detail" -#~ msgstr "版本详情" - -#~ msgid "Version run execution" -#~ msgstr "执行历史" - -#~ msgid "Last run" -#~ msgstr "最后运行" - -#~ msgid "Is success " -#~ msgstr "成功" - -#~ msgid "Last run failed hosts" -#~ msgstr "最后运行失败主机" - -#~ msgid "No hosts" -#~ msgstr "没有主机" - -#~ msgid "Last run success hosts" -#~ msgstr "最后运行成功主机" - -#~ msgid "Executions of " -#~ msgstr "执行历史 " - -#~ msgid "F/S/T" -#~ msgstr "失败/成功/总" - -#~ msgid "Ratio" -#~ msgstr "比例" - -#~ msgid "Execution detail" -#~ msgstr "执行历史详情" - -#~ msgid "Execution detail of" -#~ msgstr "执行历史详情" - -#~ msgid "Task name" -#~ msgstr "任务名称" - -#~ msgid "No assets" -#~ msgstr "没有资产" - -#~ msgid "Success assets" -#~ msgstr "成功资产" - -#~ msgid "Asset configuration does not include the SSH protocol" -#~ msgstr "资产配置不包含 SSH 协议" - -#~ msgid "Selected assets" -#~ msgstr "已选择资产" - -#~ msgid "In total" -#~ msgstr "总共" - -#~ msgid "" -#~ "Select the left asset, select the running system user, execute command in " -#~ "batch" -#~ msgstr "选择左侧资产, 选择运行的系统用户,批量执行命令" - -#~ msgid "Unselected assets" -#~ msgstr "没有选中资产" - -#~ msgid "No input command" -#~ msgstr "没有输入命令" - -#~ msgid "No system user was selected" -#~ msgstr "没有选择系统用户" - -#~ msgid "Pending" -#~ msgstr "等待" - -#~ msgid "Task detail" -#~ msgstr "任务详情" - -#~ msgid "Task versions" -#~ msgstr "任务各版本" - -#~ msgid "Execution" -#~ msgstr "执行历史" - -#~ msgid "Last execution output" -#~ msgstr "最后执行输出" - -#~ msgid "Versions of " -#~ msgstr "版本" - -#~ msgid "Total versions" -#~ msgstr "版本数量" - -#~ msgid "Contents" -#~ msgstr "内容" - -#~ msgid "Run" -#~ msgstr "执行" - -#~ msgid "Task start: " -#~ msgstr "任务开始: " - -#~ msgid "Ops" -#~ msgstr "作业中心" - -#~ msgid "Task execution list" -#~ msgstr "任务执行列表" - -#~ msgid "Command execution list" -#~ msgstr "命令执行列表" - -#~ msgid "Users and user groups" -#~ msgstr "用户或用户组" - -#~ msgid "Assets and node" -#~ msgstr "资产或节点" - -#~ msgid "Add asset to this permission" -#~ msgstr "添加资产" - -#~ msgid "Add node to this permission" -#~ msgstr "添加节点" - -#~ msgid "Select system users" -#~ msgstr "选择系统用户" - -#~ msgid "Validity period" -#~ msgstr "有效期" - -#~ msgid "Create permission" -#~ msgstr "创建授权规则" - -#~ msgid "Refresh permission cache" -#~ msgstr "刷新授权缓存" - -#~ msgid "Refresh success" -#~ msgstr "刷新成功" - -#~ msgid "User list of " -#~ msgstr "用户列表" - -#~ msgid "Add user to asset permission" -#~ msgstr "添加用户" - -#~ msgid "Add user group to asset permission" -#~ msgstr "添加用户组" - -#~ msgid "Select user groups" -#~ msgstr "选择用户组" - -#~ msgid "DatabaseApp list of " -#~ msgstr "数据库应用列表" - -#~ msgid "Add DatabaseApp to this permission" -#~ msgstr "添加数据库应用" - -#~ msgid "Select DatabaseApp" -#~ msgstr "选择数据库应用" - -#~ msgid "Add user to permission" -#~ msgstr "添加用户" - -#~ msgid "Add user group to permission" -#~ msgstr "添加用户组" - -#~ msgid "RemoteApp list of " -#~ msgstr "远程应用列表" - -#~ msgid "Add RemoteApp to this permission" -#~ msgstr "添加远程应用" - -#~ msgid "Select RemoteApp" -#~ msgstr "选择远程应用" - -#~ msgid "Add user to this permission" -#~ msgstr "添加用户" - -#~ msgid "Add user group to this permission" -#~ msgstr "添加用户组" - -#~ msgid "Asset permission list" -#~ msgstr "资产授权列表" - -#~ msgid "Update asset permission" -#~ msgstr "更新资产授权" - -#~ msgid "Asset permission detail" -#~ msgstr "资产授权详情" - -#~ msgid "Asset permission user list" -#~ msgstr "资产授权用户列表" - -#~ msgid "Asset permission asset list" -#~ msgstr "资产授权资产列表" - -#~ msgid "DatabaseApp permission list" -#~ msgstr "数据库应用授权列表" - -#~ msgid "Create DatabaseApp permission" -#~ msgstr "创建数据库应用授权规则" - -#~ msgid "Update DatabaseApp permission" -#~ msgstr "更新数据库应用授权规则" - -#~ msgid "DatabaseApp permission detail" -#~ msgstr "数据库应用授权详情" - -#~ msgid "DatabaseApp permission user list" -#~ msgstr "数据库应用授权用户列表" - -#~ msgid "DatabaseApp permission DatabaseApp list" -#~ msgstr "数据库应用授权数据库应用列表" - -#~ msgid "RemoteApp permission list" -#~ msgstr "远程应用授权列表" - -#~ msgid "Create RemoteApp permission" -#~ msgstr "创建远程应用授权规则" - -#~ msgid "Update RemoteApp permission" -#~ msgstr "更新远程应用授权规则" - -#~ msgid "RemoteApp permission detail" -#~ msgstr "远程应用授权详情" - -#~ msgid "RemoteApp permission user list" -#~ msgstr "远程应用授权用户列表" - -#~ msgid "RemoteApp permission RemoteApp list" -#~ msgstr "远程应用授权远程应用列表" - -#~ msgid "Current SITE URL" -#~ msgstr "当前站点URL" - -#~ msgid "User Guide URL" -#~ msgstr "用户向导URL" - -#~ msgid "User first login update profile done redirect to it" -#~ msgstr "用户第一次登录,修改profile后重定向到地址" - -#~ msgid "Email Subject Prefix" -#~ msgstr "Email主题前缀" - -#~ msgid "Tips: Some word will be intercept by mail provider" -#~ msgstr "提示: 一些关键字可能会被邮件提供商拦截,如 跳板机、JumpServer" - -#~ msgid "SMTP host" -#~ msgstr "SMTP主机" - -#~ msgid "SMTP port" -#~ msgstr "SMTP端口" - -#~ msgid "SMTP user" -#~ msgstr "SMTP账号" - -#~ msgid "SMTP password" -#~ msgstr "SMTP密码" - -#~ msgid "Tips: Some provider use token except password" -#~ msgstr "提示:一些邮件提供商需要输入的是Token" - -#~ msgid "Tips: Send mail account, default SMTP account as the send account" -#~ msgstr "提示:发送邮件账号,默认使用SMTP账号作为发送账号" - -#~ msgid "Test recipient" -#~ msgstr "测试收件人" - -#~ msgid "Tips: Used only as a test mail recipient" -#~ msgstr "提示:仅用来作为测试邮件收件人" - -#~ msgid "Use SSL" -#~ msgstr "使用SSL" - -#~ msgid "If SMTP port is 465, may be select" -#~ msgstr "如果SMTP端口是465,通常需要启用SSL" - -#~ msgid "Use TLS" -#~ msgstr "使用TLS" - -#~ msgid "If SMTP port is 587, may be select" -#~ msgstr "如果SMTP端口是587,通常需要启用TLS" - -#~ msgid "Create user email subject" -#~ msgstr "创建用户邮件的主题" - -#~ msgid "" -#~ "Tips: When creating a user, send the subject of the email (eg:Create " -#~ "account successfully)" -#~ msgstr "提示: 创建用户时,发送设置密码邮件的主题 (例如: 创建用户成功)" - -#~ msgid "Create user honorific" -#~ msgstr "创建用户邮件的敬语" - -#~ msgid "" -#~ "Tips: When creating a user, send the honorific of the email (eg:Hello)" -#~ msgstr "提示: 创建用户时,发送设置密码邮件的敬语 (例如: 您好)" - -#~ msgid "Create user email content" -#~ msgstr "创建用户邮件的内容" - -#~ msgid "Tips:When creating a user, send the content of the email" -#~ msgstr "提示: 创建用户时,发送设置密码邮件的内容" - -#~ msgid "Signature" -#~ msgstr "署名" - -#~ msgid "Tips: Email signature (eg:jumpserver)" -#~ msgstr "提示: 邮件的署名 (例如: jumpserver)" - -#~ msgid "LDAP server" -#~ msgstr "LDAP地址" - -#~ msgid "Bind DN" -#~ msgstr "绑定DN" - -#~ msgid "User OU" -#~ msgstr "用户OU" - -#~ msgid "Use | split User OUs" -#~ msgstr "使用|分隔各OU" - -#~ msgid "User search filter" -#~ msgstr "用户过滤器" - -#, python-format -#~ msgid "Choice may be (cn|uid|sAMAccountName)=%(user)s)" -#~ msgstr "可能的选项是(cn或uid或sAMAccountName=%(user)s)" - -#~ msgid "User attr map" -#~ msgstr "LDAP属性映射" - -#~ msgid "" -#~ "User attr map present how to map LDAP user attr to jumpserver, username," -#~ "name,email is jumpserver attr" -#~ msgstr "" -#~ "用户属性映射代表怎样将LDAP中用户属性映射到jumpserver用户上,username, " -#~ "name,email 是jumpserver的属性" - -#~ msgid "Enable LDAP auth" -#~ msgstr "启用LDAP认证" - -#~ msgid "" -#~ "After opening, all user login must use MFA(valid for all users, including " -#~ "administrators)" -#~ msgstr "" -#~ "开启后,所有用户登录必须使用多因子认证(对所有用户有效,包括管理员)" - -#~ msgid "Batch execute commands" -#~ msgstr "批量命令" - -#~ msgid "Allow user batch execute commands" -#~ msgstr "允许用户批量执行命令" - -#~ msgid "Service account registration" -#~ msgstr "终端注册" - -#~ msgid "" -#~ "Allow using bootstrap token register service account, when terminal " -#~ "setup, can disable it" -#~ msgstr "允许使用bootstrap token注册终端, 当终端注册成功后可以禁止" - -#~ msgid "Limit the number of login failures" -#~ msgstr "限制登录失败次数" - -#~ msgid "No logon interval" -#~ msgstr "禁止登录时间间隔" - -#~ msgid "" -#~ "Tip: (unit/minute) if the user has failed to log in for a limited number " -#~ "of times, no login is allowed during this time interval." -#~ msgstr "" -#~ "提示:(单位:分)当用户登录失败次数达到限制后,那么在此时间间隔内禁止登录" - -#~ msgid "Connection max idle time" -#~ msgstr "连接最大空闲时间" - -#~ msgid "If idle time more than it, disconnect connection Unit: minute" -#~ msgstr "提示:如果超过该配置没有操作,连接会被断开 (单位:分)" - -#~ msgid "Password expiration time" -#~ msgstr "密码过期时间" - -#~ msgid "" -#~ "Tip: (unit: day) If the user does not update the password during the " -#~ "time, the user password will expire failure;The password expiration " -#~ "reminder mail will be automatic sent to the user by system within 5 days " -#~ "(daily) before the password expires" -#~ msgstr "" -#~ "提示:(单位:天)如果用户在此期间没有更新密码,用户密码将过期失效; 密码" -#~ "过期提醒邮件将在密码过期前5天内由系统(每天)自动发送给用户" - -#~ msgid "Password minimum length" -#~ msgstr "密码最小长度 " - -#~ msgid "Must contain capital letters" -#~ msgstr "必须包含大写字母" - -#~ msgid "" -#~ "After opening, the user password changes and resets must contain " -#~ "uppercase letters" -#~ msgstr "开启后,用户密码修改、重置必须包含大写字母" - -#~ msgid "Must contain lowercase letters" -#~ msgstr "必须包含小写字母" - -#~ msgid "" -#~ "After opening, the user password changes and resets must contain " -#~ "lowercase letters" -#~ msgstr "开启后,用户密码修改、重置必须包含小写字母" - -#~ msgid "Must contain numeric characters" -#~ msgstr "必须包含数字字符" - -#~ msgid "" -#~ "After opening, the user password changes and resets must contain numeric " -#~ "characters" -#~ msgstr "开启后,用户密码修改、重置必须包含数字字符" - -#~ msgid "Must contain special characters" -#~ msgstr "必须包含特殊字符" - -#~ msgid "" -#~ "After opening, the user password changes and resets must contain special " -#~ "characters" -#~ msgstr "开启后,用户密码修改、重置必须包含特殊字符" - -#~ msgid "Password auth" -#~ msgstr "密码认证" - -#~ msgid "Public key auth" -#~ msgstr "密钥认证" - -#~ msgid "Heartbeat interval" -#~ msgstr "心跳间隔" - -#~ msgid "Units: seconds" -#~ msgstr "单位: 秒" - -#~ msgid "List sort by" -#~ msgstr "资产列表排序" - -#~ msgid "List page size" -#~ msgstr "资产分页每页数量" - -#~ msgid "" -#~ "Units: days, Session, record, command will be delete if more than " -#~ "duration, only in database" -#~ msgstr "" -#~ "单位:天。 会话、录像、命令记录超过该时长将会被删除(仅影响数据库存储, oss" -#~ "等不受影响)" - -#~ msgid "Telnet login regex" -#~ msgstr "Telnet 成功正则表达式" - -#~ msgid "ex: Last\\s*login|success|成功" -#~ msgstr "" -#~ "登录telnet服务器成功后的提示正则表达式,如: Last\\s*login|success|成功 " - -#~ msgid "LDAP user list" -#~ msgstr "LDAP 用户列表" - -#~ msgid "Please submit the LDAP configuration before import" -#~ msgstr "请先提交LDAP配置再进行导入" - -#~ msgid "Refresh cache" -#~ msgstr "刷新缓存" - -#~ msgid "Existing" -#~ msgstr "已存在" - -#~ msgid "" -#~ "User is not currently selected, please check the user you want to import" -#~ msgstr "当前无勾选用户,请勾选你想要导入的用户" - -#~ msgid "Test LDAP user login" -#~ msgstr "测试LDAP 用户登录" - -#~ msgid "Save the configuration before testing the login" -#~ msgstr "请先提交LDAP配置再进行测试登录" - -#~ msgid "Please input username" -#~ msgstr "请输入用户名" - -#~ msgid "Basic setting" -#~ msgstr "基本设置" - -#~ msgid "Email setting" -#~ msgstr "邮件设置" - -#~ msgid "Email content setting" -#~ msgstr "邮件内容设置" - -#~ msgid "LDAP setting" -#~ msgstr "LDAP设置" - -#~ msgid "Terminal setting" -#~ msgstr "终端设置" - -#~ msgid "Security setting" -#~ msgstr "安全设置" - -#~ msgid "Create User setting" -#~ msgstr "创建用户设置" - -#~ msgid "Test login" -#~ msgstr "测试登录" - -#~ msgid "Bulk import" -#~ msgstr "一键导入" - -#~ msgid "Password check rule" -#~ msgstr "密码校验规则" - -#~ msgid "Command and Replay storage configuration migrated to" -#~ msgstr "命令和录像存储配置已迁移到" - -#~ msgid "Sessions -> Terminal -> Storage configuration" -#~ msgstr "会话管理 -> 终端管理 -> 存储配置" - -#~ msgid "Here" -#~ msgstr "这里" - -#~ msgid "Update setting successfully" -#~ msgstr "更新设置成功" - -#~ msgid "Container name" -#~ msgstr "容器名称" - -#~ msgid "Account key" -#~ msgstr "账户密钥" - -#~ msgid "Endpoint suffix" -#~ msgstr "端点后缀" - -#~ msgid "Bucket" -#~ msgstr "桶名称" - -#~ msgid "Endpoint" -#~ msgstr "端点" - -#~ msgid "" -#~ "\n" -#~ " Tips: If there are multiple hosts, separate them with a comma " -#~ "(,) \n" -#~ "
\n" -#~ " eg: http://www.jumpserver.a.com,http://www.jumpserver.b.com\n" -#~ " " -#~ msgstr "" -#~ "\n" -#~ " 提示: 如果有多台主机,请使用逗号 ( , ) 进行分割\n" -#~ "
\n" -#~ " eg: http://www.jumpserver.a.com,http://www.jumpserver.b.com\n" -#~ " " - -#~ msgid "Index" -#~ msgstr "索引" - -#~ msgid "Doc type" -#~ msgstr "文档类型" - -#~ msgid "" -#~ "Command can store in server db or ES, default to server, more see docs" -#~ msgstr "" -#~ "命令支持存储到服务器端数据库、ES中,默认存储的服务器端数据库,更多查看文档" - -#~ msgid "" -#~ "Replay file can store in server disk, AWS S3, Aliyun OSS, default to " -#~ "server, more see docs" -#~ msgstr "" -#~ "录像文件支持存储到服务器端硬盘、AWS S3、 阿里云 OSS 中,默认存储到服务器端" -#~ "硬盘, 更多查看文档" - -#~ msgid "Export command" -#~ msgstr "导出命令" - -#~ msgid "Goto" -#~ msgstr "转到" - -#~ msgid "Create command storage" -#~ msgstr "创建命令存储" - -#~ msgid "Create replay storage" -#~ msgstr "创建录像存储" - -#~ msgid "Session detail" -#~ msgstr "会话详情" - -#~ msgid "Command list" -#~ msgstr "命令记录列表" - -#~ msgid "There is no command about this session" -#~ msgstr "该会话没有命令记录" - -#~ msgid "Replay session" -#~ msgstr "回放会话" - -#~ msgid "Monitor session" -#~ msgstr "监控" - -#~ msgid "Terminate session" -#~ msgstr "终止会话" - -#~ msgid "Terminate success" -#~ msgstr "终断成功" - -#~ msgid "Duration" -#~ msgstr "时长" - -#~ msgid "Terminate selected" -#~ msgstr "终断所选" - -#~ msgid "Confirm finished" -#~ msgstr "确认已完成" - -#~ msgid "Terminate task send, waiting ..." -#~ msgstr "终断任务已发送,请等待" - -#~ msgid "Terminate" -#~ msgstr "终断" - -#~ msgid "Monitoring" -#~ msgstr "监控" - -#~ msgid "Finish session success" -#~ msgstr "标记会话完成成功" - -#~ msgid "Visit doc for replay play offline: " -#~ msgstr "访问文档查看如何离线播放: " - -#~ msgid "Terminal detail" -#~ msgstr "终端详情" - -#~ msgid "SSH port" -#~ msgstr "SSH端口" - -#~ msgid "Http port" -#~ msgstr "HTTP端口" - -#~ msgid "Storage configuration" -#~ msgstr "存储配置" - -#~ msgid "Addr" -#~ msgstr "地址" - -#~ msgid "Alive" -#~ msgstr "在线" - -#~ msgid "Accept" -#~ msgstr "接受" - -#~ msgid "Accept terminal registration" -#~ msgstr "接受终端注册" - -#~ msgid "Info" -#~ msgstr "信息" - -#~ msgid "Session online list" -#~ msgstr "在线会话" - -#~ msgid "Replay storage list" -#~ msgstr "录像存储列表" - -#~ msgid "Command storage list" -#~ msgstr "命令存储列表" - -#~ msgid "Update replay storage" -#~ msgstr "更新录像存储" - -#~ msgid "Update command storage" -#~ msgstr "更新命令存储" - -#~ msgid "Terminal list" -#~ msgstr "终端列表" - -#~ msgid "Update terminal" -#~ msgstr "更新终端" - -#~ msgid "Redirect to web terminal" -#~ msgstr "重定向到web terminal" - -#~ msgid "Connect ssh terminal" -#~ msgstr "连接ssh终端" - -#~ msgid "" -#~ "You should use your ssh client tools connect terminal: {}

{}" -#~ msgstr "你可以使用ssh客户端工具连接终端" - -#~ msgid "ago" -#~ msgstr "前" - -#~ msgid "My tickets" -#~ msgstr "我的工单" - -#~ msgid "Assigned me" -#~ msgstr "待处理" - -#~ msgid "Create ticket" -#~ msgstr "提交工单" - -#~ msgid "Ticket detail" -#~ msgstr "工单详情" - -#~ msgid "I agree with the terms and conditions." -#~ msgstr "我同意条款和条件" - -#~ msgid "Please choose the terms and conditions." -#~ msgstr "请选择同意条款和条件" - -#~ msgid "Previous" -#~ msgstr "上一步" - -#~ msgid "User group list" -#~ msgstr "用户组列表" - -#~ msgid "Update user group" -#~ msgstr "更新用户组" - -#~ msgid "User group granted asset" -#~ msgstr "用户组授权资产" - -#~ msgid "First login" -#~ msgstr "首次登录" - -#~ msgid "Profile setting" -#~ msgstr "个人信息设置" - -#~ msgid "Bulk update user success" -#~ msgstr "批量更新用户成功" - -#~ msgid "Bulk update user" -#~ msgstr "批量更新用户" - -#~ msgid "User granted assets" -#~ msgstr "用户授权资产" - -#~ msgid "User granted RemoteApp" -#~ msgstr "用户授权远程应用" - -#~ msgid "User granted DatabaseApp" -#~ msgstr "用户授权数据库应用" - -#~ msgid "Password length" -#~ msgstr "密码长度" - -#~ msgid "" -#~ "Tips: The username of the user on the asset to be modified. if the user " -#~ "exists, change the password; If the user does not exist, create the user." -#~ msgstr "" -#~ "提示:用户名为将要修改的资产上的用户的用户名。如果用户存在,则修改密码;如" -#~ "果用户不存在,则创建用户。" - -#~ msgid "Plan execution list" -#~ msgstr "执行列表" - -#~ msgid "Add asset to this plan" -#~ msgstr "添加资产" - -#~ msgid "Add node to this plan" -#~ msgstr "添加节点" - -#~ msgid "" -#~ "When the user password on the asset is changed, the action is performed " -#~ "using the admin user associated with the asset" -#~ msgstr "更改资产上的用户密码时,将会使用与该资产关联的管理用户进行操作" - -#~ msgid "Length" -#~ msgstr "长度" - -#~ msgid "Run plan manually" -#~ msgstr "手动执行计划" - -#~ msgid "Execute failed" -#~ msgstr "执行失败" - -#~ msgid "Execution list of plan" -#~ msgstr "执行历史列表" - -#~ msgid "Log" -#~ msgstr "日志" - -#~ msgid "Retry" -#~ msgstr "重试" - -#~ msgid "Run failed" -#~ msgstr "执行失败" - -#~ msgid "Create plan" -#~ msgstr "创建计划" - -#~ msgid "Plan list" -#~ msgstr "计划列表" - -#~ msgid "Update plan" -#~ msgstr "更新计划" - -#~ msgid "Plan execution task list" -#~ msgstr "执行任务列表" - -#~ msgid "Select account" -#~ msgstr "选择账户" - -#~ msgid "Select regions" -#~ msgstr "选择地域" - -#~ msgid "Select instances" -#~ msgstr "选择实例" - -#~ msgid "Select node" -#~ msgstr "选择节点" - -#~ msgid "Select admins" -#~ msgstr "选择管理员" - -#~ msgid "Account detail" -#~ msgstr "账户详情" - -#~ msgid "Create account" -#~ msgstr "创建账户" - -#~ msgid "Node & AdminUser" -#~ msgstr "节点 & 管理用户" - -#~ msgid "Load failed" -#~ msgstr "加载失败" - -#~ msgid "Sync task detail" -#~ msgstr "同步任务详情" - -#~ msgid "Sync task history" -#~ msgstr "同步历史列表" - -#~ msgid "Sync instance list" -#~ msgstr "同步实例列表" - -#~ msgid "Run task manually" -#~ msgstr "手动执行任务" - -#~ msgid "Sync success" -#~ msgstr "同步成功" - -#~ msgid "Unsync count" -#~ msgstr "未同步" - -#~ msgid "Synced count" -#~ msgstr "已同步" - -#~ msgid "Released count" -#~ msgstr "已释放" - -#~ msgid "Delete released assets" -#~ msgstr "删除已释放的资产" - -#~ msgid "Create sync instance task" -#~ msgstr "创建同步实例任务" - -#~ msgid "Run count" -#~ msgstr "执行次数" - -#~ msgid "Update account" -#~ msgstr "更新账户" - -#~ msgid "Sync instance task list" -#~ msgstr "同步实例任务列表" - -#~ msgid "Create sync Instance task" -#~ msgstr "创建同步实例任务" - -#~ msgid "Update sync Instance task" -#~ msgstr "更新同步实例任务" - -#~ msgid "Asset user" -#~ msgstr "资产用户" - -#~ msgid "Create task" -#~ msgstr "创建任务" - -#~ msgid "Periodic" -#~ msgstr "定时执行" - -#~ msgid "Gathered user list" -#~ msgstr "收集用户列表" - -#~ msgid "Update task" -#~ msgstr "更新任务" - -#~ msgid "" -#~ "Tips: This will be displayed on the enterprise user login page. (eg: " -#~ "Welcome to the JumpServer open source fortress)" -#~ msgstr "" -#~ "提示:将会显示在企业版用户登录页面(eg: 欢迎使用JumpServer开源堡垒机)" - -#~ msgid "" -#~ "Tips: This will be displayed on the enterprise user login page. (suggest " -#~ "image size: 492px*472px)" -#~ msgstr "提示:将会显示在企业版用户登录页面(建议图片大小为: 492*472px)" - -#~ msgid "Tips: website icon. (suggest image size: 16px*16px)" -#~ msgstr "提示:网站图标(建议图片大小为: 16px*16px)" - -#~ msgid "" -#~ "Tips: This will appear at the top left of the administration page. " -#~ "(suggest image size: 185px*55px)" -#~ msgstr "提示:将会显示在管理页面左上方(建议图片大小为: 185px*55px)" - -#~ msgid "" -#~ "Tips: This will be displayed on the enterprise user logout page. (suggest " -#~ "image size: 82px*82px)" -#~ msgstr "提示:将会显示在企业版用户退出页面(建议图片大小为:82px*82px)" - -#~ msgid "Interface setting" -#~ msgstr "界面设置" - -#~ msgid "Restore Default" -#~ msgstr "恢复默认" - -#~ msgid "This will restore default Settings of the interface !!!" -#~ msgstr "您确定要恢复默认初始化吗?" - -#~ msgid "Restore default failed." -#~ msgstr "恢复默认失败!" - -#~ msgid "Import license" -#~ msgstr "导入许可证" - -#~ msgid "License file" -#~ msgstr "许可证文件" - -#~ msgid "Please Import License" -#~ msgstr "请导入许可证" - -#~ msgid "License has expired" -#~ msgstr "许可证已经过期" - -#~ msgid "The license will at " -#~ msgstr "许可证将在 " - -#~ msgid " expired." -#~ msgstr " 过期。" - -#~ msgid "License detail" -#~ msgstr "许可证详情" - -#~ msgid "No license" -#~ msgstr "暂无许可证" - -#~ msgid "Corporation" -#~ msgstr "公司" - -#~ msgid "Edition" -#~ msgstr "版本" - -#~ msgid "Technology consulting" -#~ msgstr "技术咨询" - -#~ msgid "Consult" -#~ msgstr "咨询" - -#~ msgid "Select auditor" -#~ msgstr "选择审计员" - -#~ msgid "Admin" -#~ msgstr "管理员" - -#~ msgid "Org detail" -#~ msgstr "组织详情" - -#~ msgid "Add admin" -#~ msgstr "添加管理员" - -#~ msgid "Create organization " -#~ msgstr "创建组织" - -#~ msgid "Org list" -#~ msgstr "组织列表" - -#~ msgid "Create org" -#~ msgstr "创建组织" - -#~ msgid "Update org" -#~ msgstr "更新组织" - -#~ msgid "Vault" -#~ msgstr "密码匣子" - -#~ msgid "Import vault" -#~ msgstr "导入密码" - -#~ msgid "vault" -#~ msgstr "密码匣子" - -#~ msgid "vault list" -#~ msgstr "密码匣子" - -#~ msgid "vault create" -#~ msgstr "创建" - -#~ msgid "Org users" -#~ msgstr "组织用户" - -#~ msgid "Add auditor" -#~ msgstr "添加审计员" - -#~ msgid "Add user to organization" -#~ msgstr "添加用户" - -#~ msgid "Org user list" -#~ msgstr "组织用户列表" - -#~ msgid "Total hosts" -#~ msgstr "主机总数" - -#~ msgid "* For security, do not change {}'s password" -#~ msgstr "* 为了安全,不能修改 {} 的密码" - -#~ msgid "Assets is empty, please add the asset" -#~ msgstr "资产为空,请添加资产" - -#~ msgid "Region & Instance" -#~ msgstr "地域 & 实例" - -#~ msgid "Crontab" -#~ msgstr "Crontab" - -#~ msgid "5 * * * *" -#~ msgstr "5 * * * *" - -#~ msgid "Aliyun" -#~ msgstr "阿里云" - -#~ msgid "Qcloud" -#~ msgstr "腾讯云" - -#~ msgid "History detail of" -#~ msgstr "执行历史详情" - -#~ msgid "Assets count: {}" -#~ msgstr "资产数量" - -#~ msgid "Assets of " -#~ msgstr "资产" - -#~ msgid "MFA authentication failed" -#~ msgstr "多因子认证失败" - -#~ msgid "MFA Secondary certification" -#~ msgstr "MFA 二次认证" - -#~ msgid "Unbind" -#~ msgstr "解绑" - -#~ msgid "Bind" -#~ msgstr "绑定" - -#~ msgid "Have child node, cancel" -#~ msgstr "存在子节点,不能删除" - -#~ msgid "Add to node" -#~ msgstr "添加到节点" - -#~ msgid "Test ldap success" -#~ msgstr "连接LDAP成功" - -#~ msgid " Top 5 Active user" -#~ msgstr "活跃用户Top5" - -#~ msgid "The last time logged on to the host" -#~ msgstr "最近一次登录主机" - -#~ msgid "No assets matched related system user protocol, stop task" -#~ msgstr "没有匹配到与系统用户协议相关的资产,结束任务" - -#~ msgid "Run history" -#~ msgstr "执行历史" - -#~ msgid "Task run history" -#~ msgstr "执行历史" - -#~ msgid "Unlimited" -#~ msgstr "无限制" - -#~ msgid "Concurrent connections" -#~ msgstr "并发连接" - -#~ msgid "Update assets" -#~ msgstr "更新资产" - -#~ msgid "Browser" -#~ msgstr "浏览器" - -#~ msgid "Virtualization tools" -#~ msgstr "虚拟化工具" - -#~ msgid "Import admin user" -#~ msgstr "导入管理用户" - -#~ msgid "Import assets" -#~ msgstr "导入资产" - -#~ msgid "Import system user" -#~ msgstr "导入系统用户" - -#~ msgid "This will delete the selected System Users !!!" -#~ msgstr "删除选择系统用户" - -#~ msgid "System Users Deleted." -#~ msgstr "已被删除" - -#~ msgid "System Users Delete" -#~ msgstr "删除系统用户" - -#~ msgid "System Users Deleting failed." -#~ msgstr "系统用户删除失败" - -#~ msgid "Versions" -#~ msgstr "版本" - -#~ msgid "Import user groups" -#~ msgstr "导入用户组" - -#~ msgid "Import users" -#~ msgstr "导入用户" - -#~ msgid "" -#~ "JumpServer is an open source desktop system developed using Python and " -#~ "Django that helps Internet businesses with efficient users, assets, " -#~ "permissions, and audit management" -#~ msgstr "" -#~ "JumpServer是一款使用Python, Django开发的开源跳板机系统, 助力互联网企业高" -#~ "效 用户、资产、权限、审计 管理" - -#~ msgid "" -#~ "We are from all over the world, we have great admiration and worship for " -#~ "the spirit of open source, we have endless pursuit for perfection, " -#~ "neatness and elegance" -#~ msgstr "" -#~ "我们自五湖四海,我们对开源精神无比敬仰和崇拜,我们对完美、整洁、优雅 无止" -#~ "境的追求" - -#~ msgid "" -#~ "We focus on automatic operation and maintenance, and strive to build an " -#~ "easy-to-use, stable, safe and automatic board hopping machine, which is " -#~ "our unremitting pursuit and power" -#~ msgstr "" -#~ "专注自动化运维,努力打造 易用、稳定、安全、自动化 的跳板机, 这是我们的不懈" -#~ "的追求和动力" - -#~ msgid "Always young, always with tears in my eyes. Stay foolish Stay hungry" -#~ msgstr "永远年轻,永远热泪盈眶 stay foolish stay hungry" - -#~ msgid "Password again" -#~ msgstr "再次输入密码" - -#~ msgid "This will delete the selected groups !!!" -#~ msgstr "删除选择组" - -#~ msgid "UserGroups Deleted." -#~ msgstr "用户组删除" - -#~ msgid "UserGroups Delete" -#~ msgstr "用户组删除" - -#~ msgid "UserGroup Deleting failed." -#~ msgstr "用户组删除失败" - -#~ msgid "User Deleted." -#~ msgstr "已被删除" - -#~ msgid "Password not same" -#~ msgstr "密码不一致" - -#, fuzzy -#~| msgid "Password update" -#~ msgid "Platform update" -#~ msgstr "密码更新" - -#~ msgid "Search no entry matched in ou {}" -#~ msgstr "在ou:{}中没有匹配条目" - -#~ msgid "Date last active" -#~ msgstr "最后活跃日期" - -#~ msgid "" -#~ "Error: Account invalid (Please make sure the information such as Access " -#~ "key or Secret key is correct)" -#~ msgstr "错误:账户无效 (请确保 Access key 或 Secret key 等信息正确)" - -#~ msgid "Create succeed" -#~ msgstr "创建成功" - -#~ msgid "Tips: If there are multiple hosts, separate them with a comma (,)" -#~ msgstr "提示: 如果有多台主机,请使用逗号 ( , ) 进行分割" - -#~ msgid "OSS: http://{REGION_NAME}.aliyuncs.com" -#~ msgstr "OSS: http://{REGION_NAME}.aliyuncs.com" - -#~ msgid "Example: http://oss-cn-hangzhou.aliyuncs.com" -#~ msgstr "如: http://oss-cn-hangzhou.aliyuncs.com" - -#~ msgid "S3: http://s3.{REGION_NAME}.amazonaws.com" -#~ msgstr "S3: http://s3.{REGION_NAME}.amazonaws.com" - -#~ msgid "S3(China): http://s3.{REGION_NAME}.amazonaws.com.cn" -#~ msgstr "S3(中国): http://s3.{REGION_NAME}.amazonaws.com.cn" - -#~ msgid "Example: http://s3.cn-north-1.amazonaws.com.cn" -#~ msgstr "如: http://s3.cn-north-1.amazonaws.com.cn" - -#~ msgid "Beijing: cn-north-1" -#~ msgstr "北京: cn-north-1" - -#~ msgid "Ningxia: cn-northwest-1" -#~ msgstr "宁夏: cn-northwest-1" - -#~ msgid "More" -#~ msgstr "更多" - -#~ msgid "Submitting" -#~ msgstr "提交中" - -#~ msgid "Endpoint need contain protocol, ex: http" -#~ msgstr "端点需要包含协议,如 http" - -#~ msgid "Delete failed" -#~ msgstr "删除失败" - -#~ msgid "The connection fails" -#~ msgstr "连接失败" - -#~ msgid "Assigned ticket" -#~ msgstr "处理人" - -#~ msgid "My ticket" -#~ msgstr "我的工单" - -#~ msgid "User login confirm: {}" -#~ msgstr "用户登录复核: {}" - -#~ msgid "" -#~ "User: {}\n" -#~ "IP: {}\n" -#~ "City: {}\n" -#~ "Date: {}\n" -#~ msgstr "" -#~ "用户: {}\n" -#~ "IP: {}\n" -#~ "城市: {}\n" -#~ "日期: {}\n" - -#~ msgid "this order" -#~ msgstr "这个工单" - -#~ msgid "Approve selected" -#~ msgstr "同意所选" - -#~ msgid "" -#~ "\n" -#~ "
\n" -#~ "

Your has a new ticket

\n" -#~ "
\n" -#~ " Title: {ticket.title}\n" -#~ "
\n" -#~ " User: {user}\n" -#~ "
\n" -#~ " Assignees: {ticket.assignees_display}\n" -#~ "
\n" -#~ " City: {ticket.city}\n" -#~ "
\n" -#~ " IP: {ticket.ip}\n" -#~ "
\n" -#~ " click here to review \n" -#~ "
\n" -#~ "
\n" -#~ " " -#~ msgstr "" -#~ "\n" -#~ "
\n" -#~ "

您有一个新工单

\n" -#~ "
\n" -#~ " 标题: {ticket.title}\n" -#~ "
\n" -#~ " 用户: {user}\n" -#~ "
\n" -#~ " 待处理人: {ticket.assignees_display}\n" -#~ "
\n" -#~ " 城市: {ticket.city}\n" -#~ "
\n" -#~ " IP: {ticket.ip}\n" -#~ "
\n" -#~ " 点我查看 \n" -#~ "
\n" -#~ "
\n" -#~ " " - -#~ msgid "Login confirm ticket list" -#~ msgstr "登录复核工单列表" - -#~ msgid "Login confirm ticket detail" -#~ msgstr "登录复核工单详情" - -#, fuzzy -#~| msgid "Login" -#~ msgid "Login IP" -#~ msgstr "登录" - -#~ msgid "succeed: {} failed: {} total: {}" -#~ msgstr "成功:{} 失败:{} 总数:{}" - -#~ msgid "The user source is not LDAP" -#~ msgstr "用户来源不是LDAP" - -#~ msgid "selected" -#~ msgstr "所选" - -#~ msgid "Log in frequently and try again later" -#~ msgstr "登录频繁, 稍后重试" - -#~ msgid "Please carry seed value and conduct MFA secondary certification" -#~ msgstr "请携带seed值, 进行MFA二次认证" - -#~ msgid "Please verify the user name and password first" -#~ msgstr "请先进行用户名和密码验证" - -#~ msgid "MFA certification failed" -#~ msgstr "MFA认证失败" - -#~ msgid "Accepted" -#~ msgstr "已接受" - -#~ msgid "New order" -#~ msgstr "新工单" - -#~ msgid "Orders" -#~ msgstr "工单管理" - -#~ msgid "" -#~ "The username or password you entered is incorrect, please enter it again." -#~ msgstr "您输入的用户名或密码不正确,请重新输入。" - -#~ msgid "" -#~ "You can also try {times_try} times (The account will be temporarily " -#~ "locked for {block_time} minutes)" -#~ msgstr "您还可以尝试 {times_try} 次(账号将被临时锁定 {block_time} 分钟)" - -#~ msgid "No order found or order expired" -#~ msgstr "没有找到工单,或者已过期" - -#~ msgid "Order was rejected by {}" -#~ msgstr "工单被拒绝 {}" - -#~ msgid "login_confirm_setting" -#~ msgstr "登录复核设置" - -#~ msgid "The user password has expired" -#~ msgstr "用户密码已过期" - -#~ msgid "Recipient" -#~ msgstr "收件人" - -#~ msgid "Gather user plan" -#~ msgstr "收集用户计划" - -#~ msgid "Task create" -#~ msgstr "创建" - -#~ msgid "%(hostname)s was %(action)s successfully" -#~ msgstr "%(hostname)s %(action)s成功" - -#~ msgid "%(name)s was %(action)s successfully" -#~ msgstr "%(name)s %(action)s成功" - -#~ msgid "Loading..." -#~ msgstr "加载中..." - -#~ msgid "Interface" -#~ msgstr "界面" - -#~ msgid "Orgs" -#~ msgstr "组织管理" - -#~ msgid "already exists" -#~ msgstr "已经存在" - -#~ msgid "Refresh all node assets amount" -#~ msgstr "刷新所有节点资产数量" - -#~ msgid "Rename failed, do not change the root node name" -#~ msgstr "重命名失败,不能更改root节点的名称" - -#~ msgid "Failed to update SSH public key." -#~ msgstr "更新密钥失败" - -#~ msgid "Unreachable assets" -#~ msgstr "不可达资产" - -#~ msgid "Reachable assets" -#~ msgstr "可连接资产" - -#~ msgid "Restore default successfully!" -#~ msgstr "恢复默认成功!" - -#~ msgid "The initial password has been cleared." -#~ msgstr "当前初始密码已经清除." - -#~ msgid "Clear initial password successfully." -#~ msgstr "清除初始密码成功." - -#~ msgid "User Initial Password" -#~ msgstr "用户初始密码" - -#~ msgid "Clear initial password" -#~ msgstr "清除初始密码" - -#~ msgid "This will be clear the initial password !!!" -#~ msgstr "这将会清除用户初始密码!!!" - -#~ msgid "Clear Initial Password" -#~ msgstr "清除初始密码" - -#~ msgid "Clear initial password failed." -#~ msgstr "清除初始密码失败." - -#~ msgid "INITIAL_PASSWORD" -#~ msgstr "初始化密码" - -#~ msgid "CUSTOM_PASSWORD" -#~ msgstr "自定义密码" - -#~ msgid "EMAIL_SET_PASSWORD" -#~ msgstr "邮件设置密码" - -#~ msgid "" -#~ "This will use the default initial password by the system. Please go to " -#~ "the system Settings application to set the initial password" -#~ msgstr "这将会使用系统设置的初始密码. 请先到系统设置应用里去设置初始密码." - -#~ msgid "The password cannot be the same as the initial password" -#~ msgstr "密码设置不能和系统设置的初始密码一致" - -#~ msgid "Update user groups" -#~ msgstr "更新用户组" - -#~ msgid "Template" -#~ msgstr "模板" - -#~ msgid "Asset csv file" -#~ msgstr "资产csv文件" - -#~ msgid "If set id, will use this id update asset existed" -#~ msgstr "如果设置了id,则会使用该行信息更新该id的资产" - -#~ msgid "Users csv file" -#~ msgstr "用户csv文件" - -#~ msgid "If set id, will use this id update user existed" -#~ msgstr "如果设置了id,则会使用该行信息更新该id的用户" - -#~ msgid "Beijing Duizhan Tech, Inc." -#~ msgstr "北京堆栈科技有限公司" - -#~ msgid "" -#~ "Import {} users successfully;import {} users failed, Because’TypeError' " -#~ "object has no attribute 'keys'" -#~ msgstr "导入 {} 个用户成功; 导入 {} 这些用户失败,因为对象没有属性'keys'" - -#~ msgid "Invalid private key" -#~ msgstr "SSH密钥不合法" - -#~ msgid "Login JumpServer" -#~ msgstr "登录 JumpServer" - -#~ msgid "Valid" -#~ msgstr "账户状态" - -#~ msgid "Asset has been disabled, skip: {}" -#~ msgstr "资产被禁用,跳过:{}" - -#~ msgid "Asset may not be support ansible, skip: {}" -#~ msgstr "资产或许不支持ansible, 跳过: {}" - -#~ msgid "No assets, task stop" -#~ msgstr "没有匹配到资产,结束任务" - -#~ msgid "Update assets hardware info period" -#~ msgstr "定期更新资产硬件信息" - -#~ msgid "User id" -#~ msgstr "用户" - -#~ msgid "Start execute" -#~ msgstr "开始执行" - -#~ msgid "Start" -#~ msgstr "开始" - -#~ msgid "Bit" -#~ msgstr " 位" - -#~ msgid "" -#~ "Set terminal storage setting, `default` is the using as default,You can " -#~ "set other storage and some terminal using" -#~ msgstr "设置终端命令存储,default是默认用的存储方式" - -#~ msgid "" -#~ "Set replay storage setting, `default` is the using as default,You can set " -#~ "other storage and some terminal using" -#~ msgstr "设置终端录像存储,default是默认用的存储方式" - -#~ msgid "Sync instance task detail" -#~ msgstr "同步实例任务详情" - -#~ msgid "Sync task instance" -#~ msgstr "同步实例列表" - -#~ msgid "Sync instance task instance" -#~ msgstr "同步实例任务实例" - -#~ msgid "Get sync task error" -#~ msgstr "获取同步任务" - -#~ msgid "" -#~ "Are you sure to remove authentication information for the system user ?" -#~ msgstr "你确定清除该系统用户的认证信息吗 ?" - -#~ msgid "success" -#~ msgstr "成功" - -#~ msgid "Task has been send, Go to ops task list seen result" -#~ msgstr "任务已下发,查看ops任务列表" - -#~ msgid "Task has been send, seen left assets status" -#~ msgstr "任务已下发,查看左侧资产状态" - -#~ msgid "OK" -#~ msgstr "完成" - -#~ msgid "Update MFA settings" -#~ msgstr "更改MFA设置" - -#~ msgid "MFA code invalid" -#~ msgstr "MFA码认证失败" - -#~ msgid "Chinese" -#~ msgstr "中文" - -#~ msgid "* required Must set exact system platform, Windows, Linux ..." -#~ msgstr "* required 必须准确设置操作系统平台,如Windows, Linux ..." - -#~ msgid "Clear" -#~ msgstr "清除" diff --git a/apps/terminal/serializers/storage.py b/apps/terminal/serializers/storage.py index 35606d40f..dcac31c16 100644 --- a/apps/terminal/serializers/storage.py +++ b/apps/terminal/serializers/storage.py @@ -76,7 +76,9 @@ class ReplayStorageTypeAzureSerializer(serializers.Serializer): china = 'core.chinacloudapi.cn', 'core.chinacloudapi.cn' international = 'core.windows.net', 'core.windows.net' - CONTAINER_NAME = serializers.CharField(max_length=1024, label=_('Container'), allow_null=True) + CONTAINER_NAME = serializers.CharField( + max_length=1024, label=_('Container name'), allow_null=True + ) ACCOUNT_NAME = serializers.CharField(max_length=1024, label=_('Account name'), allow_null=True) ACCOUNT_KEY = serializers.CharField(max_length=1024, label=_('Account key'), allow_null=True) ENDPOINT_SUFFIX = serializers.ChoiceField( diff --git a/apps/users/views/profile/reset.py b/apps/users/views/profile/reset.py index 65c690339..50897e112 100644 --- a/apps/users/views/profile/reset.py +++ b/apps/users/views/profile/reset.py @@ -47,8 +47,10 @@ class UserForgotPasswordView(FormView): return self.form_invalid(form) if not user.is_local: - error = _('The user is from {} and goes there to change the password' - ''.format(user.get_source_display())) + error = _( + 'The user is from A, please go to the corresponding system to change the password' + ''.format(user.get_source_display()) + ) form.add_error('email', error) return self.form_invalid(form)