Browse Source

Merge pull request #14202 from jumpserver/pr@dev@password_rule

perf: Password rule import csv help_text
pull/14201/head
ZhaoJiSen 2 months ago committed by GitHub
parent
commit
cbc09d84df
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 11
      apps/accounts/serializers/account/template.py
  2. 336
      apps/i18n/core/en/LC_MESSAGES/django.po
  3. 1664
      apps/i18n/core/ja/LC_MESSAGES/django.po
  4. 253
      apps/i18n/core/zh/LC_MESSAGES/django.po
  5. 1290
      apps/i18n/core/zh_Hant/LC_MESSAGES/django.po

11
apps/accounts/serializers/account/template.py

@ -19,6 +19,16 @@ class PasswordRulesSerializer(serializers.Serializer):
default='', allow_blank=True, max_length=16, label=_('Exclude symbol') default='', allow_blank=True, max_length=16, label=_('Exclude symbol')
) )
@staticmethod
def get_render_help_text():
return _("""length is the length of the password, and the range is 8 to 30.
lowercase indicates whether the password contains lowercase letters,
uppercase indicates whether it contains uppercase letters,
digit indicates whether it contains numbers, and symbol indicates whether it contains special symbols.
exclude_symbols is used to exclude specific symbols. You can fill in the symbol characters to be excluded (up to 16).
If you do not need to exclude symbols, you can leave it blank.
default: {"length": 16, "lowercase": true, "uppercase": true, "digit": true, "symbol": true, "exclude_symbols": ""}""")
class AccountTemplateSerializer(BaseAccountSerializer): class AccountTemplateSerializer(BaseAccountSerializer):
password_rules = PasswordRulesSerializer(required=False, label=_('Password rules')) password_rules = PasswordRulesSerializer(required=False, label=_('Password rules'))
@ -46,6 +56,7 @@ class AccountTemplateSerializer(BaseAccountSerializer):
'required': False 'required': False
}, },
} }
fields_unimport_template = ['push_params']
@staticmethod @staticmethod
def generate_secret(attrs): def generate_secret(attrs):

