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 28939867a..56b83c39f 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-17 16:45+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 @@ -80,12 +86,10 @@ 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 +#: accounts/const/account.py:26 users/models/user.py:753 msgid "Local" msgstr "" @@ -94,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 "" @@ -102,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 "" @@ -211,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" @@ -293,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 "" @@ -314,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 @@ -413,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 "" @@ -473,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 "" @@ -545,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" @@ -632,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 @@ -641,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 "" @@ -657,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" @@ -821,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 "" @@ -835,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 "" @@ -856,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 "" @@ -955,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" @@ -1154,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 "" @@ -1181,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 "" @@ -1278,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 "" @@ -1366,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" @@ -1431,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 "" @@ -1563,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 "" @@ -1640,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" @@ -1707,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 "" @@ -1718,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 "" @@ -1732,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 "" @@ -1753,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 "" @@ -1800,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 "" @@ -1819,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 "" @@ -1998,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 "" @@ -2104,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 "" @@ -2300,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 "" @@ -2324,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 "" @@ -2387,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 "" @@ -2486,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 "" @@ -2540,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 "" @@ -2574,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 "" @@ -2622,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 "" @@ -2984,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 @@ -3193,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" @@ -3207,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" @@ -3615,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 "" @@ -3696,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 "" @@ -4114,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 "" @@ -4182,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 "" @@ -4243,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 "" @@ -4473,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 @@ -4619,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 "" @@ -4639,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 "" @@ -4746,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 "" @@ -4817,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 "" @@ -4837,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 "" @@ -4863,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 "" @@ -4876,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 "" @@ -5039,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 @@ -5052,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 "" @@ -5060,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 @@ -5099,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 "" @@ -5165,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 "" @@ -5208,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 "" @@ -5325,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 " @@ -5380,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 "" @@ -5416,11 +5528,9 @@ 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" +"Site URL is the externally accessible address of the current product service " +"and is usually used in links in system emails" 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" @@ -5439,19 +5549,23 @@ msgid "The name of global organization to display" msgstr "" #: settings/serializers/basic.py:26 -msgid "Help Docs URL" -msgstr "Document URL" +msgid "Document URL" +msgstr "" #: settings/serializers/basic.py:27 -msgid "default: http://docs.jumpserver.org" +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 "Support URL" #: settings/serializers/basic.py:31 -msgid "default: 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 @@ -5504,12 +5618,12 @@ 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 "" #: settings/serializers/feature.py:22 -msgid "More URL" +msgid "More Link" msgstr "" #: settings/serializers/feature.py:36 settings/serializers/feature.py:38 @@ -5526,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 @@ -5597,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 "" @@ -5605,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 "" @@ -7049,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 "" @@ -7070,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 "" @@ -7272,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 " @@ -7788,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 "" @@ -7801,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 "" @@ -8000,13 +8136,17 @@ msgid "On" msgstr "" #: users/serializers/profile.py:94 -#, fuzzy -#| msgid "Su enabled" msgid "Forced enabled" -msgstr "Switch enabled" +msgstr "" + +#: users/serializers/user.py:44 +msgid "System roles" +msgstr "" #: users/serializers/user.py:45 -msgid "System roles" +msgid "" +"System roles are roles at the system level, and they will take effect across " +"all organizations" msgstr "" #: users/serializers/user.py:49 @@ -8014,63 +8154,77 @@ 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 "" @@ -8357,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 @@ -8483,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 "" @@ -8507,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 "" @@ -8624,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 "" @@ -8632,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 "" @@ -8690,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 "" @@ -8746,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 "" @@ -8758,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 "" @@ -8952,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 "" @@ -9052,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 " @@ -9061,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 "" @@ -9081,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 "" @@ -9115,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 "" @@ -9128,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 @@ -9150,3 +9212,16 @@ msgstr "" #: xpack/plugins/license/models.py:86 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" +#~ 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 5e826b9a4..b0254045a 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-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" @@ -5620,11 +5737,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" @@ -5643,20 +5758,22 @@ 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://docs.jumpserver.org" +msgid "" +"Document URL refers to the address in the top navigation bar Help - Document" +msgstr "" #: settings/serializers/basic.py:30 -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" @@ -5720,12 +5837,12 @@ 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 "件名" #: settings/serializers/feature.py:22 -msgid "More URL" +msgid "More Link" msgstr "もっとURL" #: settings/serializers/feature.py:36 settings/serializers/feature.py:38 @@ -5742,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 @@ -5824,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" @@ -5834,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)" @@ -5889,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 " @@ -5907,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)" @@ -7377,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 "リージョン" @@ -7398,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秘密鍵" @@ -7606,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 " @@ -8139,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 "公開キー" @@ -8152,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 "ユーザーパスワード履歴" @@ -8373,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 "名前が一意ではない" @@ -8745,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" @@ -8871,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 "リリース済み" @@ -8895,108 +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,193 @@ 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" +#~ msgstr "" +#~ "外部URL、メールリンクまたは他のシステムコールバックにアクセスするには、" +#~ "http://dev.jumpserver.org:8080などを使用します" + #, fuzzy #~| msgid "permed assets" #~ msgid "Release assets" @@ -9571,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 fb32d9e56..9c3592701 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-17 16:45+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,7 +21,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 "没有发现待处理的账号: {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" @@ -32,10 +38,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 @@ -82,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 "数据库" @@ -91,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 "模板" @@ -99,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 "更新" @@ -208,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" @@ -290,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 "来源" @@ -311,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 @@ -418,8 +423,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 "原因" @@ -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 "收件人" @@ -552,7 +556,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" @@ -641,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 @@ -650,9 +654,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 "名称" @@ -666,7 +670,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 "激活" @@ -839,7 +843,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 +856,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 "账号已存在" @@ -874,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: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 "用户" @@ -975,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 "备注" @@ -1143,6 +1145,8 @@ msgid "Review" msgstr "审批" #: acls/const.py:9 +#, fuzzy +#| msgid "Warning" msgid "Warn" msgstr "告警" @@ -1175,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 "用户" @@ -1202,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 "内容" @@ -1301,7 +1305,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 地址无效: `{}`" @@ -1395,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" @@ -1460,10 +1486,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 "主机" @@ -1594,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" @@ -1672,7 +1697,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" @@ -1739,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 "代理" @@ -1750,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 "参数" @@ -1766,7 +1791,7 @@ msgstr "资产自动化任务" # 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 "创建日期" @@ -1787,17 +1812,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 "创建者" @@ -1834,7 +1859,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 "系统" @@ -1853,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 "标签" @@ -2001,8 +2026,10 @@ msgid "Charset" msgstr "编码" #: assets/models/platform.py:104 assets/serializers/platform.py:198 +#, fuzzy +#| msgid "Gather facts enabled" msgid "Gateway enabled" -msgstr "启用网域" +msgstr "启用收集资产信息" #: assets/models/platform.py:106 assets/serializers/platform.py:191 msgid "Su enabled" @@ -2032,7 +2059,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 "协议组" @@ -2140,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 "资产数量" @@ -2344,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 "删除" @@ -2368,16 +2400,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 "创建" @@ -2431,7 +2461,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 "任务" @@ -2530,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" @@ -2543,7 +2572,7 @@ msgstr "登录日期" #: audits/models.py:212 audits/models.py:266 msgid "Auth backend" -msgstr "认证方式" +msgstr "认证令牌" #: audits/models.py:256 msgid "User login log" @@ -2573,10 +2602,8 @@ msgid "Reason display" msgstr "原因描述" #: audits/serializers.py:70 audits/serializers.py:184 -#, fuzzy -#| msgid "Auth backend" msgid "Auth backend display" -msgstr "认证方式" +msgstr "没有匹配到认证后端" #: audits/serializers.py:134 #, python-format @@ -2586,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 "失效日期" @@ -2620,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 "钉钉" @@ -2668,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" @@ -3033,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 @@ -3242,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 "已过期" @@ -3256,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 "是否有效" @@ -3668,7 +3695,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 创建成功" @@ -3752,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 "最后更新者" @@ -4177,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" @@ -4245,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" @@ -4308,7 +4335,6 @@ msgid "Result" msgstr "结果" #: ops/models/base.py:52 ops/models/job.py:238 -#: xpack/plugins/cloud/manager.py:77 msgid "Summary" msgstr "汇总" @@ -4538,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 @@ -4684,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 "天" @@ -4704,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 "用户组" @@ -4816,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 "角色" @@ -4887,7 +4913,7 @@ msgstr "系统设置" msgid "Session audits" msgstr "会话审计" -#: rbac/tree.py:49 xpack/plugins/cloud/manager.py:74 +#: rbac/tree.py:49 msgid "Cloud import" msgstr "云同步" @@ -4907,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 "任务中心" @@ -4933,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 "工单" @@ -4946,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 没有开启" @@ -5109,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 地址" @@ -5130,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 @@ -5173,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 "搜索分页数量 (条)" @@ -5241,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 认证" @@ -5284,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 "临时使用" @@ -5405,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 " @@ -5462,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" @@ -5498,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" @@ -5521,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" @@ -5589,12 +5706,12 @@ 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 "主题" #: settings/serializers/feature.py:22 -msgid "More URL" +msgid "More Link" msgstr "更多信息 URL" #: settings/serializers/feature.py:36 settings/serializers/feature.py:38 @@ -5611,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 @@ -5690,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" @@ -5698,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 " @@ -5765,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)" @@ -6814,8 +6956,10 @@ msgid "Can download session replay" msgstr "可以下载会话录像" #: terminal/models/session/session.py:35 +#, fuzzy +#| msgid "Account " msgid "Account ID" -msgstr "账号 ID" +msgstr "账号" #: terminal/models/session/session.py:37 terminal/models/session/sharing.py:118 msgid "Login from" @@ -7194,8 +7338,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 "地域" @@ -7215,7 +7358,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私钥" @@ -7417,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 " @@ -7940,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公钥" @@ -7953,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: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 "Administrator是初始的超级管理员" -#: users/models/user.py:1110 +#: users/models/user.py:1112 msgid "User password history" msgstr "用户密码历史" @@ -8169,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 "名称重复" @@ -8526,10 +8685,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 @@ -8652,19 +8810,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 "已释放" @@ -8676,108 +8834,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 "属性" @@ -8793,7 +8860,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 "地域" @@ -8801,16 +8868,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 "总是更新" @@ -8859,7 +8926,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 "条件关系" @@ -8915,7 +8982,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 "条件" @@ -8927,7 +8994,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 "动作" @@ -9121,16 +9188,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 "服务商显示" @@ -9223,7 +9285,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 " @@ -9235,11 +9297,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 "实例个数" @@ -9255,8 +9317,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 "界面设置" @@ -9291,6 +9352,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" @@ -9304,7 +9369,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 @@ -9327,29 +9392,6 @@ msgstr "企业专业版" msgid "Ultimate edition" msgstr "企业旗舰版" -#, fuzzy -#~| msgid "permed assets" -#~ msgid "Release assets" -#~ msgstr "授权的资产" - -#~ msgid "Title of login page" -#~ msgstr "登录页标题" - -#~ msgid "Image of login page" -#~ msgstr "登录页图片" - -#~ msgid "Logo of management page" -#~ msgstr "管理页面 Logo" - -#~ msgid "Logo of logout page" -#~ msgstr "退出页面小 Logo" - -#~ msgid "Interface setting" -#~ msgstr "界面设置" - -#~ msgid "License is invalid" -#~ msgstr "无效的许可证" - #~ msgid "App Applications" #~ msgstr "应用管理" @@ -9410,6 +9452,114 @@ 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 "重新打开" @@ -9422,6 +9572,18 @@ msgstr "企业旗舰版" #~ msgid "Key password" #~ msgstr "密钥密码" +#~ msgid "Title of login page" +#~ msgstr "登录页标题" + +#~ msgid "Image of login page" +#~ msgstr "登录页图片" + +#~ msgid "Logo of management page" +#~ msgstr "管理页面 Logo" + +#~ msgid "Logo of logout page" +#~ msgstr "退出页面小 Logo" + #~ msgid "Organization ID" #~ msgstr "组织 ID" @@ -9440,9 +9602,6 @@ msgstr "企业旗舰版" #~ msgid "Command reject (Job)" #~ msgstr "批量危险命令告警" -#~ msgid "Account " -#~ msgstr "账号" - #~ msgid "Password can not contains `{{` or `}}`" #~ msgstr "密码不能包含 `{{` 或 `}}` 字符" diff --git a/apps/i18n/lina/en.json b/apps/i18n/lina/en.json index f15d72a7f..55e5bd0bf 100644 --- a/apps/i18n/lina/en.json +++ b/apps/i18n/lina/en.json @@ -1,1305 +1,1311 @@ { - "ACLs": "ACLs", - "APIKey": "Api key", - "AWS_China": "AWS(China)", - "AWS_Int": "AWS(International)", - "About": "About", - "Accept": "Accept", - "AccessIP": "Ip whitelist", - "AccessKey": "Access key", - "Account": "Account", - "NoPermissionInGlobal": "No permission in GLOBAL", - "AccountTemplateList": "Account templates", - "AccountBackup": "Backup accounts", - "AccountBackupCreate": "Create account backup", - "AccountBackupDetail": "Backup account details", - "ManualExecution": "Manual execution", - "AccountChangeSecretDetail": "Change account secret details", - "AccountBackupList": "Backup account", - "AccountBackupUpdate": "Update account backup", - "AccountChangeSecret": "Change account secret", - "AccountDeleteConfirmMsg": "Delete account, continue?", - "AccountExportTips": "The exported information contains sensitive information such as encrypted account numbers. the exported format is an encrypted zip file (if you have not set the encryption password, please go to personal info to set the file encryption password).", - "GatheredAccountList": "Gathered accounts", - "AccountGatherList": "Gather accounts", - "AccountGatherDetail": "Gather account details", - "AccountPushDetail": "Push account details", - "AccountGatherTaskList": "Gather account tasks", - "AccountGatherTaskCreate": "Create gather accounts task", - "AccountGatherTaskUpdate": "Update the gather accounts task", - "AccountList": "Accounts", - "AccountPolicy": "Account policy", - "AccountPolicyHelpText": "For accounts that do not meet the requirements when creating, such as: non-compliant key types and unique key constraints, you can choose the above strategy.", - "AccountPushCreate": "Create push account", - "AccountPushList": "Push accounts", - "MenuAccountTemplates": "Templates", - "AccountPushUpdate": "Update push account", - "AccountStorage": "Account storage", - "AccountTemplate": "Account templates", - "AccountTemplateUpdateSecretHelpText": "The account list shows the accounts created through the template. when the secret is updated, the ciphertext of the accounts created through the template will be updated.", - "Accounts": "Accounts", - "Action": "Action", - "ActionCount": "Action count", - "PermAction": "Permission Action", - "ActionSetting": "Action setting", - "Actions": "Action", - "ActionsTips": "The effects of each authority's agreement are different, click on the icon behind the authority to view", - "Activate": "Activate", - "ActivateSelected": "Activate selected", - "Active": "Active", - "ActiveAsset": "Recently logged in", - "ActiveAssetRanking": "Login asset ranking", - "ActiveUser": "Logged in recently", - "ActiveUsers": "Active users", - "Activity": "Activities", - "Add": "Add", - "AddAccount": "Add account", - "AddAccountResult": "Account batch adding results", - "AddAccountByTemplate": "Add account from template", - "AddAllMembersWarningMsg": "Are you sure add all user to this group ?", - "AddAsset": "Add assets", - "AddAssetToNode": "Add assets to node", - "AddAssetToThisPermission": "Add assets", - "AddInDetailText": "After successful creation or update, add to the details", - "AddNode": "Add node", - "AddNodeToThisPermission": "Add nodes", - "AddPassKey": "Add passkey", - "AddRolePermissions": "Add permissions to the details after successful creation/update", - "AddSuccessMsg": "Add successful", - "AddUserGroupToThisPermission": "Add user groups", - "AddUserToThisPermission": "Add users", - "Address": "Address", - "AdhocDetail": "Command details", - "AdhocManage": "Command", - "AdhocUpdate": "Update the command", - "Advanced": "Advanced settings", - "AfterChange": "After changes", - "AjaxError404": "404 request error", - "AlibabaCloud": "Alibaba cloud", - "Aliyun": "Alibaba cloud", - "All": "All", - "AllAccountTip": "All accounts already added on the asset", - "AllAccounts": "All", - "AllClickRead": "All marked as read", - "AllMembers": "All members", - "AllowInvalidCert": "Ignore certificate check", - "Announcement": "Announcement", - "AnonymousAccount": "Anonymous account", - "AnonymousAccountTip": "Connect to assets without using username and password, only support web type and custom type assets", - "ApiKey": "Api key", - "ApiKeyList": "Authenticate via api key in the header of each request, which differs from one request to another, offering greater security than token method. please consult the documentation for usage.
to minimize the risk of leaks, the secret can only be viewed upon creation, and each user can create up to 10", - "ApiKeyWarning": "To reduce the risk of accesskey leakage, the secret is only provided at creation and cannot be queried later, please keep it safe.", - "AppEndpoint": "App access address", - "AppOps": "Job center", - "AppProvider": "Application providers", - "AppProviderDetail": "Application provider details", - "AppletDetail": "Remoteapp", - "AppletHelpText": "In the upload process, if the application does not exist, create the application; if it exists, update the application.", - "AppletHostCreate": "Add remote application release machine", - "AppletHostDetail": "Remote application publishing machine details", - "AppletHostSelectHelpMessage": "When connecting to an asset, the selection of the application publishing machine is random (but the last used one is preferred). if you want to assign a specific publishing machine to an asset, you can tag it as or ;
when selecting an account for the publishing machine, the following situations will choose the user's own account with the same name or proprietary account (starting with js), otherwise use a public account (starting with jms):
  1. both the publishing machine and application support concurrent;
  2. the publishing machine supports concurrent, but the application does not, and the current application does not use a proprietary account;
  3. the publishing machine does not support concurrent, the application either supports or does not support concurrent, and no application uses a proprietary account;
