fix: 修改sftp账号备份文件名及任务日志提示

pull/12092/head
wangruidong 2023-11-13 14:34:58 +08:00 committed by Bryan
parent 0f9223331c
commit 9babe977d8
10 changed files with 386 additions and 304 deletions

View File

@ -12,13 +12,17 @@ from accounts.serializers import AccountSecretSerializer
from accounts.models.automations.backup_account import AccountBackupAutomation
from assets.const import AllTypes
from common.utils.file import encrypt_and_compress_zip_file, zip_files
from common.utils.timezone import local_now_display
from common.utils.timezone import local_now_filename, local_now_display
from terminal.models.component.storage import ReplayStorage
from users.models import User
PATH = os.path.join(os.path.dirname(settings.BASE_DIR), 'tmp')
class RecipientsNotFound(Exception):
pass
class BaseAccountHandler:
@classmethod
def unpack_data(cls, serializer_data, data=None):
@ -70,7 +74,7 @@ class AssetAccountHandler(BaseAccountHandler):
@staticmethod
def get_filename(plan_name):
filename = os.path.join(
PATH, f'{plan_name}-{local_now_display()}-{time.time()}.xlsx'
PATH, f'{plan_name}-{local_now_filename()}-{time.time()}.xlsx'
)
return filename
@ -146,7 +150,7 @@ class AccountBackupHandler:
wb.save(filename)
files.append(filename)
timedelta = round((time.time() - time_start), 2)
print('步骤完成: 用时 {}s'.format(timedelta))
print('创建备份文件完成: 用时 {}s'.format(timedelta))
return files
def send_backup_mail(self, files, recipients):
@ -155,7 +159,7 @@ class AccountBackupHandler:
recipients = User.objects.filter(id__in=list(recipients))
print(
'\n'
'\033[32m>>> 发送备份邮件\033[0m'
'\033[32m>>> 开始发送备份邮件\033[0m'
''
)
plan_name = self.plan_name
@ -164,7 +168,7 @@ class AccountBackupHandler:
attachment_list = []
else:
password = user.secret_key.encode('utf8')
attachment = os.path.join(PATH, f'{plan_name}-{local_now_display()}-{time.time()}.zip')
attachment = os.path.join(PATH, f'{plan_name}-{local_now_filename()}-{time.time()}.zip')
encrypt_and_compress_zip_file(attachment, password, files)
attachment_list = [attachment, ]
AccountBackupExecutionTaskMsg(plan_name, user).publish(attachment_list)
@ -178,13 +182,14 @@ class AccountBackupHandler:
recipients = ReplayStorage.objects.filter(id__in=list(recipients))
print(
'\n'
'\033[31m>>> 发送备份文件到sftp服务器\033[0m'
'\033[32m>>> 开始发送备份文件到sftp服务器\033[0m'
''
)
plan_name = self.plan_name
for rec in recipients:
attachment = os.path.join(PATH, f'{plan_name}-{local_now_display()}-{time.time()}.zip')
attachment = os.path.join(PATH, f'{plan_name}-{local_now_filename()}-{time.time()}.zip')
if password:
print('\033[32m>>> 使用加密密码对文件进行加密中\033[0m')
password = password.encode('utf8')
encrypt_and_compress_zip_file(attachment, password, files)
else:
@ -199,12 +204,12 @@ class AccountBackupHandler:
self.execution.reason = reason[:1024]
self.execution.is_success = is_success
self.execution.save()
print('已完成对任务状态的更新')
print('\n已完成对任务状态的更新\n')
@staticmethod
def step_finished(is_success):
if is_success:
print('任务执行')
print('任务执行')
else:
print('任务执行失败')
@ -241,8 +246,9 @@ class AccountBackupHandler:
'\033[31m>>> 该备份任务未分配sftp服务器\033[0m'
''
)
return
raise RecipientsNotFound('Not Found Recipients')
if obj_recipients_part_one and obj_recipients_part_two:
print('\033[32m>>> 账号的密钥将被拆分成前后两部分发送\033[0m')
files = self.create_excel(section='front')
self.send_backup_obj_storage(files, obj_recipients_part_one, zip_encrypt_password)
@ -262,8 +268,9 @@ class AccountBackupHandler:
'\033[31m>>> 该备份任务未分配收件人\033[0m'
''
)
return
raise RecipientsNotFound('Not Found Recipients')
if recipients_part_one and recipients_part_two:
print('\033[32m>>> 账号的密钥将被拆分成前后两部分发送\033[0m')
files = self.create_excel(section='front')
self.send_backup_mail(files, recipients_part_one)
@ -286,4 +293,4 @@ class AccountBackupHandler:
finally:
print('\n任务结束: {}'.format(local_now_display()))
timedelta = round((time.time() - time_start), 2)
print('用时: {}'.format(timedelta))
print('用时: {}s'.format(timedelta))

View File

@ -13,7 +13,7 @@ from accounts.serializers import ChangeSecretRecordBackUpSerializer
from assets.const import HostTypes
from common.utils import get_logger
from common.utils.file import encrypt_and_compress_zip_file
from common.utils.timezone import local_now_display
from common.utils.timezone import local_now_filename
from users.models import User
from ..base.manager import AccountBasePlaybookManager
from ...utils import SecretGenerator
@ -199,7 +199,7 @@ class ChangeSecretManager(AccountBasePlaybookManager):
name = self.execution.snapshot['name']
path = os.path.join(os.path.dirname(settings.BASE_DIR), 'tmp')
filename = os.path.join(path, f'{name}-{local_now_display()}-{time.time()}.xlsx')
filename = os.path.join(path, f'{name}-{local_now_filename()}-{time.time()}.xlsx')
if not self.create_file(recorders, filename):
return
@ -207,7 +207,7 @@ class ChangeSecretManager(AccountBasePlaybookManager):
attachments = []
if user.secret_key:
password = user.secret_key.encode('utf8')
attachment = os.path.join(path, f'{name}-{local_now_display()}-{time.time()}.zip')
attachment = os.path.join(path, f'{name}-{local_now_filename()}-{time.time()}.zip')
encrypt_and_compress_zip_file(attachment, password, [filename])
attachments = [attachment]
ChangeSecretExecutionTaskMsg(name, user).publish(attachments)

View File

@ -5,7 +5,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0023_auto_20231010_1101'),
]
@ -14,6 +13,6 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='accesskey',
name='ip_group',
field=models.JSONField(default=authentication.models.access_key.defatult_ip_group, verbose_name='IP group'),
field=models.JSONField(default=authentication.models.access_key.default_ip_group, verbose_name='IP group'),
),
]

View File

@ -12,14 +12,14 @@ def default_secret():
return random_string(36)
def defatult_ip_group():
def default_ip_group():
return ["*"]
class AccessKey(models.Model):
id = models.UUIDField(verbose_name='AccessKeyID', primary_key=True, default=uuid.uuid4, editable=False)
secret = models.CharField(verbose_name='AccessKeySecret', default=default_secret, max_length=36)
ip_group = models.JSONField(default=defatult_ip_group, verbose_name=_('IP group'))
ip_group = models.JSONField(default=default_ip_group, verbose_name=_('IP group'))
user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name='User',
on_delete=common.db.models.CASCADE_SIGNAL_SKIP, related_name='access_keys')
is_active = models.BooleanField(default=True, verbose_name=_('Active'))

View File