336
apps/i18n/core/en/LC_MESSAGES/django.po

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-13 17:22+0800\n" "POT-Creation-Date: 2024-09-19 16:31+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -341,14 +341,14 @@ msgstr ""
#: accounts/models/account.py:49 #: accounts/models/account.py:49
#: accounts/models/automations/gather_account.py:16 #: accounts/models/automations/gather_account.py:16
#: accounts/serializers/account/account.py:226 #: accounts/serializers/account/account.py:226
#: accounts/serializers/account/account.py:271 #: accounts/serializers/account/account.py:272
#: accounts/serializers/account/gathered_account.py:10 #: accounts/serializers/account/gathered_account.py:10
#: accounts/serializers/automations/change_secret.py:111 #: accounts/serializers/automations/change_secret.py:111
#: accounts/serializers/automations/change_secret.py:143 #: accounts/serializers/automations/change_secret.py:143
#: accounts/templates/accounts/asset_account_change_info.html:7 #: accounts/templates/accounts/asset_account_change_info.html:7
#: accounts/templates/accounts/change_secret_failed_info.html:11 #: accounts/templates/accounts/change_secret_failed_info.html:11
#: acls/serializers/base.py:123 assets/models/asset/common.py:95 #: acls/serializers/base.py:123 assets/models/asset/common.py:102
#: assets/models/asset/common.py:355 assets/models/cmd_filter.py:36 #: assets/models/asset/common.py:362 assets/models/cmd_filter.py:36
#: audits/models.py:58 authentication/models/connection_token.py:36 #: audits/models.py:58 authentication/models/connection_token.py:36
#: perms/models/asset_permission.py:69 terminal/backends/command/models.py:17 #: perms/models/asset_permission.py:69 terminal/backends/command/models.py:17
#: terminal/models/session/session.py:32 terminal/notifications.py:155 #: terminal/models/session/session.py:32 terminal/notifications.py:155
@ -361,8 +361,8 @@ msgstr ""
#: accounts/models/account.py:53 accounts/models/template.py:16 #: accounts/models/account.py:53 accounts/models/template.py:16
#: accounts/serializers/account/account.py:233 #: accounts/serializers/account/account.py:233
#: accounts/serializers/account/account.py:281 #: accounts/serializers/account/account.py:282
#: accounts/serializers/account/template.py:27 #: accounts/serializers/account/template.py:37
#: authentication/serializers/connect_token_secret.py:50 #: authentication/serializers/connect_token_secret.py:50
msgid "Su from" msgid "Su from"
msgstr "Switch from" msgstr "Switch from"
@ -586,7 +586,7 @@ msgstr ""
#: terminal/models/applet/applet.py:331 terminal/models/applet/host.py:140 #: terminal/models/applet/applet.py:331 terminal/models/applet/host.py:140
#: terminal/models/component/status.py:30 #: terminal/models/component/status.py:30
#: terminal/models/virtualapp/virtualapp.py:99 #: terminal/models/virtualapp/virtualapp.py:99
#: terminal/serializers/applet.py:18 terminal/serializers/applet_host.py:147 #: terminal/serializers/applet.py:18 terminal/serializers/applet_host.py:148
#: terminal/serializers/virtualapp.py:35 tickets/models/ticket/general.py:284 #: terminal/serializers/virtualapp.py:35 tickets/models/ticket/general.py:284
#: tickets/serializers/super_ticket.py:13 #: tickets/serializers/super_ticket.py:13
#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:225 #: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:225
@ -595,7 +595,7 @@ msgid "Status"
msgstr "" msgstr ""
#: accounts/models/automations/change_secret.py:46 #: accounts/models/automations/change_secret.py:46
#: accounts/serializers/account/account.py:273 #: accounts/serializers/account/account.py:274
#: accounts/templates/accounts/change_secret_failed_info.html:13 #: accounts/templates/accounts/change_secret_failed_info.html:13
#: assets/const/automation.py:8 #: assets/const/automation.py:8
#: authentication/templates/authentication/passkey.html:173 #: authentication/templates/authentication/passkey.html:173
@ -671,7 +671,7 @@ msgid "Verify asset account"
msgstr "" msgstr ""
#: accounts/models/base.py:37 accounts/models/base.py:67 #: accounts/models/base.py:37 accounts/models/base.py:67
#: accounts/serializers/account/account.py:463 #: accounts/serializers/account/account.py:464
#: accounts/serializers/account/base.py:17 #: accounts/serializers/account/base.py:17
#: accounts/serializers/automations/change_secret.py:47 #: accounts/serializers/automations/change_secret.py:47
#: authentication/serializers/connect_token_secret.py:42 #: authentication/serializers/connect_token_secret.py:42
@ -693,19 +693,19 @@ msgstr ""
msgid "Secret strategy" msgid "Secret strategy"
msgstr "" msgstr ""
#: accounts/models/base.py:44 accounts/serializers/account/template.py:24 #: accounts/models/base.py:44 accounts/serializers/account/template.py:34
#: accounts/serializers/automations/change_secret.py:46 #: accounts/serializers/automations/change_secret.py:46
msgid "Password rules" msgid "Password rules"
msgstr "" msgstr ""
#: accounts/models/base.py:64 accounts/serializers/account/virtual.py:20 #: accounts/models/base.py:64 accounts/serializers/account/virtual.py:20
#: acls/models/base.py:35 acls/models/base.py:96 acls/models/command_acl.py:21 #: acls/models/base.py:35 acls/models/base.py:96 acls/models/command_acl.py:21
#: acls/serializers/base.py:35 assets/models/asset/common.py:93 #: acls/serializers/base.py:35 assets/models/asset/common.py:100
#: assets/models/asset/common.py:159 assets/models/cmd_filter.py:21 #: assets/models/asset/common.py:166 assets/models/cmd_filter.py:21
#: assets/models/domain.py:19 assets/models/label.py:18 #: assets/models/domain.py:19 assets/models/label.py:18
#: assets/models/platform.py:15 assets/models/platform.py:94 #: assets/models/platform.py:15 assets/models/platform.py:94
#: assets/serializers/asset/common.py:169 assets/serializers/platform.py:153 #: assets/serializers/asset/common.py:169 assets/serializers/platform.py:157
#: assets/serializers/platform.py:273 #: assets/serializers/platform.py:277
#: authentication/backends/passkey/models.py:10 #: authentication/backends/passkey/models.py:10
#: authentication/models/ssh_key.py:12 #: authentication/models/ssh_key.py:12
#: authentication/serializers/connect_token_secret.py:113 #: authentication/serializers/connect_token_secret.py:113
@ -845,10 +845,15 @@ msgstr ""
msgid "Exist policy" msgid "Exist policy"
msgstr "" msgstr ""
#: accounts/serializers/account/account.py:181
#: accounts/serializers/account/account.py:340
msgid "Account already exists"
msgstr ""
#: accounts/serializers/account/account.py:206 assets/models/label.py:21 #: accounts/serializers/account/account.py:206 assets/models/label.py:21
#: assets/models/platform.py:95 assets/serializers/asset/common.py:145 #: assets/models/platform.py:95 assets/serializers/asset/common.py:145
#: assets/serializers/cagegory.py:12 assets/serializers/platform.py:168 #: assets/serializers/cagegory.py:12 assets/serializers/platform.py:172
#: assets/serializers/platform.py:274 perms/serializers/user_permission.py:26 #: assets/serializers/platform.py:278 perms/serializers/user_permission.py:26
#: settings/models.py:37 tickets/models/ticket/apply_application.py:13 #: settings/models.py:37 tickets/models/ticket/apply_application.py:13
#: users/models/preference.py:12 #: users/models/preference.py:12
msgid "Category" msgid "Category"
@ -858,13 +863,13 @@ msgstr ""
#: accounts/serializers/automations/base.py:55 acls/models/command_acl.py:24 #: accounts/serializers/automations/base.py:55 acls/models/command_acl.py:24
#: acls/serializers/command_acl.py:19 assets/models/automations/base.py:20 #: acls/serializers/command_acl.py:19 assets/models/automations/base.py:20
#: assets/models/cmd_filter.py:74 assets/models/platform.py:96 #: assets/models/cmd_filter.py:74 assets/models/platform.py:96
#: assets/serializers/asset/common.py:146 assets/serializers/platform.py:155 #: assets/serializers/asset/common.py:146 assets/serializers/platform.py:159
#: assets/serializers/platform.py:167 audits/serializers.py:53 #: assets/serializers/platform.py:171 audits/serializers.py:53
#: audits/serializers.py:170 #: audits/serializers.py:170
#: authentication/serializers/connect_token_secret.py:126 ops/models/job.py:150 #: authentication/serializers/connect_token_secret.py:126 ops/models/job.py:150
#: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:40 #: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:40
#: terminal/models/component/storage.py:58 #: terminal/models/component/storage.py:58
#: terminal/models/component/storage.py:154 terminal/serializers/applet.py:29 #: terminal/models/component/storage.py:152 terminal/serializers/applet.py:29
#: terminal/serializers/session.py:23 terminal/serializers/storage.py:281 #: terminal/serializers/session.py:23 terminal/serializers/storage.py:281
#: terminal/serializers/storage.py:294 tickets/models/comment.py:26 #: terminal/serializers/storage.py:294 tickets/models/comment.py:26
#: tickets/models/flow.py:42 tickets/models/ticket/apply_application.py:16 #: tickets/models/flow.py:42 tickets/models/ticket/apply_application.py:16
@ -877,26 +882,26 @@ msgstr ""
msgid "Asset not found" msgid "Asset not found"
msgstr "" msgstr ""
#: accounts/serializers/account/account.py:262 #: accounts/serializers/account/account.py:263
msgid "Has secret" msgid "Has secret"
msgstr "" msgstr ""
#: accounts/serializers/account/account.py:272 ops/models/celery.py:84 #: accounts/serializers/account/account.py:273 ops/models/celery.py:84
#: tickets/models/comment.py:13 tickets/models/ticket/general.py:49 #: tickets/models/comment.py:13 tickets/models/ticket/general.py:49
#: tickets/models/ticket/general.py:280 tickets/serializers/super_ticket.py:14 #: tickets/models/ticket/general.py:280 tickets/serializers/super_ticket.py:14
msgid "State" msgid "State"
msgstr "" msgstr ""
#: accounts/serializers/account/account.py:274 #: accounts/serializers/account/account.py:275
msgid "Changed" msgid "Changed"
msgstr "" msgstr ""
#: accounts/serializers/account/account.py:284 #: accounts/serializers/account/account.py:285
#: accounts/serializers/automations/base.py:22 acls/models/base.py:97 #: accounts/serializers/automations/base.py:22 acls/models/base.py:97
#: acls/templates/acls/asset_login_reminder.html:9 #: acls/templates/acls/asset_login_reminder.html:9
#: assets/models/automations/base.py:19 #: assets/models/automations/base.py:19
#: assets/serializers/automations/base.py:20 assets/serializers/domain.py:34 #: assets/serializers/automations/base.py:20 assets/serializers/domain.py:34
#: assets/serializers/platform.py:176 assets/serializers/platform.py:208 #: assets/serializers/platform.py:180 assets/serializers/platform.py:212
#: authentication/api/connection_token.py:410 ops/models/base.py:17 #: authentication/api/connection_token.py:410 ops/models/base.py:17
#: ops/models/job.py:152 ops/serializers/job.py:19 #: ops/models/job.py:152 ops/serializers/job.py:19
#: perms/serializers/permission.py:46 #: perms/serializers/permission.py:46
@ -905,34 +910,30 @@ msgstr ""
msgid "Assets" msgid "Assets"
msgstr "" msgstr ""
#: accounts/serializers/account/account.py:339 #: accounts/serializers/account/account.py:390
msgid "Account already exists"
msgstr ""
#: accounts/serializers/account/account.py:389
#, python-format #, python-format
msgid "Asset does not support this secret type: %s" msgid "Asset does not support this secret type: %s"
msgstr "" msgstr ""
#: accounts/serializers/account/account.py:421 #: accounts/serializers/account/account.py:422
msgid "Account has exist" msgid "Account has exist"
msgstr "" msgstr ""
#: accounts/serializers/account/account.py:458 #: accounts/serializers/account/account.py:459
#: accounts/serializers/account/base.py:93 #: accounts/serializers/account/base.py:93
#: accounts/serializers/account/template.py:72 #: accounts/serializers/account/template.py:83
#: assets/serializers/asset/common.py:407 #: assets/serializers/asset/common.py:407
msgid "Spec info" msgid "Spec info"
msgstr "" msgstr ""
#: accounts/serializers/account/account.py:464 #: accounts/serializers/account/account.py:465
#: authentication/serializers/connect_token_secret.py:159 #: authentication/serializers/connect_token_secret.py:159
#: authentication/templates/authentication/_access_key_modal.html:30 #: authentication/templates/authentication/_access_key_modal.html:30
#: perms/models/perm_node.py:21 users/serializers/group.py:33 #: perms/models/perm_node.py:21 users/serializers/group.py:33
msgid "ID" msgid "ID"
msgstr "" msgstr ""
#: accounts/serializers/account/account.py:474 acls/serializers/base.py:116 #: accounts/serializers/account/account.py:475 acls/serializers/base.py:116
#: acls/templates/acls/asset_login_reminder.html:8 #: acls/templates/acls/asset_login_reminder.html:8
#: acls/templates/acls/user_login_reminder.html:8 #: acls/templates/acls/user_login_reminder.html:8
#: assets/models/cmd_filter.py:24 assets/models/label.py:16 audits/models.py:54 #: assets/models/cmd_filter.py:24 assets/models/label.py:16 audits/models.py:54
@ -954,7 +955,7 @@ msgstr ""
msgid "User" msgid "User"
msgstr "" msgstr ""
#: accounts/serializers/account/account.py:475 #: accounts/serializers/account/account.py:476
#: authentication/templates/authentication/_access_key_modal.html:33 #: authentication/templates/authentication/_access_key_modal.html:33
#: terminal/notifications.py:158 terminal/notifications.py:207 #: terminal/notifications.py:158 terminal/notifications.py:207
msgid "Date" msgid "Date"
@ -1014,15 +1015,29 @@ msgstr ""
msgid "Exclude symbol" msgid "Exclude symbol"
msgstr "" msgstr ""
#: accounts/serializers/account/template.py:39 #: accounts/serializers/account/template.py:24
msgid ""
"length is the length of the password, and the range is 8 to 30.\n"
"lowercase indicates whether the password contains lowercase letters, \n"
"uppercase indicates whether it contains uppercase letters,\n"
"digit indicates whether it contains numbers, and symbol indicates whether it "
"contains special symbols.\n"
"exclude_symbols is used to exclude specific symbols. You can fill in the "
"symbol characters to be excluded (up to 16). \n"
"If you do not need to exclude symbols, you can leave it blank.\n"
"default: {\"length\": 16, \"lowercase\": true, \"uppercase\": true, "
"\"digit\": true, \"symbol\": true, \"exclude_symbols\": \"\"}"
msgstr ""
#: accounts/serializers/account/template.py:49
msgid "Secret generation strategy for account creation" msgid "Secret generation strategy for account creation"
msgstr "" msgstr ""
#: accounts/serializers/account/template.py:40 #: accounts/serializers/account/template.py:50
msgid "Whether to automatically push the account to the asset" msgid "Whether to automatically push the account to the asset"
msgstr "" msgstr ""
#: accounts/serializers/account/template.py:43 #: accounts/serializers/account/template.py:53
msgid "" msgid ""
"Associated platform, you can configure push parameters. If not associated, " "Associated platform, you can configure push parameters. If not associated, "
"default parameters will be used" "default parameters will be used"
@ -1050,7 +1065,7 @@ msgid ""
msgstr "" msgstr ""
#: accounts/serializers/automations/base.py:23 #: accounts/serializers/automations/base.py:23
#: assets/models/asset/common.py:169 assets/serializers/asset/common.py:172 #: assets/models/asset/common.py:176 assets/serializers/asset/common.py:172
#: assets/serializers/automations/base.py:21 perms/serializers/permission.py:47 #: assets/serializers/automations/base.py:21 perms/serializers/permission.py:47
msgid "Nodes" msgid "Nodes"
msgstr "" msgstr ""
@ -1232,17 +1247,17 @@ msgid ""
"task will be executed" "task will be executed"
msgstr "" msgstr ""
#: accounts/tasks/verify_account.py:50 #: accounts/tasks/verify_account.py:49
msgid "Verify asset account availability" msgid "Verify asset account availability"
msgstr "" msgstr ""
#: accounts/tasks/verify_account.py:53 #: accounts/tasks/verify_account.py:52
msgid "" msgid ""
"When clicking 'Test' in 'Console - Asset details - Accounts' this task will " "When clicking 'Test' in 'Console - Asset details - Accounts' this task will "
"be executed" "be executed"
msgstr "" msgstr ""
#: accounts/tasks/verify_account.py:59 #: accounts/tasks/verify_account.py:58
msgid "Verify accounts connectivity" msgid "Verify accounts connectivity"
msgstr "" msgstr ""
@ -1327,7 +1342,7 @@ msgstr ""
msgid "Reviewers" msgid "Reviewers"
msgstr "" msgstr ""
#: acls/models/base.py:43 assets/models/asset/common.py:171 #: acls/models/base.py:43 assets/models/asset/common.py:178
#: authentication/models/access_key.py:25 #: authentication/models/access_key.py:25
#: authentication/models/connection_token.py:53 #: authentication/models/connection_token.py:53
#: authentication/models/ssh_key.py:13 #: authentication/models/ssh_key.py:13
@ -1479,7 +1494,7 @@ msgstr ""
#: authentication/templates/authentication/_msg_oauth_bind.html:12 #: authentication/templates/authentication/_msg_oauth_bind.html:12
#: authentication/templates/authentication/_msg_rest_password_success.html:8 #: authentication/templates/authentication/_msg_rest_password_success.html:8
#: authentication/templates/authentication/_msg_rest_public_key_success.html:8 #: authentication/templates/authentication/_msg_rest_public_key_success.html:8
#: common/drf/renders/base.py:149 xpack/plugins/cloud/models.py:390 #: common/drf/renders/base.py:150 xpack/plugins/cloud/models.py:390
msgid "IP" msgid "IP"
msgstr "" msgstr ""
@ -1539,11 +1554,11 @@ msgstr ""
msgid "User agent" msgid "User agent"
msgstr "" msgstr ""
#: assets/api/asset/asset.py:181 #: assets/api/asset/asset.py:190
msgid "Cannot create asset directly, you should create a host or other" msgid "Cannot create asset directly, you should create a host or other"
msgstr "" msgstr ""
#: assets/api/asset/asset.py:185 #: assets/api/asset/asset.py:194
msgid "The number of assets exceeds the limit of 5000" msgid "The number of assets exceeds the limit of 5000"
msgstr "" msgstr ""
@ -1648,7 +1663,7 @@ msgid "Gather facts"
msgstr "" msgstr ""
#: assets/const/base.py:32 audits/const.py:58 #: assets/const/base.py:32 audits/const.py:58
#: terminal/serializers/applet_host.py:34 users/models/user/_auth.py:32 #: terminal/serializers/applet_host.py:32 users/models/user/_auth.py:32
msgid "Disabled" msgid "Disabled"
msgstr "" msgstr ""
@ -1897,51 +1912,51 @@ msgstr ""
msgid "Cloud" msgid "Cloud"
msgstr "" msgstr ""
#: assets/models/asset/common.py:94 assets/models/platform.py:16 #: assets/models/asset/common.py:101 assets/models/platform.py:16
#: settings/serializers/auth/radius.py:18 settings/serializers/auth/sms.py:77 #: settings/serializers/auth/radius.py:18 settings/serializers/auth/sms.py:77
#: settings/serializers/msg.py:31 terminal/serializers/storage.py:133 #: settings/serializers/msg.py:31 terminal/serializers/storage.py:133
#: xpack/plugins/cloud/serializers/account_attrs.py:73 #: xpack/plugins/cloud/serializers/account_attrs.py:73
msgid "Port" msgid "Port"
msgstr "" msgstr ""
#: assets/models/asset/common.py:160 assets/serializers/asset/common.py:170 #: assets/models/asset/common.py:167 assets/serializers/asset/common.py:170
#: settings/serializers/terminal.py:10 #: settings/serializers/terminal.py:10
msgid "Address" msgid "Address"
msgstr "" msgstr ""
#: assets/models/asset/common.py:162 assets/models/platform.py:149 #: assets/models/asset/common.py:169 assets/models/platform.py:149
#: authentication/backends/passkey/models.py:12 #: authentication/backends/passkey/models.py:12
#: authentication/serializers/connect_token_secret.py:118 #: authentication/serializers/connect_token_secret.py:118
#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:385 #: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:385
msgid "Platform" msgid "Platform"
msgstr "" msgstr ""
#: assets/models/asset/common.py:166 assets/models/domain.py:22 #: assets/models/asset/common.py:173 assets/models/domain.py:22
msgid "Zone" msgid "Zone"
msgstr "" msgstr ""
#: assets/models/asset/common.py:172 assets/serializers/asset/common.py:408 #: assets/models/asset/common.py:179 assets/serializers/asset/common.py:408
#: assets/serializers/asset/host.py:11 #: assets/serializers/asset/host.py:11
msgid "Gathered info" msgid "Gathered info"
msgstr "" msgstr ""
#: assets/models/asset/common.py:173 assets/serializers/asset/custom.py:14 #: assets/models/asset/common.py:180 assets/serializers/asset/custom.py:14
msgid "Custom info" msgid "Custom info"
msgstr "" msgstr ""
#: assets/models/asset/common.py:358 #: assets/models/asset/common.py:365
msgid "Can refresh asset hardware info" msgid "Can refresh asset hardware info"
msgstr "" msgstr ""
#: assets/models/asset/common.py:359 #: assets/models/asset/common.py:366
msgid "Can test asset connectivity" msgid "Can test asset connectivity"
msgstr "" msgstr ""
#: assets/models/asset/common.py:360 #: assets/models/asset/common.py:367
msgid "Can match asset" msgid "Can match asset"
msgstr "" msgstr ""
#: assets/models/asset/common.py:361 #: assets/models/asset/common.py:368
msgid "Can change asset nodes" msgid "Can change asset nodes"
msgstr "" msgstr ""
@ -2078,7 +2093,7 @@ msgstr ""
#: assets/models/label.py:40 assets/serializers/cagegory.py:10 #: assets/models/label.py:40 assets/serializers/cagegory.py:10
#: assets/serializers/cagegory.py:17 assets/serializers/cagegory.py:23 #: assets/serializers/cagegory.py:17 assets/serializers/cagegory.py:23
#: assets/serializers/platform.py:154 #: assets/serializers/platform.py:158
#: authentication/serializers/connect_token_secret.py:124 #: authentication/serializers/connect_token_secret.py:124
#: common/serializers/common.py:85 labels/serializers.py:45 #: common/serializers/common.py:85 labels/serializers.py:45
#: settings/serializers/msg.py:90 #: settings/serializers/msg.py:90
@ -2129,7 +2144,7 @@ msgstr ""
msgid "Required" msgid "Required"
msgstr "" msgstr ""
#: assets/models/platform.py:19 assets/serializers/platform.py:156 #: assets/models/platform.py:19 assets/serializers/platform.py:160
#: terminal/models/component/storage.py:28 #: terminal/models/component/storage.py:28
#: xpack/plugins/cloud/providers/nutanix.py:30 #: xpack/plugins/cloud/providers/nutanix.py:30
msgid "Default" msgid "Default"
@ -2147,7 +2162,7 @@ msgstr ""
#: assets/models/platform.py:38 audits/const.py:59 #: assets/models/platform.py:38 audits/const.py:59
#: authentication/backends/passkey/models.py:11 settings/models.py:39 #: authentication/backends/passkey/models.py:11 settings/models.py:39
#: terminal/serializers/applet_host.py:35 users/models/user/_auth.py:33 #: terminal/serializers/applet_host.py:33 users/models/user/_auth.py:33
msgid "Enabled" msgid "Enabled"
msgstr "" msgstr ""
@ -2237,23 +2252,23 @@ msgstr ""
msgid "Internal" msgid "Internal"
msgstr "Builtin" msgstr "Builtin"
#: assets/models/platform.py:102 assets/serializers/platform.py:166 #: assets/models/platform.py:102 assets/serializers/platform.py:170
msgid "Charset" msgid "Charset"
msgstr "" msgstr ""
#: assets/models/platform.py:104 assets/serializers/platform.py:204 #: assets/models/platform.py:104 assets/serializers/platform.py:208
msgid "Gateway enabled" msgid "Gateway enabled"
msgstr "" msgstr ""
#: assets/models/platform.py:106 assets/serializers/platform.py:197 #: assets/models/platform.py:106 assets/serializers/platform.py:201
msgid "Su enabled" msgid "Su enabled"
msgstr "Switch account enabled" msgstr "Switch account enabled"
#: assets/models/platform.py:107 assets/serializers/platform.py:172 #: assets/models/platform.py:107 assets/serializers/platform.py:176
msgid "Su method" msgid "Su method"
msgstr "Switch account method" msgstr "Switch account method"
#: assets/models/platform.py:108 assets/serializers/platform.py:175 #: assets/models/platform.py:108 assets/serializers/platform.py:179
msgid "Custom fields" msgid "Custom fields"
msgstr "" msgstr ""
@ -2268,7 +2283,7 @@ msgid ""
"type" "type"
msgstr "" msgstr ""
#: assets/serializers/asset/common.py:36 #: assets/serializers/asset/common.py:36 assets/serializers/platform.py:152
msgid "Protocols, format is [\"protocol/port\"]" msgid "Protocols, format is [\"protocol/port\"]"
msgstr "" msgstr ""
@ -2288,7 +2303,7 @@ msgid ""
"it" "it"
msgstr "" msgstr ""
#: assets/serializers/asset/common.py:147 assets/serializers/platform.py:169 #: assets/serializers/asset/common.py:147 assets/serializers/platform.py:173
#: authentication/serializers/connect_token_secret.py:30 #: authentication/serializers/connect_token_secret.py:30
#: authentication/serializers/connect_token_secret.py:75 #: authentication/serializers/connect_token_secret.py:75
#: perms/models/asset_permission.py:76 perms/serializers/permission.py:56 #: perms/models/asset_permission.py:76 perms/serializers/permission.py:56
@ -2424,7 +2439,7 @@ msgid ""
"the zone, the connection is routed through the gateway." "the zone, the connection is routed through the gateway."
msgstr "" msgstr ""
#: assets/serializers/domain.py:24 assets/serializers/platform.py:177 #: assets/serializers/domain.py:24 assets/serializers/platform.py:181
#: orgs/serializers.py:13 perms/serializers/permission.py:50 #: orgs/serializers.py:13 perms/serializers/permission.py:50
msgid "Assets amount" msgid "Assets amount"
msgstr "" msgstr ""
@ -2509,38 +2524,38 @@ msgstr ""
msgid "This protocol is public, asset will show this protocol to user" msgid "This protocol is public, asset will show this protocol to user"
msgstr "" msgstr ""
#: assets/serializers/platform.py:157 #: assets/serializers/platform.py:161
msgid "Help text" msgid "Help text"
msgstr "" msgstr ""
#: assets/serializers/platform.py:158 #: assets/serializers/platform.py:162
msgid "Choices" msgid "Choices"
msgstr "" msgstr ""
#: assets/serializers/platform.py:170 #: assets/serializers/platform.py:174
msgid "Automation" msgid "Automation"
msgstr "" msgstr ""
#: assets/serializers/platform.py:199 #: assets/serializers/platform.py:203
msgid "" msgid ""
"Login with account when accessing assets, then automatically switch to " "Login with account when accessing assets, then automatically switch to "
"another, similar to logging in with a regular account and then switching to " "another, similar to logging in with a regular account and then switching to "
"root" "root"
msgstr "" msgstr ""
#: assets/serializers/platform.py:205 #: assets/serializers/platform.py:209
msgid "Assets can be connected using a zone gateway" msgid "Assets can be connected using a zone gateway"
msgstr "" msgstr ""
#: assets/serializers/platform.py:207 #: assets/serializers/platform.py:211
msgid "Default Domain" msgid "Default Domain"
msgstr "" msgstr ""
#: assets/serializers/platform.py:229 #: assets/serializers/platform.py:233
msgid "type is required" msgid "type is required"
msgstr "" msgstr ""
#: assets/serializers/platform.py:244 #: assets/serializers/platform.py:248
msgid "Protocols is required" msgid "Protocols is required"
msgstr "" msgstr ""
@ -2685,7 +2700,7 @@ msgstr ""
#: audits/const.py:18 audits/const.py:28 #: audits/const.py:18 audits/const.py:28
#: ops/templates/ops/celery_task_log.html:86 #: ops/templates/ops/celery_task_log.html:86
#: terminal/api/session/session.py:149 #: terminal/api/session/session.py:153
msgid "Download" msgid "Download"
msgstr "" msgstr ""
@ -2693,7 +2708,7 @@ msgstr ""
msgid "Rename dir" msgid "Rename dir"
msgstr "" msgstr ""
#: audits/const.py:23 rbac/tree.py:266 terminal/api/session/session.py:274 #: audits/const.py:23 rbac/tree.py:266 terminal/api/session/session.py:281
#: terminal/templates/terminal/_msg_command_warning.html:18 #: terminal/templates/terminal/_msg_command_warning.html:18
#: terminal/templates/terminal/_msg_session_sharing.html:10 #: terminal/templates/terminal/_msg_session_sharing.html:10
#: xpack/plugins/cloud/manager.py:84 #: xpack/plugins/cloud/manager.py:84
@ -2744,7 +2759,7 @@ msgstr ""
#: audits/const.py:46 settings/serializers/terminal.py:6 #: audits/const.py:46 settings/serializers/terminal.py:6
#: terminal/models/applet/host.py:26 terminal/models/component/terminal.py:174 #: terminal/models/applet/host.py:26 terminal/models/component/terminal.py:174
#: terminal/models/virtualapp/provider.py:14 terminal/serializers/session.py:55 #: terminal/models/virtualapp/provider.py:14 terminal/serializers/session.py:55
#: terminal/serializers/session.py:78 #: terminal/serializers/session.py:79
msgid "Terminal" msgid "Terminal"
msgstr "" msgstr ""
@ -3057,7 +3072,7 @@ msgstr ""
msgid "Current user not support mfa type: {}" msgid "Current user not support mfa type: {}"
msgstr "" msgstr ""
#: authentication/api/password.py:33 terminal/api/session/session.py:322 #: authentication/api/password.py:33 terminal/api/session/session.py:334
#: users/views/profile/reset.py:63 #: users/views/profile/reset.py:63
msgid "User does not exist: {}" msgid "User does not exist: {}"
msgstr "" msgstr ""
@ -3303,15 +3318,15 @@ msgstr ""
msgid "Please wait for %s seconds before retry" msgid "Please wait for %s seconds before retry"
msgstr "" msgstr ""
#: authentication/errors/redirect.py:85 authentication/mixins.py:323 #: authentication/errors/redirect.py:85 authentication/mixins.py:326
msgid "Your password is too simple, please change it for security" msgid "Your password is too simple, please change it for security"
msgstr "" msgstr ""
#: authentication/errors/redirect.py:93 authentication/mixins.py:330 #: authentication/errors/redirect.py:93 authentication/mixins.py:335
msgid "You should to change your password before login" msgid "You should to change your password before login"
msgstr "" msgstr ""
#: authentication/errors/redirect.py:101 authentication/mixins.py:337 #: authentication/errors/redirect.py:101 authentication/mixins.py:344
msgid "Your password has expired, please reset before logging in" msgid "Your password has expired, please reset before logging in"
msgstr "" msgstr ""
@ -3427,7 +3442,7 @@ msgstr ""
msgid "The MFA type ({}) is not enabled" msgid "The MFA type ({}) is not enabled"
msgstr "" msgstr ""
#: authentication/mixins.py:313 #: authentication/mixins.py:314
msgid "Please change your password" msgid "Please change your password"
msgstr "" msgstr ""
@ -4170,69 +4185,69 @@ msgstr ""
msgid "Invalid excel file" msgid "Invalid excel file"
msgstr "" msgstr ""
#: common/drf/renders/base.py:137 #: common/drf/renders/base.py:138
msgid "Yes/No" msgid "Yes/No"
msgstr "" msgstr ""
#: common/drf/renders/base.py:140 #: common/drf/renders/base.py:141
msgid "Text, max length {}" msgid "Text, max length {}"
msgstr "" msgstr ""
#: common/drf/renders/base.py:142 #: common/drf/renders/base.py:143
msgid "Long text, no length limit" msgid "Long text, no length limit"
msgstr "" msgstr ""
#: common/drf/renders/base.py:144 #: common/drf/renders/base.py:145
msgid "Number, min {} max {}" msgid "Number, min {} max {}"
msgstr "" msgstr ""
#: common/drf/renders/base.py:147 #: common/drf/renders/base.py:148
msgid "Datetime format {}" msgid "Datetime format {}"
msgstr "" msgstr ""
#: common/drf/renders/base.py:153 #: common/drf/renders/base.py:154
msgid "" msgid ""
"Choices, format name(value), name is optional for human read, value is " "Choices, format name(value), name is optional for human read, value is "
"requisite, options {}" "requisite, options {}"
msgstr "" msgstr ""
#: common/drf/renders/base.py:156 #: common/drf/renders/base.py:157
msgid "Choices, options {}" msgid "Choices, options {}"
msgstr "" msgstr ""
#: common/drf/renders/base.py:158 #: common/drf/renders/base.py:159
msgid "Phone number, format +8612345678901" msgid "Phone number, format +8612345678901"
msgstr "" msgstr ""
#: common/drf/renders/base.py:160 #: common/drf/renders/base.py:161
msgid "Label, format [\"key:value\"]" msgid "Label, format [\"key:value\"]"
msgstr "" msgstr ""
#: common/drf/renders/base.py:162 #: common/drf/renders/base.py:163
msgid "" msgid ""
"Object, format name(id), name is optional for human read, id is requisite" "Object, format name(id), name is optional for human read, id is requisite"
msgstr "" msgstr ""
#: common/drf/renders/base.py:164 #: common/drf/renders/base.py:165
msgid "Object, format id" msgid "Object, format id"
msgstr "" msgstr ""
#: common/drf/renders/base.py:168 #: common/drf/renders/base.py:169
msgid "" msgid ""
"Objects, format [\"name(id)\", ...], name is optional for human read, id is " "Objects, format [\"name(id)\", ...], name is optional for human read, id is "
"requisite" "requisite"
msgstr "" msgstr ""
#: common/drf/renders/base.py:170 #: common/drf/renders/base.py:171
msgid "" msgid ""
"Labels, format [\"key:value\", ...], if label not exists, will create it" "Labels, format [\"key:value\", ...], if label not exists, will create it"
msgstr "" msgstr ""
#: common/drf/renders/base.py:172 #: common/drf/renders/base.py:173
msgid "Objects, format [\"id\", ...]" msgid "Objects, format [\"id\", ...]"
msgstr "" msgstr ""
#: common/drf/renders/base.py:270 #: common/drf/renders/base.py:271
msgid "" msgid ""
"{} - The encryption password has not been set - please go to personal " "{} - The encryption password has not been set - please go to personal "
"information -> file encryption password to set the encryption password" "information -> file encryption password to set the encryption password"
@ -7241,7 +7256,7 @@ msgstr ""
msgid "Invalid" msgid "Invalid"
msgstr "" msgstr ""
#: terminal/api/component/storage.py:132 terminal/tasks.py:187 #: terminal/api/component/storage.py:132 terminal/tasks.py:208
msgid "Test failure: {}" msgid "Test failure: {}"
msgstr "" msgstr ""
@ -7262,15 +7277,15 @@ msgstr ""
msgid "User %s %s session %s replay" msgid "User %s %s session %s replay"
msgstr "" msgstr ""
#: terminal/api/session/session.py:314 #: terminal/api/session/session.py:326
msgid "Session does not exist: {}" msgid "Session does not exist: {}"
msgstr "" msgstr ""
#: terminal/api/session/session.py:317 #: terminal/api/session/session.py:329
msgid "Session is finished or the protocol not supported" msgid "Session is finished or the protocol not supported"
msgstr "" msgstr ""
#: terminal/api/session/session.py:330 #: terminal/api/session/session.py:342
msgid "User does not have permission" msgid "User does not have permission"
msgstr "" msgstr ""
@ -7434,7 +7449,7 @@ msgstr ""
msgid "Can concurrent" msgid "Can concurrent"
msgstr "" msgstr ""
#: terminal/models/applet/applet.py:49 terminal/serializers/applet_host.py:178 #: terminal/models/applet/applet.py:49 terminal/serializers/applet_host.py:179
#: terminal/serializers/storage.py:193 #: terminal/serializers/storage.py:193
msgid "Hosts" msgid "Hosts"
msgstr "" msgstr ""
@ -7465,7 +7480,7 @@ msgstr ""
msgid "Applet Publication" msgid "Applet Publication"
msgstr "" msgstr ""
#: terminal/models/applet/host.py:18 terminal/serializers/applet_host.py:80 #: terminal/models/applet/host.py:18 terminal/serializers/applet_host.py:81
msgid "Deploy options" msgid "Deploy options"
msgstr "" msgstr ""
@ -7577,12 +7592,12 @@ msgstr ""
msgid "Boot Time" msgid "Boot Time"
msgstr "" msgstr ""
#: terminal/models/component/storage.py:146 #: terminal/models/component/storage.py:144
#: terminal/models/component/terminal.py:91 #: terminal/models/component/terminal.py:91
msgid "Command storage" msgid "Command storage"
msgstr "" msgstr ""
#: terminal/models/component/storage.py:214 #: terminal/models/component/storage.py:212
#: terminal/models/component/terminal.py:92 #: terminal/models/component/terminal.py:92
msgid "Replay storage" msgid "Replay storage"
msgstr "" msgstr ""
@ -7631,7 +7646,7 @@ msgstr ""
msgid "Replay" msgid "Replay"
msgstr "" msgstr ""
#: terminal/models/session/session.py:48 terminal/serializers/session.py:77 #: terminal/models/session/session.py:48 terminal/serializers/session.py:78
msgid "Command amount" msgid "Command amount"
msgstr "" msgstr ""
@ -7639,23 +7654,23 @@ msgstr ""
msgid "Error reason" msgid "Error reason"
msgstr "" msgstr ""
#: terminal/models/session/session.py:290 #: terminal/models/session/session.py:308
msgid "Session record" msgid "Session record"
msgstr "" msgstr ""
#: terminal/models/session/session.py:292 #: terminal/models/session/session.py:310
msgid "Can monitor session" msgid "Can monitor session"
msgstr "" msgstr ""
#: terminal/models/session/session.py:293 #: terminal/models/session/session.py:311
msgid "Can share session" msgid "Can share session"
msgstr "" msgstr ""
#: terminal/models/session/session.py:294 #: terminal/models/session/session.py:312
msgid "Can terminate session" msgid "Can terminate session"
msgstr "" msgstr ""
#: terminal/models/session/session.py:295 #: terminal/models/session/session.py:313
msgid "Can validate session action perm" msgid "Can validate session action perm"
msgstr "" msgstr ""
@ -7755,7 +7770,7 @@ msgstr ""
msgid "Command and replay storage" msgid "Command and replay storage"
msgstr "Storage" msgstr "Storage"
#: terminal/notifications.py:240 terminal/tasks.py:191 #: terminal/notifications.py:240 terminal/tasks.py:212
#: xpack/plugins/cloud/api.py:160 #: xpack/plugins/cloud/api.py:160
#: xpack/plugins/cloud/serializers/account.py:121 #: xpack/plugins/cloud/serializers/account.py:121
#: xpack/plugins/cloud/serializers/account.py:123 #: xpack/plugins/cloud/serializers/account.py:123
@ -7771,19 +7786,19 @@ msgstr ""
msgid "Icon" msgid "Icon"
msgstr "" msgstr ""
#: terminal/serializers/applet_host.py:26 #: terminal/serializers/applet_host.py:24
msgid "Per Device (Device number limit)" msgid "Per Device (Device number limit)"
msgstr "" msgstr ""
#: terminal/serializers/applet_host.py:27 #: terminal/serializers/applet_host.py:25
msgid "Per User (User number limit)" msgid "Per User (User number limit)"
msgstr "" msgstr ""
#: terminal/serializers/applet_host.py:39 #: terminal/serializers/applet_host.py:37
msgid "Core API" msgid "Core API"
msgstr "" msgstr ""
#: terminal/serializers/applet_host.py:40 #: terminal/serializers/applet_host.py:38
msgid "" msgid ""
" \n" " \n"
" Tips: The application release machine communicates with the Core " " Tips: The application release machine communicates with the Core "
@ -7797,64 +7812,65 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: terminal/serializers/applet_host.py:48 terminal/serializers/storage.py:207 #: terminal/serializers/applet_host.py:46 terminal/serializers/storage.py:207
msgid "Ignore Certificate Verification" msgid "Ignore Certificate Verification"
msgstr "" msgstr ""
#: terminal/serializers/applet_host.py:50 #: terminal/serializers/applet_host.py:48
msgid "Existing RDS license" msgid "Existing RDS license"
msgstr "" msgstr ""
#: terminal/serializers/applet_host.py:51 #: terminal/serializers/applet_host.py:50
msgid "" msgid ""
"If not exist, the RDS will be in trial mode, and the trial period is 120 " "If not exist, the RDS will be in trial mode, and the trial period is 120 "
"days. <a href={}>Detail</a>" "days. <a href=\"https://learn.microsoft.com/en-us/windows-server/remote/"
"remote-desktop-services/rds-client-access-license\">Detail</a>"
msgstr "" msgstr ""
#: terminal/serializers/applet_host.py:54 #: terminal/serializers/applet_host.py:55
msgid "RDS License Server" msgid "RDS License Server"
msgstr "" msgstr ""
#: terminal/serializers/applet_host.py:56 #: terminal/serializers/applet_host.py:57
msgid "RDS Licensing Mode" msgid "RDS Licensing Mode"
msgstr "" msgstr ""
#: terminal/serializers/applet_host.py:59 #: terminal/serializers/applet_host.py:60
msgid "RDS Single Session Per User" msgid "RDS Single Session Per User"
msgstr "" msgstr ""
#: terminal/serializers/applet_host.py:60 #: terminal/serializers/applet_host.py:61
msgid "" msgid ""
"Tips: A RDS user can have only one session at a time. If set, when next " "Tips: A RDS user can have only one session at a time. If set, when next "
"login connected, previous session will be disconnected." "login connected, previous session will be disconnected."
msgstr "" msgstr ""
#: terminal/serializers/applet_host.py:64 #: terminal/serializers/applet_host.py:65
msgid "RDS Max Disconnection Time (ms)" msgid "RDS Max Disconnection Time (ms)"
msgstr "" msgstr ""
#: terminal/serializers/applet_host.py:66 #: terminal/serializers/applet_host.py:67
msgid "" msgid ""
"Tips: Set the maximum duration for keeping a disconnected session active on " "Tips: Set the maximum duration for keeping a disconnected session active on "
"the server (log off the session after 60000 milliseconds)." "the server (log off the session after 60000 milliseconds)."
msgstr "" msgstr ""
#: terminal/serializers/applet_host.py:71 #: terminal/serializers/applet_host.py:72
msgid "RDS Remote App Logoff Time Limit (ms)" msgid "RDS Remote App Logoff Time Limit (ms)"
msgstr "" msgstr ""
#: terminal/serializers/applet_host.py:73 #: terminal/serializers/applet_host.py:74
msgid "" msgid ""
"Tips: Set the logoff time for RemoteApp sessions after closing all RemoteApp " "Tips: Set the logoff time for RemoteApp sessions after closing all RemoteApp "
"programs (0 milliseconds, log off the session immediately)." "programs (0 milliseconds, log off the session immediately)."
msgstr "" msgstr ""
#: terminal/serializers/applet_host.py:82 terminal/serializers/terminal.py:47 #: terminal/serializers/applet_host.py:83 terminal/serializers/terminal.py:47
#: terminal/serializers/virtualapp_provider.py:13 #: terminal/serializers/virtualapp_provider.py:13
msgid "Load status" msgid "Load status"
msgstr "" msgstr ""
#: terminal/serializers/applet_host.py:96 #: terminal/serializers/applet_host.py:97
msgid "" msgid ""
"These accounts are used to connect to the published application, the account " "These accounts are used to connect to the published application, the account "
"is now divided into two types, one is dedicated to each account, each user " "is now divided into two types, one is dedicated to each account, each user "
@ -7863,26 +7879,26 @@ msgid ""
"be used to connect" "be used to connect"
msgstr "" msgstr ""
#: terminal/serializers/applet_host.py:103 #: terminal/serializers/applet_host.py:104
msgid "The number of public accounts created automatically" msgid "The number of public accounts created automatically"
msgstr "" msgstr ""
#: terminal/serializers/applet_host.py:106 #: terminal/serializers/applet_host.py:107
msgid "" msgid ""
"Connect to the host using the same account first. For security reasons, " "Connect to the host using the same account first. For security reasons, "
"please set the configuration item CACHE_LOGIN_PASSWORD_ENABLED=true and " "please set the configuration item CACHE_LOGIN_PASSWORD_ENABLED=true and "
"restart the service to enable it." "restart the service to enable it."
msgstr "" msgstr ""
#: terminal/serializers/applet_host.py:148 #: terminal/serializers/applet_host.py:149
msgid "Install applets" msgid "Install applets"
msgstr "" msgstr ""
#: terminal/serializers/applet_host.py:178 #: terminal/serializers/applet_host.py:179
msgid "Host ID" msgid "Host ID"
msgstr "" msgstr ""
#: terminal/serializers/applet_host.py:179 #: terminal/serializers/applet_host.py:180
msgid "Applet ID" msgid "Applet ID"
msgstr "" msgstr ""
@ -8220,7 +8236,7 @@ msgstr ""
msgid "Upload session replay to external storage" msgid "Upload session replay to external storage"
msgstr "" msgstr ""
#: terminal/tasks.py:70 #: terminal/tasks.py:70 terminal/tasks.py:104
msgid "" msgid ""
"If SERVER_REPLAY_STORAGE is configured in the config.txt, session commands " "If SERVER_REPLAY_STORAGE is configured in the config.txt, session commands "
"and \n" "and \n"
@ -8228,54 +8244,58 @@ msgid ""
msgstr "" msgstr ""
#: terminal/tasks.py:102 #: terminal/tasks.py:102
msgid "Upload session replay part file to external storage"
msgstr ""
#: terminal/tasks.py:123
msgid "Run applet host deployment" msgid "Run applet host deployment"
msgstr "" msgstr ""
#: terminal/tasks.py:105 #: terminal/tasks.py:126
msgid "" msgid ""
"When deploying from the remote application publisher details page, and the " "When deploying from the remote application publisher details page, and the "
"'Deploy' \n" "'Deploy' \n"
" button is clicked, this task will be executed" " button is clicked, this task will be executed"
msgstr "" msgstr ""
#: terminal/tasks.py:116 #: terminal/tasks.py:137
msgid "Install applet" msgid "Install applet"
msgstr "" msgstr ""
#: terminal/tasks.py:119 #: terminal/tasks.py:140
msgid "" msgid ""
"When the 'Deploy' button is clicked in the 'Remote Application' section of " "When the 'Deploy' button is clicked in the 'Remote Application' section of "
"the remote \n" "the remote \n"
" application publisher details page, this task will be executed" " application publisher details page, this task will be executed"
msgstr "" msgstr ""
#: terminal/tasks.py:131 #: terminal/tasks.py:152
msgid "Uninstall applet" msgid "Uninstall applet"
msgstr "" msgstr ""
#: terminal/tasks.py:134 #: terminal/tasks.py:155
msgid "" msgid ""
"When the 'Uninstall' button is clicked in the 'Remote Application' section " "When the 'Uninstall' button is clicked in the 'Remote Application' section "
"of the \n" "of the \n"
" remote application publisher details page, this task will be executed" " remote application publisher details page, this task will be executed"
msgstr "" msgstr ""
#: terminal/tasks.py:146 #: terminal/tasks.py:167
msgid "Generate applet host accounts" msgid "Generate applet host accounts"
msgstr "" msgstr ""
#: terminal/tasks.py:149 #: terminal/tasks.py:170
msgid "" msgid ""
"When a remote publishing server is created and an account needs to be " "When a remote publishing server is created and an account needs to be "
"created \n" "created \n"
" automatically, this task will be executed" " automatically, this task will be executed"
msgstr "" msgstr ""
#: terminal/tasks.py:163 #: terminal/tasks.py:184
msgid "Check command replay storage connectivity" msgid "Check command replay storage connectivity"
msgstr "" msgstr ""
#: terminal/tasks.py:165 #: terminal/tasks.py:186
msgid "" msgid ""
"Check every day at midnight whether the external storage for commands and " "Check every day at midnight whether the external storage for commands and "
"recordings \n" "recordings \n"
@ -9116,7 +9136,7 @@ msgstr ""
#: users/tasks.py:69 #: users/tasks.py:69
msgid "" msgid ""
"Check every day at 10 AM whether the users in the system are expired, and " "Check every day at 2 p.m whether the users in the system are expired, and "
"send a \n" "send a \n"
" notification 5 days in advance" " notification 5 days in advance"
msgstr "" msgstr ""
@ -9140,7 +9160,7 @@ msgstr ""
#: users/tasks.py:113 #: users/tasks.py:113
msgid "" msgid ""
"At 2 a.m. every day, according to the configuration in \"System Settings - " "At 2 p.m. every day, according to the configuration in \"System Settings - "
"Security - \n" "Security - \n"
" Auth security - Auto disable threshold\" users who have not logged " " Auth security - Auto disable threshold\" users who have not logged "
"in or whose API keys \n" "in or whose API keys \n"
@ -10109,21 +10129,25 @@ msgstr ""
#: xpack/plugins/cloud/tasks.py:33 #: xpack/plugins/cloud/tasks.py:33
msgid "" msgid ""
"Execute this task when manually or scheduled cloud synchronization tasks are " "\n"
"performed" " Execute this task when manually or scheduled cloud synchronization "
"tasks are performed\n"
" "
msgstr "" msgstr ""
#: xpack/plugins/cloud/tasks.py:50 #: xpack/plugins/cloud/tasks.py:52
msgid "Period clean sync instance task execution" msgid "Period clean sync instance task execution"
msgstr "" msgstr ""
#: xpack/plugins/cloud/tasks.py:52 #: xpack/plugins/cloud/tasks.py:54
msgid "" msgid ""
"Every day, according to the configuration in \"System Settings - Tasks - " "\n"
"Regular \n" " Every day, according to the configuration in \"System Settings - "
"Tasks - Regular \n"
" clean-up - Cloud sync task history retention days\" the system will " " clean-up - Cloud sync task history retention days\" the system will "
"clean up the execution \n" "clean up the execution \n"
" records generated by cloud synchronization" " records generated by cloud synchronization\n"
" "
msgstr "" msgstr ""
#: xpack/plugins/interface/api.py:52 #: xpack/plugins/interface/api.py:52

