From 2176fd8facaede5990bd9491e3f2b32581e95fb0 Mon Sep 17 00:00:00 2001 From: Bai Date: Thu, 10 Dec 2020 21:28:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/locale/zh/LC_MESSAGES/django.mo | Bin 62898 -> 63498 bytes apps/locale/zh/LC_MESSAGES/django.po | 191 ++++++++++++++---------- apps/terminal/serializers/components.py | 2 +- 3 files changed, 109 insertions(+), 84 deletions(-) diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index 73c8027155d078501eab4e5df9ae031abf1d8c1d..0d5b71dab2dd5a9aca56c52d83db4f6fe53654c8 100644 GIT binary patch delta 19134 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%0DjWE5 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%0D`Qf6YcNW*B?(8fDK{v;{X+Bd?&q@-3qOaJWJ z!zxR@9}xp+u$+$XuT5ks5UWf&M*IwYy8D-(fm{f+r|}voH~CwnIOG?SqW&|=YRbA6 z6U)I!J;=8s7LCnR!Sw<0j>O7ZTNiadM?+5fhETVUls=Guf9Y!tYtr$}e_NAJOXH2y zKO^NLe}>p2^66;%%G&-yye9ct#NJ;^i2Y8x*Z36kQ?VCkom^fr_L~|3;jz2AJqwE6 z-0#QKu`?!Ii8ISL>3;k!eS3Y{yWgyRlfR7}KjmOx?8F)Slf^cSX&4r}dVh_e*jGnh urj8A`elE_e>o=|>oW1JS_-(g$jhU6<=8@QkHv\n" "Language-Team: JumpServer team\n" @@ -39,9 +39,10 @@ msgstr "远程应用" #: 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.py:28 terminal/models.py:372 terminal/models.py:404 -#: terminal/models.py:441 users/forms/profile.py:20 users/models/group.py:15 -#: users/models/user.py:495 users/templates/users/_select_user_modal.html:13 +#: terminal/models/storage.py:21 terminal/models/storage.py:58 +#: 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/templates/users/_select_user_modal.html:13 #: users/templates/users/user_asset_permission.html:37 #: users/templates/users/user_asset_permission.html:154 #: users/templates/users/user_database_app_permission.html:36 @@ -76,8 +77,9 @@ msgstr "分类" #: applications/serializers/application.py:17 assets/models/cmd_filter.py:52 #: perms/models/application_permission.py:20 #: perms/serializers/application/permission.py:17 -#: perms/serializers/application/user_permission.py:34 terminal/models.py:406 -#: terminal/models.py:443 tickets/models/ticket.py:40 +#: perms/serializers/application/user_permission.py:34 +#: terminal/models/storage.py:23 terminal/models/storage.py:60 +#: tickets/models/ticket.py:40 #: users/templates/users/user_granted_database_app.html:35 msgid "Type" msgstr "类型" @@ -92,10 +94,10 @@ msgstr "类型" #: assets/models/cmd_filter.py:57 assets/models/domain.py:22 #: assets/models/domain.py:55 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.py:38 -#: terminal/models.py:411 terminal/models.py:448 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:28 +#: terminal/models/storage.py:65 terminal/models/terminal.py:142 +#: tickets/models/ticket.py:43 users/models/group.py:16 +#: users/models/user.py:528 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 @@ -154,7 +156,7 @@ msgstr "Kubernetes应用" #: audits/models.py:38 perms/forms/asset_permission.py:89 #: perms/models/asset_permission.py:92 templates/index.html:82 #: terminal/backends/command/models.py:19 -#: terminal/backends/command/serializers.py:13 terminal/models.py:192 +#: terminal/backends/command/serializers.py:13 terminal/models/session.py:39 #: users/templates/users/user_asset_permission.html:40 #: users/templates/users/user_asset_permission.html:70 #: users/templates/users/user_granted_remote_app.html:36 @@ -296,15 +298,15 @@ msgstr "删除失败,存在关联资产" msgid "Number required" msgstr "需要为数字" -#: assets/api/node.py:66 +#: assets/api/node.py:67 msgid "You can't update the root node name" msgstr "不能修改根节点名称" -#: assets/api/node.py:73 +#: assets/api/node.py:74 msgid "You can't delete the root node ({})" msgstr "不能删除根节点 ({})" -#: assets/api/node.py:76 +#: assets/api/node.py:77 msgid "Deletion failed and the node contains children or assets" msgstr "删除失败,节点包含子节点或资产" @@ -528,7 +530,7 @@ msgid "Regex" msgstr "正则表达式" #: assets/models/cmd_filter.py:41 ops/models/command.py:23 -#: terminal/backends/command/serializers.py:15 terminal/models.py:201 +#: terminal/backends/command/serializers.py:15 terminal/models/session.py:48 msgid "Command" msgstr "命令" @@ -618,7 +620,7 @@ msgstr "默认资产组" #: perms/forms/remote_app_permission.py:40 perms/models/asset_permission.py:169 #: perms/models/base.py:49 templates/index.html:78 #: terminal/backends/command/models.py:18 -#: terminal/backends/command/serializers.py:12 terminal/models.py:190 +#: 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:66 #: tickets/serializers/ticket.py:31 users/forms/group.py:15 @@ -736,7 +738,7 @@ msgstr "用户组" #: perms/models/k8s_app_permission.py:22 #: perms/models/remote_app_permission.py:16 templates/_nav.html:45 #: terminal/backends/command/models.py:20 -#: terminal/backends/command/serializers.py:14 terminal/models.py:194 +#: terminal/backends/command/serializers.py:14 terminal/models/session.py:41 #: tickets/api/request_asset_perm.py:68 #: tickets/serializers/request_asset_perm.py:27 #: users/templates/users/_granted_assets.html:27 @@ -937,7 +939,7 @@ msgstr "更新节点资产硬件信息: {}" msgid "Gather assets users" msgstr "收集资产上的用户" -#: assets/tasks/nodes_amount.py:19 +#: assets/tasks/nodes_amount.py:21 msgid "" "The task of self-checking is already running and cannot be started repeatedly" msgstr "自检程序已经在运行,不能重复启动" @@ -1040,7 +1042,7 @@ msgid "Symlink" msgstr "建立软链接" #: audits/models.py:37 audits/models.py:60 audits/models.py:71 -#: terminal/models.py:197 +#: terminal/models/session.py:44 msgid "Remote addr" msgstr "远端地址" @@ -1058,7 +1060,7 @@ msgid "Success" msgstr "成功" #: audits/models.py:43 ops/models/command.py:28 perms/models/base.py:52 -#: terminal/models.py:204 tickets/serializers/request_asset_perm.py:29 +#: terminal/models/session.py:51 tickets/serializers/request_asset_perm.py:29 #: xpack/plugins/change_auth_plan/models.py:177 #: xpack/plugins/change_auth_plan/models.py:307 #: xpack/plugins/gathered_user/models.py:76 @@ -1353,7 +1355,7 @@ msgstr "你的密码过于简单,为了安全,请修改" msgid "Your password has expired, please reset before logging in" msgstr "您的密码已过期,先修改再登录" -#: authentication/forms.py:26 authentication/forms.py:34 +#: authentication/forms.py:26 authentication/forms.py:38 #: authentication/templates/authentication/login.html:39 #: authentication/templates/authentication/xpack_login.html:119 #: users/forms/user.py:199 @@ -1440,6 +1442,15 @@ msgstr "删除成功" msgid "Close" msgstr "关闭" +#: authentication/templates/authentication/_captcha_field.html:8 +msgid "Play CAPTCHA as audio file" +msgstr "语言播放验证码" + +#: authentication/templates/authentication/_captcha_field.html:15 +#: users/forms/profile.py:90 +msgid "Captcha" +msgstr "验证码" + #: authentication/templates/authentication/_mfa_confirm_modal.html:5 msgid "MFA confirm" msgstr "多因子认证校验" @@ -1584,7 +1595,7 @@ msgstr "更新人" #: common/drf/parsers/base.py:16 msgid "The file content overflowed (The maximum length `{}` bytes)" -msgstr "" +msgstr "文件内容益处 (最大长度 `{}` 字节)" #: common/exceptions.py:15 #, python-format @@ -2504,14 +2515,6 @@ msgstr "显示第 _START_ 至 _END_ 项结果; 总共 _TOTAL_ 项" msgid "Home page" msgstr "首页" -#: templates/captcha/image.html:3 -msgid "Play CAPTCHA as audio file" -msgstr "语言播放验证码" - -#: templates/captcha/text_field.html:4 users/forms/profile.py:90 -msgid "Captcha" -msgstr "验证码" - #: templates/delete_confirm.html:6 msgid "Confirm delete" msgstr "确认删除" @@ -2741,69 +2744,104 @@ msgstr "风险等级(显示名称)" msgid "Timestamp" msgstr "时间戳" +#: terminal/const.py:117 +msgid "Critical" +msgstr "严重" + +#: terminal/const.py:118 +msgid "High" +msgstr "较高" + +#: terminal/const.py:119 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 +msgid "Normal" +msgstr "正常" + #: terminal/exceptions.py:8 msgid "Bulk create not support" msgstr "不支持批量创建" -#: terminal/models.py:29 -msgid "Remote Address" -msgstr "远端地址" - -#: terminal/models.py:30 -msgid "SSH Port" -msgstr "SSH端口" - -#: terminal/models.py:31 -msgid "HTTP Port" -msgstr "HTTP端口" +#: terminal/models/session.py:43 +msgid "Login from" +msgstr "登录来源" -#: terminal/models.py:32 -msgid "Command storage" -msgstr "命令存储" +#: terminal/models/session.py:47 +msgid "Replay" +msgstr "回放" -#: terminal/models.py:33 -msgid "Replay storage" -msgstr "录像存储" +#: terminal/models/session.py:52 +msgid "Date end" +msgstr "结束日期" -#: terminal/models.py:156 +#: terminal/models/status.py:13 msgid "Session Online" msgstr "在线会话" -#: terminal/models.py:157 +#: terminal/models/status.py:14 msgid "CPU Usage" msgstr "CPU使用" -#: terminal/models.py:158 +#: terminal/models/status.py:15 msgid "Memory Used" msgstr "内存使用" -#: terminal/models.py:159 +#: terminal/models/status.py:16 msgid "Connections" msgstr "连接数" -#: terminal/models.py:160 +#: terminal/models/status.py:17 msgid "Threads" msgstr "线程数" -#: terminal/models.py:161 +#: terminal/models/status.py:18 msgid "Boot Time" msgstr "运行时间" -#: terminal/models.py:196 -msgid "Login from" -msgstr "登录来源" +#: terminal/models/task.py:17 +msgid "Args" +msgstr "参数" -#: terminal/models.py:200 -msgid "Replay" -msgstr "回放" +#: terminal/models/terminal.py:132 +msgid "type" +msgstr "类型" -#: terminal/models.py:205 -msgid "Date end" -msgstr "结束日期" +#: terminal/models/terminal.py:133 +msgid "Remote Address" +msgstr "远端地址" -#: terminal/models.py:373 -msgid "Args" -msgstr "参数" +#: terminal/models/terminal.py:134 +msgid "SSH Port" +msgstr "SSH端口" + +#: terminal/models/terminal.py:135 +msgid "HTTP Port" +msgstr "HTTP端口" + +#: terminal/models/terminal.py:136 +msgid "Command storage" +msgstr "命令存储" + +#: terminal/models/terminal.py:137 +msgid "Replay storage" +msgstr "录像存储" + +#: terminal/serializers/components.py:9 +msgid "System cpu load (1 minutes)" +msgstr "系统CPU负载 (1分钟)" + +#: terminal/serializers/components.py:12 +msgid "System memory used percent" +msgstr "系统内存使用百分比" + +#: terminal/serializers/components.py:15 +msgid "System disk used percent" +msgstr "系统磁盘使用百分比" + +#: terminal/serializers/components.py:19 +msgid "Session active count" +msgstr "活跃会话数量" #: terminal/serializers/session.py:30 msgid "User ID" @@ -2829,18 +2867,18 @@ msgstr "是否可重放" msgid "Can join" msgstr "是否可加入" -#: terminal/serializers/terminal.py:38 terminal/serializers/terminal.py:46 +#: terminal/serializers/terminal.py:44 terminal/serializers/terminal.py:52 msgid "Not found" msgstr "没有发现" -#: terminal/utils.py:73 +#: terminal/utils.py:74 #, 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/utils.py:80 +#: terminal/utils.py:81 #, python-format msgid "" "\n" @@ -3454,13 +3492,6 @@ msgstr "很弱" msgid "Weak" msgstr "弱" -#: 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 -msgid "Normal" -msgstr "正常" - #: users/templates/users/reset_password.html:51 #: users/templates/users/user_create.html:36 #: users/templates/users/user_password_update.html:105 @@ -4415,11 +4446,11 @@ msgstr "腾讯云" #: xpack/plugins/cloud/serializers.py:26 msgid "Tenant ID" -msgstr "" +msgstr "租户ID" #: xpack/plugins/cloud/serializers.py:30 msgid "Subscription ID" -msgstr "" +msgstr "订阅ID" #: xpack/plugins/cloud/serializers.py:88 msgid "History count" @@ -5066,9 +5097,6 @@ msgstr "社区版" #~ msgid "System user assets" #~ msgstr "系统用户关联资产" -#~ msgid "System user users" -#~ msgstr "系统用户关联用户" - #~ msgid "Select user" #~ msgstr "选择用户" @@ -5521,9 +5549,6 @@ msgstr "社区版" #~ msgid "List page size" #~ msgstr "资产分页每页数量" -#~ msgid "Session keep duration" -#~ msgstr "会话保留时长" - #~ msgid "" #~ "Units: days, Session, record, command will be delete if more than " #~ "duration, only in database" diff --git a/apps/terminal/serializers/components.py b/apps/terminal/serializers/components.py index 7cc1612ad..e557d8f4f 100644 --- a/apps/terminal/serializers/components.py +++ b/apps/terminal/serializers/components.py @@ -6,7 +6,7 @@ from django.utils.translation import ugettext_lazy as _ class ComponentsStateSerializer(serializers.Serializer): # system system_cpu_load_1 = serializers.FloatField( - required=False, default=0, label=_("System cpu load 1 minutes") + required=False, default=0, label=_("System cpu load (1 minutes)") ) system_memory_used_percent = serializers.FloatField( required=False, default=0, label=_('System memory used percent')