From e623f63fcfd1c6dc43498ef721d9db2ae0ea3e51 Mon Sep 17 00:00:00 2001 From: ibuler Date: Wed, 16 Jun 2021 13:20:50 +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 perf: 优化命令告警,优化翻译 --- apps/locale/zh/LC_MESSAGES/django.mo | Bin 76320 -> 76354 bytes apps/locale/zh/LC_MESSAGES/django.po | 120 +++++++++++++++------------ apps/notifications/notifications.py | 6 +- apps/terminal/notifications.py | 6 +- 4 files changed, 71 insertions(+), 61 deletions(-) diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index f1e5b13b4213a15171250e3f370260565640b52d..1b069d824b17c9817a57928bd1c01b86af131099 100644 GIT binary patch delta 22094 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 JbbkF)|37mA@BaV* delta 22066 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 Qm3J3z*|a|*U|`t)0pSq-tN;K2 diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po index 0acdf61d9..e817639af 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-11 11:06+0800\n" +"POT-Creation-Date: 2021-06-16 13:26+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n" "Last-Translator: ibuler \n" "Language-Team: JumpServer team\n" @@ -184,7 +184,7 @@ msgstr "格式为逗号分隔的字符串, * 表示匹配所有. " #: 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:65 +#: xpack/plugins/cloud/serializers.py:51 msgid "Username" msgstr "用户名" @@ -304,7 +304,7 @@ msgid "Cluster" msgstr "集群" #: applications/serializers/attrs/application_category/db.py:11 -#: ops/models/adhoc.py:146 xpack/plugins/cloud/serializers.py:63 +#: ops/models/adhoc.py:146 xpack/plugins/cloud/serializers.py:49 msgid "Host" msgstr "主机" @@ -314,7 +314,7 @@ msgstr "主机" #: 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:64 +#: xpack/plugins/cloud/serializers.py:50 msgid "Port" msgstr "端口" @@ -344,7 +344,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:67 +#: xpack/plugins/cloud/serializers.py:53 msgid "Password" msgstr "密码" @@ -396,7 +396,7 @@ msgstr "系统用户(动态)" #: assets/backends/db.py:232 assets/models/asset.py:196 #: assets/models/cluster.py:19 assets/models/user.py:67 templates/_nav.html:44 -#: xpack/plugins/cloud/models.py:92 xpack/plugins/cloud/serializers.py:160 +#: xpack/plugins/cloud/models.py:92 xpack/plugins/cloud/serializers.py:146 msgid "Admin user" msgstr "管理用户" @@ -715,7 +715,7 @@ msgstr "ssh私钥" #: 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:161 +#: xpack/plugins/cloud/models.py:89 xpack/plugins/cloud/serializers.py:147 msgid "Node" msgstr "节点" @@ -1227,17 +1227,29 @@ msgid "SSO" msgstr "" #: audits/signals_handler.py:60 +#, fuzzy +#| msgid "Private Token" +msgid "Auth Token" +msgstr "SSH密钥" + +#: audits/signals_handler.py:61 #: authentication/templates/authentication/login.html:210 #: notifications/backends/__init__.py:12 msgid "WeCom" msgstr "企业微信" -#: audits/signals_handler.py:61 +#: audits/signals_handler.py:62 #: authentication/templates/authentication/login.html:215 #: notifications/backends/__init__.py:13 msgid "DingTalk" msgstr "钉钉" +#: authentication/api/connection_token.py:249 +#, fuzzy +#| msgid "Invalid" +msgid "Invalid token" +msgstr "无效" + #: authentication/api/mfa.py:60 msgid "Code is invalid" msgstr "Code无效" @@ -1715,7 +1727,7 @@ msgstr "对象" msgid "The file content overflowed (The maximum length `{}` bytes)" msgstr "文件内容太大 (最大长度 `{}` 字节)" -#: common/drf/parsers/base.py:148 +#: common/drf/parsers/base.py:153 msgid "Parse file error: {}" msgstr "解析文件错误: {}" @@ -1846,7 +1858,7 @@ msgstr "邮件" #: notifications/backends/__init__.py:14 msgid "Site message" -msgstr "" +msgstr "站内信" #: ops/api/celery.py:61 ops/api/celery.py:76 msgid "Waiting task start" @@ -1993,7 +2005,7 @@ msgstr "任务结束" #: ops/notifications.py:13 msgid "Server performance" -msgstr "" +msgstr "监控告警" #: ops/notifications.py:20 msgid "Disk used more than 80%: {} => {}" @@ -2535,100 +2547,100 @@ msgstr "启用企业微信认证" msgid "Enable DingTalk Auth" msgstr "启用钉钉认证" -#: settings/utils/ldap.py:411 +#: settings/utils/ldap.py:417 msgid "Host or port is disconnected: {}" msgstr "主机或端口不可连接: {}" -#: settings/utils/ldap.py:413 +#: settings/utils/ldap.py:419 msgid "The port is not the port of the LDAP service: {}" msgstr "端口不是LDAP服务端口: {}" -#: settings/utils/ldap.py:415 +#: settings/utils/ldap.py:421 msgid "Please add certificate: {}" msgstr "请添加证书" -#: settings/utils/ldap.py:417 settings/utils/ldap.py:444 -#: settings/utils/ldap.py:474 settings/utils/ldap.py:502 +#: settings/utils/ldap.py:423 settings/utils/ldap.py:450 +#: settings/utils/ldap.py:480 settings/utils/ldap.py:508 msgid "Unknown error: {}" msgstr "未知错误: {}" -#: settings/utils/ldap.py:431 +#: settings/utils/ldap.py:437 msgid "Bind DN or Password incorrect" msgstr "绑定DN或密码错误" -#: settings/utils/ldap.py:438 +#: settings/utils/ldap.py:444 msgid "Please enter Bind DN: {}" msgstr "请输入绑定DN: {}" -#: settings/utils/ldap.py:440 +#: settings/utils/ldap.py:446 msgid "Please enter Password: {}" msgstr "请输入密码: {}" -#: settings/utils/ldap.py:442 +#: settings/utils/ldap.py:448 msgid "Please enter correct Bind DN and Password: {}" msgstr "请输入正确的绑定DN和密码: {}" -#: settings/utils/ldap.py:460 +#: settings/utils/ldap.py:466 msgid "Invalid User OU or User search filter: {}" msgstr "不合法的用户OU或用户过滤器: {}" -#: settings/utils/ldap.py:491 +#: settings/utils/ldap.py:497 msgid "LDAP User attr map not include: {}" msgstr "LDAP属性映射没有包含: {}" -#: settings/utils/ldap.py:498 +#: settings/utils/ldap.py:504 msgid "LDAP User attr map is not dict" msgstr "LDAP属性映射不合法" -#: settings/utils/ldap.py:517 +#: settings/utils/ldap.py:523 msgid "LDAP authentication is not enabled" msgstr "LDAP认证没有启用" -#: settings/utils/ldap.py:535 +#: settings/utils/ldap.py:541 msgid "Error (Invalid LDAP server): {}" msgstr "错误 (不合法的LDAP服务器地址): {}" -#: settings/utils/ldap.py:537 +#: settings/utils/ldap.py:543 msgid "Error (Invalid Bind DN): {}" msgstr "错误(不合法的绑定DN): {}" -#: settings/utils/ldap.py:539 +#: settings/utils/ldap.py:545 msgid "Error (Invalid LDAP User attr map): {}" msgstr "错误(不合法的LDAP属性映射): {}" -#: settings/utils/ldap.py:541 +#: settings/utils/ldap.py:547 msgid "Error (Invalid User OU or User search filter): {}" msgstr "错误(不合法的用户OU或用户过滤器): {}" -#: settings/utils/ldap.py:543 +#: settings/utils/ldap.py:549 msgid "Error (Not enabled LDAP authentication): {}" msgstr "错误(没有启用LDAP认证): {}" -#: settings/utils/ldap.py:545 +#: settings/utils/ldap.py:551 msgid "Error (Unknown): {}" msgstr "错误(未知): {}" -#: settings/utils/ldap.py:548 +#: settings/utils/ldap.py:554 msgid "Succeed: Match {} s user" msgstr "成功匹配 {} 个用户" -#: settings/utils/ldap.py:581 +#: settings/utils/ldap.py:587 msgid "Authentication failed (configuration incorrect): {}" msgstr "认证失败(配置错误): {}" -#: settings/utils/ldap.py:583 +#: settings/utils/ldap.py:589 msgid "Authentication failed (before login check failed): {}" msgstr "认证失败(登录前检查失败): {}" -#: settings/utils/ldap.py:585 +#: settings/utils/ldap.py:591 msgid "Authentication failed (username or password incorrect): {}" msgstr "认证失败 (用户名或密码不正确): {}" -#: settings/utils/ldap.py:587 +#: settings/utils/ldap.py:593 msgid "Authentication failed (Unknown): {}" msgstr "认证失败: (未知): {}" -#: settings/utils/ldap.py:590 +#: settings/utils/ldap.py:596 msgid "Authentication success: {}" msgstr "认证成功: {}" @@ -2817,7 +2829,7 @@ msgstr "数据库应用" msgid "Perms" msgstr "权限管理" -#: templates/_nav.html:97 +#: templates/_nav.html:97 terminal/notifications.py:15 msgid "Sessions" msgstr "会话管理" @@ -2841,7 +2853,7 @@ msgstr "Web终端" msgid "File manager" msgstr "文件管理" -#: templates/_nav.html:110 terminal/apps.py:9 terminal/notifications.py:15 +#: templates/_nav.html:110 terminal/apps.py:9 #: terminal/serializers/session.py:40 msgid "Terminal" msgstr "终端" @@ -3273,8 +3285,8 @@ msgid "Replay storage" msgstr "录像存储" #: terminal/notifications.py:35 -msgid "Terminal command alert" -msgstr "终端命令告警" +msgid "Danger command alert" +msgstr "危险命令告警" #: terminal/notifications.py:44 #, python-format @@ -3314,8 +3326,8 @@ msgid "" msgstr "危险命令告警: [%(name)s->%(login_from)s@%(remote_addr)s] $%(command)s" #: terminal/notifications.py:97 -msgid "Batch command alert" -msgstr "批量命令告警" +msgid "Batch danger command alert" +msgstr "批量危险命令告警" #: terminal/notifications.py:108 #, python-format @@ -4051,7 +4063,7 @@ msgid "Security token validation" msgstr "安全令牌验证" #: users/templates/users/_base_otp.html:14 xpack/plugins/cloud/models.py:78 -#: xpack/plugins/cloud/serializers.py:159 +#: xpack/plugins/cloud/serializers.py:145 msgid "Account" msgstr "账户" @@ -4792,7 +4804,7 @@ msgstr "云服务商" msgid "Cloud account" msgstr "云账号" -#: xpack/plugins/cloud/models.py:81 xpack/plugins/cloud/serializers.py:140 +#: xpack/plugins/cloud/models.py:81 xpack/plugins/cloud/serializers.py:126 msgid "Regions" msgstr "地域" @@ -4800,7 +4812,7 @@ msgstr "地域" msgid "Hostname strategy" msgstr "主机名策略" -#: xpack/plugins/cloud/models.py:95 xpack/plugins/cloud/serializers.py:163 +#: xpack/plugins/cloud/models.py:95 xpack/plugins/cloud/serializers.py:149 msgid "Always update" msgstr "总是更新" @@ -4992,24 +5004,20 @@ msgstr "" msgid "Subscription ID" msgstr "" -#: xpack/plugins/cloud/serializers.py:49 -msgid "This field is required" -msgstr "这个字段是必填项" - -#: xpack/plugins/cloud/serializers.py:138 +#: xpack/plugins/cloud/serializers.py:124 msgid "History count" msgstr "执行次数" -#: xpack/plugins/cloud/serializers.py:139 +#: xpack/plugins/cloud/serializers.py:125 msgid "Instance count" msgstr "实例个数" -#: xpack/plugins/cloud/serializers.py:162 +#: xpack/plugins/cloud/serializers.py:148 #: xpack/plugins/gathered_user/serializers.py:20 msgid "Periodic display" msgstr "定时执行" -#: xpack/plugins/cloud/utils.py:65 +#: xpack/plugins/cloud/utils.py:64 msgid "Account unavailable" msgstr "账户无效" @@ -5096,3 +5104,9 @@ msgstr "旗舰版" #: xpack/plugins/license/models.py:77 msgid "Community edition" msgstr "社区版" + +#~ msgid "Terminal command alert" +#~ msgstr "终端命令告警" + +#~ msgid "This field is required" +#~ msgstr "这个字段是必填项" diff --git a/apps/notifications/notifications.py b/apps/notifications/notifications.py index 8563fd214..4c4db11d9 100644 --- a/apps/notifications/notifications.py +++ b/apps/notifications/notifications.py @@ -108,11 +108,7 @@ class Message(metaclass=MessageType): } def get_site_msg_msg(self) -> dict: - msg = self.get_common_msg() - return { - 'subject': msg, - 'message': msg - } + return self.get_email_msg() class SystemMessage(Message): diff --git a/apps/terminal/notifications.py b/apps/terminal/notifications.py index eac9c2f7d..7a87d56a6 100644 --- a/apps/terminal/notifications.py +++ b/apps/terminal/notifications.py @@ -12,7 +12,7 @@ logger = get_logger(__name__) __all__ = ('CommandAlertMessage', 'CommandExecutionAlert') CATEGORY = 'terminal' -CATEGORY_LABEL = _('Terminal') +CATEGORY_LABEL = _('Sessions') class CommandAlertMixin: @@ -32,7 +32,7 @@ class CommandAlertMixin: class CommandAlertMessage(CommandAlertMixin, SystemMessage): category = CATEGORY category_label = CATEGORY_LABEL - message_type_label = _('Terminal command alert') + message_type_label = _('Danger command alert') def __init__(self, command): self.command = command @@ -94,7 +94,7 @@ class CommandAlertMessage(CommandAlertMixin, SystemMessage): class CommandExecutionAlert(CommandAlertMixin, SystemMessage): category = CATEGORY category_label = CATEGORY_LABEL - message_type_label = _('Batch command alert') + message_type_label = _('Batch danger command alert') def __init__(self, command): self.command = command