1664
apps/i18n/core/ja/LC_MESSAGES/django.po

File diff suppressed because it is too large Load Diff

253
apps/i18n/core/zh/LC_MESSAGES/django.po

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: JumpServer 0.3.3\n" "Project-Id-Version: JumpServer 0.3.3\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-14 16:55+0800\n" "POT-Creation-Date: 2024-09-19 16:31+0800\n"
"PO-Revision-Date: 2021-05-20 10:54+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n"
"Last-Translator: ibuler <ibuler@qq.com>\n" "Last-Translator: ibuler <ibuler@qq.com>\n"
"Language-Team: JumpServer team<ibuler@qq.com>\n" "Language-Team: JumpServer team<ibuler@qq.com>\n"
@ -340,14 +340,14 @@ msgstr "用户 %s 查看/导出 了密码"
#: accounts/models/account.py:49 #: accounts/models/account.py:49
#: accounts/models/automations/gather_account.py:16 #: accounts/models/automations/gather_account.py:16
#: accounts/serializers/account/account.py:226 #: accounts/serializers/account/account.py:226
#: accounts/serializers/account/account.py:271 #: accounts/serializers/account/account.py:272
#: accounts/serializers/account/gathered_account.py:10 #: accounts/serializers/account/gathered_account.py:10
#: accounts/serializers/automations/change_secret.py:111 #: accounts/serializers/automations/change_secret.py:111
#: accounts/serializers/automations/change_secret.py:143 #: accounts/serializers/automations/change_secret.py:143
#: accounts/templates/accounts/asset_account_change_info.html:7 #: accounts/templates/accounts/asset_account_change_info.html:7
#: accounts/templates/accounts/change_secret_failed_info.html:11 #: accounts/templates/accounts/change_secret_failed_info.html:11
#: acls/serializers/base.py:123 assets/models/asset/common.py:95 #: acls/serializers/base.py:123 assets/models/asset/common.py:102
#: assets/models/asset/common.py:355 assets/models/cmd_filter.py:36 #: assets/models/asset/common.py:362 assets/models/cmd_filter.py:36
#: audits/models.py:58 authentication/models/connection_token.py:36 #: audits/models.py:58 authentication/models/connection_token.py:36
#: perms/models/asset_permission.py:69 terminal/backends/command/models.py:17 #: perms/models/asset_permission.py:69 terminal/backends/command/models.py:17
#: terminal/models/session/session.py:32 terminal/notifications.py:155 #: terminal/models/session/session.py:32 terminal/notifications.py:155
@ -360,8 +360,8 @@ msgstr "资产"
#: accounts/models/account.py:53 accounts/models/template.py:16 #: accounts/models/account.py:53 accounts/models/template.py:16
#: accounts/serializers/account/account.py:233 #: accounts/serializers/account/account.py:233
#: accounts/serializers/account/account.py:281 #: accounts/serializers/account/account.py:282
#: accounts/serializers/account/template.py:27 #: accounts/serializers/account/template.py:37
#: authentication/serializers/connect_token_secret.py:50 #: authentication/serializers/connect_token_secret.py:50
msgid "Su from" msgid "Su from"
msgstr "切换自" msgstr "切换自"
@ -594,7 +594,7 @@ msgid "Status"
msgstr "状态" msgstr "状态"
#: accounts/models/automations/change_secret.py:46 #: accounts/models/automations/change_secret.py:46
#: accounts/serializers/account/account.py:273 #: accounts/serializers/account/account.py:274
#: accounts/templates/accounts/change_secret_failed_info.html:13 #: accounts/templates/accounts/change_secret_failed_info.html:13
#: assets/const/automation.py:8 #: assets/const/automation.py:8
#: authentication/templates/authentication/passkey.html:173 #: authentication/templates/authentication/passkey.html:173
@ -670,7 +670,7 @@ msgid "Verify asset account"
msgstr "账号验证" msgstr "账号验证"
#: accounts/models/base.py:37 accounts/models/base.py:67 #: accounts/models/base.py:37 accounts/models/base.py:67
#: accounts/serializers/account/account.py:463 #: accounts/serializers/account/account.py:464
#: accounts/serializers/account/base.py:17 #: accounts/serializers/account/base.py:17
#: accounts/serializers/automations/change_secret.py:47 #: accounts/serializers/automations/change_secret.py:47
#: authentication/serializers/connect_token_secret.py:42 #: authentication/serializers/connect_token_secret.py:42
@ -692,19 +692,19 @@ msgstr "密文"
msgid "Secret strategy" msgid "Secret strategy"
msgstr "密文策略" msgstr "密文策略"
#: accounts/models/base.py:44 accounts/serializers/account/template.py:24 #: accounts/models/base.py:44 accounts/serializers/account/template.py:34
#: accounts/serializers/automations/change_secret.py:46 #: accounts/serializers/automations/change_secret.py:46
msgid "Password rules" msgid "Password rules"
msgstr "密码规则" msgstr "密码规则"
#: accounts/models/base.py:64 accounts/serializers/account/virtual.py:20 #: accounts/models/base.py:64 accounts/serializers/account/virtual.py:20
#: acls/models/base.py:35 acls/models/base.py:96 acls/models/command_acl.py:21 #: acls/models/base.py:35 acls/models/base.py:96 acls/models/command_acl.py:21
#: acls/serializers/base.py:35 assets/models/asset/common.py:93 #: acls/serializers/base.py:35 assets/models/asset/common.py:100
#: assets/models/asset/common.py:159 assets/models/cmd_filter.py:21 #: assets/models/asset/common.py:166 assets/models/cmd_filter.py:21
#: assets/models/domain.py:19 assets/models/label.py:18 #: assets/models/domain.py:19 assets/models/label.py:18
#: assets/models/platform.py:15 assets/models/platform.py:94 #: assets/models/platform.py:15 assets/models/platform.py:94
#: assets/serializers/asset/common.py:169 assets/serializers/platform.py:153 #: assets/serializers/asset/common.py:169 assets/serializers/platform.py:157
#: assets/serializers/platform.py:273 #: assets/serializers/platform.py:277
#: authentication/backends/passkey/models.py:10 #: authentication/backends/passkey/models.py:10
#: authentication/models/ssh_key.py:12 #: authentication/models/ssh_key.py:12
#: authentication/serializers/connect_token_secret.py:113 #: authentication/serializers/connect_token_secret.py:113
@ -854,14 +854,14 @@ msgid "Exist policy"
msgstr "账号存在策略" msgstr "账号存在策略"
#: accounts/serializers/account/account.py:181 #: accounts/serializers/account/account.py:181
#: accounts/serializers/account/account.py:339 #: accounts/serializers/account/account.py:340
msgid "Account already exists" msgid "Account already exists"
msgstr "账号已存在" msgstr "账号已存在"
#: accounts/serializers/account/account.py:206 assets/models/label.py:21 #: accounts/serializers/account/account.py:206 assets/models/label.py:21
#: assets/models/platform.py:95 assets/serializers/asset/common.py:145 #: assets/models/platform.py:95 assets/serializers/asset/common.py:145
#: assets/serializers/cagegory.py:12 assets/serializers/platform.py:168 #: assets/serializers/cagegory.py:12 assets/serializers/platform.py:172
#: assets/serializers/platform.py:274 perms/serializers/user_permission.py:26 #: assets/serializers/platform.py:278 perms/serializers/user_permission.py:26
#: settings/models.py:37 tickets/models/ticket/apply_application.py:13 #: settings/models.py:37 tickets/models/ticket/apply_application.py:13
#: users/models/preference.py:12 #: users/models/preference.py:12
msgid "Category" msgid "Category"
@ -871,8 +871,8 @@ msgstr "类别"
#: accounts/serializers/automations/base.py:55 acls/models/command_acl.py:24 #: accounts/serializers/automations/base.py:55 acls/models/command_acl.py:24
#: acls/serializers/command_acl.py:19 assets/models/automations/base.py:20 #: acls/serializers/command_acl.py:19 assets/models/automations/base.py:20
#: assets/models/cmd_filter.py:74 assets/models/platform.py:96 #: assets/models/cmd_filter.py:74 assets/models/platform.py:96
#: assets/serializers/asset/common.py:146 assets/serializers/platform.py:155 #: assets/serializers/asset/common.py:146 assets/serializers/platform.py:159
#: assets/serializers/platform.py:167 audits/serializers.py:53 #: assets/serializers/platform.py:171 audits/serializers.py:53
#: audits/serializers.py:170 #: audits/serializers.py:170
#: authentication/serializers/connect_token_secret.py:126 ops/models/job.py:150 #: authentication/serializers/connect_token_secret.py:126 ops/models/job.py:150
#: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:40 #: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:40
@ -890,26 +890,26 @@ msgstr "类型"
msgid "Asset not found" msgid "Asset not found"
msgstr "资产不存在" msgstr "资产不存在"
#: accounts/serializers/account/account.py:262 #: accounts/serializers/account/account.py:263
msgid "Has secret" msgid "Has secret"
msgstr "已托管密码" msgstr "已托管密码"
#: accounts/serializers/account/account.py:272 ops/models/celery.py:84 #: accounts/serializers/account/account.py:273 ops/models/celery.py:84
#: tickets/models/comment.py:13 tickets/models/ticket/general.py:49 #: tickets/models/comment.py:13 tickets/models/ticket/general.py:49
#: tickets/models/ticket/general.py:280 tickets/serializers/super_ticket.py:14 #: tickets/models/ticket/general.py:280 tickets/serializers/super_ticket.py:14
msgid "State" msgid "State"
msgstr "状态" msgstr "状态"
#: accounts/serializers/account/account.py:274 #: accounts/serializers/account/account.py:275
msgid "Changed" msgid "Changed"
msgstr "已修改" msgstr "已修改"
#: accounts/serializers/account/account.py:284 #: accounts/serializers/account/account.py:285
#: accounts/serializers/automations/base.py:22 acls/models/base.py:97 #: accounts/serializers/automations/base.py:22 acls/models/base.py:97
#: acls/templates/acls/asset_login_reminder.html:9 #: acls/templates/acls/asset_login_reminder.html:9
#: assets/models/automations/base.py:19 #: assets/models/automations/base.py:19
#: assets/serializers/automations/base.py:20 assets/serializers/domain.py:34 #: assets/serializers/automations/base.py:20 assets/serializers/domain.py:34
#: assets/serializers/platform.py:176 assets/serializers/platform.py:208 #: assets/serializers/platform.py:180 assets/serializers/platform.py:212
#: authentication/api/connection_token.py:410 ops/models/base.py:17 #: authentication/api/connection_token.py:410 ops/models/base.py:17
#: ops/models/job.py:152 ops/serializers/job.py:19 #: ops/models/job.py:152 ops/serializers/job.py:19
#: perms/serializers/permission.py:46 #: perms/serializers/permission.py:46
@ -918,30 +918,30 @@ msgstr "已修改"
msgid "Assets" msgid "Assets"
msgstr "资产" msgstr "资产"
#: accounts/serializers/account/account.py:389 #: accounts/serializers/account/account.py:390
#, python-format #, python-format
msgid "Asset does not support this secret type: %s" msgid "Asset does not support this secret type: %s"
msgstr "资产不支持账号类型: %s" msgstr "资产不支持账号类型: %s"
#: accounts/serializers/account/account.py:421 #: accounts/serializers/account/account.py:422
msgid "Account has exist" msgid "Account has exist"
msgstr "账号已存在" msgstr "账号已存在"
#: accounts/serializers/account/account.py:458 #: accounts/serializers/account/account.py:459
#: accounts/serializers/account/base.py:93 #: accounts/serializers/account/base.py:93
#: accounts/serializers/account/template.py:72 #: accounts/serializers/account/template.py:83
#: assets/serializers/asset/common.py:407 #: assets/serializers/asset/common.py:407
msgid "Spec info" msgid "Spec info"
msgstr "特殊信息" msgstr "特殊信息"
#: accounts/serializers/account/account.py:464 #: accounts/serializers/account/account.py:465
#: authentication/serializers/connect_token_secret.py:159 #: authentication/serializers/connect_token_secret.py:159
#: authentication/templates/authentication/_access_key_modal.html:30 #: authentication/templates/authentication/_access_key_modal.html:30
#: perms/models/perm_node.py:21 users/serializers/group.py:33 #: perms/models/perm_node.py:21 users/serializers/group.py:33
msgid "ID" msgid "ID"
msgstr "ID" msgstr "ID"
#: accounts/serializers/account/account.py:474 acls/serializers/base.py:116 #: accounts/serializers/account/account.py:475 acls/serializers/base.py:116
#: acls/templates/acls/asset_login_reminder.html:8 #: acls/templates/acls/asset_login_reminder.html:8
#: acls/templates/acls/user_login_reminder.html:8 #: acls/templates/acls/user_login_reminder.html:8
#: assets/models/cmd_filter.py:24 assets/models/label.py:16 audits/models.py:54 #: assets/models/cmd_filter.py:24 assets/models/label.py:16 audits/models.py:54
@ -963,7 +963,7 @@ msgstr "ID"
msgid "User" msgid "User"
msgstr "用户" msgstr "用户"
#: accounts/serializers/account/account.py:475 #: accounts/serializers/account/account.py:476
#: authentication/templates/authentication/_access_key_modal.html:33 #: authentication/templates/authentication/_access_key_modal.html:33
#: terminal/notifications.py:158 terminal/notifications.py:207 #: terminal/notifications.py:158 terminal/notifications.py:207
msgid "Date" msgid "Date"
@ -1025,15 +1025,34 @@ msgstr "特殊字符"
msgid "Exclude symbol" msgid "Exclude symbol"
msgstr "排除字符" msgstr "排除字符"
#: accounts/serializers/account/template.py:39 #: accounts/serializers/account/template.py:24
msgid ""
"length is the length of the password, and the range is 8 to 30.\n"
"lowercase indicates whether the password contains lowercase letters, \n"
"uppercase indicates whether it contains uppercase letters,\n"
"digit indicates whether it contains numbers, and symbol indicates whether it "
"contains special symbols.\n"
"exclude_symbols is used to exclude specific symbols. You can fill in the "
"symbol characters to be excluded (up to 16). \n"
"If you do not need to exclude symbols, you can leave it blank.\n"
"default: {\"length\": 16, \"lowercase\": true, \"uppercase\": true, "
"\"digit\": true, \"symbol\": true, \"exclude_symbols\": \"\"}"
msgstr ""
"length 是密码的长度,填写范围为 8 到 30。"
"lowercase 表示密码中是否包含小写字母,uppercase 表示是否包含大写字母,"
"digit 表示是否包含数字,symbol 表示是否包含特殊符号。"
"exclude_symbols 用于排除特定符号,您可以填写要排除的符号字符(最多 16 个),如果无需排除符号,可以留空。"
"默认: {\"length\": 16, \"lowercase\": true, \"uppercase\": true, \"digit\": true, \"symbol\": true, \"exclude_symbols\": \"\"}"
#: accounts/serializers/account/template.py:49
msgid "Secret generation strategy for account creation" msgid "Secret generation strategy for account creation"
msgstr "密码生成策略,用于账号创建时,设置密码" msgstr "密码生成策略,用于账号创建时,设置密码"
#: accounts/serializers/account/template.py:40 #: accounts/serializers/account/template.py:50
msgid "Whether to automatically push the account to the asset" msgid "Whether to automatically push the account to the asset"
msgstr "是否自动推送账号到资产" msgstr "是否自动推送账号到资产"
#: accounts/serializers/account/template.py:43 #: accounts/serializers/account/template.py:53
msgid "" msgid ""
"Associated platform, you can configure push parameters. If not associated, " "Associated platform, you can configure push parameters. If not associated, "
"default parameters will be used" "default parameters will be used"
@ -1064,7 +1083,7 @@ msgstr ""
"CACHE_LOGIN_PASSWORD_ENABLED=true,重启服务才能开启" "CACHE_LOGIN_PASSWORD_ENABLED=true,重启服务才能开启"
#: accounts/serializers/automations/base.py:23 #: accounts/serializers/automations/base.py:23
#: assets/models/asset/common.py:169 assets/serializers/asset/common.py:172 #: assets/models/asset/common.py:176 assets/serializers/asset/common.py:172
#: assets/serializers/automations/base.py:21 perms/serializers/permission.py:47 #: assets/serializers/automations/base.py:21 perms/serializers/permission.py:47
msgid "Nodes" msgid "Nodes"
msgstr "节点" msgstr "节点"
@ -1253,17 +1272,17 @@ msgid ""
"task will be executed" "task will be executed"
msgstr "在系统设置-功能设置-账号存储点击同步时,执行该任务" msgstr "在系统设置-功能设置-账号存储点击同步时,执行该任务"
#: accounts/tasks/verify_account.py:50 #: accounts/tasks/verify_account.py:49
msgid "Verify asset account availability" msgid "Verify asset account availability"
msgstr "验证资产账号可用性" msgstr "验证资产账号可用性"
#: accounts/tasks/verify_account.py:53 #: accounts/tasks/verify_account.py:52
msgid "" msgid ""
"When clicking 'Test' in 'Console - Asset details - Accounts' this task will " "When clicking 'Test' in 'Console - Asset details - Accounts' this task will "
"be executed" "be executed"
msgstr "当在控制台-资产详情-账号点击测试执行该任务" msgstr "当在控制台-资产详情-账号点击测试执行该任务"
#: accounts/tasks/verify_account.py:59 #: accounts/tasks/verify_account.py:58
msgid "Verify accounts connectivity" msgid "Verify accounts connectivity"
msgstr "测试账号可连接性" msgstr "测试账号可连接性"
@ -1348,7 +1367,7 @@ msgstr "优先级可选范围为 1-100 (数值越小越优先)"
msgid "Reviewers" msgid "Reviewers"
msgstr "审批人" msgstr "审批人"
#: acls/models/base.py:43 assets/models/asset/common.py:171 #: acls/models/base.py:43 assets/models/asset/common.py:178
#: authentication/models/access_key.py:25 #: authentication/models/access_key.py:25
#: authentication/models/connection_token.py:53 #: authentication/models/connection_token.py:53
#: authentication/models/ssh_key.py:13 #: authentication/models/ssh_key.py:13
@ -1504,7 +1523,7 @@ msgstr ""
#: authentication/templates/authentication/_msg_oauth_bind.html:12 #: authentication/templates/authentication/_msg_oauth_bind.html:12
#: authentication/templates/authentication/_msg_rest_password_success.html:8 #: authentication/templates/authentication/_msg_rest_password_success.html:8
#: authentication/templates/authentication/_msg_rest_public_key_success.html:8 #: authentication/templates/authentication/_msg_rest_public_key_success.html:8
#: common/drf/renders/base.py:149 xpack/plugins/cloud/models.py:390 #: common/drf/renders/base.py:150 xpack/plugins/cloud/models.py:390
msgid "IP" msgid "IP"
msgstr "IP" msgstr "IP"
@ -1566,11 +1585,11 @@ msgstr "登录城市"
msgid "User agent" msgid "User agent"
msgstr "用户代理" msgstr "用户代理"
#: assets/api/asset/asset.py:181 #: assets/api/asset/asset.py:190
msgid "Cannot create asset directly, you should create a host or other" msgid "Cannot create asset directly, you should create a host or other"
msgstr "不能直接创建资产, 你应该创建主机或其他资产" msgstr "不能直接创建资产, 你应该创建主机或其他资产"
#: assets/api/asset/asset.py:185 #: assets/api/asset/asset.py:194
msgid "The number of assets exceeds the limit of 5000" msgid "The number of assets exceeds the limit of 5000"
msgstr "资产数量超过了 5000 的限制" msgstr "资产数量超过了 5000 的限制"
@ -1929,51 +1948,51 @@ msgstr "暂时不支持此功能"
msgid "Cloud" msgid "Cloud"
msgstr "云服务" msgstr "云服务"
#: assets/models/asset/common.py:94 assets/models/platform.py:16 #: assets/models/asset/common.py:101 assets/models/platform.py:16
#: settings/serializers/auth/radius.py:18 settings/serializers/auth/sms.py:77 #: settings/serializers/auth/radius.py:18 settings/serializers/auth/sms.py:77
#: settings/serializers/msg.py:31 terminal/serializers/storage.py:133 #: settings/serializers/msg.py:31 terminal/serializers/storage.py:133
#: xpack/plugins/cloud/serializers/account_attrs.py:73 #: xpack/plugins/cloud/serializers/account_attrs.py:73
msgid "Port" msgid "Port"
msgstr "端口" msgstr "端口"
#: assets/models/asset/common.py:160 assets/serializers/asset/common.py:170 #: assets/models/asset/common.py:167 assets/serializers/asset/common.py:170
#: settings/serializers/terminal.py:10 #: settings/serializers/terminal.py:10
msgid "Address" msgid "Address"
msgstr "地址" msgstr "地址"
#: assets/models/asset/common.py:162 assets/models/platform.py:149 #: assets/models/asset/common.py:169 assets/models/platform.py:149
#: authentication/backends/passkey/models.py:12 #: authentication/backends/passkey/models.py:12
#: authentication/serializers/connect_token_secret.py:118 #: authentication/serializers/connect_token_secret.py:118
#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:385 #: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:385
msgid "Platform" msgid "Platform"
msgstr "平台" msgstr "平台"
#: assets/models/asset/common.py:166 assets/models/domain.py:22 #: assets/models/asset/common.py:173 assets/models/domain.py:22
msgid "Zone" msgid "Zone"
msgstr "网域" msgstr "网域"
#: assets/models/asset/common.py:172 assets/serializers/asset/common.py:408 #: assets/models/asset/common.py:179 assets/serializers/asset/common.py:408
#: assets/serializers/asset/host.py:11 #: assets/serializers/asset/host.py:11
msgid "Gathered info" msgid "Gathered info"
msgstr "收集资产硬件信息" msgstr "收集资产硬件信息"
#: assets/models/asset/common.py:173 assets/serializers/asset/custom.py:14 #: assets/models/asset/common.py:180 assets/serializers/asset/custom.py:14
msgid "Custom info" msgid "Custom info"
msgstr "自定义属性" msgstr "自定义属性"
#: assets/models/asset/common.py:358 #: assets/models/asset/common.py:365
msgid "Can refresh asset hardware info" msgid "Can refresh asset hardware info"
msgstr "可以更新资产硬件信息" msgstr "可以更新资产硬件信息"
#: assets/models/asset/common.py:359 #: assets/models/asset/common.py:366
msgid "Can test asset connectivity" msgid "Can test asset connectivity"
msgstr "可以测试资产连接性" msgstr "可以测试资产连接性"
#: assets/models/asset/common.py:360 #: assets/models/asset/common.py:367
msgid "Can match asset" msgid "Can match asset"
msgstr "可以匹配资产" msgstr "可以匹配资产"
#: assets/models/asset/common.py:361 #: assets/models/asset/common.py:368
msgid "Can change asset nodes" msgid "Can change asset nodes"
msgstr "可以修改资产节点" msgstr "可以修改资产节点"
@ -2112,7 +2131,7 @@ msgstr "值"
#: assets/models/label.py:40 assets/serializers/cagegory.py:10 #: assets/models/label.py:40 assets/serializers/cagegory.py:10
#: assets/serializers/cagegory.py:17 assets/serializers/cagegory.py:23 #: assets/serializers/cagegory.py:17 assets/serializers/cagegory.py:23
#: assets/serializers/platform.py:154 #: assets/serializers/platform.py:158
#: authentication/serializers/connect_token_secret.py:124 #: authentication/serializers/connect_token_secret.py:124
#: common/serializers/common.py:85 labels/serializers.py:45 #: common/serializers/common.py:85 labels/serializers.py:45
#: settings/serializers/msg.py:90 #: settings/serializers/msg.py:90
@ -2163,7 +2182,7 @@ msgstr "主要的"
msgid "Required" msgid "Required"
msgstr "必须的" msgstr "必须的"
#: assets/models/platform.py:19 assets/serializers/platform.py:156 #: assets/models/platform.py:19 assets/serializers/platform.py:160
#: terminal/models/component/storage.py:28 #: terminal/models/component/storage.py:28
#: xpack/plugins/cloud/providers/nutanix.py:30 #: xpack/plugins/cloud/providers/nutanix.py:30
msgid "Default" msgid "Default"
@ -2271,23 +2290,23 @@ msgstr "元数据"
msgid "Internal" msgid "Internal"
msgstr "内置" msgstr "内置"
#: assets/models/platform.py:102 assets/serializers/platform.py:166 #: assets/models/platform.py:102 assets/serializers/platform.py:170
msgid "Charset" msgid "Charset"
msgstr "编码" msgstr "编码"
#: assets/models/platform.py:104 assets/serializers/platform.py:204 #: assets/models/platform.py:104 assets/serializers/platform.py:208
msgid "Gateway enabled" msgid "Gateway enabled"
msgstr "启用网域" msgstr "启用网域"
#: assets/models/platform.py:106 assets/serializers/platform.py:197 #: assets/models/platform.py:106 assets/serializers/platform.py:201
msgid "Su enabled" msgid "Su enabled"
msgstr "启用账号切换" msgstr "启用账号切换"
#: assets/models/platform.py:107 assets/serializers/platform.py:172 #: assets/models/platform.py:107 assets/serializers/platform.py:176
msgid "Su method" msgid "Su method"
msgstr "账号切换方式" msgstr "账号切换方式"
#: assets/models/platform.py:108 assets/serializers/platform.py:175 #: assets/models/platform.py:108 assets/serializers/platform.py:179
msgid "Custom fields" msgid "Custom fields"
msgstr "自定义属性" msgstr "自定义属性"
@ -2302,7 +2321,7 @@ msgid ""
"type" "type"
msgstr "资产中批量更新平台,不符合平台类型跳过的资产" msgstr "资产中批量更新平台,不符合平台类型跳过的资产"
#: assets/serializers/asset/common.py:36 #: assets/serializers/asset/common.py:36 assets/serializers/platform.py:152
msgid "Protocols, format is [\"protocol/port\"]" msgid "Protocols, format is [\"protocol/port\"]"
msgstr "协议,格式为 [\"协议/端口\"]" msgstr "协议,格式为 [\"协议/端口\"]"
@ -2324,7 +2343,7 @@ msgid ""
"it" "it"
msgstr "节点路径,格式为 [\"/组织/节点名\"], 如果节点不存在,将创建它" msgstr "节点路径,格式为 [\"/组织/节点名\"], 如果节点不存在,将创建它"
#: assets/serializers/asset/common.py:147 assets/serializers/platform.py:169 #: assets/serializers/asset/common.py:147 assets/serializers/platform.py:173
#: authentication/serializers/connect_token_secret.py:30 #: authentication/serializers/connect_token_secret.py:30
#: authentication/serializers/connect_token_secret.py:75 #: authentication/serializers/connect_token_secret.py:75
#: perms/models/asset_permission.py:76 perms/serializers/permission.py:56 #: perms/models/asset_permission.py:76 perms/serializers/permission.py:56
@ -2458,7 +2477,7 @@ msgid ""
"the zone, the connection is routed through the gateway." "the zone, the connection is routed through the gateway."
msgstr "网关是网域的网络代理,当连接网域内的资产时,连接将通过网关进行路由。" msgstr "网关是网域的网络代理,当连接网域内的资产时,连接将通过网关进行路由。"
#: assets/serializers/domain.py:24 assets/serializers/platform.py:177 #: assets/serializers/domain.py:24 assets/serializers/platform.py:181
#: orgs/serializers.py:13 perms/serializers/permission.py:50 #: orgs/serializers.py:13 perms/serializers/permission.py:50
msgid "Assets amount" msgid "Assets amount"
msgstr "资产数量" msgstr "资产数量"
@ -2543,19 +2562,19 @@ msgstr "该协议是默认的,添加资产时,将默认显示"
msgid "This protocol is public, asset will show this protocol to user" msgid "This protocol is public, asset will show this protocol to user"
msgstr "该协议是公开的,资产将向用户显示该协议并可以连接使用" msgstr "该协议是公开的,资产将向用户显示该协议并可以连接使用"
#: assets/serializers/platform.py:157 #: assets/serializers/platform.py:161
msgid "Help text" msgid "Help text"
msgstr "帮助" msgstr "帮助"
#: assets/serializers/platform.py:158 #: assets/serializers/platform.py:162
msgid "Choices" msgid "Choices"
msgstr "选择" msgstr "选择"
#: assets/serializers/platform.py:170 #: assets/serializers/platform.py:174
msgid "Automation" msgid "Automation"
msgstr "自动化" msgstr "自动化"
#: assets/serializers/platform.py:199 #: assets/serializers/platform.py:203
msgid "" msgid ""
"Login with account when accessing assets, then automatically switch to " "Login with account when accessing assets, then automatically switch to "
"another, similar to logging in with a regular account and then switching to " "another, similar to logging in with a regular account and then switching to "
@ -2564,19 +2583,19 @@ msgstr ""
"在访问资产时使用账户登录,然后自动切换到另一个账户,就像用普通账户登录然后切" "在访问资产时使用账户登录,然后自动切换到另一个账户,就像用普通账户登录然后切"
"换到 root 一样" "换到 root 一样"
#: assets/serializers/platform.py:205 #: assets/serializers/platform.py:209
msgid "Assets can be connected using a zone gateway" msgid "Assets can be connected using a zone gateway"
msgstr "资产可以使用区域网关进行连接" msgstr "资产可以使用区域网关进行连接"
#: assets/serializers/platform.py:207 #: assets/serializers/platform.py:211
msgid "Default Domain" msgid "Default Domain"
msgstr "默认网域" msgstr "默认网域"
#: assets/serializers/platform.py:229 #: assets/serializers/platform.py:233
msgid "type is required" msgid "type is required"
msgstr "类型 该字段是必填项。" msgstr "类型 该字段是必填项。"
#: assets/serializers/platform.py:244 #: assets/serializers/platform.py:248
msgid "Protocols is required" msgid "Protocols is required"
msgstr "协议是必填的" msgstr "协议是必填的"
@ -2724,7 +2743,7 @@ msgstr "建立软链接"
#: audits/const.py:18 audits/const.py:28 #: audits/const.py:18 audits/const.py:28
#: ops/templates/ops/celery_task_log.html:86 #: ops/templates/ops/celery_task_log.html:86
#: terminal/api/session/session.py:149 #: terminal/api/session/session.py:153
msgid "Download" msgid "Download"
msgstr "下载" msgstr "下载"
@ -2732,7 +2751,7 @@ msgstr "下载"
msgid "Rename dir" msgid "Rename dir"
msgstr "映射目录" msgstr "映射目录"
#: audits/const.py:23 rbac/tree.py:266 terminal/api/session/session.py:274 #: audits/const.py:23 rbac/tree.py:266 terminal/api/session/session.py:281
#: terminal/templates/terminal/_msg_command_warning.html:18 #: terminal/templates/terminal/_msg_command_warning.html:18
#: terminal/templates/terminal/_msg_session_sharing.html:10 #: terminal/templates/terminal/_msg_session_sharing.html:10
#: xpack/plugins/cloud/manager.py:84 #: xpack/plugins/cloud/manager.py:84
@ -3100,7 +3119,7 @@ msgstr "ACL 动作是复核"
msgid "Current user not support mfa type: {}" msgid "Current user not support mfa type: {}"
msgstr "当前用户不支持 MFA 类型: {}" msgstr "当前用户不支持 MFA 类型: {}"
#: authentication/api/password.py:33 terminal/api/session/session.py:322 #: authentication/api/password.py:33 terminal/api/session/session.py:334
#: users/views/profile/reset.py:63 #: users/views/profile/reset.py:63
msgid "User does not exist: {}" msgid "User does not exist: {}"
msgstr "用户不存在: {}" msgstr "用户不存在: {}"
@ -3349,15 +3368,15 @@ msgstr "您的密码无效"
msgid "Please wait for %s seconds before retry" msgid "Please wait for %s seconds before retry"
msgstr "请在 %s 秒后重试" msgstr "请在 %s 秒后重试"
#: authentication/errors/redirect.py:85 authentication/mixins.py:323 #: authentication/errors/redirect.py:85 authentication/mixins.py:326
msgid "Your password is too simple, please change it for security" msgid "Your password is too simple, please change it for security"
msgstr "你的密码过于简单,为了安全,请修改" msgstr "你的密码过于简单,为了安全,请修改"
#: authentication/errors/redirect.py:93 authentication/mixins.py:330 #: authentication/errors/redirect.py:93 authentication/mixins.py:335
msgid "You should to change your password before login" msgid "You should to change your password before login"
msgstr "登录完成前,请先修改密码" msgstr "登录完成前,请先修改密码"
#: authentication/errors/redirect.py:101 authentication/mixins.py:337 #: authentication/errors/redirect.py:101 authentication/mixins.py:344
msgid "Your password has expired, please reset before logging in" msgid "Your password has expired, please reset before logging in"
msgstr "您的密码已过期,先修改再登录" msgstr "您的密码已过期,先修改再登录"
@ -3473,7 +3492,7 @@ msgstr "管理员已开启'仅允许从用户来源登录',当前用户来源
msgid "The MFA type ({}) is not enabled" msgid "The MFA type ({}) is not enabled"
msgstr "该 MFA ({}) 方式没有启用" msgstr "该 MFA ({}) 方式没有启用"
#: authentication/mixins.py:313 #: authentication/mixins.py:314
msgid "Please change your password" msgid "Please change your password"
msgstr "请修改密码" msgstr "请修改密码"
@ -4222,70 +4241,70 @@ msgstr "解析文件错误: {}"
msgid "Invalid excel file" msgid "Invalid excel file"
msgstr "无效的 excel 文件" msgstr "无效的 excel 文件"
#: common/drf/renders/base.py:137 #: common/drf/renders/base.py:138
msgid "Yes/No" msgid "Yes/No"
msgstr "" msgstr ""
#: common/drf/renders/base.py:140 #: common/drf/renders/base.py:141
msgid "Text, max length {}" msgid "Text, max length {}"
msgstr "文本,最大长度 {}" msgstr "文本,最大长度 {}"
#: common/drf/renders/base.py:142 #: common/drf/renders/base.py:143
msgid "Long text, no length limit" msgid "Long text, no length limit"
msgstr "长文本,无长度限制" msgstr "长文本,无长度限制"
#: common/drf/renders/base.py:144 #: common/drf/renders/base.py:145
msgid "Number, min {} max {}" msgid "Number, min {} max {}"
msgstr "数字,最小 {} 最大 {}" msgstr "数字,最小 {} 最大 {}"
#: common/drf/renders/base.py:147 #: common/drf/renders/base.py:148
msgid "Datetime format {}" msgid "Datetime format {}"
msgstr "日期时间格式 {}" msgstr "日期时间格式 {}"
#: common/drf/renders/base.py:153 #: common/drf/renders/base.py:154
msgid "" msgid ""
"Choices, format name(value), name is optional for human read, value is " "Choices, format name(value), name is optional for human read, value is "
"requisite, options {}" "requisite, options {}"
msgstr "选项,格式: 名称(值),名称是可选的,方便阅读,值是必填的,可选项有 {}" msgstr "选项,格式: 名称(值),名称是可选的,方便阅读,值是必填的,可选项有 {}"
#: common/drf/renders/base.py:156 #: common/drf/renders/base.py:157
msgid "Choices, options {}" msgid "Choices, options {}"
msgstr "选项,可选项有 {}" msgstr "选项,可选项有 {}"
#: common/drf/renders/base.py:158 #: common/drf/renders/base.py:159
msgid "Phone number, format +8612345678901" msgid "Phone number, format +8612345678901"
msgstr "手机号,格式 +8612345678901" msgstr "手机号,格式 +8612345678901"
#: common/drf/renders/base.py:160 #: common/drf/renders/base.py:161
msgid "Label, format [\"key:value\"]" msgid "Label, format [\"key:value\"]"
msgstr "标签,格式: [\"键:值\"]" msgstr "标签,格式: [\"键:值\"]"
#: common/drf/renders/base.py:162 #: common/drf/renders/base.py:163
msgid "" msgid ""
"Object, format name(id), name is optional for human read, id is requisite" "Object, format name(id), name is optional for human read, id is requisite"
msgstr "关联项,格式: 名称(id), 名称是可选的,方便阅读,id 是必填的" msgstr "关联项,格式: 名称(id), 名称是可选的,方便阅读,id 是必填的"
#: common/drf/renders/base.py:164 #: common/drf/renders/base.py:165
msgid "Object, format id" msgid "Object, format id"
msgstr "关联项,格式是 id" msgstr "关联项,格式是 id"
#: common/drf/renders/base.py:168 #: common/drf/renders/base.py:169
msgid "" msgid ""
"Objects, format [\"name(id)\", ...], name is optional for human read, id is " "Objects, format [\"name(id)\", ...], name is optional for human read, id is "
"requisite" "requisite"
msgstr "" msgstr ""
"多关联项,格式: [\"名称(id)\", ...], 名称是可选的,方便阅读,id 是必填的" "多关联项,格式: [\"名称(id)\", ...], 名称是可选的,方便阅读,id 是必填的"
#: common/drf/renders/base.py:170 #: common/drf/renders/base.py:171
msgid "" msgid ""
"Labels, format [\"key:value\", ...], if label not exists, will create it" "Labels, format [\"key:value\", ...], if label not exists, will create it"
msgstr "标签,格式: [\"键:值\", ...], 如果标签不存在,将创建它" msgstr "标签,格式: [\"键:值\", ...], 如果标签不存在,将创建它"
#: common/drf/renders/base.py:172 #: common/drf/renders/base.py:173
msgid "Objects, format [\"id\", ...]" msgid "Objects, format [\"id\", ...]"
msgstr "多关联项,格式是 [\"id\", ...]" msgstr "多关联项,格式是 [\"id\", ...]"
#: common/drf/renders/base.py:270 #: common/drf/renders/base.py:271
msgid "" msgid ""
"{} - The encryption password has not been set - please go to personal " "{} - The encryption password has not been set - please go to personal "
"information -> file encryption password to set the encryption password" "information -> file encryption password to set the encryption password"
@ -7239,16 +7258,12 @@ msgid "Logout"
msgstr "注销登录" msgstr "注销登录"
#: templates/_message.html:6 #: templates/_message.html:6
#, fuzzy
#| msgid ""
#| " Your account has expired, please contact the "
#| "administrator.\n"
#| " "
msgid "" msgid ""
"\n" "\n"
" Your account has expired, please contact the administrator.\n" " Your account has expired, please contact the administrator.\n"
" " " "
msgstr " 您的账号已经过期,请联系管理员。 " msgstr "\n"
" 您的账号已经过期,请联系管理员。 "
#: templates/_message.html:13 #: templates/_message.html:13
msgid "Your account will at" msgid "Your account will at"
@ -7408,7 +7423,7 @@ msgstr "命令存储"
msgid "Invalid" msgid "Invalid"
msgstr "无效" msgstr "无效"
#: terminal/api/component/storage.py:132 terminal/tasks.py:187 #: terminal/api/component/storage.py:132 terminal/tasks.py:208
msgid "Test failure: {}" msgid "Test failure: {}"
msgstr "测试失败: {}" msgstr "测试失败: {}"
@ -7429,15 +7444,15 @@ msgstr "有在线会话"
msgid "User %s %s session %s replay" msgid "User %s %s session %s replay"
msgstr "用户 %s %s 了会话 %s 的录像" msgstr "用户 %s %s 了会话 %s 的录像"
#: terminal/api/session/session.py:314 #: terminal/api/session/session.py:326
msgid "Session does not exist: {}" msgid "Session does not exist: {}"
msgstr "会话不存在: {}" msgstr "会话不存在: {}"
#: terminal/api/session/session.py:317 #: terminal/api/session/session.py:329
msgid "Session is finished or the protocol not supported" msgid "Session is finished or the protocol not supported"
msgstr "会话已经完成或协议不支持" msgstr "会话已经完成或协议不支持"
#: terminal/api/session/session.py:330 #: terminal/api/session/session.py:342
msgid "User does not have permission" msgid "User does not have permission"
msgstr "用户没有权限" msgstr "用户没有权限"
@ -7806,23 +7821,23 @@ msgstr "命令数量"
msgid "Error reason" msgid "Error reason"
msgstr "错误原因" msgstr "错误原因"
#: terminal/models/session/session.py:290 #: terminal/models/session/session.py:308
msgid "Session record" msgid "Session record"
msgstr "会话记录" msgstr "会话记录"
#: terminal/models/session/session.py:292 #: terminal/models/session/session.py:310
msgid "Can monitor session" msgid "Can monitor session"
msgstr "可以监控会话" msgstr "可以监控会话"
#: terminal/models/session/session.py:293 #: terminal/models/session/session.py:311
msgid "Can share session" msgid "Can share session"
msgstr "可以分享会话" msgstr "可以分享会话"
#: terminal/models/session/session.py:294 #: terminal/models/session/session.py:312
msgid "Can terminate session" msgid "Can terminate session"
msgstr "可以终断会话" msgstr "可以终断会话"
#: terminal/models/session/session.py:295 #: terminal/models/session/session.py:313
msgid "Can validate session action perm" msgid "Can validate session action perm"
msgstr "可以验证会话动作权限" msgstr "可以验证会话动作权限"
@ -7922,7 +7937,7 @@ msgstr "级别"
msgid "Command and replay storage" msgid "Command and replay storage"
msgstr "命令及录像存储" msgstr "命令及录像存储"
#: terminal/notifications.py:240 terminal/tasks.py:191 #: terminal/notifications.py:240 terminal/tasks.py:212
#: xpack/plugins/cloud/api.py:160 #: xpack/plugins/cloud/api.py:160
#: xpack/plugins/cloud/serializers/account.py:121 #: xpack/plugins/cloud/serializers/account.py:121
#: xpack/plugins/cloud/serializers/account.py:123 #: xpack/plugins/cloud/serializers/account.py:123
@ -8413,7 +8428,7 @@ msgstr "每10分钟检查3分钟未活跃的资产连接会话,将这些会话
msgid "Upload session replay to external storage" msgid "Upload session replay to external storage"
msgstr "上传会话录像到外部存储" msgstr "上传会话录像到外部存储"
#: terminal/tasks.py:70 #: terminal/tasks.py:70 terminal/tasks.py:104
msgid "" msgid ""
"If SERVER_REPLAY_STORAGE is configured in the config.txt, session commands " "If SERVER_REPLAY_STORAGE is configured in the config.txt, session commands "
"and \n" "and \n"
@ -8422,54 +8437,58 @@ msgstr ""
"如果设置了SERVER_REPLAY_STORAGE,将通过文件管理上传的文件同步到外部存储" "如果设置了SERVER_REPLAY_STORAGE,将通过文件管理上传的文件同步到外部存储"
#: terminal/tasks.py:102 #: terminal/tasks.py:102
msgid "Upload session replay part file to external storage"
msgstr "将会话重播部分文件上传到外部存储"
#: terminal/tasks.py:123
msgid "Run applet host deployment" msgid "Run applet host deployment"
msgstr "运行应用机部署" msgstr "运行应用机部署"
#: terminal/tasks.py:105 #: terminal/tasks.py:126
msgid "" msgid ""
"When deploying from the remote application publisher details page, and the " "When deploying from the remote application publisher details page, and the "
"'Deploy' \n" "'Deploy' \n"
" button is clicked, this task will be executed" " button is clicked, this task will be executed"
msgstr "发布机部署,点击部署时,执行该任务" msgstr "发布机部署,点击部署时,执行该任务"
#: terminal/tasks.py:116 #: terminal/tasks.py:137
msgid "Install applet" msgid "Install applet"
msgstr "安装应用" msgstr "安装应用"
#: terminal/tasks.py:119 #: terminal/tasks.py:140
msgid "" msgid ""
"When the 'Deploy' button is clicked in the 'Remote Application' section of " "When the 'Deploy' button is clicked in the 'Remote Application' section of "
"the remote \n" "the remote \n"
" application publisher details page, this task will be executed" " application publisher details page, this task will be executed"
msgstr "当远程应用发布机详情-远程应用,点击部署时,执行该任务" msgstr "当远程应用发布机详情-远程应用,点击部署时,执行该任务"
#: terminal/tasks.py:131 #: terminal/tasks.py:152
msgid "Uninstall applet" msgid "Uninstall applet"
msgstr "卸载应用" msgstr "卸载应用"
#: terminal/tasks.py:134 #: terminal/tasks.py:155
msgid "" msgid ""
"When the 'Uninstall' button is clicked in the 'Remote Application' section " "When the 'Uninstall' button is clicked in the 'Remote Application' section "
"of the \n" "of the \n"
" remote application publisher details page, this task will be executed" " remote application publisher details page, this task will be executed"
msgstr "当远程应用发布机详情-远程应用,点击卸载时,执行该任务" msgstr "当远程应用发布机详情-远程应用,点击卸载时,执行该任务"
#: terminal/tasks.py:146 #: terminal/tasks.py:167
msgid "Generate applet host accounts" msgid "Generate applet host accounts"
msgstr "收集远程应用上的账号" msgstr "收集远程应用上的账号"
#: terminal/tasks.py:149 #: terminal/tasks.py:170
msgid "" msgid ""
"When a remote publishing server is created and an account needs to be " "When a remote publishing server is created and an account needs to be "
"created \n" "created \n"
" automatically, this task will be executed" " automatically, this task will be executed"
msgstr "当创建远程发布机后,需要自动创建账号时,执行该任务" msgstr "当创建远程发布机后,需要自动创建账号时,执行该任务"
#: terminal/tasks.py:163 #: terminal/tasks.py:184
msgid "Check command replay storage connectivity" msgid "Check command replay storage connectivity"
msgstr "检查命令及录像存储可连接性 " msgstr "检查命令及录像存储可连接性 "
#: terminal/tasks.py:165 #: terminal/tasks.py:186
msgid "" msgid ""
"Check every day at midnight whether the external storage for commands and " "Check every day at midnight whether the external storage for commands and "
"recordings \n" "recordings \n"

1290
apps/i18n/core/zh_Hant/LC_MESSAGES/django.po

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save