From 5ab55b823c6eb81e0900c37b9a4507cdfa16abff Mon Sep 17 00:00:00 2001 From: Bai Date: Mon, 20 May 2024 18:39:57 +0800 Subject: [PATCH 1/8] perf: i18n System Settings -> General,Org,Notifications --- apps/i18n/core/en/LC_MESSAGES/django.po | 47 +- apps/i18n/core/ja/LC_MESSAGES/django.po | 37 +- apps/i18n/core/zh/LC_MESSAGES/django.po | 547 ++++++++++-------------- apps/i18n/lina/en.json | 24 +- apps/i18n/lina/ja.json | 4 +- apps/i18n/lina/zh.json | 16 +- apps/i18n/lina/zh_hant.json | 4 +- apps/jumpserver/conf.py | 2 +- apps/settings/serializers/auth/base.py | 4 + apps/settings/serializers/auth/sms.py | 13 +- apps/settings/serializers/basic.py | 12 +- apps/settings/serializers/msg.py | 28 +- apps/settings/serializers/terminal.py | 2 +- 13 files changed, 336 insertions(+), 404 deletions(-) diff --git a/apps/i18n/core/en/LC_MESSAGES/django.po b/apps/i18n/core/en/LC_MESSAGES/django.po index 402a5d77d..cbb285681 100644 --- a/apps/i18n/core/en/LC_MESSAGES/django.po +++ b/apps/i18n/core/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-13 18:52+0800\n" +"POT-Creation-Date: 2024-05-15 11:48+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -80,10 +80,8 @@ msgid "Anonymous account" msgstr "" #: accounts/const/account.py:18 -#, fuzzy -#| msgid "Is service account" msgid "Specified account" -msgstr "Is service account" +msgstr "" #: accounts/const/account.py:26 users/models/user.py:751 msgid "Local" @@ -974,8 +972,6 @@ msgid "Nodes" msgstr "" #: accounts/serializers/automations/base.py:24 -#, fuzzy -#| msgid "Periodic run" msgid "Periodic perform" msgstr "Periodic" @@ -5418,45 +5414,43 @@ msgstr "" #: settings/serializers/basic.py:13 msgid "" -"External URL, email links or other system callbacks are used to access it, " -"eg: http://dev.jumpserver.org:8080" -msgstr "" -"Site URL are commonly used in emails sent or as callback addresses for " -"external systems. eg: http://dev.jumpserver.org:8080" - -#: settings/serializers/basic.py:18 -msgid "User guide url" +"Site URL is the externally accessible address of the current product service " +"and is usually used in links in system emails" msgstr "" #: settings/serializers/basic.py:19 +msgid "User guide url" +msgstr "" + +#: settings/serializers/basic.py:20 msgid "User first login update profile done redirect to it" msgstr "" -#: settings/serializers/basic.py:22 +#: settings/serializers/basic.py:23 msgid "Global organization" msgstr "" -#: settings/serializers/basic.py:23 +#: settings/serializers/basic.py:24 msgid "The name of global organization to display" msgstr "" -#: settings/serializers/basic.py:26 +#: settings/serializers/basic.py:27 msgid "Help Docs URL" msgstr "Document URL" -#: settings/serializers/basic.py:27 +#: settings/serializers/basic.py:28 msgid "default: http://docs.jumpserver.org" msgstr "" -#: settings/serializers/basic.py:30 +#: settings/serializers/basic.py:31 msgid "Help Support URL" msgstr "Support URL" -#: settings/serializers/basic.py:31 +#: settings/serializers/basic.py:32 msgid "default: http://www.jumpserver.org/support/" msgstr "" -#: settings/serializers/basic.py:44 +#: settings/serializers/basic.py:45 msgid "Organization name already exists" msgstr "" @@ -8002,10 +7996,8 @@ msgid "On" msgstr "" #: users/serializers/profile.py:94 -#, fuzzy -#| msgid "Su enabled" msgid "Forced enabled" -msgstr "Switch enabled" +msgstr "" #: users/serializers/user.py:45 msgid "System roles" @@ -9152,3 +9144,10 @@ msgstr "" #: xpack/plugins/license/models.py:86 msgid "Ultimate edition" msgstr "" + +#~ msgid "" +#~ "External URL, email links or other system callbacks are used to access " +#~ "it, eg: http://dev.jumpserver.org:8080" +#~ msgstr "" +#~ "Site URL are commonly used in emails sent or as callback addresses for " +#~ "external systems. eg: http://dev.jumpserver.org:8080" diff --git a/apps/i18n/core/ja/LC_MESSAGES/django.po b/apps/i18n/core/ja/LC_MESSAGES/django.po index a54418e2a..68110a0c7 100644 --- a/apps/i18n/core/ja/LC_MESSAGES/django.po +++ b/apps/i18n/core/ja/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-13 18:52+0800\n" +"POT-Creation-Date: 2024-05-15 11:48+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -5620,45 +5620,43 @@ msgstr "サイトURL" #: settings/serializers/basic.py:13 msgid "" -"External URL, email links or other system callbacks are used to access it, " -"eg: http://dev.jumpserver.org:8080" +"Site URL is the externally accessible address of the current product service " +"and is usually used in links in system emails" msgstr "" -"外部URL、メールリンクまたは他のシステムコールバックにアクセスするには、" -"http://dev.jumpserver.org:8080などを使用します" -#: settings/serializers/basic.py:18 +#: settings/serializers/basic.py:19 msgid "User guide url" msgstr "ユーザーガイドurl" -#: settings/serializers/basic.py:19 +#: settings/serializers/basic.py:20 msgid "User first login update profile done redirect to it" msgstr "ユーザーの最初のログイン更新プロファイルがリダイレクトされました" -#: settings/serializers/basic.py:22 +#: settings/serializers/basic.py:23 msgid "Global organization" msgstr "グローバル組織名" -#: settings/serializers/basic.py:23 +#: settings/serializers/basic.py:24 msgid "The name of global organization to display" msgstr "表示するグローバル組織の名前" -#: settings/serializers/basic.py:26 +#: settings/serializers/basic.py:27 msgid "Help Docs URL" msgstr "ドキュメントリンク" -#: settings/serializers/basic.py:27 +#: settings/serializers/basic.py:28 msgid "default: http://docs.jumpserver.org" msgstr "デフォルト: http://docs.jumpserver.org" -#: settings/serializers/basic.py:30 +#: settings/serializers/basic.py:31 msgid "Help Support URL" msgstr "サポートリンク" -#: settings/serializers/basic.py:31 +#: settings/serializers/basic.py:32 msgid "default: http://www.jumpserver.org/support/" msgstr "デフォルト: http://www.jumpserver.org/support/" -#: settings/serializers/basic.py:44 +#: settings/serializers/basic.py:45 msgid "Organization name already exists" msgstr "組織名はすでに存在します。" @@ -8950,7 +8948,9 @@ msgstr "インスタンス \"%s\" の同期に失敗しました" msgid "" "The updated platform of asset \"%s\" is inconsistent with the original " "platform type. Skip platform and protocol updates" -msgstr "更新された資産 \"%s\" のプラットフォームタイプと元のタイプは一致しません。プラットフォームとプロトコルの更新をスキップ" +msgstr "" +"更新された資産 \"%s\" のプラットフォームタイプと元のタイプは一致しません。プ" +"ラットフォームとプロトコルの更新をスキップ" #: xpack/plugins/cloud/manager.py:358 #, python-format @@ -9551,6 +9551,13 @@ msgstr "エンタープライズプロフェッショナル版" msgid "Ultimate edition" msgstr "エンタープライズ・フラッグシップ・エディション" +#~ msgid "" +#~ "External URL, email links or other system callbacks are used to access " +#~ "it, eg: http://dev.jumpserver.org:8080" +#~ msgstr "" +#~ "外部URL、メールリンクまたは他のシステムコールバックにアクセスするには、" +#~ "http://dev.jumpserver.org:8080などを使用します" + #, fuzzy #~| msgid "permed assets" #~ msgid "Release assets" diff --git a/apps/i18n/core/zh/LC_MESSAGES/django.po b/apps/i18n/core/zh/LC_MESSAGES/django.po index 6a48cad95..be2dff59b 100644 --- a/apps/i18n/core/zh/LC_MESSAGES/django.po +++ b/apps/i18n/core/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: 2024-05-13 18:52+0800\n" +"POT-Creation-Date: 2024-05-11 10:40+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n" "Last-Translator: ibuler \n" "Language-Team: JumpServer team\n" @@ -28,9 +28,9 @@ msgstr "成功: %s, 失败: %s, 总数: %s" #: accounts/const/account.py:6 #: accounts/serializers/automations/change_secret.py:34 -#: audits/signal_handlers/login_log.py:34 authentication/confirm/password.py:9 -#: authentication/confirm/password.py:24 authentication/confirm/password.py:26 -#: authentication/forms.py:28 +#: assets/models/_user.py:24 audits/signal_handlers/login_log.py:34 +#: authentication/confirm/password.py:9 authentication/confirm/password.py:24 +#: authentication/confirm/password.py:26 authentication/forms.py:28 #: authentication/templates/authentication/login.html:329 #: settings/serializers/auth/ldap.py:25 settings/serializers/auth/ldap.py:47 #: settings/serializers/msg.py:35 terminal/serializers/storage.py:123 @@ -52,7 +52,8 @@ msgstr "SSH 密钥" msgid "Access key" msgstr "Access key" -#: accounts/const/account.py:9 authentication/backends/passkey/models.py:16 +#: accounts/const/account.py:9 assets/models/_user.py:48 +#: authentication/backends/passkey/models.py:16 #: authentication/models/sso_token.py:14 settings/serializers/feature.py:52 msgid "Token" msgstr "Token" @@ -389,7 +390,7 @@ msgstr "账号备份计划" #: accounts/models/automations/backup_account.py:120 #: assets/models/automations/base.py:115 audits/models.py:65 #: ops/models/base.py:55 ops/models/celery.py:88 ops/models/job.py:241 -#: ops/templates/ops/celery_task_log.html:95 +#: ops/templates/ops/celery_task_log.html:75 #: perms/models/asset_permission.py:78 #: settings/templates/ldap/_msg_import_ldap_user.html:5 #: terminal/models/applet/host.py:141 terminal/models/session/session.py:45 @@ -418,8 +419,7 @@ msgid "Trigger mode" msgstr "触发模式" #: accounts/models/automations/backup_account.py:134 audits/models.py:203 -#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:165 -#: xpack/plugins/cloud/models.py:204 +#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/models.py:204 msgid "Reason" msgstr "原因" @@ -547,8 +547,9 @@ msgstr "最后登录日期" #: accounts/models/automations/gather_account.py:17 #: accounts/models/automations/push_account.py:15 accounts/models/base.py:65 #: accounts/serializers/account/virtual.py:21 acls/serializers/base.py:19 -#: acls/serializers/base.py:50 audits/models.py:188 authentication/forms.py:21 -#: authentication/forms.py:23 authentication/models/temp_token.py:9 +#: acls/serializers/base.py:50 assets/models/_user.py:23 audits/models.py:188 +#: authentication/forms.py:21 authentication/forms.py:23 +#: authentication/models/temp_token.py:9 #: authentication/templates/authentication/_msg_different_city.html:9 #: authentication/templates/authentication/_msg_oauth_bind.html:9 #: terminal/serializers/storage.py:136 users/forms/profile.py:31 @@ -628,12 +629,13 @@ msgstr "密码规则" #: accounts/models/base.py:64 accounts/serializers/account/virtual.py:20 #: acls/models/base.py:35 acls/models/base.py:96 acls/models/command_acl.py:21 -#: acls/serializers/base.py:35 assets/models/asset/common.py:93 +#: acls/serializers/base.py:35 applications/models.py:9 +#: assets/models/_user.py:22 assets/models/asset/common.py:93 #: assets/models/asset/common.py:159 assets/models/cmd_filter.py:21 -#: assets/models/domain.py:19 assets/models/label.py:18 -#: assets/models/platform.py:15 assets/models/platform.py:94 -#: assets/serializers/asset/common.py:149 assets/serializers/platform.py:143 -#: assets/serializers/platform.py:261 +#: assets/models/domain.py:19 assets/models/group.py:17 +#: assets/models/label.py:18 assets/models/platform.py:15 +#: assets/models/platform.py:94 assets/serializers/asset/common.py:149 +#: assets/serializers/platform.py:143 assets/serializers/platform.py:261 #: authentication/backends/passkey/models.py:10 #: authentication/serializers/connect_token_secret.py:113 #: authentication/serializers/connect_token_secret.py:169 labels/models.py:11 @@ -652,7 +654,7 @@ msgstr "密码规则" #: users/forms/profile.py:32 users/models/group.py:13 #: users/models/preference.py:11 users/models/user.py:874 #: xpack/plugins/cloud/models.py:32 xpack/plugins/cloud/models.py:272 -#: xpack/plugins/cloud/serializers/task.py:71 +#: xpack/plugins/cloud/serializers/task.py:70 msgid "Name" msgstr "名称" @@ -670,7 +672,7 @@ msgstr "特权账号" msgid "Is active" msgstr "激活" -#: accounts/models/template.py:18 +#: accounts/models/template.py:18 assets/models/_user.py:53 msgid "Auto push" msgstr "自动推送" @@ -784,18 +786,19 @@ msgstr "参数" msgid "Exist policy" msgstr "账号存在策略" -#: accounts/serializers/account/account.py:195 assets/models/label.py:21 -#: assets/models/platform.py:95 assets/serializers/asset/common.py:125 -#: assets/serializers/cagegory.py:12 assets/serializers/platform.py:165 -#: assets/serializers/platform.py:262 perms/serializers/user_permission.py:26 -#: settings/models.py:36 tickets/models/ticket/apply_application.py:13 -#: users/models/preference.py:12 +#: accounts/serializers/account/account.py:195 applications/models.py:11 +#: assets/models/label.py:21 assets/models/platform.py:95 +#: assets/serializers/asset/common.py:125 assets/serializers/cagegory.py:12 +#: assets/serializers/platform.py:165 assets/serializers/platform.py:262 +#: perms/serializers/user_permission.py:26 settings/models.py:36 +#: tickets/models/ticket/apply_application.py:13 users/models/preference.py:12 msgid "Category" msgstr "类别" #: accounts/serializers/account/account.py:196 #: accounts/serializers/automations/base.py:55 acls/models/command_acl.py:24 -#: acls/serializers/command_acl.py:19 assets/models/automations/base.py:20 +#: acls/serializers/command_acl.py:19 applications/models.py:14 +#: assets/models/_user.py:50 assets/models/automations/base.py:20 #: assets/models/cmd_filter.py:74 assets/models/platform.py:96 #: assets/serializers/asset/common.py:126 assets/serializers/platform.py:145 #: assets/serializers/platform.py:164 audits/serializers.py:53 @@ -839,7 +842,6 @@ msgstr "已修改" #: ops/models/job.py:152 ops/serializers/job.py:19 #: perms/serializers/permission.py:36 #: terminal/templates/terminal/_msg_command_execute_alert.html:16 -#: xpack/plugins/cloud/manager.py:73 msgid "Assets" msgstr "资产" @@ -853,7 +855,6 @@ msgid "Asset does not support this secret type: %s" msgstr "资产不支持账号类型: %s" #: accounts/serializers/account/account.py:410 -#: xpack/plugins/cloud/serializers/account.py:111 msgid "Account has exist" msgstr "账号已存在" @@ -880,8 +881,8 @@ msgstr "ID" #: terminal/serializers/command.py:16 #: terminal/templates/terminal/_msg_command_warning.html:6 #: terminal/templates/terminal/_msg_session_sharing.html:6 -#: tickets/models/comment.py:21 users/const.py:14 users/models/user.py:1062 -#: users/models/user.py:1100 +#: tickets/models/comment.py:21 users/const.py:14 users/models/user.py:1059 +#: users/models/user.py:1097 msgid "User" msgstr "用户" @@ -966,8 +967,9 @@ msgid "" "default parameters will be used" msgstr "关联平台,可配置推送参数,如果不关联,将使用默认参数" -#: accounts/serializers/account/virtual.py:19 assets/models/cmd_filter.py:40 -#: assets/models/cmd_filter.py:88 common/db/models.py:36 ops/models/adhoc.py:26 +#: accounts/serializers/account/virtual.py:19 assets/models/_user.py:27 +#: assets/models/cmd_filter.py:40 assets/models/cmd_filter.py:88 +#: assets/models/group.py:20 common/db/models.py:36 ops/models/adhoc.py:26 #: ops/models/job.py:158 ops/models/playbook.py:31 rbac/models/role.py:37 #: settings/models.py:39 terminal/models/applet/applet.py:45 #: terminal/models/applet/applet.py:321 terminal/models/applet/host.py:143 @@ -1097,7 +1099,7 @@ msgid "Deleted account" msgstr "删除账号" #: accounts/templates/accounts/change_secret_failed_info.html:3 -#: terminal/serializers/task.py:10 +#: ops/templates/ops/celery_task_log.html:71 terminal/serializers/task.py:10 msgid "Task name" msgstr "任务名称" @@ -1145,6 +1147,8 @@ msgid "Review" msgstr "审批" #: acls/const.py:9 +#, fuzzy +#| msgid "Warning" msgid "Warn" msgstr "告警" @@ -1152,13 +1156,15 @@ msgstr "告警" msgid "Notify" msgstr "" -#: acls/models/base.py:37 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:112 xpack/plugins/cloud/models.py:278 +#: acls/models/base.py:37 assets/models/_user.py:51 +#: assets/models/cmd_filter.py:76 terminal/models/component/endpoint.py:112 +#: xpack/plugins/cloud/models.py:278 msgid "Priority" msgstr "优先级" -#: acls/models/base.py:38 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:113 xpack/plugins/cloud/models.py:279 +#: acls/models/base.py:38 assets/models/_user.py:51 +#: assets/models/cmd_filter.py:76 terminal/models/component/endpoint.py:113 +#: xpack/plugins/cloud/models.py:279 msgid "1-100, the lower the value will be match first" msgstr "优先级可选范围为 1-100 (数值越小越优先)" @@ -1303,7 +1309,7 @@ msgid "None of the reviewers belong to Organization `{}`" msgstr "所有复核人都不属于组织 `{}`" #: acls/serializers/rules/rules.py:20 -#: xpack/plugins/cloud/serializers/task.py:146 +#: xpack/plugins/cloud/serializers/task.py:145 msgid "IP address invalid: `{}`" msgstr "IP 地址无效: `{}`" @@ -1361,6 +1367,23 @@ msgstr "" "用户刚刚成功登录到系统。请确保这是授权的操作。如果您怀疑这是一个未经授权的访" "问,请立即采取适当的措施。" +#: applications/apps.py:9 +msgid "App Applications" +msgstr "应用管理" + +#: applications/models.py:16 xpack/plugins/cloud/models.py:37 +#: xpack/plugins/cloud/serializers/account.py:68 +msgid "Attrs" +msgstr "属性" + +#: applications/models.py:19 +msgid "Application" +msgstr "应用程序" + +#: applications/models.py:23 +msgid "Can match application" +msgstr "匹配应用" + #: assets/api/asset/asset.py:180 msgid "Cannot create asset directly, you should create a host or other" msgstr "不能直接创建资产, 你应该创建主机或其他资产" @@ -1465,7 +1488,6 @@ msgstr "脚本" #: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:71 #: settings/serializers/feature.py:49 settings/serializers/msg.py:31 #: terminal/models/component/endpoint.py:13 terminal/serializers/applet.py:17 -#: xpack/plugins/cloud/manager.py:73 #: xpack/plugins/cloud/serializers/account_attrs.py:72 msgid "Host" msgstr "主机" @@ -1669,6 +1691,104 @@ msgstr "网站" msgid "This function is not supported temporarily" msgstr "暂时不支持此功能" +#: assets/models/_user.py:25 +msgid "SSH private key" +msgstr "SSH密钥" + +#: assets/models/_user.py:26 +msgid "SSH public key" +msgstr "SSH公钥" + +# msgid "Comment" +# msgstr "备注" +#: assets/models/_user.py:28 assets/models/automations/base.py:114 +#: assets/models/cmd_filter.py:41 assets/models/group.py:19 +#: audits/models.py:267 common/db/models.py:34 ops/models/base.py:54 +#: ops/models/job.py:240 users/models/user.py:1098 +msgid "Date created" +msgstr "创建日期" + +#: assets/models/_user.py:29 assets/models/cmd_filter.py:42 +#: common/db/models.py:35 users/models/user.py:936 +msgid "Date updated" +msgstr "更新日期" + +#: assets/models/_user.py:30 assets/models/cmd_filter.py:44 +#: assets/models/cmd_filter.py:91 assets/models/group.py:18 +#: common/db/models.py:32 users/models/user.py:917 +#: users/serializers/group.py:32 +msgid "Created by" +msgstr "创建者" + +#: assets/models/_user.py:40 +msgid "Automatic managed" +msgstr "托管密码" + +#: assets/models/_user.py:41 +msgid "Manually input" +msgstr "手动输入" + +#: assets/models/_user.py:45 +msgid "Common user" +msgstr "普通用户" + +#: assets/models/_user.py:46 assets/models/_user.py:95 +msgid "Admin user" +msgstr "特权用户" + +#: assets/models/_user.py:49 +msgid "Username same with user" +msgstr "用户名与用户相同" + +#: assets/models/_user.py:52 authentication/models/connection_token.py:41 +#: authentication/serializers/connect_token_secret.py:114 +#: settings/serializers/msg.py:29 terminal/models/applet/applet.py:42 +#: terminal/models/virtualapp/virtualapp.py:24 +#: terminal/serializers/session.py:21 terminal/serializers/session.py:48 +#: terminal/serializers/storage.py:71 +msgid "Protocol" +msgstr "协议" + +#: assets/models/_user.py:54 +msgid "Sudo" +msgstr "Sudo" + +#: assets/models/_user.py:55 ops/const.py:50 ops/const.py:61 +msgid "Shell" +msgstr "Shell" + +#: assets/models/_user.py:56 +msgid "Login mode" +msgstr "认证方式" + +#: assets/models/_user.py:57 terminal/serializers/storage.py:152 +msgid "SFTP Root" +msgstr "SFTP根路径" + +#: assets/models/_user.py:58 +msgid "Home" +msgstr "家目录" + +#: assets/models/_user.py:59 +msgid "System groups" +msgstr "用户组" + +#: assets/models/_user.py:62 +msgid "User switch" +msgstr "用户切换" + +#: assets/models/_user.py:63 +msgid "Switch from" +msgstr "切换自" + +#: assets/models/_user.py:69 +msgid "System user" +msgstr "系统用户" + +#: assets/models/_user.py:71 +msgid "Can match system user" +msgstr "可以匹配系统用户" + #: assets/models/asset/cloud.py:11 msgid "Cloud" msgstr "云服务" @@ -1693,8 +1813,10 @@ msgid "Platform" msgstr "平台" #: assets/models/asset/common.py:163 assets/models/domain.py:22 -msgid "Zone" -msgstr "" +#: authentication/serializers/connect_token_secret.py:136 +#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:327 +msgid "Domain" +msgstr "网域" #: assets/models/asset/common.py:166 assets/serializers/asset/common.py:385 #: assets/serializers/asset/host.py:11 @@ -1764,14 +1886,6 @@ msgstr "自动化任务" msgid "Asset automation task" msgstr "资产自动化任务" -# msgid "Comment" -# msgstr "备注" -#: assets/models/automations/base.py:114 assets/models/cmd_filter.py:41 -#: audits/models.py:267 common/db/models.py:34 ops/models/base.py:54 -#: ops/models/job.py:240 users/models/user.py:1101 -msgid "Date created" -msgstr "创建日期" - #: assets/models/automations/gather_facts.py:15 msgid "Gather asset facts" msgstr "收集资产信息" @@ -1793,17 +1907,6 @@ msgstr "校验日期" msgid "User group" msgstr "用户组" -#: assets/models/cmd_filter.py:42 common/db/models.py:35 -#: users/models/user.py:936 -msgid "Date updated" -msgstr "更新日期" - -#: assets/models/cmd_filter.py:44 assets/models/cmd_filter.py:91 -#: common/db/models.py:32 users/models/user.py:917 -#: users/serializers/group.py:32 -msgid "Created by" -msgstr "创建者" - #: assets/models/cmd_filter.py:52 msgid "Command filter" msgstr "命令过滤器" @@ -1836,7 +1939,21 @@ msgstr "收藏的资产" msgid "Gateway" msgstr "网关" -#: assets/models/label.py:15 rbac/const.py:6 users/models/user.py:1086 +#: assets/models/group.py:27 +msgid "Asset group" +msgstr "资产组" + +#: assets/models/group.py:31 assets/models/platform.py:19 +#: assets/serializers/platform.py:146 +#: xpack/plugins/cloud/providers/nutanix.py:30 +msgid "Default" +msgstr "默认" + +#: assets/models/group.py:31 +msgid "Default asset group" +msgstr "默认资产组" + +#: assets/models/label.py:15 rbac/const.py:6 users/models/user.py:1083 msgid "System" msgstr "系统" @@ -1891,11 +2008,6 @@ msgstr "主要的" msgid "Required" msgstr "必须的" -#: assets/models/platform.py:19 assets/serializers/platform.py:146 -#: xpack/plugins/cloud/providers/nutanix.py:30 -msgid "Default" -msgstr "默认" - #: assets/models/platform.py:20 msgid "Public" msgstr "开放的" @@ -2003,7 +2115,7 @@ msgid "Charset" msgstr "编码" #: assets/models/platform.py:104 assets/serializers/platform.py:198 -msgid "Gateway enabled" +msgid "Domain enabled" msgstr "启用网域" #: assets/models/platform.py:106 assets/serializers/platform.py:191 @@ -2034,7 +2146,7 @@ msgstr "资产中批量更新平台,不符合平台类型跳过的资产" #: authentication/serializers/connect_token_secret.py:75 #: perms/models/asset_permission.py:76 perms/serializers/permission.py:46 #: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:328 -#: xpack/plugins/cloud/serializers/task.py:34 +#: xpack/plugins/cloud/serializers/task.py:33 msgid "Protocols" msgstr "协议组" @@ -2243,7 +2355,7 @@ msgid "" msgstr "" #: assets/serializers/platform.py:199 -msgid "Assets can be connected using a zone gateway" +msgid "Assets can be connected using a domain gateway" msgstr "" #: assets/serializers/platform.py:201 @@ -2373,7 +2485,6 @@ msgstr "映射目录" #: audits/const.py:23 rbac/tree.py:238 terminal/api/session/session.py:277 #: terminal/templates/terminal/_msg_command_warning.html:18 #: terminal/templates/terminal/_msg_session_sharing.html:10 -#: xpack/plugins/cloud/manager.py:74 msgid "View" msgstr "查看" @@ -2433,7 +2544,6 @@ msgstr "登录日志" #: audits/const.py:51 terminal/models/applet/host.py:144 #: terminal/models/component/task.py:22 -#: xpack/plugins/cloud/serializers/account.py:55 msgid "Task" msgstr "任务" @@ -2543,8 +2653,9 @@ msgstr "MFA" msgid "Login Date" msgstr "登录日期" -#: audits/models.py:212 audits/models.py:266 -msgid "Auth backend" +#: audits/models.py:212 audits/models.py:266 audits/serializers.py:70 +#: audits/serializers.py:184 +msgid "Authentication backend" msgstr "认证方式" #: audits/models.py:256 @@ -2574,12 +2685,6 @@ msgstr "创建者" msgid "Reason display" msgstr "原因描述" -#: audits/serializers.py:70 audits/serializers.py:184 -#, fuzzy -#| msgid "Auth backend" -msgid "Auth backend display" -msgstr "认证方式" - #: audits/serializers.py:134 #, python-format msgid "%s %s this resource" @@ -3095,15 +3200,6 @@ msgstr "自定义用户名" msgid "Input secret" msgstr "自定义密码" -#: authentication/models/connection_token.py:41 -#: authentication/serializers/connect_token_secret.py:114 -#: settings/serializers/msg.py:29 terminal/models/applet/applet.py:42 -#: terminal/models/virtualapp/virtualapp.py:24 -#: terminal/serializers/session.py:21 terminal/serializers/session.py:48 -#: terminal/serializers/storage.py:71 -msgid "Protocol" -msgstr "协议" - #: authentication/models/connection_token.py:42 msgid "Connect method" msgstr "连接方式" @@ -3202,11 +3298,6 @@ msgstr "选项" msgid "Component" msgstr "组件" -#: authentication/serializers/connect_token_secret.py:136 -#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:327 -msgid "Domain" -msgstr "网域" - #: authentication/serializers/connect_token_secret.py:138 msgid "Expired now" msgstr "立刻过期" @@ -3670,7 +3761,7 @@ msgstr "运行中" msgid "Canceled" msgstr "取消" -#: common/const/common.py:5 xpack/plugins/cloud/manager.py:380 +#: common/const/common.py:5 #, python-format msgid "%(name)s was created successfully" msgstr "%(name)s 创建成功" @@ -4199,10 +4290,6 @@ msgstr "仅限特权账号" msgid "Privileged First" msgstr "特权账号优先" -#: ops/const.py:50 ops/const.py:61 -msgid "Shell" -msgstr "Shell" - #: ops/const.py:51 ops/const.py:62 msgid "Powershell" msgstr "PowerShell" @@ -4310,7 +4397,6 @@ msgid "Result" msgstr "结果" #: ops/models/base.py:52 ops/models/job.py:238 -#: xpack/plugins/cloud/manager.py:77 msgid "Summary" msgstr "汇总" @@ -4889,7 +4975,7 @@ msgstr "系统设置" msgid "Session audits" msgstr "会话审计" -#: rbac/tree.py:49 xpack/plugins/cloud/manager.py:74 +#: rbac/tree.py:49 msgid "Cloud import" msgstr "云同步" @@ -6816,7 +6902,7 @@ msgid "Can download session replay" msgstr "可以下载会话录像" #: terminal/models/session/session.py:35 -msgid "Account ID" +msgid "Account id" msgstr "账号 ID" #: terminal/models/session/session.py:37 terminal/models/session/sharing.py:118 @@ -7196,8 +7282,7 @@ msgstr "Access key ID(AK)" msgid "Access key secret" msgstr "Access key secret(SK)" -#: terminal/serializers/storage.py:68 xpack/plugins/cloud/manager.py:90 -#: xpack/plugins/cloud/models.py:249 +#: terminal/serializers/storage.py:68 xpack/plugins/cloud/models.py:249 msgid "Region" msgstr "地域" @@ -7222,10 +7307,6 @@ msgstr "主机" msgid "Private key" msgstr "ssh私钥" -#: terminal/serializers/storage.py:152 -msgid "SFTP Root" -msgstr "SFTP根路径" - #: terminal/serializers/storage.py:173 msgid "The address cannot contain the special character `#`" msgstr "地址中不能包含特殊字符 `#`" @@ -7998,31 +8079,31 @@ msgstr "需要更新密码" msgid "Date api key used" msgstr "Api key 最后使用日期" -#: users/models/user.py:1057 +#: users/models/user.py:1054 msgid "Can not delete admin user" msgstr "无法删除管理员用户" -#: users/models/user.py:1071 +#: users/models/user.py:1068 msgid "Can invite user" msgstr "可以邀请用户" -#: users/models/user.py:1072 +#: users/models/user.py:1069 msgid "Can remove user" msgstr "可以移除用户" -#: users/models/user.py:1073 +#: users/models/user.py:1070 msgid "Can match user" msgstr "可以匹配用户" -#: users/models/user.py:1082 +#: users/models/user.py:1079 msgid "Administrator" msgstr "管理员" -#: users/models/user.py:1085 +#: users/models/user.py:1082 msgid "Administrator is the super user of system" msgstr "Administrator是初始的超级管理员" -#: users/models/user.py:1110 +#: users/models/user.py:1107 msgid "User password history" msgstr "用户密码历史" @@ -8071,8 +8152,8 @@ msgid "" "emails containing file attachments.
Such as: account backup files, " "account password change results files" msgstr "" -"文件加密密码,当系统发送的邮件中包含文件附件时,使用此密码进行解密。
如:" -"账号备份文件、账号改密结果文件" +"文件加密密码,当系统发送的邮件中包含文件附件时,使用此密码进行解密。
" +"如:账号备份文件、账号改密结果文件" #: users/serializers/preference/lina.py:38 users/serializers/profile.py:48 msgid "The newly set password is inconsistent" @@ -8528,10 +8609,9 @@ msgstr "重置密码成功,返回到登录页面" msgid "XPACK" msgstr "XPack" -#: xpack/exceptions.py:8 +#: xpack/exceptions.py:7 msgid "" -"Based on the current task configuration, assets that do not match the " -"strategy will skipped." +"The current task is not synchronized with unmatched policy assets, skipping" msgstr "" #: xpack/plugins/cloud/api.py:60 @@ -8654,19 +8734,19 @@ msgstr "实例名称和部分IP" msgid "Succeed" msgstr "成功" -#: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:80 +#: xpack/plugins/cloud/const.py:52 msgid "Unsync" msgstr "未同步" -#: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:79 +#: xpack/plugins/cloud/const.py:53 msgid "New Sync" msgstr "新同步" -#: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:79 +#: xpack/plugins/cloud/const.py:54 msgid "Synced" msgstr "已同步" -#: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:80 +#: xpack/plugins/cloud/const.py:55 msgid "Released" msgstr "已释放" @@ -8678,98 +8758,11 @@ msgstr "与" msgid "Or" msgstr "或" -#: xpack/plugins/cloud/manager.py:41 -#, python-format -msgid "Task \"%s\" starts executing" -msgstr "任务 \"%s\" 开始执行" - -#: xpack/plugins/cloud/manager.py:45 xpack/plugins/cloud/manager.py:55 -#: xpack/plugins/cloud/manager.py:57 xpack/plugins/cloud/providers/gcp.py:64 +#: xpack/plugins/cloud/manager.py:55 xpack/plugins/cloud/providers/gcp.py:64 #: xpack/plugins/cloud/providers/huaweicloud.py:34 msgid "Account unavailable" msgstr "账号无效" -#: xpack/plugins/cloud/manager.py:71 -msgid "View the task details path: " -msgstr "查看任务详情路径:" - -#: xpack/plugins/cloud/manager.py:74 -msgid "Account Details" -msgstr "账号详情" - -#: xpack/plugins/cloud/manager.py:75 -msgid "Synchronization History List" -msgstr "同步历史列表" - -#: xpack/plugins/cloud/manager.py:75 -msgid "Synchronization Instance List" -msgstr "同步实例列表" - -#: xpack/plugins/cloud/manager.py:83 -msgid "Task execution completed" -msgstr "任务执行完成" - -#: xpack/plugins/cloud/manager.py:87 -msgid "Synchronization regions" -msgstr "同步地域" - -#: xpack/plugins/cloud/manager.py:110 -#, python-format -msgid "Get instances of region \"%s\" error, error: %s" -msgstr "获取地域 \"%s\" 下的实例失败,错误:%s" - -#: xpack/plugins/cloud/manager.py:128 -#, python-format -msgid "The instance IP \"%s\" is not in network segment \"%s\"" -msgstr "实例的IP \"%s\" 不在网段 \"%s\" 中" - -#: xpack/plugins/cloud/manager.py:164 -#, python-format -msgid "Failed to synchronize the instance \"%s\"" -msgstr "同步实例 \"%s\" 失败" - -#: xpack/plugins/cloud/manager.py:316 -#, python-format -msgid "" -"The updated platform of asset \"%s\" is inconsistent with the original " -"platform type. Skip platform and protocol updates" -msgstr "更新的资产 \"%s\" 的平台类型和原类型不一致。跳过平台和协议更新" - -#: xpack/plugins/cloud/manager.py:358 -#, python-format -msgid "The asset \"%s\" already exists" -msgstr "资产 \"%s\" 已存在" - -#: xpack/plugins/cloud/manager.py:362 -#, python-format -msgid "Update asset \"%s\"" -msgstr "更新资产 \"%s\"" - -#: xpack/plugins/cloud/manager.py:365 -#, python-format -msgid "Asset \"%s\" has been updated" -msgstr "资产 \"%s\" 已更新" - -#: xpack/plugins/cloud/manager.py:376 -#, python-format -msgid "Prepare to create asset \"%s\"" -msgstr "准备创建资产 \"%s\"" - -#: xpack/plugins/cloud/manager.py:388 -#, python-format -msgid "Set nodes \"%s\"" -msgstr "设置节点 \"%s\"" - -#: xpack/plugins/cloud/manager.py:414 -#, python-format -msgid "Set accounts \"%s\"" -msgstr "设置账号 \"%s\"" - -#: xpack/plugins/cloud/manager.py:430 -#, python-format -msgid "Set protocols \"%s\"" -msgstr "设置协议 \"%s\"" - #: xpack/plugins/cloud/meta.py:9 msgid "Cloud center" msgstr "云管中心" @@ -8778,11 +8771,6 @@ msgstr "云管中心" msgid "Provider" msgstr "云服务商" -#: xpack/plugins/cloud/models.py:37 -#: xpack/plugins/cloud/serializers/account.py:69 -msgid "Attrs" -msgstr "属性" - #: xpack/plugins/cloud/models.py:38 msgid "Validity" msgstr "有效" @@ -8795,7 +8783,7 @@ msgstr "云账号" msgid "Test cloud account" msgstr "测试云账号" -#: xpack/plugins/cloud/models.py:88 xpack/plugins/cloud/serializers/task.py:160 +#: xpack/plugins/cloud/models.py:88 xpack/plugins/cloud/serializers/task.py:159 msgid "Regions" msgstr "地域" @@ -8803,16 +8791,16 @@ msgstr "地域" msgid "Hostname strategy" msgstr "主机名策略" -#: xpack/plugins/cloud/models.py:96 xpack/plugins/cloud/serializers/task.py:163 +#: xpack/plugins/cloud/models.py:96 xpack/plugins/cloud/serializers/task.py:162 msgid "IP network segment group" msgstr "IP网段组" -#: xpack/plugins/cloud/models.py:99 xpack/plugins/cloud/serializers/task.py:168 +#: xpack/plugins/cloud/models.py:99 xpack/plugins/cloud/serializers/task.py:167 msgid "Sync IP type" msgstr "同步IP类型" #: xpack/plugins/cloud/models.py:102 -#: xpack/plugins/cloud/serializers/task.py:186 +#: xpack/plugins/cloud/serializers/task.py:185 msgid "Always update" msgstr "总是更新" @@ -8861,7 +8849,7 @@ msgstr "实例" msgid "Sync instance detail" msgstr "同步实例详情" -#: xpack/plugins/cloud/models.py:275 xpack/plugins/cloud/serializers/task.py:73 +#: xpack/plugins/cloud/models.py:275 xpack/plugins/cloud/serializers/task.py:72 msgid "Rule relation" msgstr "条件关系" @@ -8917,7 +8905,7 @@ msgstr "规则匹配" msgid "Rule value" msgstr "规则值" -#: xpack/plugins/cloud/models.py:321 xpack/plugins/cloud/serializers/task.py:76 +#: xpack/plugins/cloud/models.py:321 xpack/plugins/cloud/serializers/task.py:75 msgid "Strategy rule" msgstr "条件" @@ -8929,7 +8917,7 @@ msgstr "动作属性" msgid "Action value" msgstr "动作值" -#: xpack/plugins/cloud/models.py:345 xpack/plugins/cloud/serializers/task.py:79 +#: xpack/plugins/cloud/models.py:345 xpack/plugins/cloud/serializers/task.py:78 msgid "Strategy action" msgstr "动作" @@ -9123,16 +9111,11 @@ msgstr "TR-Istanbul" msgid "CN East-Suqian" msgstr "华东-宿迁" -#: xpack/plugins/cloud/providers/lan.py:79 -#, python-format -msgid "Port \"%(port)s\" of instance IP \"%(ip)s\" is not reachable" -msgstr "实例 IP \"%(ip)s\" 的端口 \"%(port)s\" 不可连接" - -#: xpack/plugins/cloud/serializers/account.py:70 +#: xpack/plugins/cloud/serializers/account.py:69 msgid "Validity display" msgstr "有效性显示" -#: xpack/plugins/cloud/serializers/account.py:71 +#: xpack/plugins/cloud/serializers/account.py:70 msgid "Provider display" msgstr "服务商显示" @@ -9225,7 +9208,7 @@ msgstr "测试超时时间" msgid "Project" msgstr "project" -#: xpack/plugins/cloud/serializers/task.py:152 +#: xpack/plugins/cloud/serializers/task.py:151 msgid "" "Only instances matching the IP range will be synced.
If the instance " "contains multiple IP addresses, the first IP address that matches will be " @@ -9237,11 +9220,11 @@ msgstr "" "到的 IP 地址将被用作创建的资产的 IP。
默认值 * 表示同步所有实例和随机匹配 " "IP 地址。
例如: 192.168.1.0/24,10.1.1.1-10.1.1.20。" -#: xpack/plugins/cloud/serializers/task.py:158 +#: xpack/plugins/cloud/serializers/task.py:157 msgid "History count" msgstr "执行次数" -#: xpack/plugins/cloud/serializers/task.py:159 +#: xpack/plugins/cloud/serializers/task.py:158 msgid "Instance count" msgstr "实例个数" @@ -9257,8 +9240,7 @@ msgstr "定期清除同步实例任务执行记录" msgid "Restore default successfully." msgstr "恢复默认成功!" -#: xpack/plugins/interface/meta.py:9 xpack/plugins/interface/models.py:45 -#: xpack/plugins/interface/models.py:86 +#: xpack/plugins/interface/meta.py:9 msgid "Interface settings" msgstr "界面设置" @@ -9293,6 +9275,10 @@ msgstr "主题" msgid "Footer content" msgstr "页脚内容" +#: xpack/plugins/interface/models.py:45 xpack/plugins/interface/models.py:86 +msgid "Interface setting" +msgstr "界面设置" + #: xpack/plugins/interface/serializers/interface.py:37 msgid "Wide logo on top" msgstr "顶部宽 Logo" @@ -9306,7 +9292,7 @@ msgid "License import successfully" msgstr "许可证导入成功" #: xpack/plugins/license/api.py:53 -msgid "Invalid license" +msgid "License is invalid" msgstr "无效的许可证" #: xpack/plugins/license/meta.py:10 xpack/plugins/license/models.py:144 @@ -9329,10 +9315,17 @@ msgstr "企业专业版" msgid "Ultimate edition" msgstr "企业旗舰版" -#, fuzzy -#~| msgid "permed assets" -#~ msgid "Release assets" -#~ msgstr "授权的资产" +#~ msgid "Reopen" +#~ msgstr "重新打开" + +#~ msgid "New file encryption password" +#~ msgstr "文件加密密码" + +#~ msgid "Confirm file encryption password" +#~ msgstr "确认文件加密密码" + +#~ msgid "Key password" +#~ msgstr "密钥密码" #~ msgid "Title of login page" #~ msgstr "登录页标题" @@ -9346,84 +9339,6 @@ msgstr "企业旗舰版" #~ msgid "Logo of logout page" #~ msgstr "退出页面小 Logo" -#~ msgid "Interface setting" -#~ msgstr "界面设置" - -#~ msgid "License is invalid" -#~ msgstr "无效的许可证" - -#~ msgid "App Applications" -#~ msgstr "应用管理" - -#~ msgid "Application" -#~ msgstr "应用程序" - -#~ msgid "Can match application" -#~ msgstr "匹配应用" - -#~ msgid "SSH private key" -#~ msgstr "SSH密钥" - -#~ msgid "SSH public key" -#~ msgstr "SSH公钥" - -#~ msgid "Automatic managed" -#~ msgstr "托管密码" - -#~ msgid "Manually input" -#~ msgstr "手动输入" - -#~ msgid "Common user" -#~ msgstr "普通用户" - -#~ msgid "Admin user" -#~ msgstr "特权用户" - -#~ msgid "Username same with user" -#~ msgstr "用户名与用户相同" - -#~ msgid "Sudo" -#~ msgstr "Sudo" - -#~ msgid "Login mode" -#~ msgstr "认证方式" - -#~ msgid "Home" -#~ msgstr "家目录" - -#~ msgid "System groups" -#~ msgstr "用户组" - -#~ msgid "User switch" -#~ msgstr "用户切换" - -#~ msgid "Switch from" -#~ msgstr "切换自" - -#~ msgid "System user" -#~ msgstr "系统用户" - -#~ msgid "Can match system user" -#~ msgstr "可以匹配系统用户" - -#~ msgid "Asset group" -#~ msgstr "资产组" - -#~ msgid "Default asset group" -#~ msgstr "默认资产组" - -#~ msgid "Reopen" -#~ msgstr "重新打开" - -#~ msgid "New file encryption password" -#~ msgstr "文件加密密码" - -#~ msgid "Confirm file encryption password" -#~ msgstr "确认文件加密密码" - -#~ msgid "Key password" -#~ msgstr "密钥密码" - #~ msgid "Organization ID" #~ msgstr "组织 ID" diff --git a/apps/i18n/lina/en.json b/apps/i18n/lina/en.json index 90dce7704..ebd6e6c0e 100644 --- a/apps/i18n/lina/en.json +++ b/apps/i18n/lina/en.json @@ -181,7 +181,7 @@ "BasePort": "Listening ports", "Basic": "Basic", "BasicInfo": "Basic information", - "BasicSetting": "Basic", + "BasicSettings": "General", "BatchConsent": "Batch Approval", "BatchDeployment": "Batch deployment", "BatchProcessing": "{number} items selected", @@ -219,7 +219,7 @@ "ChangeField": "Change field", "ChangeOrganization": "Change organization", "ChangePassword": "Change password", - "ChangeReceiver": "Change recipient", + "EditRecipient": "Edit recipient", "ChangeSecretParams": "Change password parameters", "ChangeViewHelpText": "Click to switch different views", "Chat": "Chat", @@ -338,7 +338,7 @@ "CustomCol": "Customize display columns", "CustomCreate": "Create asset - custom", "CustomFields": "Custom attributes", - "CustomFile": "Please place custom files in the specified directory (data/sms/main.py), and enable configuration item sms_custom_file_md5= in config.txt", + "CustomFile": "Please place custom files in the specified directory (data/sms/main.py), and enable configuration item `SMS_CUSTOM_FILE_MD5=` in config.txt", "CustomHelpMessage": "Custom assets type is dependent on remote applications. please configure it in system settings in the remote applications", "CustomParams": "The left side are parameters received by the sms platform, and the right side are jumpserver parameters waiting for formatting, which will eventually be as follows:
{\"phone_numbers\": \"123,134\", \"content\": \"verification code: 666666\"}", "CustomUpdate": "Update the asset - custom", @@ -504,7 +504,7 @@ "Generate": "Generate", "GenerateAccounts": "Regenerate account", "GenerateSuccessMsg": "Account creation successful", - "GenericSetting": "Generic", + "GeneralSetting": "General", "GoHomePage": "Go to homepage", "Goto": "Go to", "GrantedAssets": "Authorized assets", @@ -515,8 +515,6 @@ "HardwareInfo": "Hardware information", "HasImportErrorItemMsg": "There are import failures, click on the left x to view the failure reasons, after editing the table, you can continue to import failures.", "Help": "Help", - "HelpDocumentTip": "Document url for navigation bar 'help -> document' redirection.", - "HelpSupportTip": "Support url for the navigation bar 'help -> support' redirection.", "HighLoad": "Higher", "HistoricalSessionNum": "Total historical sessions", "History": "History", @@ -966,7 +964,7 @@ "SCP": "Sangfor cloud platform", "SMS": "Message", "SMSProvider": "SMS service provider", - "SMTP": "Email server", + "SMTP": "Server", "SSHKey": "SSH Key", "SSHKeyOfProfileSSHUpdatePage": "You can reset and download the SSH public key by clicking the button below, or copy your SSH public key and submit it.", "SSHKeySetting": "Ssh key", @@ -1125,16 +1123,16 @@ "SystemRoleHelpMsg": "System roles are roles that apply universally across all organizations within the platform. these roles allow you to define specific permissions and access levels for users across the entire system. changes made to system roles will affect all organizations using the platform.", "SystemRoles": "System roles", "SystemSetting": "System settings", - "SystemTools": "System tools", + "SystemTools": "Tools", "TableColSetting": "Select visible attribute columns", - "TableSetting": "Table preference", + "TableSetting": "Table preferences", "Target": "Target", "TargetResources": "Target resource", "Task": "Task", "TaskDetail": "Task details", "TaskDone": "Task finished", "TaskID": "Task id", - "TaskList": "System tasks", + "SystemTasks": "Tasks", "TaskMonitor": "Monitoring", "TechnologyConsult": "Technical consultation", "TempPassword": "The temporary password is valid for 300 seconds and becomes invalid immediately after use", @@ -1308,5 +1306,9 @@ "ZoneEnabled": "Enable zone", "ZoneHelpMessage": "The zone is the location where assets are located, which can be a data center, public cloud, or VPC. Gateways can be set up within the region. When the network cannot be directly accessed, users can utilize gateways to log in to the assets.", "ZoneList": "Zones", - "ZoneUpdate": "Update the zone" + "ZoneUpdate": "Update the zone", + "SiteURLTip": "For example: https://demo.jumpserver.org", + "Settings...": "Settings...", + "EmailTemplate": "Template", + "EmailTemplateHelpTip": "Email template is used for sending emails and includes the email subject prefix and email content" } \ No newline at end of file diff --git a/apps/i18n/lina/ja.json b/apps/i18n/lina/ja.json index 99257a408..dd0ec5d31 100644 --- a/apps/i18n/lina/ja.json +++ b/apps/i18n/lina/ja.json @@ -224,7 +224,7 @@ "BasePort": "リスニング ポート", "Basic": "基本設定", "BasicInfo": "基本情報", - "BasicSetting": "基本設定", + "BasicSettings": "基本設定", "BasicTools": "基本的なツール", "BatchActivate": "一括アクティブ化", "BatchApproval": "大量承認です", @@ -1330,7 +1330,7 @@ "TaskDispatch": "タスクは正常に送信されました", "TaskDone": "タスク終了", "TaskID": "タスク ID", - "TaskList": "タスクリスト", + "SystemTasks": "タスクリスト", "TaskMonitor": "タスクモニタリング", "TempPassword": "一時パスワードの有効期間は300秒で、使用後すぐに失効します", "Template": "テンプレート管理", diff --git a/apps/i18n/lina/zh.json b/apps/i18n/lina/zh.json index e48820541..2b2f4b40b 100644 --- a/apps/i18n/lina/zh.json +++ b/apps/i18n/lina/zh.json @@ -164,7 +164,7 @@ "BasePort": "监听端口", "Basic": "基本设置", "BasicInfo": "基本信息", - "BasicSetting": "基本设置", + "BasicSettings": "基本设置", "BatchConsent": "批量同意", "BatchDeployment": "批量部署", "BatchProcessing": "批量处理(选中 {Number} 项)", @@ -198,7 +198,7 @@ "ChangeField": "变更字段", "ChangeOrganization": "更改组织", "ChangePassword": "更新密码", - "ChangeReceiver": "修改消息接收人", + "EditRecipient": "编辑接收人", "ChangeSecretParams": "改密参数", "ChangeViewHelpText": "点击切换不同视图", "Chat": "聊天", @@ -483,8 +483,6 @@ "HardwareInfo": "硬件信息", "HasImportErrorItemMsg": "存在导入失败项,点击左侧 x 查看失败原因,点击表格编辑后,可以继续导入失败项", "Help": "帮助", - "HelpDocumentTip": "可以更改网站导航栏 帮助 -> 文档 的网址", - "HelpSupportTip": "可以更改网站导航栏 帮助 -> 支持 的网址", "HighLoad": "较高", "HistoricalSessionNum": "历史会话数", "History": "历史记录", @@ -564,7 +562,7 @@ "JobUpdate": "更新作业", "KingSoftCloud": "金山云", "KokoSetting": "KoKo 配置", - "GenericSetting": "通用配置", + "GeneralSetting": "通用配置", "LAN": "局域网", "LDAPUser": "LDAP 用户", "Label": "标签", @@ -1073,7 +1071,7 @@ "TaskDetail": "任务详情", "TaskDone": "任务结束", "TaskID": "任务 ID", - "TaskList": "任务列表", + "SystemTasks": "任务列表", "TaskMonitor": "任务监控", "TechnologyConsult": "技术咨询", "TempPasswordTip": "临时密码有效期为 300 秒,使用后立刻失效", @@ -1246,5 +1244,9 @@ "YourProfile": "个人信息", "AccessKeys": "访问密钥", "InformationModification": "信息更改", - "Phone": "手机" + "Phone": "手机", + "SiteURLTip": "例如:https://demo.jumpserver.org", + "Settings...": "设置...", + "EmailTemplate": "邮件模版", + "EmailTemplateHelpTip": "邮件模版是用于发送邮件的模版,包括邮件标题前缀和邮件内容" } diff --git a/apps/i18n/lina/zh_hant.json b/apps/i18n/lina/zh_hant.json index 86ef2659d..1ffe3230e 100644 --- a/apps/i18n/lina/zh_hant.json +++ b/apps/i18n/lina/zh_hant.json @@ -218,7 +218,7 @@ "BasePort": "監聽埠", "Basic": "基本設置", "BasicInfo": "基本資訊", - "BasicSetting": "基本設置", + "BasicSettings": "基本設置", "BasicTools": "基本工具", "BatchActivate": "批次啟用", "BatchApproval": "批次審批", @@ -1312,7 +1312,7 @@ "TaskDispatch": "任務下發成功", "TaskDone": "任務結束", "TaskID": "任務 ID", - "TaskList": "任務列表", + "SystemTasks": "任務列表", "TaskMonitor": "任務監控", "TechnologyConsult": "技術諮詢", "TempPassword": "臨時密碼有效期為 300 秒,使用後立刻失效", diff --git a/apps/jumpserver/conf.py b/apps/jumpserver/conf.py index 9089454da..7909d022c 100644 --- a/apps/jumpserver/conf.py +++ b/apps/jumpserver/conf.py @@ -587,7 +587,7 @@ class Config(dict): # 导航栏 帮助 'HELP_DOCUMENT_URL': 'https://docs.jumpserver.org/zh/v3/', - 'HELP_SUPPORT_URL': 'http://www.jumpserver.org/support/', + 'HELP_SUPPORT_URL': 'https://www.jumpserver.org/support/', 'FORGOT_PASSWORD_URL': '', 'HEALTH_CHECK_TOKEN': '', diff --git a/apps/settings/serializers/auth/base.py b/apps/settings/serializers/auth/base.py index 034ce7474..881764492 100644 --- a/apps/settings/serializers/auth/base.py +++ b/apps/settings/serializers/auth/base.py @@ -22,6 +22,10 @@ class AuthSettingSerializer(serializers.Serializer): AUTH_SLACK = serializers.BooleanField(default=False, label=_('WeCom Auth')) AUTH_SSO = serializers.BooleanField(default=False, label=_("SSO Auth")) AUTH_PASSKEY = serializers.BooleanField(default=False, label=_("Passkey Auth")) + EMAIL_SUFFIX = serializers.CharField( + required=False, max_length=1024, label=_("Email suffix"), + help_text=_('This is used by default if no email is returned during SSO authentication') + ) FORGOT_PASSWORD_URL = serializers.CharField( required=False, allow_blank=True, max_length=1024, label=_("Forgot Password URL") diff --git a/apps/settings/serializers/auth/sms.py b/apps/settings/serializers/auth/sms.py index 5a2b8e319..8d3fedf1c 100644 --- a/apps/settings/serializers/auth/sms.py +++ b/apps/settings/serializers/auth/sms.py @@ -14,12 +14,16 @@ __all__ = [ class SMSSettingSerializer(serializers.Serializer): - SMS_ENABLED = serializers.BooleanField(default=False, label=_('SMS')) + SMS_ENABLED = serializers.BooleanField( + default=False, label=_('SMS'), help_text=_('Enable Short Message Service (SMS)') + ) SMS_BACKEND = serializers.ChoiceField( - choices=BACKENDS.choices, default=BACKENDS.ALIBABA, label=_('SMS provider / Protocol') + choices=BACKENDS.choices, default=BACKENDS.ALIBABA, label=_('Provider'), + help_text=_('Short Message Service (SMS) provider or protocol') ) SMS_CODE_LENGTH = serializers.IntegerField( - default=4, min_value=4, max_value=16, label=_('SMS code length') + default=4, min_value=4, max_value=16, label=_('Code length'), + help_text=_('Length of the sent verification code') ) @@ -32,7 +36,8 @@ class BaseSMSSettingSerializer(serializers.Serializer): PREFIX_TITLE = _('SMS') SMS_TEST_PHONE = PhoneField( - validators=[PhoneValidator()], required=False, allow_blank=True, allow_null=True, label=_('Test phone') + validators=[PhoneValidator()], required=False, allow_blank=True, allow_null=True, + label=_('Phone') ) def to_representation(self, instance): diff --git a/apps/settings/serializers/basic.py b/apps/settings/serializers/basic.py index 1cdd96f23..27f8af7f0 100644 --- a/apps/settings/serializers/basic.py +++ b/apps/settings/serializers/basic.py @@ -10,8 +10,8 @@ class BasicSettingSerializer(serializers.Serializer): SITE_URL = serializers.URLField( required=True, label=_("Site URL"), help_text=_( - 'External URL, email links or other system callbacks are used to access it, ' - 'eg: http://dev.jumpserver.org:8080' + 'Site URL is the externally accessible address of the current product ' + 'service and is usually used in links in system emails' ) ) USER_GUIDE_URL = serializers.URLField( @@ -23,12 +23,12 @@ class BasicSettingSerializer(serializers.Serializer): help_text=_('The name of global organization to display') ) HELP_DOCUMENT_URL = serializers.URLField( - required=False, allow_blank=True, allow_null=True, label=_("Help Docs URL"), - help_text=_('default: http://docs.jumpserver.org') + required=False, allow_blank=True, allow_null=True, label=_("Document URL"), + help_text=_('Document URL refers to the address in the top navigation bar Help - Document') ) HELP_SUPPORT_URL = serializers.URLField( - required=False, allow_blank=True, allow_null=True, label=_("Help Support URL"), - help_text=_('default: http://www.jumpserver.org/support/') + required=False, allow_blank=True, allow_null=True, label=_("Support URL"), + help_text=_('Support URL refers to the address in the top navigation bar Help - Support') ) @staticmethod diff --git a/apps/settings/serializers/msg.py b/apps/settings/serializers/msg.py index 0a2a222e5..6d2077639 100644 --- a/apps/settings/serializers/msg.py +++ b/apps/settings/serializers/msg.py @@ -30,39 +30,37 @@ class EmailSettingSerializer(serializers.Serializer): ) EMAIL_HOST = serializers.CharField(max_length=1024, required=True, label=_("Host")) EMAIL_PORT = serializers.CharField(max_length=5, required=True, label=_("Port")) - EMAIL_HOST_USER = serializers.CharField(max_length=128, required=True, label=_("Account")) + EMAIL_HOST_USER = serializers.CharField( + max_length=128, required=True, label=_("User"), help_text=_("The user to be used for email server authentication") + ) EMAIL_HOST_PASSWORD = EncryptedField( max_length=1024, required=False, label=_("Password"), - help_text=_("Tips: Some provider use token except password") + help_text=_("Password to use for the email server. It is used in conjunction with `User` when authenticating to the email server") ) EMAIL_FROM = serializers.CharField( - max_length=128, allow_blank=True, required=False, label=_('Sender'), - help_text=_('Tips: Send mail account, default SMTP account as the send account') + max_length=128, allow_blank=True, required=False, label=_('From'), + help_text=_('Sender email address (default to using the `User`)') ) EMAIL_RECIPIENT = serializers.CharField( - max_length=128, allow_blank=True, required=False, label=_('Test recipient'), - help_text=_('Tips: Used only as a test mail recipient') + max_length=128, allow_blank=True, required=False, label=_('Recipient'), + help_text=_("The recipient is used for testing the email server's connectivity") ) EMAIL_USE_SSL = serializers.BooleanField( required=False, label=_('Use SSL'), - help_text=_('If SMTP port is 465, may be select') + help_text=_('Whether to use an implicit TLS (secure) connection when talking to the SMTP server. In most email documentation this type of TLS connection is referred to as SSL. It is generally used on port 465') ) EMAIL_USE_TLS = serializers.BooleanField( required=False, label=_("Use TLS"), - help_text=_('If SMTP port is 587, may be select') - ) - EMAIL_SUBJECT_PREFIX = serializers.CharField( - max_length=1024, required=True, label=_('Subject prefix') - ) - EMAIL_SUFFIX = serializers.CharField( - required=False, max_length=1024, label=_("Email suffix"), - help_text=_('This is used by default if no email is returned during SSO authentication') + help_text=_('Whether to use a TLS (secure) connection when talking to the SMTP server. This is used for explicit TLS connections, generally on port 587') ) class EmailContentSettingSerializer(serializers.Serializer): PREFIX_TITLE = _('Email') + EMAIL_SUBJECT_PREFIX = serializers.CharField( + max_length=1024, required=True, label=_('Subject prefix') + ) EMAIL_CUSTOM_USER_CREATED_SUBJECT = serializers.CharField( max_length=1024, allow_blank=True, required=False, label=_('Subject'), diff --git a/apps/settings/serializers/terminal.py b/apps/settings/serializers/terminal.py index fe95a571c..0a2c55046 100644 --- a/apps/settings/serializers/terminal.py +++ b/apps/settings/serializers/terminal.py @@ -38,4 +38,4 @@ class TerminalSettingSerializer(serializers.Serializer): ) TERMINAL_MAGNUS_ENABLED = serializers.BooleanField(label="Magnus") TERMINAL_RAZOR_ENABLED = serializers.BooleanField(label="Razor") - TERMINAL_KOKO_SSH_ENABLED = serializers.BooleanField(label="Koko") + TERMINAL_KOKO_SSH_ENABLED = serializers.BooleanField(label="SSH Client") From 4a5205c5ac4b1fd9b0ddc584a6f3cc03801c3d7c Mon Sep 17 00:00:00 2001 From: Bai Date: Tue, 21 May 2024 16:11:13 +0800 Subject: [PATCH 2/8] perf: i18n System Settings -> Features --- apps/i18n/core/en/LC_MESSAGES/django.po | 2 +- apps/i18n/core/ja/LC_MESSAGES/django.po | 2 +- apps/i18n/core/zh/LC_MESSAGES/django.po | 2 +- apps/i18n/lina/en.json | 6 ++-- apps/settings/serializers/feature.py | 39 ++++++++++++++++--------- 5 files changed, 31 insertions(+), 20 deletions(-) diff --git a/apps/i18n/core/en/LC_MESSAGES/django.po b/apps/i18n/core/en/LC_MESSAGES/django.po index cbb285681..d0b67891d 100644 --- a/apps/i18n/core/en/LC_MESSAGES/django.po +++ b/apps/i18n/core/en/LC_MESSAGES/django.po @@ -5505,7 +5505,7 @@ msgid "Subject" msgstr "" #: settings/serializers/feature.py:22 -msgid "More URL" +msgid "More Link" msgstr "" #: settings/serializers/feature.py:36 settings/serializers/feature.py:38 diff --git a/apps/i18n/core/ja/LC_MESSAGES/django.po b/apps/i18n/core/ja/LC_MESSAGES/django.po index 68110a0c7..0c5b9684f 100644 --- a/apps/i18n/core/ja/LC_MESSAGES/django.po +++ b/apps/i18n/core/ja/LC_MESSAGES/django.po @@ -5723,7 +5723,7 @@ msgid "Subject" msgstr "件名" #: settings/serializers/feature.py:22 -msgid "More URL" +msgid "More Link" msgstr "もっとURL" #: settings/serializers/feature.py:36 settings/serializers/feature.py:38 diff --git a/apps/i18n/core/zh/LC_MESSAGES/django.po b/apps/i18n/core/zh/LC_MESSAGES/django.po index be2dff59b..d25ab373b 100644 --- a/apps/i18n/core/zh/LC_MESSAGES/django.po +++ b/apps/i18n/core/zh/LC_MESSAGES/django.po @@ -5682,7 +5682,7 @@ msgid "Subject" msgstr "主题" #: settings/serializers/feature.py:22 -msgid "More URL" +msgid "More Link" msgstr "更多信息 URL" #: settings/serializers/feature.py:36 settings/serializers/feature.py:38 diff --git a/apps/i18n/lina/en.json b/apps/i18n/lina/en.json index ebd6e6c0e..fff447db0 100644 --- a/apps/i18n/lina/en.json +++ b/apps/i18n/lina/en.json @@ -223,7 +223,7 @@ "ChangeSecretParams": "Change password parameters", "ChangeViewHelpText": "Click to switch different views", "Chat": "Chat", - "ChatAI": "Chat ai", + "ChatAI": "Chat AI", "ChatHello": "Hello! can i help you?", "ChdirHelpText": "By default, the execution directory is the user's home directory", "CheckAssetsAmount": "Check asset quantity", @@ -1276,9 +1276,9 @@ "VirtualAccountHelpMsg": "Virtual accounts are specialized accounts with specific purposes when connecting assets.", "VirtualAccountUpdate": "Virtual account update", "VirtualAccounts": "Virtual accounts", - "VirtualApp": "Virtual app", + "VirtualApp": "Virtual App", "VirtualAppDetail": "Virtual app details", - "VirtualApps": "Virtual app", + "VirtualApps": "VApp", "Volcengine": "Volcengine", "Warning": "Warning", "WeCom": "Wecom", diff --git a/apps/settings/serializers/feature.py b/apps/settings/serializers/feature.py index a68365983..cac937d57 100644 --- a/apps/settings/serializers/feature.py +++ b/apps/settings/serializers/feature.py @@ -19,7 +19,7 @@ class AnnouncementSerializer(serializers.Serializer): CONTENT = serializers.CharField(label=_("Content")) LINK = serializers.URLField( required=False, allow_null=True, allow_blank=True, - label=_("More URL"), default='', + label=_("More Link"), default='', ) def to_representation(self, instance): @@ -57,12 +57,13 @@ class VaultSettingSerializer(serializers.Serializer): HISTORY_ACCOUNT_CLEAN_LIMIT = serializers.IntegerField( default=999, max_value=999, min_value=1, - required=False, label=_('Historical accounts retained count'), + required=False, label=_('Record limit'), help_text=_( - 'If the specific value is less than 999, ' + 'If the specific value is less than 999 (default), ' 'the system will automatically perform a task every night: ' 'check and delete historical accounts that exceed the predetermined number. ' - 'If the value reaches or exceeds 999, no historical account deletion will be performed.' + 'If the value reaches or exceeds 999 (default), ' + 'no historical account deletion will be performed' ) ) @@ -75,13 +76,15 @@ class ChatAISettingSerializer(serializers.Serializer): required=False, label=_('Chat AI') ) GPT_BASE_URL = serializers.CharField( - allow_blank=True, required=False, label=_('Base Url') + allow_blank=True, required=False, label=_('Base URL'), + help_text=_('The base URL of the GPT service. For example: https://api.openai.com/v1') ) GPT_API_KEY = EncryptedField( allow_blank=True, required=False, label=_('API Key'), ) GPT_PROXY = serializers.CharField( - allow_blank=True, required=False, label=_('Proxy') + allow_blank=True, required=False, label=_('Proxy'), + help_text=_('The proxy server address of the GPT service. For example: http://ip:port') ) GPT_MODEL = serializers.ChoiceField( default='', choices=GPT_MODEL_CHOICES, label=_("GPT Model"), required=False, @@ -108,15 +111,19 @@ class ChatAISettingSerializer(serializers.Serializer): class TicketSettingSerializer(serializers.Serializer): PREFIX_TITLE = _('Ticket') - TICKETS_ENABLED = serializers.BooleanField(required=False, default=True, label=_("Enable tickets")) - TICKETS_DIRECT_APPROVE = serializers.BooleanField(required=False, default=False, label=_("No login approval")) + TICKETS_ENABLED = serializers.BooleanField(required=False, default=True, label=_("Ticket")) + TICKETS_DIRECT_APPROVE = serializers.BooleanField( + required=False, default=False, label=_("Approval without login"), + help_text=_('Allow direct approval ticket without login') + ) TICKET_AUTHORIZE_DEFAULT_TIME = serializers.IntegerField( min_value=1, max_value=999999, required=False, - label=_("Default period") + label=_("Period"), + help_text=_("The default authorization time period when applying for assets via a ticket") ) TICKET_AUTHORIZE_DEFAULT_TIME_UNIT = serializers.ChoiceField( choices=[('day', _("day")), ('hour', _("hour"))], - label=_("Default unit"), required=False, + label=_("Unit"), required=False, help_text=_("The unit of period") ) @@ -124,13 +131,13 @@ class OpsSettingSerializer(serializers.Serializer): PREFIX_TITLE = _('Feature') SECURITY_COMMAND_EXECUTION = serializers.BooleanField( - required=False, label=_('Job center'), - help_text=_('Allow user run batch command or not using ansible') + required=False, label=_('Adhoc'), + help_text=_('Allow users to execute batch commands in the Workbench - Job Center - Adhoc') ) SECURITY_COMMAND_BLACKLIST = serializers.ListField( child=serializers.CharField(max_length=1024, ), label=_('Command blacklist'), - help_text=_("Commands that are not allowed execute.") + help_text=_("Command blacklist in Adhoc") ) @@ -138,5 +145,9 @@ class VirtualAppSerializer(serializers.Serializer): PREFIX_TITLE = _('Virtual app') VIRTUAL_APP_ENABLED = serializers.BooleanField( - required=False, label=_('Virtual app'), + required=False, label=_('vApp'), + help_text=_( + 'Virtual applications, you can use the Linux operating system as an application server ' + 'in remote applications.' + ) ) From 82977f902359d376fedc93fc9b8cabaf802ee5be Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Tue, 21 May 2024 19:24:26 +0800 Subject: [PATCH 3/8] perf: tickets notifications add default data migrate file (#13268) Co-authored-by: feng <1304903146@qq.com> --- .../migrations/0003_initial_admin_msg.py | 22 +++++++++++++++ .../0003_initial_ticket_flow_data.py | 27 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 apps/notifications/migrations/0003_initial_admin_msg.py create mode 100644 apps/tickets/migrations/0003_initial_ticket_flow_data.py diff --git a/apps/notifications/migrations/0003_initial_admin_msg.py b/apps/notifications/migrations/0003_initial_admin_msg.py new file mode 100644 index 000000000..cab077769 --- /dev/null +++ b/apps/notifications/migrations/0003_initial_admin_msg.py @@ -0,0 +1,22 @@ +# Generated by Django 4.1.13 on 2024-05-21 11:04 + +from django.db import migrations + + +def init_user_msg_subscription(apps, schema_editor): + User = apps.get_model('users', 'User') + UserMsgSubscription = apps.get_model('notifications', 'UserMsgSubscription') + + receive_backends = ['site_msg', 'email'] + user = User.objects.get(username='admin') + UserMsgSubscription.objects.create(user=user, receive_backends=receive_backends) + + +class Migration(migrations.Migration): + dependencies = [ + ('notifications', '0002_auto_20210909_1946'), + ] + + operations = [ + migrations.RunPython(init_user_msg_subscription), + ] diff --git a/apps/tickets/migrations/0003_initial_ticket_flow_data.py b/apps/tickets/migrations/0003_initial_ticket_flow_data.py new file mode 100644 index 000000000..9e2b76e41 --- /dev/null +++ b/apps/tickets/migrations/0003_initial_ticket_flow_data.py @@ -0,0 +1,27 @@ +# Generated by Django 4.1.13 on 2024-05-21 09:14 + +from django.db import migrations + + +def create_ticket_flow_and_approval_rule(apps, schema_editor): + org_id = '00000000-0000-0000-0000-000000000000' + + User = apps.get_model("users", "User") + TicketFlow = apps.get_model("tickets", "TicketFlow") + ApprovalRule = apps.get_model("tickets", "ApprovalRule") + + super_user = User.objects.get(username='admin') + flow = TicketFlow.objects.create(created_by='System', type='apply_asset', org_id=org_id) + rule_instance = ApprovalRule.objects.create(strategy='super_admin') + rule_instance.assignees.set([super_user]) + flow.rules.set([rule_instance, ]) + + +class Migration(migrations.Migration): + dependencies = [ + ('tickets', '0002_auto_20200728_1146'), + ] + + operations = [ + migrations.RunPython(create_ticket_flow_and_approval_rule), + ] From f259509ef85b9eaddd9cbec5c9cfc61798bfce9c Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Wed, 22 May 2024 10:47:55 +0800 Subject: [PATCH 4/8] fix: notification migrate file (#13269) Co-authored-by: feng <1304903146@qq.com> --- apps/notifications/migrations/0003_initial_admin_msg.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/notifications/migrations/0003_initial_admin_msg.py b/apps/notifications/migrations/0003_initial_admin_msg.py index cab077769..5a5a55e16 100644 --- a/apps/notifications/migrations/0003_initial_admin_msg.py +++ b/apps/notifications/migrations/0003_initial_admin_msg.py @@ -9,7 +9,9 @@ def init_user_msg_subscription(apps, schema_editor): receive_backends = ['site_msg', 'email'] user = User.objects.get(username='admin') - UserMsgSubscription.objects.create(user=user, receive_backends=receive_backends) + UserMsgSubscription.objects.update_or_create( + defaults={'receive_backends': receive_backends}, user=user + ) class Migration(migrations.Migration): From 79449a8a02cf604b5eb1de0067fefe67f1577731 Mon Sep 17 00:00:00 2001 From: Bai Date: Wed, 22 May 2024 17:51:45 +0800 Subject: [PATCH 5/8] perf: i18n System Settings -> Authentication-OIDC --- apps/i18n/lina/en.json | 15 +++++++------ apps/settings/serializers/auth/base.py | 15 ++++++++++--- apps/settings/serializers/auth/cas.py | 18 +++++++++++++--- apps/settings/serializers/auth/ldap.py | 30 +++++++++++++++++--------- apps/settings/serializers/auth/oidc.py | 30 +++++++++++++++++++------- apps/users/models/user.py | 4 +++- 6 files changed, 80 insertions(+), 32 deletions(-) diff --git a/apps/i18n/lina/en.json b/apps/i18n/lina/en.json index fff447db0..0cd3f2ef2 100644 --- a/apps/i18n/lina/en.json +++ b/apps/i18n/lina/en.json @@ -202,7 +202,7 @@ "BuiltinVariable": "Built-in variables", "BulkUnblock": "Batch unlock", "CACertificate": "Ca certificate", - "CAS": "Cas", + "CAS": "CAS", "CMPP2": "Cmpp v2.0", "CTYunPrivate": "Tianyi private cloud", "CalculationResults": "Error in cron expression", @@ -394,7 +394,7 @@ "DeviceCreate": "Create asset - device", "DeviceUpdate": "Update the asset - device", "Digit": "Number", - "DingTalk": "Dingtalk", + "DingTalk": "DingTalk", "DingTalkOAuth": "DingTalk OAuth", "DingTalkTest": "Test", "Disable": "Disable", @@ -609,7 +609,7 @@ "Last30Days": "Monthly", "Last7Days": "Weekly", "LastPublishedTime": "Last publish time", - "Ldap": "Ldap", + "Ldap": "LDAP", "LdapBulkImport": "User import", "LdapConnectTest": "Test connection", "LdapLoginTest": "Test login", @@ -730,9 +730,9 @@ "Now": "Now", "Number": "No.", "NumberOfVisits": "Visits", - "OAuth2": "Oauth2", + "OAuth2": "OAuth2", "OAuth2LogoTip": "Note: authentication provider (recommended image size: 64px*64px)", - "OIDC": "Oidc", + "OIDC": "OIDC", "ObjectNotFoundOrDeletedMsg": "No corresponding resources found or it has been deleted.", "Offline": "Offline", "OfflineSelected": "Offline selected", @@ -1281,7 +1281,7 @@ "VirtualApps": "VApp", "Volcengine": "Volcengine", "Warning": "Warning", - "WeCom": "Wecom", + "WeCom": "WeCom", "WeComOAuth": "WeCom OAuth", "WeComTest": "Test", "WebCreate": "Create asset - web", @@ -1310,5 +1310,6 @@ "SiteURLTip": "For example: https://demo.jumpserver.org", "Settings...": "Settings...", "EmailTemplate": "Template", - "EmailTemplateHelpTip": "Email template is used for sending emails and includes the email subject prefix and email content" + "EmailTemplateHelpTip": "Email template is used for sending emails and includes the email subject prefix and email content", + "ForgotPasswordURL": "Forgot password URL" } \ No newline at end of file diff --git a/apps/settings/serializers/auth/base.py b/apps/settings/serializers/auth/base.py index 881764492..a9292acfc 100644 --- a/apps/settings/serializers/auth/base.py +++ b/apps/settings/serializers/auth/base.py @@ -24,12 +24,21 @@ class AuthSettingSerializer(serializers.Serializer): AUTH_PASSKEY = serializers.BooleanField(default=False, label=_("Passkey Auth")) EMAIL_SUFFIX = serializers.CharField( required=False, max_length=1024, label=_("Email suffix"), - help_text=_('This is used by default if no email is returned during SSO authentication') + help_text=_( + "After third-party user authentication is successful, " + "if the third-party authentication service platform does not return the user's email " + "information, the system will automatically create the user using this email suffix" + ) ) FORGOT_PASSWORD_URL = serializers.CharField( required=False, allow_blank=True, max_length=1024, - label=_("Forgot Password URL") + label=_("Forgot Password"), + help_text=_("The URL for Forgotten Password on the user login page") ) LOGIN_REDIRECT_MSG_ENABLED = serializers.BooleanField( - required=False, label=_("Login redirection prompt") + required=False, label=_("Login redirection"), + help_text=_( + "Should an flash page be displayed before the user is redirected to third-party " + "authentication when the administrator enables third-party redirect authentication" + ) ) diff --git a/apps/settings/serializers/auth/cas.py b/apps/settings/serializers/auth/cas.py index d66dadd7d..4ab017eaf 100644 --- a/apps/settings/serializers/auth/cas.py +++ b/apps/settings/serializers/auth/cas.py @@ -15,7 +15,10 @@ class CASSettingSerializer(serializers.Serializer): required=False, allow_null=True, allow_blank=True, max_length=1024, label=_('Proxy Server') ) - CAS_LOGOUT_COMPLETELY = serializers.BooleanField(required=False, label=_('Logout completely')) + CAS_LOGOUT_COMPLETELY = serializers.BooleanField( + required=False, label=_('Logout completely'), + help_text=_('When the user signs out, they also be logged out from the CAS Server') + ) CAS_VERSION = serializers.IntegerField( required=False, label=_('Version'), min_value=1, max_value=3 ) @@ -25,8 +28,17 @@ class CASSettingSerializer(serializers.Serializer): CAS_APPLY_ATTRIBUTES_TO_USER = serializers.BooleanField( required=False, label=_('Enable attributes map') ) - CAS_RENAME_ATTRIBUTES = serializers.JSONField(required=False, label=_('User attribute')) + CAS_RENAME_ATTRIBUTES = serializers.JSONField( + required=False, label=_('User attribute'), + help_text=_( + "User attribute mapping, where the `key` is the CAS service user attribute name " + "and the `value` is the JumpServer user attribute name" + ) + ) CAS_CREATE_USER = serializers.BooleanField( required=False, label=_('Create user'), - help_text=_('Automatically create a new user if not found.') + help_text=_( + 'After successful user authentication, if the user does not exist, ' + 'automatically create the user' + ) ) diff --git a/apps/settings/serializers/auth/ldap.py b/apps/settings/serializers/auth/ldap.py index 16db90d3f..ada7ea84b 100644 --- a/apps/settings/serializers/auth/ldap.py +++ b/apps/settings/serializers/auth/ldap.py @@ -40,24 +40,32 @@ class LDAPSettingSerializer(serializers.Serializer): AUTH_LDAP_SERVER_URI = serializers.CharField( required=True, max_length=1024, label=_('Server'), - help_text=_('eg: ldap://localhost:389') + help_text=_('LDAP server URI') + ) + AUTH_LDAP_BIND_DN = serializers.CharField( + required=False, max_length=1024, label=_('Bind DN'), + help_text=_('Binding Distinguished Name') ) - AUTH_LDAP_BIND_DN = serializers.CharField(required=False, max_length=1024, label=_('Bind DN')) AUTH_LDAP_BIND_PASSWORD = EncryptedField( - max_length=1024, required=False, label=_('Password') + max_length=1024, required=False, label=_('Password'), + help_text=_('Binding password') ) AUTH_LDAP_SEARCH_OU = serializers.CharField( - max_length=1024, allow_blank=True, required=False, label=_('User OU'), - help_text=_('Use | split multi OUs') + max_length=1024, allow_blank=True, required=False, label=_('Search OU'), + help_text=_( + 'User Search Base, if there are multiple OUs, you can separate them with the `|` symbol' + ) ) AUTH_LDAP_SEARCH_FILTER = serializers.CharField( - max_length=1024, required=True, label=_('User search filter'), - help_text=_('Choice may be (cn|uid|sAMAccountName)=%(user)s)') + max_length=1024, required=True, label=_('Search filter'), + help_text=_('Selection could include (cn|uid|sAMAccountName=%(user)s)') ) AUTH_LDAP_USER_ATTR_MAP = serializers.JSONField( required=True, label=_('User attribute'), - help_text=_('User attr map present how to map LDAP user attr to ' - 'jumpserver, username,name,email is jumpserver attr') + help_text=_( + 'User attribute mapping, where the `key` is the JumpServer user attribute name and the ' + '`value` is the LDAP service user attribute name' + ) ) AUTH_LDAP_SYNC_ORG_IDS = serializers.ListField( required=False, label=_('Organization'), max_length=36 @@ -85,7 +93,9 @@ class LDAPSettingSerializer(serializers.Serializer): 'improve the speed of user authentication., 0 means no cache' ) ) - AUTH_LDAP_SEARCH_PAGED_SIZE = serializers.IntegerField(required=False, label=_('Search paged size (piece)')) + AUTH_LDAP_SEARCH_PAGED_SIZE = serializers.IntegerField( + required=False, label=_('Search paged size (piece)') + ) AUTH_LDAP_SYNC_RECEIVERS = serializers.ListField( required=False, label=_('Recipient'), max_length=36 ) diff --git a/apps/settings/serializers/auth/oidc.py b/apps/settings/serializers/auth/oidc.py index 44cecfbd5..2f974286e 100644 --- a/apps/settings/serializers/auth/oidc.py +++ b/apps/settings/serializers/auth/oidc.py @@ -13,7 +13,8 @@ class CommonSettingSerializer(serializers.Serializer): # OpenID 公有配置参数 (version <= 1.5.8 或 version >= 1.5.8) BASE_SITE_URL = serializers.CharField( required=False, allow_null=True, allow_blank=True, - max_length=1024, label=_('Base site URL') + max_length=1024, label=_('Base site URL'), + help_text=_("The current site's URL is used to construct the callback address") ) AUTH_OPENID_CLIENT_ID = serializers.CharField( required=False, max_length=1024, label=_('Client Id') @@ -35,8 +36,10 @@ class CommonSettingSerializer(serializers.Serializer): ) AUTH_OPENID_USER_ATTR_MAP = serializers.JSONField( required=True, label=_('User attribute'), - help_text=_('User attr map present how to map OpenID user attr to ' - 'jumpserver, username,name,email is jumpserver attr') + help_text=_( + "User attribute mapping, where the `key` is the JumpServer user attribute name " + "and the `value` is the OIDC service user attribute name" + ) ) AUTH_OPENID_PKCE = serializers.BooleanField(required=False, label=_('Enable PKCE')) AUTH_OPENID_CODE_CHALLENGE_METHOD = serializers.ChoiceField( @@ -48,7 +51,10 @@ class CommonSettingSerializer(serializers.Serializer): class KeycloakSettingSerializer(CommonSettingSerializer): # OpenID 旧配置参数 (version <= 1.5.8 (discarded)) AUTH_OPENID_KEYCLOAK = serializers.BooleanField( - label=_("Use Keycloak"), required=False, default=False + label=_("Use Keycloak"), required=False, default=False, + help_text=_( + "Use Keycloak as the OpenID Connect server, or use standard OpenID Connect Protocol" + ) ) AUTH_OPENID_SERVER_URL = serializers.CharField( required=False, max_length=1024, label=_('Server') @@ -60,7 +66,9 @@ class KeycloakSettingSerializer(CommonSettingSerializer): class OIDCSettingSerializer(KeycloakSettingSerializer): # OpenID 新配置参数 (version >= 1.5.9) - AUTH_OPENID = serializers.BooleanField(required=False, label=_('OIDC')) + AUTH_OPENID = serializers.BooleanField( + required=False, label=_('OIDC'), help_text=_('OpenID Connect') + ) AUTH_OPENID_PROVIDER_ENDPOINT = serializers.CharField( required=False, max_length=1024, label=_('Provider endpoint') ) @@ -85,15 +93,21 @@ class OIDCSettingSerializer(KeycloakSettingSerializer): AUTH_OPENID_PROVIDER_SIGNATURE_KEY = serializers.CharField( required=False, max_length=1024, allow_null=True, label=_('Signing key') ) - AUTH_OPENID_SCOPES = serializers.CharField(required=False, max_length=1024, label=_('Scopes')) + AUTH_OPENID_SCOPES = serializers.CharField( + required=False, max_length=1024, label=_('Scopes') + ) AUTH_OPENID_ID_TOKEN_MAX_AGE = serializers.IntegerField( required=False, label=_('ID Token max age (s)') ) AUTH_OPENID_ID_TOKEN_INCLUDE_CLAIMS = serializers.BooleanField( required=False, label=_('ID Token include claims') ) - AUTH_OPENID_USE_STATE = serializers.BooleanField(required=False, label=_('Use state')) - AUTH_OPENID_USE_NONCE = serializers.BooleanField(required=False, label=_('Use nonce')) + AUTH_OPENID_USE_STATE = serializers.BooleanField( + required=False, label=_('Use state') + ) + AUTH_OPENID_USE_NONCE = serializers.BooleanField( + required=False, label=_('Use nonce') + ) AUTH_OPENID_ALWAYS_UPDATE_USER = serializers.BooleanField( required=False, label=_('Always update user') ) diff --git a/apps/users/models/user.py b/apps/users/models/user.py index 6cd20b7ab..52ff822d8 100644 --- a/apps/users/models/user.py +++ b/apps/users/models/user.py @@ -668,11 +668,13 @@ class MFAMixin: @property def mfa_force_enabled(self): force_level = settings.SECURITY_MFA_AUTH + # 1 All users if force_level in [True, 1]: return True - # 2 管理员强制开启 + # 2 仅管理员强制开启 if force_level == 2 and self.is_org_admin: return True + # 3 仅用户开启 return self.mfa_level == 2 def enable_mfa(self): From b179770dbfa5bf27b7f824dd7f8b9977bb2155b7 Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Wed, 22 May 2024 19:24:25 +0800 Subject: [PATCH 6/8] perf: del extra translate (#13274) Co-authored-by: feng <1304903146@qq.com> Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com> --- apps/i18n/lina/en.json | 1 - apps/i18n/lina/ja.json | 1 - apps/i18n/lina/zh.json | 1 - 3 files changed, 3 deletions(-) diff --git a/apps/i18n/lina/en.json b/apps/i18n/lina/en.json index eac1d3934..84018247b 100644 --- a/apps/i18n/lina/en.json +++ b/apps/i18n/lina/en.json @@ -186,7 +186,6 @@ "BatchProcessing": "{number} items selected", "BatchReject": "Batch reject", "BatchTest": "Batch test", - "BatchTransfer": "File transfer", "BeforeChange": "Before change", "Beian": "Record", "BelongAll": "Including at the same time", diff --git a/apps/i18n/lina/ja.json b/apps/i18n/lina/ja.json index 5c322718f..a6b1f96ab 100644 --- a/apps/i18n/lina/ja.json +++ b/apps/i18n/lina/ja.json @@ -180,7 +180,6 @@ "BatchProcessing": "バルク処理({Number} アイテムが選択されています)", "BatchReject": "一括拒否", "BatchTest": "一括テスト", - "BatchTransfer": "一括転送", "BasicSettings": "基本設定", "BasicTools": "基本的なツール", "BatchActivate": "一括アクティブ化", diff --git a/apps/i18n/lina/zh.json b/apps/i18n/lina/zh.json index f59597e38..218d920fd 100644 --- a/apps/i18n/lina/zh.json +++ b/apps/i18n/lina/zh.json @@ -203,7 +203,6 @@ "BatchProcessing": "批量处理(选中 {Number} 项)", "BatchReject": "批量拒绝", "BatchTest": "批量测试", - "BatchTransfer": "批量传输", "BeforeChange": "变更前", "Beian": "备案", "BelongAll": "同时包含", From 33b688b02164a12926a38b5b9ffaed0067bec575 Mon Sep 17 00:00:00 2001 From: wangruidong <940853815@qq.com> Date: Wed, 22 May 2024 18:18:56 +0800 Subject: [PATCH 7/8] perf: modify task log i18n --- .../automations/change_secret/manager.py | 8 +- apps/assets/automations/base/manager.py | 10 +- apps/i18n/core/en/LC_MESSAGES/django.po | 874 ++++++------ apps/i18n/core/ja/LC_MESSAGES/django.po | 1113 ++++++++++------ apps/i18n/core/zh/LC_MESSAGES/django.po | 1180 ++++++++++------- 5 files changed, 1868 insertions(+), 1317 deletions(-) diff --git a/apps/accounts/automations/change_secret/manager.py b/apps/accounts/automations/change_secret/manager.py index f08d01584..177fad9cb 100644 --- a/apps/accounts/automations/change_secret/manager.py +++ b/apps/accounts/automations/change_secret/manager.py @@ -98,9 +98,11 @@ class ChangeSecretManager(AccountBasePlaybookManager): accounts = self.get_accounts(account) if not accounts: - print('没有发现待处理的账号: %s 用户ID: %s 类型: %s' % ( - asset.name, self.account_ids, self.secret_type - )) + print( + _("No pending accounts found: {name} User ID: {account_ids} Type: {secret_type}").format( + name=asset.name, + account_ids=self.account_ids, + secret_type=self.secret_type)) return [] records = [] diff --git a/apps/assets/automations/base/manager.py b/apps/assets/automations/base/manager.py index 570f6f195..da09f543a 100644 --- a/apps/assets/automations/base/manager.py +++ b/apps/assets/automations/base/manager.py @@ -320,19 +320,19 @@ class BasePlaybookManager: shutil.rmtree(self.runtime_dir, ignore_errors=True) def run(self, *args, **kwargs): - print(">>> 任务准备阶段\n") + print(_(">>> Task preparation phase"), end="\n") runners = self.get_runners() if len(runners) > 1: - print("### 分次执行任务, 总共 {}\n".format(len(runners))) + print(_(">>> Executing tasks in batches, total {runner_count}").format(runner_count=len(runners))) elif len(runners) == 1: - print(">>> 开始执行任务\n") + print(_(">>> Start executing tasks")) else: - print("### 没有需要执行的任务\n") + print(_(">>> No tasks need to be executed"), end="\n") self.execution.date_start = timezone.now() for i, runner in enumerate(runners, start=1): if len(runners) > 1: - print(">>> 开始执行第 {} 批任务".format(i)) + print(_(">>> Begin executing batch {index} of tasks").format(index=i)) ssh_tunnel = SSHTunnelManager() ssh_tunnel.local_gateway_prepare(runner) try: diff --git a/apps/i18n/core/en/LC_MESSAGES/django.po b/apps/i18n/core/en/LC_MESSAGES/django.po index 1b71f2701..ad0ef1467 100644 --- a/apps/i18n/core/en/LC_MESSAGES/django.po +++ b/apps/i18n/core/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-15 11:48+0800\n" +"POT-Creation-Date: 2024-05-22 18:28+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,7 +22,13 @@ msgstr "" msgid "The parameter 'action' must be [{}]" msgstr "" -#: accounts/automations/change_secret/manager.py:225 +#: accounts/automations/change_secret/manager.py:102 +#, python-brace-format +msgid "" +"No pending accounts found: {name} User ID: {account_ids} Type: {secret_type}" +msgstr "" + +#: accounts/automations/change_secret/manager.py:227 #, python-format msgid "Success: %s, Failed: %s, Total: %s" msgstr "" @@ -33,10 +39,10 @@ msgstr "" #: authentication/confirm/password.py:24 authentication/confirm/password.py:26 #: authentication/forms.py:28 #: authentication/templates/authentication/login.html:329 -#: settings/serializers/auth/ldap.py:25 settings/serializers/auth/ldap.py:47 -#: settings/serializers/msg.py:35 terminal/serializers/storage.py:123 +#: settings/serializers/auth/ldap.py:25 settings/serializers/auth/ldap.py:50 +#: settings/serializers/msg.py:37 terminal/serializers/storage.py:123 #: terminal/serializers/storage.py:142 users/forms/profile.py:21 -#: users/serializers/user.py:110 +#: users/serializers/user.py:112 #: users/templates/users/_msg_user_created.html:13 #: users/templates/users/user_password_verify.html:18 #: xpack/plugins/cloud/serializers/account_attrs.py:28 @@ -83,7 +89,7 @@ msgstr "" msgid "Specified account" msgstr "" -#: accounts/const/account.py:26 users/models/user.py:751 +#: accounts/const/account.py:26 users/models/user.py:753 msgid "Local" msgstr "" @@ -92,7 +98,7 @@ msgid "Collected" msgstr "" #: accounts/const/account.py:28 accounts/serializers/account/account.py:28 -#: settings/serializers/auth/sms.py:79 +#: settings/serializers/auth/sms.py:84 msgid "Template" msgstr "" @@ -100,7 +106,7 @@ msgstr "" msgid "Skip" msgstr "" -#: accounts/const/account.py:33 audits/const.py:24 rbac/tree.py:239 +#: accounts/const/account.py:33 audits/const.py:24 #: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6 msgid "Update" msgstr "" @@ -209,8 +215,8 @@ msgstr "" #: authentication/serializers/password_mfa.py:16 #: authentication/serializers/password_mfa.py:24 #: notifications/backends/__init__.py:10 settings/serializers/msg.py:22 -#: settings/serializers/msg.py:64 users/forms/profile.py:100 -#: users/forms/profile.py:108 users/models/user.py:876 +#: settings/serializers/msg.py:59 users/forms/profile.py:100 +#: users/forms/profile.py:108 users/models/user.py:878 #: users/templates/users/forgot_password.html:162 #: users/views/profile/reset.py:94 msgid "Email" @@ -291,13 +297,13 @@ msgid "Su from" msgstr "Switch from" #: accounts/models/account.py:55 assets/const/protocol.py:177 -#: settings/serializers/auth/cas.py:20 terminal/models/applet/applet.py:35 +#: settings/serializers/auth/cas.py:23 terminal/models/applet/applet.py:35 #: terminal/models/virtualapp/virtualapp.py:21 msgid "Version" msgstr "" #: accounts/models/account.py:57 accounts/serializers/account/account.py:217 -#: users/models/user.py:928 +#: users/models/user.py:930 msgid "Source" msgstr "" @@ -312,9 +318,8 @@ msgstr "" #: acls/serializers/base.py:124 acls/templates/acls/asset_login_reminder.html:7 #: assets/serializers/gateway.py:28 audits/models.py:59 #: authentication/api/connection_token.py:411 ops/models/base.py:18 -#: perms/models/asset_permission.py:75 settings/serializers/msg.py:33 -#: terminal/backends/command/models.py:18 terminal/models/session/session.py:34 -#: terminal/serializers/command.py:72 +#: perms/models/asset_permission.py:75 terminal/backends/command/models.py:18 +#: terminal/models/session/session.py:34 terminal/serializers/command.py:72 #: terminal/templates/terminal/_msg_command_warning.html:8 #: terminal/templates/terminal/_msg_session_sharing.html:8 #: tickets/models/ticket/command_confirm.py:13 xpack/plugins/cloud/models.py:85 @@ -411,8 +416,7 @@ msgid "Trigger mode" msgstr "" #: accounts/models/automations/backup_account.py:134 audits/models.py:203 -#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:165 -#: xpack/plugins/cloud/models.py:204 +#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/models.py:204 msgid "Reason" msgstr "" @@ -471,7 +475,7 @@ msgstr "" #: accounts/models/automations/gather_account.py:58 #: accounts/serializers/account/backup.py:40 #: accounts/serializers/automations/change_secret.py:58 -#: settings/serializers/auth/ldap.py:90 +#: settings/serializers/auth/ldap.py:100 settings/serializers/msg.py:45 msgid "Recipient" msgstr "" @@ -543,7 +547,7 @@ msgstr "" #: authentication/templates/authentication/_msg_different_city.html:9 #: authentication/templates/authentication/_msg_oauth_bind.html:9 #: terminal/serializers/storage.py:136 users/forms/profile.py:31 -#: users/forms/profile.py:114 users/models/user.py:872 +#: users/forms/profile.py:114 users/models/user.py:874 #: users/templates/users/_msg_user_created.html:12 #: xpack/plugins/cloud/serializers/account_attrs.py:26 msgid "Username" @@ -630,7 +634,7 @@ msgstr "" #: ops/models/celery.py:80 ops/models/job.py:142 ops/models/playbook.py:28 #: ops/serializers/job.py:18 orgs/models.py:82 #: perms/models/asset_permission.py:61 rbac/models/role.py:29 -#: settings/models.py:34 settings/models.py:183 settings/serializers/msg.py:89 +#: settings/models.py:34 settings/models.py:183 settings/serializers/msg.py:87 #: settings/serializers/terminal.py:9 terminal/models/applet/applet.py:33 #: terminal/models/component/endpoint.py:12 #: terminal/models/component/endpoint.py:109 @@ -639,9 +643,9 @@ msgstr "" #: terminal/models/virtualapp/provider.py:10 #: terminal/models/virtualapp/virtualapp.py:19 tickets/api/ticket.py:87 #: users/forms/profile.py:32 users/models/group.py:13 -#: users/models/preference.py:11 users/models/user.py:874 +#: users/models/preference.py:11 users/models/user.py:876 #: xpack/plugins/cloud/models.py:32 xpack/plugins/cloud/models.py:272 -#: xpack/plugins/cloud/serializers/task.py:71 +#: xpack/plugins/cloud/serializers/task.py:70 msgid "Name" msgstr "" @@ -655,7 +659,7 @@ msgstr "" #: authentication/serializers/connect_token_secret.py:117 #: terminal/models/applet/applet.py:40 #: terminal/models/component/endpoint.py:120 -#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:180 +#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:188 msgid "Is active" msgstr "Active" @@ -819,7 +823,6 @@ msgstr "" #: ops/models/job.py:152 ops/serializers/job.py:19 #: perms/serializers/permission.py:36 #: terminal/templates/terminal/_msg_command_execute_alert.html:16 -#: xpack/plugins/cloud/manager.py:73 msgid "Assets" msgstr "" @@ -833,7 +836,6 @@ msgid "Asset does not support this secret type: %s" msgstr "" #: accounts/serializers/account/account.py:410 -#: xpack/plugins/cloud/serializers/account.py:111 msgid "Account has exist" msgstr "" @@ -854,14 +856,14 @@ msgstr "" #: notifications/models/notification.py:12 #: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:63 #: rbac/builtin.py:124 rbac/models/rolebinding.py:49 -#: rbac/serializers/rolebinding.py:17 terminal/backends/command/models.py:16 -#: terminal/models/session/session.py:30 terminal/models/session/sharing.py:34 -#: terminal/notifications.py:156 terminal/notifications.py:205 -#: terminal/serializers/command.py:16 +#: rbac/serializers/rolebinding.py:17 settings/serializers/msg.py:34 +#: terminal/backends/command/models.py:16 terminal/models/session/session.py:30 +#: terminal/models/session/sharing.py:34 terminal/notifications.py:156 +#: terminal/notifications.py:205 terminal/serializers/command.py:16 #: terminal/templates/terminal/_msg_command_warning.html:6 #: terminal/templates/terminal/_msg_session_sharing.html:6 -#: tickets/models/comment.py:21 users/const.py:14 users/models/user.py:1062 -#: users/models/user.py:1100 +#: tickets/models/comment.py:21 users/const.py:14 users/models/user.py:1064 +#: users/models/user.py:1102 msgid "User" msgstr "" @@ -953,7 +955,7 @@ msgstr "" #: terminal/models/component/endpoint.py:119 #: terminal/models/session/session.py:47 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 -#: tickets/models/ticket/general.py:295 users/models/user.py:910 +#: tickets/models/ticket/general.py:295 users/models/user.py:912 #: xpack/plugins/cloud/models.py:39 xpack/plugins/cloud/models.py:106 msgid "Comment" msgstr "Description" @@ -1152,7 +1154,7 @@ msgstr "Active" #: acls/models/base.py:81 perms/serializers/permission.py:32 #: users/models/preference.py:16 users/serializers/group.py:21 -#: users/serializers/user.py:311 +#: users/serializers/user.py:332 msgid "Users" msgstr "" @@ -1179,7 +1181,7 @@ msgstr "" #: acls/models/command_acl.py:26 assets/models/cmd_filter.py:79 #: settings/models.py:184 settings/serializers/feature.py:19 -#: settings/serializers/msg.py:78 xpack/plugins/license/models.py:30 +#: settings/serializers/msg.py:76 xpack/plugins/license/models.py:30 msgid "Content" msgstr "" @@ -1276,7 +1278,7 @@ msgid "None of the reviewers belong to Organization `{}`" msgstr "" #: acls/serializers/rules/rules.py:20 -#: xpack/plugins/cloud/serializers/task.py:146 +#: xpack/plugins/cloud/serializers/task.py:145 msgid "IP address invalid: `{}`" msgstr "" @@ -1364,6 +1366,28 @@ msgstr "" msgid " - Platform {} ansible disabled" msgstr "" +#: assets/automations/base/manager.py:323 +msgid ">>> Task preparation phase" +msgstr "" + +#: assets/automations/base/manager.py:326 +#, python-brace-format +msgid ">>> Executing tasks in batches, total {runner_count}" +msgstr "" + +#: assets/automations/base/manager.py:328 +msgid ">>> Start executing tasks" +msgstr "" + +#: assets/automations/base/manager.py:330 +msgid ">>> No tasks need to be executed" +msgstr "" + +#: assets/automations/base/manager.py:335 +#, python-brace-format +msgid ">>> Begin executing batch {index} of tasks" +msgstr "" + #: assets/automations/ping_gateway/manager.py:33 #: authentication/models/connection_token.py:131 msgid "No account" @@ -1429,10 +1453,9 @@ msgid "Script" msgstr "" #: assets/const/category.py:10 assets/models/asset/host.py:8 -#: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:71 +#: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:76 #: settings/serializers/feature.py:49 settings/serializers/msg.py:31 #: terminal/models/component/endpoint.py:13 terminal/serializers/applet.py:17 -#: xpack/plugins/cloud/manager.py:73 #: xpack/plugins/cloud/serializers/account_attrs.py:72 msgid "Host" msgstr "" @@ -1561,7 +1584,7 @@ msgid "We will consider login success when we see this prompt" msgstr "" #: assets/const/protocol.py:127 assets/models/asset/database.py:10 -#: settings/serializers/msg.py:47 +#: settings/serializers/msg.py:49 msgid "Use SSL" msgstr "" @@ -1638,7 +1661,7 @@ msgid "Cloud" msgstr "" #: assets/models/asset/common.py:94 assets/models/platform.py:16 -#: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:72 +#: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:77 #: settings/serializers/msg.py:32 terminal/serializers/storage.py:133 #: xpack/plugins/cloud/serializers/account_attrs.py:73 msgid "Port" @@ -1705,7 +1728,7 @@ msgstr "" msgid "Allow invalid cert" msgstr "" -#: assets/models/asset/gpt.py:8 settings/serializers/feature.py:84 +#: assets/models/asset/gpt.py:8 settings/serializers/feature.py:86 msgid "Proxy" msgstr "" @@ -1716,7 +1739,7 @@ msgid "Node" msgstr "" #: assets/models/automations/base.py:22 ops/models/job.py:236 -#: settings/serializers/auth/sms.py:103 +#: settings/serializers/auth/sms.py:108 msgid "Parameters" msgstr "" @@ -1730,7 +1753,7 @@ msgstr "" #: assets/models/automations/base.py:114 assets/models/cmd_filter.py:41 #: audits/models.py:267 common/db/models.py:34 ops/models/base.py:54 -#: ops/models/job.py:240 users/models/user.py:1101 +#: ops/models/job.py:240 users/models/user.py:1103 msgid "Date created" msgstr "" @@ -1751,17 +1774,17 @@ msgid "Date verified" msgstr "" #: assets/models/cmd_filter.py:28 perms/models/asset_permission.py:66 -#: users/models/group.py:25 users/models/user.py:880 +#: users/models/group.py:25 users/models/user.py:882 msgid "User group" msgstr "" #: assets/models/cmd_filter.py:42 common/db/models.py:35 -#: users/models/user.py:936 +#: users/models/user.py:938 msgid "Date updated" msgstr "" #: assets/models/cmd_filter.py:44 assets/models/cmd_filter.py:91 -#: common/db/models.py:32 users/models/user.py:917 +#: common/db/models.py:32 users/models/user.py:919 #: users/serializers/group.py:32 msgid "Created by" msgstr "" @@ -1798,7 +1821,7 @@ msgstr "" msgid "Gateway" msgstr "" -#: assets/models/label.py:15 rbac/const.py:6 users/models/user.py:1086 +#: assets/models/label.py:15 rbac/const.py:6 users/models/user.py:1088 msgid "System" msgstr "" @@ -1817,7 +1840,7 @@ msgstr "" #: assets/serializers/platform.py:144 #: authentication/serializers/connect_token_secret.py:124 #: common/serializers/common.py:85 labels/models.py:17 labels/models.py:33 -#: labels/serializers.py:45 settings/serializers/msg.py:90 +#: labels/serializers.py:45 settings/serializers/msg.py:88 msgid "Label" msgstr "" @@ -1996,7 +2019,7 @@ msgstr "" #: authentication/serializers/connect_token_secret.py:75 #: perms/models/asset_permission.py:76 perms/serializers/permission.py:46 #: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:328 -#: xpack/plugins/cloud/serializers/task.py:34 +#: xpack/plugins/cloud/serializers/task.py:33 msgid "Protocols" msgstr "" @@ -2102,7 +2125,13 @@ msgstr "" msgid "Types" msgstr "" -#: assets/serializers/domain.py:21 orgs/serializers.py:13 +#: assets/serializers/domain.py:21 +msgid "" +"A gateway is a network proxy for a zone, and when connecting assets within " +"the zone, the connection is routed through the gateway." +msgstr "" + +#: assets/serializers/domain.py:24 orgs/serializers.py:13 #: perms/serializers/permission.py:40 msgid "Assets amount" msgstr "" @@ -2298,7 +2327,6 @@ msgstr "" #: audits/const.py:14 audits/const.py:25 #: authentication/templates/authentication/_access_key_modal.html:65 -#: rbac/tree.py:240 msgid "Delete" msgstr "" @@ -2322,16 +2350,14 @@ msgstr "" msgid "Rename dir" msgstr "" -#: audits/const.py:23 rbac/tree.py:238 terminal/api/session/session.py:277 +#: audits/const.py:23 terminal/api/session/session.py:277 #: terminal/templates/terminal/_msg_command_warning.html:18 #: terminal/templates/terminal/_msg_session_sharing.html:10 -#: xpack/plugins/cloud/manager.py:74 msgid "View" msgstr "" #: audits/const.py:26 #: authentication/templates/authentication/_access_key_modal.html:22 -#: rbac/tree.py:237 msgid "Create" msgstr "" @@ -2385,7 +2411,6 @@ msgstr "" #: audits/const.py:51 terminal/models/applet/host.py:144 #: terminal/models/component/task.py:22 -#: xpack/plugins/cloud/serializers/account.py:55 msgid "Task" msgstr "" @@ -2484,7 +2509,7 @@ msgstr "" #: audits/models.py:200 audits/serializers.py:52 #: authentication/templates/authentication/_mfa_confirm_modal.html:14 -#: users/forms/profile.py:63 users/models/user.py:897 +#: users/forms/profile.py:63 users/models/user.py:899 #: users/serializers/profile.py:102 msgid "MFA" msgstr "" @@ -2538,7 +2563,7 @@ msgstr "" #: audits/serializers.py:172 authentication/models/connection_token.py:47 #: authentication/models/temp_token.py:13 perms/models/asset_permission.py:80 #: tickets/models/ticket/apply_application.py:31 -#: tickets/models/ticket/apply_asset.py:20 users/models/user.py:915 +#: tickets/models/ticket/apply_asset.py:20 users/models/user.py:917 msgid "Date expired" msgstr "" @@ -2572,28 +2597,28 @@ msgstr "" #: audits/signal_handlers/login_log.py:37 authentication/notifications.py:73 #: authentication/views/login.py:77 notifications/backends/__init__.py:11 #: settings/serializers/auth/wecom.py:10 settings/serializers/auth/wecom.py:15 -#: users/models/user.py:758 users/models/user.py:930 +#: users/models/user.py:760 users/models/user.py:932 msgid "WeCom" msgstr "" #: audits/signal_handlers/login_log.py:38 authentication/views/feishu.py:105 #: authentication/views/login.py:89 notifications/backends/__init__.py:14 -#: settings/serializers/auth/feishu.py:10 users/models/user.py:760 -#: users/models/user.py:932 +#: settings/serializers/auth/feishu.py:10 users/models/user.py:762 +#: users/models/user.py:934 msgid "FeiShu" msgstr "" #: audits/signal_handlers/login_log.py:40 authentication/views/login.py:101 #: authentication/views/slack.py:87 notifications/backends/__init__.py:16 #: settings/serializers/auth/slack.py:10 settings/serializers/auth/slack.py:12 -#: users/models/user.py:762 users/models/user.py:934 +#: users/models/user.py:764 users/models/user.py:936 msgid "Slack" msgstr "" #: audits/signal_handlers/login_log.py:41 authentication/views/dingtalk.py:161 #: authentication/views/login.py:83 notifications/backends/__init__.py:12 -#: settings/serializers/auth/dingtalk.py:10 users/models/user.py:759 -#: users/models/user.py:931 +#: settings/serializers/auth/dingtalk.py:10 users/models/user.py:761 +#: users/models/user.py:933 msgid "DingTalk" msgstr "" @@ -2620,7 +2645,7 @@ msgstr "" msgid "Access keys can be created at most 10" msgstr "" -#: authentication/api/common.py:34 settings/serializers/auth/sms.py:117 +#: authentication/api/common.py:34 settings/serializers/auth/sms.py:122 #, python-format msgid "The value in the parameter must contain %s" msgstr "" @@ -2982,7 +3007,7 @@ msgstr "" #: authentication/mfa/sms.py:12 authentication/serializers/password_mfa.py:16 #: authentication/serializers/password_mfa.py:24 -#: settings/serializers/auth/sms.py:17 settings/serializers/auth/sms.py:32 +#: settings/serializers/auth/sms.py:18 settings/serializers/auth/sms.py:36 #: users/forms/profile.py:103 users/forms/profile.py:108 #: users/templates/users/forgot_password.html:157 #: users/views/profile/reset.py:100 @@ -3191,7 +3216,7 @@ msgstr "" #: authentication/serializers/connection_token.py:42 #: perms/serializers/permission.py:44 perms/serializers/permission.py:65 -#: users/serializers/user.py:101 users/serializers/user.py:184 +#: users/serializers/user.py:103 users/serializers/user.py:192 msgid "Is expired" msgstr "Expired" @@ -3205,8 +3230,8 @@ msgid "Access IP" msgstr "" #: authentication/serializers/token.py:92 perms/serializers/permission.py:43 -#: perms/serializers/permission.py:66 users/serializers/user.py:102 -#: users/serializers/user.py:181 +#: perms/serializers/permission.py:66 users/serializers/user.py:104 +#: users/serializers/user.py:189 msgid "Is valid" msgstr "Is Valid" @@ -3613,7 +3638,7 @@ msgstr "" msgid "Canceled" msgstr "" -#: common/const/common.py:5 xpack/plugins/cloud/manager.py:380 +#: common/const/common.py:5 #, python-format msgid "%(name)s was created successfully" msgstr "" @@ -3694,7 +3719,7 @@ msgstr "" msgid "discard time" msgstr "" -#: common/db/models.py:33 users/models/user.py:918 +#: common/db/models.py:33 users/models/user.py:920 msgid "Updated by" msgstr "" @@ -4112,11 +4137,11 @@ msgstr "" msgid "VCS" msgstr "" -#: ops/const.py:38 ops/models/adhoc.py:44 +#: ops/const.py:38 ops/models/adhoc.py:44 settings/serializers/feature.py:134 msgid "Adhoc" msgstr "" -#: ops/const.py:39 ops/models/job.py:149 +#: ops/const.py:39 ops/models/job.py:149 ops/models/playbook.py:88 msgid "Playbook" msgstr "" @@ -4180,17 +4205,17 @@ msgstr "" msgid "no valid program entry found." msgstr "" -#: ops/mixin.py:23 ops/mixin.py:102 settings/serializers/auth/ldap.py:66 +#: ops/mixin.py:23 ops/mixin.py:102 settings/serializers/auth/ldap.py:74 msgid "Periodic run" msgstr "Periodic" #: ops/mixin.py:25 ops/mixin.py:88 ops/mixin.py:108 -#: settings/serializers/auth/ldap.py:73 +#: settings/serializers/auth/ldap.py:81 msgid "Interval" msgstr "" #: ops/mixin.py:28 ops/mixin.py:86 ops/mixin.py:105 -#: settings/serializers/auth/ldap.py:70 +#: settings/serializers/auth/ldap.py:78 msgid "Crontab" msgstr "" @@ -4241,7 +4266,6 @@ msgid "Result" msgstr "" #: ops/models/base.py:52 ops/models/job.py:238 -#: xpack/plugins/cloud/manager.py:77 msgid "Summary" msgstr "" @@ -4471,7 +4495,7 @@ msgstr "" #: orgs/mixins/models.py:57 orgs/mixins/serializers.py:25 orgs/models.py:91 #: rbac/const.py:7 rbac/models/rolebinding.py:56 -#: rbac/serializers/rolebinding.py:44 settings/serializers/auth/ldap.py:63 +#: rbac/serializers/rolebinding.py:44 settings/serializers/auth/ldap.py:71 #: terminal/templates/terminal/_msg_command_warning.html:21 #: terminal/templates/terminal/_msg_session_sharing.html:14 #: tickets/models/ticket/general.py:300 tickets/serializers/ticket/ticket.py:60 @@ -4617,7 +4641,7 @@ msgid "today" msgstr "" #: perms/notifications.py:12 perms/notifications.py:44 -#: settings/serializers/feature.py:118 +#: settings/serializers/feature.py:125 msgid "day" msgstr "" @@ -4637,7 +4661,7 @@ msgstr "" msgid "asset permissions of organization {}" msgstr "" -#: perms/serializers/permission.py:34 users/serializers/user.py:173 +#: perms/serializers/permission.py:34 users/serializers/user.py:181 msgid "Groups" msgstr "" @@ -4744,7 +4768,7 @@ msgid "Scope" msgstr "" #: rbac/models/role.py:46 rbac/models/rolebinding.py:52 -#: users/models/user.py:884 +#: users/models/user.py:886 msgid "Role" msgstr "" @@ -4815,7 +4839,7 @@ msgstr "" msgid "Session audits" msgstr "Session" -#: rbac/tree.py:49 xpack/plugins/cloud/manager.py:74 +#: rbac/tree.py:49 msgid "Cloud import" msgstr "" @@ -4835,7 +4859,7 @@ msgstr "" msgid "Terminal setting" msgstr "Terminal" -#: rbac/tree.py:55 settings/serializers/feature.py:127 +#: rbac/tree.py:55 msgid "Job center" msgstr "" @@ -4861,8 +4885,8 @@ msgstr "Organizations" msgid "Ticket comment" msgstr "" -#: rbac/tree.py:130 settings/serializers/feature.py:109 -#: tickets/models/ticket/general.py:305 +#: rbac/tree.py:130 settings/serializers/feature.py:112 +#: settings/serializers/feature.py:114 tickets/models/ticket/general.py:305 msgid "Ticket" msgstr "" @@ -4874,6 +4898,22 @@ msgstr "" msgid "View permission tree" msgstr "" +#: rbac/tree.py:237 +msgid "create" +msgstr "" + +#: rbac/tree.py:238 terminal/templates/terminal/_msg_command_alert.html:10 +msgid "view" +msgstr "" + +#: rbac/tree.py:239 +msgid "update" +msgstr "" + +#: rbac/tree.py:240 +msgid "delete" +msgstr "" + #: settings/api/chat.py:40 msgid "Chat AI is not enabled" msgstr "" @@ -5037,12 +5077,35 @@ msgstr "" msgid "Passkey Auth" msgstr "" -#: settings/serializers/auth/base.py:27 -msgid "Forgot Password URL" +#: settings/serializers/auth/base.py:26 +msgid "Email suffix" msgstr "" -#: settings/serializers/auth/base.py:30 -msgid "Login redirection prompt" +#: settings/serializers/auth/base.py:28 +msgid "" +"After third-party user authentication is successful, if the third-party " +"authentication service platform does not return the user's email " +"information, the system will automatically create the user using this email " +"suffix" +msgstr "" + +#: settings/serializers/auth/base.py:35 +msgid "Forgot Password" +msgstr "" + +#: settings/serializers/auth/base.py:36 +msgid "The URL for Forgotten Password on the user login page" +msgstr "" + +#: settings/serializers/auth/base.py:39 +msgid "Login redirection" +msgstr "" + +#: settings/serializers/auth/base.py:41 +msgid "" +"Should an flash page be displayed before the user is redirected to third-" +"party authentication when the administrator enables third-party redirect " +"authentication" msgstr "" #: settings/serializers/auth/cas.py:10 settings/serializers/auth/cas.py:12 @@ -5050,7 +5113,7 @@ msgid "CAS" msgstr "" #: settings/serializers/auth/cas.py:13 settings/serializers/auth/ldap.py:42 -#: settings/serializers/auth/oidc.py:54 +#: settings/serializers/auth/oidc.py:60 msgid "Server" msgstr "" @@ -5058,31 +5121,43 @@ msgstr "" msgid "Proxy Server" msgstr "" -#: settings/serializers/auth/cas.py:18 settings/serializers/auth/oauth2.py:54 +#: settings/serializers/auth/cas.py:19 settings/serializers/auth/oauth2.py:54 #: settings/serializers/auth/saml2.py:33 msgid "Logout completely" msgstr "" -#: settings/serializers/auth/cas.py:23 -msgid "Username attr" +#: settings/serializers/auth/cas.py:20 +msgid "When the user signs out, they also be logged out from the CAS Server" msgstr "" #: settings/serializers/auth/cas.py:26 +msgid "Username attr" +msgstr "" + +#: settings/serializers/auth/cas.py:29 msgid "Enable attributes map" msgstr "" -#: settings/serializers/auth/cas.py:28 settings/serializers/auth/ldap.py:58 -#: settings/serializers/auth/oauth2.py:56 settings/serializers/auth/oidc.py:37 +#: settings/serializers/auth/cas.py:32 settings/serializers/auth/ldap.py:64 +#: settings/serializers/auth/oauth2.py:56 settings/serializers/auth/oidc.py:38 #: settings/serializers/auth/saml2.py:32 msgid "User attribute" msgstr "" -#: settings/serializers/auth/cas.py:30 +#: settings/serializers/auth/cas.py:34 +msgid "" +"User attribute mapping, where the `key` is the CAS service user attribute " +"name and the `value` is the JumpServer user attribute name" +msgstr "" + +#: settings/serializers/auth/cas.py:39 msgid "Create user" msgstr "" -#: settings/serializers/auth/cas.py:31 -msgid "Automatically create a new user if not found." +#: settings/serializers/auth/cas.py:41 +msgid "" +"After successful user authentication, if the user does not exist, " +"automatically create the user" msgstr "" #: settings/serializers/auth/dingtalk.py:15 @@ -5097,56 +5172,68 @@ msgstr "" msgid "Enable Lark Auth" msgstr "" -#: settings/serializers/auth/ldap.py:39 settings/serializers/auth/ldap.py:93 +#: settings/serializers/auth/ldap.py:39 settings/serializers/auth/ldap.py:103 msgid "LDAP" msgstr "" #: settings/serializers/auth/ldap.py:43 -msgid "eg: ldap://localhost:389" +msgid "LDAP server URI" msgstr "" -#: settings/serializers/auth/ldap.py:45 +#: settings/serializers/auth/ldap.py:46 msgid "Bind DN" msgstr "" -#: settings/serializers/auth/ldap.py:50 -msgid "User OU" +#: settings/serializers/auth/ldap.py:47 +msgid "Binding Distinguished Name" msgstr "" #: settings/serializers/auth/ldap.py:51 -msgid "Use | split multi OUs" -msgstr "" +#, fuzzy +#| msgid "Zip encrypt password" +msgid "Binding password" +msgstr "Passphrase" #: settings/serializers/auth/ldap.py:54 -msgid "User search filter" +msgid "Search OU" msgstr "" -#: settings/serializers/auth/ldap.py:55 -#, python-format -msgid "Choice may be (cn|uid|sAMAccountName)=%(user)s)" -msgstr "" - -#: settings/serializers/auth/ldap.py:59 +#: settings/serializers/auth/ldap.py:56 msgid "" -"User attr map present how to map LDAP user attr to jumpserver, username,name," -"email is jumpserver attr" +"User Search Base, if there are multiple OUs, you can separate them with the " +"`|` symbol" msgstr "" -#: settings/serializers/auth/ldap.py:77 +#: settings/serializers/auth/ldap.py:60 +msgid "Search filter" +msgstr "" + +#: settings/serializers/auth/ldap.py:61 +#, python-format +msgid "Selection could include (cn|uid|sAMAccountName=%(user)s)" +msgstr "" + +#: settings/serializers/auth/ldap.py:66 +msgid "" +"User attribute mapping, where the `key` is the JumpServer user attribute " +"name and the `value` is the LDAP service user attribute name" +msgstr "" + +#: settings/serializers/auth/ldap.py:85 msgid "Connect timeout (s)" msgstr "" -#: settings/serializers/auth/ldap.py:82 +#: settings/serializers/auth/ldap.py:90 msgid "User DN cache timeout (s)" msgstr "" -#: settings/serializers/auth/ldap.py:84 +#: settings/serializers/auth/ldap.py:92 msgid "" "Caching the User DN obtained during user login authentication can " "effectivelyimprove the speed of user authentication., 0 means no cache" msgstr "" -#: settings/serializers/auth/ldap.py:88 +#: settings/serializers/auth/ldap.py:97 msgid "Search paged size (piece)" msgstr "" @@ -5163,42 +5250,42 @@ msgstr "" msgid "Service provider" msgstr "" -#: settings/serializers/auth/oauth2.py:30 settings/serializers/auth/oidc.py:19 +#: settings/serializers/auth/oauth2.py:30 settings/serializers/auth/oidc.py:20 msgid "Client Id" msgstr "" -#: settings/serializers/auth/oauth2.py:33 settings/serializers/auth/oidc.py:22 +#: settings/serializers/auth/oauth2.py:33 settings/serializers/auth/oidc.py:23 #: xpack/plugins/cloud/serializers/account_attrs.py:38 msgid "Client Secret" msgstr "" -#: settings/serializers/auth/oauth2.py:39 settings/serializers/auth/oidc.py:68 +#: settings/serializers/auth/oauth2.py:39 settings/serializers/auth/oidc.py:76 msgid "Authorization endpoint" msgstr "" -#: settings/serializers/auth/oauth2.py:42 settings/serializers/auth/oidc.py:71 +#: settings/serializers/auth/oauth2.py:42 settings/serializers/auth/oidc.py:79 msgid "Token endpoint" msgstr "" -#: settings/serializers/auth/oauth2.py:45 settings/serializers/auth/oidc.py:30 -#: settings/serializers/auth/sms.py:106 +#: settings/serializers/auth/oauth2.py:45 settings/serializers/auth/oidc.py:31 +#: settings/serializers/auth/sms.py:111 msgid "Request method" msgstr "" -#: settings/serializers/auth/oauth2.py:49 settings/serializers/auth/oidc.py:77 +#: settings/serializers/auth/oauth2.py:49 settings/serializers/auth/oidc.py:85 msgid "Userinfo endpoint" msgstr "" -#: settings/serializers/auth/oauth2.py:52 settings/serializers/auth/oidc.py:80 +#: settings/serializers/auth/oauth2.py:52 settings/serializers/auth/oidc.py:88 msgid "End session endpoint" msgstr "" -#: settings/serializers/auth/oauth2.py:59 settings/serializers/auth/oidc.py:98 +#: settings/serializers/auth/oauth2.py:59 settings/serializers/auth/oidc.py:112 #: settings/serializers/auth/saml2.py:34 msgid "Always update user" msgstr "" -#: settings/serializers/auth/oidc.py:12 settings/serializers/auth/oidc.py:63 +#: settings/serializers/auth/oidc.py:12 settings/serializers/auth/oidc.py:70 msgid "OIDC" msgstr "" @@ -5206,69 +5293,83 @@ msgstr "" msgid "Base site URL" msgstr "" -#: settings/serializers/auth/oidc.py:32 +#: settings/serializers/auth/oidc.py:17 +msgid "The current site's URL is used to construct the callback address" +msgstr "" + +#: settings/serializers/auth/oidc.py:33 msgid "Share session" msgstr "" -#: settings/serializers/auth/oidc.py:34 +#: settings/serializers/auth/oidc.py:35 msgid "Ignore SSL verification" msgstr "" -#: settings/serializers/auth/oidc.py:38 +#: settings/serializers/auth/oidc.py:40 msgid "" -"User attr map present how to map OpenID user attr to jumpserver, username," -"name,email is jumpserver attr" +"User attribute mapping, where the `key` is the JumpServer user attribute " +"name and the `value` is the OIDC service user attribute name" msgstr "" -#: settings/serializers/auth/oidc.py:41 +#: settings/serializers/auth/oidc.py:44 msgid "Enable PKCE" msgstr "" -#: settings/serializers/auth/oidc.py:43 +#: settings/serializers/auth/oidc.py:46 msgid "Code challenge method" msgstr "" -#: settings/serializers/auth/oidc.py:51 +#: settings/serializers/auth/oidc.py:54 msgid "Use Keycloak" msgstr "" -#: settings/serializers/auth/oidc.py:57 +#: settings/serializers/auth/oidc.py:56 +msgid "" +"Use Keycloak as the OpenID Connect server, or use standard OpenID Connect " +"Protocol" +msgstr "" + +#: settings/serializers/auth/oidc.py:63 msgid "Realm name" msgstr "" -#: settings/serializers/auth/oidc.py:65 +#: settings/serializers/auth/oidc.py:70 +msgid "OpenID Connect" +msgstr "" + +#: settings/serializers/auth/oidc.py:73 msgid "Provider endpoint" msgstr "" -#: settings/serializers/auth/oidc.py:74 +#: settings/serializers/auth/oidc.py:82 msgid "JWKS endpoint" msgstr "" -#: settings/serializers/auth/oidc.py:83 +#: settings/serializers/auth/oidc.py:91 msgid "Signature algorithm" msgstr "" -#: settings/serializers/auth/oidc.py:86 +#: settings/serializers/auth/oidc.py:94 msgid "Signing key" msgstr "" -#: settings/serializers/auth/oidc.py:88 +#: settings/serializers/auth/oidc.py:97 msgid "Scopes" msgstr "" -#: settings/serializers/auth/oidc.py:90 +#: settings/serializers/auth/oidc.py:100 msgid "ID Token max age (s)" msgstr "" -#: settings/serializers/auth/oidc.py:93 +#: settings/serializers/auth/oidc.py:103 msgid "ID Token include claims" msgstr "" -#: settings/serializers/auth/oidc.py:95 +#: settings/serializers/auth/oidc.py:106 msgid "Use state" msgstr "" -#: settings/serializers/auth/oidc.py:96 +#: settings/serializers/auth/oidc.py:109 msgid "Use nonce" msgstr "" @@ -5323,54 +5424,67 @@ msgstr "" msgid "SP cert" msgstr "" -#: settings/serializers/auth/sms.py:19 -msgid "SMS provider / Protocol" +#: settings/serializers/auth/sms.py:18 +msgid "Enable Short Message Service (SMS)" +msgstr "" + +#: settings/serializers/auth/sms.py:21 xpack/plugins/cloud/models.py:34 +msgid "Provider" msgstr "" #: settings/serializers/auth/sms.py:22 -msgid "SMS code length" +msgid "Short Message Service (SMS) provider or protocol" msgstr "" -#: settings/serializers/auth/sms.py:27 settings/serializers/auth/sms.py:49 -#: settings/serializers/auth/sms.py:57 settings/serializers/auth/sms.py:66 -#: settings/serializers/auth/sms.py:77 settings/serializers/msg.py:83 +#: settings/serializers/auth/sms.py:25 +msgid "Code length" +msgstr "" + +#: settings/serializers/auth/sms.py:26 +msgid "Length of the sent verification code" +msgstr "" + +#: settings/serializers/auth/sms.py:31 settings/serializers/auth/sms.py:54 +#: settings/serializers/auth/sms.py:62 settings/serializers/auth/sms.py:71 +#: settings/serializers/auth/sms.py:82 settings/serializers/msg.py:81 msgid "Signature" msgstr "" -#: settings/serializers/auth/sms.py:28 settings/serializers/auth/sms.py:50 -#: settings/serializers/auth/sms.py:58 settings/serializers/auth/sms.py:67 +#: settings/serializers/auth/sms.py:32 settings/serializers/auth/sms.py:55 +#: settings/serializers/auth/sms.py:63 settings/serializers/auth/sms.py:72 msgid "Template code" msgstr "" -#: settings/serializers/auth/sms.py:35 -msgid "Test phone" +#: settings/serializers/auth/sms.py:40 users/models/user.py:896 +#: users/serializers/user.py:114 +msgid "Phone" msgstr "" -#: settings/serializers/auth/sms.py:64 +#: settings/serializers/auth/sms.py:69 msgid "App Access Address" msgstr "" -#: settings/serializers/auth/sms.py:65 +#: settings/serializers/auth/sms.py:70 msgid "Signature channel number" msgstr "" -#: settings/serializers/auth/sms.py:73 +#: settings/serializers/auth/sms.py:78 msgid "Enterprise code" msgstr "" -#: settings/serializers/auth/sms.py:74 +#: settings/serializers/auth/sms.py:79 msgid "Shared secret" msgstr "" -#: settings/serializers/auth/sms.py:75 +#: settings/serializers/auth/sms.py:80 msgid "Original number" msgstr "" -#: settings/serializers/auth/sms.py:76 +#: settings/serializers/auth/sms.py:81 msgid "Business type" msgstr "" -#: settings/serializers/auth/sms.py:80 +#: settings/serializers/auth/sms.py:85 #, python-brace-format msgid "" "Template need contain {code} and Signature + template length does not exceed " @@ -5378,16 +5492,16 @@ msgid "" "5 minutes. Please do not disclose it to others." msgstr "" -#: settings/serializers/auth/sms.py:89 +#: settings/serializers/auth/sms.py:94 #, python-brace-format msgid "The template needs to contain {code}" msgstr "" -#: settings/serializers/auth/sms.py:92 +#: settings/serializers/auth/sms.py:97 msgid "Signature + Template must not exceed 65 words" msgstr "" -#: settings/serializers/auth/sms.py:101 +#: settings/serializers/auth/sms.py:106 msgid "URL" msgstr "" @@ -5418,39 +5532,43 @@ msgid "" "and is usually used in links in system emails" msgstr "" -#: settings/serializers/basic.py:19 +#: settings/serializers/basic.py:18 msgid "User guide url" msgstr "" -#: settings/serializers/basic.py:20 +#: settings/serializers/basic.py:19 msgid "User first login update profile done redirect to it" msgstr "" -#: settings/serializers/basic.py:23 +#: settings/serializers/basic.py:22 msgid "Global organization" msgstr "" -#: settings/serializers/basic.py:24 +#: settings/serializers/basic.py:23 msgid "The name of global organization to display" msgstr "" -#: settings/serializers/basic.py:27 -msgid "Help Docs URL" -msgstr "Document URL" - -#: settings/serializers/basic.py:28 -msgid "default: http://docs.jumpserver.org" +#: settings/serializers/basic.py:26 +msgid "Document URL" msgstr "" -#: settings/serializers/basic.py:31 -msgid "Help Support URL" +#: settings/serializers/basic.py:27 +msgid "" +"Document URL refers to the address in the top navigation bar Help - Document" +msgstr "" + +#: settings/serializers/basic.py:30 +#, fuzzy +#| msgid "Help Support URL" +msgid "Support URL" msgstr "Support URL" -#: settings/serializers/basic.py:32 -msgid "default: http://www.jumpserver.org/support/" +#: settings/serializers/basic.py:31 +msgid "" +"Support URL refers to the address in the top navigation bar Help - Support" msgstr "" -#: settings/serializers/basic.py:45 +#: settings/serializers/basic.py:44 msgid "Organization name already exists" msgstr "" @@ -5500,7 +5618,7 @@ msgid "" "database, OSS will not be affected." msgstr "" -#: settings/serializers/feature.py:18 settings/serializers/msg.py:68 +#: settings/serializers/feature.py:18 settings/serializers/msg.py:66 msgid "Subject" msgstr "" @@ -5522,70 +5640,93 @@ msgid "Mount Point" msgstr "" #: settings/serializers/feature.py:60 -msgid "Historical accounts retained count" -msgstr "Retention" +msgid "Record limit" +msgstr "" #: settings/serializers/feature.py:62 msgid "" -"If the specific value is less than 999, the system will automatically " -"perform a task every night: check and delete historical accounts that exceed " -"the predetermined number. If the value reaches or exceeds 999, no historical " -"account deletion will be performed." +"If the specific value is less than 999 (default), the system will " +"automatically perform a task every night: check and delete historical " +"accounts that exceed the predetermined number. If the value reaches or " +"exceeds 999 (default), no historical account deletion will be performed" msgstr "" -#: settings/serializers/feature.py:71 settings/serializers/feature.py:75 +#: settings/serializers/feature.py:72 settings/serializers/feature.py:76 msgid "Chat AI" msgstr "" -#: settings/serializers/feature.py:78 -msgid "Base Url" +#: settings/serializers/feature.py:79 +msgid "Base URL" msgstr "" -#: settings/serializers/feature.py:81 templates/_header_bar.html:96 +#: settings/serializers/feature.py:80 +msgid "The base URL of the GPT service. For example: https://api.openai.com/v1" +msgstr "" + +#: settings/serializers/feature.py:83 templates/_header_bar.html:96 msgid "API Key" msgstr "" #: settings/serializers/feature.py:87 +msgid "" +"The proxy server address of the GPT service. For example: http://ip:port" +msgstr "" + +#: settings/serializers/feature.py:90 msgid "GPT Model" msgstr "" -#: settings/serializers/feature.py:111 -msgid "Enable tickets" +#: settings/serializers/feature.py:116 +msgid "Approval without login" msgstr "" -#: settings/serializers/feature.py:112 -msgid "No login approval" +#: settings/serializers/feature.py:117 +msgid "Allow direct approval ticket without login" msgstr "" -#: settings/serializers/feature.py:115 -msgid "Default period" +#: settings/serializers/feature.py:121 +#, fuzzy +#| msgid "Periodic run" +msgid "Period" +msgstr "Periodic" + +#: settings/serializers/feature.py:122 +msgid "" +"The default authorization time period when applying for assets via a ticket" msgstr "" -#: settings/serializers/feature.py:118 +#: settings/serializers/feature.py:125 msgid "hour" msgstr "" -#: settings/serializers/feature.py:119 -msgid "Default unit" +#: settings/serializers/feature.py:126 +msgid "Unit" msgstr "" -#: settings/serializers/feature.py:124 +#: settings/serializers/feature.py:126 +#, fuzzy +#| msgid "Run period" +msgid "The unit of period" +msgstr "Period" + +#: settings/serializers/feature.py:131 msgid "Feature" msgstr "" -#: settings/serializers/feature.py:128 -msgid "Allow user run batch command or not using ansible" +#: settings/serializers/feature.py:135 +msgid "" +"Allow users to execute batch commands in the Workbench - Job Center - Adhoc" msgstr "" -#: settings/serializers/feature.py:132 +#: settings/serializers/feature.py:139 msgid "Command blacklist" msgstr "" -#: settings/serializers/feature.py:133 -msgid "Commands that are not allowed execute." +#: settings/serializers/feature.py:140 +msgid "Command blacklist in Adhoc" msgstr "" -#: settings/serializers/feature.py:138 settings/serializers/feature.py:141 +#: settings/serializers/feature.py:145 #: terminal/models/virtualapp/provider.py:17 #: terminal/models/virtualapp/virtualapp.py:36 #: terminal/models/virtualapp/virtualapp.py:97 @@ -5593,6 +5734,16 @@ msgstr "" msgid "Virtual app" msgstr "" +#: settings/serializers/feature.py:148 +msgid "vApp" +msgstr "" + +#: settings/serializers/feature.py:150 +msgid "" +"Virtual applications, you can use the Linux operating system as an " +"application server in remote applications." +msgstr "" + #: settings/serializers/msg.py:25 msgid "SMTP" msgstr "" @@ -5601,73 +5752,71 @@ msgstr "" msgid "EXCHANGE" msgstr "" -#: settings/serializers/msg.py:36 -msgid "Tips: Some provider use token except password" +#: settings/serializers/msg.py:34 +msgid "The user to be used for email server authentication" msgstr "" -#: settings/serializers/msg.py:39 -msgid "Sender" +#: settings/serializers/msg.py:38 +msgid "" +"Password to use for the email server. It is used in conjunction with `User` " +"when authenticating to the email server" msgstr "" -#: settings/serializers/msg.py:40 -msgid "Tips: Send mail account, default SMTP account as the send account" +#: settings/serializers/msg.py:41 +msgid "From" msgstr "" -#: settings/serializers/msg.py:43 -msgid "Test recipient" +#: settings/serializers/msg.py:42 +msgid "Sender email address (default to using the `User`)" msgstr "" -#: settings/serializers/msg.py:44 -msgid "Tips: Used only as a test mail recipient" +#: settings/serializers/msg.py:46 +msgid "The recipient is used for testing the email server's connectivity" msgstr "" -#: settings/serializers/msg.py:48 -msgid "If SMTP port is 465, may be select" +#: settings/serializers/msg.py:50 +msgid "" +"Whether to use an implicit TLS (secure) connection when talking to the SMTP " +"server. In most email documentation this type of TLS connection is referred " +"to as SSL. It is generally used on port 465" msgstr "" -#: settings/serializers/msg.py:51 +#: settings/serializers/msg.py:53 msgid "Use TLS" msgstr "" -#: settings/serializers/msg.py:52 -msgid "If SMTP port is 587, may be select" +#: settings/serializers/msg.py:54 +msgid "" +"Whether to use a TLS (secure) connection when talking to the SMTP server. " +"This is used for explicit TLS connections, generally on port 587" msgstr "" -#: settings/serializers/msg.py:55 +#: settings/serializers/msg.py:62 msgid "Subject prefix" msgstr "" -#: settings/serializers/msg.py:58 -msgid "Email suffix" -msgstr "" - -#: settings/serializers/msg.py:59 -msgid "" -"This is used by default if no email is returned during SSO authentication" -msgstr "" - -#: settings/serializers/msg.py:69 +#: settings/serializers/msg.py:67 msgid "" "Tips: When creating a user, send the subject of the email (eg:Create account " "successfully)" msgstr "" -#: settings/serializers/msg.py:73 +#: settings/serializers/msg.py:71 msgid "Honorific" msgstr "" -#: settings/serializers/msg.py:74 +#: settings/serializers/msg.py:72 msgid "Tips: When creating a user, send the honorific of the email (eg:Hello)" msgstr "" -#: settings/serializers/msg.py:80 +#: settings/serializers/msg.py:78 #, python-brace-format msgid "" "Tips: When creating a user, send the content of the email, support " "{username} {name} {email} label" msgstr "" -#: settings/serializers/msg.py:84 +#: settings/serializers/msg.py:82 msgid "Tips: Email signature (eg:jumpserver)" msgstr "" @@ -7045,8 +7194,7 @@ msgstr "" msgid "Access key secret" msgstr "" -#: terminal/serializers/storage.py:68 xpack/plugins/cloud/manager.py:90 -#: xpack/plugins/cloud/models.py:249 +#: terminal/serializers/storage.py:68 xpack/plugins/cloud/models.py:249 msgid "Region" msgstr "" @@ -7066,7 +7214,7 @@ msgstr "" msgid "HOST" msgstr "" -#: terminal/serializers/storage.py:146 users/models/user.py:904 +#: terminal/serializers/storage.py:146 users/models/user.py:906 #: xpack/plugins/cloud/serializers/account_attrs.py:213 msgid "Private key" msgstr "" @@ -7268,10 +7416,6 @@ msgstr "" msgid "Check command replay storage connectivity" msgstr "" -#: terminal/templates/terminal/_msg_command_alert.html:10 -msgid "view" -msgstr "" - #: terminal/utils/db_port_mapper.py:85 msgid "" "No available port is matched. The number of databases may have exceeded the " @@ -7784,7 +7928,7 @@ msgstr "" msgid "Not a valid ssh public key" msgstr "" -#: users/forms/profile.py:172 users/models/user.py:907 +#: users/forms/profile.py:172 users/models/user.py:909 #: xpack/plugins/cloud/serializers/account_attrs.py:210 msgid "Public key" msgstr "" @@ -7797,72 +7941,68 @@ msgstr "" msgid "Force enable" msgstr "" -#: users/models/user.py:761 +#: users/models/user.py:763 msgid "Lark" msgstr "" -#: users/models/user.py:886 users/serializers/user.py:182 +#: users/models/user.py:888 users/serializers/user.py:190 msgid "Is service account" msgstr "Is service account" -#: users/models/user.py:888 +#: users/models/user.py:890 msgid "Avatar" msgstr "" -#: users/models/user.py:891 +#: users/models/user.py:893 msgid "Wechat" msgstr "" -#: users/models/user.py:894 users/serializers/user.py:112 -msgid "Phone" -msgstr "" - -#: users/models/user.py:900 +#: users/models/user.py:902 msgid "OTP secret key" msgstr "" -#: users/models/user.py:912 users/serializers/profile.py:129 -#: users/serializers/user.py:179 +#: users/models/user.py:914 users/serializers/profile.py:129 +#: users/serializers/user.py:187 msgid "Is first login" msgstr "First login" -#: users/models/user.py:921 +#: users/models/user.py:923 msgid "Date password last updated" msgstr "Password updated" -#: users/models/user.py:924 +#: users/models/user.py:926 msgid "Need update password" msgstr "" -#: users/models/user.py:935 +#: users/models/user.py:937 msgid "Date api key used" msgstr "" -#: users/models/user.py:1057 +#: users/models/user.py:1059 msgid "Can not delete admin user" msgstr "" -#: users/models/user.py:1071 +#: users/models/user.py:1073 msgid "Can invite user" msgstr "" -#: users/models/user.py:1072 +#: users/models/user.py:1074 msgid "Can remove user" msgstr "" -#: users/models/user.py:1073 +#: users/models/user.py:1075 msgid "Can match user" msgstr "" -#: users/models/user.py:1082 +#: users/models/user.py:1084 msgid "Administrator" msgstr "" -#: users/models/user.py:1085 +#: users/models/user.py:1087 msgid "Administrator is the super user of system" msgstr "" -#: users/models/user.py:1110 +#: users/models/user.py:1112 msgid "User password history" msgstr "" @@ -7999,72 +8139,92 @@ msgstr "" msgid "Forced enabled" msgstr "" -#: users/serializers/user.py:45 +#: users/serializers/user.py:44 msgid "System roles" msgstr "" +#: users/serializers/user.py:45 +msgid "" +"System roles are roles at the system level, and they will take effect across " +"all organizations" +msgstr "" + #: users/serializers/user.py:49 msgid "Org roles" msgstr "" #: users/serializers/user.py:52 +msgid "" +"Org roles are roles at the organization level, and they will only take " +"effect within current organization" +msgstr "" + +#: users/serializers/user.py:54 msgid "Organizations and roles" msgstr "" -#: users/serializers/user.py:94 +#: users/serializers/user.py:96 msgid "Password setting" msgstr "" -#: users/serializers/user.py:96 +#: users/serializers/user.py:98 msgid "MFA enabled" msgstr "" -#: users/serializers/user.py:98 +#: users/serializers/user.py:100 msgid "MFA force enabled" msgstr "" -#: users/serializers/user.py:100 +#: users/serializers/user.py:102 msgid "Login blocked" msgstr "" -#: users/serializers/user.py:103 users/serializers/user.py:188 +#: users/serializers/user.py:105 users/serializers/user.py:196 msgid "Is OTP bound" msgstr "OTP bound" -#: users/serializers/user.py:104 +#: users/serializers/user.py:106 msgid "Super Administrator" msgstr "" -#: users/serializers/user.py:105 +#: users/serializers/user.py:107 msgid "Organization Administrator" msgstr "" -#: users/serializers/user.py:107 +#: users/serializers/user.py:109 msgid "Can public key authentication" msgstr "Can public key authentication" -#: users/serializers/user.py:176 +#: users/serializers/user.py:169 +msgid "Fullname of user" +msgstr "" + +#: users/serializers/user.py:172 +msgid "Login username" +msgstr "" + +#: users/serializers/user.py:184 msgid "Superuser" msgstr "" -#: users/serializers/user.py:183 +#: users/serializers/user.py:191 msgid "Is org admin" msgstr "Org admin" -#: users/serializers/user.py:185 +#: users/serializers/user.py:193 msgid "Avatar url" msgstr "" -#: users/serializers/user.py:189 +#: users/serializers/user.py:197 msgid "MFA level" msgstr "MFA" -#: users/serializers/user.py:312 +#: users/serializers/user.py:333 msgid "" "For security, only a partial of users is displayed. You can search for more" msgstr "" -#: users/serializers/user.py:345 +#: users/serializers/user.py:366 msgid "name not unique" msgstr "" @@ -8351,10 +8511,9 @@ msgstr "" msgid "XPACK" msgstr "" -#: xpack/exceptions.py:8 +#: xpack/exceptions.py:7 msgid "" -"Based on the current task configuration, assets that do not match the " -"strategy will skipped." +"The current task is not synchronized with unmatched policy assets, skipping" msgstr "" #: xpack/plugins/cloud/api.py:60 @@ -8477,19 +8636,19 @@ msgstr "" msgid "Succeed" msgstr "" -#: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:80 +#: xpack/plugins/cloud/const.py:52 msgid "Unsync" msgstr "" -#: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:79 +#: xpack/plugins/cloud/const.py:53 msgid "New Sync" msgstr "" -#: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:79 +#: xpack/plugins/cloud/const.py:54 msgid "Synced" msgstr "" -#: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:80 +#: xpack/plugins/cloud/const.py:55 msgid "Released" msgstr "" @@ -8501,108 +8660,17 @@ msgstr "" msgid "Or" msgstr "" -#: xpack/plugins/cloud/manager.py:41 -#, python-format -msgid "Task \"%s\" starts executing" -msgstr "" - -#: xpack/plugins/cloud/manager.py:45 xpack/plugins/cloud/manager.py:55 -#: xpack/plugins/cloud/manager.py:57 xpack/plugins/cloud/providers/gcp.py:64 +#: xpack/plugins/cloud/manager.py:55 xpack/plugins/cloud/providers/gcp.py:64 #: xpack/plugins/cloud/providers/huaweicloud.py:34 msgid "Account unavailable" msgstr "" -#: xpack/plugins/cloud/manager.py:71 -msgid "View the task details path: " -msgstr "" - -#: xpack/plugins/cloud/manager.py:74 -msgid "Account Details" -msgstr "" - -#: xpack/plugins/cloud/manager.py:75 -msgid "Synchronization History List" -msgstr "" - -#: xpack/plugins/cloud/manager.py:75 -msgid "Synchronization Instance List" -msgstr "" - -#: xpack/plugins/cloud/manager.py:83 -msgid "Task execution completed" -msgstr "" - -#: xpack/plugins/cloud/manager.py:87 -msgid "Synchronization regions" -msgstr "" - -#: xpack/plugins/cloud/manager.py:110 -#, python-format -msgid "Get instances of region \"%s\" error, error: %s" -msgstr "" - -#: xpack/plugins/cloud/manager.py:128 -#, python-format -msgid "The instance IP \"%s\" is not in network segment \"%s\"" -msgstr "" - -#: xpack/plugins/cloud/manager.py:164 -#, python-format -msgid "Failed to synchronize the instance \"%s\"" -msgstr "" - -#: xpack/plugins/cloud/manager.py:316 -#, python-format -msgid "" -"The updated platform of asset \"%s\" is inconsistent with the original " -"platform type. Skip platform and protocol updates" -msgstr "" - -#: xpack/plugins/cloud/manager.py:358 -#, python-format -msgid "The asset \"%s\" already exists" -msgstr "" - -#: xpack/plugins/cloud/manager.py:362 -#, python-format -msgid "Update asset \"%s\"" -msgstr "" - -#: xpack/plugins/cloud/manager.py:365 -#, python-format -msgid "Asset \"%s\" has been updated" -msgstr "" - -#: xpack/plugins/cloud/manager.py:376 -#, python-format -msgid "Prepare to create asset \"%s\"" -msgstr "" - -#: xpack/plugins/cloud/manager.py:388 -#, python-format -msgid "Set nodes \"%s\"" -msgstr "" - -#: xpack/plugins/cloud/manager.py:414 -#, python-format -msgid "Set accounts \"%s\"" -msgstr "" - -#: xpack/plugins/cloud/manager.py:430 -#, python-format -msgid "Set protocols \"%s\"" -msgstr "" - #: xpack/plugins/cloud/meta.py:9 msgid "Cloud center" msgstr "" -#: xpack/plugins/cloud/models.py:34 -msgid "Provider" -msgstr "" - #: xpack/plugins/cloud/models.py:37 -#: xpack/plugins/cloud/serializers/account.py:69 +#: xpack/plugins/cloud/serializers/account.py:68 msgid "Attrs" msgstr "" @@ -8618,7 +8686,7 @@ msgstr "" msgid "Test cloud account" msgstr "" -#: xpack/plugins/cloud/models.py:88 xpack/plugins/cloud/serializers/task.py:160 +#: xpack/plugins/cloud/models.py:88 xpack/plugins/cloud/serializers/task.py:159 msgid "Regions" msgstr "" @@ -8626,16 +8694,16 @@ msgstr "" msgid "Hostname strategy" msgstr "" -#: xpack/plugins/cloud/models.py:96 xpack/plugins/cloud/serializers/task.py:163 +#: xpack/plugins/cloud/models.py:96 xpack/plugins/cloud/serializers/task.py:162 msgid "IP network segment group" msgstr "" -#: xpack/plugins/cloud/models.py:99 xpack/plugins/cloud/serializers/task.py:168 +#: xpack/plugins/cloud/models.py:99 xpack/plugins/cloud/serializers/task.py:167 msgid "Sync IP type" msgstr "" #: xpack/plugins/cloud/models.py:102 -#: xpack/plugins/cloud/serializers/task.py:186 +#: xpack/plugins/cloud/serializers/task.py:185 msgid "Always update" msgstr "" @@ -8684,7 +8752,7 @@ msgstr "" msgid "Sync instance detail" msgstr "" -#: xpack/plugins/cloud/models.py:275 xpack/plugins/cloud/serializers/task.py:73 +#: xpack/plugins/cloud/models.py:275 xpack/plugins/cloud/serializers/task.py:72 msgid "Rule relation" msgstr "" @@ -8740,7 +8808,7 @@ msgstr "" msgid "Rule value" msgstr "" -#: xpack/plugins/cloud/models.py:321 xpack/plugins/cloud/serializers/task.py:76 +#: xpack/plugins/cloud/models.py:321 xpack/plugins/cloud/serializers/task.py:75 msgid "Strategy rule" msgstr "" @@ -8752,7 +8820,7 @@ msgstr "" msgid "Action value" msgstr "" -#: xpack/plugins/cloud/models.py:345 xpack/plugins/cloud/serializers/task.py:79 +#: xpack/plugins/cloud/models.py:345 xpack/plugins/cloud/serializers/task.py:78 msgid "Strategy action" msgstr "" @@ -8946,16 +9014,11 @@ msgstr "" msgid "CN East-Suqian" msgstr "" -#: xpack/plugins/cloud/providers/lan.py:79 -#, python-format -msgid "Port \"%(port)s\" of instance IP \"%(ip)s\" is not reachable" -msgstr "" - -#: xpack/plugins/cloud/serializers/account.py:70 +#: xpack/plugins/cloud/serializers/account.py:69 msgid "Validity display" msgstr "" -#: xpack/plugins/cloud/serializers/account.py:71 +#: xpack/plugins/cloud/serializers/account.py:70 msgid "Provider display" msgstr "" @@ -9046,7 +9109,7 @@ msgstr "" msgid "Project" msgstr "" -#: xpack/plugins/cloud/serializers/task.py:152 +#: xpack/plugins/cloud/serializers/task.py:151 msgid "" "Only instances matching the IP range will be synced.
If the instance " "contains multiple IP addresses, the first IP address that matches will be " @@ -9055,11 +9118,11 @@ msgid "" "10.1.1.1-10.1.1.20" msgstr "" -#: xpack/plugins/cloud/serializers/task.py:158 +#: xpack/plugins/cloud/serializers/task.py:157 msgid "History count" msgstr "" -#: xpack/plugins/cloud/serializers/task.py:159 +#: xpack/plugins/cloud/serializers/task.py:158 msgid "Instance count" msgstr "" @@ -9075,8 +9138,7 @@ msgstr "" msgid "Restore default successfully." msgstr "" -#: xpack/plugins/interface/meta.py:9 xpack/plugins/interface/models.py:45 -#: xpack/plugins/interface/models.py:86 +#: xpack/plugins/interface/meta.py:9 msgid "Interface settings" msgstr "" @@ -9109,6 +9171,12 @@ msgstr "" msgid "Footer content" msgstr "" +#: xpack/plugins/interface/models.py:45 xpack/plugins/interface/models.py:86 +#, fuzzy +#| msgid "Terminal setting" +msgid "Interface setting" +msgstr "Terminal" + #: xpack/plugins/interface/serializers/interface.py:37 msgid "Wide logo on top" msgstr "" @@ -9122,7 +9190,7 @@ msgid "License import successfully" msgstr "" #: xpack/plugins/license/api.py:53 -msgid "Invalid license" +msgid "License is invalid" msgstr "" #: xpack/plugins/license/meta.py:10 xpack/plugins/license/models.py:144 @@ -9145,6 +9213,12 @@ msgstr "" msgid "Ultimate edition" msgstr "" +#~ msgid "Help Docs URL" +#~ msgstr "Document URL" + +#~ msgid "Historical accounts retained count" +#~ msgstr "Retention" + #~ msgid "" #~ "External URL, email links or other system callbacks are used to access " #~ "it, eg: http://dev.jumpserver.org:8080" diff --git a/apps/i18n/core/ja/LC_MESSAGES/django.po b/apps/i18n/core/ja/LC_MESSAGES/django.po index c32eefdf9..8359ebc8c 100644 --- a/apps/i18n/core/ja/LC_MESSAGES/django.po +++ b/apps/i18n/core/ja/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-15 11:48+0800\n" +"POT-Creation-Date: 2024-05-22 18:28+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,7 +22,13 @@ msgstr "" msgid "The parameter 'action' must be [{}]" msgstr "パラメータ 'action' は [{}] でなければなりません。" -#: accounts/automations/change_secret/manager.py:225 +#: accounts/automations/change_secret/manager.py:102 +#, python-brace-format +msgid "" +"No pending accounts found: {name} User ID: {account_ids} Type: {secret_type}" +msgstr "" + +#: accounts/automations/change_secret/manager.py:227 #, python-format msgid "Success: %s, Failed: %s, Total: %s" msgstr "成功: %s、失敗: %s、合計: %s" @@ -33,10 +39,10 @@ msgstr "成功: %s、失敗: %s、合計: %s" #: authentication/confirm/password.py:24 authentication/confirm/password.py:26 #: authentication/forms.py:28 #: authentication/templates/authentication/login.html:329 -#: settings/serializers/auth/ldap.py:25 settings/serializers/auth/ldap.py:47 -#: settings/serializers/msg.py:35 terminal/serializers/storage.py:123 +#: settings/serializers/auth/ldap.py:25 settings/serializers/auth/ldap.py:50 +#: settings/serializers/msg.py:37 terminal/serializers/storage.py:123 #: terminal/serializers/storage.py:142 users/forms/profile.py:21 -#: users/serializers/user.py:110 +#: users/serializers/user.py:112 #: users/templates/users/_msg_user_created.html:13 #: users/templates/users/user_password_verify.html:18 #: xpack/plugins/cloud/serializers/account_attrs.py:28 @@ -83,7 +89,7 @@ msgstr "匿名ユーザー" msgid "Specified account" msgstr "特定のアカウント" -#: accounts/const/account.py:26 users/models/user.py:751 +#: accounts/const/account.py:26 users/models/user.py:753 msgid "Local" msgstr "ローカル" @@ -92,7 +98,7 @@ msgid "Collected" msgstr "集めました" #: accounts/const/account.py:28 accounts/serializers/account/account.py:28 -#: settings/serializers/auth/sms.py:79 +#: settings/serializers/auth/sms.py:84 msgid "Template" msgstr "テンプレート" @@ -100,7 +106,7 @@ msgstr "テンプレート" msgid "Skip" msgstr "スキップ" -#: accounts/const/account.py:33 audits/const.py:24 rbac/tree.py:239 +#: accounts/const/account.py:33 audits/const.py:24 #: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6 msgid "Update" msgstr "更新" @@ -209,8 +215,8 @@ msgstr "作成のみ" #: authentication/serializers/password_mfa.py:16 #: authentication/serializers/password_mfa.py:24 #: notifications/backends/__init__.py:10 settings/serializers/msg.py:22 -#: settings/serializers/msg.py:64 users/forms/profile.py:100 -#: users/forms/profile.py:108 users/models/user.py:876 +#: settings/serializers/msg.py:59 users/forms/profile.py:100 +#: users/forms/profile.py:108 users/models/user.py:878 #: users/templates/users/forgot_password.html:162 #: users/views/profile/reset.py:94 msgid "Email" @@ -291,13 +297,13 @@ msgid "Su from" msgstr "から切り替え" #: accounts/models/account.py:55 assets/const/protocol.py:177 -#: settings/serializers/auth/cas.py:20 terminal/models/applet/applet.py:35 +#: settings/serializers/auth/cas.py:23 terminal/models/applet/applet.py:35 #: terminal/models/virtualapp/virtualapp.py:21 msgid "Version" msgstr "バージョン" #: accounts/models/account.py:57 accounts/serializers/account/account.py:217 -#: users/models/user.py:928 +#: users/models/user.py:930 msgid "Source" msgstr "ソース" @@ -312,9 +318,8 @@ msgstr "ソース ID" #: acls/serializers/base.py:124 acls/templates/acls/asset_login_reminder.html:7 #: assets/serializers/gateway.py:28 audits/models.py:59 #: authentication/api/connection_token.py:411 ops/models/base.py:18 -#: perms/models/asset_permission.py:75 settings/serializers/msg.py:33 -#: terminal/backends/command/models.py:18 terminal/models/session/session.py:34 -#: terminal/serializers/command.py:72 +#: perms/models/asset_permission.py:75 terminal/backends/command/models.py:18 +#: terminal/models/session/session.py:34 terminal/serializers/command.py:72 #: terminal/templates/terminal/_msg_command_warning.html:8 #: terminal/templates/terminal/_msg_session_sharing.html:8 #: tickets/models/ticket/command_confirm.py:13 xpack/plugins/cloud/models.py:85 @@ -419,8 +424,7 @@ msgid "Trigger mode" msgstr "トリガーモード" #: accounts/models/automations/backup_account.py:134 audits/models.py:203 -#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:165 -#: xpack/plugins/cloud/models.py:204 +#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/models.py:204 msgid "Reason" msgstr "理由" @@ -479,7 +483,7 @@ msgstr "SSHキープッシュ方式" #: accounts/models/automations/gather_account.py:58 #: accounts/serializers/account/backup.py:40 #: accounts/serializers/automations/change_secret.py:58 -#: settings/serializers/auth/ldap.py:90 +#: settings/serializers/auth/ldap.py:100 settings/serializers/msg.py:45 msgid "Recipient" msgstr "受信者" @@ -553,7 +557,7 @@ msgstr "最終ログイン日" #: authentication/templates/authentication/_msg_different_city.html:9 #: authentication/templates/authentication/_msg_oauth_bind.html:9 #: terminal/serializers/storage.py:136 users/forms/profile.py:31 -#: users/forms/profile.py:114 users/models/user.py:872 +#: users/forms/profile.py:114 users/models/user.py:874 #: users/templates/users/_msg_user_created.html:12 #: xpack/plugins/cloud/serializers/account_attrs.py:26 msgid "Username" @@ -642,7 +646,7 @@ msgstr "パスワードルール" #: ops/models/celery.py:80 ops/models/job.py:142 ops/models/playbook.py:28 #: ops/serializers/job.py:18 orgs/models.py:82 #: perms/models/asset_permission.py:61 rbac/models/role.py:29 -#: settings/models.py:34 settings/models.py:183 settings/serializers/msg.py:89 +#: settings/models.py:34 settings/models.py:183 settings/serializers/msg.py:87 #: settings/serializers/terminal.py:9 terminal/models/applet/applet.py:33 #: terminal/models/component/endpoint.py:12 #: terminal/models/component/endpoint.py:109 @@ -651,9 +655,9 @@ msgstr "パスワードルール" #: terminal/models/virtualapp/provider.py:10 #: terminal/models/virtualapp/virtualapp.py:19 tickets/api/ticket.py:87 #: users/forms/profile.py:32 users/models/group.py:13 -#: users/models/preference.py:11 users/models/user.py:874 +#: users/models/preference.py:11 users/models/user.py:876 #: xpack/plugins/cloud/models.py:32 xpack/plugins/cloud/models.py:272 -#: xpack/plugins/cloud/serializers/task.py:71 +#: xpack/plugins/cloud/serializers/task.py:70 msgid "Name" msgstr "名前" @@ -667,7 +671,7 @@ msgstr "特権アカウント" #: authentication/serializers/connect_token_secret.py:117 #: terminal/models/applet/applet.py:40 #: terminal/models/component/endpoint.py:120 -#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:180 +#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:188 msgid "Is active" msgstr "アクティブです。" @@ -843,7 +847,6 @@ msgstr "編集済み" #: ops/models/job.py:152 ops/serializers/job.py:19 #: perms/serializers/permission.py:36 #: terminal/templates/terminal/_msg_command_execute_alert.html:16 -#: xpack/plugins/cloud/manager.py:73 msgid "Assets" msgstr "資産" @@ -857,7 +860,6 @@ msgid "Asset does not support this secret type: %s" msgstr "アセットはアカウント タイプをサポートしていません: %s" #: accounts/serializers/account/account.py:410 -#: xpack/plugins/cloud/serializers/account.py:111 msgid "Account has exist" msgstr "アカウントはすでに存在しています" @@ -878,14 +880,14 @@ msgstr "ID" #: notifications/models/notification.py:12 #: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:63 #: rbac/builtin.py:124 rbac/models/rolebinding.py:49 -#: rbac/serializers/rolebinding.py:17 terminal/backends/command/models.py:16 -#: terminal/models/session/session.py:30 terminal/models/session/sharing.py:34 -#: terminal/notifications.py:156 terminal/notifications.py:205 -#: terminal/serializers/command.py:16 +#: rbac/serializers/rolebinding.py:17 settings/serializers/msg.py:34 +#: terminal/backends/command/models.py:16 terminal/models/session/session.py:30 +#: terminal/models/session/sharing.py:34 terminal/notifications.py:156 +#: terminal/notifications.py:205 terminal/serializers/command.py:16 #: terminal/templates/terminal/_msg_command_warning.html:6 #: terminal/templates/terminal/_msg_session_sharing.html:6 -#: tickets/models/comment.py:21 users/const.py:14 users/models/user.py:1062 -#: users/models/user.py:1100 +#: tickets/models/comment.py:21 users/const.py:14 users/models/user.py:1064 +#: users/models/user.py:1102 msgid "User" msgstr "ユーザー" @@ -983,7 +985,7 @@ msgstr "关联平台,可以配置推送参数,如果不关联,则使用默 #: terminal/models/component/endpoint.py:119 #: terminal/models/session/session.py:47 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 -#: tickets/models/ticket/general.py:295 users/models/user.py:910 +#: tickets/models/ticket/general.py:295 users/models/user.py:912 #: xpack/plugins/cloud/models.py:39 xpack/plugins/cloud/models.py:106 msgid "Comment" msgstr "コメント" @@ -1191,7 +1193,7 @@ msgstr "アクティブ" #: acls/models/base.py:81 perms/serializers/permission.py:32 #: users/models/preference.py:16 users/serializers/group.py:21 -#: users/serializers/user.py:311 +#: users/serializers/user.py:332 msgid "Users" msgstr "ユーザー" @@ -1218,7 +1220,7 @@ msgstr "正規情報" #: acls/models/command_acl.py:26 assets/models/cmd_filter.py:79 #: settings/models.py:184 settings/serializers/feature.py:19 -#: settings/serializers/msg.py:78 xpack/plugins/license/models.py:30 +#: settings/serializers/msg.py:76 xpack/plugins/license/models.py:30 msgid "Content" msgstr "コンテンツ" @@ -1318,7 +1320,7 @@ msgid "None of the reviewers belong to Organization `{}`" msgstr "いずれのレビューアも組織 '{}' に属していません" #: acls/serializers/rules/rules.py:20 -#: xpack/plugins/cloud/serializers/task.py:146 +#: xpack/plugins/cloud/serializers/task.py:145 msgid "IP address invalid: `{}`" msgstr "IPアドレスが無効: '{}'" @@ -1417,6 +1419,28 @@ msgstr "{} 無効" msgid " - Platform {} ansible disabled" msgstr " - プラットフォーム {} ansible 無効" +#: assets/automations/base/manager.py:323 +msgid ">>> Task preparation phase" +msgstr "タスク準備段階" + +#: assets/automations/base/manager.py:326 +#, python-brace-format +msgid ">>> Executing tasks in batches, total {runner_count}" +msgstr ">>> バッチでタスクを実行、合計 {runner_count}" + +#: assets/automations/base/manager.py:328 +msgid ">>> Start executing tasks" +msgstr ">>> タスクの実行を開始" + +#: assets/automations/base/manager.py:330 +msgid ">>> No tasks need to be executed" +msgstr ">>> 実行する必要があるタスクはありません" + +#: assets/automations/base/manager.py:335 +#, python-brace-format +msgid ">>> Begin executing batch {index} of tasks" +msgstr ">>> 第 {} バッチのタスクの実行を開始" + #: assets/automations/ping_gateway/manager.py:33 #: authentication/models/connection_token.py:131 msgid "No account" @@ -1482,10 +1506,9 @@ msgid "Script" msgstr "脚本" #: assets/const/category.py:10 assets/models/asset/host.py:8 -#: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:71 +#: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:76 #: settings/serializers/feature.py:49 settings/serializers/msg.py:31 #: terminal/models/component/endpoint.py:13 terminal/serializers/applet.py:17 -#: xpack/plugins/cloud/manager.py:73 #: xpack/plugins/cloud/serializers/account_attrs.py:72 msgid "Host" msgstr "ホスト" @@ -1617,7 +1640,7 @@ msgid "We will consider login success when we see this prompt" msgstr "このプロンプトが表示されたらログイン成功とみなします" #: assets/const/protocol.py:127 assets/models/asset/database.py:10 -#: settings/serializers/msg.py:47 +#: settings/serializers/msg.py:49 msgid "Use SSL" msgstr "SSLの使用" @@ -1696,7 +1719,7 @@ msgid "Cloud" msgstr "クラウド サービス" #: assets/models/asset/common.py:94 assets/models/platform.py:16 -#: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:72 +#: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:77 #: settings/serializers/msg.py:32 terminal/serializers/storage.py:133 #: xpack/plugins/cloud/serializers/account_attrs.py:73 msgid "Port" @@ -1763,7 +1786,7 @@ msgstr "クライアントキー" msgid "Allow invalid cert" msgstr "証明書チェックを無視" -#: assets/models/asset/gpt.py:8 settings/serializers/feature.py:84 +#: assets/models/asset/gpt.py:8 settings/serializers/feature.py:86 msgid "Proxy" msgstr "プロキシー" @@ -1774,7 +1797,7 @@ msgid "Node" msgstr "ノード" #: assets/models/automations/base.py:22 ops/models/job.py:236 -#: settings/serializers/auth/sms.py:103 +#: settings/serializers/auth/sms.py:108 msgid "Parameters" msgstr "パラメータ" @@ -1788,7 +1811,7 @@ msgstr "アセットの自動化タスク" #: assets/models/automations/base.py:114 assets/models/cmd_filter.py:41 #: audits/models.py:267 common/db/models.py:34 ops/models/base.py:54 -#: ops/models/job.py:240 users/models/user.py:1101 +#: ops/models/job.py:240 users/models/user.py:1103 msgid "Date created" msgstr "作成された日付" @@ -1809,17 +1832,17 @@ msgid "Date verified" msgstr "確認済みの日付" #: assets/models/cmd_filter.py:28 perms/models/asset_permission.py:66 -#: users/models/group.py:25 users/models/user.py:880 +#: users/models/group.py:25 users/models/user.py:882 msgid "User group" msgstr "ユーザーグループ" #: assets/models/cmd_filter.py:42 common/db/models.py:35 -#: users/models/user.py:936 +#: users/models/user.py:938 msgid "Date updated" msgstr "更新日" #: assets/models/cmd_filter.py:44 assets/models/cmd_filter.py:91 -#: common/db/models.py:32 users/models/user.py:917 +#: common/db/models.py:32 users/models/user.py:919 #: users/serializers/group.py:32 msgid "Created by" msgstr "によって作成された" @@ -1856,7 +1879,7 @@ msgstr "お気に入りのアセット" msgid "Gateway" msgstr "ゲートウェイ" -#: assets/models/label.py:15 rbac/const.py:6 users/models/user.py:1086 +#: assets/models/label.py:15 rbac/const.py:6 users/models/user.py:1088 msgid "System" msgstr "システム" @@ -1875,7 +1898,7 @@ msgstr "値" #: assets/serializers/platform.py:144 #: authentication/serializers/connect_token_secret.py:124 #: common/serializers/common.py:85 labels/models.py:17 labels/models.py:33 -#: labels/serializers.py:45 settings/serializers/msg.py:90 +#: labels/serializers.py:45 settings/serializers/msg.py:88 msgid "Label" msgstr "ラベル" @@ -2056,7 +2079,7 @@ msgstr "" #: authentication/serializers/connect_token_secret.py:75 #: perms/models/asset_permission.py:76 perms/serializers/permission.py:46 #: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:328 -#: xpack/plugins/cloud/serializers/task.py:34 +#: xpack/plugins/cloud/serializers/task.py:33 msgid "Protocols" msgstr "プロトコル" @@ -2164,7 +2187,13 @@ msgstr "制約" msgid "Types" msgstr "タイプ" -#: assets/serializers/domain.py:21 orgs/serializers.py:13 +#: assets/serializers/domain.py:21 +msgid "" +"A gateway is a network proxy for a zone, and when connecting assets within " +"the zone, the connection is routed through the gateway." +msgstr "" + +#: assets/serializers/domain.py:24 orgs/serializers.py:13 #: perms/serializers/permission.py:40 msgid "Assets amount" msgstr "資産数量" @@ -2377,7 +2406,6 @@ msgstr "Rmdir" #: audits/const.py:14 audits/const.py:25 #: authentication/templates/authentication/_access_key_modal.html:65 -#: rbac/tree.py:240 msgid "Delete" msgstr "削除" @@ -2401,16 +2429,14 @@ msgstr "ダウンロード" msgid "Rename dir" msgstr "マップディレクトリ" -#: audits/const.py:23 rbac/tree.py:238 terminal/api/session/session.py:277 +#: audits/const.py:23 terminal/api/session/session.py:277 #: terminal/templates/terminal/_msg_command_warning.html:18 #: terminal/templates/terminal/_msg_session_sharing.html:10 -#: xpack/plugins/cloud/manager.py:74 msgid "View" msgstr "表示" #: audits/const.py:26 #: authentication/templates/authentication/_access_key_modal.html:22 -#: rbac/tree.py:237 msgid "Create" msgstr "作成" @@ -2464,7 +2490,6 @@ msgstr "ログインログ" #: audits/const.py:51 terminal/models/applet/host.py:144 #: terminal/models/component/task.py:22 -#: xpack/plugins/cloud/serializers/account.py:55 msgid "Task" msgstr "タスク" @@ -2563,7 +2588,7 @@ msgstr "ログインIP" #: audits/models.py:200 audits/serializers.py:52 #: authentication/templates/authentication/_mfa_confirm_modal.html:14 -#: users/forms/profile.py:63 users/models/user.py:897 +#: users/forms/profile.py:63 users/models/user.py:899 #: users/serializers/profile.py:102 msgid "MFA" msgstr "MFA" @@ -2620,7 +2645,7 @@ msgstr "ユーザー %s %s が現在のリソースをサブスクライブし #: audits/serializers.py:172 authentication/models/connection_token.py:47 #: authentication/models/temp_token.py:13 perms/models/asset_permission.py:80 #: tickets/models/ticket/apply_application.py:31 -#: tickets/models/ticket/apply_asset.py:20 users/models/user.py:915 +#: tickets/models/ticket/apply_asset.py:20 users/models/user.py:917 msgid "Date expired" msgstr "期限切れの日付" @@ -2654,28 +2679,28 @@ msgstr "認証トークン" #: audits/signal_handlers/login_log.py:37 authentication/notifications.py:73 #: authentication/views/login.py:77 notifications/backends/__init__.py:11 #: settings/serializers/auth/wecom.py:10 settings/serializers/auth/wecom.py:15 -#: users/models/user.py:758 users/models/user.py:930 +#: users/models/user.py:760 users/models/user.py:932 msgid "WeCom" msgstr "企業微信" #: audits/signal_handlers/login_log.py:38 authentication/views/feishu.py:105 #: authentication/views/login.py:89 notifications/backends/__init__.py:14 -#: settings/serializers/auth/feishu.py:10 users/models/user.py:760 -#: users/models/user.py:932 +#: settings/serializers/auth/feishu.py:10 users/models/user.py:762 +#: users/models/user.py:934 msgid "FeiShu" msgstr "本を飛ばす" #: audits/signal_handlers/login_log.py:40 authentication/views/login.py:101 #: authentication/views/slack.py:87 notifications/backends/__init__.py:16 #: settings/serializers/auth/slack.py:10 settings/serializers/auth/slack.py:12 -#: users/models/user.py:762 users/models/user.py:934 +#: users/models/user.py:764 users/models/user.py:936 msgid "Slack" msgstr "" #: audits/signal_handlers/login_log.py:41 authentication/views/dingtalk.py:161 #: authentication/views/login.py:83 notifications/backends/__init__.py:12 -#: settings/serializers/auth/dingtalk.py:10 users/models/user.py:759 -#: users/models/user.py:931 +#: settings/serializers/auth/dingtalk.py:10 users/models/user.py:761 +#: users/models/user.py:933 msgid "DingTalk" msgstr "DingTalk" @@ -2702,7 +2727,7 @@ msgstr "外部ストレージへのFTPファイルのアップロード" msgid "Access keys can be created at most 10" msgstr "最大10個のアクセスキーを作成できます" -#: authentication/api/common.py:34 settings/serializers/auth/sms.py:117 +#: authentication/api/common.py:34 settings/serializers/auth/sms.py:122 #, python-format msgid "The value in the parameter must contain %s" msgstr "パラメータの値には必ず %s が含まれます" @@ -3082,7 +3107,7 @@ msgstr "メッセージ検証コードが無効" #: authentication/mfa/sms.py:12 authentication/serializers/password_mfa.py:16 #: authentication/serializers/password_mfa.py:24 -#: settings/serializers/auth/sms.py:17 settings/serializers/auth/sms.py:32 +#: settings/serializers/auth/sms.py:18 settings/serializers/auth/sms.py:36 #: users/forms/profile.py:103 users/forms/profile.py:108 #: users/templates/users/forgot_password.html:157 #: users/views/profile/reset.py:100 @@ -3293,7 +3318,7 @@ msgstr "アクション" #: authentication/serializers/connection_token.py:42 #: perms/serializers/permission.py:44 perms/serializers/permission.py:65 -#: users/serializers/user.py:101 users/serializers/user.py:184 +#: users/serializers/user.py:103 users/serializers/user.py:192 msgid "Is expired" msgstr "期限切れです" @@ -3307,8 +3332,8 @@ msgid "Access IP" msgstr "Access IP" #: authentication/serializers/token.py:92 perms/serializers/permission.py:43 -#: perms/serializers/permission.py:66 users/serializers/user.py:102 -#: users/serializers/user.py:181 +#: perms/serializers/permission.py:66 users/serializers/user.py:104 +#: users/serializers/user.py:189 msgid "Is valid" msgstr "有効です" @@ -3729,7 +3754,7 @@ msgstr "ランニング" msgid "Canceled" msgstr "キャンセル" -#: common/const/common.py:5 xpack/plugins/cloud/manager.py:380 +#: common/const/common.py:5 #, python-format msgid "%(name)s was created successfully" msgstr "%(name)s が正常に作成されました" @@ -3813,7 +3838,7 @@ msgstr "は破棄されます" msgid "discard time" msgstr "時間を捨てる" -#: common/db/models.py:33 users/models/user.py:918 +#: common/db/models.py:33 users/models/user.py:920 msgid "Updated by" msgstr "によって更新" @@ -4256,11 +4281,11 @@ msgstr "空欄" msgid "VCS" msgstr "VCS" -#: ops/const.py:38 ops/models/adhoc.py:44 +#: ops/const.py:38 ops/models/adhoc.py:44 settings/serializers/feature.py:134 msgid "Adhoc" msgstr "コマンド#コマンド#" -#: ops/const.py:39 ops/models/job.py:149 +#: ops/const.py:39 ops/models/job.py:149 ops/models/playbook.py:88 msgid "Playbook" msgstr "Playbook" @@ -4324,19 +4349,19 @@ msgstr "タイムアウト" msgid "no valid program entry found." msgstr "利用可能なプログラムポータルがありません" -#: ops/mixin.py:23 ops/mixin.py:102 settings/serializers/auth/ldap.py:66 +#: ops/mixin.py:23 ops/mixin.py:102 settings/serializers/auth/ldap.py:74 #, fuzzy #| msgid "Periodic run" msgid "Periodic run" msgstr "定期的なパフォーマンス" #: ops/mixin.py:25 ops/mixin.py:88 ops/mixin.py:108 -#: settings/serializers/auth/ldap.py:73 +#: settings/serializers/auth/ldap.py:81 msgid "Interval" msgstr "間隔" #: ops/mixin.py:28 ops/mixin.py:86 ops/mixin.py:105 -#: settings/serializers/auth/ldap.py:70 +#: settings/serializers/auth/ldap.py:78 #, fuzzy #| msgid "Contains" msgid "Crontab" @@ -4395,7 +4420,6 @@ msgid "Result" msgstr "結果" #: ops/models/base.py:52 ops/models/job.py:238 -#: xpack/plugins/cloud/manager.py:77 msgid "Summary" msgstr "概要" @@ -4636,7 +4660,7 @@ msgstr "アプリ組織" #: orgs/mixins/models.py:57 orgs/mixins/serializers.py:25 orgs/models.py:91 #: rbac/const.py:7 rbac/models/rolebinding.py:56 -#: rbac/serializers/rolebinding.py:44 settings/serializers/auth/ldap.py:63 +#: rbac/serializers/rolebinding.py:44 settings/serializers/auth/ldap.py:71 #: terminal/templates/terminal/_msg_command_warning.html:21 #: terminal/templates/terminal/_msg_session_sharing.html:14 #: tickets/models/ticket/general.py:300 tickets/serializers/ticket/ticket.py:60 @@ -4790,7 +4814,7 @@ msgid "today" msgstr "今日" #: perms/notifications.py:12 perms/notifications.py:44 -#: settings/serializers/feature.py:118 +#: settings/serializers/feature.py:125 msgid "day" msgstr "日" @@ -4810,7 +4834,7 @@ msgstr "資産権限の有効期限が近づいています" msgid "asset permissions of organization {}" msgstr "組織 {} の資産権限" -#: perms/serializers/permission.py:34 users/serializers/user.py:173 +#: perms/serializers/permission.py:34 users/serializers/user.py:181 msgid "Groups" msgstr "" @@ -4924,7 +4948,7 @@ msgid "Scope" msgstr "スコープ" #: rbac/models/role.py:46 rbac/models/rolebinding.py:52 -#: users/models/user.py:884 +#: users/models/user.py:886 msgid "Role" msgstr "ロール" @@ -4996,7 +5020,7 @@ msgstr "システム設定" msgid "Session audits" msgstr "セッション監査" -#: rbac/tree.py:49 xpack/plugins/cloud/manager.py:74 +#: rbac/tree.py:49 msgid "Cloud import" msgstr "クラウドインポート" @@ -5016,7 +5040,7 @@ msgstr "資産の改ざん" msgid "Terminal setting" msgstr "ターミナル設定" -#: rbac/tree.py:55 settings/serializers/feature.py:127 +#: rbac/tree.py:55 msgid "Job center" msgstr "タスクセンター" @@ -5042,8 +5066,8 @@ msgstr "アプリ組織" msgid "Ticket comment" msgstr "チケットコメント" -#: rbac/tree.py:130 settings/serializers/feature.py:109 -#: tickets/models/ticket/general.py:305 +#: rbac/tree.py:130 settings/serializers/feature.py:112 +#: settings/serializers/feature.py:114 tickets/models/ticket/general.py:305 msgid "Ticket" msgstr "チケット" @@ -5055,6 +5079,28 @@ msgstr "共通設定" msgid "View permission tree" msgstr "権限ツリーの表示" +#: rbac/tree.py:237 +#, fuzzy +#| msgid "Create" +msgid "create" +msgstr "作成" + +#: rbac/tree.py:238 terminal/templates/terminal/_msg_command_alert.html:10 +msgid "view" +msgstr "表示" + +#: rbac/tree.py:239 +#, fuzzy +#| msgid "Update" +msgid "update" +msgstr "更新" + +#: rbac/tree.py:240 +#, fuzzy +#| msgid "Delete" +msgid "delete" +msgstr "削除" + #: settings/api/chat.py:40 msgid "Chat AI is not enabled" msgstr "チャットAIがオンになっていない" @@ -5226,24 +5272,47 @@ msgstr "SSO Token 認証" msgid "Passkey Auth" msgstr "Passkey 認証" -#: settings/serializers/auth/base.py:27 +#: settings/serializers/auth/base.py:26 +msgid "Email suffix" +msgstr "メールのサフィックス" + +#: settings/serializers/auth/base.py:28 +msgid "" +"After third-party user authentication is successful, if the third-party " +"authentication service platform does not return the user's email " +"information, the system will automatically create the user using this email " +"suffix" +msgstr "" + +#: settings/serializers/auth/base.py:35 #, fuzzy #| msgid "Forgot password" -msgid "Forgot Password URL" +msgid "Forgot Password" msgstr "パスワードを忘れた" -#: settings/serializers/auth/base.py:30 +#: settings/serializers/auth/base.py:36 +msgid "The URL for Forgotten Password on the user login page" +msgstr "" + +#: settings/serializers/auth/base.py:39 #, fuzzy #| msgid "Enable login redirect msg" -msgid "Login redirection prompt" +msgid "Login redirection" msgstr "ログインリダイレクトの有効化msg" +#: settings/serializers/auth/base.py:41 +msgid "" +"Should an flash page be displayed before the user is redirected to third-" +"party authentication when the administrator enables third-party redirect " +"authentication" +msgstr "" + #: settings/serializers/auth/cas.py:10 settings/serializers/auth/cas.py:12 msgid "CAS" msgstr "CAS" #: settings/serializers/auth/cas.py:13 settings/serializers/auth/ldap.py:42 -#: settings/serializers/auth/oidc.py:54 +#: settings/serializers/auth/oidc.py:60 msgid "Server" msgstr "LDAPサーバー" @@ -5251,31 +5320,43 @@ msgstr "LDAPサーバー" msgid "Proxy Server" msgstr "コールバックアドレス" -#: settings/serializers/auth/cas.py:18 settings/serializers/auth/oauth2.py:54 +#: settings/serializers/auth/cas.py:19 settings/serializers/auth/oauth2.py:54 #: settings/serializers/auth/saml2.py:33 msgid "Logout completely" msgstr "同期ログアウト" -#: settings/serializers/auth/cas.py:23 +#: settings/serializers/auth/cas.py:20 +msgid "When the user signs out, they also be logged out from the CAS Server" +msgstr "" + +#: settings/serializers/auth/cas.py:26 msgid "Username attr" msgstr "ユーザー名のプロパティ" -#: settings/serializers/auth/cas.py:26 +#: settings/serializers/auth/cas.py:29 msgid "Enable attributes map" msgstr "属性マップの有効化" -#: settings/serializers/auth/cas.py:28 settings/serializers/auth/ldap.py:58 -#: settings/serializers/auth/oauth2.py:56 settings/serializers/auth/oidc.py:37 +#: settings/serializers/auth/cas.py:32 settings/serializers/auth/ldap.py:64 +#: settings/serializers/auth/oauth2.py:56 settings/serializers/auth/oidc.py:38 #: settings/serializers/auth/saml2.py:32 msgid "User attribute" msgstr "マッピングのプロパティ" -#: settings/serializers/auth/cas.py:30 +#: settings/serializers/auth/cas.py:34 +msgid "" +"User attribute mapping, where the `key` is the CAS service user attribute " +"name and the `value` is the JumpServer user attribute name" +msgstr "" + +#: settings/serializers/auth/cas.py:39 msgid "Create user" msgstr "そうでない場合はユーザーを作成" -#: settings/serializers/auth/cas.py:31 -msgid "Automatically create a new user if not found." +#: settings/serializers/auth/cas.py:41 +msgid "" +"After successful user authentication, if the user does not exist, " +"automatically create the user" msgstr "" #: settings/serializers/auth/dingtalk.py:15 @@ -5290,52 +5371,63 @@ msgstr "飛本認証の有効化" msgid "Enable Lark Auth" msgstr "Lark 認証の有効化" -#: settings/serializers/auth/ldap.py:39 settings/serializers/auth/ldap.py:93 +#: settings/serializers/auth/ldap.py:39 settings/serializers/auth/ldap.py:103 msgid "LDAP" msgstr "LDAP" #: settings/serializers/auth/ldap.py:43 -msgid "eg: ldap://localhost:389" -msgstr "例: ldap://localhost:389" +#, fuzzy +#| msgid "FIDO Server ID" +msgid "LDAP server URI" +msgstr "FIDOサーバーID" -#: settings/serializers/auth/ldap.py:45 +#: settings/serializers/auth/ldap.py:46 msgid "Bind DN" msgstr "DN のバインド" -#: settings/serializers/auth/ldap.py:50 -msgid "User OU" -msgstr "ユーザー OU" +#: settings/serializers/auth/ldap.py:47 +msgid "Binding Distinguished Name" +msgstr "" #: settings/serializers/auth/ldap.py:51 -msgid "Use | split multi OUs" -msgstr "使用 | splitマルチ OU" +#, fuzzy +#| msgid "Old password" +msgid "Binding password" +msgstr "古いパスワード" #: settings/serializers/auth/ldap.py:54 -msgid "User search filter" +msgid "Search OU" +msgstr "システムアーキテクチャ" + +#: settings/serializers/auth/ldap.py:56 +msgid "" +"User Search Base, if there are multiple OUs, you can separate them with the " +"`|` symbol" +msgstr "" + +#: settings/serializers/auth/ldap.py:60 +msgid "Search filter" msgstr "ユーザー検索フィルター" -#: settings/serializers/auth/ldap.py:55 -#, python-format -msgid "Choice may be (cn|uid|sAMAccountName)=%(user)s)" +#: settings/serializers/auth/ldap.py:61 +msgid "Selection could include (cn|uid|sAMAccountName=%(user)s)" msgstr "選択は (cnまたはuidまたはsAMAccountName)=%(user)s)" -#: settings/serializers/auth/ldap.py:59 +#: settings/serializers/auth/ldap.py:66 msgid "" -"User attr map present how to map LDAP user attr to jumpserver, username,name," -"email is jumpserver attr" +"User attribute mapping, where the `key` is the JumpServer user attribute " +"name and the `value` is the LDAP service user attribute name" msgstr "" -"ユーザー属性マッピングは、LDAPのユーザー属性をjumpserverユーザーにマッピング" -"する方法、username, name,emailはjumpserverのユーザーが必要とする属性です" -#: settings/serializers/auth/ldap.py:77 +#: settings/serializers/auth/ldap.py:85 msgid "Connect timeout (s)" msgstr "接続タイムアウト (秒)" -#: settings/serializers/auth/ldap.py:82 +#: settings/serializers/auth/ldap.py:90 msgid "User DN cache timeout (s)" msgstr "User DN キャッシュの有効期限 (秒)" -#: settings/serializers/auth/ldap.py:84 +#: settings/serializers/auth/ldap.py:92 msgid "" "Caching the User DN obtained during user login authentication can " "effectivelyimprove the speed of user authentication., 0 means no cache" @@ -5343,7 +5435,7 @@ msgstr "" "ユーザーログイン認証時に取得したユーザー DN をキャッシュすることで、ユーザー" "認証の速度を効果的に向上させることができます" -#: settings/serializers/auth/ldap.py:88 +#: settings/serializers/auth/ldap.py:97 msgid "Search paged size (piece)" msgstr "ページサイズを検索 (じょう)" @@ -5360,42 +5452,42 @@ msgstr "アイコン" msgid "Service provider" msgstr "サービスプロバイダー" -#: settings/serializers/auth/oauth2.py:30 settings/serializers/auth/oidc.py:19 +#: settings/serializers/auth/oauth2.py:30 settings/serializers/auth/oidc.py:20 msgid "Client Id" msgstr "クライアントID" -#: settings/serializers/auth/oauth2.py:33 settings/serializers/auth/oidc.py:22 +#: settings/serializers/auth/oauth2.py:33 settings/serializers/auth/oidc.py:23 #: xpack/plugins/cloud/serializers/account_attrs.py:38 msgid "Client Secret" msgstr "クライアント秘密" -#: settings/serializers/auth/oauth2.py:39 settings/serializers/auth/oidc.py:68 +#: settings/serializers/auth/oauth2.py:39 settings/serializers/auth/oidc.py:76 msgid "Authorization endpoint" msgstr "認証エンドポイントアドレス" -#: settings/serializers/auth/oauth2.py:42 settings/serializers/auth/oidc.py:71 +#: settings/serializers/auth/oauth2.py:42 settings/serializers/auth/oidc.py:79 msgid "Token endpoint" msgstr "プロバイダートークンエンドポイント" -#: settings/serializers/auth/oauth2.py:45 settings/serializers/auth/oidc.py:30 -#: settings/serializers/auth/sms.py:106 +#: settings/serializers/auth/oauth2.py:45 settings/serializers/auth/oidc.py:31 +#: settings/serializers/auth/sms.py:111 msgid "Request method" msgstr "クライアント認証方式" -#: settings/serializers/auth/oauth2.py:49 settings/serializers/auth/oidc.py:77 +#: settings/serializers/auth/oauth2.py:49 settings/serializers/auth/oidc.py:85 msgid "Userinfo endpoint" msgstr "プロバイダーuserinfoエンドポイント" -#: settings/serializers/auth/oauth2.py:52 settings/serializers/auth/oidc.py:80 +#: settings/serializers/auth/oauth2.py:52 settings/serializers/auth/oidc.py:88 msgid "End session endpoint" msgstr "プロバイダーのセッション終了エンドポイント" -#: settings/serializers/auth/oauth2.py:59 settings/serializers/auth/oidc.py:98 +#: settings/serializers/auth/oauth2.py:59 settings/serializers/auth/oidc.py:112 #: settings/serializers/auth/saml2.py:34 msgid "Always update user" msgstr "常にユーザーを更新" -#: settings/serializers/auth/oidc.py:12 settings/serializers/auth/oidc.py:63 +#: settings/serializers/auth/oidc.py:12 settings/serializers/auth/oidc.py:70 msgid "OIDC" msgstr "OIDC" @@ -5403,71 +5495,83 @@ msgstr "OIDC" msgid "Base site URL" msgstr "ベースサイトのアドレス" -#: settings/serializers/auth/oidc.py:32 +#: settings/serializers/auth/oidc.py:17 +msgid "The current site's URL is used to construct the callback address" +msgstr "" + +#: settings/serializers/auth/oidc.py:33 msgid "Share session" msgstr "セッションの共有" -#: settings/serializers/auth/oidc.py:34 +#: settings/serializers/auth/oidc.py:35 msgid "Ignore SSL verification" msgstr "Ssl検証を無視する" -#: settings/serializers/auth/oidc.py:38 +#: settings/serializers/auth/oidc.py:40 msgid "" -"User attr map present how to map OpenID user attr to jumpserver, username," -"name,email is jumpserver attr" +"User attribute mapping, where the `key` is the JumpServer user attribute " +"name and the `value` is the OIDC service user attribute name" msgstr "" -"ユーザー属性マッピングは、OpenIDのユーザー属性をjumpserverユーザーにマッピン" -"グする方法、username, name,emailはjumpserverのユーザーが必要とする属性です" -#: settings/serializers/auth/oidc.py:41 +#: settings/serializers/auth/oidc.py:44 msgid "Enable PKCE" msgstr "有効 PKCE" -#: settings/serializers/auth/oidc.py:43 +#: settings/serializers/auth/oidc.py:46 msgid "Code challenge method" msgstr "検証コード方式" -#: settings/serializers/auth/oidc.py:51 +#: settings/serializers/auth/oidc.py:54 msgid "Use Keycloak" msgstr "Keycloakを使用する" -#: settings/serializers/auth/oidc.py:57 +#: settings/serializers/auth/oidc.py:56 +msgid "" +"Use Keycloak as the OpenID Connect server, or use standard OpenID Connect " +"Protocol" +msgstr "" + +#: settings/serializers/auth/oidc.py:63 msgid "Realm name" msgstr "レルム名" -#: settings/serializers/auth/oidc.py:65 +#: settings/serializers/auth/oidc.py:70 +msgid "OpenID Connect" +msgstr "接続" + +#: settings/serializers/auth/oidc.py:73 msgid "Provider endpoint" msgstr "プロバイダーエンドポイント" -#: settings/serializers/auth/oidc.py:74 +#: settings/serializers/auth/oidc.py:82 msgid "JWKS endpoint" msgstr "プロバイダーjwksエンドポイント" -#: settings/serializers/auth/oidc.py:83 +#: settings/serializers/auth/oidc.py:91 msgid "Signature algorithm" msgstr "プロビダーサインalg" -#: settings/serializers/auth/oidc.py:86 +#: settings/serializers/auth/oidc.py:94 msgid "Signing key" msgstr "プロバイダ署名キー" -#: settings/serializers/auth/oidc.py:88 +#: settings/serializers/auth/oidc.py:97 msgid "Scopes" msgstr "スコープ" -#: settings/serializers/auth/oidc.py:90 +#: settings/serializers/auth/oidc.py:100 msgid "ID Token max age (s)" msgstr "IDトークンの最大年齢 (秒)" -#: settings/serializers/auth/oidc.py:93 +#: settings/serializers/auth/oidc.py:103 msgid "ID Token include claims" msgstr "IDトークンにはクレームが含まれます" -#: settings/serializers/auth/oidc.py:95 +#: settings/serializers/auth/oidc.py:106 msgid "Use state" msgstr "使用状態" -#: settings/serializers/auth/oidc.py:96 +#: settings/serializers/auth/oidc.py:109 msgid "Use nonce" msgstr "Nonceを使用" @@ -5525,54 +5629,67 @@ msgstr "SP プライベートキー" msgid "SP cert" msgstr "SP 証明書" -#: settings/serializers/auth/sms.py:19 -msgid "SMS provider / Protocol" -msgstr "SMSプロバイダ / プロトコル" +#: settings/serializers/auth/sms.py:18 +msgid "Enable Short Message Service (SMS)" +msgstr "" + +#: settings/serializers/auth/sms.py:21 xpack/plugins/cloud/models.py:34 +msgid "Provider" +msgstr "プロバイダー" #: settings/serializers/auth/sms.py:22 -msgid "SMS code length" +msgid "Short Message Service (SMS) provider or protocol" +msgstr "" + +#: settings/serializers/auth/sms.py:25 +msgid "Code length" msgstr "認証コード長" -#: settings/serializers/auth/sms.py:27 settings/serializers/auth/sms.py:49 -#: settings/serializers/auth/sms.py:57 settings/serializers/auth/sms.py:66 -#: settings/serializers/auth/sms.py:77 settings/serializers/msg.py:83 +#: settings/serializers/auth/sms.py:26 +msgid "Length of the sent verification code" +msgstr "確認コードを送信" + +#: settings/serializers/auth/sms.py:31 settings/serializers/auth/sms.py:54 +#: settings/serializers/auth/sms.py:62 settings/serializers/auth/sms.py:71 +#: settings/serializers/auth/sms.py:82 settings/serializers/msg.py:81 msgid "Signature" msgstr "署名" -#: settings/serializers/auth/sms.py:28 settings/serializers/auth/sms.py:50 -#: settings/serializers/auth/sms.py:58 settings/serializers/auth/sms.py:67 +#: settings/serializers/auth/sms.py:32 settings/serializers/auth/sms.py:55 +#: settings/serializers/auth/sms.py:63 settings/serializers/auth/sms.py:72 msgid "Template code" msgstr "テンプレートコード" -#: settings/serializers/auth/sms.py:35 -msgid "Test phone" -msgstr "テスト電話" +#: settings/serializers/auth/sms.py:40 users/models/user.py:896 +#: users/serializers/user.py:114 +msgid "Phone" +msgstr "電話" -#: settings/serializers/auth/sms.py:64 +#: settings/serializers/auth/sms.py:69 msgid "App Access Address" msgstr "アプリケーションアドレス" -#: settings/serializers/auth/sms.py:65 +#: settings/serializers/auth/sms.py:70 msgid "Signature channel number" msgstr "署名チャネル番号" -#: settings/serializers/auth/sms.py:73 +#: settings/serializers/auth/sms.py:78 msgid "Enterprise code" msgstr "企業コード(SP id)" -#: settings/serializers/auth/sms.py:74 +#: settings/serializers/auth/sms.py:79 msgid "Shared secret" msgstr "パスワードを共有する(Shared secret)" -#: settings/serializers/auth/sms.py:75 +#: settings/serializers/auth/sms.py:80 msgid "Original number" msgstr "元の番号(Src id)" -#: settings/serializers/auth/sms.py:76 +#: settings/serializers/auth/sms.py:81 msgid "Business type" msgstr "ビジネス・タイプ(Service id)" -#: settings/serializers/auth/sms.py:80 +#: settings/serializers/auth/sms.py:85 #, python-brace-format msgid "" "Template need contain {code} and Signature + template length does not exceed " @@ -5583,16 +5700,16 @@ msgstr "" "満です。たとえば、認証コードは{code}で、有効期間は5分です。他の人には言わない" "でください。" -#: settings/serializers/auth/sms.py:89 +#: settings/serializers/auth/sms.py:94 #, python-brace-format msgid "The template needs to contain {code}" msgstr "テンプレートには{code}を含める必要があります" -#: settings/serializers/auth/sms.py:92 +#: settings/serializers/auth/sms.py:97 msgid "Signature + Template must not exceed 65 words" msgstr "署名+テンプレートの長さは65文字以内" -#: settings/serializers/auth/sms.py:101 +#: settings/serializers/auth/sms.py:106 msgid "URL" msgstr "URL" @@ -5624,39 +5741,41 @@ msgid "" "and is usually used in links in system emails" msgstr "" -#: settings/serializers/basic.py:19 +#: settings/serializers/basic.py:18 msgid "User guide url" msgstr "ユーザーガイドurl" -#: settings/serializers/basic.py:20 +#: settings/serializers/basic.py:19 msgid "User first login update profile done redirect to it" msgstr "ユーザーの最初のログイン更新プロファイルがリダイレクトされました" -#: settings/serializers/basic.py:23 +#: settings/serializers/basic.py:22 msgid "Global organization" msgstr "グローバル組織名" -#: settings/serializers/basic.py:24 +#: settings/serializers/basic.py:23 msgid "The name of global organization to display" msgstr "表示するグローバル組織の名前" +#: settings/serializers/basic.py:26 +msgid "Document URL" +msgstr "" + #: settings/serializers/basic.py:27 -msgid "Help Docs URL" -msgstr "ドキュメントリンク" +msgid "" +"Document URL refers to the address in the top navigation bar Help - Document" +msgstr "" -#: settings/serializers/basic.py:28 -msgid "default: http://docs.jumpserver.org" -msgstr "デフォルト: http://docs.jumpserver.org" - -#: settings/serializers/basic.py:31 -msgid "Help Support URL" +#: settings/serializers/basic.py:30 +msgid "Support URL" msgstr "サポートリンク" -#: settings/serializers/basic.py:32 -msgid "default: http://www.jumpserver.org/support/" -msgstr "デフォルト: http://www.jumpserver.org/support/" +#: settings/serializers/basic.py:31 +msgid "" +"Support URL refers to the address in the top navigation bar Help - Support" +msgstr "" -#: settings/serializers/basic.py:45 +#: settings/serializers/basic.py:44 msgid "Organization name already exists" msgstr "組織名はすでに存在します。" @@ -5718,7 +5837,7 @@ msgstr "" "この期間を超えるセッション、録音、およびコマンド レコードは削除されます (デー" "タベースのバックアップに影響し、OSS などには影響しません)" -#: settings/serializers/feature.py:18 settings/serializers/msg.py:68 +#: settings/serializers/feature.py:18 settings/serializers/msg.py:66 msgid "Subject" msgstr "件名" @@ -5740,81 +5859,94 @@ msgid "Mount Point" msgstr "マウントポイント" #: settings/serializers/feature.py:60 -msgid "Historical accounts retained count" -msgstr "保持されている過去のアカウントの数" +msgid "Record limit" +msgstr "" #: settings/serializers/feature.py:62 msgid "" -"If the specific value is less than 999, the system will automatically " -"perform a task every night: check and delete historical accounts that exceed " -"the predetermined number. If the value reaches or exceeds 999, no historical " -"account deletion will be performed." +"If the specific value is less than 999 (default), the system will " +"automatically perform a task every night: check and delete historical " +"accounts that exceed the predetermined number. If the value reaches or " +"exceeds 999 (default), no historical account deletion will be performed" msgstr "" "特定の値が 999 未満の場合、システムは毎晩自動的にタスクを実行します。つまり、" "所定の数を超える履歴アカウントを確認して削除します。 値が 999 以上の場合、履" "歴アカウントの削除は実行されません。" -#: settings/serializers/feature.py:71 settings/serializers/feature.py:75 +#: settings/serializers/feature.py:72 settings/serializers/feature.py:76 msgid "Chat AI" msgstr "チャットAI" -#: settings/serializers/feature.py:78 -#, fuzzy -#| msgid "Base URL" -msgid "Base Url" -msgstr "基本的なUrl" +#: settings/serializers/feature.py:79 +msgid "Base URL" +msgstr "ベースサイトのアドレス" -#: settings/serializers/feature.py:81 templates/_header_bar.html:96 +#: settings/serializers/feature.py:80 +msgid "The base URL of the GPT service. For example: https://api.openai.com/v1" +msgstr "" + +#: settings/serializers/feature.py:83 templates/_header_bar.html:96 msgid "API Key" msgstr "API Key" #: settings/serializers/feature.py:87 +msgid "" +"The proxy server address of the GPT service. For example: http://ip:port" +msgstr "" + +#: settings/serializers/feature.py:90 msgid "GPT Model" msgstr "GPTモデル" -#: settings/serializers/feature.py:111 -msgid "Enable tickets" -msgstr "チケットを有効にする" +#: settings/serializers/feature.py:116 +msgid "Approval without login" +msgstr "" -#: settings/serializers/feature.py:112 -msgid "No login approval" -msgstr "ログイン承認なし" +#: settings/serializers/feature.py:117 +msgid "Allow direct approval ticket without login" +msgstr "" -#: settings/serializers/feature.py:115 -#, fuzzy -#| msgid "Default asset group" -msgid "Default period" -msgstr "デフォルトアセットグループ" +#: settings/serializers/feature.py:121 +msgid "Period" +msgstr "期間" -#: settings/serializers/feature.py:118 +#: settings/serializers/feature.py:122 +msgid "" +"The default authorization time period when applying for assets via a ticket" +msgstr "" + +#: settings/serializers/feature.py:125 msgid "hour" msgstr "時" -#: settings/serializers/feature.py:119 -#, fuzzy -#| msgid "Default" -msgid "Default unit" -msgstr "デフォルト" +#: settings/serializers/feature.py:126 +msgid "Unit" +msgstr "" -#: settings/serializers/feature.py:124 +#: settings/serializers/feature.py:126 +#, fuzzy +#| msgid "Run user" +msgid "The unit of period" +msgstr "ユーザーの実行" + +#: settings/serializers/feature.py:131 msgid "Feature" msgstr "機能" -#: settings/serializers/feature.py:128 -msgid "Allow user run batch command or not using ansible" -msgstr "ユーザー実行バッチコマンドを許可するか、ansibleを使用しない" +#: settings/serializers/feature.py:135 +msgid "" +"Allow users to execute batch commands in the Workbench - Job Center - Adhoc" +msgstr "" -#: settings/serializers/feature.py:132 -#, fuzzy -#| msgid "Command acl" +#: settings/serializers/feature.py:139 msgid "Command blacklist" msgstr "コマンドフィルタリング" -#: settings/serializers/feature.py:133 -msgid "Commands that are not allowed execute." -msgstr "実行が許可されていないコマンド" +#: settings/serializers/feature.py:140 +msgid "Command blacklist in Adhoc" +msgstr "コマンドフィルタリング" -#: settings/serializers/feature.py:138 settings/serializers/feature.py:141 +#: settings/serializers/feature.py:145 #: terminal/models/virtualapp/provider.py:17 #: terminal/models/virtualapp/virtualapp.py:36 #: terminal/models/virtualapp/virtualapp.py:97 @@ -5822,6 +5954,16 @@ msgstr "実行が許可されていないコマンド" msgid "Virtual app" msgstr "仮想アプリケーション" +#: settings/serializers/feature.py:148 +msgid "vApp" +msgstr "" + +#: settings/serializers/feature.py:150 +msgid "" +"Virtual applications, you can use the Linux operating system as an " +"application server in remote applications." +msgstr "" + #: settings/serializers/msg.py:25 #, fuzzy #| msgid "SMTP host" @@ -5832,54 +5974,50 @@ msgstr "SMTPホスト" msgid "EXCHANGE" msgstr "" -#: settings/serializers/msg.py:36 -msgid "Tips: Some provider use token except password" -msgstr "ヒント: 一部のプロバイダーはパスワード以外のトークンを使用します" +#: settings/serializers/msg.py:34 +msgid "The user to be used for email server authentication" +msgstr "これは、SSO認証中にメールが返されない場合にデフォルトで使用されます。" -#: settings/serializers/msg.py:39 -msgid "Sender" -msgstr "ユーザーを送信" - -#: settings/serializers/msg.py:40 -msgid "Tips: Send mail account, default SMTP account as the send account" +#: settings/serializers/msg.py:38 +msgid "" +"Password to use for the email server. It is used in conjunction with `User` " +"when authenticating to the email server" msgstr "" -"ヒント: 送信メールアカウント、送信アカウントとしてのデフォルトのSMTPアカウン" -"ト" -#: settings/serializers/msg.py:43 -msgid "Test recipient" -msgstr "テスト受信者" +#: settings/serializers/msg.py:41 +msgid "From" +msgstr "" -#: settings/serializers/msg.py:44 -msgid "Tips: Used only as a test mail recipient" -msgstr "ヒント: テストメールの受信者としてのみ使用" +#: settings/serializers/msg.py:42 +msgid "Sender email address (default to using the `User`)" +msgstr "" -#: settings/serializers/msg.py:48 -msgid "If SMTP port is 465, may be select" -msgstr "SMTPポートが465の場合は、" +#: settings/serializers/msg.py:46 +msgid "The recipient is used for testing the email server's connectivity" +msgstr "" -#: settings/serializers/msg.py:51 +#: settings/serializers/msg.py:50 +msgid "" +"Whether to use an implicit TLS (secure) connection when talking to the SMTP " +"server. In most email documentation this type of TLS connection is referred " +"to as SSL. It is generally used on port 465" +msgstr "" + +#: settings/serializers/msg.py:53 msgid "Use TLS" msgstr "TLSの使用" -#: settings/serializers/msg.py:52 -msgid "If SMTP port is 587, may be select" -msgstr "SMTPポートが587の場合は、" +#: settings/serializers/msg.py:54 +msgid "" +"Whether to use a TLS (secure) connection when talking to the SMTP server. " +"This is used for explicit TLS connections, generally on port 587" +msgstr "" -#: settings/serializers/msg.py:55 +#: settings/serializers/msg.py:62 msgid "Subject prefix" msgstr "件名プレフィックス" -#: settings/serializers/msg.py:58 -msgid "Email suffix" -msgstr "メールのサフィックス" - -#: settings/serializers/msg.py:59 -msgid "" -"This is used by default if no email is returned during SSO authentication" -msgstr "これは、SSO認証中にメールが返されない場合にデフォルトで使用されます。" - -#: settings/serializers/msg.py:69 +#: settings/serializers/msg.py:67 msgid "" "Tips: When creating a user, send the subject of the email (eg:Create account " "successfully)" @@ -5887,16 +6025,16 @@ msgstr "" "ヒント: ユーザーを作成するときに、メールの件名を送信します (例: アカウントを" "正常に作成)" -#: settings/serializers/msg.py:73 +#: settings/serializers/msg.py:71 msgid "Honorific" msgstr "ユーザー敬語の作成" -#: settings/serializers/msg.py:74 +#: settings/serializers/msg.py:72 msgid "Tips: When creating a user, send the honorific of the email (eg:Hello)" msgstr "" "ヒント: ユーザーを作成するときは、メールの敬語を送信します (例: こんにちは)" -#: settings/serializers/msg.py:80 +#: settings/serializers/msg.py:78 #, python-brace-format msgid "" "Tips: When creating a user, send the content of the email, support " @@ -5905,7 +6043,7 @@ msgstr "" "ヒント:ユーザーの作成時にパスワード設定メールの内容を送信し、{username}{name}" "{email}ラベルをサポートします。" -#: settings/serializers/msg.py:84 +#: settings/serializers/msg.py:82 msgid "Tips: Email signature (eg:jumpserver)" msgstr "ヒント: メール署名 (例: jumpserver)" @@ -7375,8 +7513,7 @@ msgstr "アクセスキー" msgid "Access key secret" msgstr "アクセスキーシークレット" -#: terminal/serializers/storage.py:68 xpack/plugins/cloud/manager.py:90 -#: xpack/plugins/cloud/models.py:249 +#: terminal/serializers/storage.py:68 xpack/plugins/cloud/models.py:249 msgid "Region" msgstr "リージョン" @@ -7396,7 +7533,7 @@ msgstr "エンドポイントサフィックス" msgid "HOST" msgstr "ホスト" -#: terminal/serializers/storage.py:146 users/models/user.py:904 +#: terminal/serializers/storage.py:146 users/models/user.py:906 #: xpack/plugins/cloud/serializers/account_attrs.py:213 msgid "Private key" msgstr "ssh秘密鍵" @@ -7604,10 +7741,6 @@ msgstr "リモートアプリケーション上のアカウントを収集する msgid "Check command replay storage connectivity" msgstr "チェックコマンドと録画ストレージの接続性" -#: terminal/templates/terminal/_msg_command_alert.html:10 -msgid "view" -msgstr "表示" - #: terminal/utils/db_port_mapper.py:85 msgid "" "No available port is matched. The number of databases may have exceeded the " @@ -8137,7 +8270,7 @@ msgstr "公開鍵は古いものと同じであってはなりません。" msgid "Not a valid ssh public key" msgstr "有効なssh公開鍵ではありません" -#: users/forms/profile.py:172 users/models/user.py:907 +#: users/forms/profile.py:172 users/models/user.py:909 #: xpack/plugins/cloud/serializers/account_attrs.py:210 msgid "Public key" msgstr "公開キー" @@ -8150,74 +8283,70 @@ msgstr "ユーザー設定" msgid "Force enable" msgstr "強制有効" -#: users/models/user.py:761 +#: users/models/user.py:763 msgid "Lark" msgstr "" -#: users/models/user.py:886 users/serializers/user.py:182 +#: users/models/user.py:888 users/serializers/user.py:190 msgid "Is service account" msgstr "サービスアカウントです" -#: users/models/user.py:888 +#: users/models/user.py:890 msgid "Avatar" msgstr "アバター" -#: users/models/user.py:891 +#: users/models/user.py:893 msgid "Wechat" msgstr "微信" -#: users/models/user.py:894 users/serializers/user.py:112 -msgid "Phone" -msgstr "電話" - -#: users/models/user.py:900 +#: users/models/user.py:902 msgid "OTP secret key" msgstr "OTP 秘密" # msgid "Private key" # msgstr "ssh秘密鍵" -#: users/models/user.py:912 users/serializers/profile.py:129 -#: users/serializers/user.py:179 +#: users/models/user.py:914 users/serializers/profile.py:129 +#: users/serializers/user.py:187 msgid "Is first login" msgstr "最初のログインです" -#: users/models/user.py:921 +#: users/models/user.py:923 msgid "Date password last updated" msgstr "最終更新日パスワード" -#: users/models/user.py:924 +#: users/models/user.py:926 msgid "Need update password" msgstr "更新パスワードが必要" -#: users/models/user.py:935 +#: users/models/user.py:937 msgid "Date api key used" msgstr "Api key 最後に使用した日付" -#: users/models/user.py:1057 +#: users/models/user.py:1059 msgid "Can not delete admin user" msgstr "管理者ユーザーを削除できませんでした" -#: users/models/user.py:1071 +#: users/models/user.py:1073 msgid "Can invite user" msgstr "ユーザーを招待できます" -#: users/models/user.py:1072 +#: users/models/user.py:1074 msgid "Can remove user" msgstr "ユーザーを削除できます" -#: users/models/user.py:1073 +#: users/models/user.py:1075 msgid "Can match user" msgstr "ユーザーに一致できます" -#: users/models/user.py:1082 +#: users/models/user.py:1084 msgid "Administrator" msgstr "管理者" -#: users/models/user.py:1085 +#: users/models/user.py:1087 msgid "Administrator is the super user of system" msgstr "管理者はシステムのスーパーユーザーです" -#: users/models/user.py:1110 +#: users/models/user.py:1112 msgid "User password history" msgstr "ユーザーパスワード履歴" @@ -8371,76 +8500,100 @@ msgstr "オープン" msgid "Forced enabled" msgstr "強制有効" -#: users/serializers/user.py:45 +#: users/serializers/user.py:44 msgid "System roles" msgstr "システムの役割" +#: users/serializers/user.py:45 +msgid "" +"System roles are roles at the system level, and they will take effect across " +"all organizations" +msgstr "" + #: users/serializers/user.py:49 msgid "Org roles" msgstr "組織ロール" #: users/serializers/user.py:52 +msgid "" +"Org roles are roles at the organization level, and they will only take " +"effect within current organization" +msgstr "" + +#: users/serializers/user.py:54 msgid "Organizations and roles" msgstr "そしきとやくわり" -#: users/serializers/user.py:94 +#: users/serializers/user.py:96 #, fuzzy #| msgid "Password strategy" msgid "Password setting" msgstr "パスワード戦略" -#: users/serializers/user.py:96 +#: users/serializers/user.py:98 msgid "MFA enabled" msgstr "MFA有効化" -#: users/serializers/user.py:98 +#: users/serializers/user.py:100 msgid "MFA force enabled" msgstr "MFAフォース有効化" -#: users/serializers/user.py:100 +#: users/serializers/user.py:102 msgid "Login blocked" msgstr "ログインがロックされました" -#: users/serializers/user.py:103 users/serializers/user.py:188 +#: users/serializers/user.py:105 users/serializers/user.py:196 msgid "Is OTP bound" msgstr "仮想MFAがバインドされているか" -#: users/serializers/user.py:104 +#: users/serializers/user.py:106 msgid "Super Administrator" msgstr "スーパーアドミニストレーター" -#: users/serializers/user.py:105 +#: users/serializers/user.py:107 msgid "Organization Administrator" msgstr "組織管理者" -#: users/serializers/user.py:107 +#: users/serializers/user.py:109 msgid "Can public key authentication" msgstr "公開鍵認証が可能" -#: users/serializers/user.py:176 +#: users/serializers/user.py:169 +#, fuzzy +#| msgid "Same with user" +msgid "Fullname of user" +msgstr "ユーザーと同じユーザー名" + +#: users/serializers/user.py:172 +#, fuzzy +#| msgid "Login user" +msgid "Login username" +msgstr "ログインユーザー" + +#: users/serializers/user.py:184 #, fuzzy #| msgid "System user" msgid "Superuser" msgstr "システムユーザー" -#: users/serializers/user.py:183 +#: users/serializers/user.py:191 msgid "Is org admin" msgstr "組織管理者です" -#: users/serializers/user.py:185 +#: users/serializers/user.py:193 msgid "Avatar url" msgstr "アバターURL" -#: users/serializers/user.py:189 +#: users/serializers/user.py:197 msgid "MFA level" msgstr "MFA レベル" -#: users/serializers/user.py:312 +#: users/serializers/user.py:333 msgid "" "For security, only a partial of users is displayed. You can search for more" msgstr "" -#: users/serializers/user.py:345 +#: users/serializers/user.py:366 msgid "name not unique" msgstr "名前が一意ではない" @@ -8743,11 +8896,10 @@ msgstr "パスワードの成功をリセットし、ログインページに戻 msgid "XPACK" msgstr "XPack" -#: xpack/exceptions.py:8 +#: xpack/exceptions.py:7 msgid "" -"Based on the current task configuration, assets that do not match the " -"strategy will skipped." -msgstr "現在のタスク構成に基づいて、未一致ポリシーの資産はスキップされます" +"The current task is not synchronized with unmatched policy assets, skipping" +msgstr "" #: xpack/plugins/cloud/api.py:60 msgid "Test connection successful" @@ -8869,19 +9021,19 @@ msgstr "インスタンス名と部分IP" msgid "Succeed" msgstr "成功" -#: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:80 +#: xpack/plugins/cloud/const.py:52 msgid "Unsync" msgstr "同期していません" -#: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:79 +#: xpack/plugins/cloud/const.py:53 msgid "New Sync" msgstr "新しい同期" -#: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:79 +#: xpack/plugins/cloud/const.py:54 msgid "Synced" msgstr "同期済み" -#: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:80 +#: xpack/plugins/cloud/const.py:55 msgid "Released" msgstr "リリース済み" @@ -8893,110 +9045,17 @@ msgstr "そして" msgid "Or" msgstr "または" -#: xpack/plugins/cloud/manager.py:41 -#, python-format -msgid "Task \"%s\" starts executing" -msgstr "タスク \"%s\" の実行開始" - -#: xpack/plugins/cloud/manager.py:45 xpack/plugins/cloud/manager.py:55 -#: xpack/plugins/cloud/manager.py:57 xpack/plugins/cloud/providers/gcp.py:64 +#: xpack/plugins/cloud/manager.py:55 xpack/plugins/cloud/providers/gcp.py:64 #: xpack/plugins/cloud/providers/huaweicloud.py:34 msgid "Account unavailable" msgstr "利用できないアカウント" -#: xpack/plugins/cloud/manager.py:71 -msgid "View the task details path: " -msgstr "タスク詳細パスの表示: " - -#: xpack/plugins/cloud/manager.py:74 -msgid "Account Details" -msgstr "アカウントの詳細" - -#: xpack/plugins/cloud/manager.py:75 -msgid "Synchronization History List" -msgstr "履歴リストの同期" - -#: xpack/plugins/cloud/manager.py:75 -msgid "Synchronization Instance List" -msgstr "インスタンスリストの同期" - -#: xpack/plugins/cloud/manager.py:83 -msgid "Task execution completed" -msgstr "タスク実行完了" - -#: xpack/plugins/cloud/manager.py:87 -msgid "Synchronization regions" -msgstr "同期地域" - -#: xpack/plugins/cloud/manager.py:110 -#, python-format -msgid "Get instances of region \"%s\" error, error: %s" -msgstr "地域 \"%s\" のインスタンスを取得できませんでした、エラー:%s" - -#: xpack/plugins/cloud/manager.py:128 -#, python-format -msgid "The instance IP \"%s\" is not in network segment \"%s\"" -msgstr "インスタンスのIP \"%s\" はネットワークセグメント \"%s\" にありません" - -#: xpack/plugins/cloud/manager.py:164 -#, python-format -msgid "Failed to synchronize the instance \"%s\"" -msgstr "インスタンス \"%s\" の同期に失敗しました" - -#: xpack/plugins/cloud/manager.py:316 -#, python-format -msgid "" -"The updated platform of asset \"%s\" is inconsistent with the original " -"platform type. Skip platform and protocol updates" -msgstr "" -"更新された資産 \"%s\" のプラットフォームタイプと元のタイプは一致しません。プ" -"ラットフォームとプロトコルの更新をスキップ" - -#: xpack/plugins/cloud/manager.py:358 -#, python-format -msgid "The asset \"%s\" already exists" -msgstr "資産 \"%s\" はすでに存在します" - -#: xpack/plugins/cloud/manager.py:362 -#, python-format -msgid "Update asset \"%s\"" -msgstr "資産の更新 \"%s\"" - -#: xpack/plugins/cloud/manager.py:365 -#, python-format -msgid "Asset \"%s\" has been updated" -msgstr "資産 \"%s\" が更新されました" - -#: xpack/plugins/cloud/manager.py:376 -#, python-format -msgid "Prepare to create asset \"%s\"" -msgstr "資産 \"%s\" の作成準備" - -#: xpack/plugins/cloud/manager.py:388 -#, python-format -msgid "Set nodes \"%s\"" -msgstr "ノード \"%s\" の設定" - -#: xpack/plugins/cloud/manager.py:414 -#, python-format -msgid "Set accounts \"%s\"" -msgstr "アカウント \"%s\" の設定" - -#: xpack/plugins/cloud/manager.py:430 -#, python-format -msgid "Set protocols \"%s\"" -msgstr "プロトコル \"%s\" の設定" - #: xpack/plugins/cloud/meta.py:9 msgid "Cloud center" msgstr "クラウドセンター" -#: xpack/plugins/cloud/models.py:34 -msgid "Provider" -msgstr "プロバイダー" - #: xpack/plugins/cloud/models.py:37 -#: xpack/plugins/cloud/serializers/account.py:69 +#: xpack/plugins/cloud/serializers/account.py:68 msgid "Attrs" msgstr "ツールバーの" @@ -9012,7 +9071,7 @@ msgstr "クラウドアカウント" msgid "Test cloud account" msgstr "クラウドアカウントのテスト" -#: xpack/plugins/cloud/models.py:88 xpack/plugins/cloud/serializers/task.py:160 +#: xpack/plugins/cloud/models.py:88 xpack/plugins/cloud/serializers/task.py:159 msgid "Regions" msgstr "リージョン" @@ -9020,16 +9079,16 @@ msgstr "リージョン" msgid "Hostname strategy" msgstr "ホスト名戦略" -#: xpack/plugins/cloud/models.py:96 xpack/plugins/cloud/serializers/task.py:163 +#: xpack/plugins/cloud/models.py:96 xpack/plugins/cloud/serializers/task.py:162 msgid "IP network segment group" msgstr "IPネットワークセグメントグループ" -#: xpack/plugins/cloud/models.py:99 xpack/plugins/cloud/serializers/task.py:168 +#: xpack/plugins/cloud/models.py:99 xpack/plugins/cloud/serializers/task.py:167 msgid "Sync IP type" msgstr "同期IPタイプ" #: xpack/plugins/cloud/models.py:102 -#: xpack/plugins/cloud/serializers/task.py:186 +#: xpack/plugins/cloud/serializers/task.py:185 msgid "Always update" msgstr "常に更新" @@ -9078,7 +9137,7 @@ msgstr "インスタンス" msgid "Sync instance detail" msgstr "同期インスタンスの詳細" -#: xpack/plugins/cloud/models.py:275 xpack/plugins/cloud/serializers/task.py:73 +#: xpack/plugins/cloud/models.py:275 xpack/plugins/cloud/serializers/task.py:72 msgid "Rule relation" msgstr "条件関係" @@ -9134,7 +9193,7 @@ msgstr "ルール一致" msgid "Rule value" msgstr "ルール値" -#: xpack/plugins/cloud/models.py:321 xpack/plugins/cloud/serializers/task.py:76 +#: xpack/plugins/cloud/models.py:321 xpack/plugins/cloud/serializers/task.py:75 msgid "Strategy rule" msgstr "戦略ルール" @@ -9146,7 +9205,7 @@ msgstr "アクション属性" msgid "Action value" msgstr "アクション値" -#: xpack/plugins/cloud/models.py:345 xpack/plugins/cloud/serializers/task.py:79 +#: xpack/plugins/cloud/models.py:345 xpack/plugins/cloud/serializers/task.py:78 msgid "Strategy action" msgstr "戦略アクション" @@ -9340,16 +9399,11 @@ msgstr "TR-Istanbul" msgid "CN East-Suqian" msgstr "華東-宿遷" -#: xpack/plugins/cloud/providers/lan.py:79 -#, python-format -msgid "Port \"%(port)s\" of instance IP \"%(ip)s\" is not reachable" -msgstr "インスタンスIP \"%(ip)s\" のポート \"%(port)s\" は接続できません" - -#: xpack/plugins/cloud/serializers/account.py:70 +#: xpack/plugins/cloud/serializers/account.py:69 msgid "Validity display" msgstr "有効表示" -#: xpack/plugins/cloud/serializers/account.py:71 +#: xpack/plugins/cloud/serializers/account.py:70 msgid "Provider display" msgstr "プロバイダ表示" @@ -9445,7 +9499,7 @@ msgstr "テストタイムアウト" msgid "Project" msgstr "project" -#: xpack/plugins/cloud/serializers/task.py:152 +#: xpack/plugins/cloud/serializers/task.py:151 msgid "" "Only instances matching the IP range will be synced.
If the instance " "contains multiple IP addresses, the first IP address that matches will be " @@ -9459,11 +9513,11 @@ msgstr "" "ドレスをランダムに一致させることを意味します。
例: " "192.168.1.0/24,10.1.1.1-10.1.1.20。" -#: xpack/plugins/cloud/serializers/task.py:158 +#: xpack/plugins/cloud/serializers/task.py:157 msgid "History count" msgstr "実行回数" -#: xpack/plugins/cloud/serializers/task.py:159 +#: xpack/plugins/cloud/serializers/task.py:158 msgid "Instance count" msgstr "インスタンス数" @@ -9479,8 +9533,7 @@ msgstr "同期インスタンス タスクの実行記録を定期的にクリ msgid "Restore default successfully." msgstr "デフォルトの復元に成功しました。" -#: xpack/plugins/interface/meta.py:9 xpack/plugins/interface/models.py:45 -#: xpack/plugins/interface/models.py:86 +#: xpack/plugins/interface/meta.py:9 msgid "Interface settings" msgstr "インターフェイスの設定" @@ -9515,6 +9568,10 @@ msgstr "テーマ" msgid "Footer content" msgstr "フッターの内容" +#: xpack/plugins/interface/models.py:45 xpack/plugins/interface/models.py:86 +msgid "Interface setting" +msgstr "インターフェイスの設定" + #: xpack/plugins/interface/serializers/interface.py:37 msgid "Wide logo on top" msgstr "" @@ -9528,8 +9585,8 @@ msgid "License import successfully" msgstr "ライセンスのインポートに成功" #: xpack/plugins/license/api.py:53 -msgid "Invalid license" -msgstr "無効なライセンス" +msgid "License is invalid" +msgstr "ライセンスが無効です" #: xpack/plugins/license/meta.py:10 xpack/plugins/license/models.py:144 msgid "License" @@ -9551,6 +9608,186 @@ msgstr "エンタープライズプロフェッショナル版" msgid "Ultimate edition" msgstr "エンタープライズ・フラッグシップ・エディション" +#, fuzzy +#~| msgid "Forgot password" +#~ msgid "Forgot Password URL" +#~ msgstr "パスワードを忘れた" + +#~ msgid "eg: ldap://localhost:389" +#~ msgstr "例: ldap://localhost:389" + +#~ msgid "User OU" +#~ msgstr "ユーザー OU" + +#~ msgid "Use | split multi OUs" +#~ msgstr "使用 | splitマルチ OU" + +#~ msgid "" +#~ "User attr map present how to map LDAP user attr to jumpserver, username," +#~ "name,email is jumpserver attr" +#~ msgstr "" +#~ "ユーザー属性マッピングは、LDAPのユーザー属性をjumpserverユーザーにマッピン" +#~ "グする方法、username, name,emailはjumpserverのユーザーが必要とする属性です" + +#~ msgid "" +#~ "User attr map present how to map OpenID user attr to jumpserver, username," +#~ "name,email is jumpserver attr" +#~ msgstr "" +#~ "ユーザー属性マッピングは、OpenIDのユーザー属性をjumpserverユーザーにマッピ" +#~ "ングする方法、username, name,emailはjumpserverのユーザーが必要とする属性で" +#~ "す" + +#~ msgid "SMS provider / Protocol" +#~ msgstr "SMSプロバイダ / プロトコル" + +#~ msgid "Test phone" +#~ msgstr "テスト電話" + +#~ msgid "Help Docs URL" +#~ msgstr "ドキュメントリンク" + +#~ msgid "default: http://docs.jumpserver.org" +#~ msgstr "デフォルト: http://docs.jumpserver.org" + +#~ msgid "default: http://www.jumpserver.org/support/" +#~ msgstr "デフォルト: http://www.jumpserver.org/support/" + +#~ msgid "Historical accounts retained count" +#~ msgstr "保持されている過去のアカウントの数" + +#, fuzzy +#~| msgid "Base URL" +#~ msgid "Base Url" +#~ msgstr "基本的なUrl" + +#~ msgid "Enable tickets" +#~ msgstr "チケットを有効にする" + +#~ msgid "No login approval" +#~ msgstr "ログイン承認なし" + +#, fuzzy +#~| msgid "Default asset group" +#~ msgid "Default period" +#~ msgstr "デフォルトアセットグループ" + +#, fuzzy +#~| msgid "Default" +#~ msgid "Default unit" +#~ msgstr "デフォルト" + +#~ msgid "Allow user run batch command or not using ansible" +#~ msgstr "ユーザー実行バッチコマンドを許可するか、ansibleを使用しない" + +#~ msgid "Commands that are not allowed execute." +#~ msgstr "実行が許可されていないコマンド" + +#~ msgid "Tips: Some provider use token except password" +#~ msgstr "ヒント: 一部のプロバイダーはパスワード以外のトークンを使用します" + +#~ msgid "Sender" +#~ msgstr "ユーザーを送信" + +#~ msgid "Tips: Send mail account, default SMTP account as the send account" +#~ msgstr "" +#~ "ヒント: 送信メールアカウント、送信アカウントとしてのデフォルトのSMTPアカウ" +#~ "ント" + +#~ msgid "Test recipient" +#~ msgstr "テスト受信者" + +#~ msgid "Tips: Used only as a test mail recipient" +#~ msgstr "ヒント: テストメールの受信者としてのみ使用" + +#~ msgid "If SMTP port is 465, may be select" +#~ msgstr "SMTPポートが465の場合は、" + +#~ msgid "If SMTP port is 587, may be select" +#~ msgstr "SMTPポートが587の場合は、" + +#~ msgid "" +#~ "Based on the current task configuration, assets that do not match the " +#~ "strategy will skipped." +#~ msgstr "現在のタスク構成に基づいて、未一致ポリシーの資産はスキップされます" + +#, python-format +#~ msgid "Task \"%s\" starts executing" +#~ msgstr "タスク \"%s\" の実行開始" + +#~ msgid "View the task details path: " +#~ msgstr "タスク詳細パスの表示: " + +#~ msgid "Account Details" +#~ msgstr "アカウントの詳細" + +#~ msgid "Synchronization History List" +#~ msgstr "履歴リストの同期" + +#~ msgid "Synchronization Instance List" +#~ msgstr "インスタンスリストの同期" + +#~ msgid "Task execution completed" +#~ msgstr "タスク実行完了" + +#~ msgid "Synchronization regions" +#~ msgstr "同期地域" + +#, python-format +#~ msgid "Get instances of region \"%s\" error, error: %s" +#~ msgstr "地域 \"%s\" のインスタンスを取得できませんでした、エラー:%s" + +#, python-format +#~ msgid "The instance IP \"%s\" is not in network segment \"%s\"" +#~ msgstr "" +#~ "インスタンスのIP \"%s\" はネットワークセグメント \"%s\" にありません" + +#, python-format +#~ msgid "Failed to synchronize the instance \"%s\"" +#~ msgstr "インスタンス \"%s\" の同期に失敗しました" + +#, python-format +#~ msgid "" +#~ "The updated platform of asset \"%s\" is inconsistent with the original " +#~ "platform type. Skip platform and protocol updates" +#~ msgstr "" +#~ "更新された資産 \"%s\" のプラットフォームタイプと元のタイプは一致しません。" +#~ "プラットフォームとプロトコルの更新をスキップ" + +#, python-format +#~ msgid "The asset \"%s\" already exists" +#~ msgstr "資産 \"%s\" はすでに存在します" + +#, python-format +#~ msgid "Update asset \"%s\"" +#~ msgstr "資産の更新 \"%s\"" + +#, python-format +#~ msgid "Asset \"%s\" has been updated" +#~ msgstr "資産 \"%s\" が更新されました" + +#, python-format +#~ msgid "Prepare to create asset \"%s\"" +#~ msgstr "資産 \"%s\" の作成準備" + +#, python-format +#~ msgid "Set nodes \"%s\"" +#~ msgstr "ノード \"%s\" の設定" + +#, python-format +#~ msgid "Set accounts \"%s\"" +#~ msgstr "アカウント \"%s\" の設定" + +#, python-format +#~ msgid "Set protocols \"%s\"" +#~ msgstr "プロトコル \"%s\" の設定" + +#, python-format +#~ msgid "Port \"%(port)s\" of instance IP \"%(ip)s\" is not reachable" +#~ msgstr "インスタンスIP \"%(ip)s\" のポート \"%(port)s\" は接続できません" + +#~ msgid "Invalid license" +#~ msgstr "無効なライセンス" + #~ msgid "" #~ "External URL, email links or other system callbacks are used to access " #~ "it, eg: http://dev.jumpserver.org:8080" @@ -9578,12 +9815,6 @@ msgstr "エンタープライズ・フラッグシップ・エディション" #~ msgid "Logo of logout page" #~ msgstr "ログアウト" -#~ msgid "Interface setting" -#~ msgstr "インターフェイスの設定" - -#~ msgid "License is invalid" -#~ msgstr "ライセンスが無効です" - #, fuzzy #~| msgid "Apply applications" #~ msgid "App Applications" diff --git a/apps/i18n/core/zh/LC_MESSAGES/django.po b/apps/i18n/core/zh/LC_MESSAGES/django.po index 1b19b53ce..4a3f46321 100644 --- a/apps/i18n/core/zh/LC_MESSAGES/django.po +++ b/apps/i18n/core/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: 2024-05-11 10:40+0800\n" +"POT-Creation-Date: 2024-05-22 18:27+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n" "Last-Translator: ibuler \n" "Language-Team: JumpServer team\n" @@ -21,21 +21,27 @@ msgstr "" msgid "The parameter 'action' must be [{}]" msgstr "参数 'action' 必须是 [{}]" -#: accounts/automations/change_secret/manager.py:225 +#: accounts/automations/change_secret/manager.py:102 +#, python-brace-format +msgid "" +"No pending accounts found: {name} User ID: {account_ids} Type: {secret_type}" +msgstr "没有发现待处理的账号: {name} 用户ID: {account_ids} 类型: {secret_type}" + +#: accounts/automations/change_secret/manager.py:227 #, python-format msgid "Success: %s, Failed: %s, Total: %s" msgstr "成功: %s, 失败: %s, 总数: %s" #: accounts/const/account.py:6 #: accounts/serializers/automations/change_secret.py:34 -#: assets/models/_user.py:24 audits/signal_handlers/login_log.py:34 -#: authentication/confirm/password.py:9 authentication/confirm/password.py:24 -#: authentication/confirm/password.py:26 authentication/forms.py:28 +#: audits/signal_handlers/login_log.py:34 authentication/confirm/password.py:9 +#: authentication/confirm/password.py:24 authentication/confirm/password.py:26 +#: authentication/forms.py:28 #: authentication/templates/authentication/login.html:329 -#: settings/serializers/auth/ldap.py:25 settings/serializers/auth/ldap.py:47 -#: settings/serializers/msg.py:35 terminal/serializers/storage.py:123 +#: settings/serializers/auth/ldap.py:25 settings/serializers/auth/ldap.py:50 +#: settings/serializers/msg.py:37 terminal/serializers/storage.py:123 #: terminal/serializers/storage.py:142 users/forms/profile.py:21 -#: users/serializers/user.py:110 +#: users/serializers/user.py:112 #: users/templates/users/_msg_user_created.html:13 #: users/templates/users/user_password_verify.html:18 #: xpack/plugins/cloud/serializers/account_attrs.py:28 @@ -52,8 +58,7 @@ msgstr "SSH 密钥" msgid "Access key" msgstr "Access key" -#: accounts/const/account.py:9 assets/models/_user.py:48 -#: authentication/backends/passkey/models.py:16 +#: accounts/const/account.py:9 authentication/backends/passkey/models.py:16 #: authentication/models/sso_token.py:14 settings/serializers/feature.py:52 msgid "Token" msgstr "Token" @@ -83,7 +88,7 @@ msgstr "匿名账号" msgid "Specified account" msgstr "指定账号" -#: accounts/const/account.py:26 users/models/user.py:751 +#: accounts/const/account.py:26 users/models/user.py:753 msgid "Local" msgstr "数据库" @@ -92,7 +97,7 @@ msgid "Collected" msgstr "收集" #: accounts/const/account.py:28 accounts/serializers/account/account.py:28 -#: settings/serializers/auth/sms.py:79 +#: settings/serializers/auth/sms.py:84 msgid "Template" msgstr "模板" @@ -100,7 +105,7 @@ msgstr "模板" msgid "Skip" msgstr "跳过" -#: accounts/const/account.py:33 audits/const.py:24 rbac/tree.py:239 +#: accounts/const/account.py:33 audits/const.py:24 #: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6 msgid "Update" msgstr "更新" @@ -209,8 +214,8 @@ msgstr "仅创建" #: authentication/serializers/password_mfa.py:16 #: authentication/serializers/password_mfa.py:24 #: notifications/backends/__init__.py:10 settings/serializers/msg.py:22 -#: settings/serializers/msg.py:64 users/forms/profile.py:100 -#: users/forms/profile.py:108 users/models/user.py:876 +#: settings/serializers/msg.py:59 users/forms/profile.py:100 +#: users/forms/profile.py:108 users/models/user.py:878 #: users/templates/users/forgot_password.html:162 #: users/views/profile/reset.py:94 msgid "Email" @@ -291,13 +296,13 @@ msgid "Su from" msgstr "切换自" #: accounts/models/account.py:55 assets/const/protocol.py:177 -#: settings/serializers/auth/cas.py:20 terminal/models/applet/applet.py:35 +#: settings/serializers/auth/cas.py:23 terminal/models/applet/applet.py:35 #: terminal/models/virtualapp/virtualapp.py:21 msgid "Version" msgstr "版本" #: accounts/models/account.py:57 accounts/serializers/account/account.py:217 -#: users/models/user.py:928 +#: users/models/user.py:930 msgid "Source" msgstr "来源" @@ -312,9 +317,8 @@ msgstr "来源 ID" #: acls/serializers/base.py:124 acls/templates/acls/asset_login_reminder.html:7 #: assets/serializers/gateway.py:28 audits/models.py:59 #: authentication/api/connection_token.py:411 ops/models/base.py:18 -#: perms/models/asset_permission.py:75 settings/serializers/msg.py:33 -#: terminal/backends/command/models.py:18 terminal/models/session/session.py:34 -#: terminal/serializers/command.py:72 +#: perms/models/asset_permission.py:75 terminal/backends/command/models.py:18 +#: terminal/models/session/session.py:34 terminal/serializers/command.py:72 #: terminal/templates/terminal/_msg_command_warning.html:8 #: terminal/templates/terminal/_msg_session_sharing.html:8 #: tickets/models/ticket/command_confirm.py:13 xpack/plugins/cloud/models.py:85 @@ -390,7 +394,7 @@ msgstr "账号备份计划" #: accounts/models/automations/backup_account.py:120 #: assets/models/automations/base.py:115 audits/models.py:65 #: ops/models/base.py:55 ops/models/celery.py:88 ops/models/job.py:241 -#: ops/templates/ops/celery_task_log.html:75 +#: ops/templates/ops/celery_task_log.html:95 #: perms/models/asset_permission.py:78 #: settings/templates/ldap/_msg_import_ldap_user.html:5 #: terminal/models/applet/host.py:141 terminal/models/session/session.py:45 @@ -478,7 +482,7 @@ msgstr "SSH 密钥推送方式" #: accounts/models/automations/gather_account.py:58 #: accounts/serializers/account/backup.py:40 #: accounts/serializers/automations/change_secret.py:58 -#: settings/serializers/auth/ldap.py:90 +#: settings/serializers/auth/ldap.py:100 settings/serializers/msg.py:45 msgid "Recipient" msgstr "收件人" @@ -547,13 +551,12 @@ msgstr "最后登录日期" #: accounts/models/automations/gather_account.py:17 #: accounts/models/automations/push_account.py:15 accounts/models/base.py:65 #: accounts/serializers/account/virtual.py:21 acls/serializers/base.py:19 -#: acls/serializers/base.py:50 assets/models/_user.py:23 audits/models.py:188 -#: authentication/forms.py:21 authentication/forms.py:23 -#: authentication/models/temp_token.py:9 +#: acls/serializers/base.py:50 audits/models.py:188 authentication/forms.py:21 +#: authentication/forms.py:23 authentication/models/temp_token.py:9 #: authentication/templates/authentication/_msg_different_city.html:9 #: authentication/templates/authentication/_msg_oauth_bind.html:9 #: terminal/serializers/storage.py:136 users/forms/profile.py:31 -#: users/forms/profile.py:114 users/models/user.py:872 +#: users/forms/profile.py:114 users/models/user.py:874 #: users/templates/users/_msg_user_created.html:12 #: xpack/plugins/cloud/serializers/account_attrs.py:26 msgid "Username" @@ -629,13 +632,12 @@ msgstr "密码规则" #: accounts/models/base.py:64 accounts/serializers/account/virtual.py:20 #: acls/models/base.py:35 acls/models/base.py:96 acls/models/command_acl.py:21 -#: acls/serializers/base.py:35 applications/models.py:9 -#: assets/models/_user.py:22 assets/models/asset/common.py:93 +#: acls/serializers/base.py:35 assets/models/asset/common.py:93 #: assets/models/asset/common.py:159 assets/models/cmd_filter.py:21 -#: assets/models/domain.py:19 assets/models/group.py:17 -#: assets/models/label.py:18 assets/models/platform.py:15 -#: assets/models/platform.py:94 assets/serializers/asset/common.py:149 -#: assets/serializers/platform.py:143 assets/serializers/platform.py:261 +#: assets/models/domain.py:19 assets/models/label.py:18 +#: assets/models/platform.py:15 assets/models/platform.py:94 +#: assets/serializers/asset/common.py:149 assets/serializers/platform.py:143 +#: assets/serializers/platform.py:261 #: authentication/backends/passkey/models.py:10 #: authentication/serializers/connect_token_secret.py:113 #: authentication/serializers/connect_token_secret.py:169 labels/models.py:11 @@ -643,7 +645,7 @@ msgstr "密码规则" #: ops/models/celery.py:80 ops/models/job.py:142 ops/models/playbook.py:28 #: ops/serializers/job.py:18 orgs/models.py:82 #: perms/models/asset_permission.py:61 rbac/models/role.py:29 -#: settings/models.py:34 settings/models.py:183 settings/serializers/msg.py:89 +#: settings/models.py:34 settings/models.py:183 settings/serializers/msg.py:87 #: settings/serializers/terminal.py:9 terminal/models/applet/applet.py:33 #: terminal/models/component/endpoint.py:12 #: terminal/models/component/endpoint.py:109 @@ -652,7 +654,7 @@ msgstr "密码规则" #: terminal/models/virtualapp/provider.py:10 #: terminal/models/virtualapp/virtualapp.py:19 tickets/api/ticket.py:87 #: users/forms/profile.py:32 users/models/group.py:13 -#: users/models/preference.py:11 users/models/user.py:874 +#: users/models/preference.py:11 users/models/user.py:876 #: xpack/plugins/cloud/models.py:32 xpack/plugins/cloud/models.py:272 #: xpack/plugins/cloud/serializers/task.py:70 msgid "Name" @@ -668,11 +670,11 @@ msgstr "特权账号" #: authentication/serializers/connect_token_secret.py:117 #: terminal/models/applet/applet.py:40 #: terminal/models/component/endpoint.py:120 -#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:180 +#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:188 msgid "Is active" msgstr "激活" -#: accounts/models/template.py:18 assets/models/_user.py:53 +#: accounts/models/template.py:18 msgid "Auto push" msgstr "自动推送" @@ -786,19 +788,18 @@ msgstr "参数" msgid "Exist policy" msgstr "账号存在策略" -#: accounts/serializers/account/account.py:195 applications/models.py:11 -#: assets/models/label.py:21 assets/models/platform.py:95 -#: assets/serializers/asset/common.py:125 assets/serializers/cagegory.py:12 -#: assets/serializers/platform.py:165 assets/serializers/platform.py:262 -#: perms/serializers/user_permission.py:26 settings/models.py:36 -#: tickets/models/ticket/apply_application.py:13 users/models/preference.py:12 +#: accounts/serializers/account/account.py:195 assets/models/label.py:21 +#: assets/models/platform.py:95 assets/serializers/asset/common.py:125 +#: assets/serializers/cagegory.py:12 assets/serializers/platform.py:165 +#: assets/serializers/platform.py:262 perms/serializers/user_permission.py:26 +#: settings/models.py:36 tickets/models/ticket/apply_application.py:13 +#: users/models/preference.py:12 msgid "Category" msgstr "类别" #: accounts/serializers/account/account.py:196 #: accounts/serializers/automations/base.py:55 acls/models/command_acl.py:24 -#: acls/serializers/command_acl.py:19 applications/models.py:14 -#: assets/models/_user.py:50 assets/models/automations/base.py:20 +#: acls/serializers/command_acl.py:19 assets/models/automations/base.py:20 #: assets/models/cmd_filter.py:74 assets/models/platform.py:96 #: assets/serializers/asset/common.py:126 assets/serializers/platform.py:145 #: assets/serializers/platform.py:164 audits/serializers.py:53 @@ -875,14 +876,14 @@ msgstr "ID" #: notifications/models/notification.py:12 #: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:63 #: rbac/builtin.py:124 rbac/models/rolebinding.py:49 -#: rbac/serializers/rolebinding.py:17 terminal/backends/command/models.py:16 -#: terminal/models/session/session.py:30 terminal/models/session/sharing.py:34 -#: terminal/notifications.py:156 terminal/notifications.py:205 -#: terminal/serializers/command.py:16 +#: rbac/serializers/rolebinding.py:17 settings/serializers/msg.py:34 +#: terminal/backends/command/models.py:16 terminal/models/session/session.py:30 +#: terminal/models/session/sharing.py:34 terminal/notifications.py:156 +#: terminal/notifications.py:205 terminal/serializers/command.py:16 #: terminal/templates/terminal/_msg_command_warning.html:6 #: terminal/templates/terminal/_msg_session_sharing.html:6 -#: tickets/models/comment.py:21 users/const.py:14 users/models/user.py:1059 -#: users/models/user.py:1097 +#: tickets/models/comment.py:21 users/const.py:14 users/models/user.py:1064 +#: users/models/user.py:1102 msgid "User" msgstr "用户" @@ -967,9 +968,8 @@ msgid "" "default parameters will be used" msgstr "关联平台,可配置推送参数,如果不关联,将使用默认参数" -#: accounts/serializers/account/virtual.py:19 assets/models/_user.py:27 -#: assets/models/cmd_filter.py:40 assets/models/cmd_filter.py:88 -#: assets/models/group.py:20 common/db/models.py:36 ops/models/adhoc.py:26 +#: accounts/serializers/account/virtual.py:19 assets/models/cmd_filter.py:40 +#: assets/models/cmd_filter.py:88 common/db/models.py:36 ops/models/adhoc.py:26 #: ops/models/job.py:158 ops/models/playbook.py:31 rbac/models/role.py:37 #: settings/models.py:39 terminal/models/applet/applet.py:45 #: terminal/models/applet/applet.py:321 terminal/models/applet/host.py:143 @@ -977,7 +977,7 @@ msgstr "关联平台,可配置推送参数,如果不关联,将使用默认 #: terminal/models/component/endpoint.py:119 #: terminal/models/session/session.py:47 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 -#: tickets/models/ticket/general.py:295 users/models/user.py:910 +#: tickets/models/ticket/general.py:295 users/models/user.py:912 #: xpack/plugins/cloud/models.py:39 xpack/plugins/cloud/models.py:106 msgid "Comment" msgstr "备注" @@ -1097,7 +1097,7 @@ msgid "Deleted account" msgstr "删除账号" #: accounts/templates/accounts/change_secret_failed_info.html:3 -#: ops/templates/ops/celery_task_log.html:71 terminal/serializers/task.py:10 +#: terminal/serializers/task.py:10 msgid "Task name" msgstr "任务名称" @@ -1154,15 +1154,13 @@ msgstr "告警" msgid "Notify" msgstr "" -#: acls/models/base.py:37 assets/models/_user.py:51 -#: assets/models/cmd_filter.py:76 terminal/models/component/endpoint.py:112 -#: xpack/plugins/cloud/models.py:278 +#: acls/models/base.py:37 assets/models/cmd_filter.py:76 +#: terminal/models/component/endpoint.py:112 xpack/plugins/cloud/models.py:278 msgid "Priority" msgstr "优先级" -#: acls/models/base.py:38 assets/models/_user.py:51 -#: assets/models/cmd_filter.py:76 terminal/models/component/endpoint.py:113 -#: xpack/plugins/cloud/models.py:279 +#: acls/models/base.py:38 assets/models/cmd_filter.py:76 +#: terminal/models/component/endpoint.py:113 xpack/plugins/cloud/models.py:279 msgid "1-100, the lower the value will be match first" msgstr "优先级可选范围为 1-100 (数值越小越优先)" @@ -1181,7 +1179,7 @@ msgstr "激活中" #: acls/models/base.py:81 perms/serializers/permission.py:32 #: users/models/preference.py:16 users/serializers/group.py:21 -#: users/serializers/user.py:311 +#: users/serializers/user.py:332 msgid "Users" msgstr "用户" @@ -1208,7 +1206,7 @@ msgstr "正则表达式" #: acls/models/command_acl.py:26 assets/models/cmd_filter.py:79 #: settings/models.py:184 settings/serializers/feature.py:19 -#: settings/serializers/msg.py:78 xpack/plugins/license/models.py:30 +#: settings/serializers/msg.py:76 xpack/plugins/license/models.py:30 msgid "Content" msgstr "内容" @@ -1365,23 +1363,6 @@ msgstr "" "用户刚刚成功登录到系统。请确保这是授权的操作。如果您怀疑这是一个未经授权的访" "问,请立即采取适当的措施。" -#: applications/apps.py:9 -msgid "App Applications" -msgstr "应用管理" - -#: applications/models.py:16 xpack/plugins/cloud/models.py:37 -#: xpack/plugins/cloud/serializers/account.py:68 -msgid "Attrs" -msgstr "属性" - -#: applications/models.py:19 -msgid "Application" -msgstr "应用程序" - -#: applications/models.py:23 -msgid "Can match application" -msgstr "匹配应用" - #: assets/api/asset/asset.py:180 msgid "Cannot create asset directly, you should create a host or other" msgstr "不能直接创建资产, 你应该创建主机或其他资产" @@ -1418,6 +1399,28 @@ msgstr "{} 已禁用" msgid " - Platform {} ansible disabled" msgstr " - 平台 {} Ansible 已禁用, 无法执行任务" +#: assets/automations/base/manager.py:323 +msgid ">>> Task preparation phase" +msgstr ">>> 任务准备阶段" + +#: assets/automations/base/manager.py:326 +#, python-brace-format +msgid ">>> Executing tasks in batches, total {runner_count}" +msgstr ">>> 分次执行任务,总共 {runner_count}" + +#: assets/automations/base/manager.py:328 +msgid ">>> Start executing tasks" +msgstr ">>> 开始执行任务" + +#: assets/automations/base/manager.py:330 +msgid ">>> No tasks need to be executed" +msgstr ">>> 没有需要执行的任务" + +#: assets/automations/base/manager.py:335 +#, python-brace-format +msgid ">>> Begin executing batch {index} of tasks" +msgstr ">>> 开始执行第 {} 批任务" + #: assets/automations/ping_gateway/manager.py:33 #: authentication/models/connection_token.py:131 msgid "No account" @@ -1483,7 +1486,7 @@ msgid "Script" msgstr "脚本" #: assets/const/category.py:10 assets/models/asset/host.py:8 -#: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:71 +#: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:76 #: settings/serializers/feature.py:49 settings/serializers/msg.py:31 #: terminal/models/component/endpoint.py:13 terminal/serializers/applet.py:17 #: xpack/plugins/cloud/serializers/account_attrs.py:72 @@ -1616,7 +1619,7 @@ msgid "We will consider login success when we see this prompt" msgstr "当我们看到这个提示时,我们将认为登录成功" #: assets/const/protocol.py:127 assets/models/asset/database.py:10 -#: settings/serializers/msg.py:47 +#: settings/serializers/msg.py:49 msgid "Use SSL" msgstr "使用 SSL" @@ -1689,110 +1692,12 @@ msgstr "网站" msgid "This function is not supported temporarily" msgstr "暂时不支持此功能" -#: assets/models/_user.py:25 -msgid "SSH private key" -msgstr "SSH密钥" - -#: assets/models/_user.py:26 -msgid "SSH public key" -msgstr "SSH公钥" - -# msgid "Comment" -# msgstr "备注" -#: assets/models/_user.py:28 assets/models/automations/base.py:114 -#: assets/models/cmd_filter.py:41 assets/models/group.py:19 -#: audits/models.py:267 common/db/models.py:34 ops/models/base.py:54 -#: ops/models/job.py:240 users/models/user.py:1098 -msgid "Date created" -msgstr "创建日期" - -#: assets/models/_user.py:29 assets/models/cmd_filter.py:42 -#: common/db/models.py:35 users/models/user.py:936 -msgid "Date updated" -msgstr "更新日期" - -#: assets/models/_user.py:30 assets/models/cmd_filter.py:44 -#: assets/models/cmd_filter.py:91 assets/models/group.py:18 -#: common/db/models.py:32 users/models/user.py:917 -#: users/serializers/group.py:32 -msgid "Created by" -msgstr "创建者" - -#: assets/models/_user.py:40 -msgid "Automatic managed" -msgstr "托管密码" - -#: assets/models/_user.py:41 -msgid "Manually input" -msgstr "手动输入" - -#: assets/models/_user.py:45 -msgid "Common user" -msgstr "普通用户" - -#: assets/models/_user.py:46 assets/models/_user.py:95 -msgid "Admin user" -msgstr "特权用户" - -#: assets/models/_user.py:49 -msgid "Username same with user" -msgstr "用户名与用户相同" - -#: assets/models/_user.py:52 authentication/models/connection_token.py:41 -#: authentication/serializers/connect_token_secret.py:114 -#: settings/serializers/msg.py:29 terminal/models/applet/applet.py:42 -#: terminal/models/virtualapp/virtualapp.py:24 -#: terminal/serializers/session.py:21 terminal/serializers/session.py:48 -#: terminal/serializers/storage.py:71 -msgid "Protocol" -msgstr "协议" - -#: assets/models/_user.py:54 -msgid "Sudo" -msgstr "Sudo" - -#: assets/models/_user.py:55 ops/const.py:50 ops/const.py:61 -msgid "Shell" -msgstr "Shell" - -#: assets/models/_user.py:56 -msgid "Login mode" -msgstr "认证方式" - -#: assets/models/_user.py:57 terminal/serializers/storage.py:152 -msgid "SFTP Root" -msgstr "SFTP根路径" - -#: assets/models/_user.py:58 -msgid "Home" -msgstr "家目录" - -#: assets/models/_user.py:59 -msgid "System groups" -msgstr "用户组" - -#: assets/models/_user.py:62 -msgid "User switch" -msgstr "用户切换" - -#: assets/models/_user.py:63 -msgid "Switch from" -msgstr "切换自" - -#: assets/models/_user.py:69 -msgid "System user" -msgstr "系统用户" - -#: assets/models/_user.py:71 -msgid "Can match system user" -msgstr "可以匹配系统用户" - #: assets/models/asset/cloud.py:11 msgid "Cloud" msgstr "云服务" #: assets/models/asset/common.py:94 assets/models/platform.py:16 -#: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:72 +#: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:77 #: settings/serializers/msg.py:32 terminal/serializers/storage.py:133 #: xpack/plugins/cloud/serializers/account_attrs.py:73 msgid "Port" @@ -1811,10 +1716,8 @@ msgid "Platform" msgstr "平台" #: assets/models/asset/common.py:163 assets/models/domain.py:22 -#: authentication/serializers/connect_token_secret.py:136 -#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:327 -msgid "Domain" -msgstr "网域" +msgid "Zone" +msgstr "" #: assets/models/asset/common.py:166 assets/serializers/asset/common.py:385 #: assets/serializers/asset/host.py:11 @@ -1861,7 +1764,7 @@ msgstr "客户端密钥" msgid "Allow invalid cert" msgstr "忽略证书校验" -#: assets/models/asset/gpt.py:8 settings/serializers/feature.py:84 +#: assets/models/asset/gpt.py:8 settings/serializers/feature.py:86 msgid "Proxy" msgstr "代理" @@ -1872,7 +1775,7 @@ msgid "Node" msgstr "节点" #: assets/models/automations/base.py:22 ops/models/job.py:236 -#: settings/serializers/auth/sms.py:103 +#: settings/serializers/auth/sms.py:108 msgid "Parameters" msgstr "参数" @@ -1884,6 +1787,14 @@ msgstr "自动化任务" msgid "Asset automation task" msgstr "资产自动化任务" +# msgid "Comment" +# msgstr "备注" +#: assets/models/automations/base.py:114 assets/models/cmd_filter.py:41 +#: audits/models.py:267 common/db/models.py:34 ops/models/base.py:54 +#: ops/models/job.py:240 users/models/user.py:1103 +msgid "Date created" +msgstr "创建日期" + #: assets/models/automations/gather_facts.py:15 msgid "Gather asset facts" msgstr "收集资产信息" @@ -1901,10 +1812,21 @@ msgid "Date verified" msgstr "校验日期" #: assets/models/cmd_filter.py:28 perms/models/asset_permission.py:66 -#: users/models/group.py:25 users/models/user.py:880 +#: users/models/group.py:25 users/models/user.py:882 msgid "User group" msgstr "用户组" +#: assets/models/cmd_filter.py:42 common/db/models.py:35 +#: users/models/user.py:938 +msgid "Date updated" +msgstr "更新日期" + +#: assets/models/cmd_filter.py:44 assets/models/cmd_filter.py:91 +#: common/db/models.py:32 users/models/user.py:919 +#: users/serializers/group.py:32 +msgid "Created by" +msgstr "创建者" + #: assets/models/cmd_filter.py:52 msgid "Command filter" msgstr "命令过滤器" @@ -1937,21 +1859,7 @@ msgstr "收藏的资产" msgid "Gateway" msgstr "网关" -#: assets/models/group.py:27 -msgid "Asset group" -msgstr "资产组" - -#: assets/models/group.py:31 assets/models/platform.py:19 -#: assets/serializers/platform.py:146 -#: xpack/plugins/cloud/providers/nutanix.py:30 -msgid "Default" -msgstr "默认" - -#: assets/models/group.py:31 -msgid "Default asset group" -msgstr "默认资产组" - -#: assets/models/label.py:15 rbac/const.py:6 users/models/user.py:1083 +#: assets/models/label.py:15 rbac/const.py:6 users/models/user.py:1088 msgid "System" msgstr "系统" @@ -1970,7 +1878,7 @@ msgstr "值" #: assets/serializers/platform.py:144 #: authentication/serializers/connect_token_secret.py:124 #: common/serializers/common.py:85 labels/models.py:17 labels/models.py:33 -#: labels/serializers.py:45 settings/serializers/msg.py:90 +#: labels/serializers.py:45 settings/serializers/msg.py:88 msgid "Label" msgstr "标签" @@ -2006,6 +1914,11 @@ msgstr "主要的" msgid "Required" msgstr "必须的" +#: assets/models/platform.py:19 assets/serializers/platform.py:146 +#: xpack/plugins/cloud/providers/nutanix.py:30 +msgid "Default" +msgstr "默认" + #: assets/models/platform.py:20 msgid "Public" msgstr "开放的" @@ -2113,8 +2026,10 @@ msgid "Charset" msgstr "编码" #: assets/models/platform.py:104 assets/serializers/platform.py:198 -msgid "Domain enabled" -msgstr "启用网域" +#, fuzzy +#| msgid "Gather facts enabled" +msgid "Gateway enabled" +msgstr "启用收集资产信息" #: assets/models/platform.py:106 assets/serializers/platform.py:191 msgid "Su enabled" @@ -2252,7 +2167,13 @@ msgstr "约束" msgid "Types" msgstr "类型" -#: assets/serializers/domain.py:21 orgs/serializers.py:13 +#: assets/serializers/domain.py:21 +msgid "" +"A gateway is a network proxy for a zone, and when connecting assets within " +"the zone, the connection is routed through the gateway." +msgstr "" + +#: assets/serializers/domain.py:24 orgs/serializers.py:13 #: perms/serializers/permission.py:40 msgid "Assets amount" msgstr "资产数量" @@ -2353,7 +2274,7 @@ msgid "" msgstr "" #: assets/serializers/platform.py:199 -msgid "Assets can be connected using a domain gateway" +msgid "Assets can be connected using a zone gateway" msgstr "" #: assets/serializers/platform.py:201 @@ -2456,7 +2377,6 @@ msgstr "删除目录" #: audits/const.py:14 audits/const.py:25 #: authentication/templates/authentication/_access_key_modal.html:65 -#: rbac/tree.py:240 msgid "Delete" msgstr "删除" @@ -2480,7 +2400,7 @@ msgstr "下载" msgid "Rename dir" msgstr "映射目录" -#: audits/const.py:23 rbac/tree.py:238 terminal/api/session/session.py:277 +#: audits/const.py:23 terminal/api/session/session.py:277 #: terminal/templates/terminal/_msg_command_warning.html:18 #: terminal/templates/terminal/_msg_session_sharing.html:10 msgid "View" @@ -2488,7 +2408,6 @@ msgstr "查看" #: audits/const.py:26 #: authentication/templates/authentication/_access_key_modal.html:22 -#: rbac/tree.py:237 msgid "Create" msgstr "创建" @@ -2640,7 +2559,7 @@ msgstr "登录 IP" #: audits/models.py:200 audits/serializers.py:52 #: authentication/templates/authentication/_mfa_confirm_modal.html:14 -#: users/forms/profile.py:63 users/models/user.py:897 +#: users/forms/profile.py:63 users/models/user.py:899 #: users/serializers/profile.py:102 msgid "MFA" msgstr "MFA" @@ -2651,10 +2570,9 @@ msgstr "MFA" msgid "Login Date" msgstr "登录日期" -#: audits/models.py:212 audits/models.py:266 audits/serializers.py:70 -#: audits/serializers.py:184 -msgid "Authentication backend" -msgstr "认证方式" +#: audits/models.py:212 audits/models.py:266 +msgid "Auth backend" +msgstr "认证令牌" #: audits/models.py:256 msgid "User login log" @@ -2683,6 +2601,10 @@ msgstr "创建者" msgid "Reason display" msgstr "原因描述" +#: audits/serializers.py:70 audits/serializers.py:184 +msgid "Auth backend display" +msgstr "没有匹配到认证后端" + #: audits/serializers.py:134 #, python-format msgid "%s %s this resource" @@ -2691,7 +2613,7 @@ msgstr "用户 %s %s 了当前资源" #: audits/serializers.py:172 authentication/models/connection_token.py:47 #: authentication/models/temp_token.py:13 perms/models/asset_permission.py:80 #: tickets/models/ticket/apply_application.py:31 -#: tickets/models/ticket/apply_asset.py:20 users/models/user.py:915 +#: tickets/models/ticket/apply_asset.py:20 users/models/user.py:917 msgid "Date expired" msgstr "失效日期" @@ -2725,28 +2647,28 @@ msgstr "认证令牌" #: audits/signal_handlers/login_log.py:37 authentication/notifications.py:73 #: authentication/views/login.py:77 notifications/backends/__init__.py:11 #: settings/serializers/auth/wecom.py:10 settings/serializers/auth/wecom.py:15 -#: users/models/user.py:758 users/models/user.py:930 +#: users/models/user.py:760 users/models/user.py:932 msgid "WeCom" msgstr "企业微信" #: audits/signal_handlers/login_log.py:38 authentication/views/feishu.py:105 #: authentication/views/login.py:89 notifications/backends/__init__.py:14 -#: settings/serializers/auth/feishu.py:10 users/models/user.py:760 -#: users/models/user.py:932 +#: settings/serializers/auth/feishu.py:10 users/models/user.py:762 +#: users/models/user.py:934 msgid "FeiShu" msgstr "飞书" #: audits/signal_handlers/login_log.py:40 authentication/views/login.py:101 #: authentication/views/slack.py:87 notifications/backends/__init__.py:16 #: settings/serializers/auth/slack.py:10 settings/serializers/auth/slack.py:12 -#: users/models/user.py:762 users/models/user.py:934 +#: users/models/user.py:764 users/models/user.py:936 msgid "Slack" msgstr "" #: audits/signal_handlers/login_log.py:41 authentication/views/dingtalk.py:161 #: authentication/views/login.py:83 notifications/backends/__init__.py:12 -#: settings/serializers/auth/dingtalk.py:10 users/models/user.py:759 -#: users/models/user.py:931 +#: settings/serializers/auth/dingtalk.py:10 users/models/user.py:761 +#: users/models/user.py:933 msgid "DingTalk" msgstr "钉钉" @@ -2773,7 +2695,7 @@ msgstr "上传 FTP 文件到外部存储" msgid "Access keys can be created at most 10" msgstr "最多可以创建10个访问密钥" -#: authentication/api/common.py:34 settings/serializers/auth/sms.py:117 +#: authentication/api/common.py:34 settings/serializers/auth/sms.py:122 #, python-format msgid "The value in the parameter must contain %s" msgstr "参数中的值必须包含 %s" @@ -3138,7 +3060,7 @@ msgstr "短信验证码校验失败" #: authentication/mfa/sms.py:12 authentication/serializers/password_mfa.py:16 #: authentication/serializers/password_mfa.py:24 -#: settings/serializers/auth/sms.py:17 settings/serializers/auth/sms.py:32 +#: settings/serializers/auth/sms.py:18 settings/serializers/auth/sms.py:36 #: users/forms/profile.py:103 users/forms/profile.py:108 #: users/templates/users/forgot_password.html:157 #: users/views/profile/reset.py:100 @@ -3198,6 +3120,15 @@ msgstr "自定义用户名" msgid "Input secret" msgstr "自定义密码" +#: authentication/models/connection_token.py:41 +#: authentication/serializers/connect_token_secret.py:114 +#: settings/serializers/msg.py:29 terminal/models/applet/applet.py:42 +#: terminal/models/virtualapp/virtualapp.py:24 +#: terminal/serializers/session.py:21 terminal/serializers/session.py:48 +#: terminal/serializers/storage.py:71 +msgid "Protocol" +msgstr "协议" + #: authentication/models/connection_token.py:42 msgid "Connect method" msgstr "连接方式" @@ -3296,6 +3227,11 @@ msgstr "选项" msgid "Component" msgstr "组件" +#: authentication/serializers/connect_token_secret.py:136 +#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:327 +msgid "Domain" +msgstr "网域" + #: authentication/serializers/connect_token_secret.py:138 msgid "Expired now" msgstr "立刻过期" @@ -3333,7 +3269,7 @@ msgstr "动作" #: authentication/serializers/connection_token.py:42 #: perms/serializers/permission.py:44 perms/serializers/permission.py:65 -#: users/serializers/user.py:101 users/serializers/user.py:184 +#: users/serializers/user.py:103 users/serializers/user.py:192 msgid "Is expired" msgstr "已过期" @@ -3347,8 +3283,8 @@ msgid "Access IP" msgstr "IP 白名单" #: authentication/serializers/token.py:92 perms/serializers/permission.py:43 -#: perms/serializers/permission.py:66 users/serializers/user.py:102 -#: users/serializers/user.py:181 +#: perms/serializers/permission.py:66 users/serializers/user.py:104 +#: users/serializers/user.py:189 msgid "Is valid" msgstr "是否有效" @@ -3843,7 +3779,7 @@ msgstr "忽略的" msgid "discard time" msgstr "忽略时间" -#: common/db/models.py:33 users/models/user.py:918 +#: common/db/models.py:33 users/models/user.py:920 msgid "Updated by" msgstr "最后更新者" @@ -4268,11 +4204,11 @@ msgstr "空白" msgid "VCS" msgstr "VCS" -#: ops/const.py:38 ops/models/adhoc.py:44 +#: ops/const.py:38 ops/models/adhoc.py:44 settings/serializers/feature.py:134 msgid "Adhoc" msgstr "命令" -#: ops/const.py:39 ops/models/job.py:149 +#: ops/const.py:39 ops/models/job.py:149 ops/models/playbook.py:88 msgid "Playbook" msgstr "Playbook" @@ -4288,6 +4224,10 @@ msgstr "仅限特权账号" msgid "Privileged First" msgstr "特权账号优先" +#: ops/const.py:50 ops/const.py:61 +msgid "Shell" +msgstr "Shell" + #: ops/const.py:51 ops/const.py:62 msgid "Powershell" msgstr "PowerShell" @@ -4332,17 +4272,17 @@ msgstr "超时" msgid "no valid program entry found." msgstr "没有可用程序入口" -#: ops/mixin.py:23 ops/mixin.py:102 settings/serializers/auth/ldap.py:66 +#: ops/mixin.py:23 ops/mixin.py:102 settings/serializers/auth/ldap.py:74 msgid "Periodic run" msgstr "周期执行" #: ops/mixin.py:25 ops/mixin.py:88 ops/mixin.py:108 -#: settings/serializers/auth/ldap.py:73 +#: settings/serializers/auth/ldap.py:81 msgid "Interval" msgstr "间隔" #: ops/mixin.py:28 ops/mixin.py:86 ops/mixin.py:105 -#: settings/serializers/auth/ldap.py:70 +#: settings/serializers/auth/ldap.py:78 msgid "Crontab" msgstr "Crontab" @@ -4624,7 +4564,7 @@ msgstr "组织管理" #: orgs/mixins/models.py:57 orgs/mixins/serializers.py:25 orgs/models.py:91 #: rbac/const.py:7 rbac/models/rolebinding.py:56 -#: rbac/serializers/rolebinding.py:44 settings/serializers/auth/ldap.py:63 +#: rbac/serializers/rolebinding.py:44 settings/serializers/auth/ldap.py:71 #: terminal/templates/terminal/_msg_command_warning.html:21 #: terminal/templates/terminal/_msg_session_sharing.html:14 #: tickets/models/ticket/general.py:300 tickets/serializers/ticket/ticket.py:60 @@ -4770,7 +4710,7 @@ msgid "today" msgstr "今天" #: perms/notifications.py:12 perms/notifications.py:44 -#: settings/serializers/feature.py:118 +#: settings/serializers/feature.py:125 msgid "day" msgstr "天" @@ -4790,7 +4730,7 @@ msgstr "资产授权规则将要过期" msgid "asset permissions of organization {}" msgstr "组织 ({}) 的资产授权" -#: perms/serializers/permission.py:34 users/serializers/user.py:173 +#: perms/serializers/permission.py:34 users/serializers/user.py:181 msgid "Groups" msgstr "用户组" @@ -4902,7 +4842,7 @@ msgid "Scope" msgstr "范围" #: rbac/models/role.py:46 rbac/models/rolebinding.py:52 -#: users/models/user.py:884 +#: users/models/user.py:886 msgid "Role" msgstr "角色" @@ -4993,7 +4933,7 @@ msgstr "资产改密" msgid "Terminal setting" msgstr "终端设置" -#: rbac/tree.py:55 settings/serializers/feature.py:127 +#: rbac/tree.py:55 msgid "Job center" msgstr "任务中心" @@ -5019,8 +4959,8 @@ msgstr "组织管理" msgid "Ticket comment" msgstr "工单评论" -#: rbac/tree.py:130 settings/serializers/feature.py:109 -#: tickets/models/ticket/general.py:305 +#: rbac/tree.py:130 settings/serializers/feature.py:112 +#: settings/serializers/feature.py:114 tickets/models/ticket/general.py:305 msgid "Ticket" msgstr "工单" @@ -5032,6 +4972,28 @@ msgstr "一般设置" msgid "View permission tree" msgstr "查看授权树" +#: rbac/tree.py:237 +#, fuzzy +#| msgid "Create" +msgid "create" +msgstr "创建" + +#: rbac/tree.py:238 terminal/templates/terminal/_msg_command_alert.html:10 +msgid "view" +msgstr "查看" + +#: rbac/tree.py:239 +#, fuzzy +#| msgid "Update" +msgid "update" +msgstr "更新" + +#: rbac/tree.py:240 +#, fuzzy +#| msgid "Delete" +msgid "delete" +msgstr "删除" + #: settings/api/chat.py:40 msgid "Chat AI is not enabled" msgstr "聊天 AI 没有开启" @@ -5195,20 +5157,43 @@ msgstr "SSO 令牌认证" msgid "Passkey Auth" msgstr "Passkey 认证" -#: settings/serializers/auth/base.py:27 -msgid "Forgot Password URL" -msgstr "忘记密码 URL" +#: settings/serializers/auth/base.py:26 +msgid "Email suffix" +msgstr "邮件后缀" -#: settings/serializers/auth/base.py:30 -msgid "Login redirection prompt" +#: settings/serializers/auth/base.py:28 +msgid "" +"After third-party user authentication is successful, if the third-party " +"authentication service platform does not return the user's email " +"information, the system will automatically create the user using this email " +"suffix" +msgstr "" + +#: settings/serializers/auth/base.py:35 +msgid "Forgot Password" +msgstr "忘记密码" + +#: settings/serializers/auth/base.py:36 +msgid "The URL for Forgotten Password on the user login page" +msgstr "" + +#: settings/serializers/auth/base.py:39 +msgid "Login redirection" msgstr "启用登录跳转提示" +#: settings/serializers/auth/base.py:41 +msgid "" +"Should an flash page be displayed before the user is redirected to third-" +"party authentication when the administrator enables third-party redirect " +"authentication" +msgstr "" + #: settings/serializers/auth/cas.py:10 settings/serializers/auth/cas.py:12 msgid "CAS" msgstr "CAS" #: settings/serializers/auth/cas.py:13 settings/serializers/auth/ldap.py:42 -#: settings/serializers/auth/oidc.py:54 +#: settings/serializers/auth/oidc.py:60 msgid "Server" msgstr "LDAP 地址" @@ -5216,31 +5201,43 @@ msgstr "LDAP 地址" msgid "Proxy Server" msgstr "回调地址" -#: settings/serializers/auth/cas.py:18 settings/serializers/auth/oauth2.py:54 +#: settings/serializers/auth/cas.py:19 settings/serializers/auth/oauth2.py:54 #: settings/serializers/auth/saml2.py:33 msgid "Logout completely" msgstr "同步注销" -#: settings/serializers/auth/cas.py:23 +#: settings/serializers/auth/cas.py:20 +msgid "When the user signs out, they also be logged out from the CAS Server" +msgstr "" + +#: settings/serializers/auth/cas.py:26 msgid "Username attr" msgstr "用户名属性" -#: settings/serializers/auth/cas.py:26 +#: settings/serializers/auth/cas.py:29 msgid "Enable attributes map" msgstr "启用属性映射" -#: settings/serializers/auth/cas.py:28 settings/serializers/auth/ldap.py:58 -#: settings/serializers/auth/oauth2.py:56 settings/serializers/auth/oidc.py:37 +#: settings/serializers/auth/cas.py:32 settings/serializers/auth/ldap.py:64 +#: settings/serializers/auth/oauth2.py:56 settings/serializers/auth/oidc.py:38 #: settings/serializers/auth/saml2.py:32 msgid "User attribute" msgstr "映射属性" -#: settings/serializers/auth/cas.py:30 +#: settings/serializers/auth/cas.py:34 +msgid "" +"User attribute mapping, where the `key` is the CAS service user attribute " +"name and the `value` is the JumpServer user attribute name" +msgstr "" + +#: settings/serializers/auth/cas.py:39 msgid "Create user" msgstr "创建用户(如果不存在)" -#: settings/serializers/auth/cas.py:31 -msgid "Automatically create a new user if not found." +#: settings/serializers/auth/cas.py:41 +msgid "" +"After successful user authentication, if the user does not exist, " +"automatically create the user" msgstr "" #: settings/serializers/auth/dingtalk.py:15 @@ -5259,58 +5256,65 @@ msgstr "飞书 认证" msgid "Enable Lark Auth" msgstr "Lark 认证" -#: settings/serializers/auth/ldap.py:39 settings/serializers/auth/ldap.py:93 +#: settings/serializers/auth/ldap.py:39 settings/serializers/auth/ldap.py:103 msgid "LDAP" msgstr "LDAP" #: settings/serializers/auth/ldap.py:43 -msgid "eg: ldap://localhost:389" -msgstr "如: ldap://localhost:389" +msgid "LDAP server URI" +msgstr "LDAP 服务域名" -#: settings/serializers/auth/ldap.py:45 +#: settings/serializers/auth/ldap.py:46 msgid "Bind DN" msgstr "绑定 DN" -#: settings/serializers/auth/ldap.py:50 -msgid "User OU" -msgstr "用户 OU" +#: settings/serializers/auth/ldap.py:47 +msgid "Binding Distinguished Name" +msgstr "" #: settings/serializers/auth/ldap.py:51 -msgid "Use | split multi OUs" -msgstr "多个 OU 使用 | 分割" +msgid "Binding password" +msgstr "原来密码" #: settings/serializers/auth/ldap.py:54 -msgid "User search filter" +msgid "Search OU" +msgstr "系统架构" + +#: settings/serializers/auth/ldap.py:56 +msgid "" +"User Search Base, if there are multiple OUs, you can separate them with the " +"`|` symbol" +msgstr "" + +#: settings/serializers/auth/ldap.py:60 +msgid "Search filter" msgstr "用户过滤器" -#: settings/serializers/auth/ldap.py:55 -#, python-format -msgid "Choice may be (cn|uid|sAMAccountName)=%(user)s)" +#: settings/serializers/auth/ldap.py:61 +msgid "Selection could include (cn|uid|sAMAccountName=%(user)s)" msgstr "可能的选项是(cn或uid或sAMAccountName=%(user)s)" -#: settings/serializers/auth/ldap.py:59 +#: settings/serializers/auth/ldap.py:66 msgid "" -"User attr map present how to map LDAP user attr to jumpserver, username,name," -"email is jumpserver attr" +"User attribute mapping, where the `key` is the JumpServer user attribute " +"name and the `value` is the LDAP service user attribute name" msgstr "" -"用户属性映射代表怎样将LDAP中用户属性映射到jumpserver用户上,username, name," -"email 是jumpserver的用户需要属性" -#: settings/serializers/auth/ldap.py:77 +#: settings/serializers/auth/ldap.py:85 msgid "Connect timeout (s)" msgstr "连接超时时间 (秒)" -#: settings/serializers/auth/ldap.py:82 +#: settings/serializers/auth/ldap.py:90 msgid "User DN cache timeout (s)" msgstr "User DN 缓存超时时间 (秒)" -#: settings/serializers/auth/ldap.py:84 +#: settings/serializers/auth/ldap.py:92 msgid "" "Caching the User DN obtained during user login authentication can " "effectivelyimprove the speed of user authentication., 0 means no cache" msgstr "对用户登录认证时查询出的 User DN 进行缓存,可以有效提高用户认证的速度" -#: settings/serializers/auth/ldap.py:88 +#: settings/serializers/auth/ldap.py:97 msgid "Search paged size (piece)" msgstr "搜索分页数量 (条)" @@ -5327,42 +5331,42 @@ msgstr "图标" msgid "Service provider" msgstr "服务提供商" -#: settings/serializers/auth/oauth2.py:30 settings/serializers/auth/oidc.py:19 +#: settings/serializers/auth/oauth2.py:30 settings/serializers/auth/oidc.py:20 msgid "Client Id" msgstr "客户端 ID" -#: settings/serializers/auth/oauth2.py:33 settings/serializers/auth/oidc.py:22 +#: settings/serializers/auth/oauth2.py:33 settings/serializers/auth/oidc.py:23 #: xpack/plugins/cloud/serializers/account_attrs.py:38 msgid "Client Secret" msgstr "客户端密钥" -#: settings/serializers/auth/oauth2.py:39 settings/serializers/auth/oidc.py:68 +#: settings/serializers/auth/oauth2.py:39 settings/serializers/auth/oidc.py:76 msgid "Authorization endpoint" msgstr "授权端点地址" -#: settings/serializers/auth/oauth2.py:42 settings/serializers/auth/oidc.py:71 +#: settings/serializers/auth/oauth2.py:42 settings/serializers/auth/oidc.py:79 msgid "Token endpoint" msgstr "token 端点地址" -#: settings/serializers/auth/oauth2.py:45 settings/serializers/auth/oidc.py:30 -#: settings/serializers/auth/sms.py:106 +#: settings/serializers/auth/oauth2.py:45 settings/serializers/auth/oidc.py:31 +#: settings/serializers/auth/sms.py:111 msgid "Request method" msgstr "客户端认证方式" -#: settings/serializers/auth/oauth2.py:49 settings/serializers/auth/oidc.py:77 +#: settings/serializers/auth/oauth2.py:49 settings/serializers/auth/oidc.py:85 msgid "Userinfo endpoint" msgstr "用户信息端点地址" -#: settings/serializers/auth/oauth2.py:52 settings/serializers/auth/oidc.py:80 +#: settings/serializers/auth/oauth2.py:52 settings/serializers/auth/oidc.py:88 msgid "End session endpoint" msgstr "注销会话端点地址" -#: settings/serializers/auth/oauth2.py:59 settings/serializers/auth/oidc.py:98 +#: settings/serializers/auth/oauth2.py:59 settings/serializers/auth/oidc.py:112 #: settings/serializers/auth/saml2.py:34 msgid "Always update user" msgstr "总是更新用户信息" -#: settings/serializers/auth/oidc.py:12 settings/serializers/auth/oidc.py:63 +#: settings/serializers/auth/oidc.py:12 settings/serializers/auth/oidc.py:70 msgid "OIDC" msgstr "启用 OIDC 认证" @@ -5370,71 +5374,83 @@ msgstr "启用 OIDC 认证" msgid "Base site URL" msgstr "JumpServer 地址" -#: settings/serializers/auth/oidc.py:32 +#: settings/serializers/auth/oidc.py:17 +msgid "The current site's URL is used to construct the callback address" +msgstr "" + +#: settings/serializers/auth/oidc.py:33 msgid "Share session" msgstr "共享会话" -#: settings/serializers/auth/oidc.py:34 +#: settings/serializers/auth/oidc.py:35 msgid "Ignore SSL verification" msgstr "忽略 SSL 证书验证" -#: settings/serializers/auth/oidc.py:38 +#: settings/serializers/auth/oidc.py:40 msgid "" -"User attr map present how to map OpenID user attr to jumpserver, username," -"name,email is jumpserver attr" +"User attribute mapping, where the `key` is the JumpServer user attribute " +"name and the `value` is the OIDC service user attribute name" msgstr "" -"用户属性映射代表怎样将OpenID中用户属性映射到jumpserver用户上,username, name," -"email 是jumpserver的用户需要属性" -#: settings/serializers/auth/oidc.py:41 +#: settings/serializers/auth/oidc.py:44 msgid "Enable PKCE" msgstr "启用 PKCE" -#: settings/serializers/auth/oidc.py:43 +#: settings/serializers/auth/oidc.py:46 msgid "Code challenge method" msgstr "验证校验码方式" -#: settings/serializers/auth/oidc.py:51 +#: settings/serializers/auth/oidc.py:54 msgid "Use Keycloak" msgstr "使用 Keycloak" -#: settings/serializers/auth/oidc.py:57 +#: settings/serializers/auth/oidc.py:56 +msgid "" +"Use Keycloak as the OpenID Connect server, or use standard OpenID Connect " +"Protocol" +msgstr "" + +#: settings/serializers/auth/oidc.py:63 msgid "Realm name" msgstr "域" -#: settings/serializers/auth/oidc.py:65 +#: settings/serializers/auth/oidc.py:70 +msgid "OpenID Connect" +msgstr "连接" + +#: settings/serializers/auth/oidc.py:73 msgid "Provider endpoint" msgstr "端点地址" -#: settings/serializers/auth/oidc.py:74 +#: settings/serializers/auth/oidc.py:82 msgid "JWKS endpoint" msgstr "jwks 端点地址" -#: settings/serializers/auth/oidc.py:83 +#: settings/serializers/auth/oidc.py:91 msgid "Signature algorithm" msgstr "签名算法" -#: settings/serializers/auth/oidc.py:86 +#: settings/serializers/auth/oidc.py:94 msgid "Signing key" msgstr "签名 Key" -#: settings/serializers/auth/oidc.py:88 +#: settings/serializers/auth/oidc.py:97 msgid "Scopes" msgstr "连接范围" -#: settings/serializers/auth/oidc.py:90 +#: settings/serializers/auth/oidc.py:100 msgid "ID Token max age (s)" msgstr "令牌有效时间 (秒)" -#: settings/serializers/auth/oidc.py:93 +#: settings/serializers/auth/oidc.py:103 msgid "ID Token include claims" msgstr "声明" -#: settings/serializers/auth/oidc.py:95 +#: settings/serializers/auth/oidc.py:106 msgid "Use state" msgstr "使用状态" -#: settings/serializers/auth/oidc.py:96 +#: settings/serializers/auth/oidc.py:109 msgid "Use nonce" msgstr "临时使用" @@ -5491,54 +5507,67 @@ msgstr "SP 密钥" msgid "SP cert" msgstr "SP 证书" -#: settings/serializers/auth/sms.py:19 -msgid "SMS provider / Protocol" -msgstr "短信服务商 / 协议" +#: settings/serializers/auth/sms.py:18 +msgid "Enable Short Message Service (SMS)" +msgstr "" + +#: settings/serializers/auth/sms.py:21 xpack/plugins/cloud/models.py:34 +msgid "Provider" +msgstr "云服务商" #: settings/serializers/auth/sms.py:22 -msgid "SMS code length" +msgid "Short Message Service (SMS) provider or protocol" +msgstr "" + +#: settings/serializers/auth/sms.py:25 +msgid "Code length" msgstr "验证码长度" -#: settings/serializers/auth/sms.py:27 settings/serializers/auth/sms.py:49 -#: settings/serializers/auth/sms.py:57 settings/serializers/auth/sms.py:66 -#: settings/serializers/auth/sms.py:77 settings/serializers/msg.py:83 +#: settings/serializers/auth/sms.py:26 +msgid "Length of the sent verification code" +msgstr "发送验证码" + +#: settings/serializers/auth/sms.py:31 settings/serializers/auth/sms.py:54 +#: settings/serializers/auth/sms.py:62 settings/serializers/auth/sms.py:71 +#: settings/serializers/auth/sms.py:82 settings/serializers/msg.py:81 msgid "Signature" msgstr "签名" -#: settings/serializers/auth/sms.py:28 settings/serializers/auth/sms.py:50 -#: settings/serializers/auth/sms.py:58 settings/serializers/auth/sms.py:67 +#: settings/serializers/auth/sms.py:32 settings/serializers/auth/sms.py:55 +#: settings/serializers/auth/sms.py:63 settings/serializers/auth/sms.py:72 msgid "Template code" msgstr "模板" -#: settings/serializers/auth/sms.py:35 -msgid "Test phone" -msgstr "测试手机号" +#: settings/serializers/auth/sms.py:40 users/models/user.py:896 +#: users/serializers/user.py:114 +msgid "Phone" +msgstr "手机" -#: settings/serializers/auth/sms.py:64 +#: settings/serializers/auth/sms.py:69 msgid "App Access Address" msgstr "应用地址" -#: settings/serializers/auth/sms.py:65 +#: settings/serializers/auth/sms.py:70 msgid "Signature channel number" msgstr "签名通道号" -#: settings/serializers/auth/sms.py:73 +#: settings/serializers/auth/sms.py:78 msgid "Enterprise code" msgstr "企业代码(SP id)" -#: settings/serializers/auth/sms.py:74 +#: settings/serializers/auth/sms.py:79 msgid "Shared secret" msgstr "共享密码(Shared secret)" -#: settings/serializers/auth/sms.py:75 +#: settings/serializers/auth/sms.py:80 msgid "Original number" msgstr "原始号码(Src id)" -#: settings/serializers/auth/sms.py:76 +#: settings/serializers/auth/sms.py:81 msgid "Business type" msgstr "业务类型(Service id)" -#: settings/serializers/auth/sms.py:80 +#: settings/serializers/auth/sms.py:85 #, python-brace-format msgid "" "Template need contain {code} and Signature + template length does not exceed " @@ -5548,16 +5577,16 @@ msgstr "" "模板需要包含 {code},并且模板+签名长度不能超过67个字。例如, 您的验证码是 " "{code}, 有效期为5分钟。请不要泄露给其他人。" -#: settings/serializers/auth/sms.py:89 +#: settings/serializers/auth/sms.py:94 #, python-brace-format msgid "The template needs to contain {code}" msgstr "模板需要包含 {code}" -#: settings/serializers/auth/sms.py:92 +#: settings/serializers/auth/sms.py:97 msgid "Signature + Template must not exceed 65 words" msgstr "模板+签名不能超过65个字" -#: settings/serializers/auth/sms.py:101 +#: settings/serializers/auth/sms.py:106 msgid "URL" msgstr "URL" @@ -5584,11 +5613,9 @@ msgstr "当前站点 URL" #: settings/serializers/basic.py:13 msgid "" -"External URL, email links or other system callbacks are used to access it, " -"eg: http://dev.jumpserver.org:8080" +"Site URL is the externally accessible address of the current product service " +"and is usually used in links in system emails" msgstr "" -"外部可访问的 URL, 用于邮件链接或其它系统回调, 例如: http://dev.jumpserver." -"org:8080" #: settings/serializers/basic.py:18 msgid "User guide url" @@ -5607,20 +5634,24 @@ msgid "The name of global organization to display" msgstr "全局组织的显示名称,默认为 全局组织" #: settings/serializers/basic.py:26 -msgid "Help Docs URL" -msgstr "文档链接" +msgid "Document URL" +msgstr "" #: settings/serializers/basic.py:27 -msgid "default: http://docs.jumpserver.org" -msgstr "默认: http://dev.jumpserver.org:8080" +msgid "" +"Document URL refers to the address in the top navigation bar Help - Document" +msgstr "" #: settings/serializers/basic.py:30 -msgid "Help Support URL" +#, fuzzy +#| msgid "Help Support URL" +msgid "Support URL" msgstr "支持链接" #: settings/serializers/basic.py:31 -msgid "default: http://www.jumpserver.org/support/" -msgstr "默认: http://www.jumpserver.org/support/" +msgid "" +"Support URL refers to the address in the top navigation bar Help - Support" +msgstr "" #: settings/serializers/basic.py:44 msgid "Organization name already exists" @@ -5675,7 +5706,7 @@ msgid "" msgstr "" "会话、录像,命令记录超过该时长将会被清除 (影响数据库存储,OSS 等不受影响)" -#: settings/serializers/feature.py:18 settings/serializers/msg.py:68 +#: settings/serializers/feature.py:18 settings/serializers/msg.py:66 msgid "Subject" msgstr "主题" @@ -5697,78 +5728,95 @@ msgid "Mount Point" msgstr "挂载点" #: settings/serializers/feature.py:60 -msgid "Historical accounts retained count" -msgstr "历史账号保留数量" +msgid "Record limit" +msgstr "" #: settings/serializers/feature.py:62 msgid "" -"If the specific value is less than 999, the system will automatically " -"perform a task every night: check and delete historical accounts that exceed " -"the predetermined number. If the value reaches or exceeds 999, no historical " -"account deletion will be performed." +"If the specific value is less than 999 (default), the system will " +"automatically perform a task every night: check and delete historical " +"accounts that exceed the predetermined number. If the value reaches or " +"exceeds 999 (default), no historical account deletion will be performed" msgstr "" "若特定数值小于999,系统将在每日晚间自动执行任务:检查并删除超出预定数量的历史" "账号。如果该数值达到或超过999,则不进行任何历史账号的删除操作。" -#: settings/serializers/feature.py:71 settings/serializers/feature.py:75 +#: settings/serializers/feature.py:72 settings/serializers/feature.py:76 msgid "Chat AI" msgstr "聊天 AI" -#: settings/serializers/feature.py:78 +#: settings/serializers/feature.py:79 #, fuzzy -#| msgid "Base URL" -msgid "Base Url" -msgstr "基本地址" +#| msgid "Base site URL" +msgid "Base URL" +msgstr "JumpServer 地址" -#: settings/serializers/feature.py:81 templates/_header_bar.html:96 +#: settings/serializers/feature.py:80 +msgid "The base URL of the GPT service. For example: https://api.openai.com/v1" +msgstr "" + +#: settings/serializers/feature.py:83 templates/_header_bar.html:96 msgid "API Key" msgstr "API Key" #: settings/serializers/feature.py:87 +msgid "" +"The proxy server address of the GPT service. For example: http://ip:port" +msgstr "" + +#: settings/serializers/feature.py:90 msgid "GPT Model" msgstr "GPT 模型" -#: settings/serializers/feature.py:111 -#, fuzzy -#| msgid "Enable attributes map" -msgid "Enable tickets" -msgstr "启用属性映射" +#: settings/serializers/feature.py:116 +msgid "Approval without login" +msgstr "" -#: settings/serializers/feature.py:112 -#, fuzzy -#| msgid "Direct approval" -msgid "No login approval" -msgstr "直接批准" +#: settings/serializers/feature.py:117 +msgid "Allow direct approval ticket without login" +msgstr "" -#: settings/serializers/feature.py:115 -msgid "Default period" -msgstr "默认工单授权时间" +#: settings/serializers/feature.py:121 +msgid "Period" +msgstr "时段" -#: settings/serializers/feature.py:118 +#: settings/serializers/feature.py:122 +msgid "" +"The default authorization time period when applying for assets via a ticket" +msgstr "" + +#: settings/serializers/feature.py:125 msgid "hour" msgstr "时" -#: settings/serializers/feature.py:119 -msgid "Default unit" -msgstr "默认工单授权时间单位" +#: settings/serializers/feature.py:126 +msgid "Unit" +msgstr "" -#: settings/serializers/feature.py:124 +#: settings/serializers/feature.py:126 +msgid "The unit of period" +msgstr "执行周期" + +#: settings/serializers/feature.py:131 msgid "Feature" msgstr "功能" -#: settings/serializers/feature.py:128 -msgid "Allow user run batch command or not using ansible" -msgstr "是否允许用户使用 ansible 执行批量命令" +#: settings/serializers/feature.py:135 +msgid "" +"Allow users to execute batch commands in the Workbench - Job Center - Adhoc" +msgstr "" -#: settings/serializers/feature.py:132 +#: settings/serializers/feature.py:139 msgid "Command blacklist" msgstr "作业中心命令黑名单" -#: settings/serializers/feature.py:133 -msgid "Commands that are not allowed execute." -msgstr "不允许执行的命令" +#: settings/serializers/feature.py:140 +#, fuzzy +#| msgid "Command blacklist" +msgid "Command blacklist in Adhoc" +msgstr "作业中心命令黑名单" -#: settings/serializers/feature.py:138 settings/serializers/feature.py:141 +#: settings/serializers/feature.py:145 #: terminal/models/virtualapp/provider.py:17 #: terminal/models/virtualapp/virtualapp.py:36 #: terminal/models/virtualapp/virtualapp.py:97 @@ -5776,6 +5824,16 @@ msgstr "不允许执行的命令" msgid "Virtual app" msgstr "虚拟应用" +#: settings/serializers/feature.py:148 +msgid "vApp" +msgstr "" + +#: settings/serializers/feature.py:150 +msgid "" +"Virtual applications, you can use the Linux operating system as an " +"application server in remote applications." +msgstr "" + #: settings/serializers/msg.py:25 msgid "SMTP" msgstr "SMTP" @@ -5784,66 +5842,64 @@ msgstr "SMTP" msgid "EXCHANGE" msgstr "" -#: settings/serializers/msg.py:36 -msgid "Tips: Some provider use token except password" -msgstr "提示:一些邮件提供商需要输入的是授权码" +#: settings/serializers/msg.py:34 +msgid "The user to be used for email server authentication" +msgstr "SSO认证时,如果没有返回邮件地址,将使用该后缀" -#: settings/serializers/msg.py:39 -msgid "Sender" -msgstr "发件人" +#: settings/serializers/msg.py:38 +msgid "" +"Password to use for the email server. It is used in conjunction with `User` " +"when authenticating to the email server" +msgstr "" -#: settings/serializers/msg.py:40 -msgid "Tips: Send mail account, default SMTP account as the send account" -msgstr "提示:发送邮件账号,默认使用 SMTP 账号作为发送账号" +#: settings/serializers/msg.py:41 +msgid "From" +msgstr "" -#: settings/serializers/msg.py:43 -msgid "Test recipient" -msgstr "测试收件人" +#: settings/serializers/msg.py:42 +msgid "Sender email address (default to using the `User`)" +msgstr "" -#: settings/serializers/msg.py:44 -msgid "Tips: Used only as a test mail recipient" -msgstr "提示:仅用来作为测试邮件收件人" +#: settings/serializers/msg.py:46 +msgid "The recipient is used for testing the email server's connectivity" +msgstr "" -#: settings/serializers/msg.py:48 -msgid "If SMTP port is 465, may be select" -msgstr "如果SMTP端口是465,通常需要启用 SSL" +#: settings/serializers/msg.py:50 +msgid "" +"Whether to use an implicit TLS (secure) connection when talking to the SMTP " +"server. In most email documentation this type of TLS connection is referred " +"to as SSL. It is generally used on port 465" +msgstr "" -#: settings/serializers/msg.py:51 +#: settings/serializers/msg.py:53 msgid "Use TLS" msgstr "使用 TLS" -#: settings/serializers/msg.py:52 -msgid "If SMTP port is 587, may be select" -msgstr "如果SMTP端口是587,通常需要启用 TLS" +#: settings/serializers/msg.py:54 +msgid "" +"Whether to use a TLS (secure) connection when talking to the SMTP server. " +"This is used for explicit TLS connections, generally on port 587" +msgstr "" -#: settings/serializers/msg.py:55 +#: settings/serializers/msg.py:62 msgid "Subject prefix" msgstr "主题前缀" -#: settings/serializers/msg.py:58 -msgid "Email suffix" -msgstr "邮件后缀" - -#: settings/serializers/msg.py:59 -msgid "" -"This is used by default if no email is returned during SSO authentication" -msgstr "SSO认证时,如果没有返回邮件地址,将使用该后缀" - -#: settings/serializers/msg.py:69 +#: settings/serializers/msg.py:67 msgid "" "Tips: When creating a user, send the subject of the email (eg:Create account " "successfully)" msgstr "提示: 创建用户时,发送设置密码邮件的主题 (例如: 创建用户成功)" -#: settings/serializers/msg.py:73 +#: settings/serializers/msg.py:71 msgid "Honorific" msgstr "邮件问候语" -#: settings/serializers/msg.py:74 +#: settings/serializers/msg.py:72 msgid "Tips: When creating a user, send the honorific of the email (eg:Hello)" msgstr "提示: 创建用户时,发送设置密码邮件的敬语 (例如: 你好)" -#: settings/serializers/msg.py:80 +#: settings/serializers/msg.py:78 #, python-brace-format msgid "" "Tips: When creating a user, send the content of the email, support " @@ -5851,7 +5907,7 @@ msgid "" msgstr "" "提示: 创建用户时,发送设置密码邮件的内容, 支持 {username} {name} {email} 标签" -#: settings/serializers/msg.py:84 +#: settings/serializers/msg.py:82 msgid "Tips: Email signature (eg:jumpserver)" msgstr "邮件署名 (如:jumpserver)" @@ -6900,8 +6956,10 @@ msgid "Can download session replay" msgstr "可以下载会话录像" #: terminal/models/session/session.py:35 -msgid "Account id" -msgstr "账号 ID" +#, fuzzy +#| msgid "Account " +msgid "Account ID" +msgstr "账号" #: terminal/models/session/session.py:37 terminal/models/session/sharing.py:118 msgid "Login from" @@ -7300,11 +7358,15 @@ msgstr "端点后缀" msgid "HOST" msgstr "主机" -#: terminal/serializers/storage.py:146 users/models/user.py:904 +#: terminal/serializers/storage.py:146 users/models/user.py:906 #: xpack/plugins/cloud/serializers/account_attrs.py:213 msgid "Private key" msgstr "ssh私钥" +#: terminal/serializers/storage.py:152 +msgid "SFTP Root" +msgstr "SFTP根路径" + #: terminal/serializers/storage.py:173 msgid "The address cannot contain the special character `#`" msgstr "地址中不能包含特殊字符 `#`" @@ -7498,10 +7560,6 @@ msgstr "收集远程应用上的账号" msgid "Check command replay storage connectivity" msgstr "检查命令及录像存储可连接性 " -#: terminal/templates/terminal/_msg_command_alert.html:10 -msgid "view" -msgstr "查看" - #: terminal/utils/db_port_mapper.py:85 msgid "" "No available port is matched. The number of databases may have exceeded the " @@ -8021,7 +8079,7 @@ msgstr "不能和原来的密钥相同" msgid "Not a valid ssh public key" msgstr "SSH密钥不合法" -#: users/forms/profile.py:172 users/models/user.py:907 +#: users/forms/profile.py:172 users/models/user.py:909 #: xpack/plugins/cloud/serializers/account_attrs.py:210 msgid "Public key" msgstr "SSH公钥" @@ -8034,74 +8092,70 @@ msgstr "用户设置" msgid "Force enable" msgstr "强制启用" -#: users/models/user.py:761 +#: users/models/user.py:763 msgid "Lark" msgstr "启用飞书认证" -#: users/models/user.py:886 users/serializers/user.py:182 +#: users/models/user.py:888 users/serializers/user.py:190 msgid "Is service account" msgstr "服务账号" -#: users/models/user.py:888 +#: users/models/user.py:890 msgid "Avatar" msgstr "头像" -#: users/models/user.py:891 +#: users/models/user.py:893 msgid "Wechat" msgstr "微信" -#: users/models/user.py:894 users/serializers/user.py:112 -msgid "Phone" -msgstr "手机" - -#: users/models/user.py:900 +#: users/models/user.py:902 msgid "OTP secret key" msgstr "OTP 密钥" # msgid "Private key" # msgstr "ssh私钥" -#: users/models/user.py:912 users/serializers/profile.py:129 -#: users/serializers/user.py:179 +#: users/models/user.py:914 users/serializers/profile.py:129 +#: users/serializers/user.py:187 msgid "Is first login" msgstr "首次登录" -#: users/models/user.py:921 +#: users/models/user.py:923 msgid "Date password last updated" msgstr "最后更新密码日期" -#: users/models/user.py:924 +#: users/models/user.py:926 msgid "Need update password" msgstr "需要更新密码" -#: users/models/user.py:935 +#: users/models/user.py:937 msgid "Date api key used" msgstr "Api key 最后使用日期" -#: users/models/user.py:1054 +#: users/models/user.py:1059 msgid "Can not delete admin user" msgstr "无法删除管理员用户" -#: users/models/user.py:1068 +#: users/models/user.py:1073 msgid "Can invite user" msgstr "可以邀请用户" -#: users/models/user.py:1069 +#: users/models/user.py:1074 msgid "Can remove user" msgstr "可以移除用户" -#: users/models/user.py:1070 +#: users/models/user.py:1075 msgid "Can match user" msgstr "可以匹配用户" -#: users/models/user.py:1079 +#: users/models/user.py:1084 msgid "Administrator" msgstr "管理员" -#: users/models/user.py:1082 +#: users/models/user.py:1087 msgid "Administrator is the super user of system" msgstr "Administrator是初始的超级管理员" -#: users/models/user.py:1107 +#: users/models/user.py:1112 msgid "User password history" msgstr "用户密码历史" @@ -8150,8 +8204,8 @@ msgid "" "emails containing file attachments.
Such as: account backup files, " "account password change results files" msgstr "" -"文件加密密码,当系统发送的邮件中包含文件附件时,使用此密码进行解密。
" -"如:账号备份文件、账号改密结果文件" +"文件加密密码,当系统发送的邮件中包含文件附件时,使用此密码进行解密。
如:" +"账号备份文件、账号改密结果文件" #: users/serializers/preference/lina.py:38 users/serializers/profile.py:48 msgid "The newly set password is inconsistent" @@ -8250,74 +8304,98 @@ msgstr "打开" msgid "Forced enabled" msgstr "强制启用" -#: users/serializers/user.py:45 +#: users/serializers/user.py:44 msgid "System roles" msgstr "系统角色" +#: users/serializers/user.py:45 +msgid "" +"System roles are roles at the system level, and they will take effect across " +"all organizations" +msgstr "" + #: users/serializers/user.py:49 msgid "Org roles" msgstr "组织角色" #: users/serializers/user.py:52 +msgid "" +"Org roles are roles at the organization level, and they will only take " +"effect within current organization" +msgstr "" + +#: users/serializers/user.py:54 #, fuzzy #| msgid "Organization role" msgid "Organizations and roles" msgstr "组织角色" -#: users/serializers/user.py:94 +#: users/serializers/user.py:96 msgid "Password setting" msgstr "密码选项" -#: users/serializers/user.py:96 +#: users/serializers/user.py:98 msgid "MFA enabled" msgstr "MFA 已启用" -#: users/serializers/user.py:98 +#: users/serializers/user.py:100 msgid "MFA force enabled" msgstr "强制 MFA" -#: users/serializers/user.py:100 +#: users/serializers/user.py:102 msgid "Login blocked" msgstr "登录被锁定" -#: users/serializers/user.py:103 users/serializers/user.py:188 +#: users/serializers/user.py:105 users/serializers/user.py:196 msgid "Is OTP bound" msgstr "是否绑定了虚拟 MFA" -#: users/serializers/user.py:104 +#: users/serializers/user.py:106 msgid "Super Administrator" msgstr "超级管理员" -#: users/serializers/user.py:105 +#: users/serializers/user.py:107 msgid "Organization Administrator" msgstr "组织管理员" -#: users/serializers/user.py:107 +#: users/serializers/user.py:109 msgid "Can public key authentication" msgstr "可以公钥认证吗" -#: users/serializers/user.py:176 +#: users/serializers/user.py:169 +#, fuzzy +#| msgid "Same with user" +msgid "Fullname of user" +msgstr "用户名与用户相同" + +#: users/serializers/user.py:172 +#, fuzzy +#| msgid "Login user" +msgid "Login username" +msgstr "登录用户" + +#: users/serializers/user.py:184 msgid "Superuser" msgstr "超级用户" -#: users/serializers/user.py:183 +#: users/serializers/user.py:191 msgid "Is org admin" msgstr "组织管理员" -#: users/serializers/user.py:185 +#: users/serializers/user.py:193 msgid "Avatar url" msgstr "头像路径" -#: users/serializers/user.py:189 +#: users/serializers/user.py:197 msgid "MFA level" msgstr "MFA" -#: users/serializers/user.py:312 +#: users/serializers/user.py:333 msgid "" "For security, only a partial of users is displayed. You can search for more" msgstr "" -#: users/serializers/user.py:345 +#: users/serializers/user.py:366 msgid "name not unique" msgstr "名称重复" @@ -8765,9 +8843,10 @@ msgstr "账号无效" msgid "Cloud center" msgstr "云管中心" -#: xpack/plugins/cloud/models.py:34 -msgid "Provider" -msgstr "云服务商" +#: xpack/plugins/cloud/models.py:37 +#: xpack/plugins/cloud/serializers/account.py:68 +msgid "Attrs" +msgstr "属性" #: xpack/plugins/cloud/models.py:38 msgid "Validity" @@ -9313,6 +9392,174 @@ msgstr "企业专业版" msgid "Ultimate edition" msgstr "企业旗舰版" +#~ msgid "App Applications" +#~ msgstr "应用管理" + +#~ msgid "Application" +#~ msgstr "应用程序" + +#~ msgid "Can match application" +#~ msgstr "匹配应用" + +#~ msgid "SSH private key" +#~ msgstr "SSH密钥" + +#~ msgid "SSH public key" +#~ msgstr "SSH公钥" + +#~ msgid "Automatic managed" +#~ msgstr "托管密码" + +#~ msgid "Manually input" +#~ msgstr "手动输入" + +#~ msgid "Common user" +#~ msgstr "普通用户" + +#~ msgid "Admin user" +#~ msgstr "特权用户" + +#~ msgid "Username same with user" +#~ msgstr "用户名与用户相同" + +#~ msgid "Sudo" +#~ msgstr "Sudo" + +#~ msgid "Login mode" +#~ msgstr "认证方式" + +#~ msgid "Home" +#~ msgstr "家目录" + +#~ msgid "System groups" +#~ msgstr "用户组" + +#~ msgid "User switch" +#~ msgstr "用户切换" + +#~ msgid "Switch from" +#~ msgstr "切换自" + +#~ msgid "System user" +#~ msgstr "系统用户" + +#~ msgid "Can match system user" +#~ msgstr "可以匹配系统用户" + +#~ msgid "Asset group" +#~ msgstr "资产组" + +#~ msgid "Default asset group" +#~ msgstr "默认资产组" + +#~ msgid "Domain enabled" +#~ msgstr "启用网域" + +#~ msgid "Authentication backend" +#~ msgstr "认证方式" + +#~ msgid "Forgot Password URL" +#~ msgstr "忘记密码 URL" + +#~ msgid "eg: ldap://localhost:389" +#~ msgstr "如: ldap://localhost:389" + +#~ msgid "User OU" +#~ msgstr "用户 OU" + +#~ msgid "Use | split multi OUs" +#~ msgstr "多个 OU 使用 | 分割" + +#~ msgid "" +#~ "User attr map present how to map LDAP user attr to jumpserver, username," +#~ "name,email is jumpserver attr" +#~ msgstr "" +#~ "用户属性映射代表怎样将LDAP中用户属性映射到jumpserver用户上,username, " +#~ "name,email 是jumpserver的用户需要属性" + +#~ msgid "" +#~ "User attr map present how to map OpenID user attr to jumpserver, username," +#~ "name,email is jumpserver attr" +#~ msgstr "" +#~ "用户属性映射代表怎样将OpenID中用户属性映射到jumpserver用户上,username, " +#~ "name,email 是jumpserver的用户需要属性" + +#~ msgid "SMS provider / Protocol" +#~ msgstr "短信服务商 / 协议" + +#~ msgid "Test phone" +#~ msgstr "测试手机号" + +#~ msgid "" +#~ "External URL, email links or other system callbacks are used to access " +#~ "it, eg: http://dev.jumpserver.org:8080" +#~ msgstr "" +#~ "外部可访问的 URL, 用于邮件链接或其它系统回调, 例如: http://dev.jumpserver." +#~ "org:8080" + +#~ msgid "Help Docs URL" +#~ msgstr "文档链接" + +#~ msgid "default: http://docs.jumpserver.org" +#~ msgstr "默认: http://dev.jumpserver.org:8080" + +#~ msgid "default: http://www.jumpserver.org/support/" +#~ msgstr "默认: http://www.jumpserver.org/support/" + +#~ msgid "Historical accounts retained count" +#~ msgstr "历史账号保留数量" + +#, fuzzy +#~| msgid "Base URL" +#~ msgid "Base Url" +#~ msgstr "基本地址" + +#, fuzzy +#~| msgid "Enable attributes map" +#~ msgid "Enable tickets" +#~ msgstr "启用属性映射" + +#, fuzzy +#~| msgid "Direct approval" +#~ msgid "No login approval" +#~ msgstr "直接批准" + +#~ msgid "Default period" +#~ msgstr "默认工单授权时间" + +#~ msgid "Default unit" +#~ msgstr "默认工单授权时间单位" + +#~ msgid "Allow user run batch command or not using ansible" +#~ msgstr "是否允许用户使用 ansible 执行批量命令" + +#~ msgid "Commands that are not allowed execute." +#~ msgstr "不允许执行的命令" + +#~ msgid "Tips: Some provider use token except password" +#~ msgstr "提示:一些邮件提供商需要输入的是授权码" + +#~ msgid "Sender" +#~ msgstr "发件人" + +#~ msgid "Tips: Send mail account, default SMTP account as the send account" +#~ msgstr "提示:发送邮件账号,默认使用 SMTP 账号作为发送账号" + +#~ msgid "Test recipient" +#~ msgstr "测试收件人" + +#~ msgid "Tips: Used only as a test mail recipient" +#~ msgstr "提示:仅用来作为测试邮件收件人" + +#~ msgid "If SMTP port is 465, may be select" +#~ msgstr "如果SMTP端口是465,通常需要启用 SSL" + +#~ msgid "If SMTP port is 587, may be select" +#~ msgstr "如果SMTP端口是587,通常需要启用 TLS" + +#~ msgid "Account id" +#~ msgstr "账号 ID" + #~ msgid "Reopen" #~ msgstr "重新打开" @@ -9355,9 +9602,6 @@ msgstr "企业旗舰版" #~ msgid "Command reject (Job)" #~ msgstr "批量危险命令告警" -#~ msgid "Account " -#~ msgstr "账号" - #~ msgid "Password can not contains `{{` or `}}`" #~ msgstr "密码不能包含 `{{` 或 `}}` 字符" From af4f6ebb268a71a255ef1e8f3a21a57be7ab9c3d Mon Sep 17 00:00:00 2001 From: wangruidong <940853815@qq.com> Date: Thu, 23 May 2024 18:13:19 +0800 Subject: [PATCH 8/8] perf: dashboard i18n --- apps/i18n/lina/en.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/i18n/lina/en.json b/apps/i18n/lina/en.json index 84018247b..79ba431d0 100644 --- a/apps/i18n/lina/en.json +++ b/apps/i18n/lina/en.json @@ -47,9 +47,9 @@ "Activate": "Activate", "ActivateSelected": "Activate selected", "Active": "Active", - "ActiveAsset": "Recently logged in", + "ActiveAsset": "Recently accessed", "ActiveAssetRanking": "Login asset ranking", - "ActiveUser": "Logged in recently", + "ActiveUser": "Recently logged in", "ActiveUsers": "Active users", "Activity": "Activities", "Add": "Add", @@ -553,8 +553,8 @@ "ImportLicenseTip": "Please import license", "ImportMessage": "Please go to the corresponding type of page to import data", "ImportOrg": "Import organization", - "InActiveAsset": "Not recently logged in", - "InActiveUser": "No recent login", + "InActiveAsset": "Not accessed recently", + "InActiveUser": "Not logged in recently", "InAssetDetail": "Update account info in asset details", "Inactive": "Disabled", "Index": "Index", @@ -1282,7 +1282,7 @@ "WebUpdate": "Update the asset - web", "Wednesday": "Wed", "Week": "Week", - "WeekAdd": "New this week", + "Proportion": "New this week", "WeekOrTime": "Day/time", "WildcardsAllowed": "Allowed wildcards", "WindowsPushHelpText": "Windows assets temporarily do not support key push",