From c1ca48a32ab46196405ddb82f046278ab9dffafd Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 15 Jul 2021 18:09:29 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BF=AE=E6=94=B9i18n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/serializers/asset.py | 1 + apps/audits/serializers.py | 14 +- apps/locale/zh/LC_MESSAGES/django.mo | Bin 76217 -> 75919 bytes apps/locale/zh/LC_MESSAGES/django.po | 215 +++++++++--------- apps/terminal/backends/command/serializers.py | 2 +- apps/terminal/serializers/session.py | 2 +- apps/users/serializers/user.py | 2 +- 7 files changed, 115 insertions(+), 121 deletions(-) diff --git a/apps/assets/serializers/asset.py b/apps/assets/serializers/asset.py index 6ed7990c8..502511ae2 100644 --- a/apps/assets/serializers/asset.py +++ b/apps/assets/serializers/asset.py @@ -95,6 +95,7 @@ class AssetSerializer(BulkOrgResourceModelSerializer): 'port': {'write_only': True}, 'hardware_info': {'label': _('Hardware info')}, 'org_name': {'label': _('Org name')}, + 'admin_user_display': {'label', _('Admin user display')} } def get_fields(self): diff --git a/apps/audits/serializers.py b/apps/audits/serializers.py index 800176d37..c83518285 100644 --- a/apps/audits/serializers.py +++ b/apps/audits/serializers.py @@ -11,7 +11,7 @@ from . import models class FTPLogSerializer(serializers.ModelSerializer): - operate_display = serializers.ReadOnlyField(source='get_operate_display', label=_('Operate for display')) + operate_display = serializers.ReadOnlyField(source='get_operate_display', label=_('Operate display')) class Meta: model = models.FTPLog @@ -26,9 +26,9 @@ class FTPLogSerializer(serializers.ModelSerializer): class UserLoginLogSerializer(serializers.ModelSerializer): - type_display = serializers.ReadOnlyField(source='get_type_display', label=_('Type for display')) - status_display = serializers.ReadOnlyField(source='get_status_display', label=_('Status for display')) - mfa_display = serializers.ReadOnlyField(source='get_mfa_display', label=_('MFA for display')) + type_display = serializers.ReadOnlyField(source='get_type_display', label=_('Type display')) + status_display = serializers.ReadOnlyField(source='get_status_display', label=_('Status display')) + mfa_display = serializers.ReadOnlyField(source='get_mfa_display', label=_('MFA display')) class Meta: model = models.UserLoginLog @@ -74,7 +74,7 @@ class SessionAuditSerializer(serializers.ModelSerializer): class CommandExecutionSerializer(serializers.ModelSerializer): is_success = serializers.BooleanField(read_only=True, label=_('Is success')) hosts_display = serializers.ListSerializer( - child=serializers.CharField(), source='hosts', read_only=True, label=_('Hosts for display') + child=serializers.CharField(), source='hosts', read_only=True, label=_('Hosts display') ) class Meta: @@ -91,8 +91,8 @@ class CommandExecutionSerializer(serializers.ModelSerializer): 'hosts': {'label': _('Hosts')}, # 外键,会生成 sql。不在 model 上修改 'run_as': {'label': _('Run as')}, 'user': {'label': _('User')}, - 'run_as_display': {'label': _('Run as for display')}, - 'user_display': {'label': _('User for display')}, + 'run_as_display': {'label': _('Run as display')}, + 'user_display': {'label': _('User display')}, } @classmethod diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index bfe44878a3827be3ff86222e1b1066d711988e33..af23010136102c977ce6e0bf552c10b65942e0f9 100644 GIT binary patch delta 22341 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 delta 22635 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\n" "Language-Team: JumpServer team\n" @@ -18,7 +18,7 @@ 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:140 +#: applications/models/application.py:11 assets/models/asset.py:139 #: 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 @@ -53,7 +53,7 @@ msgstr "激活中" # msgid "Date created" # msgstr "创建日期" #: acls/models/base.py:32 applications/models/application.py:24 -#: assets/models/asset.py:145 assets/models/asset.py:221 +#: assets/models/asset.py:144 assets/models/asset.py:220 #: 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:23 assets/models/domain.py:54 @@ -119,11 +119,10 @@ msgstr "系统用户" #: acls/models/login_asset_acl.py:22 #: applications/serializers/attrs/application_category/remote_app.py:33 -#: assets/models/asset.py:357 assets/models/authbook.py:15 -#: assets/models/gathered_user.py:14 assets/serializers/admin_user.py:33 -#: assets/serializers/system_user.py:223 audits/models.py:38 -#: perms/models/asset_permission.py:99 templates/index.html:82 -#: terminal/backends/command/models.py:19 +#: assets/models/asset.py:350 assets/models/authbook.py:15 +#: assets/models/gathered_user.py:14 assets/serializers/system_user.py:196 +#: 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,7 +155,7 @@ 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:181 assets/models/domain.py:50 +#: assets/models/asset.py:180 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 @@ -196,7 +195,7 @@ 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:182 +#: acls/serializers/login_asset_acl.py:35 assets/models/asset.py:181 #: assets/serializers/account.py:12 assets/serializers/gathered_user.py:23 #: settings/serializers/settings.py:112 #: users/templates/users/_granted_assets.html:25 @@ -210,7 +209,7 @@ msgid "" "options: {}" msgstr "格式为逗号分隔的字符串, * 表示匹配所有. 可选的协议有: {}" -#: acls/serializers/login_asset_acl.py:55 assets/models/asset.py:185 +#: acls/serializers/login_asset_acl.py:55 assets/models/asset.py:184 #: assets/models/domain.py:52 assets/models/user.py:203 #: terminal/serializers/session.py:30 terminal/serializers/storage.py:69 msgid "Protocol" @@ -261,7 +260,7 @@ msgstr "类别" msgid "Type" msgstr "类型" -#: applications/models/application.py:20 assets/models/asset.py:189 +#: applications/models/application.py:20 assets/models/asset.py:188 #: assets/models/domain.py:28 assets/models/domain.py:53 msgid "Domain" msgstr "网域" @@ -291,8 +290,7 @@ msgid "Application type" msgstr "应用类型" #: applications/serializers/application.py:87 -#: assets/serializers/system_user.py:49 assets/serializers/system_user.py:198 -#: assets/serializers/system_user.py:224 +#: assets/serializers/system_user.py:49 assets/serializers/system_user.py:197 msgid "Login mode display" msgstr "认证方式(显示名称)" @@ -311,7 +309,7 @@ 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:186 assets/models/domain.py:51 +#: assets/models/asset.py:185 assets/models/domain.py:51 #: xpack/plugins/cloud/serializers.py:64 msgid "Port" msgstr "端口" @@ -370,123 +368,121 @@ msgstr "不能删除根节点 ({})" msgid "Deletion failed and the node contains assets" msgstr "删除失败,节点包含资产" -#: assets/models/asset.py:141 +#: assets/models/asset.py:140 msgid "Base" msgstr "基础" -#: assets/models/asset.py:142 +#: assets/models/asset.py:141 msgid "Charset" msgstr "编码" -#: assets/models/asset.py:143 assets/serializers/asset.py:176 +#: assets/models/asset.py:142 assets/serializers/asset.py:161 #: tickets/models/ticket.py:40 msgid "Meta" msgstr "元数据" -#: assets/models/asset.py:144 +#: assets/models/asset.py:143 msgid "Internal" msgstr "内部的" -#: assets/models/asset.py:164 assets/models/asset.py:188 +#: assets/models/asset.py:163 assets/models/asset.py:187 #: assets/serializers/asset.py:63 perms/serializers/asset/user_permission.py:43 msgid "Platform" msgstr "系统平台" -#: assets/models/asset.py:187 assets/serializers/asset.py:68 +#: assets/models/asset.py:186 assets/serializers/asset.py:65 #: perms/serializers/asset/user_permission.py:41 msgid "Protocols" msgstr "协议组" -#: assets/models/asset.py:190 assets/models/user.py:193 +#: assets/models/asset.py:189 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:191 assets/models/cmd_filter.py:22 +#: assets/models/asset.py:190 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:194 assets/models/cluster.py:19 -#: assets/models/user.py:190 assets/models/user.py:325 -#: 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 +#: assets/models/asset.py:193 assets/models/cluster.py:19 +#: assets/models/user.py:190 assets/models/user.py:325 templates/_nav.html:44 +#: xpack/plugins/cloud/models.py:92 xpack/plugins/cloud/serializers.py:179 msgid "Admin user" msgstr "管理用户" -#: assets/models/asset.py:197 +#: assets/models/asset.py:196 msgid "Public IP" msgstr "公网IP" -#: assets/models/asset.py:198 +#: assets/models/asset.py:197 msgid "Asset number" msgstr "资产编号" -#: assets/models/asset.py:201 +#: assets/models/asset.py:200 msgid "Vendor" msgstr "制造商" -#: assets/models/asset.py:202 +#: assets/models/asset.py:201 msgid "Model" msgstr "型号" -#: assets/models/asset.py:203 +#: assets/models/asset.py:202 msgid "Serial number" msgstr "序列号" -#: assets/models/asset.py:205 +#: assets/models/asset.py:204 msgid "CPU model" msgstr "CPU型号" -#: assets/models/asset.py:206 +#: assets/models/asset.py:205 msgid "CPU count" msgstr "CPU数量" -#: assets/models/asset.py:207 +#: assets/models/asset.py:206 msgid "CPU cores" msgstr "CPU核数" -#: assets/models/asset.py:208 +#: assets/models/asset.py:207 msgid "CPU vcpus" msgstr "CPU总数" -#: assets/models/asset.py:209 +#: assets/models/asset.py:208 msgid "Memory" msgstr "内存" -#: assets/models/asset.py:210 +#: assets/models/asset.py:209 msgid "Disk total" msgstr "硬盘大小" -#: assets/models/asset.py:211 +#: assets/models/asset.py:210 msgid "Disk info" msgstr "硬盘信息" -#: assets/models/asset.py:213 +#: assets/models/asset.py:212 msgid "OS" msgstr "操作系统" -#: assets/models/asset.py:214 +#: assets/models/asset.py:213 msgid "OS version" msgstr "系统版本" -#: assets/models/asset.py:215 +#: assets/models/asset.py:214 msgid "OS arch" msgstr "系统架构" -#: assets/models/asset.py:216 +#: assets/models/asset.py:215 msgid "Hostname raw" msgstr "主机名原始" -#: assets/models/asset.py:218 templates/_nav.html:46 +#: assets/models/asset.py:217 templates/_nav.html:46 msgid "Labels" msgstr "标签管理" -#: assets/models/asset.py:219 assets/models/base.py:180 +#: assets/models/asset.py:218 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 @@ -498,7 +494,7 @@ msgstr "创建者" # msgid "Created by" # msgstr "创建者" -#: assets/models/asset.py:220 assets/models/base.py:178 +#: assets/models/asset.py:219 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 @@ -707,7 +703,7 @@ msgstr "全称" msgid "Parent key" msgstr "ssh私钥" -#: assets/models/node.py:559 assets/serializers/system_user.py:222 +#: assets/models/node.py:559 assets/serializers/system_user.py:195 #: users/templates/users/user_asset_permission.html:41 #: users/templates/users/user_asset_permission.html:73 #: users/templates/users/user_asset_permission.html:158 @@ -790,22 +786,27 @@ msgstr "协议格式 {}/{}" msgid "Protocol duplicate: {}" msgstr "协议重复: {}" -#: assets/serializers/asset.py:69 +#: assets/serializers/asset.py:66 msgid "Domain name" msgstr "网域名称" -#: assets/serializers/asset.py:70 perms/serializers/asset/permission.py:49 +#: assets/serializers/asset.py:67 perms/serializers/asset/permission.py:49 msgid "Nodes name" msgstr "节点名称" -#: assets/serializers/asset.py:99 +#: assets/serializers/asset.py:96 msgid "Hardware info" msgstr "硬件信息" -#: assets/serializers/asset.py:100 orgs/mixins/serializers.py:26 +#: assets/serializers/asset.py:97 assets/serializers/system_user.py:213 +#: orgs/mixins/serializers.py:26 msgid "Org name" msgstr "组织名称" +#: assets/serializers/asset.py:98 +msgid "Admin user display" +msgstr "管理用户名称" + #: assets/serializers/base.py:41 msgid "private key invalid" msgstr "密钥不合法" @@ -823,7 +824,6 @@ msgid "Gateways count" msgstr "网关数量" #: assets/serializers/label.py:12 assets/serializers/system_user.py:48 -#: assets/serializers/system_user.py:197 #: perms/serializers/asset/permission.py:74 msgid "Assets amount" msgstr "资产数量" @@ -831,7 +831,7 @@ msgstr "资产数量" #: assets/serializers/label.py:13 #: tickets/serializers/ticket/meta/ticket_type/apply_application.py:24 msgid "Category display" -msgstr "类别 (显示名称)" +msgstr "类别名称" #: assets/serializers/node.py:18 msgid "value" @@ -845,16 +845,22 @@ msgstr "不能包含: /" msgid "The same level node name cannot be the same" msgstr "同级别节点名字不能重复" +#: assets/serializers/system_user.py:25 audits/serializers.py:29 +#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:31 +#: tickets/serializers/ticket/ticket.py:19 +msgid "Type display" +msgstr "类型名称" + #: assets/serializers/system_user.py:26 msgid "SSH key fingerprint" msgstr "密钥指纹" -#: assets/serializers/system_user.py:47 assets/serializers/system_user.py:196 +#: assets/serializers/system_user.py:47 #: perms/serializers/asset/permission.py:75 msgid "Nodes amount" msgstr "节点数量" -#: assets/serializers/system_user.py:51 assets/serializers/system_user.py:200 +#: assets/serializers/system_user.py:51 msgid "Ad domain" msgstr "Ad 网域" @@ -874,11 +880,11 @@ msgstr "路径应该以 / 开头" msgid "Password or private key required" msgstr "密码或密钥密码需要一个" -#: assets/serializers/system_user.py:239 +#: assets/serializers/system_user.py:212 msgid "System user name" msgstr "系统用户名称" -#: assets/serializers/system_user.py:248 +#: assets/serializers/system_user.py:222 msgid "Asset hostname" msgstr "资产主机名" @@ -1141,29 +1147,25 @@ msgid "Authentication backend" msgstr "认证方式" #: audits/serializers.py:14 -msgid "Operate for display" -msgstr "操作(显示名称)" +msgid "Operate display" +msgstr "操作名称" -#: audits/serializers.py:29 -msgid "Type for display" -msgstr "类型(显示名称)" - -#: audits/serializers.py:30 -msgid "Status for display" -msgstr "状态(显示名称)" +#: audits/serializers.py:30 tickets/serializers/ticket/ticket.py:24 +msgid "Status display" +msgstr "状态名称" #: audits/serializers.py:31 -msgid "MFA for display" -msgstr "多因子认证状态(显示名称)" +msgid "MFA display" +msgstr "多因子认证" -#: audits/serializers.py:75 audits/serializers.py:90 ops/models/adhoc.py:247 +#: audits/serializers.py:75 audits/serializers.py:90 ops/models/adhoc.py:248 #: terminal/serializers/session.py:35 msgid "Is success" msgstr "是否成功" #: audits/serializers.py:77 -msgid "Hosts for display" -msgstr "主机 (显示名称)" +msgid "Hosts display" +msgstr "主机名称" #: audits/serializers.py:89 ops/models/command.py:26 #: xpack/plugins/cloud/models.py:155 @@ -1179,12 +1181,12 @@ msgid "Run as" msgstr "运行用户" #: audits/serializers.py:94 -msgid "Run as for display" -msgstr "运行用户(显示名称)" +msgid "Run as display" +msgstr "运行用户" #: audits/serializers.py:95 -msgid "User for display" -msgstr "用户(显示名称)" +msgid "User display" +msgstr "用户" #: audits/signals_handler.py:57 msgid "SSH Key" @@ -1374,15 +1376,15 @@ msgstr "来源 IP 不被允许登录" msgid "SSO auth closed" msgstr "SSO 认证关闭了" -#: authentication/errors.py:273 authentication/mixins.py:276 +#: authentication/errors.py:273 authentication/mixins.py:277 msgid "Your password is too simple, please change it for security" msgstr "你的密码过于简单,为了安全,请修改" -#: authentication/errors.py:282 authentication/mixins.py:283 +#: authentication/errors.py:282 authentication/mixins.py:284 msgid "You should to change your password before login" msgstr "登录完成前,请先修改密码" -#: authentication/errors.py:291 authentication/mixins.py:290 +#: authentication/errors.py:291 authentication/mixins.py:291 msgid "Your password has expired, please reset before logging in" msgstr "您的密码已过期,先修改再登录" @@ -1399,7 +1401,7 @@ msgstr "{} 天内自动登录" msgid "MFA code" msgstr "多因子认证验证码" -#: authentication/mixins.py:266 +#: authentication/mixins.py:267 msgid "Please change your password" msgstr "请修改密码" @@ -1905,46 +1907,46 @@ msgstr "选项" msgid "Run as admin" msgstr "再次执行" -#: ops/models/adhoc.py:149 +#: ops/models/adhoc.py:150 msgid "Become" msgstr "Become" -#: ops/models/adhoc.py:150 +#: ops/models/adhoc.py:151 msgid "Create by" msgstr "创建者" -#: ops/models/adhoc.py:239 +#: ops/models/adhoc.py:240 msgid "Task display" msgstr "任务展示" -#: ops/models/adhoc.py:241 +#: ops/models/adhoc.py:242 msgid "Host amount" msgstr "主机数量" -#: ops/models/adhoc.py:243 +#: ops/models/adhoc.py:244 msgid "Start time" msgstr "开始时间" -#: ops/models/adhoc.py:244 +#: ops/models/adhoc.py:245 msgid "End time" msgstr "完成时间" -#: ops/models/adhoc.py:245 xpack/plugins/change_auth_plan/models.py:180 +#: ops/models/adhoc.py:246 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:246 ops/models/command.py:28 +#: ops/models/adhoc.py:247 ops/models/command.py:28 #: terminal/serializers/session.py:39 msgid "Is finished" msgstr "是否完成" -#: ops/models/adhoc.py:248 +#: ops/models/adhoc.py:249 msgid "Adhoc raw result" msgstr "结果" -#: ops/models/adhoc.py:249 +#: ops/models/adhoc.py:250 msgid "Adhoc result summary" msgstr "汇总" @@ -3145,7 +3147,7 @@ msgid "Session ID" msgstr "会话ID" #: terminal/backends/command/serializers.py:19 -msgid "Risk level for display" +msgid "Risk level display" msgstr "风险等级(显示名称)" #: terminal/backends/command/serializers.py:21 @@ -3343,8 +3345,8 @@ msgid "System user ID" msgstr "系统用户 ID" #: terminal/serializers/session.py:34 -msgid "Login from for display" -msgstr "登录来源(显示名称)" +msgid "Login from display" +msgstr "登录来源名称" #: terminal/serializers/session.py:36 msgid "Can replay" @@ -3636,7 +3638,7 @@ msgstr "申请人" #: tickets/models/ticket.py:55 msgid "Applicant display" -msgstr "申请人 (显示名称)" +msgstr "申请人名称" #: tickets/models/ticket.py:60 msgid "Processor" @@ -3644,7 +3646,7 @@ msgstr "处理人" #: tickets/models/ticket.py:63 msgid "Processor display" -msgstr "处理人 (显示名称)" +msgstr "处理人名称" #: tickets/models/ticket.py:67 msgid "Assignees" @@ -3652,12 +3654,7 @@ msgstr "受理人" #: tickets/models/ticket.py:70 msgid "Assignees display" -msgstr "受理人 (显示名称)" - -#: tickets/serializers/ticket/meta/ticket_type/apply_application.py:31 -#: tickets/serializers/ticket/ticket.py:19 -msgid "Type display" -msgstr "类型 (显示名称)" +msgstr "受理人名称" #: tickets/serializers/ticket/meta/ticket_type/apply_application.py:35 msgid "Application group" @@ -3679,7 +3676,7 @@ msgstr "批准的应用" #: tickets/serializers/ticket/meta/ticket_type/apply_application.py:61 msgid "Approve applications display" -msgstr "批准的应用 (显示名称)" +msgstr "批准的应用名称" #: tickets/serializers/ticket/meta/ticket_type/apply_application.py:65 #: tickets/serializers/ticket/meta/ticket_type/apply_asset.py:62 @@ -3688,7 +3685,7 @@ msgstr "批准的系统用户" #: tickets/serializers/ticket/meta/ticket_type/apply_application.py:70 msgid "Approve system user display" -msgstr "批准的系统用户 (显示名称)" +msgstr "批准的系统用户名称" #: tickets/serializers/ticket/meta/ticket_type/apply_application.py:90 #: tickets/serializers/ticket/meta/ticket_type/apply_asset.py:94 @@ -3717,7 +3714,7 @@ msgstr "主机名组" #: tickets/serializers/ticket/meta/ticket_type/apply_asset.py:66 #: tickets/serializers/ticket/meta/ticket_type/apply_asset.py:74 msgid "Approve assets display" -msgstr "批准的资产 (显示名称)" +msgstr "批准的资产名称" #: tickets/serializers/ticket/meta/ticket_type/apply_asset.py:53 msgid "Approve assets" @@ -3777,11 +3774,7 @@ msgstr "登录日期" #: tickets/serializers/ticket/ticket.py:21 msgid "Action display" -msgstr "动作 (显示名称)" - -#: tickets/serializers/ticket/ticket.py:24 -msgid "Status display" -msgstr "状态(显示名称)" +msgstr "动作名称" #: tickets/serializers/ticket/ticket.py:101 msgid "" @@ -3987,8 +3980,8 @@ msgid "MFA force enabled" msgstr "强制启用多因子认证" #: users/serializers/user.py:31 -msgid "MFA level for display" -msgstr "多因子认证等级(显示名称)" +msgid "MFA level display" +msgstr "多因子认证等级名称" #: users/serializers/user.py:32 msgid "Login blocked" diff --git a/apps/terminal/backends/command/serializers.py b/apps/terminal/backends/command/serializers.py index 698b2fd99..f435e2371 100644 --- a/apps/terminal/backends/command/serializers.py +++ b/apps/terminal/backends/command/serializers.py @@ -16,7 +16,7 @@ class SessionCommandSerializer(serializers.Serializer): output = serializers.CharField(max_length=1024, allow_blank=True, label=_("Output")) session = serializers.CharField(max_length=36, label=_("Session ID")) risk_level = serializers.ChoiceField(required=False, label=_("Risk level"), choices=AbstractSessionCommand.RISK_LEVEL_CHOICES) - risk_level_display = serializers.SerializerMethodField(label=_('Risk level for display')) + risk_level_display = serializers.SerializerMethodField(label=_('Risk level display')) org_id = serializers.CharField(max_length=36, required=False, default='', allow_null=True, allow_blank=True) timestamp = serializers.IntegerField(label=_('Timestamp')) diff --git a/apps/terminal/serializers/session.py b/apps/terminal/serializers/session.py index bccb108f1..083a57fcf 100644 --- a/apps/terminal/serializers/session.py +++ b/apps/terminal/serializers/session.py @@ -31,7 +31,7 @@ class SessionSerializer(BulkOrgResourceModelSerializer): 'user_id': {'label': _('User ID')}, 'asset_id': {'label': _('Asset ID')}, 'system_user_id': {'label': _('System user ID')}, - 'login_from_display': {'label': _('Login from for display')}, + 'login_from_display': {'label': _('Login from display')}, 'is_success': {'label': _('Is success')}, 'can_replay': {'label': _('Can replay')}, 'can_join': {'label': _('Can join')}, diff --git a/apps/users/serializers/user.py b/apps/users/serializers/user.py index 46e4ca64a..f9b2c46ee 100644 --- a/apps/users/serializers/user.py +++ b/apps/users/serializers/user.py @@ -28,7 +28,7 @@ class UserSerializer(CommonBulkSerializerMixin, serializers.ModelSerializer): ) mfa_enabled = serializers.BooleanField(read_only=True, label=_('MFA enabled')) mfa_force_enabled = serializers.BooleanField(read_only=True, label=_('MFA force enabled')) - mfa_level_display = serializers.ReadOnlyField(source='get_mfa_level_display', label=_('MFA level for display')) + mfa_level_display = serializers.ReadOnlyField(source='get_mfa_level_display', label=_('MFA level display')) login_blocked = serializers.BooleanField(read_only=True, label=_('Login blocked')) is_expired = serializers.BooleanField(read_only=True, label=_('Is expired')) can_update = serializers.SerializerMethodField(label=_('Can update'))