note: whether the application supports concurrent connections is decided by the developer, and whether the host supports concurrent connections is decided by the single user single session setting in the publishing machine configuration", - "AppletHostUpdate": "Update the remote app publishing machine", - "AppletHostZoneHelpText": "This domain belongs to the system organization", - "AppletHosts": "Remoteapp machine", - "Applets": "Remoteapp", - "Applicant": "Applicant", - "Applications": "Assets", - "ApplyAsset": "Apply for assets", - "ApplyFromCMDFilterRule": "Command filter rules", - "ApplyFromSession": "Session", - "ApplyInfo": "Apply info", - "ApplyRunAsset": "Assets for which operations are requested", - "ApplyRunCommand": "Command for application", - "ApplyRunUser": "Users applying for run", - "Appoint": "Specify", - "ApprovaLevel": "Approval information", - "ApprovalLevel": "Approval level", - "ApprovalProcess": "Approval process", - "Approved": "Agreed", - "ApproverNumbers": "Approvers", - "ApsaraStack": "Alibaba cloud private cloud", - "Asset": "Asset", - "AssetAccount": "Accounts", - "Success/Total": "Success/Total", - "AssetAccountDetail": "Account details", - "AssetAclCreate": "Create asset connect rule", - "AssetAclDetail": "Asset connect rule details", - "AssetAclList": "Asset connect", - "AssetAclUpdate": "Update the asset connect rules", - "AssetAddress": "Asset (ip/hostname)", - "AssetAmount": "Asset amount", - "AssetAndNode": "Assets/nodes", - "AssetBulkUpdateTips": "Network devices, cloud services, web, batch updating of zones not supported", - "AssetChangeSecretCreate": "Create account secret change", - "AssetChangeSecretUpdate": "Update account secret change", - "AssetData": "Asset", - "AssetDetail": "Asset details", - "AssetList": "Assets", - "AssetListHelpMessage": "On the left is the asset tree. right-click to create, delete or modify tree nodes. assets are also organized in node form. on the right are the assets under this node. \n", - "AssetLoginACLHelpMsg": "When logging into assets, it can be audited based on the user's login ip and time segment to determine whether the assets can be logged into", - "AssetLoginACLHelpText": "When logging into assets, it can be audited based on the user's login ip and time segment to determine whether the assets can be logged into", - "AssetName": "Asset name", - "AssetPermission": "Authorization", - "AssetPermissionCreate": "Create asset authorization rule", - "AssetPermissionDetail": "Asset authorization details", - "AssetPermissionHelpMsg": "Asset authorization allows you to select users and assets, grant the assets to users for access. once completed, users can conveniently view these assets. additionally, you can set specific permissions to further define the users' rights to the assets.", - "AssetPermissionRules": "Authorization rules", - "AssetPermissionUpdate": "Update the asset authorization rules", - "AssetPermsAmount": "Asset authorization number", - "AssetProtocolHelpText": "! The protocols supported by the assets are restricted by the platform. Click the settings button to view the protocol settings. If updates are required, please update the platform", - "AssetTree": "Asset tree", - "Assets": "Assets", - "AssetsAmount": "Asset amount", - "AssetsTotal": "Total assets", - "AssignedInfo": "Approval information", - "Assignee": "Handler", - "Assignees": "Pending handler", - "AttrName": "Attribute name", - "AttrValue": "Attribute value", - "Audits": "Audits", - "Auth": "Authentication", - "AuthLimit": "Login restriction", - "AuthSAMLCertHelpText": "Save after uploading the certificate key, then view sp metadata", - "AuthSAMLKeyHelpText": "Sp certificates and keys are used for encrypted communication with idp", - "AuthSaml2UserAttrMapHelpText": "The keys on the left are saml2 user attributes, the values on the right are authentication platform user attributes", - "AuthSecurity": "Auth security", - "AuthSettings": "Authentication configuration", - "AuthUserAttrMapHelpText": "The key on the left belongs to the jumpserver user properties, and the value on the right belongs to the authentication platform user properties", - "Authentication": "Authentication", - "AutoPush": "Auto push", - "Automations": "Automations", - "AverageTimeCost": "Average spend time", - "AwaitingMyApproval": "Assigned", - "Azure": "Azure (china)", - "Backup": "Backup", - "BackupAccountsHelpText": "Backup account information externally. it can be stored in an external system or sent via email, supporting segmented delivery.", - "BadConflictErrorMsg": "Refreshing, please try again later", - "BadRequestErrorMsg": "Request error, please check the filled content", - "BadRoleErrorMsg": "Request error, no permission for this action", - "BaiduCloud": "Baidu cloud", - "BasePort": "Listening ports", - "Basic": "Basic", - "BasicInfo": "Basic information", - "BasicSetting": "Basic", - "BatchConsent": "Batch Approval", - "BatchDeployment": "Batch deployment", - "BatchProcessing": "{number} items selected", - "BatchReject": "Batch reject", - "BatchTest": "Batch test", - "BatchTransfer": "File transfer", - "BeforeChange": "Before change", - "Beian": "Record", - "BelongAll": "Including at the same time", - "BelongTo": "Any includes", - "Bind": "Binding", - "BindLabel": "Associated tags", - "BindResource": "Associated resources", - "BindSuccess": "Binding successful", - "BlockedIPS": "Locked ips", - "BuiltinVariable": "Built-in variables", - "BulkClearErrorMsg": "Bulk clear failed: ", - "BulkDeleteErrorMsg": "Bulk delete failed: ", - "BulkDeleteSuccessMsg": "Bulk delete successful", - "BulkDeploy": "Bulk deploy", - "BulkRemoveErrorMsg": "Bulk remove failed: ", - "BulkRemoveSuccessMsg": "Bulk remove successful", - "BulkSyncErrorMsg": "Bulk sync failed: ", - "CACertificate": "Ca certificate", - "CAS": "Cas", - "CMPP2": "Cmpp v2.0", - "CTYunPrivate": "Tianyi private cloud", - "CalculationResults": "Error in cron expression", - "CanDragSelect": "Select time period by dragging mouse", - "Cancel": "Cancel", - "CancelCollection": "Cancel favorite", - "CannotAccess": "Can't access the current page", - "Category": "Category", - "CeleryTaskLog": "Celery task log", - "Certificate": "Certificate", - "CertificateKey": "Client key", - "ChangeCredentials": "Change account secrets", - "ChangeCredentialsHelpText": "The secret is the password or key used to connect to the asset. when the secret is changed, the asset will be updated with the new secret", - "ChangeField": "Change field", - "ChangeOrganization": "Change organization", - "ChangePassword": "Change password", - "ChangeReceiver": "Change recipient", - "ChangeSecretParams": "Change password parameters", - "ChangeViewHelpText": "Click to switch different views", - "Chat": "Chat", - "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", - "CheckViewAcceptor": "Click to view the acceptance person", - "CleanHelpText": "A scheduled cleanup task will be carried out every day at 2 a.m. the data cleaned up will not be recoverable", - "Cleaning": "Regular clean-up", - "Clear": "Clear", - "ClearErrorMsg": "Clearing failed:", - "ClearScreen": "Clear screen", - "ClearSecret": "Clear secret", - "ClearSelection": "Clear selection", - "ClearSuccessMsg": "Clear successful", - "ClickCopy": "Click to copy", - "ClientCertificate": "Client certificate", - "ClipboardCopyPaste": "Clipboard copy and paste", - "Clone": "Clone", - "Duplicate": "Duplicate", - "Close": "Close", - "CloseConfirm": "Confirm close", - "CloseConfirmMessage": "File has changed, save?", - "CloseStatus": "Completed", - "Closed": "Completed", - "CloudAccountCreate": "Create a cloud account", - "CloudAccountDetail": "Details of cloud account", - "CloudAccountList": "Cloud accounts", - "CloudAccountUpdate": "Update the cloud account", - "CloudCreate": "Create asset - cloud", - "CloudRegionTip": "The region was not obtained, please check the account", - "CloudSource": "Sync source", - "CloudSync": "Cloud provider", - "CloudUpdate": "Update the asset - cloud", - "Cluster": "Cluster", - "CollectionSucceed": "Collection successful", - "Command": "Command", - "CommandConfirm": "Command review", - "CommandFilterACL": "Command filter", - "CommandFilterACLHelpMsg": "By filtering commands, you can control if commands can be sent to assets. based on your set rules, some commands can be allowed while others are prohibited.", - "CommandFilterACLHelpText": "By filtering commands, you can control if commands can be sent to assets. based on your set rules, some commands can be allowed while others are prohibited.", - "CommandFilterAclCreate": "Create command filter rule", - "CommandFilterAclDetail": "Details of command filter rule", - "CommandFilterAclList": "Command filter", - "CommandFilterAclUpdate": "Update the command filter rule", - "CommandFilterRuleContentHelpText": "One command per line", - "CommandFilterRules": "Command filter rules", - "CommandGroup": "Command group", - "CommandGroupCreate": "Create command group", - "CommandGroupDetail": "Command set details", - "CommandGroupList": "Command group", - "CommandGroupUpdate": "Update the command group", - "CommandStorage": "Command storage", - "CommandStorageUpdate": "Update the cmd storage", - "Commands": "Commands", - "CommandsTotal": "Total commands", - "Comment": "Description", - "CommentHelpText": "Description will be displayed when hovered over in the Luna page's user authorization asset tree. Ordinary users can view these remarks, so please do not include sensitive information.", - "CommunityEdition": "Community version", - "Component": "Component", - "ComponentMonitor": "Monitoring", - "ConceptContent": "I want you to act like a python interpreter. i will give you python code, and you will execute it. do not provide any explanations. respond with nothing except the output of the code.", - "ConceptTitle": "🤔 python interpreter", - "Config": "Settings", - "Configured": "Configured", - "Confirm": "Confirm", - "ConfirmPassword": "Confirm password", - "ConnectAssets": "Connect assets", - "ConnectMethod": "Connect method", - "ConnectMethodACLHelpMsg": "Connect methods can be filtered to control whether users can use a certain connect method to log in to the asset. according to your set rules, some connect methods can be allowed, while others can be prohibited (globally effective).", - "ConnectMethodACLHelpText": "Connect methods can be filtered to control whether users can use a certain connect method to log in to the asset. according to your set rules, some connect methods can be allowed, while others can be prohibited.", - "ConnectMethodAclCreate": "Create connect method control", - "ConnectMethodAclDetail": "Connect method control details", - "ConnectMethodAclList": "Connect method", - "ConnectMethodAclUpdate": "Update the connect method control", - "ConnectWebSocketError": "Connection to websocket failed", - "ConnectionDropped": "Connection disconnected", - "ConnectionToken": "Connection tokens", - "ConnectionTokenList": "The connection token is a type of authentication information that combines identity verification with connecting assets. it supports one-click user login to assets. currently supported components include: koko, lion, magnus, razor, etc.", - "Console": "Console", - "Consult": "Consult", - "ContainAttachment": "With attachment", - "Containers": "Container", - "Contains": "Contains", - "Continue": "Continue", - "ConvenientOperate": "Convenient action", - "Copy": "Copy", - "CopySuccess": "Copy successful", - "Corporation": "Company", - "Create": "Create", - "CreateAccessKey": "Create access key", - "CreateAccountTemplate": "Create account template", - "CreateCommandStorage": "Create command storage", - "CreateEndpoint": "Create endpoint", - "CreateEndpointRule": "Create endpoint rule", - "CreateErrorMsg": "Creation failed", - "CreateNode": "Create node", - "CreatePlaybook": "Create playbook", - "CreateReplayStorage": "Create object storage", - "CreateSuccessMsg": "Successfully created !", - "CreateUserSetting": "User creation", - "Created": "Created", - "Crontab": "Crontab", - "Interval": "Interval", - "CreatedBy": "Creator", - "CriticalLoad": "Serious", - "CronExpression": "Complete crontab expression", - "CrontabHelpText": "If both interval and crontab are set, crontab is prioritized", - "CrontabHelpTip": "For example: perform every sunday at 03:05 <5 3 * * 0>
use 5-digit linux crontab expressions (online tool)
", - "CrontabOfCreateUpdatePage": "", - "CurrentConnectionUsers": "Online users", - "CurrentConnections": "Current connections", - "CurrentUserVerify": "Verify current user", - "Custom": "Custom", - "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", - "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", - "CustomUser": "Customized user", - "CycleFromWeek": "Week cycle from", - "CyclePerform": "Execute periodically", - "Danger": "Danger", - "DangerCommand": "Dangerous command", - "DangerousCommandNum": "Total dangerous commands", - "Dashboard": "Dashboard", - "Database": "Database", - "DatabaseCreate": "Create asset - database", - "DatabasePort": "Database protocol port", - "DatabaseUpdate": "Update the asset-database", - "Date": "Date", - "DateCreated": "Creation time", - "DateEnd": "End date", - "DateExpired": "Expiration date", - "DateFinished": "Completion date", - "DateJoined": "Creation date", - "DateLast24Hours": "Last day", - "DateLast3Months": "Last 3 months", - "DateLastHarfYear": "Last 6 months", - "DateLastLogin": "Last login date", - "DateLastMonth": "Last month", - "DateLastSync": "Last synchronization date", - "DateLastWeek": "Last week", - "DateLastYear": "Last year", - "DatePasswordLastUpdated": "Last password update date", - "DateStart": "Start date", - "DateSync": "Sync date", - "DateUpdated": "Update date", - "Day": "Day", - "DeclassificationLogNum": "Password change logs", - "DefaultDatabase": "Default database", - "DefaultPort": "Default port", - "Delete": "Delete", - "DeleteConfirmMessage": "Deletion is irreversible, do you wish to continue?", - "DeleteErrorMsg": "Delete failed", - "DeleteNode": "Delete node", - "DeleteOrgMsg": "User list, user group, asset list, network zone list, manage users, system users, tag management, asset authorization rules", - "DeleteOrgTitle": "Please ensure the following information within the organization has been deleted", - "DeleteReleasedAssets": "Delete released assets", - "DeleteSelected": "Delete selected", - "DeleteSuccess": "Successfully deleted", - "DeleteSuccessMsg": "Successfully deleted", - "ActivateSuccessMsg": "Successful activated", - "DeleteWarningMsg": "Are you sure you want to delete", - "Deploy": "Deployment", - "Description": "Description", - "DestinationIP": "Destination address", - "DestinationPort": "Destination port", - "Detail": "Detail", - "DeviceCreate": "Create asset - device", - "DeviceUpdate": "Update the asset - device", - "Digit": "Number", - "DingTalk": "Dingtalk", - "DingTalkOAuth": "DingTalk OAuth", - "DingTalkTest": "Test", - "Disable": "Disable", - "DisableSelected": "Disable selected", - "DisplayName": "Name", - "Docs": "Document", - "Download": "Download", - "DownloadCenter": "Download center", - "DownloadFTPFileTip": "The current action does not record files, or the file size exceeds the threshold (default 100m), or it has not yet been saved to the corresponding storage", - "DownloadImportTemplateMsg": "Download creation template", - "DownloadReplay": "Download recording", - "DownloadUpdateTemplateMsg": "Download update template", - "DragUploadFileInfo": "Drag files here, or click to upload", - "DuplicateFileExists": "Uploading a file with the same name is not allowed, please delete the file with the same name", - "Duration": "Duration", - "DynamicUsername": "Dynamic username", - "Edit": "Edit", - "Edition": "Version", - "Email": "Email", - "EmailContent": "Custom content", - "EmailTest": "Test connection", - "Empty": "Empty", - "Enable": "Enable", - "EnableKoKoSSHHelpText": "When switched on, connecting to the asset will display ssh client pull-up method", - "Endpoint": "Service endpoints", - "EndpointListHelpMessage": "The service endpoint is the address (port) for users to access the service. when users connect to assets, they choose service endpoints based on endpoint rules and asset labels, using them as access points to establish connections and achieve distributed connections to assets", - "EndpointRule": "Endpoint rules", - "EndpointRuleListHelpMessage": "For the server endpoint selection strategy, there are currently two options:
1、specify the endpoint according to the endpoint rule (current page);
2、choose the endpoint through asset labels, with the fixed label name being 'endpoint' and the value being the name of the endpoint.
the tag matching method is preferred for both methods, as the ip range may conflict, and the tag method exists as a supplement to the rules.", - "Endswith": "Ending with...", - "EnsureThisValueIsGreaterThanOrEqualTo1": "Please make sure this number is greater than or equal to 1", - "EnterForSearch": "Press enter to search", - "EnterRunUser": "Enter running account", - "EnterRunningPath": "Enter running path", - "EnterToContinue": "Press enter to continue", - "EnterUploadPath": "Enter upload path", - "Enterprise": "Enterprise", - "EnterpriseEdition": "Enterprise edition", - "Equal": "Equals", - "Error": "Error", - "ErrorMsg": "Error", - "EsDisabled": "Node is unavailable, please contact administrator", - "EsIndex": "Es provides the default index: jumpserver. if indexing by date is enabled, the entered value will serve as the index prefix", - "EsUrl": "Cannot include special char `#`; eg: http://es_user:es_password@es_host:es_port", - "Every": "Every", - "Exclude": "Does not include", - "ExcludeAsset": "Skipped assets", - "ExcludeSymbol": "Exclude char", - "ExecCloudSyncErrorMsg": "The cloud account configuration is incomplete, please update and try again.", - "Execute": "Execute", - "ExecuteOnce": "Execute once", - "ExecutionDetail": "Execution details", - "ExecutionList": "Executions", - "ExistError": "This element already exists", - "Existing": "Already exists", - "ExpirationTimeout": "Expiration timeout (seconds)", - "Expire": "Expired", - "Expired": "Expiration date", - "Export": "Export", - "ExportAll": "Export all", - "ExportOnlyFiltered": "Export filtered items", - "ExportOnlySelectedItems": "Export selected items", - "ExportRange": "Export range", - "FC": "Fusion compute", - "Failed": "Failed", - "FailedAsset": "Failed assets", - "FaviconTip": "Note: website icon (suggested image size: 16px*16px)", - "Features": "Features", - "FeiShu": "FeiShu", - "FeiShuOAuth": "Feishu OAuth", - "FeiShuTest": "Test", - "FieldRequiredError": "This field is required", - "FileExplorer": "File explorer", - "FileManagement": "File manager", - "FileNameTooLong": "File name too long", - "FileSizeExceedsLimit": "File size exceeds limit", - "FileTransfer": "File transfer", - "FileTransferBootStepHelpTips1": "Select one asset or node", - "FileTransferBootStepHelpTips2": "Select running account and input command", - "FileTransferBootStepHelpTips3": "Transfer,display output results", - "FileTransferNum": "Number of file transfers", - "FileType": "File type", - "Filename": "File name", - "FingerPrint": "Fingerprint", - "Finished": "Complete", - "FinishedTicket": "Complete ticket", - "FirstLogin": "First login", - "FlowSetUp": "Flow setup", - "Footer": "Footer", - "FormatError": "Format error", - "Friday": "Fri", - "From": "From", - "FromTicket": "From the ticket", - "FullName": "Full name", - "FullySynchronous": "Assets completely synchronized", - "FullySynchronousHelpTip": "Whether to continue synchronizing such assets when the asset conditions do not meet the matching policy rules", - "GCP": "Google cloud", - "GPTCreate": "Create asset - gpt", - "GPTUpdate": "Update the asset - gpt", - "GatewayCreate": "Create gateway", - "GatewayList": "Gateways", - "GatewayUpdate": "Update the gateway", - "GatherAccounts": "Gather accounts", - "GatherAccountsHelpText": "Collect account information on assets. the collected account information can be imported into the system for centralized management.", - "GeneralAccounts": "General accounts", - "Generate": "Generate", - "GenerateAccounts": "Regenerate account", - "GenerateSuccessMsg": "Account creation successful", - "GenericSetting": "Generic", - "GoHomePage": "Go to homepage", - "Goto": "Goto", - "GrantedAssets": "Authorized assets", - "GreatEqualThan": "Greater than or equal to", - "GroupsAmount": "User group", - "HandleTicket": "Handle tickets", - "Hardware": "Hardware information", - "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", - "HistoryDate": "Date", - "HistoryPassword": "Historical password", - "HistoryRecord": "History record", - "Host": "Asset", - "HostCreate": "Create asset - host", - "HostDeployment": "Deploy publishing machine", - "HostList": "Host", - "HostUpdate": "Update the asset - host", - "HostnameStrategy": "Used to generate hostnames for assets. for example: 1. instance name (instancedemo); 2. instance name and part of ip (last two letters) (instancedemo-250.1)", - "Hour": "Hour", - "HuaweiCloud": "Huawei cloud", - "HuaweiPrivateCloud": "Huawei private cloud", - "IAgree": "I agree", - "ID": "Id", - "IP": "Ip", - "IPLoginLimit": "Ip restriction", - "IPMatch": "Ip matching", - "IPNetworkSegment": "Ip segment", - "Id": "Id", - "IdeaContent": "I want you to act as a linux terminal. i will input the commands, you will respond with what the terminal should display. i hope you to reply only in a unique code block, not others. no interpretations. when i need to tell you something, i'm gonna put the words in braces {note text}", - "IdeaTitle": "🌱 linux terminal", - "IdpMetadataHelpText": "Either idp metadata url or idp metadata xml is acceptable, with idp metadata url having higher priority", - "IdpMetadataUrlHelpText": "Load idp metadata from remote address", - "ImageName": "Image name", - "Images": "Image", - "Import": "Import", - "ImportAll": "Import all", - "ImportFail": "Import failed", - "ImportLdapUserTip": "Please submit ldap configuration before import", - "ImportLdapUserTitle": "Ldap user", - "ImportLicense": "Import license", - "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", - "InAssetDetail": "Update account info in asset details", - "Inactive": "Disabled", - "Index": "Index", - "Info": "Information", - "InformationModification": "Information Modification", - "InheritPlatformConfig": "Inherited from platform configuration, to change, please modify the configuration in the platform", - "InitialDeploy": "Initialization deployment", - "Input": "Input", - "InputEmailAddress": "Please enter the correct email address", - "InputMessage": "Enter message...", - "InputPhone": "Phone number", - "MIN_LENGTH_ERROR": "Passwords must be at least {0} characters.", - "UPPER_CASE_REQUIRED": "Must contain uppercase letters", - "LOWER_CASE_REQUIRED": "Must contain lowercase letters", - "NUMBER_REQUIRED": "Must contain numbers", - "SPECIAL_CHAR_REQUIRED": "Must contain special characters", - "InstanceAddress": "Instance address", - "InstanceName": "Instance name", - "InstancePlatformName": "Instance platform name", - "Interface": "Appearance", - "InterfaceSettings": "Appearance", - "IntervalOfCreateUpdatePage": "Unit: hour", - "InvalidJson": "Invalid json", - "InviteSuccess": "Invitation successful", - "InviteUser": "Invite", - "InviteUserInOrg": "Invite users to join this organization", - "Ip": "Ip", - "IpDomain": "Address", - "IpGroup": "Ip group", - "IpGroupHelpText": "* indicates match all. for example: 192.168.10.1, 192.168.1.0/24, 10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64", - "IsActive": "Active", - "IsAlwaysUpdate": "Keeping assets up to date", - "IsAlwaysUpdateHelpTip": "Whether to synchronize and update asset information, including hostname, ip, platform, domain, node, etc. each time a synchronization task is performed", - "IsFinished": "Is it done", - "IsLocked": "Suspend", - "IsSuccess": "Success", - "IsSyncAccountHelpText": "Upon collection completion, the collected account will be synced to asset", - "IsSyncAccountLabel": "Sync to assets", - "JDCloud": "Jd cloud", - "Job": "Job", - "JobCenter": "Job center", - "JobCreate": "Create job", - "JobDetail": "Job details", - "JobExecutionLog": "Job logs", - "JobManagement": "Jobs", - "JobUpdate": "Update the job", - "KingSoftCloud": "KingSoft Cloud", - "KokoSetting": "KoKo", - "LDAPUser": "LDAP Users", - "Label": "Label", - "LAN": "LAN", - "LabelCreate": "Create label", - "LabelInputFormatValidation": "Label format error, the correct format is: name:value", - "LabelList": "Labels", - "LabelUpdate": "Update the label", - "Language": "Language", - "LarkOAuth": "Lark OAuth", - "Last30": "Recent 30 items", - "Last30Days": "Monthly", - "Last7Days": "Weekly", - "LastPublishedTime": "Last publish time", - "Ldap": "Ldap", - "LdapBulkImport": "User import", - "LdapConnectTest": "Test connection", - "LdapLoginTest": "Test login", - "Length": "Length", - "LessEqualThan": "Less than or equal to", - "LevelApproval": "Level approval", - "License": "License", - "LicenseExpired": "The license has expired", - "LicenseFile": "License file", - "LicenseForTest": "Test purpose license, this license is only for testing (poc) and demonstration", - "LicenseReachedAssetAmountLimit": "The assets has exceeded the license limit", - "LicenseWillBe": "License expiring soon", - "Loading": "Loading", - "LockedIP": "Locked ip {count}", - "Log": "Log", - "LogData": "Log data", - "LogOfLoginSuccessNum": "Total successful login", - "Logging": "Log record", - "LoginAssetConfirm": "Asset connect review", - "LoginAssetToday": "Active assets today", - "LoginAssets": "Active assets", - "LoginConfirm": "Login review", - "LoginConfirmUser": "Confirm by", - "LoginCount": "Login times", - "LoginDate": "Login date", - "LoginFailed": "Login failed", - "LoginFrom": "Login source", - "LoginImageTip": "Note: it will appear on the enterprise user login page (recommended image size: 492*472px)", - "LoginLog": "Login logs", - "LoginLogTotal": "Total login logs", - "LoginNum": "Total login logs", - "LoginPasswordSetting": "Login password", - "LoginRequiredMsg": "The account has logged out, please log in again.", - "LoginSSHKeySetting": "Login SSH Key", - "LoginSucceeded": "Login successful", - "LoginTitleTip": "Note: it will be displayed on the enterprise edition user ssh login koko login page (e.g.: welcome to use jumpserver open source bastion)", - "LoginUserRanking": "Login account ranking", - "LoginUserToday": "Users logged today", - "LoginUsers": "Active account", - "LogoIndexTip": "Tip: it will be displayed in the upper left corner of the page (recommended image size: 185px*55px)", - "LogoLogoutTip": "Tip: it will be displayed on the web terminal page of enterprise edition users (recommended image size: 82px*82px)", - "Logout": "Sign out", - "LogsAudit": "Activities", - "Lowercase": "Lowercase", - "LunaSetting": "Luna", - "MFAErrorMsg": "MFA errors, please check", - "MFAOfUserFirstLoginPersonalInformationImprovementPage": "Enable multi-factor authentication to make your account more secure.
after enabling, you will enter the multi-factor authentication binding process the next time you log in; you can also directly bind in (personal information->quick modification->change multi-factor settings)!", - "MFAOfUserFirstLoginUserGuidePage": "In order to protect your and the company's security, please carefully safeguard important sensitive information such as your account, password, and key (for example, set a complex password, and enable multi-factor authentication)
personal information such as email, mobile number, and wechat are only used for user authentication and platform internal message notifications.", - "MailRecipient": "Email recipient", - "MailSend": "Sending", - "ManualAccount": "Manual", - "ManualAccountTip": "Manual input of username/password upon login", - "ManyChoose": "Select multiple", - "MarkAsRead": "Mark as read", - "Marketplace": "App market", - "Match": "Match", - "MatchIn": "In...", - "MatchResult": "Match results", - "MatchedCount": "Match results", - "Members": "Members", - "MenuAccounts": "Accounts", - "MenuAcls": "Acls", - "MenuAssets": "Assets", - "MenuMore": "Others", - "MenuPermissions": "Policies", - "MenuUsers": "Users", - "Message": "Message", - "MessageType": "Message type", - "MfaLevel": "MFA", - "Min": "Min", - "Modify": "Edit", - "Module": "Module", - "Monday": "Mon", - "Monitor": "Monitor", - "Month": "Month", - "More": "More", - "MoreActions": "Actions", - "MoveAssetToNode": "Move assets to nodes", - "MsgSubscribe": "Subscription", - "MyAssets": "My assets", - "MyTickets": "Submitted", - "Name": "Name", - "NavHelp": "Navigation", - "NeedReLogin": "Need to re-login", - "New": "Create", - "NewChat": "New chat", - "NewCount": "Add", - "NewCron": "Generate cron", - "NewDirectory": "Create new directory", - "NewFile": "Create new file", - "NewPassword": "New password", - "NewPublicKey": "New Public Key", - "NewSSHKey": "New SSH Key", - "NewSyncCount": "New sync", - "Next": "Next", - "No": "No", - "NoContent": "No content", - "NoData": "No Data", - "NoFiles": "No file, upload on the left", - "NoPermission": "No permissions", - "NoPermission403": "403 no permission", - "NoPermissionVew": "No permission to view the current page", - "NoUnreadMsg": "No unread messages", - "Node": "Node", - "NodeAmount": "Nodes", - "NodeInformation": "Node information", - "NodeSearchStrategy": "Node search strategy", - "NormalLoad": "Normal", - "NotEqual": "Not equal to", - "NotSet": "Not set", - "NotSpecialEmoji": "Special emoji input not allowed", - "Nothing": "None", - "NotificationConfiguration": "Notification Configuration", - "Notifications": "Notifications", - "Now": "Now", - "Number": "No.", - "NumberOfVisits": "Visits", - "OAuth2": "Oauth2", - "OAuth2LogoTip": "Note: authentication provider (recommended image size: 64px*64px)", - "OIDC": "Oidc", - "ObjectNotFoundOrDeletedMsg": "No corresponding resources found or it has been deleted.", - "Offline": "Offline", - "OfflineSelected": "Offline selected", - "OfflineSuccessMsg": "Successfully offline", - "OfflineUpload": "Offline upload", - "OldPassword": "Old password", - "OldPublicKey": "Old Public Key", - "OneAssignee": "First-level approver", - "OneAssigneeType": "First-level handler type", - "OneClickReadMsg": "Are you sure you want to mark the current information as read?", - "OnlineSession": "Online devices", - "OnlineSessionHelpMsg": "Unable to log out of the current session because it is the current user's online session. currently only users logged in via web are being logged.", - "OnlineSessions": "Online sessions", - "OnlineUserDevices": "Online user devices", - "OnlyMailSend": "Current support for email sending", - "OnlySearchCurrentNodePerm": "Only search the current node's authorization", - "OpenCommand": "Open command", - "OpenStack": "Openstack", - "OpenStatus": "In approval", - "OpenTicket": "Create ticket", - "OperateLog": "Operate logs", - "OperationLogNum": "Operation logs", - "Options": "Options", - "OrgAdmin": "Organization admin", - "OrgAuditor": "Organizational auditors", - "OrgName": "Authorized organization name", - "OrgRole": "Organizational roles", - "OrgRoleHelpMsg": "Organization roles are roles tailored to individual organizations within the platform. these roles are assigned when inviting users to join a particular organization and dictate their permissions and access levels within that organization. unlike system roles, organization roles are customizable and apply only within the scope of the organization they are assigned to.", - "OrgRoleHelpText": "The org role is the user's role within the current organization", - "OrgRoles": "Organizational roles", - "OrgUser": "Organize users", - "OrganizationCreate": "Create organization", - "OrganizationDetail": "Organization details", - "OrganizationList": "Organizations", - "OrganizationManage": "Manage orgs", - "OrganizationUpdate": "Update the organization", - "OrgsAndRoles": "Org and roles", - "Other": "Other", - "Output": "Output", - "Overview": "Overview", - "PageNext": "Next", - "PagePrev": "Previous", - "Params": "Parameter", - "ParamsHelpText": "Password parameter settings, currently only effective for assets of the host type.", - "PassKey": "Passkey", - "Passkey": "Passkey", - "PasskeyAddDisableInfo": "Your authentication source is {source}, and adding a passkey is not supported", - "Passphrase": "Key password", - "Password": "Password", - "PasswordAndSSHKey": "Password & SSH Key", - "PasswordChangeLog": "Password change", - "PasswordExpired": "Password expired", - "PasswordPlaceholder": "Please enter password", - "PasswordRecord": "Password record", - "PasswordRule": "Password rules", - "PasswordSecurity": "User password", - "PasswordStrategy": "Secret strategy", - "PasswordWillExpiredPrefixMsg": "Password will be in", - "PasswordWillExpiredSuffixMsg": "It will expire in days, please change your password as soon as possible.", - "Paste": "Paste", - "Pause": "Pause", - "PauseTaskSendSuccessMsg": "Task pausing issued, please refresh and check later", - "Pending": "Pending", - "PermAccount": "Authorized accounts", - "PermUserList": "Authorized users", - "PermissionCompany": "Authorized companies", - "PermissionName": "Authorization rule name", - "Permissions": "Permission", - "PersonalInformationImprovement": "Complete personal information", - "PersonalSettings": "Personal Settings", - "Phone": "Phone", - "Plan": "Plan", - "Platform": "Platform", - "PlatformCreate": "Create platform", - "PlatformDetail": "Platform details", - "PlatformList": "Platforms", - "PlatformPageHelpMsg": "The platform categorizes assets, such as windows, linux, network devices, etc. configuration settings, such as protocols, gateways, etc., can also be specified on the platform to determine whether certain features are enabled on assets.", - "PlatformProtocolConfig": "Platform protocol configuration", - "PlatformUpdate": "Update the platform", - "PlaybookDetail": "Playbook details", - "PlaybookManage": "Playbook", - "PlaybookUpdate": "Update the playbook", - "PleaseAgreeToTheTerms": "Please agree to the terms", - "PolicyName": "Policy name", - "Port": "Port", - "Ports": "Port", - "Preferences": "Preferences", - "Primary": "Primary", - "Priority": "Priority", - "PrivateCloud": "Private cloud", - "PrivateKey": "Private key", - "Privileged": "Privileged", - "PrivilegedFirst": "Privileged first", - "PrivilegedOnly": "Privileged accounts only", - "PrivilegedTemplate": "Privileged", - "Product": "Product", - "ProfileSetting": "Profile info", - "Project": "Project name", - "Prompt": "Prompt", - "Proportion": "Proportion", - "ProportionOfAssetTypes": "Asset type proportion", - "Protocol": "Protocol", - "Protocols": "Protocols", - "Proxy": "Agent", - "PublicCloud": "Public cloud", - "PublicKey": "Public key", - "Publish": "Publish", - "PublishAllApplets": "Publish all applications", - "PublishStatus": "Release status", - "Push": "Push", - "PushAccount": "Push accounts", - "PushAccountsHelpText": "Pushing the account to the target asset allows for configuring different push methods for assets on different platforms.", - "PushParams": "Push parameters", - "Qcloud": "Tencent cloud", - "QcloudLighthouse": "Tencent cloud (lightweight application server)", - "QingYunPrivateCloud": "Qingyun private cloud", - "Queue": "Queue", - "QuickAdd": "Quick add", - "QuickJob": "Adhoc", - "QuickUpdate": "Quick update", - "Radius": "Radius", - "Ranking": "Ranking", - "RazorNotSupport": "Rdp client session, monitoring not supported", - "ReLogin": "Log in again", - "ReLoginTitle": "Current third-party login user (cas/saml), not bound to mfa and does not support password verification, please log in again.", - "RealTimeData": "Real-time", - "Reason": "Reason", - "Receivers": "Receiver", - "RecentLogin": "Recent login", - "RecentSession": "Recent sessions", - "RecentlyUsed": "Recently", - "RecipientHelpText": "If both recipient a and b are set, the account's key will be split into two parts", - "RecipientServer": "Receiving server", - "Reconnect": "Reconnect", - "Refresh": "Refresh", - "RefreshHardware": "Refresh hardware info", - "Regex": "Regular expression", - "Region": "Region", - "RegularlyPerform": "Periodic execution", - "Reject": "Reject", - "Rejected": "Rejected", - "ReleasedCount": "Released", - "RelevantApp": "Application", - "RelevantAsset": "Assets", - "RelevantAssignees": "Related recipient", - "RelevantCommand": "Command", - "RelevantSystemUser": "System user", - "RemoteAddr": "Remote address", - "Remove": "Remove", - "RemoveAssetFromNode": "Remove asset from node", - "RemoveSelected": "Remove selected", - "RemoveSuccessMsg": "Successfully removed", - "Rename": "Rename", - "RenameNode": "Rename nodes", - "ReplaceNodeAssetsAdminUserWithThis": "Replace asset admin", - "Replay": "Playback", - "ReplaySession": "Session replay", - "ReplayStorage": "Object storage", - "ReplayStorageCreateUpdateHelpMessage": "Notice: current sftp storage only supports account backup, video storage is not yet supported.", - "ReplayStorageUpdate": "Update the object storage", - "Reply": "Reply", - "RequestAssetPerm": "Request asset authorization", - "RequestPerm": "Authorization request", - "RequestTickets": "New ticket", - "RequiredAssetOrNode": "Please select at least one asset or node", - "RequiredContent": "Please input command", - "RequiredEntryFile": "This file acts as the entry point for running and must be present", - "RequiredRunas": "Please enter the execution user", - "RequiredSystemUserErrMsg": "Please select account", - "RequiredUploadFile": "Please upload the file!", - "Reset": "Reset", - "ResetAndDownloadSSHKey": "Reset and download key", - "ResetMFA": "Reset mfa", - "ResetMFAWarningMsg": "Are you sure you want to reset the user's mfa?", - "ResetMFAdSuccessMsg": "Mfa reset successful, user can reset mfa again", - "ResetPassword": "Reset password", - "ResetPasswordNextLogin": "Password must be changed during next log in", - "ResetPasswordSuccessMsg": "Reset password message sent to user", - "ResetPasswordWarningMsg": "Are you sure you want to send the password reset email for the user", - "ResetPublicKeyAndDownload": "Reset and download ssh key", - "ResetSSHKey": "Reset ssh key", - "ResetSSHKeySuccessMsg": "Email task submitted, user will receive a url to reset shortly", - "ResetSSHKeyWarningMsg": "Are you sure you want to send a reset ssh key email to the user?", - "Resource": "Resources", - "ResourceType": "Resource type", - "RestoreButton": "Restore", - "RestoreDefault": "Reset to default", - "RestoreDialogMessage": "Are you sure you want to restore to default initialization?", - "RestoreDialogTitle": "Do you confirm?", - "Result": "Result", - "Resume": "Recovery", - "ResumeTaskSendSuccessMsg": "Recovery task issued, please refresh later", - "Retry": "Retry", - "Reviewer": "Approvers", - "Role": "Role", - "RoleCreate": "Create role", - "RoleDetail": "Role details", - "RoleInfo": "Role information", - "RoleList": "Roles", - "RoleUpdate": "Update the role", - "RoleUsers": "Authorized users", - "Rows": "Row", - "Rule": "Condition", - "RuleCount": "Condition quantity", - "RuleDetail": "Rule details", - "RuleRelation": "Relationship conditions", - "RuleRelationHelpTip": "And: the action will be executed only when all conditions are met; or: the action will be executed as long as one condition is met", - "RuleSetting": "Condition settings", - "Rules": "Rules", - "Run": "Execute", - "RunAgain": "Execute again", - "RunAs": "Run user", - "RunCommand": "Run command", - "RunJob": "Run job", - "RunSucceed": "Task successfully completed", - "RunTaskManually": "Manually execute", - "RunasHelpText": "Enter username for running script", - "RunasPolicy": "Account policy", - "RunasPolicyHelpText": "When there are no users currently running on the asset, what account selection strategy should be adopted. skip: do not execute. prioritize privileged accounts: if there are privileged accounts, select them first; if not, select regular accounts. only privileged accounts: select only from privileged accounts; if none exist, do not execute.", - "RunningPath": "Running path", - "RunningPathHelpText": "Enter the run path of the script, this setting only applies to shell scripts", - "RunningTimes": "Last 5 run times", - "SCP": "Sangfor cloud platform", - "SMS": "Message", - "SMSProvider": "SMS service provider", - "SMTP": "Email 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.", - "SSHPort": "SSH Port", - "SSHSecretKey": "SSH Key", - "SafeCommand": "Secure command", - "SameAccount": "Same account", - "SameAccountTip": "Accounts with the same username as authorized users", - "SameTypeAccountTip": "An account with the same username and key type already exists", - "Saturday": "Sat", - "Save": "Save", - "SaveAdhoc": "Save command", - "SaveAndAddAnother": "Save & Continue", - "SaveCommand": "Save command", - "SaveCommandSuccess": "Command saved successfully", - "SaveSetting": "Synchronization settings", - "SaveSuccess": "Save successful", - "SaveSuccessContinueMsg": "Creation successful, you can continue to add content after updating.", - "ScrollToBottom": "Scroll to the bottom", - "ScrollToTop": "Scroll to top", - "Search": "Search", - "SearchAncestorNodePerm": "Search for authorizations simultaneously on the current node and ancestor nodes", - "Secret": "Password", - "SecretKey": "Key", - "SubscriptionID": "Subscription authorization ID", - "SecretKeyStrategy": "Password policy", - "Secure": "Security", - "Security": "Security", - "Select": "Select", - "SelectAdhoc": "Select command", - "SelectAll": "Select all", - "SelectAtLeastOneAssetOrNodeErrMsg": "Select at least one asset or node", - "SelectAttrs": "Select attributes", - "SelectByAttr": "Attribute filter", - "SelectFile": "Select file", - "SelectKeyOrCreateNew": "Select tag key or create new one", - "SelectLabelFilter": "Select label for search", - "SelectPlatforms": "Select platform", - "SelectProperties": "Attributes", - "SelectResource": "Select resources", - "SelectTemplate": "Select template", - "SelectValueOrCreateNew": "Select tag value or create new one", - "Selected": "Selected", - "Selection": "Selection", - "Selector": "Selector", - "Send": "Send", - "SendVerificationCode": "Send verification code", - "SerialNumber": "Serial number", - "Server": "Server", - "ServerAccountKey": "Service account key", - "ServerError": "Server error", - "ServerTime": "Server time", - "Session": "Session", - "SessionCommands": "Session commands", - "SessionConnectTrend": "Session connection trends", - "SessionData": "Session data", - "SessionDetail": "Session details", - "SessionID": "Session id", - "SessionList": "Asset sessions", - "SessionMonitor": "Monitor", - "SessionOffline": "Historical sessions", - "SessionOnline": "Online sessions", - "SessionSecurity": "Asset session", - "SessionState": "Session status", - "SessionTerminate": "Session termination", - "SessionTrend": "Session trends", - "Sessions": "Sessions", - "SessionsAudit": "Sessions", - "SessionsNum": "Sessions", - "Set": "Configured", - "SetDingTalk": "Dingtalk oauth", - "SetFailed": "Setting failed", - "SetFeiShu": "Set feishu authentication", - "SetMFA": "Multi-factor authentication", - "SetSuccess": "Successfully set", - "SetToDefault": "Set as default", - "SetToDefaultStorage": "Set as default storage", - "Setting": "Setting", - "SettingInEndpointHelpText": "Configure service address and port in system settings / component settings / server endpoints", - "Settings": "System settings", - "Show": "Display", - "ShowAssetAllChildrenNode": "Show all sub-nodes assets", - "ShowAssetOnlyCurrentNode": "Only show current node assets", - "ShowNodeInfo": "Show node details", - "SignChannelNum": "Channel signature", - "SiteMessage": "Notifications", - "SiteMessageList": "Notifications", - "Skip": "Skip this asset", - "Skipped": "Skipped", - "Slack": "Slack", - "SlackOAuth": "Slack OAuth", - "Source": "Source", - "SourceIP": "Source address", - "SourcePort": "Source port", - "Spec": "Specific", - "SpecAccount": "Specified", - "SpecAccountTip": "Specify username to choose authorized account", - "SpecialSymbol": "Special char", - "SpecificInfo": "Special information", - "SshKeyFingerprint": "Ssh fingerprint", - "Startswith": "Starts with...", - "State": "Status", - "StateClosed": "Is closed", - "Status": "Status", - "StatusGreen": "Recently in good condition", - "StatusRed": "Last task execution failed", - "StatusYellow": "There have been recent failures", - "Step": "Step", - "Stop": "Stop", - "Storage": "Storage", - "StorageSetting": "Storage", - "Strategy": "Strategy", - "StrategyCreate": "Create policy", - "StrategyDetail": "Policy details", - "StrategyHelpTip": "Identify the unique attributes of assets (such as platforms) based on priority of strategies; when an asset's attribute (like nodes) can be configured to multiple, all actions of the strategies will be executed.", - "StrategyList": "Policy", - "StrategyUpdate": "Update the policy", - "SuEnabled": "Enable switch", - "SuFrom": "Switch from", - "Submit": "Submit", - "Success": "Success", - "SuccessAsset": "Successful assets", - "SuccessfulOperation": "Action successful", - "Summary(success/total)": " overview( successful/total )", - "Sunday": "Sun", - "SuperAdmin": "Super administrator", - "SuperOrgAdmin": "Super admin + organization admin", - "Support": "Support", - "SupportedProtocol": "Protocols", - "SupportedProtocolHelpText": "Set supported protocols for the asset, you can modify the custom configurations, such as sftp directory, rdp ad domain, etc., by clicking on the set button", - "Sync": "Sync", - "SyncDelete": "Sync deletion", - "SyncDeleteSelected": "Sync deletion selected", - "SyncErrorMsg": "Sync failed", - "SyncInstanceTaskCreate": "Create sync task", - "SyncInstanceTaskDetail": "Sync task details", - "SyncInstanceTaskHistoryAssetList": "Synchronize instance", - "SyncInstanceTaskHistoryList": "Synchronization history", - "SyncInstanceTaskList": "Synchronization task", - "SyncInstanceTaskUpdate": "Update the sync task", - "SyncProtocolToAsset": "Sync protocols to assets", - "SyncSelected": "Sync selected", - "SyncSetting": "Sync settings", - "SyncStrategy": "Sync policy", - "SyncSuccessMsg": "Sync succeeded", - "SyncTask": "Sync tasks", - "SyncUpdateAccountInfo": "Sync new secret to accounts", - "SyncUser": "Sync users", - "SyncedCount": "Synchronized", - "SystemError": "System error", - "SystemRole": "System roles", - "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", - "TableColSetting": "Select visible attribute columns", - "TableSetting": "Table preference", - "Target": "Target", - "TargetResources": "Target resource", - "Task": "Task", - "TestSelected": "Test selected", - "TaskDetail": "Task details", - "TaskDone": "Task finished", - "TaskID": "Task id", - "TaskList": "Tasks", - "TaskMonitor": "Monitoring", - "TechnologyConsult": "Technical consultation", - "TempPasswordTip": "The temporary password is valid for 300 seconds and becomes invalid immediately after use", - "TempToken": "Temporary tokens", - "TemplateAdd": "Add from template", - "TemplateCreate": "Create template", - "TemplateHelpText": "When selecting a template to add, accounts that do not exist under the asset will be automatically created and pushed", - "TemplateManagement": "Templates", - "TencentCloud": "Tencent cloud", - "Terminal": "Components", - "TerminalDetail": "Terminal details", - "TerminalUpdate": "Update the terminal", - "TerminalUpdateStorage": "Update the terminal storage", - "Terminate": "Terminate", - "TerminateTaskSendSuccessMsg": "Task termination has been issued, please refresh and check later", - "TermsAndConditions": "Terms and conditions", - "Test": "Test", - "TestAccountConnective": "Test connectivity", - "TestAssetsConnective": "Test connectivity", - "TestConnection": "Test connection", - "TestGatewayHelpMessage": "If nat port mapping is used, please set it to the real port listened to by ssh", - "TestGatewayTestConnection": "Test connect to gateway", - "TestLdapLoginTitle": "Test ldap user login", - "TestNodeAssetConnectivity": "Test connectivity of asset nodes", - "TestPortErrorMsg": "Port error, please re-enter", - "TestSuccessMsg": "Test succeeded", - "Thursday": "Thu", - "Ticket": "Ticket", - "TicketDetail": "Ticket details", - "TicketFlow": "Ticket flow", - "TicketFlowCreate": "Create approval flow", - "TicketFlowUpdate": "Update the approval flow", - "Tickets": "Tickets", - "Time": "Time", - "TimeDelta": "Time cost", - "TimeExpression": "Time expression", - "Timeout": "Timeout", - "TimeoutHelpText": "When this value is -1, no timeout is specified.", - "Timer": "Timer", - "Title": "Title", - "To": "To", - "Today": "Today", - "TodayFailedConnections": "Failed sessions today", - "Token": "Token", - "Total": "Total", - "TotalJobFailed": "Failed execution actions", - "TotalJobLog": "Total job executions", - "TotalJobRunning": "Running jobs", - "Transfer": "Transfer", - "Tuesday": "Tue", - "TwoAssignee": "Subscribe to authorization id", - "TwoAssigneeType": "Secondary recipient type", - "Type": "Type", - "TypeTree": "Type tree", - "Types": "Type", - "UCloud": "Ucloud uhost", - "UnSyncCount": "Not synced", - "Unbind": "Unlink", - "UnbindHelpText": "Local users are the source of this authentication and cannot be unbound", - "Unblock": "Unlock", - "UnblockSelected": "Unblock selected", - "UnblockSuccessMsg": "Unlock successful", - "UnblockUser": "Unlock user", - "UniqueError": "Only one of the following properties can be set", - "UnlockSuccessMsg": "Unlock successful", - "UnselectedOrg": "No organization selected", - "UnselectedUser": "No user selected", - "UpDownload": "Upload & download", - "Update": "Update", - "UpdateAccount": "Update the account", - "UpdateAccountTemplate": "Update the account template", - "UpdateAssetDetail": "Configure more information", - "UpdateAssetUserToken": "Update account authentication information", - "UpdateEndpoint": "Update the endpoint", - "UpdateEndpointRule": "Update the endpoint rule", - "UpdateErrorMsg": "Update failed", - "UpdateNodeAssetHardwareInfo": "Update node assets hardware information", - "UpdatePlatformHelpText": "The asset will be updated only if the original platform type is the same as the selected platform type. if the platform types before and after the update are different, it will not be updated.", - "UpdateSSHKey": "Change ssh public key", - "UpdateSelected": "Update selected", - "UpdateSuccessMsg": "Successfully updated !", - "Updated": "Updated", - "Upload": "Upload", - "UploadCsvLth10MHelpText": "Only csv/xlsx can be uploaded, and no more than 10m", - "UploadDir": "Upload path", - "UploadFileLthHelpText": "Less than {limit}m supported", - "UploadPlaybook": "Upload playbook", - "UploadSucceed": "Upload succeeded", - "UploadZipTips": "Please upload a file in zip format", - "Uploading": "Uploading file", - "Uppercase": "Uppercase", - "UseProtocol": "User agreement", - "UseSSL": "Use ssl/tls", - "User": "User", - "UserAclLists": "Login ACLs", - "UserAssetActivity": "User/asset activity", - "UserCreate": "Create user", - "UserData": "User", - "UserDetail": "User details", - "UserGroupCreate": "Create user group", - "UserGroupDetail": "User group details", - "UserGroupList": "Groups", - "UserGroupUpdate": "Update the user group", - "UserGroups": "Groups", - "UserList": "Users", - "UserLoginACLHelpMsg": "When logging into the system, the user's login ip and time range can be audited to determine whether they are allowed to log into the system (effective globally)", - "UserLoginACLHelpText": "When logging in, it can be audited based on the user's login ip and time segment to determine whether the user can log in", - "UserLoginAclCreate": "Create user login control", - "UserLoginAclDetail": "User login control details", - "UserLoginAclList": "User login", - "UserLoginAclUpdate": "Update the user login control", - "UserLoginLimit": "User restriction", - "UserLoginTrend": "Account login trend", - "UserPasswordChangeLog": "User password change log", - "UserSession": "Asset sessions", - "UserSwitchFrom": "Switch from", - "UserUpdate": "Update the user", - "Username": "Username", - "UsernamePlaceholder": "Please enter username", - "Users": "User", - "UsersAmount": "User", - "UsersAndUserGroups": "Users/user groups", - "UsersTotal": "Total accounts", - "Valid": "Valid", - "Variable": "Variable", - "VariableHelpText": "You can use {{ key }} to read built-in variables in commands", - "VaultHelpText": "1. for security reasons, vault storage must be enabled in the configuration file.
2. after enabled, fill in other configurations, and perform tests.
3. carry out data synchronization, which is one-way, only syncing from the local database to the distant vault, once synchronization is completed, the local database will no longer store passwords, please back up your data.
4. after modifying vault configuration the second time, you need to restart the service.", - "VerificationCodeSent": "Verification code has been sent", - "VerifySignTmpl": "Sms template", - "Version": "Version", - "View": "View", - "ViewBlockedIPSHelpText": "View list of locked ips", - "ViewMore": "View more", - "ViewPerm": "View", - "ViewSecret": "View ciphertext", - "VirtualAccountDetail": "Virtual account details", - "VirtualAccountHelpMsg": "Virtual accounts are specialized accounts with specific purposes when connecting assets.", - "VirtualAccountUpdate": "Virtual account update", - "VirtualAccounts": "Virtual accounts", - "VirtualApp": "Virtual app", - "VirtualAppDetail": "Virtual app details", - "VirtualApps": "Virtual app", - "Volcengine": "Volcengine", - "Warning": "Warning", - "WeCom": "Wecom", - "WeComOAuth": "WeCom OAuth", - "WeComTest": "Test", - "WebCreate": "Create asset - web", - "WebHelpMessage": "Web type assets depend on remote applications, please go to system settings and configure in remote applications", - "WebSocketDisconnect": "Websocket disconnected", - "WebTerminal": "Web terminal", - "WebUpdate": "Update the asset - web", - "Wednesday": "Wed", - "Week": "Week", - "WeekAdd": "New this week", - "WeekOrTime": "Day/time", - "WildcardsAllowed": "Allowed wildcards", - "WindowsPushHelpText": "Windows assets temporarily do not support key push", - "WordSep": " ", - "Workbench": "Workbench", - "Workspace": "Workspace", - "Yes": "Yes", - "YourProfile": "Your profile", - "ZStack": "ZStack", - "Zone": "Zone", - "ZoneCreate": "Create zone", - "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", - "TailLog": "Tail Log", - "NoLog": "No log" + "ACLs": "ACLs", + "APIKey": "Api key", + "AWS_China": "AWS(China)", + "AWS_Int": "AWS(International)", + "About": "About", + "Accept": "Accept", + "AccessIP": "Ip whitelist", + "AccessKey": "Access key", + "Account": "Account", + "NoPermissionInGlobal": "No permission in GLOBAL", + "AccountTemplateList": "Account templates", + "AccountBackup": "Backup accounts", + "AccountBackupCreate": "Create account backup", + "AccountBackupDetail": "Backup account details", + "ManualExecution": "Manual execution", + "AccountChangeSecretDetail": "Change account secret details", + "AccountBackupList": "Backup account", + "AccountBackupUpdate": "Update account backup", + "AccountChangeSecret": "Change account secret", + "AccountDeleteConfirmMsg": "Delete account, continue?", + "AccountExportTips": "The exported information contains sensitive information such as encrypted account numbers. the exported format is an encrypted zip file (if you have not set the encryption password, please go to personal info to set the file encryption password).", + "GatheredAccountList": "Gathered accounts", + "AccountGatherList": "Gather accounts", + "AccountGatherDetail": "Gather account details", + "AccountPushDetail": "Push account details", + "AccountGatherTaskList": "Gather account tasks", + "AccountGatherTaskCreate": "Create gather accounts task", + "AccountGatherTaskUpdate": "Update the gather accounts task", + "AccountList": "Accounts", + "AccountPolicy": "Account policy", + "AccountPolicyHelpText": "For accounts that do not meet the requirements when creating, such as: non-compliant key types and unique key constraints, you can choose the above strategy.", + "AccountPushCreate": "Create push account", + "AccountPushList": "Push accounts", + "MenuAccountTemplates": "Templates", + "AccountPushUpdate": "Update push account", + "AccountStorage": "Account storage", + "AccountTemplate": "Account templates", + "AccountTemplateUpdateSecretHelpText": "The account list shows the accounts created through the template. when the secret is updated, the ciphertext of the accounts created through the template will be updated.", + "Accounts": "Accounts", + "Action": "Action", + "ActionCount": "Action count", + "PermAction": "Permission Action", + "ActionSetting": "Action setting", + "Actions": "Action", + "ActionsTips": "The effects of each authority's agreement are different, click on the icon behind the authority to view", + "Activate": "Activate", + "ActivateSelected": "Activate selected", + "Active": "Active", + "ActiveAsset": "Recently logged in", + "ActiveAssetRanking": "Login asset ranking", + "ActiveUser": "Logged in recently", + "ActiveUsers": "Active users", + "Activity": "Activities", + "Add": "Add", + "AddAccount": "Add account", + "AddAccountResult": "Account batch adding results", + "AddAccountByTemplate": "Add account from template", + "AddAllMembersWarningMsg": "Are you sure add all user to this group ?", + "AddAsset": "Add assets", + "AddAssetToNode": "Add assets to node", + "AddAssetToThisPermission": "Add assets", + "AddInDetailText": "After successful creation or update, add to the details", + "AddNode": "Add node", + "AddNodeToThisPermission": "Add nodes", + "AddPassKey": "Add passkey", + "AddRolePermissions": "Add permissions to the details after successful creation/update", + "AddSuccessMsg": "Add successful", + "AddUserGroupToThisPermission": "Add user groups", + "AddUserToThisPermission": "Add users", + "Address": "Address", + "AdhocDetail": "Command details", + "AdhocManage": "Command", + "AdhocUpdate": "Update the command", + "Advanced": "Advanced settings", + "AfterChange": "After changes", + "AjaxError404": "404 request error", + "AlibabaCloud": "Alibaba cloud", + "Aliyun": "Alibaba cloud", + "All": "All", + "AllAccountTip": "All accounts already added on the asset", + "AllAccounts": "All", + "AllClickRead": "All marked as read", + "AllMembers": "All members", + "AllowInvalidCert": "Ignore certificate check", + "Announcement": "Announcement", + "AnonymousAccount": "Anonymous account", + "AnonymousAccountTip": "Connect to assets without using username and password, only support web type and custom type assets", + "ApiKey": "Api key", + "ApiKeyList": "Authenticate via api key in the header of each request, which differs from one request to another, offering greater security than token method. please consult the documentation for usage.
to minimize the risk of leaks, the secret can only be viewed upon creation, and each user can create up to 10", + "ApiKeyWarning": "To reduce the risk of accesskey leakage, the secret is only provided at creation and cannot be queried later, please keep it safe.", + "AppEndpoint": "App access address", + "AppOps": "Job center", + "AppProvider": "Application providers", + "AppProviderDetail": "Application provider details", + "AppletDetail": "Remoteapp", + "AppletHelpText": "In the upload process, if the application does not exist, create the application; if it exists, update the application.", + "AppletHostCreate": "Add remote application release machine", + "AppletHostDetail": "Remote application publishing machine details", + "AppletHostSelectHelpMessage": "When connecting to an asset, the selection of the application publishing machine is random (but the last used one is preferred). if you want to assign a specific publishing machine to an asset, you can tag it as or ;
when selecting an account for the publishing machine, the following situations will choose the user's own account with the same name or proprietary account (starting with js), otherwise use a public account (starting with jms):
  1. both the publishing machine and application support concurrent;
  2. the publishing machine supports concurrent, but the application does not, and the current application does not use a proprietary account;
  3. the publishing machine does not support concurrent, the application either supports or does not support concurrent, and no application uses a proprietary account;
