From 4e3b3442d23706f299edd7dcce33a6791a756c8d Mon Sep 17 00:00:00 2001 From: ibuler Date: Mon, 12 Jul 2021 20:38:01 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BF=AE=E6=94=B9=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit perf: 优化翻译 perf: 修改i18n perf: 编译 --- .../migrations/0075_auto_20210705_1759.py | 6 +- apps/assets/models/base.py | 2 +- apps/locale/zh/LC_MESSAGES/django.mo | Bin 76045 -> 76078 bytes apps/locale/zh/LC_MESSAGES/django.po | 551 +++++++++--------- apps/locale/zh/LC_MESSAGES/djangojs.mo | Bin 2741 -> 2782 bytes 5 files changed, 289 insertions(+), 270 deletions(-) diff --git a/apps/assets/migrations/0075_auto_20210705_1759.py b/apps/assets/migrations/0075_auto_20210705_1759.py index 6e5fdf480..84e970075 100644 --- a/apps/assets/migrations/0075_auto_20210705_1759.py +++ b/apps/assets/migrations/0075_auto_20210705_1759.py @@ -18,7 +18,7 @@ class Migration(migrations.Migration): migrations.AddField( model_name='asset', name='date_verified', - field=models.DateTimeField(null=True), + field=models.DateTimeField(null=True, verbose_name='Date verified'), ), migrations.AddField( model_name='authbook', @@ -28,7 +28,7 @@ class Migration(migrations.Migration): migrations.AddField( model_name='authbook', name='date_verified', - field=models.DateTimeField(null=True), + field=models.DateTimeField(null=True, verbose_name='Date verified'), ), migrations.AddField( model_name='historicalauthbook', @@ -38,7 +38,7 @@ class Migration(migrations.Migration): migrations.AddField( model_name='historicalauthbook', name='date_verified', - field=models.DateTimeField(null=True), + field=models.DateTimeField(null=True, verbose_name='Date verified'), ), migrations.AlterField( model_name='asset', diff --git a/apps/assets/models/base.py b/apps/assets/models/base.py index cb176202a..05c263e1e 100644 --- a/apps/assets/models/base.py +++ b/apps/assets/models/base.py @@ -37,7 +37,7 @@ class AbsConnectivity(models.Model): choices=Connectivity.choices, default=Connectivity.unknown, max_length=16, verbose_name=_('Connectivity') ) - date_verified = models.DateTimeField(null=True) + date_verified = models.DateTimeField(null=True, verbose_name=_("Date verified")) def set_connectivity(self, val): self.connectivity = val diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index 319593bfdc018392b8c539dbf49b93712a45a3cb..bc41b05ae39c2ef8b85a7962e4bbe84b619456b1 100644 GIT binary patch delta 22482 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 delta 22398 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 USLbqfcTB%CZ^6ujIRY~OKjNVf0RR91 diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po index 8519fd042..300b532dd 100644 --- a/apps/locale/zh/LC_MESSAGES/django.po +++ b/apps/locale/zh/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: JumpServer 0.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-06-29 17:02+0800\n" +"POT-Creation-Date: 2021-07-13 09:28+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n" "Last-Translator: ibuler \n" "Language-Team: JumpServer team\n" @@ -18,9 +18,9 @@ msgstr "" "X-Generator: Poedit 2.4.3\n" #: acls/models/base.py:25 acls/serializers/login_asset_acl.py:47 -#: applications/models/application.py:11 assets/models/asset.py:142 -#: assets/models/base.py:216 assets/models/cluster.py:18 -#: assets/models/cmd_filter.py:21 assets/models/domain.py:21 +#: applications/models/application.py:11 assets/models/asset.py:140 +#: assets/models/base.py:172 assets/models/cluster.py:18 +#: assets/models/cmd_filter.py:21 assets/models/domain.py:22 #: assets/models/group.py:20 assets/models/label.py:18 ops/mixin.py:24 #: orgs/models.py:23 perms/models/base.py:49 settings/models.py:29 #: terminal/models/storage.py:23 terminal/models/task.py:16 @@ -35,12 +35,12 @@ msgid "Name" msgstr "名称" #: acls/models/base.py:27 assets/models/cmd_filter.py:54 -#: assets/models/user.py:123 +#: assets/models/user.py:202 msgid "Priority" msgstr "优先级" #: acls/models/base.py:28 assets/models/cmd_filter.py:54 -#: assets/models/user.py:246 +#: assets/models/user.py:202 msgid "1-100, the lower the value will be match first" msgstr "优先级可选范围为 1-100 (数值越小越优先)" @@ -53,17 +53,17 @@ msgstr "激活中" # msgid "Date created" # msgstr "创建日期" #: acls/models/base.py:32 applications/models/application.py:24 -#: assets/models/asset.py:147 assets/models/asset.py:223 -#: assets/models/base.py:221 assets/models/cluster.py:29 +#: assets/models/asset.py:145 assets/models/asset.py:221 +#: assets/models/base.py:177 assets/models/cluster.py:29 #: assets/models/cmd_filter.py:23 assets/models/cmd_filter.py:64 -#: assets/models/domain.py:22 assets/models/domain.py:56 +#: assets/models/domain.py:23 assets/models/domain.py:54 #: assets/models/group.py:23 assets/models/label.py:23 ops/models/adhoc.py:37 #: orgs/models.py:26 perms/models/base.py:57 settings/models.py:34 -#: terminal/models/storage.py:29 terminal/models/storage.py:96 -#: terminal/models/terminal.py:114 tickets/models/ticket.py:73 -#: users/models/group.py:16 users/models/user.py:583 -#: xpack/plugins/change_auth_plan/models.py:77 xpack/plugins/cloud/models.py:35 -#: xpack/plugins/cloud/models.py:98 xpack/plugins/gathered_user/models.py:26 +#: terminal/models/storage.py:26 terminal/models/terminal.py:114 +#: tickets/models/ticket.py:73 users/models/group.py:16 +#: users/models/user.py:583 xpack/plugins/change_auth_plan/models.py:77 +#: xpack/plugins/cloud/models.py:35 xpack/plugins/cloud/models.py:98 +#: xpack/plugins/gathered_user/models.py:26 msgid "Comment" msgstr "备注" @@ -93,14 +93,14 @@ msgstr "动作" #: acls/models/login_acl.py:28 acls/models/login_asset_acl.py:20 #: acls/serializers/login_acl.py:33 assets/models/label.py:15 #: audits/models.py:36 audits/models.py:56 audits/models.py:69 -#: audits/serializers.py:94 authentication/models.py:44 +#: audits/serializers.py:93 authentication/models.py:44 #: authentication/models.py:97 orgs/models.py:18 orgs/models.py:418 #: perms/models/base.py:50 templates/index.html:78 #: terminal/backends/command/models.py:18 #: terminal/backends/command/serializers.py:12 terminal/models/session.py:38 #: tickets/models/comment.py:17 users/models/user.py:176 #: users/models/user.py:746 users/models/user.py:772 -#: users/serializers/group.py:20 +#: users/serializers/group.py:19 #: users/templates/users/user_asset_permission.html:38 #: users/templates/users/user_asset_permission.html:64 #: users/templates/users/user_database_app_permission.html:37 @@ -119,11 +119,11 @@ msgstr "系统用户" #: acls/models/login_asset_acl.py:22 #: applications/serializers/attrs/application_category/remote_app.py:33 -#: assets/models/asset.py:372 assets/models/authbook.py:17 +#: assets/models/asset.py:357 assets/models/authbook.py:16 #: assets/models/gathered_user.py:14 assets/serializers/admin_user.py:33 -#: assets/serializers/system_user.py:202 audits/models.py:38 -#: perms/models/asset_permission.py:99 templates/index.html:82 -#: terminal/backends/command/models.py:19 +#: assets/serializers/system_user.py:221 assets/serializers/system_user.py:246 +#: audits/models.py:38 perms/models/asset_permission.py:99 +#: templates/index.html:82 terminal/backends/command/models.py:19 #: terminal/backends/command/serializers.py:13 terminal/models/session.py:40 #: users/templates/users/user_asset_permission.html:40 #: users/templates/users/user_asset_permission.html:70 @@ -156,8 +156,8 @@ msgstr "" #: acls/serializers/login_acl.py:30 acls/serializers/login_asset_acl.py:31 #: applications/serializers/attrs/application_type/mysql_workbench.py:18 -#: assets/models/asset.py:183 assets/models/domain.py:52 -#: settings/serializers/settings.py:113 +#: assets/models/asset.py:181 assets/models/domain.py:50 +#: assets/serializers/account.py:11 settings/serializers/settings.py:113 #: users/templates/users/_granted_assets.html:26 #: users/templates/users/user_asset_permission.html:156 msgid "IP" @@ -177,13 +177,13 @@ msgstr "格式为逗号分隔的字符串, * 表示匹配所有. " #: 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:217 assets/models/gathered_user.py:15 +#: assets/models/base.py:173 assets/models/gathered_user.py:15 #: audits/models.py:100 authentication/forms.py:15 authentication/forms.py:17 #: ops/models/adhoc.py:148 users/forms/profile.py:31 users/models/user.py:548 #: users/templates/users/_select_user_modal.html:14 #: xpack/plugins/change_auth_plan/models.py:47 #: xpack/plugins/change_auth_plan/models.py:278 -#: xpack/plugins/cloud/serializers.py:51 +#: xpack/plugins/cloud/serializers.py:65 msgid "Username" msgstr "用户名" @@ -196,8 +196,9 @@ msgstr "" "格式为逗号分隔的字符串, * 表示匹配所有。例如: 192.168.10.1, 192.168.1.0/24, " "10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64 (支持网域)" -#: acls/serializers/login_asset_acl.py:35 assets/models/asset.py:184 -#: assets/serializers/gathered_user.py:23 settings/serializers/settings.py:112 +#: acls/serializers/login_asset_acl.py:35 assets/models/asset.py:182 +#: assets/serializers/account.py:12 assets/serializers/gathered_user.py:23 +#: settings/serializers/settings.py:112 #: users/templates/users/_granted_assets.html:25 #: users/templates/users/user_asset_permission.html:157 msgid "Hostname" @@ -209,9 +210,9 @@ msgid "" "options: {}" msgstr "格式为逗号分隔的字符串, * 表示匹配所有. 可选的协议有: {}" -#: acls/serializers/login_asset_acl.py:55 assets/models/asset.py:187 -#: assets/models/domain.py:54 assets/models/user.py:247 -#: terminal/serializers/session.py:32 terminal/serializers/storage.py:69 +#: acls/serializers/login_asset_acl.py:55 assets/models/asset.py:185 +#: assets/models/domain.py:52 assets/models/user.py:203 +#: terminal/serializers/session.py:30 terminal/serializers/storage.py:69 msgid "Protocol" msgstr "协议" @@ -231,7 +232,6 @@ msgstr "所有复核人都不属于组织 `{}`" #: applications/const.py:9 #: applications/serializers/attrs/application_category/db.py:14 #: applications/serializers/attrs/application_type/mysql_workbench.py:26 -#: assets/backends/db.py:279 msgid "Database" msgstr "数据库" @@ -252,17 +252,17 @@ msgid "Category" msgstr "类别" #: applications/models/application.py:16 assets/models/cmd_filter.py:53 -#: assets/models/user.py:245 perms/models/application_permission.py:23 +#: assets/models/user.py:201 perms/models/application_permission.py:23 #: perms/serializers/application/permission.py:17 #: perms/serializers/application/user_permission.py:34 -#: terminal/models/storage.py:47 terminal/models/storage.py:108 +#: terminal/models/storage.py:55 terminal/models/storage.py:116 #: tickets/models/ticket.py:38 #: tickets/serializers/ticket/meta/ticket_type/apply_application.py:27 msgid "Type" msgstr "类型" -#: applications/models/application.py:20 assets/models/asset.py:191 -#: assets/models/domain.py:27 assets/models/domain.py:55 +#: applications/models/application.py:20 assets/models/asset.py:189 +#: assets/models/domain.py:28 assets/models/domain.py:53 msgid "Domain" msgstr "网域" @@ -291,8 +291,8 @@ msgid "Application type" msgstr "应用类型" #: applications/serializers/application.py:87 -#: assets/serializers/system_user.py:49 assets/serializers/system_user.py:177 -#: assets/serializers/system_user.py:203 +#: assets/serializers/system_user.py:48 assets/serializers/system_user.py:196 +#: assets/serializers/system_user.py:222 msgid "Login mode display" msgstr "认证方式(显示名称)" @@ -302,7 +302,7 @@ msgid "Cluster" msgstr "集群" #: applications/serializers/attrs/application_category/db.py:11 -#: ops/models/adhoc.py:146 xpack/plugins/cloud/serializers.py:49 +#: ops/models/adhoc.py:146 xpack/plugins/cloud/serializers.py:63 msgid "Host" msgstr "主机" @@ -311,8 +311,8 @@ msgstr "主机" #: 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:188 assets/models/domain.py:53 -#: xpack/plugins/cloud/serializers.py:50 +#: assets/models/asset.py:186 assets/models/domain.py:51 +#: xpack/plugins/cloud/serializers.py:64 msgid "Port" msgstr "端口" @@ -332,7 +332,7 @@ msgstr "目标URL" #: 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:218 audits/signals_handler.py:58 +#: assets/models/base.py:174 audits/signals_handler.py:58 #: authentication/forms.py:22 #: authentication/templates/authentication/login.html:164 #: settings/serializers/settings.py:94 users/forms/profile.py:21 @@ -342,7 +342,7 @@ msgstr "目标URL" #: xpack/plugins/change_auth_plan/models.py:68 #: xpack/plugins/change_auth_plan/models.py:190 #: xpack/plugins/change_auth_plan/models.py:285 -#: xpack/plugins/cloud/serializers.py:53 +#: xpack/plugins/cloud/serializers.py:67 msgid "Password" msgstr "密码" @@ -370,135 +370,136 @@ msgstr "不能删除根节点 ({})" msgid "Deletion failed and the node contains assets" msgstr "删除失败,节点包含资产" -#: assets/models/asset.py:143 +#: assets/models/asset.py:141 msgid "Base" msgstr "基础" -#: assets/models/asset.py:144 +#: assets/models/asset.py:142 msgid "Charset" msgstr "编码" -#: assets/models/asset.py:145 assets/serializers/asset.py:180 +#: assets/models/asset.py:143 assets/serializers/asset.py:173 #: tickets/models/ticket.py:40 msgid "Meta" msgstr "元数据" -#: assets/models/asset.py:146 +#: assets/models/asset.py:144 msgid "Internal" msgstr "内部的" -#: assets/models/asset.py:166 assets/models/asset.py:190 -#: assets/serializers/asset.py:65 perms/serializers/asset/user_permission.py:43 +#: assets/models/asset.py:164 assets/models/asset.py:188 +#: assets/serializers/asset.py:63 perms/serializers/asset/user_permission.py:43 msgid "Platform" msgstr "系统平台" -#: assets/models/asset.py:189 assets/serializers/asset.py:70 +#: assets/models/asset.py:187 assets/serializers/asset.py:68 #: perms/serializers/asset/user_permission.py:41 msgid "Protocols" msgstr "协议组" -#: assets/models/asset.py:192 assets/models/user.py:237 +#: assets/models/asset.py:190 assets/models/user.py:193 #: perms/models/asset_permission.py:100 #: xpack/plugins/change_auth_plan/models.py:56 #: xpack/plugins/gathered_user/models.py:24 msgid "Nodes" msgstr "节点" -#: assets/models/asset.py:193 assets/models/cmd_filter.py:22 -#: assets/models/domain.py:57 assets/models/label.py:22 +#: assets/models/asset.py:191 assets/models/cmd_filter.py:22 +#: assets/models/domain.py:55 assets/models/label.py:22 #: authentication/models.py:46 msgid "Is active" msgstr "激活" -#: assets/models/asset.py:196 assets/models/cluster.py:19 -#: assets/models/user.py:234 assets/models/user.py:370 -#: assets/serializers/asset.py:68 templates/_nav.html:44 -#: xpack/plugins/cloud/models.py:92 xpack/plugins/cloud/serializers.py:146 +#: assets/models/asset.py:194 assets/models/cluster.py:19 +#: assets/models/user.py:190 assets/models/user.py:330 +#: assets/serializers/asset.py:66 assets/serializers/asset.py:168 +#: templates/_nav.html:44 xpack/plugins/cloud/models.py:92 +#: xpack/plugins/cloud/serializers.py:179 msgid "Admin user" msgstr "管理用户" -#: assets/models/asset.py:199 +#: assets/models/asset.py:197 msgid "Public IP" msgstr "公网IP" -#: assets/models/asset.py:200 +#: assets/models/asset.py:198 msgid "Asset number" msgstr "资产编号" -#: assets/models/asset.py:203 +#: assets/models/asset.py:201 msgid "Vendor" msgstr "制造商" -#: assets/models/asset.py:204 +#: assets/models/asset.py:202 msgid "Model" msgstr "型号" -#: assets/models/asset.py:205 +#: assets/models/asset.py:203 msgid "Serial number" msgstr "序列号" -#: assets/models/asset.py:207 +#: assets/models/asset.py:205 msgid "CPU model" msgstr "CPU型号" -#: assets/models/asset.py:208 +#: assets/models/asset.py:206 msgid "CPU count" msgstr "CPU数量" -#: assets/models/asset.py:209 +#: assets/models/asset.py:207 msgid "CPU cores" msgstr "CPU核数" -#: assets/models/asset.py:210 +#: assets/models/asset.py:208 msgid "CPU vcpus" msgstr "CPU总数" -#: assets/models/asset.py:211 +#: assets/models/asset.py:209 msgid "Memory" msgstr "内存" -#: assets/models/asset.py:212 +#: assets/models/asset.py:210 msgid "Disk total" msgstr "硬盘大小" -#: assets/models/asset.py:213 +#: assets/models/asset.py:211 msgid "Disk info" msgstr "硬盘信息" -#: assets/models/asset.py:215 +#: assets/models/asset.py:213 msgid "OS" msgstr "操作系统" -#: assets/models/asset.py:216 +#: assets/models/asset.py:214 msgid "OS version" msgstr "系统版本" -#: assets/models/asset.py:217 +#: assets/models/asset.py:215 msgid "OS arch" msgstr "系统架构" -#: assets/models/asset.py:218 +#: assets/models/asset.py:216 msgid "Hostname raw" msgstr "主机名原始" -#: assets/models/asset.py:220 templates/_nav.html:46 +#: assets/models/asset.py:218 templates/_nav.html:46 msgid "Labels" msgstr "标签管理" -#: assets/models/asset.py:221 assets/models/base.py:224 +#: assets/models/asset.py:219 assets/models/base.py:180 #: assets/models/cluster.py:28 assets/models/cmd_filter.py:26 #: assets/models/cmd_filter.py:67 assets/models/group.py:21 #: common/db/models.py:70 common/mixins/models.py:49 orgs/models.py:24 #: orgs/models.py:422 perms/models/base.py:55 users/models/user.py:591 -#: users/serializers/group.py:35 xpack/plugins/change_auth_plan/models.py:81 +#: users/serializers/group.py:33 xpack/plugins/change_auth_plan/models.py:81 #: xpack/plugins/cloud/models.py:104 xpack/plugins/gathered_user/models.py:30 msgid "Created by" msgstr "创建者" # msgid "Created by" # msgstr "创建者" -#: assets/models/asset.py:222 assets/models/base.py:222 -#: assets/models/cluster.py:26 assets/models/domain.py:24 +#: assets/models/asset.py:220 assets/models/base.py:178 +#: assets/models/cluster.py:26 assets/models/domain.py:25 #: assets/models/gathered_user.py:19 assets/models/group.py:22 #: assets/models/label.py:25 common/db/models.py:72 common/mixins/models.py:50 #: ops/models/adhoc.py:38 ops/models/command.py:29 orgs/models.py:25 @@ -507,7 +508,8 @@ msgstr "创建者" msgid "Date created" msgstr "创建日期" -#: assets/models/authbook.py:18 assets/models/user.py:321 audits/models.py:39 +#: assets/models/authbook.py:17 assets/models/user.py:281 +#: assets/serializers/system_user.py:237 audits/models.py:39 #: perms/models/application_permission.py:31 #: perms/models/asset_permission.py:101 templates/_nav.html:45 #: terminal/backends/command/models.py:20 @@ -521,31 +523,47 @@ msgstr "创建日期" msgid "System user" msgstr "系统用户" -#: assets/models/authbook.py:20 +#: assets/models/authbook.py:18 msgid "Version" msgstr "版本" -#: assets/models/authbook.py:21 -msgid "Latest version" -msgstr "最新版本" - -#: assets/models/authbook.py:38 +#: assets/models/authbook.py:24 msgid "AuthBook" msgstr "账号" -#: assets/models/base.py:219 xpack/plugins/change_auth_plan/models.py:72 +#: assets/models/base.py:30 assets/tasks/const.py:51 audits/utils.py:30 +msgid "Unknown" +msgstr "未知" + +#: assets/models/base.py:31 +msgid "Ok" +msgstr "成功" + +#: assets/models/base.py:32 audits/models.py:97 xpack/plugins/cloud/const.py:27 +msgid "Failed" +msgstr "失败" + +#: assets/models/base.py:38 +msgid "Connectivity" +msgstr "可连接性" + +#: assets/models/base.py:40 +msgid "Date verified" +msgstr "校验日期" + +#: assets/models/base.py:175 xpack/plugins/change_auth_plan/models.py:72 #: xpack/plugins/change_auth_plan/models.py:197 #: xpack/plugins/change_auth_plan/models.py:292 msgid "SSH private key" msgstr "SSH密钥" -#: assets/models/base.py:220 xpack/plugins/change_auth_plan/models.py:75 +#: assets/models/base.py:176 xpack/plugins/change_auth_plan/models.py:75 #: xpack/plugins/change_auth_plan/models.py:193 #: xpack/plugins/change_auth_plan/models.py:288 msgid "SSH public key" msgstr "SSH公钥" -#: assets/models/base.py:223 assets/models/gathered_user.py:20 +#: assets/models/base.py:179 assets/models/gathered_user.py:20 #: common/db/models.py:73 common/mixins/models.py:51 ops/models/adhoc.py:39 #: orgs/models.py:421 msgid "Date updated" @@ -593,7 +611,7 @@ msgstr "系统" msgid "Default Cluster" msgstr "默认Cluster" -#: assets/models/cmd_filter.py:33 assets/models/user.py:252 +#: assets/models/cmd_filter.py:33 assets/models/user.py:208 msgid "Command filter" msgstr "命令过滤器" @@ -634,11 +652,11 @@ msgstr "命令过滤规则" msgid "Command confirm" msgstr "命令复核" -#: assets/models/domain.py:64 +#: assets/models/domain.py:62 msgid "Gateway" msgstr "网关" -#: assets/models/domain.py:70 +#: assets/models/domain.py:68 msgid "Password should not contains special characters" msgstr "密码不能包含特殊字符" @@ -690,69 +708,73 @@ msgstr "全称" msgid "Parent key" msgstr "ssh私钥" -#: assets/models/node.py:559 assets/serializers/system_user.py:201 +#: assets/models/node.py:559 assets/serializers/system_user.py:220 #: 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:89 xpack/plugins/cloud/serializers.py:147 +#: xpack/plugins/cloud/models.py:89 xpack/plugins/cloud/serializers.py:180 msgid "Node" msgstr "节点" -#: assets/models/user.py:227 +#: assets/models/user.py:184 msgid "Automatic managed" msgstr "托管密码" -#: assets/models/user.py:228 +#: assets/models/user.py:185 msgid "Manually input" msgstr "手动输入" -#: assets/models/user.py:236 +#: assets/models/user.py:189 +msgid "Common user" +msgstr "普通用户" + +#: assets/models/user.py:192 msgid "Username same with user" msgstr "用户名与用户相同" -#: assets/models/user.py:239 assets/serializers/domain.py:30 +#: assets/models/user.py:195 assets/serializers/domain.py:29 #: templates/_nav.html:39 xpack/plugins/change_auth_plan/models.py:52 msgid "Assets" msgstr "资产" -#: assets/models/user.py:243 templates/_nav.html:17 +#: assets/models/user.py:199 templates/_nav.html:17 #: users/views/profile/password.py:43 users/views/profile/pubkey.py:37 msgid "Users" msgstr "用户管理" -#: assets/models/user.py:244 +#: assets/models/user.py:200 msgid "User groups" msgstr "用户组" -#: assets/models/user.py:248 +#: assets/models/user.py:204 msgid "Auto push" msgstr "自动推送" -#: assets/models/user.py:249 +#: assets/models/user.py:205 msgid "Sudo" msgstr "Sudo" -#: assets/models/user.py:250 +#: assets/models/user.py:206 msgid "Shell" msgstr "Shell" -#: assets/models/user.py:251 +#: assets/models/user.py:207 msgid "Login mode" msgstr "认证方式" -#: assets/models/user.py:253 +#: assets/models/user.py:209 msgid "SFTP Root" msgstr "SFTP根路径" -#: assets/models/user.py:254 authentication/models.py:95 +#: assets/models/user.py:210 authentication/models.py:95 msgid "Token" msgstr "" -#: assets/models/user.py:255 +#: assets/models/user.py:211 msgid "Home" msgstr "家目录" -#: assets/models/user.py:256 +#: assets/models/user.py:212 msgid "System groups" msgstr "用户组" @@ -761,69 +783,53 @@ msgstr "用户组" msgid "%(value)s is not an even number" msgstr "%(value)s is not an even number" -#: assets/models/utils.py:43 assets/tasks/const.py:49 -msgid "Unreachable" -msgstr "不可达" - -#: assets/models/utils.py:44 assets/tasks/const.py:50 -msgid "Reachable" -msgstr "可连接" - -#: assets/models/utils.py:45 assets/tasks/const.py:51 audits/utils.py:30 -msgid "Unknown" -msgstr "未知" - -#: assets/serializers/asset.py:22 +#: assets/serializers/asset.py:20 msgid "Protocol format should {}/{}" msgstr "协议格式 {}/{}" -#: assets/serializers/asset.py:39 +#: assets/serializers/asset.py:37 msgid "Protocol duplicate: {}" msgstr "协议重复: {}" -#: assets/serializers/asset.py:71 +#: assets/serializers/asset.py:69 msgid "Domain name" msgstr "网域名称" -#: assets/serializers/asset.py:72 perms/serializers/asset/permission.py:49 +#: assets/serializers/asset.py:70 perms/serializers/asset/permission.py:49 msgid "Nodes name" msgstr "节点名称" -#: assets/serializers/asset.py:107 +#: assets/serializers/asset.py:99 msgid "Hardware info" msgstr "硬件信息" -#: assets/serializers/asset.py:108 orgs/mixins/serializers.py:26 +#: assets/serializers/asset.py:100 orgs/mixins/serializers.py:26 msgid "Org name" msgstr "组织名称" -#: assets/serializers/asset.py:171 assets/serializers/asset.py:203 -msgid "Connectivity" -msgstr "连接" - -#: assets/serializers/base.py:47 +#: assets/serializers/base.py:41 msgid "private key invalid" msgstr "密钥不合法" -#: assets/serializers/domain.py:14 +#: assets/serializers/domain.py:13 msgid "Assets count" msgstr "资产数量" -#: assets/serializers/domain.py:15 +#: assets/serializers/domain.py:14 msgid "Applications count" msgstr "应用数量" -#: assets/serializers/domain.py:16 +#: assets/serializers/domain.py:15 msgid "Gateways count" msgstr "网关数量" -#: assets/serializers/label.py:13 assets/serializers/system_user.py:48 -#: assets/serializers/system_user.py:176 +#: assets/serializers/label.py:12 assets/serializers/system_user.py:47 +#: assets/serializers/system_user.py:195 #: perms/serializers/asset/permission.py:74 msgid "Assets amount" msgstr "资产数量" -#: assets/serializers/label.py:14 +#: assets/serializers/label.py:13 #: tickets/serializers/ticket/meta/ticket_type/apply_application.py:24 msgid "Category display" msgstr "类别 (显示名称)" @@ -840,12 +846,12 @@ msgstr "不能包含: /" msgid "The same level node name cannot be the same" msgstr "同级别节点名字不能重复" -#: assets/serializers/system_user.py:47 assets/serializers/system_user.py:175 +#: assets/serializers/system_user.py:46 assets/serializers/system_user.py:194 #: perms/serializers/asset/permission.py:75 msgid "Nodes amount" msgstr "节点数量" -#: assets/serializers/system_user.py:51 assets/serializers/system_user.py:179 +#: assets/serializers/system_user.py:50 assets/serializers/system_user.py:198 msgid "Ad domain" msgstr "Ad 网域" @@ -853,45 +859,45 @@ msgstr "Ad 网域" msgid "Username same with user with protocol {} only allow 1" msgstr "用户名和用户相同的一种协议只允许存在一个" -#: assets/serializers/system_user.py:103 +#: assets/serializers/system_user.py:102 msgid "* Automatic login mode must fill in the username." msgstr "自动登录模式,必须填写用户名" -#: assets/serializers/system_user.py:117 +#: assets/serializers/system_user.py:119 msgid "Path should starts with /" msgstr "路径应该以 / 开头" -#: assets/serializers/system_user.py:128 +#: assets/serializers/system_user.py:142 msgid "Password or private key required" msgstr "密码或密钥密码需要一个" -#: assets/tasks/admin_user_connectivity.py:58 -msgid "Test admin user connectivity period: {}" -msgstr "定期测试管理账号可连接性: {}" - -#: assets/tasks/admin_user_connectivity.py:67 -msgid "Test admin user connectivity: {}" -msgstr "测试管理帐号可连接性: {}" - -#: assets/tasks/asset_connectivity.py:27 -msgid "Test assets connectivity" -msgstr "测试资产可连接性" - -#: assets/tasks/asset_connectivity.py:76 assets/tasks/asset_connectivity.py:87 -msgid "Test assets connectivity: {}" -msgstr "测试资产可连接性: {}" - -#: assets/tasks/asset_connectivity.py:98 -msgid "Test if the assets under the node are connectable: {}" -msgstr "测试节点下资产是否可连接: {}" - -#: assets/tasks/asset_user_connectivity.py:30 +#: assets/tasks/account_connectivity.py:30 msgid "The asset {} system platform {} does not support run Ansible tasks" msgstr "资产 {} 系统平台 {} 不支持运行 Ansible 任务" -#: assets/tasks/asset_user_connectivity.py:102 -msgid "Test asset user connectivity: {}" -msgstr "测试资产用户可连接性: {}" +#: assets/tasks/account_connectivity.py:106 +msgid "Test account connectivity: {}" +msgstr "测试账号可连接性: {}" + +#: assets/tasks/asset_connectivity.py:49 +msgid "Test assets connectivity" +msgstr "测试资产可连接性" + +#: assets/tasks/asset_connectivity.py:91 assets/tasks/asset_connectivity.py:102 +msgid "Test assets connectivity: {}" +msgstr "测试资产可连接性: {}" + +#: assets/tasks/asset_connectivity.py:113 +msgid "Test if the assets under the node are connectable: {}" +msgstr "测试节点下资产是否可连接: {}" + +#: assets/tasks/const.py:49 +msgid "Unreachable" +msgstr "不可达" + +#: assets/tasks/const.py:50 +msgid "Reachable" +msgstr "可连接" #: assets/tasks/gather_asset_hardware_info.py:46 msgid "Get asset info failed: {}" @@ -1076,10 +1082,6 @@ msgstr "启用" msgid "-" msgstr "" -#: audits/models.py:97 xpack/plugins/cloud/const.py:25 -msgid "Failed" -msgstr "失败" - #: audits/models.py:101 msgid "Login type" msgstr "登录方式" @@ -1094,7 +1096,7 @@ msgstr "登录IP" msgid "Login city" msgstr "登录城市" -#: audits/models.py:104 audits/serializers.py:45 +#: audits/models.py:104 audits/serializers.py:44 msgid "User agent" msgstr "用户代理" @@ -1124,49 +1126,49 @@ msgstr "登录日期" msgid "Authentication backend" msgstr "认证方式" -#: audits/serializers.py:15 +#: audits/serializers.py:14 msgid "Operate for display" msgstr "操作(显示名称)" -#: audits/serializers.py:30 +#: audits/serializers.py:29 msgid "Type for display" msgstr "类型(显示名称)" -#: audits/serializers.py:31 +#: audits/serializers.py:30 msgid "Status for display" msgstr "状态(显示名称)" -#: audits/serializers.py:32 +#: audits/serializers.py:31 msgid "MFA for display" msgstr "多因子认证状态(显示名称)" -#: audits/serializers.py:76 audits/serializers.py:91 ops/models/adhoc.py:247 -#: terminal/serializers/session.py:37 +#: audits/serializers.py:75 audits/serializers.py:90 ops/models/adhoc.py:247 +#: terminal/serializers/session.py:35 msgid "Is success" msgstr "是否成功" -#: audits/serializers.py:78 +#: audits/serializers.py:77 msgid "Hosts for display" msgstr "主机 (显示名称)" -#: audits/serializers.py:90 ops/models/command.py:26 +#: audits/serializers.py:89 ops/models/command.py:26 #: xpack/plugins/cloud/models.py:155 msgid "Result" msgstr "结果" -#: audits/serializers.py:92 terminal/serializers/storage.py:195 +#: audits/serializers.py:91 terminal/serializers/storage.py:151 msgid "Hosts" msgstr "主机" -#: audits/serializers.py:93 +#: audits/serializers.py:92 msgid "Run as" msgstr "运行用户" -#: audits/serializers.py:95 +#: audits/serializers.py:94 msgid "Run as for display" msgstr "运行用户(显示名称)" -#: audits/serializers.py:96 +#: audits/serializers.py:95 msgid "User for display" msgstr "用户(显示名称)" @@ -1194,62 +1196,62 @@ msgstr "企业微信" msgid "DingTalk" msgstr "钉钉" -#: authentication/api/connection_token.py:255 +#: authentication/api/connection_token.py:258 msgid "Invalid token" msgstr "无效的令牌" -#: authentication/api/mfa.py:60 +#: authentication/api/mfa.py:64 msgid "Code is invalid" msgstr "Code无效" -#: authentication/backends/api.py:57 +#: authentication/backends/api.py:67 msgid "Invalid signature header. No credentials provided." msgstr "" -#: authentication/backends/api.py:60 +#: authentication/backends/api.py:70 msgid "Invalid signature header. Signature string should not contain spaces." msgstr "" -#: authentication/backends/api.py:67 +#: authentication/backends/api.py:77 msgid "Invalid signature header. Format like AccessKeyId:Signature" msgstr "" -#: authentication/backends/api.py:71 +#: authentication/backends/api.py:81 msgid "" "Invalid signature header. Signature string should not contain invalid " "characters." msgstr "" -#: authentication/backends/api.py:91 authentication/backends/api.py:107 +#: authentication/backends/api.py:101 authentication/backends/api.py:117 msgid "Invalid signature." msgstr "" -#: authentication/backends/api.py:98 +#: authentication/backends/api.py:108 msgid "HTTP header: Date not provide or not %a, %d %b %Y %H:%M:%S GMT" msgstr "" -#: authentication/backends/api.py:103 +#: authentication/backends/api.py:113 msgid "Expired, more than 15 minutes" msgstr "" -#: authentication/backends/api.py:110 +#: authentication/backends/api.py:120 msgid "User disabled." msgstr "用户已禁用" -#: authentication/backends/api.py:128 +#: authentication/backends/api.py:138 msgid "Invalid token header. No credentials provided." msgstr "" -#: authentication/backends/api.py:131 +#: authentication/backends/api.py:141 msgid "Invalid token header. Sign string should not contain spaces." msgstr "" -#: authentication/backends/api.py:138 +#: authentication/backends/api.py:148 msgid "" "Invalid token header. Sign string should not contain invalid characters." msgstr "" -#: authentication/backends/api.py:149 +#: authentication/backends/api.py:159 msgid "Invalid token or cache refreshed." msgstr "" @@ -1358,15 +1360,15 @@ msgstr "来源 IP 不被允许登录" msgid "SSO auth closed" msgstr "SSO 认证关闭了" -#: authentication/errors.py:273 authentication/mixins.py:271 +#: authentication/errors.py:273 authentication/mixins.py:276 msgid "Your password is too simple, please change it for security" msgstr "你的密码过于简单,为了安全,请修改" -#: authentication/errors.py:282 authentication/mixins.py:278 +#: authentication/errors.py:282 authentication/mixins.py:283 msgid "You should to change your password before login" msgstr "登录完成前,请先修改密码" -#: authentication/errors.py:291 authentication/mixins.py:285 +#: authentication/errors.py:291 authentication/mixins.py:290 msgid "Your password has expired, please reset before logging in" msgstr "您的密码已过期,先修改再登录" @@ -1383,7 +1385,7 @@ msgstr "{} 天内自动登录" msgid "MFA code" msgstr "多因子认证验证码" -#: authentication/mixins.py:261 +#: authentication/mixins.py:266 msgid "Please change your password" msgstr "请修改密码" @@ -1408,7 +1410,7 @@ msgid "docs" msgstr "文档" #: authentication/templates/authentication/_access_key_modal.html:30 -#: users/serializers/group.py:37 +#: users/serializers/group.py:35 msgid "ID" msgstr "ID" @@ -1821,7 +1823,7 @@ msgstr "等待任务开始" msgid "Not has host {} permission" msgstr "没有该主机 {} 权限" -#: ops/apps.py:9 ops/notifications.py:12 +#: ops/apps.py:9 ops/notifications.py:13 msgid "Operations" msgstr "运维" @@ -1834,7 +1836,7 @@ msgid "Regularly perform" msgstr "定期执行" #: ops/mixin.py:106 ops/mixin.py:147 -#: xpack/plugins/change_auth_plan/serializers.py:53 +#: xpack/plugins/change_auth_plan/serializers.py:51 msgid "Periodic perform" msgstr "定时执行" @@ -1920,7 +1922,7 @@ msgid "Time" msgstr "时间" #: ops/models/adhoc.py:246 ops/models/command.py:28 -#: terminal/serializers/session.py:41 +#: terminal/serializers/session.py:39 msgid "Is finished" msgstr "是否完成" @@ -1932,14 +1934,6 @@ msgstr "结果" msgid "Adhoc result summary" msgstr "汇总" -#: ops/models/adhoc.py:290 xpack/plugins/change_auth_plan/utils.py:137 -msgid "{} Start task: {}" -msgstr "{} 任务开始: {}" - -#: ops/models/adhoc.py:299 xpack/plugins/change_auth_plan/utils.py:149 -msgid "{} Task finish" -msgstr "{} 任务结束" - #: ops/models/command.py:31 msgid "Date finished" msgstr "结束日期" @@ -1948,19 +1942,19 @@ msgstr "结束日期" msgid "Task start" msgstr "任务开始" -#: ops/models/command.py:100 +#: ops/models/command.py:102 msgid "Command `{}` is forbidden ........" msgstr "命令 `{}` 不允许被执行 ......." -#: ops/models/command.py:113 +#: ops/models/command.py:115 msgid "Task end" msgstr "任务结束" -#: ops/notifications.py:13 +#: ops/notifications.py:14 msgid "Server performance" msgstr "监控告警" -#: ops/notifications.py:20 +#: ops/notifications.py:21 msgid "Disk used more than 80%: {} => {}" msgstr "磁盘使用率超过 80%: {} => {}" @@ -1989,7 +1983,7 @@ msgid "The organization have resource ({}) cannot be deleted" msgstr "组织存在资源 ({}) 不能被删除" #: orgs/mixins/models.py:45 orgs/mixins/serializers.py:25 orgs/models.py:36 -#: orgs/models.py:417 orgs/serializers.py:108 +#: orgs/models.py:417 orgs/serializers.py:106 #: tickets/serializers/ticket/ticket.py:83 msgid "Organization" msgstr "组织" @@ -2127,7 +2121,7 @@ msgstr "系统用户名称" msgid "Is valid" msgstr "账户是否有效" -#: perms/serializers/asset/permission.py:72 users/serializers/group.py:36 +#: perms/serializers/asset/permission.py:72 users/serializers/group.py:34 msgid "Users amount" msgstr "用户数量" @@ -2807,7 +2801,7 @@ msgid "File manager" msgstr "文件管理" #: templates/_nav.html:110 terminal/apps.py:9 -#: terminal/serializers/session.py:40 +#: terminal/serializers/session.py:38 msgid "Terminal" msgstr "终端" @@ -3241,11 +3235,11 @@ msgstr "命令存储" msgid "Replay storage" msgstr "录像存储" -#: terminal/notifications.py:48 +#: terminal/notifications.py:50 msgid "Danger command alert" msgstr "危险命令告警" -#: terminal/notifications.py:57 +#: terminal/notifications.py:59 #, python-format msgid "" "\n" @@ -3275,18 +3269,18 @@ msgstr "" "
\n" " " -#: terminal/notifications.py:92 +#: terminal/notifications.py:94 #, python-format msgid "" "Insecure Command Alert: [%(name)s->%(login_from)s@%(remote_addr)s] $" "%(command)s" msgstr "危险命令告警: [%(name)s->%(login_from)s@%(remote_addr)s] $%(command)s" -#: terminal/notifications.py:110 +#: terminal/notifications.py:112 msgid "Batch danger command alert" msgstr "批量危险命令告警" -#: terminal/notifications.py:121 +#: terminal/notifications.py:123 #, python-format msgid "" "\n" @@ -3317,32 +3311,32 @@ msgstr "" " ----------------- 命令 ----------------
\n" " " -#: terminal/notifications.py:146 +#: terminal/notifications.py:148 #, python-format msgid "Insecure Web Command Execution Alert: [%(name)s]" msgstr "批量危险命令告警: [%(name)s]" -#: terminal/serializers/session.py:33 +#: terminal/serializers/session.py:31 msgid "User ID" msgstr "用户 ID" -#: terminal/serializers/session.py:34 +#: terminal/serializers/session.py:32 msgid "Asset ID" msgstr "资产 ID" -#: terminal/serializers/session.py:35 +#: terminal/serializers/session.py:33 msgid "System user ID" msgstr "系统用户 ID" -#: terminal/serializers/session.py:36 +#: terminal/serializers/session.py:34 msgid "Login from for display" msgstr "登录来源(显示名称)" -#: terminal/serializers/session.py:38 +#: terminal/serializers/session.py:36 msgid "Can replay" msgstr "是否可重放" -#: terminal/serializers/session.py:39 +#: terminal/serializers/session.py:37 msgid "Can join" msgstr "是否可加入" @@ -3387,27 +3381,27 @@ msgstr "账户密钥" msgid "Endpoint suffix" msgstr "端点后缀" -#: terminal/serializers/storage.py:172 +#: terminal/serializers/storage.py:128 msgid "The address format is incorrect" msgstr "地址格式不正确" -#: terminal/serializers/storage.py:179 +#: terminal/serializers/storage.py:135 msgid "Host invalid" msgstr "主机无效" -#: terminal/serializers/storage.py:182 +#: terminal/serializers/storage.py:138 msgid "Port invalid" msgstr "端口无效" -#: terminal/serializers/storage.py:198 +#: terminal/serializers/storage.py:154 msgid "Index" msgstr "索引" -#: terminal/serializers/storage.py:200 +#: terminal/serializers/storage.py:156 msgid "Doc type" msgstr "文档类型" -#: terminal/serializers/storage.py:202 +#: terminal/serializers/storage.py:158 msgid "Ignore Certificate Verification" msgstr "忽略证书认证" @@ -3966,7 +3960,7 @@ msgid "Set password" msgstr "设置密码" #: users/serializers/user.py:27 xpack/plugins/change_auth_plan/models.py:61 -#: xpack/plugins/change_auth_plan/serializers.py:30 +#: xpack/plugins/change_auth_plan/serializers.py:29 msgid "Password strategy" msgstr "密码策略" @@ -4031,7 +4025,7 @@ msgid "Security token validation" msgstr "安全令牌验证" #: users/templates/users/_base_otp.html:14 xpack/plugins/cloud/models.py:78 -#: xpack/plugins/cloud/serializers.py:145 +#: xpack/plugins/cloud/serializers.py:178 msgid "Account" msgstr "账户" @@ -4660,31 +4654,31 @@ msgstr "步骤" msgid "Change auth plan task" msgstr "改密计划任务" -#: xpack/plugins/change_auth_plan/serializers.py:54 +#: xpack/plugins/change_auth_plan/serializers.py:52 msgid "Run times" msgstr "执行次数" -#: xpack/plugins/change_auth_plan/serializers.py:70 +#: xpack/plugins/change_auth_plan/serializers.py:68 msgid "* Please enter custom password" msgstr "* 请输入自定义密码" -#: xpack/plugins/change_auth_plan/serializers.py:80 +#: xpack/plugins/change_auth_plan/serializers.py:78 msgid "* Please enter the correct password length" msgstr "* 请输入正确的密码长度" -#: xpack/plugins/change_auth_plan/serializers.py:83 +#: xpack/plugins/change_auth_plan/serializers.py:81 msgid "* Password length range 6-30 bits" msgstr "* 密码长度范围 6-30 位" -#: xpack/plugins/change_auth_plan/utils.py:437 +#: xpack/plugins/change_auth_plan/utils.py:442 msgid "Invalid/incorrect password" msgstr "无效/错误 密码" -#: xpack/plugins/change_auth_plan/utils.py:439 +#: xpack/plugins/change_auth_plan/utils.py:444 msgid "Failed to connect to the host" msgstr "连接主机失败" -#: xpack/plugins/change_auth_plan/utils.py:441 +#: xpack/plugins/change_auth_plan/utils.py:446 msgid "Data could not be sent to remote" msgstr "无法将数据发送到远程" @@ -4732,31 +4726,39 @@ msgstr "" msgid "Nutanix" msgstr "" -#: xpack/plugins/cloud/const.py:20 +#: xpack/plugins/cloud/const.py:17 +msgid "Huawei Private Cloud" +msgstr "华为私有云" + +#: xpack/plugins/cloud/const.py:18 +msgid "Qingyun Private Cloud" +msgstr "青云私有云" + +#: xpack/plugins/cloud/const.py:22 msgid "Instance name" msgstr "实例名称" -#: xpack/plugins/cloud/const.py:21 +#: xpack/plugins/cloud/const.py:23 msgid "Instance name and Partial IP" msgstr "实例名称和部分IP" -#: xpack/plugins/cloud/const.py:26 +#: xpack/plugins/cloud/const.py:28 msgid "Succeed" msgstr "成功" -#: xpack/plugins/cloud/const.py:30 +#: xpack/plugins/cloud/const.py:32 msgid "Unsync" msgstr "未同步" -#: xpack/plugins/cloud/const.py:31 +#: xpack/plugins/cloud/const.py:33 msgid "New Sync" msgstr "新同步" -#: xpack/plugins/cloud/const.py:32 +#: xpack/plugins/cloud/const.py:34 msgid "Synced" msgstr "已同步" -#: xpack/plugins/cloud/const.py:33 +#: xpack/plugins/cloud/const.py:35 msgid "Released" msgstr "已释放" @@ -4772,7 +4774,7 @@ msgstr "云服务商" msgid "Cloud account" msgstr "云账号" -#: xpack/plugins/cloud/models.py:81 xpack/plugins/cloud/serializers.py:126 +#: xpack/plugins/cloud/models.py:81 xpack/plugins/cloud/serializers.py:160 msgid "Regions" msgstr "地域" @@ -4780,7 +4782,7 @@ msgstr "地域" msgid "Hostname strategy" msgstr "主机名策略" -#: xpack/plugins/cloud/models.py:95 xpack/plugins/cloud/serializers.py:149 +#: xpack/plugins/cloud/models.py:95 xpack/plugins/cloud/serializers.py:182 msgid "Always update" msgstr "总是更新" @@ -4972,20 +4974,28 @@ msgstr "" msgid "Subscription ID" msgstr "" -#: xpack/plugins/cloud/serializers.py:124 +#: xpack/plugins/cloud/serializers.py:49 +msgid "This field is required" +msgstr "这个字段是必填项" + +#: xpack/plugins/cloud/serializers.py:83 xpack/plugins/cloud/serializers.py:87 +msgid "API Endpoint" +msgstr "API 端点" + +#: xpack/plugins/cloud/serializers.py:158 msgid "History count" msgstr "执行次数" -#: xpack/plugins/cloud/serializers.py:125 +#: xpack/plugins/cloud/serializers.py:159 msgid "Instance count" msgstr "实例个数" -#: xpack/plugins/cloud/serializers.py:148 +#: xpack/plugins/cloud/serializers.py:181 #: xpack/plugins/gathered_user/serializers.py:20 msgid "Periodic display" msgstr "定时执行" -#: xpack/plugins/cloud/utils.py:64 +#: xpack/plugins/cloud/utils.py:65 msgid "Account unavailable" msgstr "账户无效" @@ -5073,6 +5083,24 @@ msgstr "旗舰版" msgid "Community edition" msgstr "社区版" +#~ msgid "Latest version" +#~ msgstr "最新版本" + +#~ msgid "Test admin user connectivity period: {}" +#~ msgstr "定期测试管理账号可连接性: {}" + +#~ msgid "Test admin user connectivity: {}" +#~ msgstr "测试管理帐号可连接性: {}" + +#~ msgid "Test asset user connectivity: {}" +#~ msgstr "测试资产用户可连接性: {}" + +#~ msgid "{} Start task: {}" +#~ msgstr "{} 任务开始: {}" + +#~ msgid "{} Task finish" +#~ msgstr "{} 任务结束" + #~ msgid "Deleted failed, There are related assets" #~ msgstr "删除失败,存在关联资产" @@ -5094,14 +5122,5 @@ msgstr "社区版" #~ msgid "Backend" #~ msgstr "后端" -#~ msgid "Huawei Private Cloud" -#~ msgstr "华为私有云" - -#~ msgid "This field is required" -#~ msgstr "这个字段是必填项" - -#~ msgid "API Endpoint" -#~ msgstr "API 端点" - #~ msgid "Terminal command alert" #~ msgstr "终端命令告警" diff --git a/apps/locale/zh/LC_MESSAGES/djangojs.mo b/apps/locale/zh/LC_MESSAGES/djangojs.mo index 24e68caf523648ed333a85c565401a6fbac6a37e..4bd390695a945e5f13744670c777354e7d85cc70 100644 GIT binary patch delta 312 zcmXZWzY76j7zgm@kRO*HB}y1940QG0p`77T$Y8xdGq6mDP<9-({S9Y&x7-NWB7 z4omWX-e9|IAI_0m@;>d^`Ub>PEs2^C`;-6a F{Q~9OCL#a; delta 273 zcmXZWKMnyw6oB!!OV;kjzlh1o5`~h4LM73PBe(!}(Cr1pDRc^Aqfprch)$u=XjN*3 zZ+O*j^1hkOdzhoyx11z$L{^?iQ$#iekve8L#2b<%@c&lT2#d_yIKm!IaG`yx{h*%J z3kKY~V*{VQB)`K)2Zm}xA1gRT`_T+zoMRai?BW{jf+s9thIa8Q*3b?A?~U3~2e_n< N!!&kx`Sk6*a$nFs8a@C3