perf: 解决Slack解绑用户404问题 (#12283)

Co-authored-by: jiangweidong <weidong.jiang@fit2cloud.com>
pull/12284/head
fit2bot 2023-12-08 15:11:49 +08:00 committed by GitHub
parent 7ad2abe104
commit 81de527e32
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 429 additions and 439 deletions

View File

@ -4,7 +4,6 @@
from .access_key import *
from .confirm import *
from .connection_token import *
from .dingtalk import *
from .feishu import *
from .login_confirm import *
from .mfa import *
@ -12,4 +11,4 @@ from .password import *
from .sso import *
from .temp_token import *
from .token import *
from .wecom import *
from .common import *

View File

@ -0,0 +1,51 @@
from django.utils.translation import gettext_lazy as _
from rest_framework.request import Request
from rest_framework.response import Response
from rest_framework.views import APIView
from authentication import errors
from authentication.const import ConfirmType
from authentication.permissions import UserConfirmation
from common.api import RoleUserMixin, RoleAdminMixin
from common.exceptions import JMSException
from common.permissions import IsValidUser, OnlySuperUser
from common.utils import get_logger
from users.models import User
logger = get_logger(__file__)
class QRUnBindBase(APIView):
user: User
def post(self, request: Request, backend: str, **kwargs):
backend_map = {
'wecom': {'user_field': 'wecom_id', 'not_bind_err': errors.WeComNotBound},
'dingtalk': {'user_field': 'dingtalk_id', 'not_bind_err': errors.DingTalkNotBound},
'feishu': {'user_field': 'feishu_id', 'not_bind_err': errors.FeiShuNotBound},
'slack': {'user_field': 'slack_id', 'not_bind_err': errors.SlackNotBound},
}
user = self.user
backend_info = backend_map.get(backend)
if not backend_info:
raise JMSException(
_('The value in the parameter must contain %s') % ', '.join(backend_map.keys())
)
if not getattr(user, backend_info['user_field'], None):
raise backend_info['not_bind_err']
setattr(user, backend_info['user_field'], None)
user.save()
return Response()
class QRUnBindForUserApi(RoleUserMixin, QRUnBindBase):
permission_classes = (IsValidUser, UserConfirmation.require(ConfirmType.RELOGIN),)
class QRUnBindForAdminApi(RoleAdminMixin, QRUnBindBase):
permission_classes = (OnlySuperUser,)
user_id_url_kwarg = 'user_id'

View File

@ -1,35 +0,0 @@
from rest_framework.request import Request
from rest_framework.response import Response
from rest_framework.views import APIView
from authentication import errors
from authentication.const import ConfirmType
from authentication.permissions import UserConfirmation
from common.api import RoleUserMixin, RoleAdminMixin
from common.permissions import IsValidUser
from common.utils import get_logger
from users.models import User
logger = get_logger(__file__)
class DingTalkQRUnBindBase(APIView):
user: User
def post(self, request: Request, **kwargs):
user = self.user
if not user.dingtalk_id:
raise errors.DingTalkNotBound
user.dingtalk_id = None
user.save()
return Response()
class DingTalkQRUnBindForUserApi(RoleUserMixin, DingTalkQRUnBindBase):
permission_classes = (IsValidUser, UserConfirmation.require(ConfirmType.RELOGIN),)
class DingTalkQRUnBindForAdminApi(RoleAdminMixin, DingTalkQRUnBindBase):
user_id_url_kwarg = 'user_id'

View File

@ -2,39 +2,13 @@ from rest_framework.request import Request
from rest_framework.response import Response
from rest_framework.views import APIView
from authentication import errors
from authentication.const import ConfirmType
from authentication.permissions import UserConfirmation
from common.api import RoleUserMixin, RoleAdminMixin
from common.permissions import IsValidUser
from common.utils import get_logger
from users.models import User
logger = get_logger(__name__)
class FeiShuQRUnBindBase(APIView):
user: User
def post(self, request: Request, **kwargs):
user = self.user
if not user.feishu_id:
raise errors.FeiShuNotBound
user.feishu_id = None
user.save()
return Response()
class FeiShuQRUnBindForUserApi(RoleUserMixin, FeiShuQRUnBindBase):
permission_classes = (IsValidUser, UserConfirmation.require(ConfirmType.RELOGIN),)
class FeiShuQRUnBindForAdminApi(RoleAdminMixin, FeiShuQRUnBindBase):
user_id_url_kwarg = 'user_id'
class FeiShuEventSubscriptionCallback(APIView):
"""
# https://open.feishu.cn/document/ukTMukTMukTM/uUTNz4SN1MjL1UzM

View File

@ -1,35 +0,0 @@
from rest_framework.request import Request
from rest_framework.response import Response
from rest_framework.views import APIView
from authentication import errors
from authentication.const import ConfirmType
from authentication.permissions import UserConfirmation
from common.api import RoleUserMixin, RoleAdminMixin
from common.permissions import IsValidUser
from common.utils import get_logger
from users.models import User
logger = get_logger(__file__)
class WeComQRUnBindBase(APIView):
user: User
def post(self, request: Request, **kwargs):
user = self.user
if not user.wecom_id:
raise errors.WeComNotBound
user.wecom_id = None
user.save()
return Response()
class WeComQRUnBindForUserApi(RoleUserMixin, WeComQRUnBindBase):
permission_classes = (IsValidUser, UserConfirmation.require(ConfirmType.RELOGIN),)
class WeComQRUnBindForAdminApi(RoleAdminMixin, WeComQRUnBindBase):
user_id_url_kwarg = 'user_id'

View File

@ -33,6 +33,11 @@ class FeiShuNotBound(JMSException):
default_detail = _('FeiShu is not bound')
class SlackNotBound(JMSException):
default_code = 'slack_not_bound'
default_detail = _('Slack is not bound')
class PasswordInvalid(JMSException):
default_code = 'passwd_invalid'
default_detail = _('Your password is invalid')

View File

@ -16,16 +16,9 @@ router.register('super-connection-token', api.SuperConnectionTokenViewSet, 'supe
router.register('confirm', api.UserConfirmationViewSet, 'confirm')
urlpatterns = [
path('wecom/qr/unbind/', api.WeComQRUnBindForUserApi.as_view(), name='wecom-qr-unbind'),
path('wecom/qr/unbind/<uuid:user_id>/', api.WeComQRUnBindForAdminApi.as_view(), name='wecom-qr-unbind-for-admin'),
path('<str:backend>/qr/unbind/', api.QRUnBindForUserApi.as_view(), name='qr-unbind'),
path('<str:backend>/qr/unbind/<uuid:user_id>/', api.QRUnBindForAdminApi.as_view(), name='qr-unbind-for-admin'),
path('dingtalk/qr/unbind/', api.DingTalkQRUnBindForUserApi.as_view(), name='dingtalk-qr-unbind'),
path('dingtalk/qr/unbind/<uuid:user_id>/', api.DingTalkQRUnBindForAdminApi.as_view(),
name='dingtalk-qr-unbind-for-admin'),
path('feishu/qr/unbind/', api.FeiShuQRUnBindForUserApi.as_view(), name='feishu-qr-unbind'),
path('feishu/qr/unbind/<uuid:user_id>/', api.FeiShuQRUnBindForAdminApi.as_view(),
name='feishu-qr-unbind-for-admin'),
path('feishu/event/subscription/callback/', api.FeiShuEventSubscriptionCallback.as_view(),
name='feishu-event-subscription-callback'),

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-12-05 10:16+0800\n"
"POT-Creation-Date: 2023-12-08 14:51+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"
@ -49,7 +49,7 @@ msgstr "アクセスキー"
#: 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
#: authentication/models/sso_token.py:14 settings/serializers/feature.py:52
msgid "Token"
msgstr "トークン"
@ -99,7 +99,7 @@ msgstr "更新"
#: accounts/const/account.py:33
#: accounts/serializers/automations/change_secret.py:150 audits/const.py:62
#: audits/signal_handlers/activity_log.py:33 common/const/choices.py:19
#: ops/const.py:74 terminal/const.py:78 xpack/plugins/cloud/const.py:43
#: ops/const.py:74 terminal/const.py:79 xpack/plugins/cloud/const.py:46
msgid "Failed"
msgstr "失敗しました"
@ -202,7 +202,7 @@ msgstr "作成のみ"
msgid "Email"
msgstr "メール"
#: accounts/const/automation.py:104 terminal/const.py:86
#: accounts/const/automation.py:104 terminal/const.py:87
msgid "SFTP"
msgstr "SFTP"
@ -211,7 +211,7 @@ msgstr "SFTP"
msgid "Database"
msgstr "データベース"
#: accounts/const/vault.py:9 settings/serializers/feature.py:41
#: accounts/const/vault.py:9 settings/serializers/feature.py:43
msgid "HCP Vault"
msgstr "HashiCorp Vault"
@ -259,13 +259,14 @@ msgstr "資産"
#: accounts/serializers/account/account.py:220
#: accounts/serializers/account/account.py:268
#: accounts/serializers/account/template.py:25
#: authentication/serializers/connect_token_secret.py:49
#: authentication/serializers/connect_token_secret.py:50
msgid "Su from"
msgstr "から切り替え"
#: accounts/models/account.py:55 assets/const/protocol.py:169
#: settings/serializers/auth/cas.py:20 settings/serializers/auth/feishu.py:20
#: terminal/models/applet/applet.py:35
#: terminal/models/virtualapp/virtualapp.py:21
msgid "Version"
msgstr "バージョン"
@ -466,9 +467,11 @@ msgstr "終了日"
#: accounts/models/automations/change_secret.py:43
#: assets/models/automations/base.py:113 audits/models.py:208
#: audits/serializers.py:54 ops/models/base.py:49 ops/models/job.py:232
#: terminal/models/applet/applet.py:318 terminal/models/applet/host.py:140
#: terminal/models/component/status.py:30 terminal/serializers/applet.py:18
#: terminal/serializers/applet_host.py:124 tickets/models/ticket/general.py:283
#: terminal/models/applet/applet.py:320 terminal/models/applet/host.py:140
#: terminal/models/component/status.py:30
#: terminal/models/virtualapp/virtualapp.py:99
#: terminal/serializers/applet.py:18 terminal/serializers/applet_host.py:124
#: terminal/serializers/virtualapp.py:35 tickets/models/ticket/general.py:283
#: tickets/serializers/super_ticket.py:13
#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:201
#: xpack/plugins/cloud/models.py:257
@ -534,8 +537,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:92 audits/serializers.py:87
#: authentication/serializers/connect_token_secret.py:118
#: audits/models.py:92 audits/serializers.py:84
#: authentication/serializers/connect_token_secret.py:119
#: authentication/templates/authentication/_access_key_modal.html:34
msgid "Action"
msgstr "アクション"
@ -552,8 +555,8 @@ msgstr "アカウントの確認"
#: accounts/serializers/account/account.py:440
#: accounts/serializers/account/base.py:17
#: accounts/serializers/automations/change_secret.py:45
#: authentication/serializers/connect_token_secret.py:41
#: authentication/serializers/connect_token_secret.py:50
#: authentication/serializers/connect_token_secret.py:42
#: authentication/serializers/connect_token_secret.py:51
#: terminal/serializers/storage.py:140
msgid "Secret type"
msgstr "鍵の種類"
@ -586,7 +589,8 @@ msgstr "パスワードルール"
#: assets/models/platform.py:89 assets/serializers/asset/common.py:146
#: assets/serializers/platform.py:118 assets/serializers/platform.py:235
#: authentication/backends/passkey/models.py:10
#: authentication/serializers/connect_token_secret.py:112 labels/models.py:11
#: authentication/serializers/connect_token_secret.py:113
#: authentication/serializers/connect_token_secret.py:168 labels/models.py:11
#: ops/mixin.py:21 ops/models/adhoc.py:20 ops/models/celery.py:15
#: ops/models/celery.py:57 ops/models/job.py:137 ops/models/playbook.py:29
#: ops/serializers/job.py:19 orgs/models.py:82
@ -595,7 +599,9 @@ msgstr "パスワードルール"
#: terminal/models/applet/applet.py:33 terminal/models/component/endpoint.py:12
#: terminal/models/component/endpoint.py:94
#: terminal/models/component/storage.py:26 terminal/models/component/task.py:13
#: terminal/models/component/terminal.py:84 tickets/api/ticket.py:87
#: terminal/models/component/terminal.py:84
#: terminal/models/virtualapp/provider.py:10
#: terminal/models/virtualapp/virtualapp.py:19 tickets/api/ticket.py:87
#: users/forms/profile.py:33 users/models/group.py:13
#: users/models/preference.py:11 users/models/user.py:798
#: xpack/plugins/cloud/models.py:32 xpack/plugins/cloud/models.py:273
@ -610,9 +616,10 @@ msgstr "特権アカウント"
#: accounts/models/base.py:70 assets/models/asset/common.py:166
#: assets/models/automations/base.py:21 assets/models/cmd_filter.py:39
#: assets/models/label.py:22
#: authentication/serializers/connect_token_secret.py:116
#: authentication/serializers/connect_token_secret.py:117
#: terminal/models/applet/applet.py:40
#: terminal/models/component/endpoint.py:105 users/serializers/user.py:167
#: terminal/models/component/endpoint.py:105
#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:167
msgid "Is active"
msgstr "アクティブです。"
@ -738,8 +745,8 @@ msgstr "カテゴリ"
#: assets/models/cmd_filter.py:74 assets/models/platform.py:91
#: assets/serializers/asset/common.py:123 assets/serializers/platform.py:120
#: assets/serializers/platform.py:139 audits/serializers.py:53
#: audits/serializers.py:173
#: authentication/serializers/connect_token_secret.py:125 ops/models/job.py:149
#: audits/serializers.py:170
#: authentication/serializers/connect_token_secret.py:126 ops/models/job.py:149
#: 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
@ -795,7 +802,7 @@ msgid "Account has exist"
msgstr "アカウントはすでに存在しています"
#: accounts/serializers/account/account.py:441
#: authentication/serializers/connect_token_secret.py:158
#: authentication/serializers/connect_token_secret.py:159
#: authentication/templates/authentication/_access_key_modal.html:30
#: perms/models/perm_node.py:21 users/serializers/group.py:32
msgid "ID"
@ -804,7 +811,7 @@ msgstr "ID"
#: accounts/serializers/account/account.py:451 acls/serializers/base.py:116
#: 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:174 authentication/models/connection_token.py:32
#: audits/serializers.py:171 authentication/models/connection_token.py:32
#: authentication/models/sso_token.py:16
#: notifications/models/notification.py:12
#: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:63
@ -909,10 +916,11 @@ msgstr "关联平台,可以配置推送参数,如果不关联,则使用默
#: assets/models/group.py:20 common/db/models.py:36 ops/models/adhoc.py:26
#: ops/models/job.py:157 ops/models/playbook.py:32 rbac/models/role.py:37
#: settings/models.py:37 terminal/models/applet/applet.py:45
#: terminal/models/applet/applet.py:319 terminal/models/applet/host.py:143
#: terminal/models/applet/applet.py:321 terminal/models/applet/host.py:143
#: terminal/models/component/endpoint.py:24
#: terminal/models/component/endpoint.py:104
#: terminal/models/session/session.py:46 tickets/models/comment.py:32
#: terminal/models/session/session.py:46
#: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32
#: tickets/models/ticket/general.py:297 users/models/user.py:834
#: xpack/plugins/cloud/models.py:39 xpack/plugins/cloud/models.py:109
msgid "Comment"
@ -930,9 +938,7 @@ msgstr ""
"ください。 "
#: accounts/serializers/automations/base.py:23
#: assets/models/asset/common.py:165 assets/models/automations/base.py:18
#: assets/models/cmd_filter.py:32 assets/serializers/automations/base.py:21
#: perms/models/asset_permission.py:72
#: assets/serializers/automations/base.py:21
msgid "Nodes"
msgstr "ノード"
@ -966,7 +972,7 @@ msgstr "自動タスク実行履歴"
#: accounts/serializers/automations/change_secret.py:149 audits/const.py:61
#: 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
#: terminal/const.py:78 terminal/models/session/sharing.py:121
#: tickets/views/approve.py:117
msgid "Success"
msgstr "成功"
@ -1080,7 +1086,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:90
#: authentication/serializers/connect_token_secret.py:91
msgid "Reviewers"
msgstr "レビュー担当者"
@ -1103,7 +1109,7 @@ msgid "Accounts"
msgstr "アカウント"
#: acls/models/command_acl.py:16 assets/models/cmd_filter.py:60
#: ops/serializers/job.py:54 terminal/const.py:85
#: ops/serializers/job.py:54 terminal/const.py:86
#: terminal/models/session/session.py:42 terminal/serializers/command.py:18
#: terminal/templates/terminal/_msg_command_alert.html:12
#: terminal/templates/terminal/_msg_command_execute_alert.html:10
@ -1117,7 +1123,7 @@ msgid "Regex"
msgstr "正規情報"
#: acls/models/command_acl.py:26 assets/models/cmd_filter.py:79
#: settings/serializers/feature.py:17 xpack/plugins/license/models.py:30
#: settings/serializers/feature.py:19 xpack/plugins/license/models.py:30
msgid "Content"
msgstr "コンテンツ"
@ -1131,7 +1137,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:87
#: authentication/serializers/connect_token_secret.py:88
#: terminal/templates/terminal/_msg_command_warning.html:14
msgid "Command group"
msgstr "コマンドグループ"
@ -1287,7 +1293,7 @@ msgid "Applications"
msgstr "アプリケーション"
#: applications/models.py:16 xpack/plugins/cloud/models.py:37
#: xpack/plugins/cloud/serializers/account.py:63
#: xpack/plugins/cloud/serializers/account.py:67
msgid "Attrs"
msgstr "ツールバーの"
@ -1357,7 +1363,7 @@ msgid "Authentication failed"
msgstr "認証に失敗しました"
#: assets/automations/ping_gateway/manager.py:60
#: assets/automations/ping_gateway/manager.py:86 terminal/const.py:101
#: assets/automations/ping_gateway/manager.py:86 terminal/const.py:102
msgid "Connect failed"
msgstr "接続に失敗しました"
@ -1402,7 +1408,7 @@ msgstr "脚本"
#: assets/const/category.py:10 assets/models/asset/host.py:8
#: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:71
#: settings/serializers/feature.py:47 terminal/models/component/endpoint.py:13
#: settings/serializers/feature.py:49 terminal/models/component/endpoint.py:13
#: terminal/serializers/applet.py:17
#: xpack/plugins/cloud/serializers/account_attrs.py:72
msgid "Host"
@ -1641,9 +1647,11 @@ msgid "Username same with user"
msgstr "ユーザーと同じユーザー名"
#: 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
#: authentication/serializers/connect_token_secret.py:114
#: terminal/models/applet/applet.py:42
#: terminal/models/virtualapp/virtualapp.py:24
#: terminal/serializers/session.py:19 terminal/serializers/session.py:45
#: terminal/serializers/storage.py:71
msgid "Protocol"
msgstr "プロトコル"
@ -1704,17 +1712,24 @@ msgstr "アドレス"
#: assets/models/asset/common.py:161 assets/models/platform.py:120
#: authentication/backends/passkey/models.py:12
#: authentication/serializers/connect_token_secret.py:117
#: authentication/serializers/connect_token_secret.py:118
#: perms/serializers/user_permission.py:24 xpack/plugins/cloud/models.py:321
msgid "Platform"
msgstr "プラットフォーム"
#: assets/models/asset/common.py:163 assets/models/domain.py:22
#: authentication/serializers/connect_token_secret.py:135
#: authentication/serializers/connect_token_secret.py:136
#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:323
msgid "Domain"
msgstr "ドメイン"
#: assets/models/asset/common.py:165 assets/models/automations/base.py:18
#: assets/models/cmd_filter.py:32 assets/models/node.py:553
#: perms/models/asset_permission.py:72 perms/serializers/permission.py:36
#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:322
msgid "Node"
msgstr "ノード"
#: assets/models/asset/common.py:167 assets/serializers/asset/common.py:380
#: assets/serializers/asset/host.py:11
msgid "Gathered info"
@ -1760,7 +1775,7 @@ msgstr "クライアントキー"
msgid "Allow invalid cert"
msgstr "証明書チェックを無視"
#: assets/models/asset/gpt.py:8
#: assets/models/asset/gpt.py:8 settings/serializers/feature.py:73
msgid "Proxy"
msgstr "プロキシー"
@ -1853,7 +1868,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:124
#: authentication/serializers/connect_token_secret.py:125
#: common/serializers/common.py:86 labels/models.py:12 settings/models.py:33
#: users/models/preference.py:13
msgid "Value"
@ -1862,7 +1877,7 @@ msgstr "値"
#: assets/models/label.py:40 assets/serializers/cagegory.py:10
#: assets/serializers/cagegory.py:17 assets/serializers/cagegory.py:23
#: assets/serializers/platform.py:119
#: authentication/serializers/connect_token_secret.py:123
#: authentication/serializers/connect_token_secret.py:124
#: common/serializers/common.py:85 labels/models.py:17
#: perms/serializers/user_permission.py:27 settings/serializers/msg.py:83
msgid "Label"
@ -1872,7 +1887,7 @@ msgstr "ラベル"
msgid "New node"
msgstr "新しいノード"
#: assets/models/node.py:467 audits/backends/db.py:55 audits/backends/db.py:56
#: assets/models/node.py:467 audits/backends/db.py:65 audits/backends/db.py:66
msgid "empty"
msgstr "空"
@ -1888,11 +1903,6 @@ msgstr "フルバリュー"
msgid "Parent key"
msgstr "親キー"
#: assets/models/node.py:553 perms/serializers/permission.py:36
#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:322
msgid "Node"
msgstr "ノード"
#: assets/models/node.py:556
msgid "Can match node"
msgstr "ノードを一致させることができます"
@ -2029,8 +2039,8 @@ msgstr ""
"ラットフォーム"
#: assets/serializers/asset/common.py:124 assets/serializers/platform.py:141
#: authentication/serializers/connect_token_secret.py:29
#: authentication/serializers/connect_token_secret.py:74
#: authentication/serializers/connect_token_secret.py:30
#: authentication/serializers/connect_token_secret.py:75
#: perms/models/asset_permission.py:76 perms/serializers/permission.py:41
#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:324
#: xpack/plugins/cloud/serializers/task.py:31
@ -2121,7 +2131,7 @@ msgid "Disk total"
msgstr "ディスクの合計"
#: assets/serializers/asset/info/gathered.py:16
#: authentication/serializers/connect_token_secret.py:114
#: authentication/serializers/connect_token_secret.py:115
msgid "OS"
msgstr "OS"
@ -2286,11 +2296,11 @@ msgstr "一致する資産がない、タスクを停止"
msgid "Audits"
msgstr "監査"
#: audits/backends/db.py:15
#: audits/backends/db.py:16
msgid "The text content is too long. Use Elasticsearch to store operation logs"
msgstr "文章の内容が長すぎる。Elasticsearchで操作履歴を保存する"
#: audits/backends/db.py:81
#: audits/backends/db.py:91
msgid "Tips"
msgstr "謎々"
@ -2366,8 +2376,9 @@ msgid "Close"
msgstr "閉じる"
#: audits/const.py:43 settings/serializers/terminal.py:6
#: terminal/models/applet/host.py:26 terminal/models/component/terminal.py:164
#: terminal/serializers/session.py:52 terminal/serializers/session.py:66
#: terminal/models/applet/host.py:26 terminal/models/component/terminal.py:174
#: terminal/models/virtualapp/provider.py:14 terminal/serializers/session.py:52
#: terminal/serializers/session.py:66
msgid "Terminal"
msgstr "ターミナル"
@ -2434,12 +2445,12 @@ msgstr "セッション"
msgid "File transfer log"
msgstr "ファイル転送ログ"
#: audits/models.py:94 audits/serializers.py:89
#: audits/models.py:94 audits/serializers.py:86
msgid "Resource Type"
msgstr "リソースタイプ"
#: audits/models.py:95 audits/models.py:98 audits/models.py:144
#: audits/serializers.py:88 labels/serializers.py:34
#: audits/serializers.py:85 labels/serializers.py:34
msgid "Resource"
msgstr "リソース"
@ -2493,7 +2504,7 @@ msgid "Date login"
msgstr "日付ログイン"
#: audits/models.py:212 audits/models.py:266 audits/serializers.py:70
#: audits/serializers.py:187
#: audits/serializers.py:184
msgid "Authentication backend"
msgstr "認証バックエンド"
@ -2523,12 +2534,12 @@ msgstr "作成者"
msgid "Reason display"
msgstr "理由表示"
#: audits/serializers.py:137
#: audits/serializers.py:134
#, python-format
msgid "User %s %s this resource"
msgstr "ユーザー %s %s が現在のリソースをサブスクライブしました。"
#: audits/serializers.py:175 authentication/models/connection_token.py:47
#: audits/serializers.py:172 authentication/models/connection_token.py:47
#: authentication/models/temp_token.py:13 perms/models/asset_permission.py:80
#: tickets/models/ticket/apply_application.py:31
#: tickets/models/ticket/apply_asset.py:20 users/models/user.py:839
@ -2613,6 +2624,11 @@ msgstr "外部ストレージへのFTPファイルのアップロード"
msgid "Access keys can be created at most 10"
msgstr "最大10個のアクセスキーを作成できます"
#: authentication/api/common.py:34 settings/serializers/auth/sms.py:117
#, python-format
msgid "The value in the parameter must contain %s"
msgstr "パラメータの値には必ず %s が含まれます"
#: authentication/api/confirm.py:50
msgid "This action require verify your MFA"
msgstr "この操作には、MFAを検証する必要があります"
@ -2880,11 +2896,15 @@ msgstr "DingTalkはバインドされていません"
msgid "FeiShu is not bound"
msgstr "本を飛ばすは拘束されていません"
#: authentication/errors/mfa.py:38
#: authentication/errors/mfa.py:38 authentication/views/slack.py:127
msgid "Slack is not bound"
msgstr "Slackはバインドされていません"
#: authentication/errors/mfa.py:43
msgid "Your password is invalid"
msgstr "パスワードが無効です"
#: authentication/errors/mfa.py:43
#: authentication/errors/mfa.py:48
#, python-format
msgid "Please wait for %s seconds before retry"
msgstr "%s 秒後に再試行してください"
@ -3092,11 +3112,11 @@ msgstr "ユーザーなしまたは期限切れのユーザー"
msgid "No asset or inactive asset"
msgstr "アセットがないか、有効化されていないアセット"
#: authentication/models/connection_token.py:265
#: authentication/models/connection_token.py:274
msgid "Can view super connection token secret"
msgstr "スーパー接続トークンのシークレットを表示できます"
#: authentication/models/connection_token.py:267
#: authentication/models/connection_token.py:276
msgid "Super connection token"
msgstr "スーパー接続トークン"
@ -3124,19 +3144,19 @@ msgstr "異なる都市ログインのリマインダー"
msgid "binding reminder"
msgstr "バインディングリマインダー"
#: authentication/serializers/connect_token_secret.py:115
#: authentication/serializers/connect_token_secret.py:116
msgid "Is builtin"
msgstr "ビルトイン"
#: authentication/serializers/connect_token_secret.py:119
#: authentication/serializers/connect_token_secret.py:120
msgid "Options"
msgstr "オプション"
#: authentication/serializers/connect_token_secret.py:126
#: authentication/serializers/connect_token_secret.py:127
msgid "Component"
msgstr "コンポーネント"
#: authentication/serializers/connect_token_secret.py:137
#: authentication/serializers/connect_token_secret.py:138
msgid "Expired now"
msgstr "すぐに期限切れ"
@ -3416,7 +3436,7 @@ msgid "Do you want to retry ?"
msgstr "再試行しますか?"
#: authentication/utils.py:23 common/utils/ip/geoip/utils.py:24
#: xpack/plugins/cloud/const.py:29
#: xpack/plugins/cloud/const.py:32
msgid "LAN"
msgstr "ローカルエリアネットワーク"
@ -3545,12 +3565,6 @@ msgstr "DingTalkエラー"
msgid "Slack is already bound"
msgstr "DingTalkはすでにバインドされています"
#: authentication/views/slack.py:127
#, fuzzy
#| msgid "DingTalk is not bound"
msgid "Slack is not bound"
msgstr "DingTalkはバインドされていません"
#: authentication/views/slack.py:128
#, fuzzy
#| msgid "Failed to get user from DingTalk"
@ -3593,7 +3607,7 @@ msgstr "タイミングトリガー"
msgid "Ready"
msgstr "の準備を"
#: common/const/choices.py:16 terminal/const.py:76 tickets/const.py:29
#: common/const/choices.py:16 terminal/const.py:77 tickets/const.py:29
#: tickets/const.py:39
msgid "Pending"
msgstr "未定"
@ -3670,7 +3684,7 @@ msgstr "無効なID、リストでなければなりません"
#: common/serializers/fields.py:132 tickets/serializers/ticket/common.py:58
#: xpack/plugins/cloud/serializers/account_attrs.py:56
#: xpack/plugins/cloud/serializers/account_attrs.py:79
#: xpack/plugins/cloud/serializers/account_attrs.py:143
#: xpack/plugins/cloud/serializers/account_attrs.py:150
msgid "This field is required."
msgstr "このフィールドは必須です。"
@ -4690,6 +4704,7 @@ msgid "Users amount"
msgstr "ユーザー数"
#: rbac/serializers/role.py:28 terminal/models/applet/applet.py:34
#: terminal/models/virtualapp/virtualapp.py:20
msgid "Display name"
msgstr "表示名"
@ -4750,7 +4765,7 @@ msgid "My assets"
msgstr "私の資産"
#: rbac/tree.py:58 terminal/models/applet/applet.py:52
#: terminal/models/applet/applet.py:315 terminal/models/applet/host.py:30
#: terminal/models/applet/applet.py:317 terminal/models/applet/host.py:30
#: terminal/serializers/applet.py:15
msgid "Applet"
msgstr "リモートアプリケーション"
@ -4759,7 +4774,7 @@ msgstr "リモートアプリケーション"
msgid "Ticket comment"
msgstr "チケットコメント"
#: rbac/tree.py:130 settings/serializers/feature.py:58
#: rbac/tree.py:130 settings/serializers/feature.py:98
#: tickets/models/ticket/general.py:307
msgid "Ticket"
msgstr "チケット"
@ -4841,31 +4856,31 @@ msgstr "金庫の設定を変えることができます"
msgid "Can change system msg sub setting"
msgstr "システムmsgサブ设定を変更できます"
#: settings/models.py:167
#: settings/models.py:168
msgid "Can change sms setting"
msgstr "Smsの設定を変えることができます"
#: settings/models.py:168
#: settings/models.py:169
msgid "Can change security setting"
msgstr "セキュリティ設定を変更できます"
#: settings/models.py:169
#: settings/models.py:170
msgid "Can change clean setting"
msgstr "きれいな設定を変えることができます"
#: settings/models.py:170
#: settings/models.py:171
msgid "Can change interface setting"
msgstr "インターフェイスの設定を変えることができます"
#: settings/models.py:171
#: settings/models.py:172
msgid "Can change license setting"
msgstr "ライセンス設定を変更できます"
#: settings/models.py:172
#: settings/models.py:173
msgid "Can change terminal setting"
msgstr "ターミナルの設定を変えることができます"
#: settings/models.py:173
#: settings/models.py:174
msgid "Can change other setting"
msgstr "他の設定を変えることができます"
@ -5310,11 +5325,6 @@ msgstr "URL"
msgid "Request method"
msgstr "請求方法です"
#: settings/serializers/auth/sms.py:117
#, python-format
msgid "The value in the parameter must contain %s"
msgstr "パラメータの値には必ず %s が含まれます"
#: settings/serializers/auth/sso.py:16
msgid "Enable SSO auth"
msgstr "SSO Token認証の有効化"
@ -5329,7 +5339,7 @@ msgid "SSO auth key TTL"
msgstr "Token有効期間"
#: settings/serializers/auth/sso.py:20
#: xpack/plugins/cloud/serializers/account_attrs.py:193
#: xpack/plugins/cloud/serializers/account_attrs.py:200
msgid "Unit: second"
msgstr "単位: 秒"
@ -5425,27 +5435,27 @@ msgstr ""
"この期間を超えるセッション、録音、およびコマンド レコードは削除されます (デー"
"タベースのバックアップに影響し、OSS などには影響しません)"
#: settings/serializers/feature.py:16
#: settings/serializers/feature.py:18
msgid "Subject"
msgstr "件名"
#: settings/serializers/feature.py:20
#: settings/serializers/feature.py:22
msgid "More url"
msgstr "もっとURL"
#: settings/serializers/feature.py:34 settings/serializers/feature.py:37
#: settings/serializers/feature.py:36 settings/serializers/feature.py:39
msgid "Announcement"
msgstr "発表"
#: settings/serializers/feature.py:36
#: settings/serializers/feature.py:38
msgid "Enable announcement"
msgstr "アナウンスの有効化"
#: settings/serializers/feature.py:44
#: settings/serializers/feature.py:46 settings/serializers/feature.py:64
msgid "Enable Vault"
msgstr "有効化 Vault"
#: settings/serializers/feature.py:53
#: settings/serializers/feature.py:55
msgid "Mount Point"
msgstr "マウントポイント"
@ -5453,39 +5463,39 @@ msgstr "マウントポイント"
msgid "Enable tickets"
msgstr "チケットを有効にする"
#: settings/serializers/feature.py:63
#: settings/serializers/feature.py:103
msgid "Ticket authorize default time"
msgstr "デフォルト製造オーダ承認時間"
#: settings/serializers/feature.py:66
#: settings/serializers/feature.py:106
msgid "day"
msgstr "日"
#: settings/serializers/feature.py:66
#: settings/serializers/feature.py:106
msgid "hour"
msgstr "時"
#: settings/serializers/feature.py:67
#: settings/serializers/feature.py:107
msgid "Ticket authorize default time unit"
msgstr "デフォルト製造オーダ承認時間単位"
#: settings/serializers/feature.py:72
#: settings/serializers/feature.py:112
msgid "Feature"
msgstr "機能"
#: settings/serializers/feature.py:75
#: settings/serializers/feature.py:115
msgid "Operation center"
msgstr "職業センター"
#: settings/serializers/feature.py:76
#: settings/serializers/feature.py:116
msgid "Allow user run batch command or not using ansible"
msgstr "ユーザー実行バッチコマンドを許可するか、ansibleを使用しない"
#: settings/serializers/feature.py:80
#: settings/serializers/feature.py:120
msgid "Operation center command blacklist"
msgstr "オペレーション センター コマンド ブラックリスト"
#: settings/serializers/feature.py:81
#: settings/serializers/feature.py:121
msgid "Commands that are not allowed execute."
msgstr "実行が許可されていないコマンド"
@ -5890,7 +5900,7 @@ msgstr "複数のユーザーを使用して、分割"
msgid "[%s] %s"
msgstr "[%s] %s"
#: settings/serializers/terminal.py:9
#: settings/serializers/terminal.py:9 terminal/models/virtualapp/provider.py:11
msgid "Hostname"
msgstr "ホスト名"
@ -6262,6 +6272,8 @@ msgid "Offline video player"
msgstr "オフラインビデオプレーヤー"
#: terminal/api/applet/applet.py:48 terminal/api/applet/applet.py:51
#: terminal/api/virtualapp/virtualapp.py:43
#: terminal/api/virtualapp/virtualapp.py:46
msgid "Invalid zip file"
msgstr "zip ファイルが無効です"
@ -6387,7 +6399,7 @@ msgstr "クリティカル"
msgid "High"
msgstr "高い"
#: terminal/const.py:47 terminal/const.py:83
#: terminal/const.py:47 terminal/const.py:84
#: users/templates/users/reset_password.html:50
msgid "Normal"
msgstr "正常"
@ -6396,43 +6408,43 @@ msgstr "正常"
msgid "Offline"
msgstr "オフライン"
#: terminal/const.py:79
#: terminal/const.py:80
msgid "Mismatch"
msgstr "一致しない"
#: terminal/const.py:84
#: terminal/const.py:85
msgid "Tunnel"
msgstr "ちかチャネル"
#: terminal/const.py:90
#: terminal/const.py:91
msgid "Read only"
msgstr "読み取り専用"
#: terminal/const.py:91
#: terminal/const.py:92
msgid "Writable"
msgstr "書き込み可能"
#: terminal/const.py:95
#: terminal/const.py:96
msgid "Kill session"
msgstr "セッションを終了する"
#: terminal/const.py:96
#: terminal/const.py:97
msgid "Lock session"
msgstr "セッションをロックする"
#: terminal/const.py:97
#: terminal/const.py:98
msgid "Unlock session"
msgstr "セッションのロックを解除する"
#: terminal/const.py:102
#: terminal/const.py:103
msgid "Replay create failed"
msgstr "ビデオの作成に失敗しました"
#: terminal/const.py:103
#: terminal/const.py:104
msgid "Replay upload failed"
msgstr "動画のアップロードに失敗しました"
#: terminal/const.py:104
#: terminal/const.py:105
msgid "Replay convert failed"
msgstr "ビデオのトランスコーディングに失敗しました"
@ -6453,6 +6465,7 @@ msgid "Enterprise"
msgstr "エンタープライズ版"
#: terminal/models/applet/applet.py:36
#: terminal/models/virtualapp/virtualapp.py:22
msgid "Author"
msgstr "著者"
@ -6465,6 +6478,7 @@ msgid "Can concurrent"
msgstr "同時実行可能"
#: terminal/models/applet/applet.py:44
#: terminal/models/virtualapp/virtualapp.py:29
msgid "Tags"
msgstr "ラベル"
@ -6473,6 +6487,7 @@ msgid "Hosts"
msgstr "ホスト"
#: terminal/models/applet/applet.py:93
#: terminal/models/virtualapp/virtualapp.py:66
msgid "Applet pkg not valid, Missing file {}"
msgstr "無効なアプレット パッケージ、ファイル {} がありません"
@ -6488,7 +6503,7 @@ msgstr "カスタムプラットフォームのみをサポート"
msgid "Missing type in platform.yml"
msgstr "platform.ymlにタイプがありません"
#: terminal/models/applet/applet.py:317 terminal/models/applet/host.py:36
#: terminal/models/applet/applet.py:319 terminal/models/applet/host.py:36
#: terminal/models/applet/host.py:138
msgid "Hosting"
msgstr "ホスト マシン"
@ -6623,7 +6638,7 @@ msgstr "リモートアドレス"
msgid "Application User"
msgstr "ユーザーの適用"
#: terminal/models/component/terminal.py:166
#: terminal/models/component/terminal.py:176
msgid "Can view terminal config"
msgstr "ターミナル構成を表示できます"
@ -6782,7 +6797,7 @@ msgstr "テスト失敗: アカウントが無効"
msgid "Invalid storage"
msgstr "無効なストレージ"
#: terminal/serializers/applet.py:28
#: terminal/serializers/applet.py:28 terminal/serializers/virtualapp.py:15
msgid "Icon"
msgstr "アイコン"
@ -6846,6 +6861,7 @@ msgid "RDS Remote App Logoff Time Limit"
msgstr "RDS 远程应用注销时间限制"
#: terminal/serializers/applet_host.py:59 terminal/serializers/terminal.py:47
#: terminal/serializers/virtualapp_provider.py:13
msgid "Load status"
msgstr "ロードステータス"
@ -7019,7 +7035,7 @@ msgid "HOST"
msgstr "ホスト"
#: terminal/serializers/storage.py:146 users/models/user.py:828
#: xpack/plugins/cloud/serializers/account_attrs.py:206
#: xpack/plugins/cloud/serializers/account_attrs.py:213
msgid "Private key"
msgstr "ssh秘密鍵"
@ -7593,7 +7609,7 @@ msgid "Not a valid ssh public key"
msgstr "有効なssh公開鍵ではありません"
#: users/forms/profile.py:173 users/models/user.py:831
#: xpack/plugins/cloud/serializers/account_attrs.py:203
#: xpack/plugins/cloud/serializers/account_attrs.py:210
msgid "Public key"
msgstr "公開キー"
@ -8225,43 +8241,55 @@ msgstr "スカイウィング私有雲"
msgid "OpenStack"
msgstr "OpenStack"
#: xpack/plugins/cloud/const.py:28
#: xpack/plugins/cloud/const.py:28 xpack/plugins/cloud/providers/zstack.py:21
msgid "ZStack"
msgstr "ZStack"
#: xpack/plugins/cloud/const.py:29
msgid "Fusion Compute"
msgstr "融合計算"
#: xpack/plugins/cloud/const.py:33
#: xpack/plugins/cloud/const.py:30
msgid "SCP"
msgstr "SCP"
#: xpack/plugins/cloud/const.py:31
msgid "Apsara Stack"
msgstr "Apsara Stack"
#: xpack/plugins/cloud/const.py:36
msgid "Private IP"
msgstr "プライベートIP"
#: xpack/plugins/cloud/const.py:34
#: xpack/plugins/cloud/const.py:37
msgid "Public IP"
msgstr "パブリックIP"
#: xpack/plugins/cloud/const.py:38 xpack/plugins/cloud/models.py:295
#: xpack/plugins/cloud/const.py:41 xpack/plugins/cloud/models.py:295
msgid "Instance name"
msgstr "インスタンス名"
#: xpack/plugins/cloud/const.py:39
#: xpack/plugins/cloud/const.py:42
msgid "Instance name and Partial IP"
msgstr "インスタンス名と部分IP"
#: xpack/plugins/cloud/const.py:44
#: xpack/plugins/cloud/const.py:47
msgid "Succeed"
msgstr "成功"
#: xpack/plugins/cloud/const.py:48
#: xpack/plugins/cloud/const.py:51
msgid "Unsync"
msgstr "同期していません"
#: xpack/plugins/cloud/const.py:49
#: xpack/plugins/cloud/const.py:52
msgid "New Sync"
msgstr "新しい同期"
#: xpack/plugins/cloud/const.py:50
#: xpack/plugins/cloud/const.py:53
msgid "Synced"
msgstr "同期済み"
#: xpack/plugins/cloud/const.py:51
#: xpack/plugins/cloud/const.py:54
msgid "Released"
msgstr "リリース済み"
@ -8607,11 +8635,11 @@ msgstr "TR-Istanbul"
msgid "CN East-Suqian"
msgstr "華東-宿遷"
#: xpack/plugins/cloud/serializers/account.py:64
#: xpack/plugins/cloud/serializers/account.py:68
msgid "Validity display"
msgstr "有効表示"
#: xpack/plugins/cloud/serializers/account.py:65
#: xpack/plugins/cloud/serializers/account.py:69
msgid "Provider display"
msgstr "プロバイダ表示"
@ -8628,50 +8656,50 @@ msgid "Subscription ID"
msgstr "サブスクリプションID"
#: xpack/plugins/cloud/serializers/account_attrs.py:98
#: xpack/plugins/cloud/serializers/account_attrs.py:103
#: xpack/plugins/cloud/serializers/account_attrs.py:119
#: xpack/plugins/cloud/serializers/account_attrs.py:149
#: xpack/plugins/cloud/serializers/account_attrs.py:199
#: xpack/plugins/cloud/serializers/account_attrs.py:102
#: xpack/plugins/cloud/serializers/account_attrs.py:126
#: xpack/plugins/cloud/serializers/account_attrs.py:156
#: xpack/plugins/cloud/serializers/account_attrs.py:206
msgid "API Endpoint"
msgstr "APIエンドポイント"
#: xpack/plugins/cloud/serializers/account_attrs.py:109
#: xpack/plugins/cloud/serializers/account_attrs.py:108
msgid "Auth url"
msgstr "認証アドレス"
#: xpack/plugins/cloud/serializers/account_attrs.py:110
#: xpack/plugins/cloud/serializers/account_attrs.py:109
msgid "eg: http://openstack.example.com:5000/v3"
msgstr "例えば: http://openstack.example.com:5000/v3"
#: xpack/plugins/cloud/serializers/account_attrs.py:113
#: xpack/plugins/cloud/serializers/account_attrs.py:112
msgid "User domain"
msgstr "ユーザードメイン"
#: xpack/plugins/cloud/serializers/account_attrs.py:120
#: xpack/plugins/cloud/serializers/account_attrs.py:127
msgid "Cert File"
msgstr "証明書ファイル"
#: xpack/plugins/cloud/serializers/account_attrs.py:121
#: xpack/plugins/cloud/serializers/account_attrs.py:128
msgid "Key File"
msgstr "キーファイル"
#: xpack/plugins/cloud/serializers/account_attrs.py:137
#: xpack/plugins/cloud/serializers/account_attrs.py:144
msgid "Service account key"
msgstr "サービスアカウントキー"
#: xpack/plugins/cloud/serializers/account_attrs.py:138
#: xpack/plugins/cloud/serializers/account_attrs.py:145
msgid "The file is in JSON format"
msgstr "ファイルはJSON形式です。"
#: xpack/plugins/cloud/serializers/account_attrs.py:156
#: xpack/plugins/cloud/serializers/account_attrs.py:163
msgid "IP address invalid `{}`, {}"
msgstr "IPアドレスが無効: '{}', {}"
#: xpack/plugins/cloud/serializers/account_attrs.py:172
#: xpack/plugins/cloud/serializers/account_attrs.py:179
msgid "Such as: 192.168.1.0/24, 10.0.0.0-10.0.0.255"
msgstr "例192.168.1.0/24、10.0.0.0.0-10.0.0.255"
#: xpack/plugins/cloud/serializers/account_attrs.py:175
#: xpack/plugins/cloud/serializers/account_attrs.py:182
msgid ""
"The port is used to detect the validity of the IP address. When the "
"synchronization task is executed, only the valid IP address will be "
@ -8681,23 +8709,23 @@ msgstr ""
"実行されると、有効な IP アドレスのみが同期されます。 <br>ポートが0の場合、す"
"べてのIPアドレスが有効です。"
#: xpack/plugins/cloud/serializers/account_attrs.py:183
#: xpack/plugins/cloud/serializers/account_attrs.py:190
msgid "Hostname prefix"
msgstr "ホスト名プレフィックス"
#: xpack/plugins/cloud/serializers/account_attrs.py:186
#: xpack/plugins/cloud/serializers/account_attrs.py:193
msgid "IP segment"
msgstr "IP セグメント"
#: xpack/plugins/cloud/serializers/account_attrs.py:190
#: xpack/plugins/cloud/serializers/account_attrs.py:197
msgid "Test port"
msgstr "テストポート"
#: xpack/plugins/cloud/serializers/account_attrs.py:193
#: xpack/plugins/cloud/serializers/account_attrs.py:200
msgid "Test timeout"
msgstr "テストタイムアウト"
#: xpack/plugins/cloud/serializers/account_attrs.py:209
#: xpack/plugins/cloud/serializers/account_attrs.py:216
msgid "Project"
msgstr "project"
@ -8803,9 +8831,3 @@ msgstr "エンタープライズ・フラッグシップ・エディション"
#~ msgid "Binding FeiShu successfully"
#~ msgstr "本を飛ばすのバインドに成功"
#~ msgid "Beian link"
#~ msgstr "公安オンライン申告ジャンプリンク"
#~ msgid "Beian text"
#~ msgstr "公安網登録番号"

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-12-05 10:16+0800\n"
"POT-Creation-Date: 2023-12-08 14:51+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"
@ -48,7 +48,7 @@ msgstr "Access key"
#: 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
#: authentication/models/sso_token.py:14 settings/serializers/feature.py:52
msgid "Token"
msgstr "Token"
@ -98,7 +98,7 @@ msgstr "更新"
#: accounts/const/account.py:33
#: accounts/serializers/automations/change_secret.py:150 audits/const.py:62
#: audits/signal_handlers/activity_log.py:33 common/const/choices.py:19
#: ops/const.py:74 terminal/const.py:78 xpack/plugins/cloud/const.py:43
#: ops/const.py:74 terminal/const.py:79 xpack/plugins/cloud/const.py:46
msgid "Failed"
msgstr "失败"
@ -201,7 +201,7 @@ msgstr "仅创建"
msgid "Email"
msgstr "邮箱"
#: accounts/const/automation.py:104 terminal/const.py:86
#: accounts/const/automation.py:104 terminal/const.py:87
msgid "SFTP"
msgstr "SFTP"
@ -210,7 +210,7 @@ msgstr "SFTP"
msgid "Database"
msgstr "数据库"
#: accounts/const/vault.py:9 settings/serializers/feature.py:41
#: accounts/const/vault.py:9 settings/serializers/feature.py:43
msgid "HCP Vault"
msgstr "HashiCorp Vault"
@ -258,13 +258,14 @@ msgstr "资产"
#: accounts/serializers/account/account.py:220
#: accounts/serializers/account/account.py:268
#: accounts/serializers/account/template.py:25
#: authentication/serializers/connect_token_secret.py:49
#: authentication/serializers/connect_token_secret.py:50
msgid "Su from"
msgstr "切换自"
#: accounts/models/account.py:55 assets/const/protocol.py:169
#: settings/serializers/auth/cas.py:20 settings/serializers/auth/feishu.py:20
#: terminal/models/applet/applet.py:35
#: terminal/models/virtualapp/virtualapp.py:21
msgid "Version"
msgstr "版本"
@ -465,9 +466,11 @@ msgstr "结束日期"
#: accounts/models/automations/change_secret.py:43
#: assets/models/automations/base.py:113 audits/models.py:208
#: audits/serializers.py:54 ops/models/base.py:49 ops/models/job.py:232
#: terminal/models/applet/applet.py:318 terminal/models/applet/host.py:140
#: terminal/models/component/status.py:30 terminal/serializers/applet.py:18
#: terminal/serializers/applet_host.py:124 tickets/models/ticket/general.py:283
#: terminal/models/applet/applet.py:320 terminal/models/applet/host.py:140
#: terminal/models/component/status.py:30
#: terminal/models/virtualapp/virtualapp.py:99
#: terminal/serializers/applet.py:18 terminal/serializers/applet_host.py:124
#: terminal/serializers/virtualapp.py:35 tickets/models/ticket/general.py:283
#: tickets/serializers/super_ticket.py:13
#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:201
#: xpack/plugins/cloud/models.py:257
@ -533,8 +536,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:92 audits/serializers.py:87
#: authentication/serializers/connect_token_secret.py:118
#: audits/models.py:92 audits/serializers.py:84
#: authentication/serializers/connect_token_secret.py:119
#: authentication/templates/authentication/_access_key_modal.html:34
msgid "Action"
msgstr "动作"
@ -551,8 +554,8 @@ msgstr "账号验证"
#: accounts/serializers/account/account.py:440
#: accounts/serializers/account/base.py:17
#: accounts/serializers/automations/change_secret.py:45
#: authentication/serializers/connect_token_secret.py:41
#: authentication/serializers/connect_token_secret.py:50
#: authentication/serializers/connect_token_secret.py:42
#: authentication/serializers/connect_token_secret.py:51
#: terminal/serializers/storage.py:140
msgid "Secret type"
msgstr "密文类型"
@ -585,7 +588,8 @@ msgstr "密码规则"
#: assets/models/platform.py:89 assets/serializers/asset/common.py:146
#: assets/serializers/platform.py:118 assets/serializers/platform.py:235
#: authentication/backends/passkey/models.py:10
#: authentication/serializers/connect_token_secret.py:112 labels/models.py:11
#: authentication/serializers/connect_token_secret.py:113
#: authentication/serializers/connect_token_secret.py:168 labels/models.py:11
#: ops/mixin.py:21 ops/models/adhoc.py:20 ops/models/celery.py:15
#: ops/models/celery.py:57 ops/models/job.py:137 ops/models/playbook.py:29
#: ops/serializers/job.py:19 orgs/models.py:82
@ -594,7 +598,9 @@ msgstr "密码规则"
#: terminal/models/applet/applet.py:33 terminal/models/component/endpoint.py:12
#: terminal/models/component/endpoint.py:94
#: terminal/models/component/storage.py:26 terminal/models/component/task.py:13
#: terminal/models/component/terminal.py:84 tickets/api/ticket.py:87
#: terminal/models/component/terminal.py:84
#: terminal/models/virtualapp/provider.py:10
#: terminal/models/virtualapp/virtualapp.py:19 tickets/api/ticket.py:87
#: users/forms/profile.py:33 users/models/group.py:13
#: users/models/preference.py:11 users/models/user.py:798
#: xpack/plugins/cloud/models.py:32 xpack/plugins/cloud/models.py:273
@ -609,9 +615,10 @@ msgstr "特权账号"
#: accounts/models/base.py:70 assets/models/asset/common.py:166
#: assets/models/automations/base.py:21 assets/models/cmd_filter.py:39
#: assets/models/label.py:22
#: authentication/serializers/connect_token_secret.py:116
#: authentication/serializers/connect_token_secret.py:117
#: terminal/models/applet/applet.py:40
#: terminal/models/component/endpoint.py:105 users/serializers/user.py:167
#: terminal/models/component/endpoint.py:105
#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:167
msgid "Is active"
msgstr "激活"
@ -736,8 +743,8 @@ msgstr "类别"
#: assets/models/cmd_filter.py:74 assets/models/platform.py:91
#: assets/serializers/asset/common.py:123 assets/serializers/platform.py:120
#: assets/serializers/platform.py:139 audits/serializers.py:53
#: audits/serializers.py:173
#: authentication/serializers/connect_token_secret.py:125 ops/models/job.py:149
#: audits/serializers.py:170
#: authentication/serializers/connect_token_secret.py:126 ops/models/job.py:149
#: 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
@ -793,7 +800,7 @@ msgid "Account has exist"
msgstr "账号已存在"
#: accounts/serializers/account/account.py:441
#: authentication/serializers/connect_token_secret.py:158
#: authentication/serializers/connect_token_secret.py:159
#: authentication/templates/authentication/_access_key_modal.html:30
#: perms/models/perm_node.py:21 users/serializers/group.py:32
msgid "ID"
@ -802,7 +809,7 @@ msgstr "ID"
#: accounts/serializers/account/account.py:451 acls/serializers/base.py:116
#: 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:174 authentication/models/connection_token.py:32
#: audits/serializers.py:171 authentication/models/connection_token.py:32
#: authentication/models/sso_token.py:16
#: notifications/models/notification.py:12
#: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:63
@ -907,10 +914,11 @@ msgstr "关联平台,可配置推送参数,如果不关联,将使用默认
#: assets/models/group.py:20 common/db/models.py:36 ops/models/adhoc.py:26
#: ops/models/job.py:157 ops/models/playbook.py:32 rbac/models/role.py:37
#: settings/models.py:37 terminal/models/applet/applet.py:45
#: terminal/models/applet/applet.py:319 terminal/models/applet/host.py:143
#: terminal/models/applet/applet.py:321 terminal/models/applet/host.py:143
#: terminal/models/component/endpoint.py:24
#: terminal/models/component/endpoint.py:104
#: terminal/models/session/session.py:46 tickets/models/comment.py:32
#: terminal/models/session/session.py:46
#: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32
#: tickets/models/ticket/general.py:297 users/models/user.py:834
#: xpack/plugins/cloud/models.py:39 xpack/plugins/cloud/models.py:109
msgid "Comment"
@ -927,9 +935,7 @@ msgstr ""
"CACHE_LOGIN_PASSWORD_ENABLED=true重启服务才能开启"
#: accounts/serializers/automations/base.py:23
#: assets/models/asset/common.py:165 assets/models/automations/base.py:18
#: assets/models/cmd_filter.py:32 assets/serializers/automations/base.py:21
#: perms/models/asset_permission.py:72
#: assets/serializers/automations/base.py:21
msgid "Nodes"
msgstr "节点"
@ -963,7 +969,7 @@ msgstr "自动化任务执行历史"
#: accounts/serializers/automations/change_secret.py:149 audits/const.py:61
#: 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
#: terminal/const.py:78 terminal/models/session/sharing.py:121
#: tickets/views/approve.py:117
msgid "Success"
msgstr "成功"
@ -1077,7 +1083,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:90
#: authentication/serializers/connect_token_secret.py:91
msgid "Reviewers"
msgstr "审批人"
@ -1100,7 +1106,7 @@ msgid "Accounts"
msgstr "账号管理"
#: acls/models/command_acl.py:16 assets/models/cmd_filter.py:60
#: ops/serializers/job.py:54 terminal/const.py:85
#: ops/serializers/job.py:54 terminal/const.py:86
#: terminal/models/session/session.py:42 terminal/serializers/command.py:18
#: terminal/templates/terminal/_msg_command_alert.html:12
#: terminal/templates/terminal/_msg_command_execute_alert.html:10
@ -1114,7 +1120,7 @@ msgid "Regex"
msgstr "正则表达式"
#: acls/models/command_acl.py:26 assets/models/cmd_filter.py:79
#: settings/serializers/feature.py:17 xpack/plugins/license/models.py:30
#: settings/serializers/feature.py:19 xpack/plugins/license/models.py:30
msgid "Content"
msgstr "内容"
@ -1128,7 +1134,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:87
#: authentication/serializers/connect_token_secret.py:88
#: terminal/templates/terminal/_msg_command_warning.html:14
msgid "Command group"
msgstr "命令组"
@ -1282,7 +1288,7 @@ msgid "Applications"
msgstr "应用管理"
#: applications/models.py:16 xpack/plugins/cloud/models.py:37
#: xpack/plugins/cloud/serializers/account.py:63
#: xpack/plugins/cloud/serializers/account.py:67
msgid "Attrs"
msgstr "属性"
@ -1350,7 +1356,7 @@ msgid "Authentication failed"
msgstr "认证失败"
#: assets/automations/ping_gateway/manager.py:60
#: assets/automations/ping_gateway/manager.py:86 terminal/const.py:101
#: assets/automations/ping_gateway/manager.py:86 terminal/const.py:102
msgid "Connect failed"
msgstr "连接失败"
@ -1395,7 +1401,7 @@ msgstr "脚本"
#: assets/const/category.py:10 assets/models/asset/host.py:8
#: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:71
#: settings/serializers/feature.py:47 terminal/models/component/endpoint.py:13
#: settings/serializers/feature.py:49 terminal/models/component/endpoint.py:13
#: terminal/serializers/applet.py:17
#: xpack/plugins/cloud/serializers/account_attrs.py:72
msgid "Host"
@ -1634,9 +1640,11 @@ msgid "Username same with user"
msgstr "用户名与用户相同"
#: 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
#: authentication/serializers/connect_token_secret.py:114
#: terminal/models/applet/applet.py:42
#: terminal/models/virtualapp/virtualapp.py:24
#: terminal/serializers/session.py:19 terminal/serializers/session.py:45
#: terminal/serializers/storage.py:71
msgid "Protocol"
msgstr "协议"
@ -1697,17 +1705,24 @@ msgstr "地址"
#: assets/models/asset/common.py:161 assets/models/platform.py:120
#: authentication/backends/passkey/models.py:12
#: authentication/serializers/connect_token_secret.py:117
#: authentication/serializers/connect_token_secret.py:118
#: perms/serializers/user_permission.py:24 xpack/plugins/cloud/models.py:321
msgid "Platform"
msgstr "系统平台"
#: assets/models/asset/common.py:163 assets/models/domain.py:22
#: authentication/serializers/connect_token_secret.py:135
#: authentication/serializers/connect_token_secret.py:136
#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:323
msgid "Domain"
msgstr "网域"
#: assets/models/asset/common.py:165 assets/models/automations/base.py:18
#: assets/models/cmd_filter.py:32 assets/models/node.py:553
#: perms/models/asset_permission.py:72 perms/serializers/permission.py:36
#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:322
msgid "Node"
msgstr "节点"
#: assets/models/asset/common.py:167 assets/serializers/asset/common.py:380
#: assets/serializers/asset/host.py:11
msgid "Gathered info"
@ -1753,7 +1768,7 @@ msgstr "客户端密钥"
msgid "Allow invalid cert"
msgstr "忽略证书校验"
#: assets/models/asset/gpt.py:8
#: assets/models/asset/gpt.py:8 settings/serializers/feature.py:73
msgid "Proxy"
msgstr "代理"
@ -1846,7 +1861,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:124
#: authentication/serializers/connect_token_secret.py:125
#: common/serializers/common.py:86 labels/models.py:12 settings/models.py:33
#: users/models/preference.py:13
msgid "Value"
@ -1855,7 +1870,7 @@ msgstr "值"
#: assets/models/label.py:40 assets/serializers/cagegory.py:10
#: assets/serializers/cagegory.py:17 assets/serializers/cagegory.py:23
#: assets/serializers/platform.py:119
#: authentication/serializers/connect_token_secret.py:123
#: authentication/serializers/connect_token_secret.py:124
#: common/serializers/common.py:85 labels/models.py:17
#: perms/serializers/user_permission.py:27 settings/serializers/msg.py:83
msgid "Label"
@ -1865,7 +1880,7 @@ msgstr "标签"
msgid "New node"
msgstr "新节点"
#: assets/models/node.py:467 audits/backends/db.py:55 audits/backends/db.py:56
#: assets/models/node.py:467 audits/backends/db.py:65 audits/backends/db.py:66
msgid "empty"
msgstr "空"
@ -1881,11 +1896,6 @@ msgstr "全称"
msgid "Parent key"
msgstr "ssh私钥"
#: assets/models/node.py:553 perms/serializers/permission.py:36
#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:322
msgid "Node"
msgstr "节点"
#: assets/models/node.py:556
msgid "Can match node"
msgstr "可以匹配节点"
@ -2020,8 +2030,8 @@ msgid ""
msgstr "资产中批量更新平台,不符合平台类型跳过的资产"
#: assets/serializers/asset/common.py:124 assets/serializers/platform.py:141
#: authentication/serializers/connect_token_secret.py:29
#: authentication/serializers/connect_token_secret.py:74
#: authentication/serializers/connect_token_secret.py:30
#: authentication/serializers/connect_token_secret.py:75
#: perms/models/asset_permission.py:76 perms/serializers/permission.py:41
#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:324
#: xpack/plugins/cloud/serializers/task.py:31
@ -2112,7 +2122,7 @@ msgid "Disk total"
msgstr "硬盘大小"
#: assets/serializers/asset/info/gathered.py:16
#: authentication/serializers/connect_token_secret.py:114
#: authentication/serializers/connect_token_secret.py:115
msgid "OS"
msgstr "操作系统"
@ -2270,11 +2280,11 @@ msgstr "没有匹配到资产,结束任务"
msgid "Audits"
msgstr "日志审计"
#: audits/backends/db.py:15
#: audits/backends/db.py:16
msgid "The text content is too long. Use Elasticsearch to store operation logs"
msgstr "文字内容太长。请使用 Elasticsearch 存储操作日志"
#: audits/backends/db.py:81
#: audits/backends/db.py:91
msgid "Tips"
msgstr "提示"
@ -2350,8 +2360,9 @@ msgid "Close"
msgstr "关闭"
#: audits/const.py:43 settings/serializers/terminal.py:6
#: terminal/models/applet/host.py:26 terminal/models/component/terminal.py:164
#: terminal/serializers/session.py:52 terminal/serializers/session.py:66
#: terminal/models/applet/host.py:26 terminal/models/component/terminal.py:174
#: terminal/models/virtualapp/provider.py:14 terminal/serializers/session.py:52
#: terminal/serializers/session.py:66
msgid "Terminal"
msgstr "终端"
@ -2418,12 +2429,12 @@ msgstr "会话"
msgid "File transfer log"
msgstr "文件管理"
#: audits/models.py:94 audits/serializers.py:89
#: audits/models.py:94 audits/serializers.py:86
msgid "Resource Type"
msgstr "资源类型"
#: audits/models.py:95 audits/models.py:98 audits/models.py:144
#: audits/serializers.py:88 labels/serializers.py:34
#: audits/serializers.py:85 labels/serializers.py:34
msgid "Resource"
msgstr "资源"
@ -2477,7 +2488,7 @@ msgid "Date login"
msgstr "登录日期"
#: audits/models.py:212 audits/models.py:266 audits/serializers.py:70
#: audits/serializers.py:187
#: audits/serializers.py:184
msgid "Authentication backend"
msgstr "认证方式"
@ -2507,12 +2518,12 @@ msgstr "创建者"
msgid "Reason display"
msgstr "原因描述"
#: audits/serializers.py:137
#: audits/serializers.py:134
#, python-format
msgid "User %s %s this resource"
msgstr "用户 %s %s 了当前资源"
#: audits/serializers.py:175 authentication/models/connection_token.py:47
#: audits/serializers.py:172 authentication/models/connection_token.py:47
#: authentication/models/temp_token.py:13 perms/models/asset_permission.py:80
#: tickets/models/ticket/apply_application.py:31
#: tickets/models/ticket/apply_asset.py:20 users/models/user.py:839
@ -2597,6 +2608,11 @@ msgstr "上传 FTP 文件到外部存储"
msgid "Access keys can be created at most 10"
msgstr "最多可以创建10个访问密钥"
#: authentication/api/common.py:34 settings/serializers/auth/sms.py:117
#, python-format
msgid "The value in the parameter must contain %s"
msgstr "参数中的值必须包含 %s"
#: authentication/api/confirm.py:50
msgid "This action require verify your MFA"
msgstr "该操作需要验证您的 MFA, 请先开启并配置"
@ -2853,11 +2869,15 @@ msgstr "钉钉没有绑定"
msgid "FeiShu is not bound"
msgstr "没有绑定飞书"
#: authentication/errors/mfa.py:38
#: authentication/errors/mfa.py:38 authentication/views/slack.py:127
msgid "Slack is not bound"
msgstr "Slack没有绑定"
#: authentication/errors/mfa.py:43
msgid "Your password is invalid"
msgstr "您的密码无效"
#: authentication/errors/mfa.py:43
#: authentication/errors/mfa.py:48
#, python-format
msgid "Please wait for %s seconds before retry"
msgstr "请在 %s 秒后重试"
@ -3061,11 +3081,11 @@ msgstr "没有用户或用户失效"
msgid "No asset or inactive asset"
msgstr "没有资产或资产未激活"
#: authentication/models/connection_token.py:265
#: authentication/models/connection_token.py:274
msgid "Can view super connection token secret"
msgstr "可以查看超级连接令牌密文"
#: authentication/models/connection_token.py:267
#: authentication/models/connection_token.py:276
msgid "Super connection token"
msgstr "超级连接令牌"
@ -3093,19 +3113,19 @@ msgstr "异地登录提醒"
msgid "binding reminder"
msgstr "绑定提醒"
#: authentication/serializers/connect_token_secret.py:115
#: authentication/serializers/connect_token_secret.py:116
msgid "Is builtin"
msgstr "内置的"
#: authentication/serializers/connect_token_secret.py:119
#: authentication/serializers/connect_token_secret.py:120
msgid "Options"
msgstr "选项"
#: authentication/serializers/connect_token_secret.py:126
#: authentication/serializers/connect_token_secret.py:127
msgid "Component"
msgstr "组件"
#: authentication/serializers/connect_token_secret.py:137
#: authentication/serializers/connect_token_secret.py:138
msgid "Expired now"
msgstr "立刻过期"
@ -3373,7 +3393,7 @@ msgid "Do you want to retry ?"
msgstr "是否重试 "
#: authentication/utils.py:23 common/utils/ip/geoip/utils.py:24
#: xpack/plugins/cloud/const.py:29
#: xpack/plugins/cloud/const.py:32
msgid "LAN"
msgstr "局域网"
@ -3491,28 +3511,16 @@ msgid "Logout success, return login page"
msgstr "退出登录成功,返回到登录页面"
#: authentication/views/slack.py:35 authentication/views/slack.py:126
#, fuzzy
#| msgid "DingTalk Error"
msgid "Slack Error"
msgstr "钉钉错误"
msgstr "Slack错误"
#: authentication/views/slack.py:63
#, fuzzy
#| msgid "DingTalk is already bound"
msgid "Slack is already bound"
msgstr "钉钉已经绑定"
#: authentication/views/slack.py:127
#, fuzzy
#| msgid "DingTalk is not bound"
msgid "Slack is not bound"
msgstr "钉钉没有绑定"
msgstr "Slack已经绑定"
#: authentication/views/slack.py:128
#, fuzzy
#| msgid "Failed to get user from DingTalk"
msgid "Failed to get user from Slack"
msgstr "从钉钉获取用户失败"
msgstr "从Slack获取用户失败"
#: authentication/views/wecom.py:40
msgid "WeCom Error, Please contact your system administrator"
@ -3550,7 +3558,7 @@ msgstr "定时触发"
msgid "Ready"
msgstr "准备"
#: common/const/choices.py:16 terminal/const.py:76 tickets/const.py:29
#: common/const/choices.py:16 terminal/const.py:77 tickets/const.py:29
#: tickets/const.py:39
msgid "Pending"
msgstr "待定的"
@ -3627,7 +3635,7 @@ msgstr "无效的ID应为列表"
#: common/serializers/fields.py:132 tickets/serializers/ticket/common.py:58
#: xpack/plugins/cloud/serializers/account_attrs.py:56
#: xpack/plugins/cloud/serializers/account_attrs.py:79
#: xpack/plugins/cloud/serializers/account_attrs.py:143
#: xpack/plugins/cloud/serializers/account_attrs.py:150
msgid "This field is required."
msgstr "该字段是必填项。"
@ -4640,6 +4648,7 @@ msgid "Users amount"
msgstr "用户数量"
#: rbac/serializers/role.py:28 terminal/models/applet/applet.py:34
#: terminal/models/virtualapp/virtualapp.py:20
msgid "Display name"
msgstr "显示名称"
@ -4700,7 +4709,7 @@ msgid "My assets"
msgstr "我的资产"
#: rbac/tree.py:58 terminal/models/applet/applet.py:52
#: terminal/models/applet/applet.py:315 terminal/models/applet/host.py:30
#: terminal/models/applet/applet.py:317 terminal/models/applet/host.py:30
#: terminal/serializers/applet.py:15
msgid "Applet"
msgstr "远程应用"
@ -4709,7 +4718,7 @@ msgstr "远程应用"
msgid "Ticket comment"
msgstr "工单评论"
#: rbac/tree.py:130 settings/serializers/feature.py:58
#: rbac/tree.py:130 settings/serializers/feature.py:98
#: tickets/models/ticket/general.py:307
msgid "Ticket"
msgstr "工单管理"
@ -4789,31 +4798,31 @@ msgstr "可以更改 vault 设置"
msgid "Can change system msg sub setting"
msgstr "消息订阅设置"
#: settings/models.py:167
#: settings/models.py:168
msgid "Can change sms setting"
msgstr "短信设置"
#: settings/models.py:168
#: settings/models.py:169
msgid "Can change security setting"
msgstr "安全设置"
#: settings/models.py:169
#: settings/models.py:170
msgid "Can change clean setting"
msgstr "定期清理"
#: settings/models.py:170
#: settings/models.py:171
msgid "Can change interface setting"
msgstr "界面设置"
#: settings/models.py:171
#: settings/models.py:172
msgid "Can change license setting"
msgstr "许可证设置"
#: settings/models.py:172
#: settings/models.py:173
msgid "Can change terminal setting"
msgstr "终端设置"
#: settings/models.py:173
#: settings/models.py:174
msgid "Can change other setting"
msgstr "其它设置"
@ -5256,11 +5265,6 @@ msgstr "URL"
msgid "Request method"
msgstr "请求方式"
#: settings/serializers/auth/sms.py:117
#, python-format
msgid "The value in the parameter must contain %s"
msgstr "参数中的值必须包含 %s"
#: settings/serializers/auth/sso.py:16
msgid "Enable SSO auth"
msgstr "启用 SSO 令牌认证"
@ -5274,7 +5278,7 @@ msgid "SSO auth key TTL"
msgstr "令牌有效期"
#: settings/serializers/auth/sso.py:20
#: xpack/plugins/cloud/serializers/account_attrs.py:193
#: xpack/plugins/cloud/serializers/account_attrs.py:200
msgid "Unit: second"
msgstr "单位: 秒"
@ -5369,27 +5373,27 @@ msgid ""
msgstr ""
"会话、录像,命令记录超过该时长将会被清除 (影响数据库存储OSS 等不受影响)"
#: settings/serializers/feature.py:16
#: settings/serializers/feature.py:18
msgid "Subject"
msgstr "主题"
#: settings/serializers/feature.py:20
#: settings/serializers/feature.py:22
msgid "More url"
msgstr "更多信息 URL"
#: settings/serializers/feature.py:34 settings/serializers/feature.py:37
#: settings/serializers/feature.py:36 settings/serializers/feature.py:39
msgid "Announcement"
msgstr "公告"
#: settings/serializers/feature.py:36
#: settings/serializers/feature.py:38
msgid "Enable announcement"
msgstr "启用公告"
#: settings/serializers/feature.py:44
#: settings/serializers/feature.py:46 settings/serializers/feature.py:64
msgid "Enable Vault"
msgstr "启用 Vault"
#: settings/serializers/feature.py:53
#: settings/serializers/feature.py:55
msgid "Mount Point"
msgstr "挂在点"
@ -5397,39 +5401,39 @@ msgstr "挂在点"
msgid "Enable tickets"
msgstr "启用工单"
#: settings/serializers/feature.py:63
#: settings/serializers/feature.py:103
msgid "Ticket authorize default time"
msgstr "默认工单授权时间"
#: settings/serializers/feature.py:66
#: settings/serializers/feature.py:106
msgid "day"
msgstr "天"
#: settings/serializers/feature.py:66
#: settings/serializers/feature.py:106
msgid "hour"
msgstr "时"
#: settings/serializers/feature.py:67
#: settings/serializers/feature.py:107
msgid "Ticket authorize default time unit"
msgstr "默认工单授权时间单位"
#: settings/serializers/feature.py:72
#: settings/serializers/feature.py:112
msgid "Feature"
msgstr "功能"
#: settings/serializers/feature.py:75
#: settings/serializers/feature.py:115
msgid "Operation center"
msgstr "作业中心"
#: settings/serializers/feature.py:76
#: settings/serializers/feature.py:116
msgid "Allow user run batch command or not using ansible"
msgstr "是否允许用户使用 ansible 执行批量命令"
#: settings/serializers/feature.py:80
#: settings/serializers/feature.py:120
msgid "Operation center command blacklist"
msgstr "作业中心命令黑名单"
#: settings/serializers/feature.py:81
#: settings/serializers/feature.py:121
msgid "Commands that are not allowed execute."
msgstr "不允许执行的命令"
@ -5812,7 +5816,7 @@ msgstr "多个用户,使用 , 分割"
msgid "[%s] %s"
msgstr "[%s] %s"
#: settings/serializers/terminal.py:9
#: settings/serializers/terminal.py:9 terminal/models/virtualapp/provider.py:11
msgid "Hostname"
msgstr "主机名"
@ -6174,6 +6178,8 @@ msgid "Offline video player"
msgstr "离线录像播放器"
#: terminal/api/applet/applet.py:48 terminal/api/applet/applet.py:51
#: terminal/api/virtualapp/virtualapp.py:43
#: terminal/api/virtualapp/virtualapp.py:46
msgid "Invalid zip file"
msgstr "无效的 zip 文件"
@ -6299,7 +6305,7 @@ msgstr "严重"
msgid "High"
msgstr "较高"
#: terminal/const.py:47 terminal/const.py:83
#: terminal/const.py:47 terminal/const.py:84
#: users/templates/users/reset_password.html:50
msgid "Normal"
msgstr "正常"
@ -6308,43 +6314,43 @@ msgstr "正常"
msgid "Offline"
msgstr "离线"
#: terminal/const.py:79
#: terminal/const.py:80
msgid "Mismatch"
msgstr "未匹配"
#: terminal/const.py:84
#: terminal/const.py:85
msgid "Tunnel"
msgstr "隧道"
#: terminal/const.py:90
#: terminal/const.py:91
msgid "Read only"
msgstr "只读"
#: terminal/const.py:91
#: terminal/const.py:92
msgid "Writable"
msgstr "读写"
#: terminal/const.py:95
#: terminal/const.py:96
msgid "Kill session"
msgstr "终断会话"
#: terminal/const.py:96
#: terminal/const.py:97
msgid "Lock session"
msgstr "锁定会话"
#: terminal/const.py:97
#: terminal/const.py:98
msgid "Unlock session"
msgstr "解锁会话"
#: terminal/const.py:102
#: terminal/const.py:103
msgid "Replay create failed"
msgstr "录像创建失败"
#: terminal/const.py:103
#: terminal/const.py:104
msgid "Replay upload failed"
msgstr "录像上传失败"
#: terminal/const.py:104
#: terminal/const.py:105
msgid "Replay convert failed"
msgstr "录像转码失败"
@ -6365,6 +6371,7 @@ msgid "Enterprise"
msgstr "企业版"
#: terminal/models/applet/applet.py:36
#: terminal/models/virtualapp/virtualapp.py:22
msgid "Author"
msgstr "作者"
@ -6377,6 +6384,7 @@ msgid "Can concurrent"
msgstr "可以并发"
#: terminal/models/applet/applet.py:44
#: terminal/models/virtualapp/virtualapp.py:29
msgid "Tags"
msgstr "标签"
@ -6385,6 +6393,7 @@ msgid "Hosts"
msgstr "主机"
#: terminal/models/applet/applet.py:93
#: terminal/models/virtualapp/virtualapp.py:66
msgid "Applet pkg not valid, Missing file {}"
msgstr "Applet pkg 无效,缺少文件 {}"
@ -6400,7 +6409,7 @@ msgstr "只支持自定义平台"
msgid "Missing type in platform.yml"
msgstr "在 platform.yml 中缺少类型"
#: terminal/models/applet/applet.py:317 terminal/models/applet/host.py:36
#: terminal/models/applet/applet.py:319 terminal/models/applet/host.py:36
#: terminal/models/applet/host.py:138
msgid "Hosting"
msgstr "宿主机"
@ -6535,7 +6544,7 @@ msgstr "远端地址"
msgid "Application User"
msgstr "应用用户"
#: terminal/models/component/terminal.py:166
#: terminal/models/component/terminal.py:176
msgid "Can view terminal config"
msgstr "可以查看终端配置"
@ -6694,7 +6703,7 @@ msgstr "测试失败: 账号无效"
msgid "Invalid storage"
msgstr "无效的存储"
#: terminal/serializers/applet.py:28
#: terminal/serializers/applet.py:28 terminal/serializers/virtualapp.py:15
msgid "Icon"
msgstr "图标"
@ -6756,6 +6765,7 @@ msgid "RDS Remote App Logoff Time Limit"
msgstr "RDS 远程应用注销时间限制"
#: terminal/serializers/applet_host.py:59 terminal/serializers/terminal.py:47
#: terminal/serializers/virtualapp_provider.py:13
msgid "Load status"
msgstr "负载状态"
@ -6924,7 +6934,7 @@ msgid "HOST"
msgstr "主机"
#: terminal/serializers/storage.py:146 users/models/user.py:828
#: xpack/plugins/cloud/serializers/account_attrs.py:206
#: xpack/plugins/cloud/serializers/account_attrs.py:213
msgid "Private key"
msgstr "ssh私钥"
@ -7492,7 +7502,7 @@ msgid "Not a valid ssh public key"
msgstr "SSH密钥不合法"
#: users/forms/profile.py:173 users/models/user.py:831
#: xpack/plugins/cloud/serializers/account_attrs.py:203
#: xpack/plugins/cloud/serializers/account_attrs.py:210
msgid "Public key"
msgstr "SSH公钥"
@ -8107,43 +8117,55 @@ msgstr "天翼私有云"
msgid "OpenStack"
msgstr "OpenStack"
#: xpack/plugins/cloud/const.py:28
#: xpack/plugins/cloud/const.py:28 xpack/plugins/cloud/providers/zstack.py:21
msgid "ZStack"
msgstr "ZStack"
#: xpack/plugins/cloud/const.py:29
msgid "Fusion Compute"
msgstr "融合计算"
#: xpack/plugins/cloud/const.py:33
#: xpack/plugins/cloud/const.py:30
msgid "SCP"
msgstr "深信服SCP"
#: xpack/plugins/cloud/const.py:31
msgid "Apsara Stack"
msgstr "阿里云专有云"
#: xpack/plugins/cloud/const.py:36
msgid "Private IP"
msgstr "私有IP"
#: xpack/plugins/cloud/const.py:34
#: xpack/plugins/cloud/const.py:37
msgid "Public IP"
msgstr "公网IP"
#: xpack/plugins/cloud/const.py:38 xpack/plugins/cloud/models.py:295
#: xpack/plugins/cloud/const.py:41 xpack/plugins/cloud/models.py:295
msgid "Instance name"
msgstr "实例名称"
#: xpack/plugins/cloud/const.py:39
#: xpack/plugins/cloud/const.py:42
msgid "Instance name and Partial IP"
msgstr "实例名称和部分IP"
#: xpack/plugins/cloud/const.py:44
#: xpack/plugins/cloud/const.py:47
msgid "Succeed"
msgstr "成功"
#: xpack/plugins/cloud/const.py:48
#: xpack/plugins/cloud/const.py:51
msgid "Unsync"
msgstr "未同步"
#: xpack/plugins/cloud/const.py:49
#: xpack/plugins/cloud/const.py:52
msgid "New Sync"
msgstr "新同步"
#: xpack/plugins/cloud/const.py:50
#: xpack/plugins/cloud/const.py:53
msgid "Synced"
msgstr "已同步"
#: xpack/plugins/cloud/const.py:51
#: xpack/plugins/cloud/const.py:54
msgid "Released"
msgstr "已释放"
@ -8489,11 +8511,11 @@ msgstr "TR-Istanbul"
msgid "CN East-Suqian"
msgstr "华东-宿迁"
#: xpack/plugins/cloud/serializers/account.py:64
#: xpack/plugins/cloud/serializers/account.py:68
msgid "Validity display"
msgstr "有效性显示"
#: xpack/plugins/cloud/serializers/account.py:65
#: xpack/plugins/cloud/serializers/account.py:69
msgid "Provider display"
msgstr "服务商显示"
@ -8510,50 +8532,50 @@ msgid "Subscription ID"
msgstr "订阅 ID"
#: xpack/plugins/cloud/serializers/account_attrs.py:98
#: xpack/plugins/cloud/serializers/account_attrs.py:103
#: xpack/plugins/cloud/serializers/account_attrs.py:119
#: xpack/plugins/cloud/serializers/account_attrs.py:149
#: xpack/plugins/cloud/serializers/account_attrs.py:199
#: xpack/plugins/cloud/serializers/account_attrs.py:102
#: xpack/plugins/cloud/serializers/account_attrs.py:126
#: xpack/plugins/cloud/serializers/account_attrs.py:156
#: xpack/plugins/cloud/serializers/account_attrs.py:206
msgid "API Endpoint"
msgstr "API 端点"
#: xpack/plugins/cloud/serializers/account_attrs.py:109
#: xpack/plugins/cloud/serializers/account_attrs.py:108
msgid "Auth url"
msgstr "认证地址"
#: xpack/plugins/cloud/serializers/account_attrs.py:110
#: xpack/plugins/cloud/serializers/account_attrs.py:109
msgid "eg: http://openstack.example.com:5000/v3"
msgstr "如: http://openstack.example.com:5000/v3"
#: xpack/plugins/cloud/serializers/account_attrs.py:113
#: xpack/plugins/cloud/serializers/account_attrs.py:112
msgid "User domain"
msgstr "用户域"
#: xpack/plugins/cloud/serializers/account_attrs.py:120
#: xpack/plugins/cloud/serializers/account_attrs.py:127
msgid "Cert File"
msgstr "证书文件"
#: xpack/plugins/cloud/serializers/account_attrs.py:121
#: xpack/plugins/cloud/serializers/account_attrs.py:128
msgid "Key File"
msgstr "密钥文件"
#: xpack/plugins/cloud/serializers/account_attrs.py:137
#: xpack/plugins/cloud/serializers/account_attrs.py:144
msgid "Service account key"
msgstr "服务账号密钥"
#: xpack/plugins/cloud/serializers/account_attrs.py:138
#: xpack/plugins/cloud/serializers/account_attrs.py:145
msgid "The file is in JSON format"
msgstr "JSON 格式的文件"
#: xpack/plugins/cloud/serializers/account_attrs.py:156
#: xpack/plugins/cloud/serializers/account_attrs.py:163
msgid "IP address invalid `{}`, {}"
msgstr "IP 地址无效: `{}`, {}"
#: xpack/plugins/cloud/serializers/account_attrs.py:172
#: xpack/plugins/cloud/serializers/account_attrs.py:179
msgid "Such as: 192.168.1.0/24, 10.0.0.0-10.0.0.255"
msgstr "例: 192.168.1.0/24,10.0.0.0-10.0.0.255"
#: xpack/plugins/cloud/serializers/account_attrs.py:175
#: xpack/plugins/cloud/serializers/account_attrs.py:182
msgid ""
"The port is used to detect the validity of the IP address. When the "
"synchronization task is executed, only the valid IP address will be "
@ -8562,23 +8584,23 @@ msgstr ""
"端口用来检测 IP 地址的有效性,在同步任务执行时,只会同步有效的 IP 地址。 <br>"
"如果端口为 0则表示所有 IP 地址均有效。"
#: xpack/plugins/cloud/serializers/account_attrs.py:183
#: xpack/plugins/cloud/serializers/account_attrs.py:190
msgid "Hostname prefix"
msgstr "主机名前缀"
#: xpack/plugins/cloud/serializers/account_attrs.py:186
#: xpack/plugins/cloud/serializers/account_attrs.py:193
msgid "IP segment"
msgstr "IP 网段"
#: xpack/plugins/cloud/serializers/account_attrs.py:190
#: xpack/plugins/cloud/serializers/account_attrs.py:197
msgid "Test port"
msgstr "测试端口"
#: xpack/plugins/cloud/serializers/account_attrs.py:193
#: xpack/plugins/cloud/serializers/account_attrs.py:200
msgid "Test timeout"
msgstr "测试超时时间"
#: xpack/plugins/cloud/serializers/account_attrs.py:209
#: xpack/plugins/cloud/serializers/account_attrs.py:216
msgid "Project"
msgstr "project"
@ -8682,9 +8704,3 @@ msgstr "企业旗舰版"
#~ msgid "Binding FeiShu successfully"
#~ msgstr "绑定 飞书 成功"
#~ msgid "Beian link"
#~ msgstr "公安联网备案跳转链接"
#~ msgid "Beian text"
#~ msgstr "公安联网备案号"