note: whether the application supports concurrent connections is decided by the developer, and whether the host supports concurrent connections is decided by the single user single session setting in the publishing machine configuration", + "AppletHostUpdate": "Update the remote app publishing machine", + "AppletHostZoneHelpText": "This domain belongs to the system organization", + "AppletHosts": "Remoteapp machine", + "Applets": "Remoteapp", + "Applicant": "Applicant", + "Applications": "Assets", + "ApplyAsset": "Apply for assets", + "ApplyFromCMDFilterRule": "Command filter rules", + "ApplyFromSession": "Session", + "ApplyInfo": "Apply info", + "ApplyRunAsset": "Assets for which operations are requested", + "ApplyRunCommand": "Command for application", + "ApplyRunUser": "Users applying for run", + "Appoint": "Specify", + "ApprovaLevel": "Approval information", + "ApprovalLevel": "Approval level", + "ApprovalProcess": "Approval process", + "Approved": "Agreed", + "ApproverNumbers": "Approvers", + "ApsaraStack": "Alibaba cloud private cloud", + "Asset": "Asset", + "AssetAccount": "Accounts", + "Success/Total": "Success/Total", + "AssetAccountDetail": "Account details", + "AssetAclCreate": "Create asset connect rule", + "AssetAclDetail": "Asset connect rule details", + "AssetAclList": "Asset connect", + "AssetAclUpdate": "Update the asset connect rules", + "AssetAddress": "Asset (ip/hostname)", + "AssetAmount": "Asset amount", + "AssetAndNode": "Assets/nodes", + "AssetBulkUpdateTips": "Network devices, cloud services, web, batch updating of zones not supported", + "AssetChangeSecretCreate": "Create account secret change", + "AssetChangeSecretUpdate": "Update account secret change", + "AssetData": "Asset", + "AssetDetail": "Asset details", + "AssetList": "Assets", + "AssetListHelpMessage": "On the left is the asset tree. right-click to create, delete or modify tree nodes. assets are also organized in node form. on the right are the assets under this node. \n", + "AssetLoginACLHelpMsg": "When logging into assets, it can be audited based on the user's login ip and time segment to determine whether the assets can be logged into", + "AssetLoginACLHelpText": "When logging into assets, it can be audited based on the user's login ip and time segment to determine whether the assets can be logged into", + "AssetName": "Asset name", + "AssetPermission": "Authorization", + "AssetPermissionCreate": "Create asset authorization rule", + "AssetPermissionDetail": "Asset authorization details", + "AssetPermissionHelpMsg": "Asset authorization allows you to select users and assets, grant the assets to users for access. once completed, users can conveniently view these assets. additionally, you can set specific permissions to further define the users' rights to the assets.", + "AssetPermissionRules": "Authorization rules", + "AssetPermissionUpdate": "Update the asset authorization rules", + "AssetPermsAmount": "Asset authorization number", + "AssetProtocolHelpText": "! The protocols supported by the assets are restricted by the platform. Click the settings button to view the protocol settings. If updates are required, please update the platform", + "AssetTree": "Asset tree", + "Assets": "Assets", + "AssetsAmount": "Asset amount", + "AssetsTotal": "Total assets", + "AssignedInfo": "Approval information", + "Assignee": "Handler", + "Assignees": "Pending handler", + "AttrName": "Attribute name", + "AttrValue": "Attribute value", + "Audits": "Audits", + "Auth": "Authentication", + "AuthLimit": "Login restriction", + "AuthSAMLCertHelpText": "Save after uploading the certificate key, then view sp metadata", + "AuthSAMLKeyHelpText": "Sp certificates and keys are used for encrypted communication with idp", + "AuthSaml2UserAttrMapHelpText": "The keys on the left are saml2 user attributes, the values on the right are authentication platform user attributes", + "AuthSecurity": "Auth security", + "AuthSettings": "Authentication configuration", + "AuthUserAttrMapHelpText": "The key on the left belongs to the jumpserver user properties, and the value on the right belongs to the authentication platform user properties", + "Authentication": "Authentication", + "AutoPush": "Auto push", + "Automations": "Automations", + "AverageTimeCost": "Average spend time", + "AwaitingMyApproval": "Assigned", + "Azure": "Azure (china)", + "Backup": "Backup", + "BackupAccountsHelpText": "Backup account information externally. it can be stored in an external system or sent via email, supporting segmented delivery.", + "BadConflictErrorMsg": "Refreshing, please try again later", + "BadRequestErrorMsg": "Request error, please check the filled content", + "BadRoleErrorMsg": "Request error, no permission for this action", + "BaiduCloud": "Baidu cloud", + "BasePort": "Listening ports", + "Basic": "Basic", + "BasicInfo": "Basic information", + "BasicSettings": "General", + "BatchConsent": "Batch Approval", + "BatchDeployment": "Batch deployment", + "BatchProcessing": "{number} items selected", + "BatchReject": "Batch reject", + "BatchTest": "Batch test", + "BatchTransfer": "File transfer", + "BeforeChange": "Before change", + "Beian": "Record", + "BelongAll": "Including at the same time", + "BelongTo": "Any includes", + "Bind": "Binding", + "BindLabel": "Associated tags", + "BindResource": "Associated resources", + "BindSuccess": "Binding successful", + "BlockedIPS": "Locked ips", + "BuiltinVariable": "Built-in variables", + "BulkClearErrorMsg": "Bulk clear failed: ", + "BulkDeleteErrorMsg": "Bulk delete failed: ", + "BulkDeleteSuccessMsg": "Bulk delete successful", + "BulkDeploy": "Bulk deploy", + "BulkRemoveErrorMsg": "Bulk remove failed: ", + "BulkRemoveSuccessMsg": "Bulk remove successful", + "BulkSyncErrorMsg": "Bulk sync failed: ", + "CACertificate": "Ca certificate", + "CAS": "CAS", + "CMPP2": "Cmpp v2.0", + "CTYunPrivate": "Tianyi private cloud", + "CalculationResults": "Error in cron expression", + "CanDragSelect": "Select time period by dragging mouse", + "Cancel": "Cancel", + "CancelCollection": "Cancel favorite", + "CannotAccess": "Can't access the current page", + "Category": "Category", + "CeleryTaskLog": "Celery task log", + "Certificate": "Certificate", + "CertificateKey": "Client key", + "ChangeCredentials": "Change account secrets", + "ChangeCredentialsHelpText": "The secret is the password or key used to connect to the asset. when the secret is changed, the asset will be updated with the new secret", + "ChangeField": "Change field", + "ChangeOrganization": "Change organization", + "ChangePassword": "Change password", + "EditRecipient": "Edit recipient", + "ChangeSecretParams": "Change password parameters", + "ChangeViewHelpText": "Click to switch different views", + "Chat": "Chat", + "ChatHello": "Hello! Can i help you?", + "ChatAI": "Chat AI", + "ChdirHelpText": "By default, the execution directory is the user's home directory", + "CheckAssetsAmount": "Check asset quantity", + "CheckViewAcceptor": "Click to view the acceptance person", + "CleanHelpText": "A scheduled cleanup task will be carried out every day at 2 a.m. the data cleaned up will not be recoverable", + "Cleaning": "Regular clean-up", + "Clear": "Clear", + "ClearErrorMsg": "Clearing failed:", + "ClearScreen": "Clear screen", + "ClearSecret": "Clear secret", + "ClearSelection": "Clear selection", + "ClearSuccessMsg": "Clear successful", + "ClickCopy": "Click to copy", + "ClientCertificate": "Client certificate", + "ClipboardCopyPaste": "Clipboard copy and paste", + "Clone": "Clone", + "Duplicate": "Duplicate", + "Close": "Close", + "CloseConfirm": "Confirm close", + "CloseConfirmMessage": "File has changed, save?", + "CloseStatus": "Completed", + "Closed": "Completed", + "CloudAccountCreate": "Create a cloud account", + "CloudAccountDetail": "Details of cloud account", + "CloudAccountList": "Cloud accounts", + "CloudAccountUpdate": "Update the cloud account", + "CloudCreate": "Create asset - cloud", + "CloudRegionTip": "The region was not obtained, please check the account", + "CloudSource": "Sync source", + "CloudSync": "Cloud provider", + "CloudUpdate": "Update the asset - cloud", + "Cluster": "Cluster", + "CollectionSucceed": "Collection successful", + "Command": "Command", + "CommandConfirm": "Command review", + "CommandFilterACL": "Command filter", + "CommandFilterACLHelpMsg": "By filtering commands, you can control if commands can be sent to assets. based on your set rules, some commands can be allowed while others are prohibited.", + "CommandFilterACLHelpText": "By filtering commands, you can control if commands can be sent to assets. based on your set rules, some commands can be allowed while others are prohibited.", + "CommandFilterAclCreate": "Create command filter rule", + "CommandFilterAclDetail": "Details of command filter rule", + "CommandFilterAclList": "Command filter", + "CommandFilterAclUpdate": "Update the command filter rule", + "CommandFilterRuleContentHelpText": "One command per line", + "CommandFilterRules": "Command filter rules", + "CommandGroup": "Command group", + "CommandGroupCreate": "Create command group", + "CommandGroupDetail": "Command set details", + "CommandGroupList": "Command group", + "CommandGroupUpdate": "Update the command group", + "CommandStorage": "Command storage", + "CommandStorageUpdate": "Update the cmd storage", + "Commands": "Commands", + "CommandsTotal": "Total commands", + "Comment": "Description", + "CommentHelpText": "Description will be displayed when hovered over in the Luna page's user authorization asset tree. Ordinary users can view these remarks, so please do not include sensitive information.", + "CommunityEdition": "Community version", + "Component": "Component", + "ComponentMonitor": "Monitoring", + "ConceptContent": "I want you to act like a python interpreter. i will give you python code, and you will execute it. do not provide any explanations. respond with nothing except the output of the code.", + "ConceptTitle": "🤔 python interpreter", + "Config": "Settings", + "Configured": "Configured", + "Confirm": "Confirm", + "ConfirmPassword": "Confirm password", + "ConnectAssets": "Connect assets", + "ConnectMethod": "Connect method", + "ConnectMethodACLHelpMsg": "Connect methods can be filtered to control whether users can use a certain connect method to log in to the asset. according to your set rules, some connect methods can be allowed, while others can be prohibited (globally effective).", + "ConnectMethodACLHelpText": "Connect methods can be filtered to control whether users can use a certain connect method to log in to the asset. according to your set rules, some connect methods can be allowed, while others can be prohibited.", + "ConnectMethodAclCreate": "Create connect method control", + "ConnectMethodAclDetail": "Connect method control details", + "ConnectMethodAclList": "Connect method", + "ConnectMethodAclUpdate": "Update the connect method control", + "ConnectWebSocketError": "Connection to websocket failed", + "ConnectionDropped": "Connection disconnected", + "ConnectionToken": "Connection tokens", + "ConnectionTokenList": "The connection token is a type of authentication information that combines identity verification with connecting assets. it supports one-click user login to assets. currently supported components include: koko, lion, magnus, razor, etc.", + "Console": "Console", + "Consult": "Consult", + "ContainAttachment": "With attachment", + "Containers": "Container", + "Contains": "Contains", + "Continue": "Continue", + "ConvenientOperate": "Convenient action", + "Copy": "Copy", + "CopySuccess": "Copy successful", + "Corporation": "Company", + "Create": "Create", + "CreateAccessKey": "Create access key", + "CreateAccountTemplate": "Create account template", + "CreateCommandStorage": "Create command storage", + "CreateEndpoint": "Create endpoint", + "CreateEndpointRule": "Create endpoint rule", + "CreateErrorMsg": "Creation failed", + "CreateNode": "Create node", + "CreatePlaybook": "Create playbook", + "CreateReplayStorage": "Create object storage", + "CreateSuccessMsg": "Successfully created !", + "CreateUserSetting": "User creation", + "Created": "Created", + "Crontab": "Crontab", + "Interval": "Interval", + "CreatedBy": "Creator", + "CriticalLoad": "Serious", + "CronExpression": "Complete crontab expression", + "CrontabHelpText": "If both interval and crontab are set, crontab is prioritized", + "CrontabHelpTip": "For example: perform every sunday at 03:05 <5 3 * * 0>
use 5-digit linux crontab expressions (online tool)
", + "CrontabOfCreateUpdatePage": "", + "CurrentConnectionUsers": "Online users", + "CurrentConnections": "Current connections", + "CurrentUserVerify": "Verify current user", + "Custom": "Custom", + "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", + "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", + "CustomUser": "Customized user", + "CycleFromWeek": "Week cycle from", + "CyclePerform": "Execute periodically", + "Danger": "Danger", + "DangerCommand": "Dangerous command", + "DangerousCommandNum": "Total dangerous commands", + "Dashboard": "Dashboard", + "Database": "Database", + "DatabaseCreate": "Create asset - database", + "DatabasePort": "Database protocol port", + "DatabaseUpdate": "Update the asset-database", + "Date": "Date", + "DateCreated": "Creation time", + "DateEnd": "End date", + "DateExpired": "Expiration date", + "DateFinished": "Completion date", + "DateJoined": "Creation date", + "DateLast24Hours": "Last day", + "DateLast3Months": "Last 3 months", + "DateLastHarfYear": "Last 6 months", + "DateLastLogin": "Last login date", + "DateLastMonth": "Last month", + "DateLastSync": "Last synchronization date", + "DateLastWeek": "Last week", + "DateLastYear": "Last year", + "DatePasswordLastUpdated": "Last password update date", + "DateStart": "Start date", + "DateSync": "Sync date", + "DateUpdated": "Update date", + "Day": "Day", + "DeclassificationLogNum": "Password change logs", + "DefaultDatabase": "Default database", + "DefaultPort": "Default port", + "Delete": "Delete", + "DeleteConfirmMessage": "Deletion is irreversible, do you wish to continue?", + "DeleteErrorMsg": "Delete failed", + "DeleteNode": "Delete node", + "DeleteOrgMsg": "User list, user group, asset list, network zone list, manage users, system users, tag management, asset authorization rules", + "DeleteOrgTitle": "Please ensure the following information within the organization has been deleted", + "DeleteReleasedAssets": "Delete released assets", + "DeleteSelected": "Delete selected", + "DeleteSuccess": "Successfully deleted", + "DeleteSuccessMsg": "Successfully deleted", + "ActivateSuccessMsg": "Successful activated", + "DeleteWarningMsg": "Are you sure you want to delete", + "Deploy": "Deployment", + "Description": "Description", + "DestinationIP": "Destination address", + "DestinationPort": "Destination port", + "Detail": "Detail", + "DeviceCreate": "Create asset - device", + "DeviceUpdate": "Update the asset - device", + "Digit": "Number", + "DingTalk": "Dingtalk", + "DingTalkOAuth": "DingTalk OAuth", + "DingTalkTest": "Test", + "Disable": "Disable", + "DisableSelected": "Disable selected", + "DisplayName": "Name", + "Docs": "Document", + "Download": "Download", + "DownloadCenter": "Download center", + "DownloadFTPFileTip": "The current action does not record files, or the file size exceeds the threshold (default 100m), or it has not yet been saved to the corresponding storage", + "DownloadImportTemplateMsg": "Download creation template", + "DownloadReplay": "Download recording", + "DownloadUpdateTemplateMsg": "Download update template", + "DragUploadFileInfo": "Drag files here, or click to upload", + "DuplicateFileExists": "Uploading a file with the same name is not allowed, please delete the file with the same name", + "Duration": "Duration", + "DynamicUsername": "Dynamic username", + "Edit": "Edit", + "Edition": "Version", + "Email": "Email", + "EmailContent": "Custom content", + "EmailTest": "Test connection", + "Empty": "Empty", + "Enable": "Enable", + "EnableKoKoSSHHelpText": "When switched on, connecting to the asset will display ssh client pull-up method", + "Endpoint": "Service endpoints", + "EndpointListHelpMessage": "The service endpoint is the address (port) for users to access the service. when users connect to assets, they choose service endpoints based on endpoint rules and asset labels, using them as access points to establish connections and achieve distributed connections to assets", + "EndpointRule": "Endpoint rules", + "EndpointRuleListHelpMessage": "For the server endpoint selection strategy, there are currently two options:
1、specify the endpoint according to the endpoint rule (current page);
2、choose the endpoint through asset labels, with the fixed label name being 'endpoint' and the value being the name of the endpoint.
the tag matching method is preferred for both methods, as the ip range may conflict, and the tag method exists as a supplement to the rules.", + "Endswith": "Ending with...", + "EnsureThisValueIsGreaterThanOrEqualTo1": "Please make sure this number is greater than or equal to 1", + "EnterForSearch": "Press enter to search", + "EnterRunUser": "Enter running account", + "EnterRunningPath": "Enter running path", + "EnterToContinue": "Press enter to continue", + "EnterUploadPath": "Enter upload path", + "Enterprise": "Enterprise", + "EnterpriseEdition": "Enterprise edition", + "Equal": "Equals", + "Error": "Error", + "ErrorMsg": "Error", + "EsDisabled": "Node is unavailable, please contact administrator", + "EsIndex": "Es provides the default index: jumpserver. if indexing by date is enabled, the entered value will serve as the index prefix", + "EsUrl": "Cannot include special char `#`; eg: http://es_user:es_password@es_host:es_port", + "Every": "Every", + "Exclude": "Does not include", + "ExcludeAsset": "Skipped assets", + "ExcludeSymbol": "Exclude char", + "ExecCloudSyncErrorMsg": "The cloud account configuration is incomplete, please update and try again.", + "Execute": "Execute", + "ExecuteOnce": "Execute once", + "ExecutionDetail": "Execution details", + "ExecutionList": "Executions", + "ExistError": "This element already exists", + "Existing": "Already exists", + "ExpirationTimeout": "Expiration timeout (seconds)", + "Expire": "Expired", + "Expired": "Expiration date", + "Export": "Export", + "ExportAll": "Export all", + "ExportOnlyFiltered": "Export filtered items", + "ExportOnlySelectedItems": "Export selected items", + "ExportRange": "Export range", + "FC": "Fusion compute", + "Failed": "Failed", + "FailedAsset": "Failed assets", + "FaviconTip": "Note: website icon (suggested image size: 16px*16px)", + "Features": "Features", + "FeiShu": "FeiShu", + "FeiShuOAuth": "Feishu OAuth", + "FeiShuTest": "Test", + "FieldRequiredError": "This field is required", + "FileExplorer": "File explorer", + "FileManagement": "File manager", + "FileNameTooLong": "File name too long", + "FileSizeExceedsLimit": "File size exceeds limit", + "FileTransfer": "File transfer", + "FileTransferBootStepHelpTips1": "Select one asset or node", + "FileTransferBootStepHelpTips2": "Select running account and input command", + "FileTransferBootStepHelpTips3": "Transfer,display output results", + "FileTransferNum": "Number of file transfers", + "FileType": "File type", + "Filename": "File name", + "FingerPrint": "Fingerprint", + "Finished": "Complete", + "FinishedTicket": "Complete ticket", + "FirstLogin": "First login", + "FlowSetUp": "Flow setup", + "Footer": "Footer", + "FormatError": "Format error", + "Friday": "Fri", + "From": "From", + "FromTicket": "From the ticket", + "FullName": "Full name", + "FullySynchronous": "Assets completely synchronized", + "FullySynchronousHelpTip": "Whether to continue synchronizing such assets when the asset conditions do not meet the matching policy rules", + "GCP": "Google cloud", + "GPTCreate": "Create asset - gpt", + "GPTUpdate": "Update the asset - gpt", + "GatewayCreate": "Create gateway", + "GatewayList": "Gateways", + "GatewayUpdate": "Update the gateway", + "GatherAccounts": "Gather accounts", + "GatherAccountsHelpText": "Collect account information on assets. the collected account information can be imported into the system for centralized management.", + "GeneralAccounts": "General accounts", + "Generate": "Generate", + "GenerateAccounts": "Regenerate account", + "GenerateSuccessMsg": "Account creation successful", + "GeneralSetting": "General", + "GoHomePage": "Go to homepage", + "Goto": "Goto", + "GrantedAssets": "Authorized assets", + "GreatEqualThan": "Greater than or equal to", + "GroupsAmount": "User group", + "HandleTicket": "Handle tickets", + "Hardware": "Hardware information", + "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", + "HistoryDate": "Date", + "HistoryPassword": "Historical password", + "HistoryRecord": "History record", + "Host": "Asset", + "HostCreate": "Create asset - host", + "HostDeployment": "Deploy publishing machine", + "HostList": "Host", + "HostUpdate": "Update the asset - host", + "HostnameStrategy": "Used to generate hostnames for assets. for example: 1. instance name (instancedemo); 2. instance name and part of ip (last two letters) (instancedemo-250.1)", + "Hour": "Hour", + "HuaweiCloud": "Huawei cloud", + "HuaweiPrivateCloud": "Huawei private cloud", + "IAgree": "I agree", + "ID": "Id", + "IP": "Ip", + "IPLoginLimit": "Ip restriction", + "IPMatch": "Ip matching", + "IPNetworkSegment": "Ip segment", + "Id": "Id", + "IdeaContent": "I want you to act as a linux terminal. i will input the commands, you will respond with what the terminal should display. i hope you to reply only in a unique code block, not others. no interpretations. when i need to tell you something, i'm gonna put the words in braces {note text}", + "IdeaTitle": "🌱 linux terminal", + "IdpMetadataHelpText": "Either idp metadata url or idp metadata xml is acceptable, with idp metadata url having higher priority", + "IdpMetadataUrlHelpText": "Load idp metadata from remote address", + "ImageName": "Image name", + "Images": "Image", + "Import": "Import", + "ImportAll": "Import all", + "ImportFail": "Import failed", + "ImportLdapUserTip": "Please submit ldap configuration before import", + "ImportLdapUserTitle": "Ldap user", + "ImportLicense": "Import license", + "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", + "InAssetDetail": "Update account info in asset details", + "Inactive": "Disabled", + "Index": "Index", + "Info": "Information", + "InformationModification": "Information Modification", + "InheritPlatformConfig": "Inherited from platform configuration, to change, please modify the configuration in the platform", + "InitialDeploy": "Initialization deployment", + "Input": "Input", + "InputEmailAddress": "Please enter the correct email address", + "InputMessage": "Enter message...", + "InputPhone": "Phone number", + "MIN_LENGTH_ERROR": "Passwords must be at least {0} characters.", + "UPPER_CASE_REQUIRED": "Must contain uppercase letters", + "LOWER_CASE_REQUIRED": "Must contain lowercase letters", + "NUMBER_REQUIRED": "Must contain numbers", + "SPECIAL_CHAR_REQUIRED": "Must contain special characters", + "InstanceAddress": "Instance address", + "InstanceName": "Instance name", + "InstancePlatformName": "Instance platform name", + "Interface": "Appearance", + "InterfaceSettings": "Appearance", + "IntervalOfCreateUpdatePage": "Unit: hour", + "InvalidJson": "Invalid json", + "InviteSuccess": "Invitation successful", + "InviteUser": "Invite", + "InviteUserInOrg": "Invite users to join this organization", + "Ip": "IP", + "IpDomain": "Address", + "IpGroup": "Ip group", + "IpGroupHelpText": "* indicates match all. for example: 192.168.10.1, 192.168.1.0/24, 10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64", + "IsActive": "Active", + "IsAlwaysUpdate": "Keeping assets up to date", + "IsAlwaysUpdateHelpTip": "Whether to synchronize and update asset information, including hostname, ip, platform, domain, node, etc. each time a synchronization task is performed", + "IsFinished": "Is it done", + "IsLocked": "Suspend", + "IsSuccess": "Success", + "IsSyncAccountHelpText": "Upon collection completion, the collected account will be synced to asset", + "IsSyncAccountLabel": "Sync to assets", + "JDCloud": "JD cloud", + "Job": "Job", + "JobCenter": "Job center", + "JobCreate": "Create job", + "JobDetail": "Job details", + "JobExecutionLog": "Job logs", + "JobManagement": "Jobs", + "JobUpdate": "Update the job", + "KingSoftCloud": "KingSoft Cloud", + "KokoSetting": "KoKo", + "LDAPUser": "LDAP Users", + "Label": "Label", + "LAN": "LAN", + "LabelCreate": "Create label", + "LabelInputFormatValidation": "Label format error, the correct format is: name:value", + "LabelList": "Labels", + "LabelUpdate": "Update the label", + "Language": "Language", + "LarkOAuth": "Lark OAuth", + "Last30": "Recent 30 items", + "Last30Days": "Monthly", + "Last7Days": "Weekly", + "LastPublishedTime": "Last publish time", + "Ldap": "LDAP", + "LdapBulkImport": "User import", + "LdapConnectTest": "Test connection", + "LdapLoginTest": "Test login", + "Length": "Length", + "LessEqualThan": "Less than or equal to", + "LevelApproval": "Level approval", + "License": "License", + "LicenseExpired": "The license has expired", + "LicenseFile": "License file", + "LicenseForTest": "Test purpose license, this license is only for testing (poc) and demonstration", + "LicenseReachedAssetAmountLimit": "The assets has exceeded the license limit", + "LicenseWillBe": "License expiring soon", + "Loading": "Loading", + "LockedIP": "Locked ip {count}", + "Log": "Log", + "LogData": "Log data", + "LogOfLoginSuccessNum": "Total successful login", + "Logging": "Log record", + "LoginAssetConfirm": "Asset connect review", + "LoginAssetToday": "Active assets today", + "LoginAssets": "Active assets", + "LoginConfirm": "Login review", + "LoginConfirmUser": "Confirm by", + "LoginCount": "Login times", + "LoginDate": "Login date", + "LoginFailed": "Login failed", + "LoginFrom": "Login source", + "LoginImageTip": "Note: it will appear on the enterprise user login page (recommended image size: 492*472px)", + "LoginLog": "Login logs", + "LoginLogTotal": "Total login logs", + "LoginNum": "Total login logs", + "LoginPasswordSetting": "Login password", + "LoginRequiredMsg": "The account has logged out, please log in again.", + "LoginSSHKeySetting": "Login SSH Key", + "LoginSucceeded": "Login successful", + "LoginTitleTip": "Note: it will be displayed on the enterprise edition user ssh login koko login page (e.g.: welcome to use jumpserver open source bastion)", + "LoginUserRanking": "Login account ranking", + "LoginUserToday": "Users logged today", + "LoginUsers": "Active account", + "LogoIndexTip": "Tip: it will be displayed in the upper left corner of the page (recommended image size: 185px*55px)", + "LogoLogoutTip": "Tip: it will be displayed on the web terminal page of enterprise edition users (recommended image size: 82px*82px)", + "Logout": "Sign out", + "LogsAudit": "Activities", + "Lowercase": "Lowercase", + "LunaSetting": "Luna", + "MFAErrorMsg": "MFA errors, please check", + "MFAOfUserFirstLoginPersonalInformationImprovementPage": "Enable multi-factor authentication to make your account more secure.
after enabling, you will enter the multi-factor authentication binding process the next time you log in; you can also directly bind in (personal information->quick modification->change multi-factor settings)!", + "MFAOfUserFirstLoginUserGuidePage": "In order to protect your and the company's security, please carefully safeguard important sensitive information such as your account, password, and key (for example, set a complex password, and enable multi-factor authentication)
personal information such as email, mobile number, and wechat are only used for user authentication and platform internal message notifications.", + "MailRecipient": "Email recipient", + "MailSend": "Sending", + "ManualAccount": "Manual accounts", + "ManualAccountTip": "Manual input of username/password upon login", + "ManyChoose": "Select multiple", + "MarkAsRead": "Mark as read", + "Marketplace": "App market", + "Match": "Match", + "MatchIn": "In...", + "MatchResult": "Match results", + "MatchedCount": "Match results", + "Members": "Members", + "MenuAccounts": "Accounts", + "MenuAcls": "Acls", + "MenuAssets": "Assets", + "MenuMore": "Others", + "MenuPermissions": "Policies", + "MenuUsers": "Users", + "Message": "Message", + "MessageType": "Message type", + "MfaLevel": "MFA", + "Min": "Min", + "Modify": "Edit", + "Module": "Module", + "Monday": "Mon", + "Monitor": "Monitor", + "Month": "Month", + "More": "More", + "MoreActions": "Actions", + "MoveAssetToNode": "Move assets to nodes", + "MsgSubscribe": "Subscription", + "MyAssets": "My assets", + "MyTickets": "Submitted", + "Name": "Name", + "NavHelp": "Navigation", + "NeedReLogin": "Need to re-login", + "New": "Create", + "NewChat": "New chat", + "NewCount": "Add", + "NewCron": "Generate cron", + "NewDirectory": "Create new directory", + "NewFile": "Create new file", + "NewPassword": "New password", + "NewPublicKey": "New Public Key", + "NewSSHKey": "New SSH Key", + "NewSyncCount": "New sync", + "Next": "Next", + "No": "No", + "NoContent": "No content", + "NoData": "No data available", + "NoFiles": "No file, upload on the left", + "NoPermission": "No permissions", + "NoPermission403": "403 no permission", + "NoPermissionVew": "No permission to view the current page", + "NoUnreadMsg": "No unread messages", + "Node": "Node", + "NodeAmount": "Nodes", + "NodeInformation": "Node information", + "NodeSearchStrategy": "Node search strategy", + "NormalLoad": "Normal", + "NotEqual": "Not equal to", + "NotSet": "Not set", + "NotSpecialEmoji": "Special emoji input not allowed", + "Nothing": "None", + "NotificationConfiguration": "Notification Configuration", + "Notifications": "Notifications", + "Now": "Now", + "Number": "No.", + "NumberOfVisits": "Visits", + "OAuth2": "OAuth2", + "OAuth2LogoTip": "Note: authentication provider (recommended image size: 64px*64px)", + "OIDC": "OIDC", + "ObjectNotFoundOrDeletedMsg": "No corresponding resources found or it has been deleted.", + "Offline": "Offline", + "OfflineSelected": "Offline selected", + "OfflineSuccessMsg": "Successfully offline", + "OfflineUpload": "Offline upload", + "OldPassword": "Old password", + "OldPublicKey": "Old Public Key", + "OneAssignee": "First-level approver", + "OneAssigneeType": "First-level handler type", + "OneClickReadMsg": "Are you sure you want to mark the current information as read?", + "OnlineSession": "Online devices", + "OnlineSessionHelpMsg": "Unable to log out of the current session because it is the current user's online session. currently only users logged in via web are being logged.", + "OnlineSessions": "Online sessions", + "OnlineUserDevices": "Online user devices", + "OnlyMailSend": "Current support for email sending", + "OnlySearchCurrentNodePerm": "Only search the current node's authorization", + "OpenCommand": "Open command", + "OpenStack": "Openstack", + "OpenStatus": "In approval", + "OpenTicket": "Create ticket", + "OperateLog": "Operate logs", + "OperationLogNum": "Operation logs", + "Options": "Options", + "OrgAdmin": "Organization admin", + "OrgAuditor": "Organizational auditors", + "OrgName": "Authorized organization name", + "OrgRole": "Organizational roles", + "OrgRoleHelpMsg": "Organization roles are roles tailored to individual organizations within the platform. these roles are assigned when inviting users to join a particular organization and dictate their permissions and access levels within that organization. unlike system roles, organization roles are customizable and apply only within the scope of the organization they are assigned to.", + "OrgRoleHelpText": "The org role is the user's role within the current organization", + "OrgRoles": "Organizational roles", + "OrgUser": "Organize users", + "OrganizationCreate": "Create organization", + "OrganizationDetail": "Organization details", + "OrganizationList": "Organizations", + "OrganizationManage": "Manage orgs", + "OrganizationUpdate": "Update the organization", + "OrgsAndRoles": "Org and roles", + "Other": "Other", + "Output": "Output", + "Overview": "Overview", + "PageNext": "Next", + "PagePrev": "Previous", + "Params": "Parameter", + "ParamsHelpText": "Password parameter settings, currently only effective for assets of the host type.", + "PassKey": "Passkey", + "Passkey": "Passkey", + "PasskeyAddDisableInfo": "Your authentication source is {source}, and adding a passkey is not supported", + "Passphrase": "Key password", + "Password": "Password", + "PasswordAndSSHKey": "Password & SSH Key", + "PasswordChangeLog": "Password change", + "PasswordExpired": "Password expired", + "PasswordPlaceholder": "Please enter password", + "PasswordRecord": "Password record", + "PasswordRule": "Password rules", + "PasswordSecurity": "User password", + "PasswordStrategy": "Secret strategy", + "PasswordWillExpiredPrefixMsg": "Password will be in", + "PasswordWillExpiredSuffixMsg": "It will expire in days, please change your password as soon as possible.", + "Paste": "Paste", + "Pause": "Pause", + "PauseTaskSendSuccessMsg": "Task pausing issued, please refresh and check later", + "Pending": "Pending", + "PermAccount": "Authorized accounts", + "PermUserList": "Authorized users", + "PermissionCompany": "Authorized companies", + "PermissionName": "Authorization rule name", + "Permissions": "Permission", + "PersonalInformationImprovement": "Complete personal information", + "PersonalSettings": "Personal Settings", + "Phone": "Phone", + "Plan": "Plan", + "Platform": "Platform", + "PlatformCreate": "Create platform", + "PlatformDetail": "Platform details", + "PlatformList": "Platforms", + "PlatformPageHelpMsg": "The platform categorizes assets, such as windows, linux, network devices, etc. configuration settings, such as protocols, gateways, etc., can also be specified on the platform to determine whether certain features are enabled on assets.", + "PlatformProtocolConfig": "Platform protocol configuration", + "PlatformUpdate": "Update the platform", + "PlaybookDetail": "Playbook details", + "PlaybookManage": "Playbook", + "PlaybookUpdate": "Update the playbook", + "PleaseAgreeToTheTerms": "Please agree to the terms", + "PolicyName": "Policy name", + "Port": "Port", + "Ports": "Port", + "Preferences": "Preferences", + "Primary": "Primary", + "Priority": "Priority", + "PrivateCloud": "Private cloud", + "PrivateKey": "Private key", + "Privileged": "Privileged", + "PrivilegedFirst": "Privileged first", + "PrivilegedOnly": "Privileged accounts only", + "PrivilegedTemplate": "Privileged", + "Product": "Product", + "ProfileSetting": "Profile info", + "Project": "Project name", + "Prompt": "Prompt", + "Proportion": "Proportion", + "ProportionOfAssetTypes": "Asset type proportion", + "Protocol": "Protocol", + "Protocols": "Protocols", + "Proxy": "Agent", + "PublicCloud": "Public cloud", + "PublicKey": "Public key", + "Publish": "Publish", + "PublishAllApplets": "Publish all applications", + "PublishStatus": "Release status", + "Push": "Push", + "PushAccount": "Push accounts", + "PushAccountsHelpText": "Pushing the account to the target asset allows for configuring different push methods for assets on different platforms.", + "PushParams": "Push parameters", + "Qcloud": "Tencent cloud", + "QcloudLighthouse": "Tencent cloud (lightweight application server)", + "QingYunPrivateCloud": "Qingyun private cloud", + "Queue": "Queue", + "QuickAdd": "Quick add", + "QuickJob": "Adhoc", + "QuickUpdate": "Quick update", + "Radius": "Radius", + "Ranking": "Ranking", + "RazorNotSupport": "Rdp client session, monitoring not supported", + "ReLogin": "Log in again", + "ReLoginTitle": "Current third-party login user (cas/saml), not bound to mfa and does not support password verification, please log in again.", + "RealTimeData": "Real-time", + "Reason": "Reason", + "Receivers": "Receiver", + "RecentLogin": "Recent login", + "RecentSession": "Recent sessions", + "RecentlyUsed": "Recently", + "RecipientHelpText": "If both recipient a and b are set, the account's key will be split into two parts", + "RecipientServer": "Receiving server", + "Reconnect": "Reconnect", + "Refresh": "Refresh", + "RefreshHardware": "Refresh hardware info", + "Regex": "Regular expression", + "Region": "Region", + "RegularlyPerform": "Periodic execution", + "Reject": "Reject", + "Rejected": "Rejected", + "ReleasedCount": "Released", + "RelevantApp": "Application", + "RelevantAsset": "Assets", + "RelevantAssignees": "Related recipient", + "RelevantCommand": "Command", + "RelevantSystemUser": "System user", + "RemoteAddr": "Remote address", + "Remove": "Remove", + "RemoveAssetFromNode": "Remove asset from node", + "RemoveSelected": "Remove selected", + "RemoveSuccessMsg": "Successfully removed", + "Rename": "Rename", + "RenameNode": "Rename nodes", + "ReplaceNodeAssetsAdminUserWithThis": "Replace asset admin", + "Replay": "Playback", + "ReplaySession": "Session replay", + "ReplayStorage": "Object storage", + "ReplayStorageCreateUpdateHelpMessage": "Notice: current sftp storage only supports account backup, video storage is not yet supported.", + "ReplayStorageUpdate": "Update the object storage", + "Reply": "Reply", + "RequestAssetPerm": "Request asset authorization", + "RequestPerm": "Authorization request", + "RequestTickets": "New ticket", + "RequiredAssetOrNode": "Please select at least one asset or node", + "RequiredContent": "Please input command", + "RequiredEntryFile": "This file acts as the entry point for running and must be present", + "RequiredRunas": "Please enter the execution user", + "RequiredSystemUserErrMsg": "Please select account", + "RequiredUploadFile": "Please upload the file!", + "Reset": "Reset", + "ResetAndDownloadSSHKey": "Reset and download key", + "ResetMFA": "Reset mfa", + "ResetMFAWarningMsg": "Are you sure you want to reset the user's mfa?", + "ResetMFAdSuccessMsg": "Mfa reset successful, user can reset mfa again", + "ResetPassword": "Reset password", + "ResetPasswordNextLogin": "Password must be changed during next log in", + "ResetPasswordSuccessMsg": "Reset password message sent to user", + "ResetPasswordWarningMsg": "Are you sure you want to send the password reset email for the user", + "ResetPublicKeyAndDownload": "Reset and download ssh key", + "ResetSSHKey": "Reset ssh key", + "ResetSSHKeySuccessMsg": "Email task submitted, user will receive a url to reset shortly", + "ResetSSHKeyWarningMsg": "Are you sure you want to send a reset ssh key email to the user?", + "Resource": "Resources", + "ResourceType": "Resource type", + "RestoreButton": "Restore", + "RestoreDefault": "Reset to default", + "RestoreDialogMessage": "Are you sure you want to restore to default initialization?", + "RestoreDialogTitle": "Do you confirm?", + "Result": "Result", + "Resume": "Recovery", + "ResumeTaskSendSuccessMsg": "Recovery task issued, please refresh later", + "Retry": "Retry", + "Reviewer": "Approvers", + "Role": "Role", + "RoleCreate": "Create role", + "RoleDetail": "Role details", + "RoleInfo": "Role information", + "RoleList": "Roles", + "RoleUpdate": "Update the role", + "RoleUsers": "Authorized users", + "Rows": "Row", + "Rule": "Condition", + "RuleCount": "Condition quantity", + "RuleDetail": "Rule details", + "RuleRelation": "Relationship conditions", + "RuleRelationHelpTip": "And: the action will be executed only when all conditions are met; or: the action will be executed as long as one condition is met", + "RuleSetting": "Condition settings", + "Rules": "Rules", + "Run": "Execute", + "RunAgain": "Execute again", + "RunAs": "Run user", + "RunCommand": "Run command", + "RunJob": "Run job", + "RunSucceed": "Task successfully completed", + "RunTaskManually": "Manually execute", + "RunasHelpText": "Enter username for running script", + "RunasPolicy": "Account policy", + "RunasPolicyHelpText": "When there are no users currently running on the asset, what account selection strategy should be adopted. skip: do not execute. prioritize privileged accounts: if there are privileged accounts, select them first; if not, select regular accounts. only privileged accounts: select only from privileged accounts; if none exist, do not execute.", + "RunningPath": "Running path", + "RunningPathHelpText": "Enter the run path of the script, this setting only applies to shell scripts", + "RunningTimes": "Last 5 run times", + "SCP": "Sangfor cloud platform", + "SMS": "Message", + "SMSProvider": "SMS service provider", + "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.", + "SSHPort": "SSH Port", + "SSHSecretKey": "SSH Key", + "SafeCommand": "Secure command", + "SameAccount": "Same", + "SameAccountTip": "Accounts with the same username as authorized users", + "SameTypeAccountTip": "An account with the same username and key type already exists", + "Saturday": "Sat", + "Save": "Save", + "SaveAdhoc": "Save command", + "SaveAndAddAnother": "Save & Continue", + "SaveCommand": "Save command", + "SaveCommandSuccess": "Command saved successfully", + "SaveSetting": "Synchronization settings", + "SaveSuccess": "Save successful", + "SaveSuccessContinueMsg": "Creation successful, you can continue to add content after updating.", + "ScrollToBottom": "Scroll to the bottom", + "ScrollToTop": "Scroll to top", + "Search": "Search", + "SearchAncestorNodePerm": "Search for authorizations simultaneously on the current node and ancestor nodes", + "Secret": "Password", + "SecretKey": "Key", + "SubscriptionID": "Subscription authorization ID", + "SecretKeyStrategy": "Password policy", + "Secure": "Security", + "Security": "Security", + "Select": "Select", + "SelectAdhoc": "Select command", + "SelectAll": "Select all", + "SelectAtLeastOneAssetOrNodeErrMsg": "Select at least one asset or node", + "SelectAttrs": "Select attributes", + "SelectByAttr": "Attribute filter", + "SelectFile": "Select file", + "SelectKeyOrCreateNew": "Select tag key or create new one", + "SelectLabelFilter": "Select label for search", + "SelectPlatforms": "Select platform", + "SelectProperties": "Attributes", + "SelectResource": "Select resources", + "SelectTemplate": "Select template", + "SelectValueOrCreateNew": "Select tag value or create new one", + "Selected": "Selected", + "Selection": "Selection", + "Selector": "Selector", + "Send": "Send", + "SendVerificationCode": "Send verification code", + "SerialNumber": "Serial number", + "Server": "Server", + "ServerAccountKey": "Service account key", + "ServerError": "Server error", + "ServerTime": "Server time", + "Session": "Session", + "SessionCommands": "Session commands", + "SessionConnectTrend": "Session connection trends", + "SessionData": "Session data", + "SessionDetail": "Session details", + "SessionID": "Session id", + "SessionList": "Asset sessions", + "SessionMonitor": "Monitor", + "SessionOffline": "Historical sessions", + "SessionOnline": "Online sessions", + "SessionSecurity": "Asset session", + "SessionState": "Session status", + "SessionTerminate": "Session termination", + "SessionTrend": "Session trends", + "Sessions": "Sessions", + "SessionsAudit": "Sessions", + "SessionsNum": "Sessions", + "Set": "Configured", + "SetDingTalk": "Dingtalk oauth", + "SetFailed": "Setting failed", + "SetFeiShu": "Set feishu authentication", + "SetMFA": "Multi-factor authentication", + "SetSuccess": "Successfully set", + "SetToDefault": "Set as default", + "SetToDefaultStorage": "Set as default storage", + "Setting": "Setting", + "SettingInEndpointHelpText": "Configure service address and port in system settings / component settings / server endpoints", + "Settings": "System settings", + "Show": "Display", + "ShowAssetAllChildrenNode": "Show all sub-nodes assets", + "ShowAssetOnlyCurrentNode": "Only show current node assets", + "ShowNodeInfo": "Show node details", + "SignChannelNum": "Channel signature", + "SiteMessage": "Notifications", + "SiteMessageList": "Notifications", + "Skip": "Skip this asset", + "Skipped": "Skipped", + "Slack": "Slack", + "SlackOAuth": "Slack OAuth", + "Source": "Source", + "SourceIP": "Source address", + "SourcePort": "Source port", + "Spec": "Specific", + "SpecAccount": "Specified", + "SpecAccountTip": "Specify username to choose authorized account", + "SpecialSymbol": "Special char", + "SpecificInfo": "Special information", + "SshKeyFingerprint": "Ssh fingerprint", + "Startswith": "Starts with...", + "State": "Status", + "StateClosed": "Is closed", + "Status": "Status", + "StatusGreen": "Recently in good condition", + "StatusRed": "Last task execution failed", + "StatusYellow": "There have been recent failures", + "Step": "Step", + "Stop": "Stop", + "Storage": "Storage", + "StorageSetting": "Storage", + "Strategy": "Strategy", + "StrategyCreate": "Create policy", + "StrategyDetail": "Policy details", + "StrategyHelpTip": "Identify the unique attributes of assets (such as platforms) based on priority of strategies; when an asset's attribute (like nodes) can be configured to multiple, all actions of the strategies will be executed.", + "StrategyList": "Policy", + "StrategyUpdate": "Update the policy", + "SuEnabled": "Enable switch", + "SuFrom": "Switch from", + "Submit": "Submit", + "Success": "Success", + "SuccessAsset": "Successful assets", + "SuccessfulOperation": "Action successful", + "Summary(success/total)": " overview( successful/total )", + "Sunday": "Sun", + "SuperAdmin": "Super administrator", + "SuperOrgAdmin": "Super admin + organization admin", + "Support": "Support", + "SupportedProtocol": "Protocols", + "SupportedProtocolHelpText": "Set supported protocols for the asset, you can modify the custom configurations, such as sftp directory, rdp ad domain, etc., by clicking on the set button", + "Sync": "Sync", + "SyncDelete": "Sync deletion", + "SyncDeleteSelected": "Sync deletion selected", + "SyncErrorMsg": "Sync failed", + "SyncInstanceTaskCreate": "Create sync task", + "SyncInstanceTaskDetail": "Sync task details", + "SyncInstanceTaskHistoryAssetList": "Synchronize instance", + "SyncInstanceTaskHistoryList": "Synchronization history", + "SyncInstanceTaskList": "Synchronization task", + "SyncInstanceTaskUpdate": "Update the sync task", + "SyncProtocolToAsset": "Sync protocols to assets", + "SyncSelected": "Sync selected", + "SyncSetting": "Sync settings", + "SyncStrategy": "Sync policy", + "SyncSuccessMsg": "Sync succeeded", + "SyncTask": "Sync tasks", + "SyncUpdateAccountInfo": "Sync new secret to accounts", + "SyncUser": "Sync users", + "SyncedCount": "Synchronized", + "SystemError": "System error", + "SystemRole": "System roles", + "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": "Tools", + "TableColSetting": "Select visible attribute columns", + "TableSetting": "Table preferences", + "Target": "Target", + "TargetResources": "Target resource", + "Task": "Task", + "TestSelected": "Test selected", + "TaskDetail": "Task details", + "TaskDone": "Task finished", + "TaskID": "Task id", + "TaskList": "Tasks", + "SystemTasks": "Tasks", + "TaskMonitor": "Monitoring", + "TechnologyConsult": "Technical consultation", + "TempPasswordTip": "The temporary password is valid for 300 seconds and becomes invalid immediately after use", + "TempToken": "Temporary tokens", + "TemplateAdd": "Add from template", + "TemplateCreate": "Create template", + "TemplateHelpText": "When selecting a template to add, accounts that do not exist under the asset will be automatically created and pushed", + "TemplateManagement": "Templates", + "TencentCloud": "Tencent cloud", + "Terminal": "Components", + "TerminalDetail": "Terminal details", + "TerminalUpdate": "Update the terminal", + "TerminalUpdateStorage": "Update the terminal storage", + "Terminate": "Terminate", + "TerminateTaskSendSuccessMsg": "Task termination has been issued, please refresh and check later", + "TermsAndConditions": "Terms and conditions", + "Test": "Test", + "TestAccountConnective": "Test connectivity", + "TestAssetsConnective": "Test connectivity", + "TestConnection": "Test connection", + "TestGatewayHelpMessage": "If nat port mapping is used, please set it to the real port listened to by ssh", + "TestGatewayTestConnection": "Test connect to gateway", + "TestLdapLoginTitle": "Test ldap user login", + "TestNodeAssetConnectivity": "Test connectivity of asset nodes", + "TestPortErrorMsg": "Port error, please re-enter", + "TestSuccessMsg": "Test succeeded", + "Thursday": "Thu", + "Ticket": "Ticket", + "TicketDetail": "Ticket details", + "TicketFlow": "Ticket flow", + "TicketFlowCreate": "Create approval flow", + "TicketFlowUpdate": "Update the approval flow", + "Tickets": "Tickets", + "Time": "Time", + "TimeDelta": "Time cost", + "TimeExpression": "Time expression", + "Timeout": "Timeout", + "TimeoutHelpText": "When this value is -1, no timeout is specified.", + "Timer": "Timer", + "Title": "Title", + "To": "To", + "Today": "Today", + "TodayFailedConnections": "Failed sessions today", + "Token": "Token", + "Total": "Total", + "TotalJobFailed": "Failed execution actions", + "TotalJobLog": "Total job executions", + "TotalJobRunning": "Running jobs", + "Transfer": "Transfer", + "Tuesday": "Tue", + "TwoAssignee": "Subscribe to authorization id", + "TwoAssigneeType": "Secondary recipient type", + "Type": "Type", + "TypeTree": "Type tree", + "Types": "Type", + "UCloud": "Ucloud uhost", + "UnSyncCount": "Not synced", + "Unbind": "Unlink", + "UnbindHelpText": "Local users are the source of this authentication and cannot be unbound", + "Unblock": "Unlock", + "UnblockSelected": "Unblock selected", + "UnblockSuccessMsg": "Unlock successful", + "UnblockUser": "Unlock user", + "UniqueError": "Only one of the following properties can be set", + "UnlockSuccessMsg": "Unlock successful", + "UnselectedOrg": "No organization selected", + "UnselectedUser": "No user selected", + "UpDownload": "Upload & download", + "Update": "Update", + "UpdateAccount": "Update the account", + "UpdateAccountTemplate": "Update the account template", + "UpdateAssetDetail": "Configure more information", + "UpdateAssetUserToken": "Update account authentication information", + "UpdateEndpoint": "Update the endpoint", + "UpdateEndpointRule": "Update the endpoint rule", + "UpdateErrorMsg": "Update failed", + "UpdateNodeAssetHardwareInfo": "Update node assets hardware information", + "UpdatePlatformHelpText": "The asset will be updated only if the original platform type is the same as the selected platform type. if the platform types before and after the update are different, it will not be updated.", + "UpdateSSHKey": "Change ssh public key", + "UpdateSelected": "Update selected", + "UpdateSuccessMsg": "Successfully updated !", + "Updated": "Updated", + "Upload": "Upload", + "UploadCsvLth10MHelpText": "Only csv/xlsx can be uploaded, and no more than 10m", + "UploadDir": "Upload path", + "UploadFileLthHelpText": "Less than {limit}m supported", + "UploadPlaybook": "Upload playbook", + "UploadSucceed": "Upload succeeded", + "UploadZipTips": "Please upload a file in zip format", + "Uploading": "Uploading file", + "Uppercase": "Uppercase", + "UseProtocol": "User agreement", + "UseSSL": "Use ssl/tls", + "User": "User", + "UserAclLists": "Login ACLs", + "UserAssetActivity": "User/asset activity", + "UserCreate": "Create user", + "UserData": "User", + "UserDetail": "User details", + "UserGroupCreate": "Create user group", + "UserGroupDetail": "User group details", + "UserGroupList": "Groups", + "UserGroupUpdate": "Update the user group", + "UserGroups": "Groups", + "UserList": "Users", + "UserLoginACLHelpMsg": "When logging into the system, the user's login ip and time range can be audited to determine whether they are allowed to log into the system (effective globally)", + "UserLoginACLHelpText": "When logging in, it can be audited based on the user's login ip and time segment to determine whether the user can log in", + "UserLoginAclCreate": "Create user login control", + "UserLoginAclDetail": "User login control details", + "UserLoginAclList": "User login", + "UserLoginAclUpdate": "Update the user login control", + "UserLoginLimit": "User restriction", + "UserLoginTrend": "Account login trend", + "UserPasswordChangeLog": "User password change log", + "UserSession": "Asset sessions", + "UserSwitchFrom": "Switch from", + "UserUpdate": "Update the user", + "Username": "Username", + "UsernamePlaceholder": "Please enter username", + "Users": "User", + "UsersAmount": "User", + "UsersAndUserGroups": "Users/user groups", + "UsersTotal": "Total accounts", + "Valid": "Valid", + "Variable": "Variable", + "VariableHelpText": "You can use {{ key }} to read built-in variables in commands", + "VaultHelpText": "1. for security reasons, vault storage must be enabled in the configuration file.
2. after enabled, fill in other configurations, and perform tests.
3. carry out data synchronization, which is one-way, only syncing from the local database to the distant vault, once synchronization is completed, the local database will no longer store passwords, please back up your data.
4. after modifying vault configuration the second time, you need to restart the service.", + "VerificationCodeSent": "Verification code has been sent", + "VerifySignTmpl": "Sms template", + "Version": "Version", + "View": "View", + "ViewBlockedIPSHelpText": "View list of locked ips", + "ViewMore": "View more", + "ViewPerm": "View", + "ViewSecret": "View ciphertext", + "VirtualAccountDetail": "Virtual account details", + "VirtualAccountHelpMsg": "Virtual accounts are specialized accounts with specific purposes when connecting assets.", + "VirtualAccountUpdate": "Virtual account update", + "VirtualAccounts": "Virtual accounts", + "VirtualApp": "Virtual App", + "VirtualAppDetail": "Virtual app details", + "VirtualApps": "VApp", + "Volcengine": "Volcengine", + "Warning": "Warning", + "WeCom": "WeCom", + "WeComOAuth": "WeCom OAuth", + "WeComTest": "Test", + "WebCreate": "Create asset - web", + "WebHelpMessage": "Web type assets depend on remote applications, please go to system settings and configure in remote applications", + "WebSocketDisconnect": "Websocket disconnected", + "WebTerminal": "Web terminal", + "WebUpdate": "Update the asset - web", + "Wednesday": "Wed", + "Week": "Week", + "Proportion": "New this week", + "WeekOrTime": "Day/time", + "WildcardsAllowed": "Allowed wildcards", + "WindowsPushHelpText": "Windows assets temporarily do not support key push", + "WordSep": " ", + "Workbench": "Workbench", + "Workspace": "Workspace", + "Yes": "Yes", + "YourProfile": "Your profile", + "ZStack": "ZStack", + "Zone": "Zone", + "ZoneCreate": "Create zone", + "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", + "TailLog": "Tail Log", + "NoLog": "No log", + "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", + "ForgotPasswordURL": "Forgot password URL" } diff --git a/apps/i18n/lina/ja.json b/apps/i18n/lina/ja.json index 7f0bdb5e2..a6b1f96ab 100644 --- a/apps/i18n/lina/ja.json +++ b/apps/i18n/lina/ja.json @@ -180,7 +180,18 @@ "BatchProcessing": "バルク処理({Number} アイテムが選択されています)", "BatchReject": "一括拒否", "BatchTest": "一括テスト", - "BatchTransfer": "一括転送", + "BasicSettings": "基本設定", + "BasicTools": "基本的なツール", + "BatchActivate": "一括アクティブ化", + "BatchApproval": "大量承認です", + "BatchCommand": "一括コマンド", + "BatchCommandNotExecuted": "未実行コマンド", + "BatchDelete": "一括削除", + "BatchDisable": "一括無効化", + "BatchRemoval": "一括除去", + "BatchRetry": "一括リトライ", + "BatchScript": "バッチ スクリプト", + "BatchUpdate": "ロット更新", "BeforeChange": "変更前", "Beian": "登記", "BelongAll": "同時に含む", @@ -1123,7 +1134,7 @@ "TaskDetail": "タスクの詳細", "TaskDone": "ジョブ終了", "TaskID": "タスク ID", - "TaskList": "タスクリスト", + "SystemTasks": "タスクリスト", "TaskMonitor": "タスクモニタリング", "TechnologyConsult": "技術相談", "TempPasswordTip": "一時的なパスワードの有効期間は300秒で、使用後すぐに無効になります", diff --git a/apps/i18n/lina/zh.json b/apps/i18n/lina/zh.json index 7981dda2b..218d920fd 100644 --- a/apps/i18n/lina/zh.json +++ b/apps/i18n/lina/zh.json @@ -197,13 +197,12 @@ "BasePort": "监听端口", "Basic": "基本设置", "BasicInfo": "基本信息", - "BasicSetting": "基本设置", + "BasicSettings": "基本设置", "BatchConsent": "批量同意", "BatchDeployment": "批量部署", "BatchProcessing": "批量处理(选中 {Number} 项)", "BatchReject": "批量拒绝", "BatchTest": "批量测试", - "BatchTransfer": "批量传输", "BeforeChange": "变更前", "Beian": "备案", "BelongAll": "同时包含", @@ -238,7 +237,7 @@ "ChangeField": "变更字段", "ChangeOrganization": "更改组织", "ChangePassword": "更新密码", - "ChangeReceiver": "修改消息接收人", + "EditRecipient": "编辑接收人", "ChangeSecretParams": "改密参数", "ChangeViewHelpText": "点击切换不同视图", "Chat": "聊天", @@ -523,8 +522,6 @@ "HardwareInfo": "硬件信息", "HasImportErrorItemMsg": "存在导入失败项,点击左侧 x 查看失败原因,点击表格编辑后,可以继续导入失败项", "Help": "帮助", - "HelpDocumentTip": "可以更改网站导航栏 帮助 -> 文档 的网址", - "HelpSupportTip": "可以更改网站导航栏 帮助 -> 支持 的网址", "HighLoad": "较高", "HistoricalSessionNum": "历史会话数", "History": "历史记录", @@ -603,7 +600,7 @@ "JobUpdate": "更新作业", "KingSoftCloud": "金山云", "KokoSetting": "KoKo 配置", - "GenericSetting": "通用配置", + "GeneralSetting": "通用配置", "LAN": "局域网", "LDAPUser": "LDAP 用户", "Label": "标签", @@ -1122,7 +1119,7 @@ "TaskDetail": "任务详情", "TaskDone": "任务结束", "TaskID": "任务 ID", - "TaskList": "任务列表", + "SystemTasks": "任务列表", "TaskMonitor": "任务监控", "TechnologyConsult": "技术咨询", "TempPasswordTip": "临时密码有效期为 300 秒,使用后立刻失效", @@ -1295,5 +1292,9 @@ "InformationModification": "信息更改", "Phone": "手机", "TailLog": "追踪日志", - "NoLog": "无日志" + "NoLog": "无日志", + "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 f3f004363..23db586b7 100644 --- a/apps/i18n/lina/zh_hant.json +++ b/apps/i18n/lina/zh_hant.json @@ -215,7 +215,7 @@ "BasePort": "監聽埠", "Basic": "基本設置", "BasicInfo": "基本資訊", - "BasicSetting": "基本設置", + "BasicSettings": "基本設置", "BasicTools": "基本工具", "BatchActivate": "批次啟用", "BatchApproval": "批次審批", @@ -1308,7 +1308,7 @@ "TaskDispatch": "任務下發成功", "TaskDone": "任務結束", "TaskID": "任務 ID", - "TaskList": "任務列表", + "SystemTasks": "任務列表", "TaskMonitor": "任務監控", "TechnologyConsult": "技術諮詢", "TempPassword": "臨時密碼有效期為 300 秒,使用後立刻失效", diff --git a/apps/jumpserver/conf.py b/apps/jumpserver/conf.py index 2f9fda1ce..a7fb03114 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/notifications/migrations/0003_initial_admin_msg.py b/apps/notifications/migrations/0003_initial_admin_msg.py new file mode 100644 index 000000000..5a5a55e16 --- /dev/null +++ b/apps/notifications/migrations/0003_initial_admin_msg.py @@ -0,0 +1,24 @@ +# 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.update_or_create( + defaults={'receive_backends': receive_backends}, user=user + ) + + +class Migration(migrations.Migration): + dependencies = [ + ('notifications', '0002_auto_20210909_1946'), + ] + + operations = [ + migrations.RunPython(init_user_msg_subscription), + ] diff --git a/apps/settings/serializers/auth/base.py b/apps/settings/serializers/auth/base.py index 034ce7474..a9292acfc 100644 --- a/apps/settings/serializers/auth/base.py +++ b/apps/settings/serializers/auth/base.py @@ -22,10 +22,23 @@ 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=_( + "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/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/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.' + ) ) 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") 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), + ] diff --git a/apps/users/models/user.py b/apps/users/models/user.py index 15e9678ae..bee52db3f 100644 --- a/apps/users/models/user.py +++ b/apps/users/models/user.py @@ -700,11 +700,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):