@ -20,6 +20,10 @@ def local_now_display(fmt='%Y-%m-%d %H:%M:%S'):
return local_now().strftime(fmt)
def local_now_filename():
return local_now().strftime('%Y%m%d-%H%M%S')
def local_now_date_display(fmt='%Y-%m-%d'):
return local_now().strftime(fmt)

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5a5207051b4a959f750ebd48c770a552c460f864547aea8d6bb62d8920e24e32
size 164428
oid sha256:eb8cb8f322ccd54d1caea9727d92a82b061757eca5551b140c2035a12fd05dc6
size 164068

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-11-03 18:29+0800\n"
"POT-Creation-Date: 2023-11-13 14:19+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -24,7 +24,7 @@ msgstr "パラメータ 'action' は [{}] でなければなりません。"
#: accounts/const/account.py:6
#: accounts/serializers/automations/change_secret.py:32
#: assets/models/_user.py:23 audits/signal_handlers/login_log.py:34
#: assets/models/_user.py:24 audits/signal_handlers/login_log.py:34
#: authentication/confirm/password.py:9 authentication/confirm/password.py:24
#: authentication/confirm/password.py:26 authentication/forms.py:32
#: authentication/templates/authentication/login.html:330
@ -47,7 +47,7 @@ msgstr "SSH キー"
msgid "Access key"
msgstr "アクセスキー"
#: accounts/const/account.py:9 assets/models/_user.py:47
#: accounts/const/account.py:9 assets/models/_user.py:48
#: authentication/backends/passkey/models.py:16
#: authentication/models/sso_token.py:14 settings/serializers/feature.py:50
msgid "Token"
@ -243,7 +243,7 @@ msgstr "ユーザー %s がパスワードを閲覧/導き出しました"
#: acls/serializers/base.py:123 assets/models/asset/common.py:93
#: assets/models/asset/common.py:334 assets/models/cmd_filter.py:36
#: assets/serializers/domain.py:19 assets/serializers/label.py:27
#: audits/models.py:57 authentication/models/connection_token.py:36
#: audits/models.py:58 authentication/models/connection_token.py:36
#: perms/models/asset_permission.py:68 perms/serializers/permission.py:34
#: terminal/backends/command/models.py:17 terminal/models/session/session.py:31
#: terminal/notifications.py:155 terminal/serializers/command.py:17
@ -282,7 +282,7 @@ msgstr "ソース ID"
#: accounts/serializers/automations/change_secret.py:127
#: acls/serializers/base.py:124 acls/templates/acls/asset_login_reminder.html:7
#: assets/serializers/asset/common.py:125 assets/serializers/gateway.py:28
#: audits/models.py:58 authentication/api/connection_token.py:408
#: audits/models.py:59 authentication/api/connection_token.py:403
#: ops/models/base.py:18 perms/models/asset_permission.py:74
#: perms/serializers/permission.py:39 terminal/backends/command/models.py:18
#: terminal/models/session/session.py:33
@ -312,43 +312,43 @@ msgstr "アカウントを確認できます"
msgid "Can push account"
msgstr "アカウントをプッシュできます"
#: accounts/models/automations/backup_account.py:28
#: accounts/models/automations/backup_account.py:27
msgid "Backup Type"
msgstr "バックアップの種類"
#: accounts/models/automations/backup_account.py:28
#: accounts/models/automations/backup_account.py:29
#: accounts/models/automations/backup_account.py:30
msgid "Is Password Divided"
msgstr "キーが 2 つの部分に分割されているかどうか"
#: accounts/models/automations/backup_account.py:33
#: accounts/models/automations/backup_account.py:32
msgid "Recipient part one"
msgstr "受信者 1"
#: accounts/models/automations/backup_account.py:37
#: accounts/models/automations/backup_account.py:36
msgid "Recipient part two"
msgstr "受信者 2"
#: accounts/models/automations/backup_account.py:41
#: accounts/models/automations/backup_account.py:40
msgid "Object Storage Recipient part one"
msgstr "受信サーバー 1"
#: accounts/models/automations/backup_account.py:45
#: accounts/models/automations/backup_account.py:44
msgid "Object Storage Recipient part two"
msgstr "受信サーバー 2"
#: accounts/models/automations/backup_account.py:48
#: accounts/models/automations/backup_account.py:47
#: accounts/serializers/account/backup.py:20
msgid "Zip Encrypt Password"
msgstr "新しいファイルの暗号化パスワード"
#: accounts/models/automations/backup_account.py:56
#: accounts/models/automations/backup_account.py:139
#: accounts/models/automations/backup_account.py:55
#: accounts/models/automations/backup_account.py:138
msgid "Account backup plan"
msgstr "アカウントバックアップ計画"
#: accounts/models/automations/backup_account.py:120
#: assets/models/automations/base.py:115 audits/models.py:64
#: accounts/models/automations/backup_account.py:119
#: assets/models/automations/base.py:115 audits/models.py:65
#: ops/models/base.py:55 ops/models/celery.py:63 ops/models/job.py:228
#: ops/templates/ops/celery_task_log.html:75
#: perms/models/asset_permission.py:77 terminal/models/applet/host.py:141
@ -358,17 +358,17 @@ msgstr "アカウントバックアップ計画"
msgid "Date start"
msgstr "開始日"
#: accounts/models/automations/backup_account.py:123
#: accounts/models/automations/backup_account.py:122
#: authentication/templates/authentication/_msg_oauth_bind.html:11
#: notifications/notifications.py:186
msgid "Time"
msgstr "時間"
#: accounts/models/automations/backup_account.py:127
#: accounts/models/automations/backup_account.py:126
msgid "Account backup snapshot"
msgstr "アカウントのバックアップスナップショット"
#: accounts/models/automations/backup_account.py:131
#: accounts/models/automations/backup_account.py:130
#: accounts/serializers/account/backup.py:49
#: accounts/serializers/automations/base.py:55
#: assets/models/automations/base.py:122
@ -376,19 +376,19 @@ msgstr "アカウントのバックアップスナップショット"
msgid "Trigger mode"
msgstr "トリガーモード"
#: accounts/models/automations/backup_account.py:134 audits/models.py:202
#: accounts/models/automations/backup_account.py:133 audits/models.py:203
#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/models.py:205
msgid "Reason"
msgstr "理由"
#: accounts/models/automations/backup_account.py:136
#: accounts/models/automations/backup_account.py:135
#: accounts/serializers/automations/change_secret.py:105
#: accounts/serializers/automations/change_secret.py:128
#: ops/serializers/job.py:56 terminal/serializers/session.py:49
msgid "Is success"
msgstr "成功は"
#: accounts/models/automations/backup_account.py:144
#: accounts/models/automations/backup_account.py:143
msgid "Account backup execution"
msgstr "アカウントバックアップの実行"
@ -433,6 +433,7 @@ msgid "SSH key change strategy"
msgstr "SSHキープッシュ方式"
#: accounts/models/automations/change_secret.py:15
#: accounts/models/automations/gather_account.py:58
#: accounts/serializers/account/backup.py:41
#: accounts/serializers/automations/change_secret.py:56
msgid "Recipient"
@ -462,7 +463,7 @@ msgid "Date finished"
msgstr "終了日"
#: accounts/models/automations/change_secret.py:43
#: assets/models/automations/base.py:113 audits/models.py:207
#: assets/models/automations/base.py:113 audits/models.py:208
#: audits/serializers.py:51 ops/models/base.py:49 ops/models/job.py:220
#: terminal/models/applet/applet.py:316 terminal/models/applet/host.py:140
#: terminal/models/component/status.py:30 terminal/serializers/applet.py:18
@ -497,8 +498,8 @@ msgstr "最終ログイン日"
#: accounts/models/automations/push_account.py:15 accounts/models/base.py:65
#: accounts/serializers/account/virtual.py:21 acls/serializers/base.py:19
#: acls/serializers/base.py:50 acls/templates/acls/asset_login_reminder.html:5
#: acls/templates/acls/user_login_reminder.html:5 assets/models/_user.py:22
#: audits/models.py:187 authentication/forms.py:25 authentication/forms.py:27
#: acls/templates/acls/user_login_reminder.html:5 assets/models/_user.py:23
#: audits/models.py:188 authentication/forms.py:25 authentication/forms.py:27
#: authentication/models/temp_token.py:9
#: authentication/templates/authentication/_msg_different_city.html:9
#: authentication/templates/authentication/_msg_oauth_bind.html:9
@ -521,7 +522,7 @@ msgstr "自動収集アカウント"
msgid "Is sync account"
msgstr "アカウントを同期するかどうか"
#: accounts/models/automations/gather_account.py:71
#: accounts/models/automations/gather_account.py:75
#: accounts/tasks/gather_accounts.py:29
msgid "Gather asset accounts"
msgstr "アカウントのコレクション"
@ -532,8 +533,8 @@ msgstr "トリガー方式"
#: accounts/models/automations/push_account.py:16 acls/models/base.py:41
#: acls/serializers/base.py:57 assets/models/cmd_filter.py:81
#: audits/models.py:91 audits/serializers.py:84
#: authentication/serializers/connect_token_secret.py:116
#: audits/models.py:92 audits/serializers.py:84
#: authentication/serializers/connect_token_secret.py:118
#: authentication/templates/authentication/_access_key_modal.html:34
msgid "Action"
msgstr "アクション"
@ -577,14 +578,14 @@ msgstr "パスワードルール"
#: accounts/models/base.py:64 accounts/serializers/account/virtual.py:20
#: acls/models/base.py:35 acls/models/base.py:96 acls/models/command_acl.py:21
#: acls/serializers/base.py:35 applications/models.py:9
#: assets/models/_user.py:21 assets/models/asset/common.py:91
#: assets/models/_user.py:22 assets/models/asset/common.py:91
#: assets/models/asset/common.py:149 assets/models/cmd_filter.py:21
#: assets/models/domain.py:18 assets/models/group.py:17
#: assets/models/label.py:18 assets/models/platform.py:15
#: assets/models/platform.py:88 assets/serializers/asset/common.py:146
#: assets/serializers/platform.py:111 assets/serializers/platform.py:228
#: authentication/backends/passkey/models.py:10
#: authentication/serializers/connect_token_secret.py:110 ops/mixin.py:21
#: authentication/serializers/connect_token_secret.py:112 ops/mixin.py:21
#: ops/models/adhoc.py:20 ops/models/celery.py:15 ops/models/celery.py:57
#: ops/models/job.py:126 ops/models/playbook.py:28 ops/serializers/job.py:20
#: orgs/models.py:82 perms/models/asset_permission.py:60 rbac/models/role.py:29
@ -607,13 +608,13 @@ msgstr "特権アカウント"
#: accounts/models/base.py:70 assets/models/asset/common.py:156
#: assets/models/automations/base.py:21 assets/models/cmd_filter.py:39
#: assets/models/label.py:22
#: authentication/serializers/connect_token_secret.py:114
#: authentication/serializers/connect_token_secret.py:116
#: terminal/models/applet/applet.py:40
#: terminal/models/component/endpoint.py:105 users/serializers/user.py:167
msgid "Is active"
msgstr "アクティブです。"
#: accounts/models/template.py:17 assets/models/_user.py:54
#: accounts/models/template.py:17 assets/models/_user.py:53
msgid "Auto push"
msgstr "オートプッシュ"
@ -666,11 +667,11 @@ msgstr ""
"ユーザー名とパスワードを使用せずにアセットに接続します。Webベースとカスタムタ"
"イプのアセットのみをサポートします"
#: accounts/notifications.py:9 accounts/notifications.py:34
#: accounts/notifications.py:11 accounts/notifications.py:36
msgid "Notification of account backup route task results"
msgstr "アカウントバックアップルートタスクの結果の通知"
#: accounts/notifications.py:19 accounts/notifications.py:43
#: accounts/notifications.py:21 accounts/notifications.py:45
msgid ""
"{} - The account backup passage task has been completed. See the attachment "
"for details"
@ -678,7 +679,7 @@ msgstr ""
"{} -アカウントバックアップの通過タスクが完了しました。詳細は添付ファイルをご"
"覧ください"
#: accounts/notifications.py:22
#: accounts/notifications.py:24
msgid ""
"{} - The account backup passage task has been completed: the encryption "
"password has not been set - please go to personal information -> file "
@ -688,17 +689,17 @@ msgstr ""
"されていません-個人情報にアクセスしてください-> ファイル暗号化パスワードを設"
"定してください暗号化パスワード"
#: accounts/notifications.py:53
#: accounts/notifications.py:55
msgid "Notification of implementation result of encryption change plan"
msgstr "暗号化変更プランの実装結果の通知"
#: accounts/notifications.py:63
#: accounts/notifications.py:65
msgid ""
"{} - The encryption change task has been completed. See the attachment for "
"details"
msgstr "{} -暗号化変更タスクが完了しました。詳細は添付ファイルをご覧ください"
#: accounts/notifications.py:66
#: accounts/notifications.py:68
msgid ""
"{} - The encryption change task has been completed: the encryption password "
"has not been set - please go to personal information -> file encryption "
@ -707,6 +708,12 @@ msgstr ""
"{} -暗号化変更タスクが完了しました: 暗号化パスワードが設定されていません-個人"
"情報にアクセスしてください-> ファイル暗号化パスワードを設定してください"
#: accounts/notifications.py:79
#, fuzzy
#| msgid "Gather account automation"
msgid "Gather account change information"
msgstr "自動収集アカウント"
#: accounts/serializers/account/account.py:31
msgid "Push now"
msgstr "今すぐプッシュ"
@ -727,12 +734,12 @@ msgstr "カテゴリ"
#: accounts/serializers/account/account.py:191
#: accounts/serializers/automations/base.py:54 acls/models/command_acl.py:24
#: acls/serializers/command_acl.py:19 applications/models.py:14
#: assets/models/_user.py:49 assets/models/automations/base.py:20
#: assets/models/_user.py:50 assets/models/automations/base.py:20
#: assets/models/cmd_filter.py:74 assets/models/platform.py:90
#: assets/serializers/asset/common.py:122 assets/serializers/platform.py:113
#: assets/serializers/platform.py:132 audits/serializers.py:50
#: audits/serializers.py:170
#: authentication/serializers/connect_token_secret.py:123 ops/models/job.py:137
#: authentication/serializers/connect_token_secret.py:125 ops/models/job.py:137
#: perms/serializers/user_permission.py:26 terminal/models/applet/applet.py:39
#: terminal/models/component/storage.py:57
#: terminal/models/component/storage.py:146 terminal/serializers/applet.py:29
@ -768,7 +775,7 @@ msgstr "編集済み"
#: acls/templates/acls/asset_login_reminder.html:6
#: assets/models/automations/base.py:19
#: assets/serializers/automations/base.py:20
#: authentication/api/connection_token.py:407 ops/models/base.py:17
#: authentication/api/connection_token.py:402 ops/models/base.py:17
#: ops/models/job.py:139 ops/serializers/job.py:21
#: terminal/templates/terminal/_msg_command_execute_alert.html:16
msgid "Assets"
@ -788,15 +795,15 @@ msgid "Account has exist"
msgstr "アカウントはすでに存在しています"
#: accounts/serializers/account/account.py:438
#: authentication/serializers/connect_token_secret.py:156
#: authentication/serializers/connect_token_secret.py:158
#: authentication/templates/authentication/_access_key_modal.html:30
#: perms/models/perm_node.py:21 users/serializers/group.py:31
msgid "ID"
msgstr "ID"
#: accounts/serializers/account/account.py:448 acls/serializers/base.py:116
#: assets/models/cmd_filter.py:24 assets/models/label.py:16 audits/models.py:53
#: audits/models.py:89 audits/models.py:171 audits/models.py:268
#: assets/models/cmd_filter.py:24 assets/models/label.py:16 audits/models.py:54
#: audits/models.py:90 audits/models.py:172 audits/models.py:269
#: audits/serializers.py:171 authentication/models/connection_token.py:32
#: authentication/models/sso_token.py:16
#: notifications/models/notification.py:12
@ -891,7 +898,7 @@ msgid ""
"default parameters will be used"
msgstr "关联平台,可以配置推送参数,如果不关联,则使用默认参数"
#: accounts/serializers/account/virtual.py:19 assets/models/_user.py:26
#: accounts/serializers/account/virtual.py:19 assets/models/_user.py:27
#: assets/models/cmd_filter.py:40 assets/models/cmd_filter.py:88
#: assets/models/group.py:20 common/db/models.py:36 ops/models/adhoc.py:26
#: ops/models/job.py:145 ops/models/playbook.py:31 rbac/models/role.py:37
@ -951,7 +958,7 @@ msgid "Automation task execution"
msgstr "自動タスク実行履歴"
#: accounts/serializers/automations/change_secret.py:149 audits/const.py:61
#: audits/models.py:63 audits/signal_handlers/activity_log.py:33
#: audits/models.py:64 audits/signal_handlers/activity_log.py:33
#: common/const/choices.py:18 ops/const.py:72 ops/serializers/celery.py:40
#: terminal/const.py:77 terminal/models/session/sharing.py:121
#: tickets/views/approve.py:117
@ -1009,22 +1016,36 @@ msgstr "アセット アカウントの可用性を確認する"
msgid "Verify accounts connectivity"
msgstr "アカウント接続のテスト"
#: accounts/templates/accounts/asset_account_change_info.html:7
#, fuzzy
#| msgid "Asset type"
msgid "Asset name"
msgstr "資産タイプ"
#: accounts/templates/accounts/asset_account_change_info.html:8
#, fuzzy
#| msgid "Add account: %s"
msgid "Added account"
msgstr "アカウントを追加: %s"
#: accounts/templates/accounts/asset_account_change_info.html:9
#, fuzzy
#| msgid "Delete account: %s"
msgid "Deleted account"
msgstr "アカウントを削除: %s"
#: accounts/utils.py:53
msgid "Password can not contains `{{` "
#, fuzzy
#| msgid "Password can not contains `{{` "
msgid "Password can not contains `{{` or `}}`"
msgstr "パスワードには '{{' を含まない"
#: accounts/utils.py:55
msgid "Password can not contains `{%` "
#, fuzzy
#| msgid "Password can not contains `{%` "
msgid "Password can not contains `{%` or `%}`"
msgstr "パスワードには '{%' を含まない"
#: accounts/utils.py:58
msgid "Password can not contains `'` "
msgstr "パスワードには `'` を含まない"
#: accounts/utils.py:60
msgid "Password can not contains `\"` "
msgstr "パスワードには `\"` を含まない"
#: accounts/utils.py:66
msgid "private key invalid or passphrase error"
msgstr "秘密鍵が無効またはpassphraseエラー"
@ -1054,7 +1075,7 @@ msgstr "警告"
msgid "Notifications"
msgstr "通知"
#: acls/models/base.py:37 assets/models/_user.py:50
#: acls/models/base.py:37 assets/models/_user.py:51
#: assets/models/cmd_filter.py:76 terminal/models/component/endpoint.py:97
#: xpack/plugins/cloud/models.py:275
msgid "Priority"
@ -1067,7 +1088,7 @@ msgid "1-100, the lower the value will be match first"
msgstr "1-100、低い値は最初に一致します"
#: acls/models/base.py:42 assets/models/cmd_filter.py:86
#: authentication/serializers/connect_token_secret.py:88
#: authentication/serializers/connect_token_secret.py:90
msgid "Reviewers"
msgstr "レビュー担当者"
@ -1118,7 +1139,7 @@ msgstr "家を無視する"
#: acls/models/command_acl.py:33 acls/models/command_acl.py:97
#: acls/serializers/command_acl.py:29
#: authentication/serializers/connect_token_secret.py:85
#: authentication/serializers/connect_token_secret.py:87
#: terminal/templates/terminal/_msg_command_warning.html:14
msgid "Command group"
msgstr "コマンドグループ"
@ -1247,15 +1268,15 @@ msgstr ""
msgid "Thank you"
msgstr "ありがとうございます。"
#: acls/templates/acls/user_login_reminder.html:7 audits/models.py:193
#: audits/models.py:262
#: acls/templates/acls/user_login_reminder.html:7 audits/models.py:194
#: audits/models.py:263
#: authentication/templates/authentication/_msg_different_city.html:11
#: tickets/models/ticket/login_confirm.py:11
msgid "Login city"
msgstr "ログイン都市"
#: acls/templates/acls/user_login_reminder.html:8 audits/models.py:196
#: audits/models.py:263 audits/serializers.py:65
#: acls/templates/acls/user_login_reminder.html:8 audits/models.py:197
#: audits/models.py:264 audits/serializers.py:65
msgid "User agent"
msgstr "ユーザーエージェント"
@ -1580,97 +1601,97 @@ msgstr "Webサイト"
msgid "This function is not supported temporarily"
msgstr "この機能は一時的にサポートされていません"
#: assets/models/_user.py:24
#: assets/models/_user.py:25
msgid "SSH private key"
msgstr "SSH秘密鍵"
#: assets/models/_user.py:25
#: assets/models/_user.py:26
msgid "SSH public key"
msgstr "SSHパブリックキー"
#: assets/models/_user.py:27 assets/models/automations/base.py:114
#: assets/models/_user.py:28 assets/models/automations/base.py:114
#: assets/models/cmd_filter.py:41 assets/models/group.py:19
#: audits/models.py:266 common/db/models.py:34 ops/models/base.py:54
#: audits/models.py:267 common/db/models.py:34 ops/models/base.py:54
#: ops/models/job.py:227 users/models/user.py:1024
msgid "Date created"
msgstr "作成された日付"
#: assets/models/_user.py:28 assets/models/cmd_filter.py:42
#: assets/models/_user.py:29 assets/models/cmd_filter.py:42
#: common/db/models.py:35 users/models/user.py:846
msgid "Date updated"
msgstr "更新日"
#: assets/models/_user.py:29 assets/models/cmd_filter.py:44
#: assets/models/_user.py:30 assets/models/cmd_filter.py:44
#: assets/models/cmd_filter.py:91 assets/models/group.py:18
#: common/db/models.py:32 users/models/user.py:835
#: users/serializers/group.py:29
msgid "Created by"
msgstr "によって作成された"
#: assets/models/_user.py:39
#: assets/models/_user.py:40
msgid "Automatic managed"
msgstr "自動管理"
#: assets/models/_user.py:40
#: assets/models/_user.py:41
msgid "Manually input"
msgstr "手動入力"
#: assets/models/_user.py:44
#: assets/models/_user.py:45
msgid "Common user"
msgstr "共通ユーザー"
#: assets/models/_user.py:45 assets/models/_user.py:98
#: assets/models/_user.py:46 assets/models/_user.py:95
msgid "Admin user"
msgstr "管理ユーザー"
#: assets/models/_user.py:48
#: assets/models/_user.py:49
msgid "Username same with user"
msgstr "ユーザーと同じユーザー名"
#: assets/models/_user.py:53 authentication/models/connection_token.py:41
#: authentication/serializers/connect_token_secret.py:111
#: assets/models/_user.py:52 authentication/models/connection_token.py:41
#: authentication/serializers/connect_token_secret.py:113
#: terminal/models/applet/applet.py:42 terminal/serializers/session.py:19
#: terminal/serializers/session.py:45 terminal/serializers/storage.py:71
msgid "Protocol"
msgstr "プロトコル"
#: assets/models/_user.py:55
#: assets/models/_user.py:54
msgid "Sudo"
msgstr "すど"
#: assets/models/_user.py:56 ops/const.py:49 ops/const.py:59
#: assets/models/_user.py:55 ops/const.py:49 ops/const.py:59
msgid "Shell"
msgstr "シェル"
#: assets/models/_user.py:58
#: assets/models/_user.py:56
msgid "Login mode"
msgstr "ログインモード"
#: assets/models/_user.py:59 terminal/serializers/storage.py:152
#: assets/models/_user.py:57 terminal/serializers/storage.py:152
msgid "SFTP Root"
msgstr "SFTPルート"
#: assets/models/_user.py:60
#: assets/models/_user.py:58
msgid "Home"
msgstr "ホーム"
#: assets/models/_user.py:61
#: assets/models/_user.py:59
msgid "System groups"
msgstr "システムグループ"
#: assets/models/_user.py:64
#: assets/models/_user.py:62
msgid "User switch"
msgstr "ユーザースイッチ"
#: assets/models/_user.py:66
#: assets/models/_user.py:63
msgid "Switch from"
msgstr "から切り替え"
#: assets/models/_user.py:72
#: assets/models/_user.py:69
msgid "System user"
msgstr "システムユーザー"
#: assets/models/_user.py:74
#: assets/models/_user.py:71
msgid "Can match system user"
msgstr "システムユーザーに一致できます"
@ -1691,13 +1712,13 @@ msgstr "アドレス"
#: assets/models/asset/common.py:151 assets/models/platform.py:119
#: authentication/backends/passkey/models.py:12
#: authentication/serializers/connect_token_secret.py:115
#: authentication/serializers/connect_token_secret.py:117
#: perms/serializers/user_permission.py:24 xpack/plugins/cloud/models.py:321
msgid "Platform"
msgstr "プラットフォーム"
#: assets/models/asset/common.py:153 assets/models/domain.py:21
#: authentication/serializers/connect_token_secret.py:133
#: authentication/serializers/connect_token_secret.py:135
#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:323
msgid "Domain"
msgstr "ドメイン"
@ -1844,7 +1865,7 @@ msgstr "システム"
#: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18
#: assets/serializers/cagegory.py:24
#: authentication/models/connection_token.py:29
#: authentication/serializers/connect_token_secret.py:122
#: authentication/serializers/connect_token_secret.py:124
#: common/serializers/common.py:86 settings/models.py:33
#: users/models/preference.py:13
msgid "Value"
@ -1853,7 +1874,7 @@ msgstr "値"
#: assets/models/label.py:40 assets/serializers/asset/common.py:123
#: assets/serializers/cagegory.py:10 assets/serializers/cagegory.py:17
#: assets/serializers/cagegory.py:23 assets/serializers/platform.py:112
#: authentication/serializers/connect_token_secret.py:121
#: authentication/serializers/connect_token_secret.py:123
#: common/serializers/common.py:85 perms/serializers/user_permission.py:27
#: settings/serializers/msg.py:83
msgid "Label"
@ -2021,7 +2042,7 @@ msgstr ""
#: assets/serializers/asset/common.py:124 assets/serializers/platform.py:134
#: authentication/serializers/connect_token_secret.py:29
#: authentication/serializers/connect_token_secret.py:72
#: authentication/serializers/connect_token_secret.py:74
#: perms/models/asset_permission.py:75 perms/serializers/permission.py:40
#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:324
#: xpack/plugins/cloud/serializers/task.py:31
@ -2112,7 +2133,7 @@ msgid "Disk total"
msgstr "ディスクの合計"
#: assets/serializers/asset/info/gathered.py:16
#: authentication/serializers/connect_token_secret.py:112
#: authentication/serializers/connect_token_secret.py:114
msgid "OS"
msgstr "OS"
@ -2367,7 +2388,7 @@ msgstr "閉じる"
msgid "Terminal"
msgstr "ターミナル"
#: audits/const.py:48 audits/models.py:131
#: audits/const.py:48 audits/models.py:132
msgid "Operate log"
msgstr "ログの操作"
@ -2396,28 +2417,28 @@ msgstr "是"
msgid "No"
msgstr "否"
#: audits/models.py:46
#: audits/models.py:47
msgid "Job audit log"
msgstr "ジョブ監査ログ"
#: audits/models.py:55 audits/models.py:99 audits/models.py:174
#: audits/models.py:56 audits/models.py:100 audits/models.py:175
#: terminal/models/session/session.py:38 terminal/models/session/sharing.py:113
msgid "Remote addr"
msgstr "リモートaddr"
#: audits/models.py:60 audits/serializers.py:35
#: audits/models.py:61 audits/serializers.py:35
msgid "Operate"
msgstr "操作"
#: audits/models.py:62
#: audits/models.py:63
msgid "Filename"
msgstr "ファイル名"
#: audits/models.py:65 common/serializers/common.py:98
#: audits/models.py:66 common/serializers/common.py:98
msgid "File"
msgstr "書類"
#: audits/models.py:66 terminal/backends/command/models.py:21
#: audits/models.py:67 terminal/backends/command/models.py:21
#: terminal/models/session/replay.py:9 terminal/models/session/sharing.py:20
#: terminal/models/session/sharing.py:95
#: terminal/templates/terminal/_msg_command_alert.html:10
@ -2426,86 +2447,86 @@ msgstr "書類"
msgid "Session"
msgstr "セッション"
#: audits/models.py:69
#: audits/models.py:70
msgid "File transfer log"
msgstr "ファイル転送ログ"
#: audits/models.py:93 audits/serializers.py:86
#: audits/models.py:94 audits/serializers.py:86
msgid "Resource Type"
msgstr "リソースタイプ"
#: audits/models.py:94 audits/models.py:97 audits/models.py:143
#: audits/models.py:95 audits/models.py:98 audits/models.py:144
#: audits/serializers.py:85
msgid "Resource"
msgstr "リソース"
#: audits/models.py:100 audits/models.py:146 audits/models.py:176
#: audits/models.py:101 audits/models.py:147 audits/models.py:177
#: terminal/serializers/command.py:75
msgid "Datetime"
msgstr "時間"
#: audits/models.py:139
#: audits/models.py:140
msgid "Activity type"
msgstr "活動の種類"
#: audits/models.py:149
#: audits/models.py:150
msgid "Detail"
msgstr "詳細"
#: audits/models.py:152
#: audits/models.py:153
msgid "Detail ID"
msgstr "詳細 ID"
#: audits/models.py:156
#: audits/models.py:157
msgid "Activity log"
msgstr "活動記録"
#: audits/models.py:172
#: audits/models.py:173
msgid "Change by"
msgstr "による変更"
#: audits/models.py:182
#: audits/models.py:183
msgid "Password change log"
msgstr "パスワード変更ログ"
#: audits/models.py:189 audits/models.py:264
#: audits/models.py:190 audits/models.py:265
msgid "Login type"
msgstr "ログインタイプ"
#: audits/models.py:191 audits/models.py:260
#: audits/models.py:192 audits/models.py:261
#: tickets/models/ticket/login_confirm.py:10
msgid "Login IP"
msgstr "ログインIP"
#: audits/models.py:199 audits/serializers.py:49
#: audits/models.py:200 audits/serializers.py:49
#: authentication/templates/authentication/_mfa_confirm_modal.html:14
#: users/forms/profile.py:65 users/models/user.py:815
#: users/serializers/profile.py:102
msgid "MFA"
msgstr "MFA"
#: audits/models.py:209
#: audits/models.py:210
msgid "Date login"
msgstr "日付ログイン"
#: audits/models.py:211 audits/models.py:265 audits/serializers.py:67
#: audits/models.py:212 audits/models.py:266 audits/serializers.py:67
#: audits/serializers.py:184
msgid "Authentication backend"
msgstr "認証バックエンド"
#: audits/models.py:255
#: audits/models.py:256
msgid "User login log"
msgstr "ユーザーログインログ"
#: audits/models.py:261
#: audits/models.py:262
msgid "Session key"
msgstr "セッションID"
#: audits/models.py:300
#: audits/models.py:306
msgid "User session"
msgstr "ユーザーセッション"
#: audits/models.py:302
#: audits/models.py:308
msgid "Offline ussr session"
msgstr "ユーザー・セッションの下限"
@ -2600,29 +2621,29 @@ msgstr ""
msgid "This action require verify your MFA"
msgstr "この操作には、MFAを検証する必要があります"
#: authentication/api/connection_token.py:263
#: authentication/api/connection_token.py:258
msgid "Reusable connection token is not allowed, global setting not enabled"
msgstr ""
"再使用可能な接続トークンの使用は許可されていません。グローバル設定は有効に"
"なっていません"
#: authentication/api/connection_token.py:377
#: authentication/api/connection_token.py:372
msgid "Anonymous account is not supported for this asset"
msgstr "匿名アカウントはこのプロパティではサポートされていません"
#: authentication/api/connection_token.py:396
#: authentication/api/connection_token.py:391
msgid "Account not found"
msgstr "アカウントが見つかりません"
#: authentication/api/connection_token.py:399
#: authentication/api/connection_token.py:394
msgid "Permission expired"
msgstr "承認の有効期限が切れています"
#: authentication/api/connection_token.py:429
#: authentication/api/connection_token.py:424
msgid "ACL action is reject: {}({})"
msgstr "ACL アクションは拒否です: {}({})"
#: authentication/api/connection_token.py:433
#: authentication/api/connection_token.py:428
msgid "ACL action is review"
msgstr "ACL アクションはレビューです"
@ -3107,19 +3128,19 @@ msgstr "異なる都市ログインのリマインダー"
msgid "binding reminder"
msgstr "バインディングリマインダー"
#: authentication/serializers/connect_token_secret.py:113
#: authentication/serializers/connect_token_secret.py:115
msgid "Is builtin"
msgstr "ビルトイン"
#: authentication/serializers/connect_token_secret.py:117
#: authentication/serializers/connect_token_secret.py:119
msgid "Options"
msgstr "オプション"
#: authentication/serializers/connect_token_secret.py:124
#: authentication/serializers/connect_token_secret.py:126
msgid "Component"
msgstr "コンポーネント"
#: authentication/serializers/connect_token_secret.py:135
#: authentication/serializers/connect_token_secret.py:137
msgid "Expired now"
msgstr "すぐに期限切れ"
@ -3609,7 +3630,7 @@ msgstr "テキストフィールドへのマーシャルデータ"
msgid "Encrypt field using Secret Key"
msgstr "Secret Keyを使用したフィールドの暗号化"
#: common/db/fields.py:575
#: common/db/fields.py:573
msgid ""
"Invalid JSON data for JSONManyToManyField, should be like {'type': 'all'} or "
"{'type': 'ids', 'ids': []} or {'type': 'attrs', 'attrs': [{'name': 'ip', "
@ -3619,15 +3640,15 @@ msgstr ""
"'type''ids''ids':[]}或 #タイプ:属性、属性:[名前ip、照合正確、"
"値1.1.1.1"
#: common/db/fields.py:582
#: common/db/fields.py:580
msgid "Invalid type, should be \"all\", \"ids\" or \"attrs\""
msgstr "無効なタイプです。all、ids、またはattrsでなければなりません"
#: common/db/fields.py:585
#: common/db/fields.py:583
msgid "Invalid ids for ids, should be a list"
msgstr "無効なID、リストでなければなりません"
#: common/db/fields.py:587 common/db/fields.py:592
#: common/db/fields.py:585 common/db/fields.py:590
#: common/serializers/fields.py:104 tickets/serializers/ticket/common.py:58
#: xpack/plugins/cloud/serializers/account_attrs.py:56
#: xpack/plugins/cloud/serializers/account_attrs.py:79
@ -3635,11 +3656,11 @@ msgstr "無効なID、リストでなければなりません"
msgid "This field is required."
msgstr "このフィールドは必須です。"
#: common/db/fields.py:590 common/db/fields.py:595
#: common/db/fields.py:588 common/db/fields.py:593
msgid "Invalid attrs, should be a list of dict"
msgstr "無効な属性、dictリストでなければなりません"
#: common/db/fields.py:597
#: common/db/fields.py:595
msgid "Invalid attrs, should be has name and value"
msgstr "名前と値が必要な無効な属性"
@ -4403,11 +4424,15 @@ msgstr "コピー"
msgid "Paste"
msgstr "貼り付け"
#: perms/const.py:27
#: perms/const.py:18
msgid "Share"
msgstr ""
#: perms/const.py:28
msgid "Transfer"
msgstr "転送"
#: perms/const.py:28
#: perms/const.py:29
msgid "Clipboard"
msgstr "クリップボード"
@ -6204,10 +6229,11 @@ msgstr "テスト失敗: {}"
msgid "Test successful"
msgstr "テスト成功"
#: terminal/api/component/storage.py:124 terminal/notifications.py:240
#: terminal/tasks.py:146
msgid "Test failure: Account invalid"
msgstr "テスト失敗: アカウントが無効"
#: terminal/api/component/storage.py:124
#, fuzzy
#| msgid "Test failure: Account invalid"
msgid "Test failure: Please check configuration"
msgstr "テストが失敗しました: 構成を確認してください"
#: terminal/api/component/terminal.py:55
msgid "Have online sessions"
@ -6683,6 +6709,10 @@ msgstr "コマンド及び録画記憶"
msgid "Connectivity alarm"
msgstr "接続性アラーム"
#: terminal/notifications.py:240 terminal/tasks.py:146
msgid "Test failure: Account invalid"
msgstr "テスト失敗: アカウントが無効"
#: terminal/notifications.py:250
#: terminal/templates/terminal/_msg_check_command_replay_storage_connectivity.html:4
msgid "Invalid storage"
@ -8691,5 +8721,11 @@ msgstr "エンタープライズプロフェッショナル版"
msgid "Ultimate edition"
msgstr "エンタープライズ・フラッグシップ・エディション"
#~ msgid "Password can not contains `'` "
#~ msgstr "パスワードには `'` を含まない"
#~ msgid "Password can not contains `\"` "
#~ msgstr "パスワードには `\"` を含まない"
#~ msgid "Object Storage"
#~ msgstr "オブジェクトストレージ"

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b9a380c7adbd9fad7af4257cb72742c0e68b50846591cc5b0124a0df539ec285
size 134380
oid sha256:258efb0208b560b1d27fefa33d462d0ff072d44844d66328afea5ddd3a4b2812
size 134068

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: JumpServer 0.3.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-11-03 18:29+0800\n"
"POT-Creation-Date: 2023-11-13 14:19+0800\n"
"PO-Revision-Date: 2021-05-20 10:54+0800\n"
"Last-Translator: ibuler <ibuler@qq.com>\n"
"Language-Team: JumpServer team<ibuler@qq.com>\n"
@ -23,7 +23,7 @@ msgstr "参数 'action' 必须是 [{}]"
#: accounts/const/account.py:6
#: accounts/serializers/automations/change_secret.py:32
#: assets/models/_user.py:23 audits/signal_handlers/login_log.py:34
#: assets/models/_user.py:24 audits/signal_handlers/login_log.py:34
#: authentication/confirm/password.py:9 authentication/confirm/password.py:24
#: authentication/confirm/password.py:26 authentication/forms.py:32
#: authentication/templates/authentication/login.html:330
@ -46,7 +46,7 @@ msgstr "SSH 密钥"
msgid "Access key"
msgstr "Access key"
#: accounts/const/account.py:9 assets/models/_user.py:47
#: accounts/const/account.py:9 assets/models/_user.py:48
#: authentication/backends/passkey/models.py:16
#: authentication/models/sso_token.py:14 settings/serializers/feature.py:50
msgid "Token"
@ -242,7 +242,7 @@ msgstr "用户 %s 查看/导出 了密码"
#: acls/serializers/base.py:123 assets/models/asset/common.py:93
#: assets/models/asset/common.py:334 assets/models/cmd_filter.py:36
#: assets/serializers/domain.py:19 assets/serializers/label.py:27
#: audits/models.py:57 authentication/models/connection_token.py:36
#: audits/models.py:58 authentication/models/connection_token.py:36
#: perms/models/asset_permission.py:68 perms/serializers/permission.py:34
#: terminal/backends/command/models.py:17 terminal/models/session/session.py:31
#: terminal/notifications.py:155 terminal/serializers/command.py:17
@ -281,7 +281,7 @@ msgstr "来源 ID"
#: accounts/serializers/automations/change_secret.py:127
#: acls/serializers/base.py:124 acls/templates/acls/asset_login_reminder.html:7
#: assets/serializers/asset/common.py:125 assets/serializers/gateway.py:28
#: audits/models.py:58 authentication/api/connection_token.py:408
#: audits/models.py:59 authentication/api/connection_token.py:403
#: ops/models/base.py:18 perms/models/asset_permission.py:74
#: perms/serializers/permission.py:39 terminal/backends/command/models.py:18
#: terminal/models/session/session.py:33
@ -311,43 +311,43 @@ msgstr "可以验证账号"
msgid "Can push account"
msgstr "可以推送账号"
#: accounts/models/automations/backup_account.py:28
#: accounts/models/automations/backup_account.py:27
msgid "Backup Type"
msgstr "备份类型"
#: accounts/models/automations/backup_account.py:28
#: accounts/models/automations/backup_account.py:29
#: accounts/models/automations/backup_account.py:30
msgid "Is Password Divided"
msgstr "密钥是否拆分成前后两部分"
#: accounts/models/automations/backup_account.py:33
#: accounts/models/automations/backup_account.py:32
msgid "Recipient part one"
msgstr "收件人部分一"
#: accounts/models/automations/backup_account.py:37
#: accounts/models/automations/backup_account.py:36
msgid "Recipient part two"
msgstr "收件人部分二"
#: accounts/models/automations/backup_account.py:41
#: accounts/models/automations/backup_account.py:40
msgid "Object Storage Recipient part one"
msgstr "接收服务器一"
#: accounts/models/automations/backup_account.py:45
#: accounts/models/automations/backup_account.py:44
msgid "Object Storage Recipient part two"
msgstr "接收服务器二"
#: accounts/models/automations/backup_account.py:48
#: accounts/models/automations/backup_account.py:47
#: accounts/serializers/account/backup.py:20
msgid "Zip Encrypt Password"
msgstr "文件加密密码"
#: accounts/models/automations/backup_account.py:56
#: accounts/models/automations/backup_account.py:139
#: accounts/models/automations/backup_account.py:55
#: accounts/models/automations/backup_account.py:138
msgid "Account backup plan"
msgstr "账号备份计划"
#: accounts/models/automations/backup_account.py:120
#: assets/models/automations/base.py:115 audits/models.py:64
#: accounts/models/automations/backup_account.py:119
#: assets/models/automations/base.py:115 audits/models.py:65
#: ops/models/base.py:55 ops/models/celery.py:63 ops/models/job.py:228
#: ops/templates/ops/celery_task_log.html:75
#: perms/models/asset_permission.py:77 terminal/models/applet/host.py:141
@ -357,17 +357,17 @@ msgstr "账号备份计划"
msgid "Date start"
msgstr "开始日期"
#: accounts/models/automations/backup_account.py:123
#: accounts/models/automations/backup_account.py:122
#: authentication/templates/authentication/_msg_oauth_bind.html:11
#: notifications/notifications.py:186
msgid "Time"
msgstr "时间"
#: accounts/models/automations/backup_account.py:127
#: accounts/models/automations/backup_account.py:126
msgid "Account backup snapshot"
msgstr "账号备份快照"
#: accounts/models/automations/backup_account.py:131
#: accounts/models/automations/backup_account.py:130
#: accounts/serializers/account/backup.py:49
#: accounts/serializers/automations/base.py:55
#: assets/models/automations/base.py:122
@ -375,19 +375,19 @@ msgstr "账号备份快照"
msgid "Trigger mode"
msgstr "触发模式"
#: accounts/models/automations/backup_account.py:134 audits/models.py:202
#: accounts/models/automations/backup_account.py:133 audits/models.py:203
#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/models.py:205
msgid "Reason"
msgstr "原因"
#: accounts/models/automations/backup_account.py:136
#: accounts/models/automations/backup_account.py:135
#: accounts/serializers/automations/change_secret.py:105
#: accounts/serializers/automations/change_secret.py:128
#: ops/serializers/job.py:56 terminal/serializers/session.py:49
msgid "Is success"
msgstr "是否成功"
#: accounts/models/automations/backup_account.py:144
#: accounts/models/automations/backup_account.py:143
msgid "Account backup execution"
msgstr "账号备份执行"
@ -432,6 +432,7 @@ msgid "SSH key change strategy"
msgstr "SSH 密钥推送方式"
#: accounts/models/automations/change_secret.py:15
#: accounts/models/automations/gather_account.py:58
#: accounts/serializers/account/backup.py:41
#: accounts/serializers/automations/change_secret.py:56
msgid "Recipient"
@ -461,7 +462,7 @@ msgid "Date finished"
msgstr "结束日期"
#: accounts/models/automations/change_secret.py:43
#: assets/models/automations/base.py:113 audits/models.py:207
#: assets/models/automations/base.py:113 audits/models.py:208
#: audits/serializers.py:51 ops/models/base.py:49 ops/models/job.py:220
#: terminal/models/applet/applet.py:316 terminal/models/applet/host.py:140
#: terminal/models/component/status.py:30 terminal/serializers/applet.py:18
@ -496,8 +497,8 @@ msgstr "最后登录日期"
#: accounts/models/automations/push_account.py:15 accounts/models/base.py:65
#: accounts/serializers/account/virtual.py:21 acls/serializers/base.py:19
#: acls/serializers/base.py:50 acls/templates/acls/asset_login_reminder.html:5
#: acls/templates/acls/user_login_reminder.html:5 assets/models/_user.py:22
#: audits/models.py:187 authentication/forms.py:25 authentication/forms.py:27
#: acls/templates/acls/user_login_reminder.html:5 assets/models/_user.py:23
#: audits/models.py:188 authentication/forms.py:25 authentication/forms.py:27
#: authentication/models/temp_token.py:9
#: authentication/templates/authentication/_msg_different_city.html:9
#: authentication/templates/authentication/_msg_oauth_bind.html:9
@ -520,7 +521,7 @@ msgstr "自动化收集账号"
msgid "Is sync account"
msgstr "是否同步账号"
#: accounts/models/automations/gather_account.py:71
#: accounts/models/automations/gather_account.py:75
#: accounts/tasks/gather_accounts.py:29
msgid "Gather asset accounts"
msgstr "收集账号"
@ -531,8 +532,8 @@ msgstr "触发方式"
#: accounts/models/automations/push_account.py:16 acls/models/base.py:41
#: acls/serializers/base.py:57 assets/models/cmd_filter.py:81
#: audits/models.py:91 audits/serializers.py:84
#: authentication/serializers/connect_token_secret.py:116
#: audits/models.py:92 audits/serializers.py:84
#: authentication/serializers/connect_token_secret.py:118
#: authentication/templates/authentication/_access_key_modal.html:34
msgid "Action"
msgstr "动作"
@ -576,14 +577,14 @@ msgstr "密码规则"
#: accounts/models/base.py:64 accounts/serializers/account/virtual.py:20
#: acls/models/base.py:35 acls/models/base.py:96 acls/models/command_acl.py:21
#: acls/serializers/base.py:35 applications/models.py:9
#: assets/models/_user.py:21 assets/models/asset/common.py:91
#: assets/models/_user.py:22 assets/models/asset/common.py:91
#: assets/models/asset/common.py:149 assets/models/cmd_filter.py:21
#: assets/models/domain.py:18 assets/models/group.py:17
#: assets/models/label.py:18 assets/models/platform.py:15
#: assets/models/platform.py:88 assets/serializers/asset/common.py:146
#: assets/serializers/platform.py:111 assets/serializers/platform.py:228
#: authentication/backends/passkey/models.py:10
#: authentication/serializers/connect_token_secret.py:110 ops/mixin.py:21
#: authentication/serializers/connect_token_secret.py:112 ops/mixin.py:21
#: ops/models/adhoc.py:20 ops/models/celery.py:15 ops/models/celery.py:57
#: ops/models/job.py:126 ops/models/playbook.py:28 ops/serializers/job.py:20
#: orgs/models.py:82 perms/models/asset_permission.py:60 rbac/models/role.py:29
@ -606,13 +607,13 @@ msgstr "特权账号"
#: accounts/models/base.py:70 assets/models/asset/common.py:156
#: assets/models/automations/base.py:21 assets/models/cmd_filter.py:39
#: assets/models/label.py:22
#: authentication/serializers/connect_token_secret.py:114
#: authentication/serializers/connect_token_secret.py:116
#: terminal/models/applet/applet.py:40
#: terminal/models/component/endpoint.py:105 users/serializers/user.py:167
msgid "Is active"
msgstr "激活"
#: accounts/models/template.py:17 assets/models/_user.py:54
#: accounts/models/template.py:17 assets/models/_user.py:53
msgid "Auto push"
msgstr "自动推送"
@ -667,17 +668,17 @@ msgid ""
msgstr ""
"连接资产时不使用用户名和密码的账号,仅支持 web类型 和 自定义类型 的资产"
#: accounts/notifications.py:9 accounts/notifications.py:34
#: accounts/notifications.py:11 accounts/notifications.py:36
msgid "Notification of account backup route task results"
msgstr "账号备份任务结果通知"
#: accounts/notifications.py:19 accounts/notifications.py:43
#: accounts/notifications.py:21 accounts/notifications.py:45
msgid ""
"{} - The account backup passage task has been completed. See the attachment "
"for details"
msgstr "{} - 账号备份任务已完成, 详情见附件"
#: accounts/notifications.py:22
#: accounts/notifications.py:24
msgid ""
"{} - The account backup passage task has been completed: the encryption "
"password has not been set - please go to personal information -> file "
@ -686,17 +687,17 @@ msgstr ""
"{} - 账号备份任务已完成: 未设置加密密码 - 请前往个人信息 -> 文件加密密码中设"
"置加密密码"
#: accounts/notifications.py:53
#: accounts/notifications.py:55
msgid "Notification of implementation result of encryption change plan"
msgstr "改密计划任务结果通知"
#: accounts/notifications.py:63
#: accounts/notifications.py:65
msgid ""
"{} - The encryption change task has been completed. See the attachment for "
"details"
msgstr "{} - 改密任务已完成, 详情见附件"
#: accounts/notifications.py:66
#: accounts/notifications.py:68
msgid ""
"{} - The encryption change task has been completed: the encryption password "
"has not been set - please go to personal information -> file encryption "
@ -705,6 +706,12 @@ msgstr ""
"{} - 改密任务已完成: 未设置加密密码 - 请前往个人信息 -> 文件加密密码中设置加"
"密密码"
#: accounts/notifications.py:79
#, fuzzy
#| msgid "Gather account automation"
msgid "Gather account change information"
msgstr "自动化收集账号"
#: accounts/serializers/account/account.py:31
msgid "Push now"
msgstr "立即推送"
@ -725,12 +732,12 @@ msgstr "类别"
#: accounts/serializers/account/account.py:191
#: accounts/serializers/automations/base.py:54 acls/models/command_acl.py:24
#: acls/serializers/command_acl.py:19 applications/models.py:14
#: assets/models/_user.py:49 assets/models/automations/base.py:20
#: assets/models/_user.py:50 assets/models/automations/base.py:20
#: assets/models/cmd_filter.py:74 assets/models/platform.py:90
#: assets/serializers/asset/common.py:122 assets/serializers/platform.py:113
#: assets/serializers/platform.py:132 audits/serializers.py:50
#: audits/serializers.py:170
#: authentication/serializers/connect_token_secret.py:123 ops/models/job.py:137
#: authentication/serializers/connect_token_secret.py:125 ops/models/job.py:137
#: perms/serializers/user_permission.py:26 terminal/models/applet/applet.py:39
#: terminal/models/component/storage.py:57
#: terminal/models/component/storage.py:146 terminal/serializers/applet.py:29
@ -766,7 +773,7 @@ msgstr "已修改"
#: acls/templates/acls/asset_login_reminder.html:6
#: assets/models/automations/base.py:19
#: assets/serializers/automations/base.py:20
#: authentication/api/connection_token.py:407 ops/models/base.py:17
#: authentication/api/connection_token.py:402 ops/models/base.py:17
#: ops/models/job.py:139 ops/serializers/job.py:21
#: terminal/templates/terminal/_msg_command_execute_alert.html:16
msgid "Assets"
@ -786,15 +793,15 @@ msgid "Account has exist"
msgstr "账号已存在"
#: accounts/serializers/account/account.py:438
#: authentication/serializers/connect_token_secret.py:156
#: authentication/serializers/connect_token_secret.py:158
#: authentication/templates/authentication/_access_key_modal.html:30
#: perms/models/perm_node.py:21 users/serializers/group.py:31
msgid "ID"
msgstr "ID"
#: accounts/serializers/account/account.py:448 acls/serializers/base.py:116
#: assets/models/cmd_filter.py:24 assets/models/label.py:16 audits/models.py:53
#: audits/models.py:89 audits/models.py:171 audits/models.py:268
#: assets/models/cmd_filter.py:24 assets/models/label.py:16 audits/models.py:54
#: audits/models.py:90 audits/models.py:172 audits/models.py:269
#: audits/serializers.py:171 authentication/models/connection_token.py:32
#: authentication/models/sso_token.py:16
#: notifications/models/notification.py:12
@ -889,7 +896,7 @@ msgid ""
"default parameters will be used"
msgstr "关联平台,可配置推送参数,如果不关联,将使用默认参数"
#: accounts/serializers/account/virtual.py:19 assets/models/_user.py:26
#: accounts/serializers/account/virtual.py:19 assets/models/_user.py:27
#: assets/models/cmd_filter.py:40 assets/models/cmd_filter.py:88
#: assets/models/group.py:20 common/db/models.py:36 ops/models/adhoc.py:26
#: ops/models/job.py:145 ops/models/playbook.py:31 rbac/models/role.py:37
@ -948,7 +955,7 @@ msgid "Automation task execution"
msgstr "自动化任务执行历史"
#: accounts/serializers/automations/change_secret.py:149 audits/const.py:61
#: audits/models.py:63 audits/signal_handlers/activity_log.py:33
#: audits/models.py:64 audits/signal_handlers/activity_log.py:33
#: common/const/choices.py:18 ops/const.py:72 ops/serializers/celery.py:40
#: terminal/const.py:77 terminal/models/session/sharing.py:121
#: tickets/views/approve.py:117
@ -1008,22 +1015,36 @@ msgstr "验证资产账号可用性"
msgid "Verify accounts connectivity"
msgstr "测试账号可连接性"
#: accounts/templates/accounts/asset_account_change_info.html:7
#, fuzzy
#| msgid "Asset type"
msgid "Asset name"
msgstr "资产类型"
#: accounts/templates/accounts/asset_account_change_info.html:8
#, fuzzy
#| msgid "Add account: %s"
msgid "Added account"
msgstr "添加账号: %s"
#: accounts/templates/accounts/asset_account_change_info.html:9
#, fuzzy
#| msgid "Delete account: %s"
msgid "Deleted account"
msgstr "删除账号: %s"
#: accounts/utils.py:53
msgid "Password can not contains `{{` "
#, fuzzy
#| msgid "Password can not contains `{{` "
msgid "Password can not contains `{{` or `}}`"
msgstr "密码不能包含 `{{` 字符"
#: accounts/utils.py:55
msgid "Password can not contains `{%` "
#, fuzzy
#| msgid "Password can not contains `{%` "
msgid "Password can not contains `{%` or `%}`"
msgstr "密码不能包含 `{%` 字符"
#: accounts/utils.py:58
msgid "Password can not contains `'` "
msgstr "密码不能包含 `'` 字符"
#: accounts/utils.py:60
msgid "Password can not contains `\"` "
msgstr "密码不能包含 `\"` 字符"
#: accounts/utils.py:66
msgid "private key invalid or passphrase error"
msgstr "密钥不合法或密钥密码错误"
@ -1053,7 +1074,7 @@ msgstr "告警"
msgid "Notifications"
msgstr "通知"
#: acls/models/base.py:37 assets/models/_user.py:50
#: acls/models/base.py:37 assets/models/_user.py:51
#: assets/models/cmd_filter.py:76 terminal/models/component/endpoint.py:97
#: xpack/plugins/cloud/models.py:275
msgid "Priority"
@ -1066,7 +1087,7 @@ msgid "1-100, the lower the value will be match first"
msgstr "优先级可选范围为 1-100 (数值越小越优先)"
#: acls/models/base.py:42 assets/models/cmd_filter.py:86
#: authentication/serializers/connect_token_secret.py:88
#: authentication/serializers/connect_token_secret.py:90
msgid "Reviewers"
msgstr "审批人"
@ -1117,7 +1138,7 @@ msgstr "忽略大小写"
#: acls/models/command_acl.py:33 acls/models/command_acl.py:97
#: acls/serializers/command_acl.py:29
#: authentication/serializers/connect_token_secret.py:85
#: authentication/serializers/connect_token_secret.py:87
#: terminal/templates/terminal/_msg_command_warning.html:14
msgid "Command group"
msgstr "命令组"
@ -1245,15 +1266,15 @@ msgstr ""
msgid "Thank you"
msgstr "谢谢"
#: acls/templates/acls/user_login_reminder.html:7 audits/models.py:193
#: audits/models.py:262
#: acls/templates/acls/user_login_reminder.html:7 audits/models.py:194
#: audits/models.py:263
#: authentication/templates/authentication/_msg_different_city.html:11
#: tickets/models/ticket/login_confirm.py:11
msgid "Login city"
msgstr "登录城市"
#: acls/templates/acls/user_login_reminder.html:8 audits/models.py:196
#: audits/models.py:263 audits/serializers.py:65
#: acls/templates/acls/user_login_reminder.html:8 audits/models.py:197
#: audits/models.py:264 audits/serializers.py:65
msgid "User agent"
msgstr "用户代理"
@ -1573,99 +1594,99 @@ msgstr "网站"
msgid "This function is not supported temporarily"
msgstr "暂时不支持此功能"
#: assets/models/_user.py:24
#: assets/models/_user.py:25
msgid "SSH private key"
msgstr "SSH密钥"
#: assets/models/_user.py:25
#: assets/models/_user.py:26
msgid "SSH public key"
msgstr "SSH公钥"
# msgid "Comment"
# msgstr "备注"
#: assets/models/_user.py:27 assets/models/automations/base.py:114
#: assets/models/_user.py:28 assets/models/automations/base.py:114
#: assets/models/cmd_filter.py:41 assets/models/group.py:19
#: audits/models.py:266 common/db/models.py:34 ops/models/base.py:54
#: audits/models.py:267 common/db/models.py:34 ops/models/base.py:54
#: ops/models/job.py:227 users/models/user.py:1024
msgid "Date created"
msgstr "创建日期"
#: assets/models/_user.py:28 assets/models/cmd_filter.py:42
#: assets/models/_user.py:29 assets/models/cmd_filter.py:42
#: common/db/models.py:35 users/models/user.py:846
msgid "Date updated"
msgstr "更新日期"
#: assets/models/_user.py:29 assets/models/cmd_filter.py:44
#: assets/models/_user.py:30 assets/models/cmd_filter.py:44
#: assets/models/cmd_filter.py:91 assets/models/group.py:18
#: common/db/models.py:32 users/models/user.py:835
#: users/serializers/group.py:29
msgid "Created by"
msgstr "创建者"
#: assets/models/_user.py:39
#: assets/models/_user.py:40
msgid "Automatic managed"
msgstr "托管密码"
#: assets/models/_user.py:40
#: assets/models/_user.py:41
msgid "Manually input"
msgstr "手动输入"
#: assets/models/_user.py:44
#: assets/models/_user.py:45
msgid "Common user"
msgstr "普通用户"
#: assets/models/_user.py:45 assets/models/_user.py:98
#: assets/models/_user.py:46 assets/models/_user.py:95
msgid "Admin user"
msgstr "特权用户"
#: assets/models/_user.py:48
#: assets/models/_user.py:49
msgid "Username same with user"
msgstr "用户名与用户相同"
#: assets/models/_user.py:53 authentication/models/connection_token.py:41
#: authentication/serializers/connect_token_secret.py:111
#: assets/models/_user.py:52 authentication/models/connection_token.py:41
#: authentication/serializers/connect_token_secret.py:113
#: terminal/models/applet/applet.py:42 terminal/serializers/session.py:19
#: terminal/serializers/session.py:45 terminal/serializers/storage.py:71
msgid "Protocol"
msgstr "协议"
#: assets/models/_user.py:55
#: assets/models/_user.py:54
msgid "Sudo"
msgstr "Sudo"
#: assets/models/_user.py:56 ops/const.py:49 ops/const.py:59
#: assets/models/_user.py:55 ops/const.py:49 ops/const.py:59
msgid "Shell"
msgstr "Shell"
#: assets/models/_user.py:58
#: assets/models/_user.py:56
msgid "Login mode"
msgstr "认证方式"
#: assets/models/_user.py:59 terminal/serializers/storage.py:152
#: assets/models/_user.py:57 terminal/serializers/storage.py:152
msgid "SFTP Root"
msgstr "SFTP根路径"
#: assets/models/_user.py:60
#: assets/models/_user.py:58
msgid "Home"
msgstr "家目录"
#: assets/models/_user.py:61
#: assets/models/_user.py:59
msgid "System groups"
msgstr "用户组"
#: assets/models/_user.py:64
#: assets/models/_user.py:62
msgid "User switch"
msgstr "用户切换"
#: assets/models/_user.py:66
#: assets/models/_user.py:63
msgid "Switch from"
msgstr "切换自"
#: assets/models/_user.py:72
#: assets/models/_user.py:69
msgid "System user"
msgstr "系统用户"
#: assets/models/_user.py:74
#: assets/models/_user.py:71
msgid "Can match system user"
msgstr "可以匹配系统用户"
@ -1686,13 +1707,13 @@ msgstr "地址"
#: assets/models/asset/common.py:151 assets/models/platform.py:119
#: authentication/backends/passkey/models.py:12
#: authentication/serializers/connect_token_secret.py:115
#: authentication/serializers/connect_token_secret.py:117
#: perms/serializers/user_permission.py:24 xpack/plugins/cloud/models.py:321
msgid "Platform"
msgstr "系统平台"
#: assets/models/asset/common.py:153 assets/models/domain.py:21
#: authentication/serializers/connect_token_secret.py:133
#: authentication/serializers/connect_token_secret.py:135
#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:323
msgid "Domain"
msgstr "网域"
@ -1839,7 +1860,7 @@ msgstr "系统"
#: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18
#: assets/serializers/cagegory.py:24
#: authentication/models/connection_token.py:29
#: authentication/serializers/connect_token_secret.py:122
#: authentication/serializers/connect_token_secret.py:124
#: common/serializers/common.py:86 settings/models.py:33
#: users/models/preference.py:13
msgid "Value"
@ -1848,7 +1869,7 @@ msgstr "值"
#: assets/models/label.py:40 assets/serializers/asset/common.py:123
#: assets/serializers/cagegory.py:10 assets/serializers/cagegory.py:17
#: assets/serializers/cagegory.py:23 assets/serializers/platform.py:112
#: authentication/serializers/connect_token_secret.py:121
#: authentication/serializers/connect_token_secret.py:123
#: common/serializers/common.py:85 perms/serializers/user_permission.py:27
#: settings/serializers/msg.py:83
msgid "Label"
@ -2014,7 +2035,7 @@ msgstr "资产中批量更新平台,不符合平台类型跳过的资产"
#: assets/serializers/asset/common.py:124 assets/serializers/platform.py:134
#: authentication/serializers/connect_token_secret.py:29
#: authentication/serializers/connect_token_secret.py:72
#: authentication/serializers/connect_token_secret.py:74
#: perms/models/asset_permission.py:75 perms/serializers/permission.py:40
#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:324
#: xpack/plugins/cloud/serializers/task.py:31
@ -2105,7 +2126,7 @@ msgid "Disk total"
msgstr "硬盘大小"
#: assets/serializers/asset/info/gathered.py:16
#: authentication/serializers/connect_token_secret.py:112
#: authentication/serializers/connect_token_secret.py:114
msgid "OS"
msgstr "操作系统"
@ -2353,7 +2374,7 @@ msgstr "关闭"
msgid "Terminal"
msgstr "终端"
#: audits/const.py:48 audits/models.py:131
#: audits/const.py:48 audits/models.py:132
msgid "Operate log"
msgstr "操作日志"
@ -2382,28 +2403,28 @@ msgstr "是"
msgid "No"
msgstr "否"
#: audits/models.py:46
#: audits/models.py:47
msgid "Job audit log"
msgstr "作业审计日志"
#: audits/models.py:55 audits/models.py:99 audits/models.py:174
#: audits/models.py:56 audits/models.py:100 audits/models.py:175
#: terminal/models/session/session.py:38 terminal/models/session/sharing.py:113
msgid "Remote addr"
msgstr "远端地址"
#: audits/models.py:60 audits/serializers.py:35
#: audits/models.py:61 audits/serializers.py:35
msgid "Operate"
msgstr "操作"
#: audits/models.py:62
#: audits/models.py:63
msgid "Filename"
msgstr "文件名"
#: audits/models.py:65 common/serializers/common.py:98
#: audits/models.py:66 common/serializers/common.py:98
msgid "File"
msgstr "文件"
#: audits/models.py:66 terminal/backends/command/models.py:21
#: audits/models.py:67 terminal/backends/command/models.py:21
#: terminal/models/session/replay.py:9 terminal/models/session/sharing.py:20
#: terminal/models/session/sharing.py:95
#: terminal/templates/terminal/_msg_command_alert.html:10
@ -2412,86 +2433,86 @@ msgstr "文件"
msgid "Session"
msgstr "会话"
#: audits/models.py:69
#: audits/models.py:70
msgid "File transfer log"
msgstr "文件管理"
#: audits/models.py:93 audits/serializers.py:86
#: audits/models.py:94 audits/serializers.py:86
msgid "Resource Type"
msgstr "资源类型"
#: audits/models.py:94 audits/models.py:97 audits/models.py:143
#: audits/models.py:95 audits/models.py:98 audits/models.py:144
#: audits/serializers.py:85
msgid "Resource"
msgstr "资源"
#: audits/models.py:100 audits/models.py:146 audits/models.py:176
#: audits/models.py:101 audits/models.py:147 audits/models.py:177
#: terminal/serializers/command.py:75
msgid "Datetime"
msgstr "日期"
#: audits/models.py:139
#: audits/models.py:140
msgid "Activity type"
msgstr "活动类型"
#: audits/models.py:149
#: audits/models.py:150
msgid "Detail"
msgstr "详情"
#: audits/models.py:152
#: audits/models.py:153
msgid "Detail ID"
msgstr "详情 ID"
#: audits/models.py:156
#: audits/models.py:157
msgid "Activity log"
msgstr "活动日志"
#: audits/models.py:172
#: audits/models.py:173
msgid "Change by"
msgstr "修改者"
#: audits/models.py:182
#: audits/models.py:183
msgid "Password change log"
msgstr "改密日志"
#: audits/models.py:189 audits/models.py:264
#: audits/models.py:190 audits/models.py:265
msgid "Login type"
msgstr "登录方式"
#: audits/models.py:191 audits/models.py:260
#: audits/models.py:192 audits/models.py:261
#: tickets/models/ticket/login_confirm.py:10
msgid "Login IP"
msgstr "登录 IP"
#: audits/models.py:199 audits/serializers.py:49
#: audits/models.py:200 audits/serializers.py:49
#: authentication/templates/authentication/_mfa_confirm_modal.html:14
#: users/forms/profile.py:65 users/models/user.py:815
#: users/serializers/profile.py:102
msgid "MFA"
msgstr "MFA"
#: audits/models.py:209
#: audits/models.py:210
msgid "Date login"
msgstr "登录日期"
#: audits/models.py:211 audits/models.py:265 audits/serializers.py:67
#: audits/models.py:212 audits/models.py:266 audits/serializers.py:67
#: audits/serializers.py:184
msgid "Authentication backend"
msgstr "认证方式"
#: audits/models.py:255
#: audits/models.py:256
msgid "User login log"
msgstr "用户登录日志"
#: audits/models.py:261
#: audits/models.py:262
msgid "Session key"
msgstr "会话标识"
#: audits/models.py:300
#: audits/models.py:306
msgid "User session"
msgstr "用户会话"
#: audits/models.py:302
#: audits/models.py:308
msgid "Offline ussr session"
msgstr "下限用户会话"
@ -2586,27 +2607,27 @@ msgstr ""
msgid "This action require verify your MFA"
msgstr "该操作需要验证您的 MFA, 请先开启并配置"
#: authentication/api/connection_token.py:263
#: authentication/api/connection_token.py:258
msgid "Reusable connection token is not allowed, global setting not enabled"
msgstr "不允许使用可重复使用的连接令牌,未启用全局设置"
#: authentication/api/connection_token.py:377
#: authentication/api/connection_token.py:372
msgid "Anonymous account is not supported for this asset"
msgstr "匿名账号不支持当前资产"
#: authentication/api/connection_token.py:396
#: authentication/api/connection_token.py:391
msgid "Account not found"
msgstr "账号未找到"
#: authentication/api/connection_token.py:399
#: authentication/api/connection_token.py:394
msgid "Permission expired"
msgstr "授权已过期"
#: authentication/api/connection_token.py:429
#: authentication/api/connection_token.py:424
msgid "ACL action is reject: {}({})"
msgstr "ACL 动作是拒绝: {}({})"
#: authentication/api/connection_token.py:433
#: authentication/api/connection_token.py:428
msgid "ACL action is review"
msgstr "ACL 动作是复核"
@ -3078,19 +3099,19 @@ msgstr "异地登录提醒"
msgid "binding reminder"
msgstr "绑定提醒"
#: authentication/serializers/connect_token_secret.py:113
#: authentication/serializers/connect_token_secret.py:115
msgid "Is builtin"
msgstr "内置的"
#: authentication/serializers/connect_token_secret.py:117
#: authentication/serializers/connect_token_secret.py:119
msgid "Options"
msgstr "选项"
#: authentication/serializers/connect_token_secret.py:124
#: authentication/serializers/connect_token_secret.py:126
msgid "Component"
msgstr "组件"
#: authentication/serializers/connect_token_secret.py:135
#: authentication/serializers/connect_token_secret.py:137
msgid "Expired now"
msgstr "立刻过期"
@ -3568,7 +3589,7 @@ msgstr "编码数据为 text"
msgid "Encrypt field using Secret Key"
msgstr "加密的字段"
#: common/db/fields.py:575
#: common/db/fields.py:573
msgid ""
"Invalid JSON data for JSONManyToManyField, should be like {'type': 'all'} or "
"{'type': 'ids', 'ids': []} or {'type': 'attrs', 'attrs': [{'name': 'ip', "
@ -3578,15 +3599,15 @@ msgstr ""
"{'type': 'attrs', 'attrs': [{'name': 'ip', 'match': 'exact', 'value': "
"'1.1.1.1'}}"
#: common/db/fields.py:582
#: common/db/fields.py:580
msgid "Invalid type, should be \"all\", \"ids\" or \"attrs\""
msgstr "无效类型,应为 all、ids 或 attrs"
#: common/db/fields.py:585
#: common/db/fields.py:583
msgid "Invalid ids for ids, should be a list"
msgstr "无效的ID应为列表"
#: common/db/fields.py:587 common/db/fields.py:592
#: common/db/fields.py:585 common/db/fields.py:590
#: common/serializers/fields.py:104 tickets/serializers/ticket/common.py:58
#: xpack/plugins/cloud/serializers/account_attrs.py:56
#: xpack/plugins/cloud/serializers/account_attrs.py:79
@ -3594,11 +3615,11 @@ msgstr "无效的ID应为列表"
msgid "This field is required."
msgstr "该字段是必填项。"
#: common/db/fields.py:590 common/db/fields.py:595
#: common/db/fields.py:588 common/db/fields.py:593
msgid "Invalid attrs, should be a list of dict"
msgstr "无效的属性应为dict列表"
#: common/db/fields.py:597
#: common/db/fields.py:595
msgid "Invalid attrs, should be has name and value"
msgstr "无效属性,应具有名称和值"
@ -4354,11 +4375,15 @@ msgstr "复制"
msgid "Paste"
msgstr "粘贴"
#: perms/const.py:27
#: perms/const.py:18
msgid "Share"
msgstr ""
#: perms/const.py:28
msgid "Transfer"
msgstr "文件传输"
#: perms/const.py:28
#: perms/const.py:29
msgid "Clipboard"
msgstr "剪贴板"
@ -6118,10 +6143,11 @@ msgstr "测试失败: {}"
msgid "Test successful"
msgstr "测试成功"
#: terminal/api/component/storage.py:124 terminal/notifications.py:240
#: terminal/tasks.py:146
msgid "Test failure: Account invalid"
msgstr "测试失败: 账号无效"
#: terminal/api/component/storage.py:124
#, fuzzy
#| msgid "Test failure: Account invalid"
msgid "Test failure: Please check configuration"
msgstr "测试失败: 请检查配置"
#: terminal/api/component/terminal.py:55
msgid "Have online sessions"
@ -6595,6 +6621,10 @@ msgstr "命令及录像存储"
msgid "Connectivity alarm"
msgstr "可连接性告警"
#: terminal/notifications.py:240 terminal/tasks.py:146
msgid "Test failure: Account invalid"
msgstr "测试失败: 账号无效"
#: terminal/notifications.py:250
#: terminal/templates/terminal/_msg_check_command_replay_storage_connectivity.html:4
msgid "Invalid storage"
@ -8574,5 +8604,11 @@ msgstr "企业专业版"
msgid "Ultimate edition"
msgstr "企业旗舰版"
#~ msgid "Password can not contains `'` "
#~ msgstr "密码不能包含 `'` 字符"
#~ msgid "Password can not contains `\"` "
#~ msgstr "密码不能包含 `\"` 字符"
#~ msgid "Object Storage"
#~ msgstr "对象存储"

View File

@ -121,7 +121,7 @@ class BaseStorageTestConnectiveMixin:
if is_valid:
msg = _("Test successful")
else:
msg = _("Test failure: Account invalid")
msg = _("Test failure: Please check configuration")
data = {
'is_valid': is_valid,
'msg': msg