From 097a6c5c5f0e6104aa4f814d20e51311e9be4619 Mon Sep 17 00:00:00 2001 From: ibuler Date: Mon, 27 May 2024 11:07:36 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BF=AE=E6=94=B9=20label=20=E4=B8=BA?= =?UTF-8?q?=20tag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/common/serializers/mixin.py | 177 +- apps/i18n/core/en/LC_MESSAGES/django.po | 2 +- apps/i18n/core/ja/LC_MESSAGES/django.po | 2 +- apps/i18n/core/zh/LC_MESSAGES/django.po | 2 +- apps/i18n/lina/en.json | 2616 +++++++++++------------ apps/labels/migrations/0001_initial.py | 9 +- apps/labels/models.py | 25 +- 7 files changed, 1436 insertions(+), 1397 deletions(-) diff --git a/apps/common/serializers/mixin.py b/apps/common/serializers/mixin.py index a240e03d1..d21fbf61a 100644 --- a/apps/common/serializers/mixin.py +++ b/apps/common/serializers/mixin.py @@ -16,22 +16,31 @@ from rest_framework.settings import api_settings from rest_framework.utils import html from common.db.fields import EncryptMixin -from common.serializers.fields import EncryptedField, LabeledChoiceField, ObjectRelatedField, LabelRelatedField +from common.serializers.fields import ( + EncryptedField, + LabeledChoiceField, + ObjectRelatedField, + LabelRelatedField, +) __all__ = [ - 'BulkSerializerMixin', 'BulkListSerializerMixin', - 'CommonSerializerMixin', 'CommonBulkSerializerMixin', - 'SecretReadableMixin', 'CommonModelSerializer', - 'CommonBulkModelSerializer', 'ResourceLabelsMixin', + "BulkSerializerMixin", + "BulkListSerializerMixin", + "CommonSerializerMixin", + "CommonBulkSerializerMixin", + "SecretReadableMixin", + "CommonModelSerializer", + "CommonBulkModelSerializer", + "ResourceLabelsMixin", ] class SecretReadableMixin(serializers.Serializer): - """ 加密字段 (EncryptedField) 可读性 """ + """加密字段 (EncryptedField) 可读性""" def __init__(self, *args, **kwargs): super(SecretReadableMixin, self).__init__(*args, **kwargs) - if not hasattr(self, 'Meta') or not hasattr(self.Meta, 'extra_kwargs'): + if not hasattr(self, "Meta") or not hasattr(self.Meta, "extra_kwargs"): return extra_kwargs = self.Meta.extra_kwargs for field_name, serializer_field in self.fields.items(): @@ -40,9 +49,9 @@ class SecretReadableMixin(serializers.Serializer): if field_name not in extra_kwargs: continue field_extra_kwargs = extra_kwargs[field_name] - if 'write_only' not in field_extra_kwargs: + if "write_only" not in field_extra_kwargs: continue - serializer_field.write_only = field_extra_kwargs['write_only'] + serializer_field.write_only = field_extra_kwargs["write_only"] class BulkSerializerMixin(object): @@ -53,20 +62,25 @@ class BulkSerializerMixin(object): def to_internal_value(self, data): from rest_framework_bulk import BulkListSerializer + ret = super(BulkSerializerMixin, self).to_internal_value(data) - id_attr = getattr(self.Meta, 'update_lookup_field', 'id') - if self.context.get('view'): - request_method = getattr(getattr(self.context.get('view'), 'request'), 'method', '') + id_attr = getattr(self.Meta, "update_lookup_field", "id") + if self.context.get("view"): + request_method = getattr( + getattr(self.context.get("view"), "request"), "method", "" + ) # add update_lookup_field field back to validated data # since super by default strips out read-only fields # hence id will no longer be present in validated_data - if all([ - isinstance(self.root, BulkListSerializer), - id_attr, - request_method in ('PUT', 'PATCH') - ]): - id_field = self.fields.get("id") or self.fields.get('pk') + if all( + [ + isinstance(self.root, BulkListSerializer), + id_attr, + request_method in ("PUT", "PATCH"), + ] + ): + id_field = self.fields.get("id") or self.fields.get("pk") if data.get("id"): id_value = id_field.to_internal_value(data.get("id")) else: @@ -89,9 +103,10 @@ class BulkSerializerMixin(object): @classmethod def many_init(cls, *args, **kwargs): from .common import AdaptedBulkListSerializer - meta = getattr(cls, 'Meta', None) - assert meta is not None, 'Must have `Meta`' - if not hasattr(meta, 'list_serializer_class'): + + meta = getattr(cls, "Meta", None) + assert meta is not None, "Must have `Meta`" + if not hasattr(meta, "list_serializer_class"): meta.list_serializer_class = AdaptedBulkListSerializer return super(BulkSerializerMixin, cls).many_init(*args, **kwargs) @@ -115,21 +130,21 @@ class BulkListSerializerMixin: data = html.parse_html_list(data) if not isinstance(data, list): - message = self.error_messages['not_a_list'].format( + message = self.error_messages["not_a_list"].format( input_type=type(data).__name__ ) - raise ValidationError({ - api_settings.NON_FIELD_ERRORS_KEY: [message] - }, code='not_a_list') + raise ValidationError( + {api_settings.NON_FIELD_ERRORS_KEY: [message]}, code="not_a_list" + ) if not self.allow_empty and len(data) == 0: if self.parent and self.partial: raise SkipField() - message = self.error_messages['empty'] - raise ValidationError({ - api_settings.NON_FIELD_ERRORS_KEY: [message] - }, code='empty') + message = self.error_messages["empty"] + raise ValidationError( + {api_settings.NON_FIELD_ERRORS_KEY: [message]}, code="empty" + ) ret = [] errors = [] @@ -137,9 +152,9 @@ class BulkListSerializerMixin: for item in data: try: # prepare child serializer to only handle one instance - if 'id' in item: + if "id" in item: pk = item["id"] - elif 'pk' in item: + elif "pk" in item: pk = item["pk"] else: raise ValidationError("id or pk not in data") @@ -163,13 +178,13 @@ class BulkListSerializerMixin: def create(self, validated_data): ModelClass = self.child.Meta.model - use_model_bulk_create = getattr(self.child.Meta, 'use_model_bulk_create', False) - model_bulk_create_kwargs = getattr(self.child.Meta, 'model_bulk_create_kwargs', {}) + use_model_bulk_create = getattr(self.child.Meta, "use_model_bulk_create", False) + model_bulk_create_kwargs = getattr( + self.child.Meta, "model_bulk_create_kwargs", {} + ) if use_model_bulk_create: - to_create = [ - ModelClass(**attrs) for attrs in validated_data - ] + to_create = [ModelClass(**attrs) for attrs in validated_data] objs = ModelClass._default_manager.bulk_create( to_create, **model_bulk_create_kwargs ) @@ -184,18 +199,18 @@ class BaseDynamicFieldsPlugin: def can_dynamic(self): try: - request = self.serializer.context['request'] + request = self.serializer.context["request"] method = request.method except (AttributeError, TypeError, KeyError): # The serializer was not initialized with request context. return False - if method != 'GET': + if method != "GET": return False return True def get_request(self): - return self.serializer.context['request'] + return self.serializer.context["request"] def get_query_params(self): request = self.get_request() @@ -203,7 +218,7 @@ class BaseDynamicFieldsPlugin: query_params = request.query_params except AttributeError: # DRF 2 - query_params = getattr(request, 'QUERY_PARAMS', request.GET) + query_params = getattr(request, "QUERY_PARAMS", request.GET) return query_params def get_exclude_field_names(self): @@ -214,20 +229,24 @@ class QueryFieldsMixin(BaseDynamicFieldsPlugin): # https://github.com/wimglenn/djangorestframework-queryfields/ # If using Django filters in the API, these labels mustn't conflict with any model field names. - include_arg_name = 'fields' - exclude_arg_name = 'fields!' + include_arg_name = "fields" + exclude_arg_name = "fields!" # Split field names by this string. It doesn't necessarily have to be a single character. # Avoid RFC 1738 reserved characters i.e. ';', '/', '?', ':', '@', '=' and '&' - delimiter = ',' + delimiter = "," def get_exclude_field_names(self): query_params = self.get_query_params() includes = query_params.getlist(self.include_arg_name) - include_field_names = {name for names in includes for name in names.split(self.delimiter) if name} + include_field_names = { + name for names in includes for name in names.split(self.delimiter) if name + } excludes = query_params.getlist(self.exclude_arg_name) - exclude_field_names = {name for names in excludes for name in names.split(self.delimiter) if name} + exclude_field_names = { + name for names in excludes for name in names.split(self.delimiter) if name + } if not include_field_names and not exclude_field_names: # No user fields filtering was requested, we have nothing to do here. @@ -242,10 +261,10 @@ class QueryFieldsMixin(BaseDynamicFieldsPlugin): class SizedModelFieldsMixin(BaseDynamicFieldsPlugin): - arg_name = 'fields_size' + arg_name = "fields_size" def can_dynamic(self): - if not hasattr(self.serializer, 'Meta'): + if not hasattr(self.serializer, "Meta"): return False can = super().can_dynamic() return can @@ -255,9 +274,9 @@ class SizedModelFieldsMixin(BaseDynamicFieldsPlugin): size = query_params.get(self.arg_name) if not size: return [] - if size not in ['mini', 'small']: + if size not in ["mini", "small"]: return [] - size_fields = getattr(self.serializer.Meta, 'fields_{}'.format(size), None) + size_fields = getattr(self.serializer.Meta, "fields_{}".format(size), None) if not size_fields or not isinstance(size_fields, Iterable): return [] serializer_field_names = set(self.serializer.fields) @@ -269,7 +288,7 @@ class XPACKModelFieldsMixin(BaseDynamicFieldsPlugin): def get_exclude_field_names(self): if settings.XPACK_LICENSE_IS_VALID: return set() - fields_xpack = set(getattr(self.serializer.Meta, 'fields_xpack', set())) + fields_xpack = set(getattr(self.serializer.Meta, "fields_xpack", set())) return fields_xpack @@ -279,9 +298,9 @@ class DefaultValueFieldsMixin: self.set_fields_default_value() def set_fields_default_value(self): - if not hasattr(self, 'Meta'): + if not hasattr(self, "Meta"): return - if not hasattr(self.Meta, 'model'): + if not hasattr(self.Meta, "model"): return model = self.Meta.model @@ -291,17 +310,19 @@ class DefaultValueFieldsMixin: model_field = getattr(model, name, None) if model_field is None: continue - if not hasattr(model_field, 'field') \ - or not hasattr(model_field.field, 'default') \ - or model_field.field.default == NOT_PROVIDED: + if ( + not hasattr(model_field, "field") + or not hasattr(model_field.field, "default") + or model_field.field.default == NOT_PROVIDED + ): continue - if name == 'id': + if name == "id": continue default = model_field.field.default if callable(default): default = default() - if default == '': + if default == "": continue # print(f"Set default value: {name}: {default}") serializer_field.default = default @@ -311,7 +332,12 @@ class DynamicFieldsMixin: """ 可以控制显示不同的字段,mini 最少,small 不包含关系 """ - dynamic_fields_plugins = [QueryFieldsMixin, SizedModelFieldsMixin, XPACKModelFieldsMixin] + + dynamic_fields_plugins = [ + QueryFieldsMixin, + SizedModelFieldsMixin, + XPACKModelFieldsMixin, + ] def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) @@ -336,12 +362,13 @@ class SomeFieldsMixin: instance: None initial_data: dict common_fields = ( - 'comment', 'created_by', 'updated_by', - 'date_created', 'date_updated', - ) - secret_fields = ( - 'password', 'token', 'secret', 'key', 'private_key' + "comment", + "created_by", + "updated_by", + "date_created", + "date_updated", ) + secret_fields = ("password", "token", "secret", "key", "private_key") def get_initial_value(self, attr, default=None): value = self.initial_data.get(attr) @@ -365,7 +392,7 @@ class SomeFieldsMixin: bool_fields.append(to_add) elif isinstance(field, serializers.DateTimeField): datetime_fields.append(to_add) - elif name in ('comment', 'created_by', 'updated_by'): + elif name in ("comment", "created_by", "updated_by"): common_fields.append(to_add) else: other_fields.append(to_add) @@ -381,15 +408,19 @@ class SomeFieldsMixin: secret_readable = isinstance(self, SecretReadableMixin) for name, field in fields.items(): - if name == 'id': - field.label = 'ID' + if name == "id": + field.label = "ID" elif isinstance(field, EncryptMixin) and not secret_readable: field.write_only = True return fields -class CommonSerializerMixin(DynamicFieldsMixin, RelatedModelSerializerMixin, - SomeFieldsMixin, DefaultValueFieldsMixin): +class CommonSerializerMixin( + DynamicFieldsMixin, + RelatedModelSerializerMixin, + SomeFieldsMixin, + DefaultValueFieldsMixin, +): pass @@ -406,17 +437,19 @@ class CommonBulkModelSerializer(CommonBulkSerializerMixin, serializers.ModelSeri class ResourceLabelsMixin(serializers.Serializer): - labels = LabelRelatedField(many=True, label=_('Labels'), required=False, allow_null=True, source='res_labels') + labels = LabelRelatedField( + many=True, label=_("Tags"), required=False, allow_null=True, source="res_labels" + ) def update(self, instance, validated_data): - labels = validated_data.pop('res_labels', None) + labels = validated_data.pop("res_labels", None) res = super().update(instance, validated_data) if labels is not None: instance.res_labels.set(labels, bulk=False) return res def create(self, validated_data): - labels = validated_data.pop('res_labels', None) + labels = validated_data.pop("res_labels", None) instance = super().create(validated_data) if labels is not None: instance.res_labels.set(labels, bulk=False) @@ -424,4 +457,4 @@ class ResourceLabelsMixin(serializers.Serializer): @classmethod def setup_eager_loading(cls, queryset): - return queryset.prefetch_related('labels') + return queryset.prefetch_related("labels") diff --git a/apps/i18n/core/en/LC_MESSAGES/django.po b/apps/i18n/core/en/LC_MESSAGES/django.po index aa78dae3e..5170a0550 100644 --- a/apps/i18n/core/en/LC_MESSAGES/django.po +++ b/apps/i18n/core/en/LC_MESSAGES/django.po @@ -3974,7 +3974,7 @@ msgid "Resource ID" msgstr "" #: labels/models.py:41 -msgid "Labeled resource" +msgid "Tagged resource" msgstr "" #: labels/serializers.py:22 diff --git a/apps/i18n/core/ja/LC_MESSAGES/django.po b/apps/i18n/core/ja/LC_MESSAGES/django.po index ac7ff7c1f..cc7d6aa7f 100644 --- a/apps/i18n/core/ja/LC_MESSAGES/django.po +++ b/apps/i18n/core/ja/LC_MESSAGES/django.po @@ -4107,7 +4107,7 @@ msgid "Resource ID" msgstr "リソースID" #: labels/models.py:41 -msgid "Labeled resource" +msgid "Tagged resource" msgstr "関連リソース" #: labels/serializers.py:22 diff --git a/apps/i18n/core/zh/LC_MESSAGES/django.po b/apps/i18n/core/zh/LC_MESSAGES/django.po index 6acfd393d..7c652e364 100644 --- a/apps/i18n/core/zh/LC_MESSAGES/django.po +++ b/apps/i18n/core/zh/LC_MESSAGES/django.po @@ -4041,7 +4041,7 @@ msgid "Resource ID" msgstr "资源 ID" #: labels/models.py:41 -msgid "Labeled resource" +msgid "Tagged resource" msgstr "关联的资源" #: labels/serializers.py:22 diff --git a/apps/i18n/lina/en.json b/apps/i18n/lina/en.json index 181b156d4..3ed15e751 100644 --- a/apps/i18n/lina/en.json +++ b/apps/i18n/lina/en.json @@ -1,1310 +1,1310 @@ { - "ACLs": "ACLs", - "APIKey": "Api key", - "AWS_China": "AWS(China)", - "AWS_Int": "AWS(International)", - "About": "About", - "Accept": "Accept", - "AccessIP": "Ip whitelist", - "AccessKey": "Access key", - "Account": "Account", - "NoPermissionInGlobal": "No permission in GLOBAL", - "AccountTemplateList": "Account templates", - "AccountBackup": "Backup accounts", - "AccountBackupCreate": "Create account backup", - "AccountBackupDetail": "Backup account details", - "ManualExecution": "Manual execution", - "AccountChangeSecretDetail": "Change account secret details", - "AccountBackupList": "Backup account", - "AccountBackupUpdate": "Update account backup", - "AccountChangeSecret": "Change account secret", - "AccountDeleteConfirmMsg": "Delete account, continue?", - "AccountExportTips": "The exported information contains sensitive information such as encrypted account numbers. the exported format is an encrypted zip file (if you have not set the encryption password, please go to personal info to set the file encryption password).", - "GatheredAccountList": "Gathered accounts", - "AccountGatherList": "Gather accounts", - "AccountGatherDetail": "Gather account details", - "AccountPushDetail": "Push account details", - "AccountGatherTaskList": "Gather account tasks", - "AccountGatherTaskCreate": "Create gather accounts task", - "AccountGatherTaskUpdate": "Update the gather accounts task", - "AccountList": "Accounts", - "AccountPolicy": "Account policy", - "AccountPolicyHelpText": "For accounts that do not meet the requirements when creating, such as: non-compliant key types and unique key constraints, you can choose the above strategy.", - "AccountPushCreate": "Create push account", - "AccountPushList": "Push accounts", - "MenuAccountTemplates": "Templates", - "AccountPushUpdate": "Update push account", - "AccountStorage": "Account storage", - "AccountTemplate": "Account templates", - "AccountTemplateUpdateSecretHelpText": "The account list shows the accounts created through the template. when the secret is updated, the ciphertext of the accounts created through the template will be updated.", - "Accounts": "Accounts", - "Action": "Action", - "ActionCount": "Action count", - "PermAction": "Permission Action", - "ActionSetting": "Action setting", - "Actions": "Action", - "ActionsTips": "The effects of each authority's agreement are different, click on the icon behind the authority to view", - "Activate": "Activate", - "ActivateSelected": "Activate selected", - "Active": "Active", - "ActiveAsset": "Recently logged in", - "ActiveAssetRanking": "Login asset ranking", - "ActiveUser": "Logged in recently", - "ActiveUsers": "Active users", - "Activity": "Activities", - "Add": "Add", - "AddAccount": "Add account", - "AddAccountResult": "Account batch adding results", - "AddAccountByTemplate": "Add account from template", - "AddAllMembersWarningMsg": "Are you sure add all user to this group ?", - "AddAsset": "Add assets", - "AddAssetToNode": "Add assets to node", - "AddAssetToThisPermission": "Add assets", - "AddInDetailText": "After successful creation or update, add to the details", - "AddNode": "Add node", - "AddNodeToThisPermission": "Add nodes", - "AddPassKey": "Add passkey", - "AddRolePermissions": "Add permissions to the details after successful creation/update", - "AddSuccessMsg": "Add successful", - "AddUserGroupToThisPermission": "Add user groups", - "AddUserToThisPermission": "Add users", - "Address": "Address", - "AdhocDetail": "Command details", - "AdhocManage": "Command", - "AdhocUpdate": "Update the command", - "Advanced": "Advanced settings", - "AfterChange": "After changes", - "AjaxError404": "404 request error", - "AlibabaCloud": "Alibaba cloud", - "Aliyun": "Alibaba cloud", - "All": "All", - "AllAccountTip": "All accounts already added on the asset", - "AllAccounts": "All", - "AllClickRead": "All marked as read", - "AllMembers": "All members", - "AllowInvalidCert": "Ignore certificate check", - "Announcement": "Announcement", - "AnonymousAccount": "Anonymous account", - "AnonymousAccountTip": "Connect to assets without using username and password, only support web type and custom type assets", - "ApiKey": "Api key", - "ApiKeyList": "Authenticate via api key in the header of each request, which differs from one request to another, offering greater security than token method. please consult the documentation for usage.
to minimize the risk of leaks, the secret can only be viewed upon creation, and each user can create up to 10", - "ApiKeyWarning": "To reduce the risk of accesskey leakage, the secret is only provided at creation and cannot be queried later, please keep it safe.", - "AppEndpoint": "App access address", - "AppOps": "Job center", - "AppProvider": "Application providers", - "AppProviderDetail": "Application provider details", - "AppletDetail": "RemoteApp", - "AppletHelpText": "In the upload process, if the application does not exist, create the application; if it exists, update the application.", - "AppletHostCreate": "Add RemoteApp machine", - "AppletHostDetail": "RemoteApp machine", - "AppletHostSelectHelpMessage": "When connecting to an asset, the selection of the application publishing machine is random (but the last used one is preferred). if you want to assign a specific publishing machine to an asset, you can tag it as or ;
when selecting an account for the publishing machine, the following situations will choose the user's own account with the same name or proprietary account (starting with js), otherwise use a public account (starting with jms):
  1. both the publishing machine and application support concurrent;
  2. the publishing machine supports concurrent, but the application does not, and the current application does not use a proprietary account;
  3. the publishing machine does not support concurrent, the application either supports or does not support concurrent, and no application uses a proprietary account;
note: whether the application supports concurrent connections is decided by the developer, and whether the host supports concurrent connections is decided by the single user single session setting in the publishing machine configuration", - "AppletHostUpdate": "Update the remote app publishing machine", - "AppletHostZoneHelpText": "This domain belongs to the system organization", - "AppletHosts": "RemoteApp machine", - "Applets": "RemoteApp", - "Applicant": "Applicant", - "Applications": "Assets", - "ApplyAsset": "Apply for assets", - "ApplyFromCMDFilterRule": "Command filter rules", - "ApplyFromSession": "Session", - "ApplyInfo": "Apply info", - "ApplyRunAsset": "Assets for which operations are requested", - "ApplyRunCommand": "Command for application", - "ApplyRunUser": "Users applying for run", - "Appoint": "Specify", - "ApprovaLevel": "Approval information", - "ApprovalLevel": "Approval level", - "ApprovalProcess": "Approval process", - "Approved": "Agreed", - "ApproverNumbers": "Approvers", - "ApsaraStack": "Alibaba cloud private cloud", - "Asset": "Asset", - "AssetAccount": "Accounts", - "Success/Total": "Success/Total", - "AssetAccountDetail": "Account details", - "AssetAclCreate": "Create asset connect rule", - "AssetAclDetail": "Asset connect rule details", - "AssetAclList": "Asset connect", - "AssetAclUpdate": "Update the asset connect rules", - "AssetAddress": "Asset (ip/hostname)", - "AssetAmount": "Asset amount", - "AssetAndNode": "Assets/nodes", - "AssetBulkUpdateTips": "Network devices, cloud services, web, batch updating of zones not supported", - "AssetChangeSecretCreate": "Create account secret change", - "AssetChangeSecretUpdate": "Update account secret change", - "AssetData": "Asset", - "AssetDetail": "Asset details", - "AssetList": "Assets", - "AssetListHelpMessage": "On the left is the asset tree. right-click to create, delete or modify tree nodes. assets are also organized in node form. on the right are the assets under this node. \n", - "AssetLoginACLHelpMsg": "When logging into assets, it can be audited based on the user's login ip and time segment to determine whether the assets can be logged into", - "AssetLoginACLHelpText": "When logging into assets, it can be audited based on the user's login ip and time segment to determine whether the assets can be logged into", - "AssetName": "Asset name", - "AssetPermission": "Authorization", - "AssetPermissionCreate": "Create asset authorization rule", - "AssetPermissionDetail": "Asset authorization details", - "AssetPermissionHelpMsg": "Asset authorization allows you to select users and assets, grant the assets to users for access. once completed, users can conveniently view these assets. additionally, you can set specific permissions to further define the users' rights to the assets.", - "AssetPermissionRules": "Authorization rules", - "AssetPermissionUpdate": "Update the asset authorization rules", - "AssetPermsAmount": "Asset authorization number", - "AssetProtocolHelpText": "! The protocols supported by the assets are restricted by the platform. Click the settings button to view the protocol settings. If updates are required, please update the platform", - "AssetTree": "Asset tree", - "Assets": "Assets", - "AssetsAmount": "Asset amount", - "AssetsTotal": "Total assets", - "AssignedInfo": "Approval information", - "Assignee": "Handler", - "Assignees": "Pending handler", - "AttrName": "Attribute name", - "AttrValue": "Attribute value", - "Audits": "Audits", - "Auth": "Authentication", - "AuthLimit": "Login restriction", - "AuthSAMLCertHelpText": "Save after uploading the certificate key, then view sp metadata", - "AuthSAMLKeyHelpText": "Sp certificates and keys are used for encrypted communication with idp", - "AuthSaml2UserAttrMapHelpText": "The keys on the left are saml2 user attributes, the values on the right are authentication platform user attributes", - "AuthSecurity": "Auth security", - "AuthSettings": "Authentication configuration", - "AuthUserAttrMapHelpText": "The key on the left belongs to the jumpserver user properties, and the value on the right belongs to the authentication platform user properties", - "Authentication": "Authentication", - "AutoPush": "Auto push", - "Automations": "Automations", - "AverageTimeCost": "Average spend time", - "AwaitingMyApproval": "Assigned", - "Azure": "Azure (china)", - "Backup": "Backup", - "BackupAccountsHelpText": "Backup account information externally. it can be stored in an external system or sent via email, supporting segmented delivery.", - "BadConflictErrorMsg": "Refreshing, please try again later", - "BadRequestErrorMsg": "Request error, please check the filled content", - "BadRoleErrorMsg": "Request error, no permission for this action", - "BaiduCloud": "Baidu cloud", - "BasePort": "Listening ports", - "Basic": "Basic", - "BasicInfo": "Basic information", - "BasicSettings": "General", - "BatchConsent": "Batch Approval", - "BatchDeployment": "Batch deployment", - "BatchProcessing": "{number} items selected", - "BatchReject": "Batch reject", - "BatchTest": "Batch test", - "BatchTransfer": "File transfer", - "BeforeChange": "Before change", - "Beian": "Record", - "BelongAll": "Including at the same time", - "BelongTo": "Any includes", - "Bind": "Binding", - "BindLabel": "Associated tags", - "BindResource": "Associated resources", - "BindSuccess": "Binding successful", - "BlockedIPS": "Locked ips", - "BuiltinVariable": "Built-in variables", - "BulkClearErrorMsg": "Bulk clear failed: ", - "BulkDeleteErrorMsg": "Bulk delete failed: ", - "BulkDeleteSuccessMsg": "Bulk delete successful", - "BulkDeploy": "Bulk deploy", - "BulkRemoveErrorMsg": "Bulk remove failed: ", - "BulkRemoveSuccessMsg": "Bulk remove successful", - "BulkSyncErrorMsg": "Bulk sync failed: ", - "CACertificate": "Ca certificate", - "CAS": "CAS", - "CMPP2": "Cmpp v2.0", - "CTYunPrivate": "Tianyi private cloud", - "CalculationResults": "Error in cron expression", - "CanDragSelect": "Select time period by dragging mouse", - "Cancel": "Cancel", - "CancelCollection": "Cancel favorite", - "CannotAccess": "Can't access the current page", - "Category": "Category", - "CeleryTaskLog": "Celery task log", - "Certificate": "Certificate", - "CertificateKey": "Client key", - "ChangeCredentials": "Change account secrets", - "ChangeCredentialsHelpText": "The secret is the password or key used to connect to the asset. when the secret is changed, the asset will be updated with the new secret", - "ChangeField": "Change field", - "ChangeOrganization": "Change organization", - "ChangePassword": "Change password", - "EditRecipient": "Edit recipient", - "ChangeSecretParams": "Change password parameters", - "ChangeViewHelpText": "Click to switch different views", - "Chat": "Chat", - "ChatHello": "Hello! Can i help you?", - "ChatAI": "Chat AI", - "ChdirHelpText": "By default, the execution directory is the user's home directory", - "CheckAssetsAmount": "Check asset quantity", - "CheckViewAcceptor": "Click to view the acceptance person", - "CleanHelpText": "A scheduled cleanup task will be carried out every day at 2 a.m. the data cleaned up will not be recoverable", - "Cleaning": "Regular clean-up", - "Clear": "Clear", - "ClearErrorMsg": "Clearing failed:", - "ClearScreen": "Clear screen", - "ClearSecret": "Clear secret", - "ClearSelection": "Clear selection", - "ClearSuccessMsg": "Clear successful", - "ClickCopy": "Click to copy", - "ClientCertificate": "Client certificate", - "ClipboardCopyPaste": "Clipboard copy and paste", - "Clone": "Clone", - "Duplicate": "Duplicate", - "Close": "Close", - "CloseConfirm": "Confirm close", - "CloseConfirmMessage": "File has changed, save?", - "CloseStatus": "Completed", - "Closed": "Completed", - "CloudAccountCreate": "Create a cloud account", - "CloudAccountDetail": "Details of cloud account", - "CloudAccountList": "Cloud accounts", - "CloudAccountUpdate": "Update the cloud account", - "CloudCreate": "Create asset - cloud", - "CloudRegionTip": "The region was not obtained, please check the account", - "CloudSource": "Sync source", - "CloudSync": "Cloud provider", - "CloudUpdate": "Update the asset - cloud", - "Cluster": "Cluster", - "CollectionSucceed": "Collection successful", - "Command": "Command", - "CommandConfirm": "Command review", - "CommandFilterACL": "Command filter", - "CommandFilterACLHelpMsg": "By filtering commands, you can control if commands can be sent to assets. based on your set rules, some commands can be allowed while others are prohibited.", - "CommandFilterACLHelpText": "By filtering commands, you can control if commands can be sent to assets. based on your set rules, some commands can be allowed while others are prohibited.", - "CommandFilterAclCreate": "Create command filter rule", - "CommandFilterAclDetail": "Details of command filter rule", - "CommandFilterAclList": "Command filter", - "CommandFilterAclUpdate": "Update the command filter rule", - "CommandFilterRuleContentHelpText": "One command per line", - "CommandFilterRules": "Command filter rules", - "CommandGroup": "Command group", - "CommandGroupCreate": "Create command group", - "CommandGroupDetail": "Command set details", - "CommandGroupList": "Command group", - "CommandGroupUpdate": "Update the command group", - "CommandStorage": "Command storage", - "CommandStorageUpdate": "Update the cmd storage", - "Commands": "Commands", - "CommandsTotal": "Total commands", - "Comment": "Description", - "CommentHelpText": "Description will be displayed when hovered over in the Luna page's user authorization asset tree. Ordinary users can view these remarks, so please do not include sensitive information.", - "CommunityEdition": "Community version", - "Component": "Component", - "ComponentMonitor": "Monitoring", - "ConceptContent": "I want you to act like a python interpreter. i will give you python code, and you will execute it. do not provide any explanations. respond with nothing except the output of the code.", - "ConceptTitle": "🤔 python interpreter", - "Config": "Settings", - "Configured": "Configured", - "Confirm": "Confirm", - "ConfirmPassword": "Confirm password", - "ConnectAssets": "Connect assets", - "ConnectMethod": "Connect method", - "ConnectMethodACLHelpMsg": "Connect methods can be filtered to control whether users can use a certain connect method to log in to the asset. according to your set rules, some connect methods can be allowed, while others can be prohibited (globally effective).", - "ConnectMethodACLHelpText": "Connect methods can be filtered to control whether users can use a certain connect method to log in to the asset. according to your set rules, some connect methods can be allowed, while others can be prohibited.", - "ConnectMethodAclCreate": "Create connect method control", - "ConnectMethodAclDetail": "Connect method control details", - "ConnectMethodAclList": "Connect method", - "ConnectMethodAclUpdate": "Update the connect method control", - "ConnectWebSocketError": "Connection to websocket failed", - "ConnectionDropped": "Connection disconnected", - "ConnectionToken": "Connection tokens", - "ConnectionTokenList": "The connection token is a type of authentication information that combines identity verification with connecting assets. it supports one-click user login to assets. currently supported components include: koko, lion, magnus, razor, etc.", - "Console": "Console", - "Consult": "Consult", - "ContainAttachment": "With attachment", - "Containers": "Container", - "Contains": "Contains", - "Continue": "Continue", - "ConvenientOperate": "Convenient action", - "Copy": "Copy", - "CopySuccess": "Copy successful", - "Corporation": "Company", - "Create": "Create", - "CreateAccessKey": "Create access key", - "CreateAccountTemplate": "Create account template", - "CreateCommandStorage": "Create command storage", - "CreateEndpoint": "Create endpoint", - "CreateEndpointRule": "Create endpoint rule", - "CreateErrorMsg": "Creation failed", - "CreateNode": "Create node", - "CreatePlaybook": "Create playbook", - "CreateReplayStorage": "Create object storage", - "CreateSuccessMsg": "Successfully created !", - "CreateUserSetting": "User creation", - "Created": "Created", - "Crontab": "Crontab", - "Interval": "Interval", - "CreatedBy": "Creator", - "CriticalLoad": "Serious", - "CronExpression": "Complete crontab expression", - "CrontabHelpText": "If both interval and crontab are set, crontab is prioritized", - "CrontabHelpTip": "For example: perform every sunday at 03:05 <5 3 * * 0>
use 5-digit linux crontab expressions (online tool)
", - "CrontabOfCreateUpdatePage": "", - "CurrentConnectionUsers": "Online users", - "CurrentConnections": "Current connections", - "CurrentUserVerify": "Verify current user", - "Custom": "Custom", - "CustomCol": "Customize display columns", - "CustomCreate": "Create asset - custom", - "CustomFields": "Custom attributes", - "CustomFile": "Please place custom files in the specified directory (data/sms/main.py), and enable configuration item `SMS_CUSTOM_FILE_MD5=` in config.txt", - "CustomHelpMessage": "Custom assets type is dependent on remote applications. please configure it in system settings in the remote applications", - "CustomParams": "The left side are parameters received by the sms platform, and the right side are jumpserver parameters waiting for formatting, which will eventually be as follows:
{\"phone_numbers\": \"123,134\", \"content\": \"verification code: 666666\"}", - "CustomUpdate": "Update the asset - custom", - "CustomUser": "Customized user", - "CycleFromWeek": "Week cycle from", - "CyclePerform": "Execute periodically", - "Danger": "Danger", - "DangerCommand": "Dangerous command", - "DangerousCommandNum": "Total dangerous commands", - "Dashboard": "Dashboard", - "Database": "Database", - "DatabaseCreate": "Create asset - database", - "DatabasePort": "Database protocol port", - "DatabaseUpdate": "Update the asset-database", - "Date": "Date", - "DateCreated": "Creation time", - "DateEnd": "End date", - "DateExpired": "Expiration date", - "DateFinished": "Completion date", - "DateJoined": "Creation date", - "DateLast24Hours": "Last day", - "DateLast3Months": "Last 3 months", - "DateLastHarfYear": "Last 6 months", - "DateLastLogin": "Last login date", - "DateLastMonth": "Last month", - "DateLastSync": "Last synchronization date", - "DateLastWeek": "Last week", - "DateLastYear": "Last year", - "DatePasswordLastUpdated": "Last password update date", - "DateStart": "Start date", - "DateSync": "Sync date", - "DateUpdated": "Update date", - "Day": "Day", - "DeclassificationLogNum": "Password change logs", - "DefaultDatabase": "Default database", - "DefaultPort": "Default port", - "Delete": "Delete", - "DeleteConfirmMessage": "Deletion is irreversible, do you wish to continue?", - "DeleteErrorMsg": "Delete failed", - "DeleteNode": "Delete node", - "DeleteOrgMsg": "User list, user group, asset list, network zone list, manage users, system users, tag management, asset authorization rules", - "DeleteOrgTitle": "Please ensure the following information within the organization has been deleted", - "DeleteReleasedAssets": "Delete released assets", - "DeleteSelected": "Delete selected", - "DeleteSuccess": "Successfully deleted", - "DeleteSuccessMsg": "Successfully deleted", - "ActivateSuccessMsg": "Successful activated", - "DeleteWarningMsg": "Are you sure you want to delete", - "Deploy": "Deployment", - "Description": "Description", - "DestinationIP": "Destination address", - "DestinationPort": "Destination port", - "Detail": "Detail", - "DeviceCreate": "Create asset - device", - "DeviceUpdate": "Update the asset - device", - "Digit": "Number", - "DingTalk": "Dingtalk", - "DingTalkOAuth": "DingTalk OAuth", - "DingTalkTest": "Test", - "Disable": "Disable", - "DisableSelected": "Disable selected", - "DisplayName": "Name", - "Docs": "Document", - "Download": "Download", - "DownloadCenter": "Download center", - "DownloadFTPFileTip": "The current action does not record files, or the file size exceeds the threshold (default 100m), or it has not yet been saved to the corresponding storage", - "DownloadImportTemplateMsg": "Download creation template", - "DownloadReplay": "Download recording", - "DownloadUpdateTemplateMsg": "Download update template", - "DragUploadFileInfo": "Drag files here, or click to upload", - "DuplicateFileExists": "Uploading a file with the same name is not allowed, please delete the file with the same name", - "Duration": "Duration", - "DynamicUsername": "Dynamic username", - "Edit": "Edit", - "Edition": "Version", - "Email": "Email", - "EmailContent": "Custom content", - "EmailTest": "Test connection", - "Empty": "Empty", - "Enable": "Enable", - "EnableKoKoSSHHelpText": "When switched on, connecting to the asset will display ssh client pull-up method", - "Endpoint": "Endpoint", - "EndpointListHelpMessage": "The service endpoint is the address (port) for users to access the service. when users connect to assets, they choose service endpoints based on endpoint rules and asset labels, using them as access points to establish connections and achieve distributed connections to assets", - "EndpointRule": "Endpoint rules", - "EndpointRuleListHelpMessage": "For the server endpoint selection strategy, there are currently two options:
1. specify the endpoint according to the endpoint rule (current page);
2. choose the endpoint through asset labels, with the fixed label name being 'endpoint' and the value being the name of the endpoint.
the tag matching method is preferred for both methods, as the ip range may conflict, and the tag method exists as a supplement to the rules.", - "Endswith": "Ending with...", - "EnsureThisValueIsGreaterThanOrEqualTo1": "Please make sure this number is greater than or equal to 1", - "EnterForSearch": "Press enter to search", - "EnterRunUser": "Enter running account", - "EnterRunningPath": "Enter running path", - "EnterToContinue": "Press enter to continue", - "EnterUploadPath": "Enter upload path", - "Enterprise": "Enterprise", - "EnterpriseEdition": "Enterprise edition", - "Equal": "Equals", - "Error": "Error", - "ErrorMsg": "Error", - "EsDisabled": "Node is unavailable, please contact administrator", - "EsIndex": "Es provides the default index: jumpserver. if indexing by date is enabled, the entered value will serve as the index prefix", - "EsUrl": "Cannot include special char `#`; eg: http://es_user:es_password@es_host:es_port", - "Every": "Every", - "Exclude": "Does not include", - "ExcludeAsset": "Skipped assets", - "ExcludeSymbol": "Exclude char", - "ExecCloudSyncErrorMsg": "The cloud account configuration is incomplete, please update and try again.", - "Execute": "Execute", - "ExecuteOnce": "Execute once", - "ExecutionDetail": "Execution details", - "ExecutionList": "Executions", - "ExistError": "This element already exists", - "Existing": "Already exists", - "ExpirationTimeout": "Expiration timeout (seconds)", - "Expire": "Expired", - "Expired": "Expiration date", - "Export": "Export", - "ExportAll": "Export all", - "ExportOnlyFiltered": "Export filtered items", - "ExportOnlySelectedItems": "Export selected items", - "ExportRange": "Export range", - "FC": "Fusion compute", - "Failed": "Failed", - "FailedAsset": "Failed assets", - "FaviconTip": "Note: website icon (suggested image size: 16px*16px)", - "Features": "Features", - "FeiShu": "FeiShu", - "FeiShuOAuth": "Feishu OAuth", - "FeiShuTest": "Test", - "FieldRequiredError": "This field is required", - "FileExplorer": "File explorer", - "FileManagement": "File manager", - "FileNameTooLong": "File name too long", - "FileSizeExceedsLimit": "File size exceeds limit", - "FileTransfer": "File transfer", - "FileTransferBootStepHelpTips1": "Select one asset or node", - "FileTransferBootStepHelpTips2": "Select running account and input command", - "FileTransferBootStepHelpTips3": "Transfer,display output results", - "FileTransferNum": "Number of file transfers", - "FileType": "File type", - "Filename": "File name", - "FingerPrint": "Fingerprint", - "Finished": "Complete", - "FinishedTicket": "Complete ticket", - "FirstLogin": "First login", - "FlowSetUp": "Flow setup", - "Footer": "Footer", - "FormatError": "Format error", - "Friday": "Fri", - "From": "From", - "FromTicket": "From the ticket", - "FullName": "Full name", - "FullySynchronous": "Assets completely synchronized", - "FullySynchronousHelpTip": "Whether to continue synchronizing such assets when the asset conditions do not meet the matching policy rules", - "GCP": "Google cloud", - "GPTCreate": "Create asset - gpt", - "GPTUpdate": "Update the asset - gpt", - "GatewayCreate": "Create gateway", - "GatewayList": "Gateways", - "GatewayUpdate": "Update the gateway", - "GatherAccounts": "Gather accounts", - "GatherAccountsHelpText": "Collect account information on assets. the collected account information can be imported into the system for centralized management.", - "GeneralAccounts": "General accounts", - "Generate": "Generate", - "GenerateAccounts": "Regenerate account", - "GenerateSuccessMsg": "Account creation successful", - "GeneralSetting": "General", - "GoHomePage": "Go to homepage", - "Goto": "Goto", - "GrantedAssets": "Authorized assets", - "GreatEqualThan": "Greater than or equal to", - "GroupsAmount": "User group", - "HandleTicket": "Handle tickets", - "Hardware": "Hardware information", - "HardwareInfo": "Hardware information", - "HasImportErrorItemMsg": "There are import failures, click on the left x to view the failure reasons, after editing the table, you can continue to import failures.", - "Help": "Help", - "HelpDocumentTip": "Document url for navigation bar 'help -> document' redirection.", - "HelpSupportTip": "Support url for the navigation bar 'help -> support' redirection.", - "HighLoad": "Higher", - "HistoricalSessionNum": "Total historical sessions", - "History": "History", - "HistoryDate": "Date", - "HistoryPassword": "Historical password", - "HistoryRecord": "History record", - "Host": "Asset", - "HostCreate": "Create asset - host", - "HostDeployment": "Deploy publishing machine", - "HostList": "Host", - "HostUpdate": "Update the asset - host", - "HostnameStrategy": "Used to generate hostnames for assets. for example: 1. instance name (instancedemo); 2. instance name and part of ip (last two letters) (instancedemo-250.1)", - "Hour": "Hour", - "HuaweiCloud": "Huawei cloud", - "HuaweiPrivateCloud": "Huawei private cloud", - "IAgree": "I agree", - "ID": "Id", - "IP": "Ip", - "IPLoginLimit": "Ip restriction", - "IPMatch": "Ip matching", - "IPNetworkSegment": "Ip segment", - "Id": "Id", - "IdeaContent": "I want you to act as a linux terminal. i will input the commands, you will respond with what the terminal should display. i hope you to reply only in a unique code block, not others. no interpretations. when i need to tell you something, i'm gonna put the words in braces {note text}", - "IdeaTitle": "🌱 linux terminal", - "IdpMetadataHelpText": "Either idp metadata url or idp metadata xml is acceptable, with idp metadata url having higher priority", - "IdpMetadataUrlHelpText": "Load idp metadata from remote address", - "ImageName": "Image name", - "Images": "Image", - "Import": "Import", - "ImportAll": "Import all", - "ImportFail": "Import failed", - "ImportLdapUserTip": "Please submit ldap configuration before import", - "ImportLdapUserTitle": "Ldap user", - "ImportLicense": "Import license", - "ImportLicenseTip": "Please import license", - "ImportMessage": "Please go to the corresponding type of page to import data", - "ImportOrg": "Import organization", - "InActiveAsset": "Not recently logged in", - "InActiveUser": "No recent login", - "InAssetDetail": "Update account info in asset details", - "Inactive": "Disabled", - "Index": "Index", - "Info": "Information", - "InformationModification": "Information Modification", - "InheritPlatformConfig": "Inherited from platform configuration, to change, please modify the configuration in the platform", - "InitialDeploy": "Initialization deployment", - "Input": "Input", - "InputEmailAddress": "Please enter the correct email address", - "InputMessage": "Enter message...", - "InputPhone": "Phone number", - "MIN_LENGTH_ERROR": "Passwords must be at least {0} characters.", - "UPPER_CASE_REQUIRED": "Must contain uppercase letters", - "LOWER_CASE_REQUIRED": "Must contain lowercase letters", - "NUMBER_REQUIRED": "Must contain numbers", - "SPECIAL_CHAR_REQUIRED": "Must contain special characters", - "InstanceAddress": "Instance address", - "InstanceName": "Instance name", - "InstancePlatformName": "Instance platform name", - "Interface": "Appearance", - "InterfaceSettings": "Appearance", - "IntervalOfCreateUpdatePage": "Unit: hour", - "InvalidJson": "Invalid json", - "InviteSuccess": "Invitation successful", - "InviteUser": "Invite", - "InviteUserInOrg": "Invite users to join this organization", - "Ip": "IP", - "IpDomain": "Address", - "IpGroup": "Ip group", - "IpGroupHelpText": "* indicates match all. for example: 192.168.10.1, 192.168.1.0/24, 10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64", - "IsActive": "Active", - "IsAlwaysUpdate": "Keeping assets up to date", - "IsAlwaysUpdateHelpTip": "Whether to synchronize and update asset information, including hostname, ip, platform, domain, node, etc. each time a synchronization task is performed", - "IsFinished": "Is it done", - "IsLocked": "Suspend", - "IsSuccess": "Success", - "IsSyncAccountHelpText": "Upon collection completion, the collected account will be synced to asset", - "IsSyncAccountLabel": "Sync to assets", - "JDCloud": "JD cloud", - "Job": "Job", - "JobCenter": "Job center", - "JobCreate": "Create job", - "JobDetail": "Job details", - "JobExecutionLog": "Job logs", - "JobManagement": "Jobs", - "JobUpdate": "Update the job", - "KingSoftCloud": "KingSoft Cloud", - "KokoSetting": "KoKo", - "LDAPUser": "LDAP Users", - "Label": "Label", - "LAN": "LAN", - "LabelCreate": "Create label", - "LabelInputFormatValidation": "Label format error, the correct format is: name:value", - "LabelList": "Labels", - "LabelUpdate": "Update the label", - "Language": "Language", - "LarkOAuth": "Lark OAuth", - "Last30": "Recent 30 items", - "Last30Days": "Monthly", - "Last7Days": "Weekly", - "LastPublishedTime": "Last publish time", - "Ldap": "LDAP", - "LdapBulkImport": "User import", - "LdapConnectTest": "Test connection", - "LdapLoginTest": "Test login", - "Length": "Length", - "LessEqualThan": "Less than or equal to", - "LevelApproval": "Level approval", - "License": "License", - "LicenseExpired": "The license has expired", - "LicenseFile": "License file", - "LicenseForTest": "Test purpose license, this license is only for testing (poc) and demonstration", - "LicenseReachedAssetAmountLimit": "The assets has exceeded the license limit", - "LicenseWillBe": "License expiring soon", - "Loading": "Loading", - "LockedIP": "Locked ip {count}", - "Log": "Log", - "LogData": "Log data", - "LogOfLoginSuccessNum": "Total successful login", - "Logging": "Log record", - "LoginAssetConfirm": "Asset connect review", - "LoginAssetToday": "Active assets today", - "LoginAssets": "Active assets", - "LoginConfirm": "Login review", - "LoginConfirmUser": "Confirm by", - "LoginCount": "Login times", - "LoginDate": "Login date", - "LoginFailed": "Login failed", - "LoginFrom": "Login source", - "LoginImageTip": "Note: it will appear on the enterprise user login page (recommended image size: 492*472px)", - "LoginLog": "Login logs", - "LoginLogTotal": "Total login logs", - "LoginNum": "Total login logs", - "LoginPasswordSetting": "Login password", - "LoginRequiredMsg": "The account has logged out, please log in again.", - "LoginSSHKeySetting": "Login SSH Key", - "LoginSucceeded": "Login successful", - "LoginTitleTip": "Note: it will be displayed on the enterprise edition user ssh login koko login page (e.g.: welcome to use jumpserver open source bastion)", - "LoginUserRanking": "Login account ranking", - "LoginUserToday": "Users logged today", - "LoginUsers": "Active account", - "LogoIndexTip": "Tip: it will be displayed in the upper left corner of the page (recommended image size: 185px*55px)", - "LogoLogoutTip": "Tip: it will be displayed on the web terminal page of enterprise edition users (recommended image size: 82px*82px)", - "Logout": "Sign out", - "LogsAudit": "Activities", - "Lowercase": "Lowercase", - "LunaSetting": "Luna", - "MFAErrorMsg": "MFA errors, please check", - "MFAOfUserFirstLoginPersonalInformationImprovementPage": "Enable multi-factor authentication to make your account more secure.
after enabling, you will enter the multi-factor authentication binding process the next time you log in; you can also directly bind in (personal information->quick modification->change multi-factor settings)!", - "MFAOfUserFirstLoginUserGuidePage": "In order to protect your and the company's security, please carefully safeguard important sensitive information such as your account, password, and key (for example, set a complex password, and enable multi-factor authentication)
personal information such as email, mobile number, and wechat are only used for user authentication and platform internal message notifications.", - "MailRecipient": "Email recipient", - "MailSend": "Sending", - "ManualAccount": "Manual accounts", - "ManualAccountTip": "Manual input of username/password upon login", - "ManyChoose": "Select multiple", - "MarkAsRead": "Mark as read", - "Marketplace": "App market", - "Match": "Match", - "MatchIn": "In...", - "MatchResult": "Match results", - "MatchedCount": "Match results", - "Members": "Members", - "MenuAccounts": "Accounts", - "MenuAcls": "Acls", - "MenuAssets": "Assets", - "MenuMore": "Others", - "MenuPermissions": "Policies", - "MenuUsers": "Users", - "Message": "Message", - "MessageType": "Message type", - "MfaLevel": "MFA", - "Min": "Min", - "Modify": "Edit", - "Module": "Module", - "Monday": "Mon", - "Monitor": "Monitor", - "Month": "Month", - "More": "More", - "MoreActions": "Actions", - "MoveAssetToNode": "Move assets to nodes", - "MsgSubscribe": "Subscription", - "MyAssets": "My assets", - "MyTickets": "Submitted", - "Name": "Name", - "NavHelp": "Navigation", - "NeedReLogin": "Need to re-login", - "New": "Create", - "NewChat": "New chat", - "NewCount": "Add", - "NewCron": "Generate cron", - "NewDirectory": "Create new directory", - "NewFile": "Create new file", - "NewPassword": "New password", - "NewPublicKey": "New Public Key", - "NewSSHKey": "New SSH Key", - "NewSyncCount": "New sync", - "Next": "Next", - "No": "No", - "NoContent": "No content", - "NoData": "No data available", - "NoFiles": "No file, upload on the left", - "NoPermission": "No permissions", - "NoPermission403": "403 no permission", - "NoPermissionVew": "No permission to view the current page", - "NoUnreadMsg": "No unread messages", - "Node": "Node", - "NodeAmount": "Nodes", - "NodeInformation": "Node information", - "NodeSearchStrategy": "Node search strategy", - "NormalLoad": "Normal", - "NotEqual": "Not equal to", - "NotSet": "Not set", - "NotSpecialEmoji": "Special emoji input not allowed", - "Nothing": "None", - "NotificationConfiguration": "Notification Configuration", - "Notifications": "Notifications", - "Now": "Now", - "Number": "No.", - "NumberOfVisits": "Visits", - "OAuth2": "OAuth2", - "OAuth2LogoTip": "Note: authentication provider (recommended image size: 64px*64px)", - "OIDC": "OIDC", - "ObjectNotFoundOrDeletedMsg": "No corresponding resources found or it has been deleted.", - "Offline": "Offline", - "OfflineSelected": "Offline selected", - "OfflineSuccessMsg": "Successfully offline", - "OfflineUpload": "Offline upload", - "OldPassword": "Old password", - "OldPublicKey": "Old Public Key", - "OneAssignee": "First-level approver", - "OneAssigneeType": "First-level handler type", - "OneClickReadMsg": "Are you sure you want to mark the current information as read?", - "OnlineSession": "Online devices", - "OnlineSessionHelpMsg": "Unable to log out of the current session because it is the current user's online session. currently only users logged in via web are being logged.", - "OnlineSessions": "Online sessions", - "OnlineUserDevices": "Online user devices", - "OnlyMailSend": "Current support for email sending", - "OnlySearchCurrentNodePerm": "Only search the current node's authorization", - "OpenCommand": "Open command", - "OpenStack": "Openstack", - "OpenStatus": "In approval", - "OpenTicket": "Create ticket", - "OperateLog": "Operate logs", - "OperationLogNum": "Operation logs", - "Options": "Options", - "OrgAdmin": "Organization admin", - "OrgAuditor": "Organizational auditors", - "OrgName": "Authorized organization name", - "OrgRole": "Organizational roles", - "OrgRoleHelpMsg": "Organization roles are roles tailored to individual organizations within the platform. these roles are assigned when inviting users to join a particular organization and dictate their permissions and access levels within that organization. unlike system roles, organization roles are customizable and apply only within the scope of the organization they are assigned to.", - "OrgRoleHelpText": "The org role is the user's role within the current organization", - "OrgRoles": "Organizational roles", - "OrgUser": "Organize users", - "OrganizationCreate": "Create organization", - "OrganizationDetail": "Organization details", - "OrganizationList": "Organizations", - "OrganizationManage": "Manage orgs", - "OrganizationUpdate": "Update the organization", - "OrgsAndRoles": "Org and roles", - "Other": "Other", - "Output": "Output", - "Overview": "Overview", - "PageNext": "Next", - "PagePrev": "Previous", - "Params": "Parameter", - "ParamsHelpText": "Password parameter settings, currently only effective for assets of the host type.", - "PassKey": "Passkey", - "Passkey": "Passkey", - "PasskeyAddDisableInfo": "Your authentication source is {source}, and adding a passkey is not supported", - "Passphrase": "Key password", - "Password": "Password", - "PasswordAndSSHKey": "Password & SSH Key", - "PasswordChangeLog": "Password change", - "PasswordExpired": "Password expired", - "PasswordPlaceholder": "Please enter password", - "PasswordRecord": "Password record", - "PasswordRule": "Password rules", - "PasswordSecurity": "User password", - "PasswordStrategy": "Secret strategy", - "PasswordWillExpiredPrefixMsg": "Password will be in", - "PasswordWillExpiredSuffixMsg": "It will expire in days, please change your password as soon as possible.", - "Paste": "Paste", - "Pause": "Pause", - "PauseTaskSendSuccessMsg": "Task pausing issued, please refresh and check later", - "Pending": "Pending", - "PermAccount": "Authorized accounts", - "PermUserList": "Authorized users", - "PermissionCompany": "Authorized companies", - "PermissionName": "Authorization rule name", - "Permissions": "Permission", - "PersonalInformationImprovement": "Complete personal information", - "PersonalSettings": "Personal Settings", - "Phone": "Phone", - "Plan": "Plan", - "Platform": "Platform", - "PlatformCreate": "Create platform", - "PlatformDetail": "Platform details", - "PlatformList": "Platforms", - "PlatformPageHelpMsg": "The platform categorizes assets, such as windows, linux, network devices, etc. configuration settings, such as protocols, gateways, etc., can also be specified on the platform to determine whether certain features are enabled on assets.", - "PlatformProtocolConfig": "Platform protocol configuration", - "PlatformUpdate": "Update the platform", - "PlaybookDetail": "Playbook details", - "PlaybookManage": "Playbook", - "PlaybookUpdate": "Update the playbook", - "PleaseAgreeToTheTerms": "Please agree to the terms", - "PolicyName": "Policy name", - "Port": "Port", - "Ports": "Port", - "Preferences": "Preferences", - "Primary": "Primary", - "Priority": "Priority", - "PrivateCloud": "Private cloud", - "PrivateKey": "Private key", - "Privileged": "Privileged", - "PrivilegedFirst": "Privileged first", - "PrivilegedOnly": "Privileged accounts only", - "PrivilegedTemplate": "Privileged", - "Product": "Product", - "ProfileSetting": "Profile info", - "Project": "Project name", - "Prompt": "Prompt", - "Proportion": "Proportion", - "ProportionOfAssetTypes": "Asset type proportion", - "Protocol": "Protocol", - "Protocols": "Protocols", - "Proxy": "Agent", - "PublicCloud": "Public cloud", - "PublicKey": "Public key", - "Publish": "Publish", - "PublishAllApplets": "Publish all applications", - "PublishStatus": "Release status", - "Push": "Push", - "PushAccount": "Push accounts", - "PushAccountsHelpText": "Pushing the account to the target asset allows for configuring different push methods for assets on different platforms.", - "PushParams": "Push parameters", - "Qcloud": "Tencent cloud", - "QcloudLighthouse": "Tencent cloud (lightweight application server)", - "QingYunPrivateCloud": "Qingyun private cloud", - "Queue": "Queue", - "QuickAdd": "Quick add", - "QuickJob": "Adhoc", - "QuickUpdate": "Quick update", - "Radius": "Radius", - "Ranking": "Ranking", - "RazorNotSupport": "Rdp client session, monitoring not supported", - "ReLogin": "Log in again", - "ReLoginTitle": "Current third-party login user (cas/saml), not bound to mfa and does not support password verification, please log in again.", - "RealTimeData": "Real-time", - "Reason": "Reason", - "Receivers": "Receiver", - "RecentLogin": "Recent login", - "RecentSession": "Recent sessions", - "RecentlyUsed": "Recently", - "RecipientHelpText": "If both recipient a and b are set, the account's key will be split into two parts", - "RecipientServer": "Receiving server", - "Reconnect": "Reconnect", - "Refresh": "Refresh", - "RefreshHardware": "Refresh hardware info", - "Regex": "Regular expression", - "Region": "Region", - "RegularlyPerform": "Periodic execution", - "Reject": "Reject", - "Rejected": "Rejected", - "ReleasedCount": "Released", - "RelevantApp": "Application", - "RelevantAsset": "Assets", - "RelevantAssignees": "Related recipient", - "RelevantCommand": "Command", - "RelevantSystemUser": "System user", - "RemoteAddr": "Remote address", - "Remove": "Remove", - "RemoveAssetFromNode": "Remove asset from node", - "RemoveSelected": "Remove selected", - "RemoveSuccessMsg": "Successfully removed", - "Rename": "Rename", - "RenameNode": "Rename nodes", - "ReplaceNodeAssetsAdminUserWithThis": "Replace asset admin", - "Replay": "Playback", - "ReplaySession": "Session replay", - "ReplayStorage": "Object storage", - "ReplayStorageCreateUpdateHelpMessage": "Notice: current sftp storage only supports account backup, video storage is not yet supported.", - "ReplayStorageUpdate": "Update the object storage", - "Reply": "Reply", - "RequestAssetPerm": "Request asset authorization", - "RequestPerm": "Authorization request", - "RequestTickets": "New ticket", - "RequiredAssetOrNode": "Please select at least one asset or node", - "RequiredContent": "Please input command", - "RequiredEntryFile": "This file acts as the entry point for running and must be present", - "RequiredRunas": "Please enter the execution user", - "RequiredSystemUserErrMsg": "Please select account", - "RequiredUploadFile": "Please upload the file!", - "Reset": "Reset", - "ResetAndDownloadSSHKey": "Reset and download key", - "ResetMFA": "Reset mfa", - "ResetMFAWarningMsg": "Are you sure you want to reset the user's mfa?", - "ResetMFAdSuccessMsg": "Mfa reset successful, user can reset mfa again", - "ResetPassword": "Reset password", - "ResetPasswordNextLogin": "Password must be changed during next log in", - "ResetPasswordSuccessMsg": "Reset password message sent to user", - "ResetPasswordWarningMsg": "Are you sure you want to send the password reset email for the user", - "ResetPublicKeyAndDownload": "Reset and download ssh key", - "ResetSSHKey": "Reset ssh key", - "ResetSSHKeySuccessMsg": "Email task submitted, user will receive a url to reset shortly", - "ResetSSHKeyWarningMsg": "Are you sure you want to send a reset ssh key email to the user?", - "Resource": "Resources", - "ResourceType": "Resource type", - "RestoreButton": "Restore", - "RestoreDefault": "Reset to default", - "RestoreDialogMessage": "Are you sure you want to restore to default initialization?", - "RestoreDialogTitle": "Do you confirm?", - "Result": "Result", - "Resume": "Recovery", - "ResumeTaskSendSuccessMsg": "Recovery task issued, please refresh later", - "Retry": "Retry", - "Reviewer": "Approvers", - "Role": "Role", - "RoleCreate": "Create role", - "RoleDetail": "Role details", - "RoleInfo": "Role information", - "RoleList": "Roles", - "RoleUpdate": "Update the role", - "RoleUsers": "Authorized users", - "Rows": "Row", - "Rule": "Condition", - "RuleCount": "Condition quantity", - "RuleDetail": "Rule details", - "RuleRelation": "Relationship conditions", - "RuleRelationHelpTip": "And: the action will be executed only when all conditions are met; or: the action will be executed as long as one condition is met", - "RuleSetting": "Condition settings", - "Rules": "Rules", - "Run": "Execute", - "RunAgain": "Execute again", - "RunAs": "Run user", - "RunCommand": "Run command", - "RunJob": "Run job", - "RunSucceed": "Task successfully completed", - "RunTaskManually": "Manually execute", - "RunasHelpText": "Enter username for running script", - "RunasPolicy": "Account policy", - "RunasPolicyHelpText": "When there are no users currently running on the asset, what account selection strategy should be adopted. skip: do not execute. prioritize privileged accounts: if there are privileged accounts, select them first; if not, select regular accounts. only privileged accounts: select only from privileged accounts; if none exist, do not execute.", - "RunningPath": "Running path", - "RunningPathHelpText": "Enter the run path of the script, this setting only applies to shell scripts", - "RunningTimes": "Last 5 run times", - "SCP": "Sangfor cloud platform", - "SMS": "Message", - "SMSProvider": "SMS service provider", - "SMTP": "Server", - "SSHKey": "SSH Key", - "SSHKeyOfProfileSSHUpdatePage": "You can reset and download the SSH public key by clicking the button below, or copy your SSH public key and submit it.", - "SSHPort": "SSH Port", - "SSHSecretKey": "SSH Key", - "SafeCommand": "Secure command", - "SameAccount": "Same", - "SameAccountTip": "Accounts with the same username as authorized users", - "SameTypeAccountTip": "An account with the same username and key type already exists", - "Saturday": "Sat", - "Save": "Save", - "SaveAdhoc": "Save command", - "SaveAndAddAnother": "Save & Continue", - "SaveCommand": "Save command", - "SaveCommandSuccess": "Command saved successfully", - "SaveSetting": "Synchronization settings", - "SaveSuccess": "Save successful", - "SaveSuccessContinueMsg": "Creation successful, you can continue to add content after updating.", - "ScrollToBottom": "Scroll to the bottom", - "ScrollToTop": "Scroll to top", - "Search": "Search", - "SearchAncestorNodePerm": "Search for authorizations simultaneously on the current node and ancestor nodes", - "Secret": "Password", - "SecretKey": "Key", - "SubscriptionID": "Subscription authorization ID", - "SecretKeyStrategy": "Password policy", - "Secure": "Security", - "Security": "Security", - "Select": "Select", - "SelectAdhoc": "Select command", - "SelectAll": "Select all", - "SelectAtLeastOneAssetOrNodeErrMsg": "Select at least one asset or node", - "SelectAttrs": "Select attributes", - "SelectByAttr": "Attribute filter", - "SelectFile": "Select file", - "SelectKeyOrCreateNew": "Select tag key or create new one", - "SelectLabelFilter": "Select label for search", - "SelectPlatforms": "Select platform", - "SelectProperties": "Attributes", - "SelectResource": "Select resources", - "SelectTemplate": "Select template", - "SelectValueOrCreateNew": "Select tag value or create new one", - "Selected": "Selected", - "Selection": "Selection", - "Selector": "Selector", - "Send": "Send", - "SendVerificationCode": "Send verification code", - "SerialNumber": "Serial number", - "Server": "Server", - "ServerAccountKey": "Service account key", - "ServerError": "Server error", - "ServerTime": "Server time", - "Session": "Session", - "SessionCommands": "Session commands", - "SessionConnectTrend": "Session connection trends", - "SessionData": "Session data", - "SessionDetail": "Session details", - "SessionID": "Session id", - "SessionList": "Asset sessions", - "SessionMonitor": "Monitor", - "SessionOffline": "Historical sessions", - "SessionOnline": "Online sessions", - "SessionSecurity": "Asset session", - "SessionState": "Session status", - "SessionTerminate": "Session termination", - "SessionTrend": "Session trends", - "Sessions": "Sessions", - "SessionsAudit": "Sessions", - "SessionsNum": "Sessions", - "Set": "Configured", - "SetDingTalk": "Dingtalk oauth", - "SetFailed": "Setting failed", - "SetFeiShu": "Set feishu authentication", - "SetMFA": "Multi-factor authentication", - "SetSuccess": "Successfully set", - "SetToDefault": "Set as default", - "Setting": "Setting", - "SettingInEndpointHelpText": "Configure service address and port in system settings / component settings / server endpoints", - "Settings": "System settings", - "Show": "Display", - "ShowAssetAllChildrenNode": "Show all sub-nodes assets", - "ShowAssetOnlyCurrentNode": "Only show current node assets", - "ShowNodeInfo": "Show node details", - "SignChannelNum": "Channel signature", - "SiteMessage": "Notifications", - "SiteMessageList": "Notifications", - "Skip": "Skip this asset", - "Skipped": "Skipped", - "Slack": "Slack", - "SlackOAuth": "Slack OAuth", - "Source": "Source", - "SourceIP": "Source address", - "SourcePort": "Source port", - "Spec": "Specific", - "SpecAccount": "Specified", - "SpecAccountTip": "Specify username to choose authorized account", - "SpecialSymbol": "Special char", - "SpecificInfo": "Special information", - "SshKeyFingerprint": "Ssh fingerprint", - "Startswith": "Starts with...", - "State": "Status", - "StateClosed": "Is closed", - "Status": "Status", - "StatusGreen": "Recently in good condition", - "StatusRed": "Last task execution failed", - "StatusYellow": "There have been recent failures", - "Step": "Step", - "Stop": "Stop", - "Storage": "Storage", - "StorageSetting": "Storage", - "Strategy": "Strategy", - "StrategyCreate": "Create policy", - "StrategyDetail": "Policy details", - "StrategyHelpTip": "Identify the unique attributes of assets (such as platforms) based on priority of strategies; when an asset's attribute (like nodes) can be configured to multiple, all actions of the strategies will be executed.", - "StrategyList": "Policy", - "StrategyUpdate": "Update the policy", - "SuEnabled": "Enable switch", - "SuFrom": "Switch from", - "Submit": "Submit", - "Success": "Success", - "SuccessAsset": "Successful assets", - "SuccessfulOperation": "Action successful", - "Summary(success/total)": " overview( successful/total )", - "Sunday": "Sun", - "SuperAdmin": "Super administrator", - "SuperOrgAdmin": "Super admin + organization admin", - "Support": "Support", - "SupportedProtocol": "Protocols", - "SupportedProtocolHelpText": "Set supported protocols for the asset, you can modify the custom configurations, such as sftp directory, rdp ad domain, etc., by clicking on the set button", - "Sync": "Sync", - "SyncDelete": "Sync deletion", - "SyncDeleteSelected": "Sync deletion selected", - "SyncErrorMsg": "Sync failed", - "SyncInstanceTaskCreate": "Create sync task", - "SyncInstanceTaskDetail": "Sync task details", - "SyncInstanceTaskHistoryAssetList": "Synchronize instance", - "SyncInstanceTaskHistoryList": "Synchronization history", - "SyncInstanceTaskList": "Synchronization task", - "SyncInstanceTaskUpdate": "Update the sync task", - "SyncProtocolToAsset": "Sync protocols to assets", - "SyncSelected": "Sync selected", - "SyncSetting": "Sync settings", - "SyncStrategy": "Sync policy", - "SyncSuccessMsg": "Sync succeeded", - "SyncTask": "Sync tasks", - "SyncUpdateAccountInfo": "Sync new secret to accounts", - "SyncUser": "Sync users", - "SyncedCount": "Synchronized", - "SystemError": "System error", - "SystemRole": "System roles", - "SystemRoleHelpMsg": "System roles are roles that apply universally across all organizations within the platform. these roles allow you to define specific permissions and access levels for users across the entire system. changes made to system roles will affect all organizations using the platform.", - "SystemRoles": "System roles", - "SystemSetting": "System settings", - "SystemTools": "Tools", - "TableColSetting": "Select visible attribute columns", - "TableSetting": "Table preferences", - "Target": "Target", - "TargetResources": "Target resource", - "Task": "Task", - "TestSelected": "Test selected", - "TaskDetail": "Task details", - "TaskDone": "Task finished", - "TaskID": "Task id", - "TaskList": "Tasks", - "SystemTasks": "Tasks", - "TaskMonitor": "Monitoring", - "TechnologyConsult": "Technical consultation", - "TempPasswordTip": "The temporary password is valid for 300 seconds and becomes invalid immediately after use", - "TempToken": "Temporary tokens", - "TemplateAdd": "Add from template", - "TemplateCreate": "Create template", - "TemplateHelpText": "When selecting a template to add, accounts that do not exist under the asset will be automatically created and pushed", - "TemplateManagement": "Templates", - "TencentCloud": "Tencent cloud", - "Terminal": "Components", - "TerminalDetail": "Terminal details", - "TerminalUpdate": "Update the terminal", - "TerminalUpdateStorage": "Update the terminal storage", - "Terminate": "Terminate", - "TerminateTaskSendSuccessMsg": "Task termination has been issued, please refresh and check later", - "TermsAndConditions": "Terms and conditions", - "Test": "Test", - "TestAccountConnective": "Test connectivity", - "TestAssetsConnective": "Test connectivity", - "TestConnection": "Test connection", - "TestGatewayHelpMessage": "If nat port mapping is used, please set it to the real port listened to by ssh", - "TestGatewayTestConnection": "Test connect to gateway", - "TestLdapLoginTitle": "Test ldap user login", - "TestNodeAssetConnectivity": "Test connectivity of asset nodes", - "TestPortErrorMsg": "Port error, please re-enter", - "TestSuccessMsg": "Test succeeded", - "Thursday": "Thu", - "Ticket": "Ticket", - "TicketDetail": "Ticket details", - "TicketFlow": "Ticket flow", - "TicketFlowCreate": "Create approval flow", - "TicketFlowUpdate": "Update the approval flow", - "Tickets": "Tickets", - "Time": "Time", - "TimeDelta": "Time cost", - "TimeExpression": "Time expression", - "Timeout": "Timeout", - "TimeoutHelpText": "When this value is -1, no timeout is specified.", - "Timer": "Timer", - "Title": "Title", - "To": "To", - "Today": "Today", - "TodayFailedConnections": "Failed sessions today", - "Token": "Token", - "Total": "Total", - "TotalJobFailed": "Failed execution actions", - "TotalJobLog": "Total job executions", - "TotalJobRunning": "Running jobs", - "Transfer": "Transfer", - "Tuesday": "Tue", - "TwoAssignee": "Subscribe to authorization id", - "TwoAssigneeType": "Secondary recipient type", - "Type": "Type", - "TypeTree": "Type tree", - "Types": "Type", - "UCloud": "Ucloud uhost", - "UnSyncCount": "Not synced", - "Unbind": "Unlink", - "UnbindHelpText": "Local users are the source of this authentication and cannot be unbound", - "Unblock": "Unlock", - "UnblockSelected": "Unblock selected", - "UnblockSuccessMsg": "Unlock successful", - "UnblockUser": "Unlock user", - "UniqueError": "Only one of the following properties can be set", - "UnlockSuccessMsg": "Unlock successful", - "UnselectedOrg": "No organization selected", - "UnselectedUser": "No user selected", - "UpDownload": "Upload & download", - "Update": "Update", - "UpdateAccount": "Update the account", - "UpdateAccountTemplate": "Update the account template", - "UpdateAssetDetail": "Configure more information", - "UpdateAssetUserToken": "Update account authentication information", - "UpdateEndpoint": "Update the endpoint", - "UpdateEndpointRule": "Update the endpoint rule", - "UpdateErrorMsg": "Update failed", - "UpdateNodeAssetHardwareInfo": "Update node assets hardware information", - "UpdatePlatformHelpText": "The asset will be updated only if the original platform type is the same as the selected platform type. if the platform types before and after the update are different, it will not be updated.", - "UpdateSSHKey": "Change ssh public key", - "UpdateSelected": "Update selected", - "UpdateSuccessMsg": "Successfully updated !", - "Updated": "Updated", - "Upload": "Upload", - "UploadCsvLth10MHelpText": "Only csv/xlsx can be uploaded, and no more than 10m", - "UploadDir": "Upload path", - "UploadFileLthHelpText": "Less than {limit}m supported", - "UploadPlaybook": "Upload playbook", - "UploadSucceed": "Upload succeeded", - "UploadZipTips": "Please upload a file in zip format", - "Uploading": "Uploading file", - "Uppercase": "Uppercase", - "UseProtocol": "User agreement", - "UseSSL": "Use ssl/tls", - "User": "User", - "UserAclLists": "Login ACLs", - "UserAssetActivity": "User/asset activity", - "UserCreate": "Create user", - "UserData": "User", - "UserDetail": "User details", - "UserGroupCreate": "Create user group", - "UserGroupDetail": "User group details", - "UserGroupList": "Groups", - "UserGroupUpdate": "Update the user group", - "UserGroups": "Groups", - "UserList": "Users", - "UserLoginACLHelpMsg": "When logging into the system, the user's login ip and time range can be audited to determine whether they are allowed to log into the system (effective globally)", - "UserLoginACLHelpText": "When logging in, it can be audited based on the user's login ip and time segment to determine whether the user can log in", - "UserLoginAclCreate": "Create user login control", - "UserLoginAclDetail": "User login control details", - "UserLoginAclList": "User login", - "UserLoginAclUpdate": "Update the user login control", - "UserLoginLimit": "User restriction", - "UserLoginTrend": "Account login trend", - "UserPasswordChangeLog": "User password change log", - "UserSession": "Asset sessions", - "UserSwitchFrom": "Switch from", - "UserUpdate": "Update the user", - "Username": "Username", - "UsernamePlaceholder": "Please enter username", - "Users": "User", - "UsersAmount": "User", - "UsersAndUserGroups": "Users/user groups", - "UsersTotal": "Total accounts", - "Valid": "Valid", - "Variable": "Variable", - "VariableHelpText": "You can use {{ key }} to read built-in variables in commands", - "VaultHelpText": "1. for security reasons, vault storage must be enabled in the configuration file.
2. after enabled, fill in other configurations, and perform tests.
3. carry out data synchronization, which is one-way, only syncing from the local database to the distant vault, once synchronization is completed, the local database will no longer store passwords, please back up your data.
4. after modifying vault configuration the second time, you need to restart the service.", - "VerificationCodeSent": "Verification code has been sent", - "VerifySignTmpl": "Sms template", - "Version": "Version", - "View": "View", - "ViewMore": "View more", - "ViewPerm": "View", - "ViewSecret": "View ciphertext", - "VirtualAccountDetail": "Virtual account details", - "VirtualAccountHelpMsg": "Virtual accounts are specialized accounts with specific purposes when connecting assets.", - "VirtualAccountUpdate": "Virtual account update", - "VirtualAccounts": "Virtual accounts", - "VirtualApp": "VirtualApp", - "VirtualAppDetail": "Virtual App details", - "VirtualApps": "VirtualApp", - "Volcengine": "Volcengine", - "Warning": "Warning", - "WeCom": "WeCom", - "WeComOAuth": "WeCom OAuth", - "WeComTest": "Test", - "WebCreate": "Create asset - web", - "WebHelpMessage": "Web type assets depend on remote applications, please go to system settings and configure in remote applications", - "WebSocketDisconnect": "Websocket disconnected", - "WebTerminal": "Web terminal", - "WebUpdate": "Update the asset - web", - "Wednesday": "Wed", - "Week": "Week", - "Proportion": "New this week", - "WeekOrTime": "Day/time", - "WildcardsAllowed": "Allowed wildcards", - "WindowsPushHelpText": "Windows assets temporarily do not support key push", - "WordSep": " ", - "Workbench": "Workbench", - "Workspace": "Workspace", - "Yes": "Yes", - "YourProfile": "Your profile", - "ZStack": "ZStack", - "Zone": "Zone", - "ZoneCreate": "Create zone", - "ZoneEnabled": "Enable zone", - "ZoneHelpMessage": "The zone is the location where assets are located, which can be a data center, public cloud, or VPC. Gateways can be set up within the region. When the network cannot be directly accessed, users can utilize gateways to log in to the assets.", - "ZoneList": "Zones", - "ZoneUpdate": "Update the zone", - "TailLog": "Tail Log", - "NoLog": "No log", - "SiteURLTip": "For example: https://demo.jumpserver.org", - "Settings...": "Settings...", - "EmailTemplate": "Template", - "EmailTemplateHelpTip": "Email template is used for sending emails and includes the email subject prefix and email content", - "ForgotPasswordURL": "Forgot password URL", - "ObjectStorage": "Object Storage" + "ACLs": "ACLs", + "APIKey": "Api key", + "AWS_China": "AWS(China)", + "AWS_Int": "AWS(International)", + "About": "About", + "Accept": "Accept", + "AccessIP": "Ip whitelist", + "AccessKey": "Access key", + "Account": "Account", + "NoPermissionInGlobal": "No permission in GLOBAL", + "AccountTemplateList": "Account templates", + "AccountBackup": "Backup accounts", + "AccountBackupCreate": "Create account backup", + "AccountBackupDetail": "Backup account details", + "ManualExecution": "Manual execution", + "AccountChangeSecretDetail": "Change account secret details", + "AccountBackupList": "Backup account", + "AccountBackupUpdate": "Update account backup", + "AccountChangeSecret": "Change account secret", + "AccountDeleteConfirmMsg": "Delete account, continue?", + "AccountExportTips": "The exported information contains sensitive information such as encrypted account numbers. the exported format is an encrypted zip file (if you have not set the encryption password, please go to personal info to set the file encryption password).", + "GatheredAccountList": "Gathered accounts", + "AccountGatherList": "Gather accounts", + "AccountGatherDetail": "Gather account details", + "AccountPushDetail": "Push account details", + "AccountGatherTaskList": "Gather account tasks", + "AccountGatherTaskCreate": "Create gather accounts task", + "AccountGatherTaskUpdate": "Update the gather accounts task", + "AccountList": "Accounts", + "AccountPolicy": "Account policy", + "AccountPolicyHelpText": "For accounts that do not meet the requirements when creating, such as: non-compliant key types and unique key constraints, you can choose the above strategy.", + "AccountPushCreate": "Create push account", + "AccountPushList": "Push accounts", + "MenuAccountTemplates": "Templates", + "AccountPushUpdate": "Update push account", + "AccountStorage": "Account storage", + "AccountTemplate": "Account templates", + "AccountTemplateUpdateSecretHelpText": "The account list shows the accounts created through the template. when the secret is updated, the ciphertext of the accounts created through the template will be updated.", + "Accounts": "Accounts", + "Action": "Action", + "ActionCount": "Action count", + "PermAction": "Permission Action", + "ActionSetting": "Action setting", + "Actions": "Action", + "ActionsTips": "The effects of each authority's agreement are different, click on the icon behind the authority to view", + "Activate": "Activate", + "ActivateSelected": "Activate selected", + "Active": "Active", + "ActiveAsset": "Recently logged in", + "ActiveAssetRanking": "Login asset ranking", + "ActiveUser": "Logged in recently", + "ActiveUsers": "Active users", + "Activity": "Activities", + "Add": "Add", + "AddAccount": "Add account", + "AddAccountResult": "Account batch adding results", + "AddAccountByTemplate": "Add account from template", + "AddAllMembersWarningMsg": "Are you sure add all user to this group ?", + "AddAsset": "Add assets", + "AddAssetToNode": "Add assets to node", + "AddAssetToThisPermission": "Add assets", + "AddInDetailText": "After successful creation or update, add to the details", + "AddNode": "Add node", + "AddNodeToThisPermission": "Add nodes", + "AddPassKey": "Add passkey", + "AddRolePermissions": "Add permissions to the details after successful creation/update", + "AddSuccessMsg": "Add successful", + "AddUserGroupToThisPermission": "Add user groups", + "AddUserToThisPermission": "Add users", + "Address": "Address", + "AdhocDetail": "Command details", + "AdhocManage": "Command", + "AdhocUpdate": "Update the command", + "Advanced": "Advanced settings", + "AfterChange": "After changes", + "AjaxError404": "404 request error", + "AlibabaCloud": "Alibaba cloud", + "Aliyun": "Alibaba cloud", + "All": "All", + "AllAccountTip": "All accounts already added on the asset", + "AllAccounts": "All", + "AllClickRead": "All marked as read", + "AllMembers": "All members", + "AllowInvalidCert": "Ignore certificate check", + "Announcement": "Announcement", + "AnonymousAccount": "Anonymous account", + "AnonymousAccountTip": "Connect to assets without using username and password, only support web type and custom type assets", + "ApiKey": "Api key", + "ApiKeyList": "Authenticate via api key in the header of each request, which differs from one request to another, offering greater security than token method. please consult the documentation for usage.
to minimize the risk of leaks, the secret can only be viewed upon creation, and each user can create up to 10", + "ApiKeyWarning": "To reduce the risk of accesskey leakage, the secret is only provided at creation and cannot be queried later, please keep it safe.", + "AppEndpoint": "App access address", + "AppOps": "Job center", + "AppProvider": "Application providers", + "AppProviderDetail": "Application provider details", + "AppletDetail": "RemoteApp", + "AppletHelpText": "In the upload process, if the application does not exist, create the application; if it exists, update the application.", + "AppletHostCreate": "Add RemoteApp machine", + "AppletHostDetail": "RemoteApp machine", + "AppletHostSelectHelpMessage": "When connecting to an asset, the selection of the application publishing machine is random (but the last used one is preferred). if you want to assign a specific publishing machine to an asset, you can tag it as or ;
when selecting an account for the publishing machine, the following situations will choose the user's own account with the same name or proprietary account (starting with js), otherwise use a public account (starting with jms):
  1. both the publishing machine and application support concurrent;
  2. the publishing machine supports concurrent, but the application does not, and the current application does not use a proprietary account;
  3. the publishing machine does not support concurrent, the application either supports or does not support concurrent, and no application uses a proprietary account;
note: whether the application supports concurrent connections is decided by the developer, and whether the host supports concurrent connections is decided by the single user single session setting in the publishing machine configuration", + "AppletHostUpdate": "Update the remote app publishing machine", + "AppletHostZoneHelpText": "This domain belongs to the system organization", + "AppletHosts": "RemoteApp machine", + "Applets": "RemoteApp", + "Applicant": "Applicant", + "Applications": "Assets", + "ApplyAsset": "Apply for assets", + "ApplyFromCMDFilterRule": "Command filter rules", + "ApplyFromSession": "Session", + "ApplyInfo": "Apply info", + "ApplyRunAsset": "Assets for which operations are requested", + "ApplyRunCommand": "Command for application", + "ApplyRunUser": "Users applying for run", + "Appoint": "Specify", + "ApprovaLevel": "Approval information", + "ApprovalLevel": "Approval level", + "ApprovalProcess": "Approval process", + "Approved": "Agreed", + "ApproverNumbers": "Approvers", + "ApsaraStack": "Alibaba cloud private cloud", + "Asset": "Asset", + "AssetAccount": "Accounts", + "Success/Total": "Success/Total", + "AssetAccountDetail": "Account details", + "AssetAclCreate": "Create asset connect rule", + "AssetAclDetail": "Asset connect rule details", + "AssetAclList": "Asset connect", + "AssetAclUpdate": "Update the asset connect rules", + "AssetAddress": "Asset (ip/hostname)", + "AssetAmount": "Asset amount", + "AssetAndNode": "Assets/nodes", + "AssetBulkUpdateTips": "Network devices, cloud services, web, batch updating of zones not supported", + "AssetChangeSecretCreate": "Create account secret change", + "AssetChangeSecretUpdate": "Update account secret change", + "AssetData": "Asset", + "AssetDetail": "Asset details", + "AssetList": "Assets", + "AssetListHelpMessage": "On the left is the asset tree. right-click to create, delete or modify tree nodes. assets are also organized in node form. on the right are the assets under this node. \n", + "AssetLoginACLHelpMsg": "When logging into assets, it can be audited based on the user's login ip and time segment to determine whether the assets can be logged into", + "AssetLoginACLHelpText": "When logging into assets, it can be audited based on the user's login ip and time segment to determine whether the assets can be logged into", + "AssetName": "Asset name", + "AssetPermission": "Authorization", + "AssetPermissionCreate": "Create asset authorization rule", + "AssetPermissionDetail": "Asset authorization details", + "AssetPermissionHelpMsg": "Asset authorization allows you to select users and assets, grant the assets to users for access. once completed, users can conveniently view these assets. additionally, you can set specific permissions to further define the users' rights to the assets.", + "AssetPermissionRules": "Authorization rules", + "AssetPermissionUpdate": "Update the asset authorization rules", + "AssetPermsAmount": "Asset authorization number", + "AssetProtocolHelpText": "! The protocols supported by the assets are restricted by the platform. Click the settings button to view the protocol settings. If updates are required, please update the platform", + "AssetTree": "Asset tree", + "Assets": "Assets", + "AssetsAmount": "Asset amount", + "AssetsTotal": "Total assets", + "AssignedInfo": "Approval information", + "Assignee": "Handler", + "Assignees": "Pending handler", + "AttrName": "Attribute name", + "AttrValue": "Attribute value", + "Audits": "Audits", + "Auth": "Authentication", + "AuthLimit": "Login restriction", + "AuthSAMLCertHelpText": "Save after uploading the certificate key, then view sp metadata", + "AuthSAMLKeyHelpText": "Sp certificates and keys are used for encrypted communication with idp", + "AuthSaml2UserAttrMapHelpText": "The keys on the left are saml2 user attributes, the values on the right are authentication platform user attributes", + "AuthSecurity": "Auth security", + "AuthSettings": "Authentication configuration", + "AuthUserAttrMapHelpText": "The key on the left belongs to the jumpserver user properties, and the value on the right belongs to the authentication platform user properties", + "Authentication": "Authentication", + "AutoPush": "Auto push", + "Automations": "Automations", + "AverageTimeCost": "Average spend time", + "AwaitingMyApproval": "Assigned", + "Azure": "Azure (china)", + "Backup": "Backup", + "BackupAccountsHelpText": "Backup account information externally. it can be stored in an external system or sent via email, supporting segmented delivery.", + "BadConflictErrorMsg": "Refreshing, please try again later", + "BadRequestErrorMsg": "Request error, please check the filled content", + "BadRoleErrorMsg": "Request error, no permission for this action", + "BaiduCloud": "Baidu cloud", + "BasePort": "Listening ports", + "Basic": "Basic", + "BasicInfo": "Basic information", + "BasicSettings": "General", + "BatchConsent": "Batch Approval", + "BatchDeployment": "Batch deployment", + "BatchProcessing": "{number} items selected", + "BatchReject": "Batch reject", + "BatchTest": "Batch test", + "BatchTransfer": "File transfer", + "BeforeChange": "Before change", + "Beian": "Record", + "BelongAll": "Including at the same time", + "BelongTo": "Any includes", + "Bind": "Binding", + "BindLabel": "Associated tags", + "BindResource": "Associated resources", + "BindSuccess": "Binding successful", + "BlockedIPS": "Locked ips", + "BuiltinVariable": "Built-in variables", + "BulkClearErrorMsg": "Bulk clear failed: ", + "BulkDeleteErrorMsg": "Bulk delete failed: ", + "BulkDeleteSuccessMsg": "Bulk delete successful", + "BulkDeploy": "Bulk deploy", + "BulkRemoveErrorMsg": "Bulk remove failed: ", + "BulkRemoveSuccessMsg": "Bulk remove successful", + "BulkSyncErrorMsg": "Bulk sync failed: ", + "CACertificate": "Ca certificate", + "CAS": "CAS", + "CMPP2": "Cmpp v2.0", + "CTYunPrivate": "Tianyi private cloud", + "CalculationResults": "Error in cron expression", + "CanDragSelect": "Select time period by dragging mouse", + "Cancel": "Cancel", + "CancelCollection": "Cancel favorite", + "CannotAccess": "Can't access the current page", + "Category": "Category", + "CeleryTaskLog": "Celery task log", + "Certificate": "Certificate", + "CertificateKey": "Client key", + "ChangeCredentials": "Change account secrets", + "ChangeCredentialsHelpText": "The secret is the password or key used to connect to the asset. when the secret is changed, the asset will be updated with the new secret", + "ChangeField": "Change field", + "ChangeOrganization": "Change organization", + "ChangePassword": "Change password", + "EditRecipient": "Edit recipient", + "ChangeSecretParams": "Change password parameters", + "ChangeViewHelpText": "Click to switch different views", + "Chat": "Chat", + "ChatHello": "Hello! Can i help you?", + "ChatAI": "Chat AI", + "ChdirHelpText": "By default, the execution directory is the user's home directory", + "CheckAssetsAmount": "Check asset quantity", + "CheckViewAcceptor": "Click to view the acceptance person", + "CleanHelpText": "A scheduled cleanup task will be carried out every day at 2 a.m. the data cleaned up will not be recoverable", + "Cleaning": "Regular clean-up", + "Clear": "Clear", + "ClearErrorMsg": "Clearing failed:", + "ClearScreen": "Clear screen", + "ClearSecret": "Clear secret", + "ClearSelection": "Clear selection", + "ClearSuccessMsg": "Clear successful", + "ClickCopy": "Click to copy", + "ClientCertificate": "Client certificate", + "ClipboardCopyPaste": "Clipboard copy and paste", + "Clone": "Clone", + "Duplicate": "Duplicate", + "Close": "Close", + "CloseConfirm": "Confirm close", + "CloseConfirmMessage": "File has changed, save?", + "CloseStatus": "Completed", + "Closed": "Completed", + "CloudAccountCreate": "Create a cloud account", + "CloudAccountDetail": "Details of cloud account", + "CloudAccountList": "Cloud accounts", + "CloudAccountUpdate": "Update the cloud account", + "CloudCreate": "Create asset - cloud", + "CloudRegionTip": "The region was not obtained, please check the account", + "CloudSource": "Sync source", + "CloudSync": "Cloud provider", + "CloudUpdate": "Update the asset - cloud", + "Cluster": "Cluster", + "CollectionSucceed": "Collection successful", + "Command": "Command", + "CommandConfirm": "Command review", + "CommandFilterACL": "Command filter", + "CommandFilterACLHelpMsg": "By filtering commands, you can control if commands can be sent to assets. based on your set rules, some commands can be allowed while others are prohibited.", + "CommandFilterACLHelpText": "By filtering commands, you can control if commands can be sent to assets. based on your set rules, some commands can be allowed while others are prohibited.", + "CommandFilterAclCreate": "Create command filter rule", + "CommandFilterAclDetail": "Details of command filter rule", + "CommandFilterAclList": "Command filter", + "CommandFilterAclUpdate": "Update the command filter rule", + "CommandFilterRuleContentHelpText": "One command per line", + "CommandFilterRules": "Command filter rules", + "CommandGroup": "Command group", + "CommandGroupCreate": "Create command group", + "CommandGroupDetail": "Command set details", + "CommandGroupList": "Command group", + "CommandGroupUpdate": "Update the command group", + "CommandStorage": "Command storage", + "CommandStorageUpdate": "Update the cmd storage", + "Commands": "Commands", + "CommandsTotal": "Total commands", + "Comment": "Description", + "CommentHelpText": "Description will be displayed when hovered over in the Luna page's user authorization asset tree. Ordinary users can view these remarks, so please do not include sensitive information.", + "CommunityEdition": "Community version", + "Component": "Component", + "ComponentMonitor": "Monitoring", + "ConceptContent": "I want you to act like a python interpreter. i will give you python code, and you will execute it. do not provide any explanations. respond with nothing except the output of the code.", + "ConceptTitle": "🤔 python interpreter", + "Config": "Settings", + "Configured": "Configured", + "Confirm": "Confirm", + "ConfirmPassword": "Confirm password", + "ConnectAssets": "Connect assets", + "ConnectMethod": "Connect method", + "ConnectMethodACLHelpMsg": "Connect methods can be filtered to control whether users can use a certain connect method to login to the asset. according to your set rules, some connect methods can be allowed, while others can be prohibited (globally effective).", + "ConnectMethodACLHelpText": "Connect methods can be filtered to control whether users can use a certain connect method to login to the asset. according to your set rules, some connect methods can be allowed, while others can be prohibited.", + "ConnectMethodAclCreate": "Create connect method control", + "ConnectMethodAclDetail": "Connect method control details", + "ConnectMethodAclList": "Connect method", + "ConnectMethodAclUpdate": "Update the connect method control", + "ConnectWebSocketError": "Connection to websocket failed", + "ConnectionDropped": "Connection disconnected", + "ConnectionToken": "Connection tokens", + "ConnectionTokenList": "The connection token is a type of authentication information that combines identity verification with connecting assets. it supports one-click user login to assets. currently supported components include: koko, lion, magnus, razor, etc.", + "Console": "Console", + "Consult": "Consult", + "ContainAttachment": "With attachment", + "Containers": "Container", + "Contains": "Contains", + "Continue": "Continue", + "ConvenientOperate": "Convenient action", + "Copy": "Copy", + "CopySuccess": "Copy successful", + "Corporation": "Company", + "Create": "Create", + "CreateAccessKey": "Create access key", + "CreateAccountTemplate": "Create account template", + "CreateCommandStorage": "Create command storage", + "CreateEndpoint": "Create endpoint", + "CreateEndpointRule": "Create endpoint rule", + "CreateErrorMsg": "Creation failed", + "CreateNode": "Create node", + "CreatePlaybook": "Create playbook", + "CreateReplayStorage": "Create object storage", + "CreateSuccessMsg": "Successfully created !", + "CreateUserSetting": "User creation", + "Created": "Created", + "Crontab": "Crontab", + "Interval": "Interval", + "CreatedBy": "Creator", + "CriticalLoad": "Serious", + "CronExpression": "Complete crontab expression", + "CrontabHelpText": "If both interval and crontab are set, crontab is prioritized", + "CrontabHelpTip": "For example: perform every sunday at 03:05 <5 3 * * 0>
use 5-digit linux crontab expressions (online tool)
", + "CrontabOfCreateUpdatePage": "", + "CurrentConnectionUsers": "Online users", + "CurrentConnections": "Current connections", + "CurrentUserVerify": "Verify current user", + "Custom": "Custom", + "CustomCol": "Customize display columns", + "CustomCreate": "Create asset - custom", + "CustomFields": "Custom attributes", + "CustomFile": "Please place custom files in the specified directory (data/sms/main.py), and enable configuration item `SMS_CUSTOM_FILE_MD5=` in config.txt", + "CustomHelpMessage": "Custom assets type is dependent on remote applications. please configure it in system settings in the remote applications", + "CustomParams": "The left side are parameters received by the sms platform, and the right side are jumpserver parameters waiting for formatting, which will eventually be as follows:
{\"phone_numbers\": \"123,134\", \"content\": \"verification code: 666666\"}", + "CustomUpdate": "Update the asset - custom", + "CustomUser": "Customized user", + "CycleFromWeek": "Week cycle from", + "CyclePerform": "Execute periodically", + "Danger": "Danger", + "DangerCommand": "Dangerous command", + "DangerousCommandNum": "Total dangerous commands", + "Dashboard": "Dashboard", + "Database": "Database", + "DatabaseCreate": "Create asset - database", + "DatabasePort": "Database protocol port", + "DatabaseUpdate": "Update the asset-database", + "Date": "Date", + "DateCreated": "Creation time", + "DateEnd": "End date", + "DateExpired": "Expiration date", + "DateFinished": "Completion date", + "DateJoined": "Creation date", + "DateLast24Hours": "Last day", + "DateLast3Months": "Last 3 months", + "DateLastHarfYear": "Last 6 months", + "DateLastLogin": "Last login date", + "DateLastMonth": "Last month", + "DateLastSync": "Last synchronization date", + "DateLastWeek": "Last week", + "DateLastYear": "Last year", + "DatePasswordLastUpdated": "Last password update date", + "DateStart": "Start date", + "DateSync": "Sync date", + "DateUpdated": "Update date", + "Day": "Day", + "DeclassificationLogNum": "Password change logs", + "DefaultDatabase": "Default database", + "DefaultPort": "Default port", + "Delete": "Delete", + "DeleteConfirmMessage": "Deletion is irreversible, do you wish to continue?", + "DeleteErrorMsg": "Delete failed", + "DeleteNode": "Delete node", + "DeleteOrgMsg": "User list, user group, asset list, network zone list, manage users, system users, tag management, asset authorization rules", + "DeleteOrgTitle": "Please ensure the following information within the organization has been deleted", + "DeleteReleasedAssets": "Delete released assets", + "DeleteSelected": "Delete selected", + "DeleteSuccess": "Successfully deleted", + "DeleteSuccessMsg": "Successfully deleted", + "ActivateSuccessMsg": "Successful activated", + "DeleteWarningMsg": "Are you sure you want to delete", + "Deploy": "Deployment", + "Description": "Description", + "DestinationIP": "Destination address", + "DestinationPort": "Destination port", + "Detail": "Detail", + "DeviceCreate": "Create asset - device", + "DeviceUpdate": "Update the asset - device", + "Digit": "Number", + "DingTalk": "Dingtalk", + "DingTalkOAuth": "DingTalk OAuth", + "DingTalkTest": "Test", + "Disable": "Disable", + "DisableSelected": "Disable selected", + "DisplayName": "Name", + "Docs": "Document", + "Download": "Download", + "DownloadCenter": "Download center", + "DownloadFTPFileTip": "The current action does not record files, or the file size exceeds the threshold (default 100m), or it has not yet been saved to the corresponding storage", + "DownloadImportTemplateMsg": "Download creation template", + "DownloadReplay": "Download recording", + "DownloadUpdateTemplateMsg": "Download update template", + "DragUploadFileInfo": "Drag files here, or click to upload", + "DuplicateFileExists": "Uploading a file with the same name is not allowed, please delete the file with the same name", + "Duration": "Duration", + "DynamicUsername": "Dynamic username", + "Edit": "Edit", + "Edition": "Version", + "Email": "Email", + "EmailContent": "Custom content", + "EmailTest": "Test connection", + "Empty": "Empty", + "Enable": "Enable", + "EnableKoKoSSHHelpText": "When switched on, connecting to the asset will display ssh client pull-up method", + "Endpoint": "Endpoint", + "EndpointListHelpMessage": "The service endpoint is the address (port) for users to access the service. when users connect to assets, they choose service endpoints based on endpoint rules and asset tags, using them as access points to establish connections and achieve distributed connections to assets", + "EndpointRule": "Endpoint rules", + "EndpointRuleListHelpMessage": "For the server endpoint selection strategy, there are currently two options:
1. specify the endpoint according to the endpoint rule (current page);
2. choose the endpoint through asset tags, with the fixed tag name being 'endpoint' and the value being the name of the endpoint.
the tag matching method is preferred for both methods, as the ip range may conflict, and the tag method exists as a supplement to the rules.", + "Endswith": "Ending with...", + "EnsureThisValueIsGreaterThanOrEqualTo1": "Please make sure this number is greater than or equal to 1", + "EnterForSearch": "Press enter to search", + "EnterRunUser": "Enter running account", + "EnterRunningPath": "Enter running path", + "EnterToContinue": "Press enter to continue", + "EnterUploadPath": "Enter upload path", + "Enterprise": "Enterprise", + "EnterpriseEdition": "Enterprise edition", + "Equal": "Equals", + "Error": "Error", + "ErrorMsg": "Error", + "EsDisabled": "Node is unavailable, please contact administrator", + "EsIndex": "Es provides the default index: jumpserver. if indexing by date is enabled, the entered value will serve as the index prefix", + "EsUrl": "Cannot include special char `#`; eg: http://es_user:es_password@es_host:es_port", + "Every": "Every", + "Exclude": "Does not include", + "ExcludeAsset": "Skipped assets", + "ExcludeSymbol": "Exclude char", + "ExecCloudSyncErrorMsg": "The cloud account configuration is incomplete, please update and try again.", + "Execute": "Execute", + "ExecuteOnce": "Execute once", + "ExecutionDetail": "Execution details", + "ExecutionList": "Executions", + "ExistError": "This element already exists", + "Existing": "Already exists", + "ExpirationTimeout": "Expiration timeout (seconds)", + "Expire": "Expired", + "Expired": "Expiration date", + "Export": "Export", + "ExportAll": "Export all", + "ExportOnlyFiltered": "Export filtered items", + "ExportOnlySelectedItems": "Export selected items", + "ExportRange": "Export range", + "FC": "Fusion compute", + "Failed": "Failed", + "FailedAsset": "Failed assets", + "FaviconTip": "Note: website icon (suggested image size: 16px*16px)", + "Features": "Features", + "FeiShu": "FeiShu", + "FeiShuOAuth": "Feishu OAuth", + "FeiShuTest": "Test", + "FieldRequiredError": "This field is required", + "FileExplorer": "File explorer", + "FileManagement": "File manager", + "FileNameTooLong": "File name too long", + "FileSizeExceedsLimit": "File size exceeds limit", + "FileTransfer": "File transfer", + "FileTransferBootStepHelpTips1": "Select one asset or node", + "FileTransferBootStepHelpTips2": "Select running account and input command", + "FileTransferBootStepHelpTips3": "Transfer,display output results", + "FileTransferNum": "Number of file transfers", + "FileType": "File type", + "Filename": "File name", + "FingerPrint": "Fingerprint", + "Finished": "Complete", + "FinishedTicket": "Complete ticket", + "FirstLogin": "First login", + "FlowSetUp": "Flow setup", + "Footer": "Footer", + "FormatError": "Format error", + "Friday": "Fri", + "From": "From", + "FromTicket": "From the ticket", + "FullName": "Full name", + "FullySynchronous": "Assets completely synchronized", + "FullySynchronousHelpTip": "Whether to continue synchronizing such assets when the asset conditions do not meet the matching policy rules", + "GCP": "Google cloud", + "GPTCreate": "Create asset - gpt", + "GPTUpdate": "Update the asset - gpt", + "GatewayCreate": "Create gateway", + "GatewayList": "Gateways", + "GatewayUpdate": "Update the gateway", + "GatherAccounts": "Gather accounts", + "GatherAccountsHelpText": "Collect account information on assets. the collected account information can be imported into the system for centralized management.", + "GeneralAccounts": "General accounts", + "Generate": "Generate", + "GenerateAccounts": "Regenerate account", + "GenerateSuccessMsg": "Account creation successful", + "GeneralSetting": "General", + "GoHomePage": "Go to homepage", + "Goto": "Goto", + "GrantedAssets": "Authorized assets", + "GreatEqualThan": "Greater than or equal to", + "GroupsAmount": "User group", + "HandleTicket": "Handle tickets", + "Hardware": "Hardware information", + "HardwareInfo": "Hardware information", + "HasImportErrorItemMsg": "There are import failures, click on the left x to view the failure reasons, after editing the table, you can continue to import failures.", + "Help": "Help", + "HelpDocumentTip": "Document url for navigation bar 'help -> document' redirection.", + "HelpSupportTip": "Support url for the navigation bar 'help -> support' redirection.", + "HighLoad": "Higher", + "HistoricalSessionNum": "Total historical sessions", + "History": "History", + "HistoryDate": "Date", + "HistoryPassword": "Historical password", + "HistoryRecord": "History record", + "Host": "Asset", + "HostCreate": "Create asset - host", + "HostDeployment": "Deploy publishing machine", + "HostList": "Host", + "HostUpdate": "Update the asset - host", + "HostnameStrategy": "Used to generate hostnames for assets. for example: 1. instance name (instancedemo); 2. instance name and part of ip (last two letters) (instancedemo-250.1)", + "Hour": "Hour", + "HuaweiCloud": "Huawei cloud", + "HuaweiPrivateCloud": "Huawei private cloud", + "IAgree": "I agree", + "ID": "Id", + "IP": "Ip", + "IPLoginLimit": "Ip restriction", + "IPMatch": "Ip matching", + "IPNetworkSegment": "Ip segment", + "Id": "Id", + "IdeaContent": "I want you to act as a linux terminal. i will input the commands, you will respond with what the terminal should display. i hope you to reply only in a unique code block, not others. no interpretations. when i need to tell you something, i'm gonna put the words in braces {note text}", + "IdeaTitle": "🌱 linux terminal", + "IdpMetadataHelpText": "Either idp metadata url or idp metadata xml is acceptable, with idp metadata url having higher priority", + "IdpMetadataUrlHelpText": "Load idp metadata from remote address", + "ImageName": "Image name", + "Images": "Image", + "Import": "Import", + "ImportAll": "Import all", + "ImportFail": "Import failed", + "ImportLdapUserTip": "Please submit ldap configuration before import", + "ImportLdapUserTitle": "Ldap user", + "ImportLicense": "Import license", + "ImportLicenseTip": "Please import license", + "ImportMessage": "Please go to the corresponding type of page to import data", + "ImportOrg": "Import organization", + "InActiveAsset": "Not recently logged in", + "InActiveUser": "No recent login", + "InAssetDetail": "Update account info in asset details", + "Inactive": "Disabled", + "Index": "Index", + "Info": "Information", + "InformationModification": "Information Modification", + "InheritPlatformConfig": "Inherited from platform configuration, to change, please modify the configuration in the platform", + "InitialDeploy": "Initialization deployment", + "Input": "Input", + "InputEmailAddress": "Please enter the correct email address", + "InputMessage": "Enter message...", + "InputPhone": "Phone number", + "MIN_LENGTH_ERROR": "Passwords must be at least {0} characters.", + "UPPER_CASE_REQUIRED": "Must contain uppercase letters", + "LOWER_CASE_REQUIRED": "Must contain lowercase letters", + "NUMBER_REQUIRED": "Must contain numbers", + "SPECIAL_CHAR_REQUIRED": "Must contain special characters", + "InstanceAddress": "Instance address", + "InstanceName": "Instance name", + "InstancePlatformName": "Instance platform name", + "Interface": "Appearance", + "InterfaceSettings": "Appearance", + "IntervalOfCreateUpdatePage": "Unit: hour", + "InvalidJson": "Invalid json", + "InviteSuccess": "Invitation successful", + "InviteUser": "Invite", + "InviteUserInOrg": "Invite users to join this organization", + "Ip": "IP", + "IpDomain": "Address", + "IpGroup": "Ip group", + "IpGroupHelpText": "* indicates match all. for example: 192.168.10.1, 192.168.1.0/24, 10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64", + "IsActive": "Active", + "IsAlwaysUpdate": "Keeping assets up to date", + "IsAlwaysUpdateHelpTip": "Whether to synchronize and update asset information, including hostname, ip, platform, domain, node, etc. each time a synchronization task is performed", + "IsFinished": "Is it done", + "IsLocked": "Suspend", + "IsSuccess": "Success", + "IsSyncAccountHelpText": "Upon collection completion, the collected account will be synced to asset", + "IsSyncAccountLabel": "Sync to assets", + "JDCloud": "JD cloud", + "Job": "Job", + "JobCenter": "Job center", + "JobCreate": "Create job", + "JobDetail": "Job details", + "JobExecutionLog": "Job logs", + "JobManagement": "Jobs", + "JobUpdate": "Update the job", + "KingSoftCloud": "KingSoft Cloud", + "KokoSetting": "KoKo", + "LDAPUser": "LDAP Users", + "Tag": "Tag", + "LAN": "LAN", + "TagCreate": "Create tag", + "TagInputFormatValidation": "Tag format error, the correct format is: name:value", + "TagList": "Tags", + "TagUpdate": "Update the tag", + "Language": "Language", + "LarkOAuth": "Lark OAuth", + "Last30": "Recent 30 items", + "Last30Days": "Monthly", + "Last7Days": "Weekly", + "LastPublishedTime": "Last publish time", + "Ldap": "LDAP", + "LdapBulkImport": "User import", + "LdapConnectTest": "Test connection", + "LdapLoginTest": "Test login", + "Length": "Length", + "LessEqualThan": "Less than or equal to", + "LevelApproval": "Level approval", + "License": "License", + "LicenseExpired": "The license has expired", + "LicenseFile": "License file", + "LicenseForTest": "Test purpose license, this license is only for testing (poc) and demonstration", + "LicenseReachedAssetAmountLimit": "The assets has exceeded the license limit", + "LicenseWillBe": "License expiring soon", + "Loading": "Loading", + "LockedIP": "Locked ip {count}", + "Log": "Log", + "LogData": "Log data", + "LogOfLoginSuccessNum": "Total successful login", + "Logging": "Log record", + "LoginAssetConfirm": "Asset connect review", + "LoginAssetToday": "Active assets today", + "LoginAssets": "Active assets", + "LoginConfirm": "Login review", + "LoginConfirmUser": "Confirm by", + "LoginCount": "Login times", + "LoginDate": "Login date", + "LoginFailed": "Login failed", + "LoginFrom": "Login source", + "LoginImageTip": "Note: it will appear on the enterprise user login page (recommended image size: 492*472px)", + "LoginLog": "Login logs", + "LoginLogTotal": "Total login logs", + "LoginNum": "Total login logs", + "LoginPasswordSetting": "Login password", + "LoginRequiredMsg": "The account has logged out, please login again.", + "LoginSSHKeySetting": "Login SSH Key", + "LoginSucceeded": "Login successful", + "LoginTitleTip": "Note: it will be displayed on the enterprise edition user ssh login koko login page (e.g.: welcome to use jumpserver open source bastion)", + "LoginUserRanking": "Login account ranking", + "LoginUserToday": "Users logged today", + "LoginUsers": "Active account", + "LogoIndexTip": "Tip: it will be displayed in the upper left corner of the page (recommended image size: 185px*55px)", + "LogoLogoutTip": "Tip: it will be displayed on the web terminal page of enterprise edition users (recommended image size: 82px*82px)", + "Logout": "Sign out", + "LogsAudit": "Activities", + "Lowercase": "Lowercase", + "LunaSetting": "Luna", + "MFAErrorMsg": "MFA errors, please check", + "MFAOfUserFirstLoginPersonalInformationImprovementPage": "Enable multi-factor authentication to make your account more secure.
after enabling, you will enter the multi-factor authentication binding process the next time you login; you can also directly bind in (personal information->quick modification->change multi-factor settings)!", + "MFAOfUserFirstLoginUserGuidePage": "In order to protect your and the company's security, please carefully safeguard important sensitive information such as your account, password, and key (for example, set a complex password, and enable multi-factor authentication)
personal information such as email, mobile number, and wechat are only used for user authentication and platform internal message notifications.", + "MailRecipient": "Email recipient", + "MailSend": "Sending", + "ManualAccount": "Manual accounts", + "ManualAccountTip": "Manual input of username/password upon login", + "ManyChoose": "Select multiple", + "MarkAsRead": "Mark as read", + "Marketplace": "App market", + "Match": "Match", + "MatchIn": "In...", + "MatchResult": "Match results", + "MatchedCount": "Match results", + "Members": "Members", + "MenuAccounts": "Accounts", + "MenuAcls": "Acls", + "MenuAssets": "Assets", + "MenuMore": "Others", + "MenuPermissions": "Policies", + "MenuUsers": "Users", + "Message": "Message", + "MessageType": "Message type", + "MfaLevel": "MFA", + "Min": "Min", + "Modify": "Edit", + "Module": "Module", + "Monday": "Mon", + "Monitor": "Monitor", + "Month": "Month", + "More": "More", + "MoreActions": "Actions", + "MoveAssetToNode": "Move assets to nodes", + "MsgSubscribe": "Subscription", + "MyAssets": "My assets", + "MyTickets": "Submitted", + "Name": "Name", + "NavHelp": "Navigation", + "NeedReLogin": "Need to re-login", + "New": "Create", + "NewChat": "New chat", + "NewCount": "Add", + "NewCron": "Generate cron", + "NewDirectory": "Create new directory", + "NewFile": "Create new file", + "NewPassword": "New password", + "NewPublicKey": "New Public Key", + "NewSSHKey": "New SSH Key", + "NewSyncCount": "New sync", + "Next": "Next", + "No": "No", + "NoContent": "No content", + "NoData": "No data available", + "NoFiles": "No file, upload on the left", + "NoPermission": "No permissions", + "NoPermission403": "403 no permission", + "NoPermissionVew": "No permission to view the current page", + "NoUnreadMsg": "No unread messages", + "Node": "Node", + "NodeAmount": "Nodes", + "NodeInformation": "Node information", + "NodeSearchStrategy": "Node search strategy", + "NormalLoad": "Normal", + "NotEqual": "Not equal to", + "NotSet": "Not set", + "NotSpecialEmoji": "Special emoji input not allowed", + "Nothing": "None", + "NotificationConfiguration": "Notification Configuration", + "Notifications": "Notifications", + "Now": "Now", + "Number": "No.", + "NumberOfVisits": "Visits", + "OAuth2": "OAuth2", + "OAuth2LogoTip": "Note: authentication provider (recommended image size: 64px*64px)", + "OIDC": "OIDC", + "ObjectNotFoundOrDeletedMsg": "No corresponding resources found or it has been deleted.", + "Offline": "Offline", + "OfflineSelected": "Offline selected", + "OfflineSuccessMsg": "Successfully offline", + "OfflineUpload": "Offline upload", + "OldPassword": "Old password", + "OldPublicKey": "Old Public Key", + "OneAssignee": "First-level approver", + "OneAssigneeType": "First-level handler type", + "OneClickReadMsg": "Are you sure you want to mark the current information as read?", + "OnlineSession": "Online devices", + "OnlineSessionHelpMsg": "Unable to log out of the current session because it is the current user's online session. currently only users logged in via web are being logged.", + "OnlineSessions": "Online sessions", + "OnlineUserDevices": "Online user devices", + "OnlyMailSend": "Current support for email sending", + "OnlySearchCurrentNodePerm": "Only search the current node's authorization", + "OpenCommand": "Open command", + "OpenStack": "Openstack", + "OpenStatus": "In approval", + "OpenTicket": "Create ticket", + "OperateLog": "Operate logs", + "OperationLogNum": "Operation logs", + "Options": "Options", + "OrgAdmin": "Organization admin", + "OrgAuditor": "Organizational auditors", + "OrgName": "Authorized organization name", + "OrgRole": "Organizational roles", + "OrgRoleHelpMsg": "Organization roles are roles tailored to individual organizations within the platform. these roles are assigned when inviting users to join a particular organization and dictate their permissions and access levels within that organization. unlike system roles, organization roles are customizable and apply only within the scope of the organization they are assigned to.", + "OrgRoleHelpText": "The org role is the user's role within the current organization", + "OrgRoles": "Organizational roles", + "OrgUser": "Organize users", + "OrganizationCreate": "Create organization", + "OrganizationDetail": "Organization details", + "OrganizationList": "Organizations", + "OrganizationManage": "Manage orgs", + "OrganizationUpdate": "Update the organization", + "OrgsAndRoles": "Org and roles", + "Other": "Other", + "Output": "Output", + "Overview": "Overview", + "PageNext": "Next", + "PagePrev": "Previous", + "Params": "Parameter", + "ParamsHelpText": "Password parameter settings, currently only effective for assets of the host type.", + "PassKey": "Passkey", + "Passkey": "Passkey", + "PasskeyAddDisableInfo": "Your authentication source is {source}, and adding a passkey is not supported", + "Passphrase": "Key password", + "Password": "Password", + "PasswordAndSSHKey": "Password & SSH Key", + "PasswordChangeLog": "Password change", + "PasswordExpired": "Password expired", + "PasswordPlaceholder": "Please enter password", + "PasswordRecord": "Password record", + "PasswordRule": "Password rules", + "PasswordSecurity": "User password", + "PasswordStrategy": "Secret strategy", + "PasswordWillExpiredPrefixMsg": "Password will be in", + "PasswordWillExpiredSuffixMsg": "It will expire in days, please change your password as soon as possible.", + "Paste": "Paste", + "Pause": "Pause", + "PauseTaskSendSuccessMsg": "Task pausing issued, please refresh and check later", + "Pending": "Pending", + "PermAccount": "Authorized accounts", + "PermUserList": "Authorized users", + "PermissionCompany": "Authorized companies", + "PermissionName": "Authorization rule name", + "Permissions": "Permission", + "PersonalInformationImprovement": "Complete personal information", + "PersonalSettings": "Personal Settings", + "Phone": "Phone", + "Plan": "Plan", + "Platform": "Platform", + "PlatformCreate": "Create platform", + "PlatformDetail": "Platform details", + "PlatformList": "Platforms", + "PlatformPageHelpMsg": "The platform categorizes assets, such as windows, linux, network devices, etc. configuration settings, such as protocols, gateways, etc., can also be specified on the platform to determine whether certain features are enabled on assets.", + "PlatformProtocolConfig": "Platform protocol configuration", + "PlatformUpdate": "Update the platform", + "PlaybookDetail": "Playbook details", + "PlaybookManage": "Playbook", + "PlaybookUpdate": "Update the playbook", + "PleaseAgreeToTheTerms": "Please agree to the terms", + "PolicyName": "Policy name", + "Port": "Port", + "Ports": "Port", + "Preferences": "Preferences", + "Primary": "Primary", + "Priority": "Priority", + "PrivateCloud": "Private cloud", + "PrivateKey": "Private key", + "Privileged": "Privileged", + "PrivilegedFirst": "Privileged first", + "PrivilegedOnly": "Privileged accounts only", + "PrivilegedTemplate": "Privileged", + "Product": "Product", + "ProfileSetting": "Profile info", + "Project": "Project name", + "Prompt": "Prompt", + "Proportion": "Proportion", + "ProportionOfAssetTypes": "Asset type proportion", + "Protocol": "Protocol", + "Protocols": "Protocols", + "Proxy": "Agent", + "PublicCloud": "Public cloud", + "PublicKey": "Public key", + "Publish": "Publish", + "PublishAllApplets": "Publish all applications", + "PublishStatus": "Release status", + "Push": "Push", + "PushAccount": "Push accounts", + "PushAccountsHelpText": "Pushing the account to the target asset allows for configuring different push methods for assets on different platforms.", + "PushParams": "Push parameters", + "Qcloud": "Tencent cloud", + "QcloudLighthouse": "Tencent cloud (lightweight application server)", + "QingYunPrivateCloud": "Qingyun private cloud", + "Queue": "Queue", + "QuickAdd": "Quick add", + "QuickJob": "Adhoc", + "QuickUpdate": "Quick update", + "Radius": "Radius", + "Ranking": "Ranking", + "RazorNotSupport": "Rdp client session, monitoring not supported", + "ReLogin": "Login again", + "ReLoginTitle": "Current third-party login user (cas/saml), not bound to mfa and does not support password verification, please login again.", + "RealTimeData": "Real-time", + "Reason": "Reason", + "Receivers": "Receiver", + "RecentLogin": "Recent login", + "RecentSession": "Recent sessions", + "RecentlyUsed": "Recently", + "RecipientHelpText": "If both recipient a and b are set, the account's key will be split into two parts", + "RecipientServer": "Receiving server", + "Reconnect": "Reconnect", + "Refresh": "Refresh", + "RefreshHardware": "Refresh hardware info", + "Regex": "Regular expression", + "Region": "Region", + "RegularlyPerform": "Periodic execution", + "Reject": "Reject", + "Rejected": "Rejected", + "ReleasedCount": "Released", + "RelevantApp": "Application", + "RelevantAsset": "Assets", + "RelevantAssignees": "Related recipient", + "RelevantCommand": "Command", + "RelevantSystemUser": "System user", + "RemoteAddr": "Remote address", + "Remove": "Remove", + "RemoveAssetFromNode": "Remove asset from node", + "RemoveSelected": "Remove selected", + "RemoveSuccessMsg": "Successfully removed", + "Rename": "Rename", + "RenameNode": "Rename nodes", + "ReplaceNodeAssetsAdminUserWithThis": "Replace asset admin", + "Replay": "Playback", + "ReplaySession": "Session replay", + "ReplayStorage": "Object storage", + "ReplayStorageCreateUpdateHelpMessage": "Notice: current sftp storage only supports account backup, video storage is not yet supported.", + "ReplayStorageUpdate": "Update the object storage", + "Reply": "Reply", + "RequestAssetPerm": "Request asset authorization", + "RequestPerm": "Authorization request", + "RequestTickets": "New ticket", + "RequiredAssetOrNode": "Please select at least one asset or node", + "RequiredContent": "Please input command", + "RequiredEntryFile": "This file acts as the entry point for running and must be present", + "RequiredRunas": "Please enter the execution user", + "RequiredSystemUserErrMsg": "Please select account", + "RequiredUploadFile": "Please upload the file!", + "Reset": "Reset", + "ResetAndDownloadSSHKey": "Reset and download key", + "ResetMFA": "Reset mfa", + "ResetMFAWarningMsg": "Are you sure you want to reset the user's mfa?", + "ResetMFAdSuccessMsg": "Mfa reset successful, user can reset mfa again", + "ResetPassword": "Reset password", + "ResetPasswordNextLogin": "Password must be changed during next login", + "ResetPasswordSuccessMsg": "Reset password message sent to user", + "ResetPasswordWarningMsg": "Are you sure you want to send the password reset email for the user", + "ResetPublicKeyAndDownload": "Reset and download ssh key", + "ResetSSHKey": "Reset ssh key", + "ResetSSHKeySuccessMsg": "Email task submitted, user will receive a url to reset shortly", + "ResetSSHKeyWarningMsg": "Are you sure you want to send a reset ssh key email to the user?", + "Resource": "Resources", + "ResourceType": "Resource type", + "RestoreButton": "Restore", + "RestoreDefault": "Reset to default", + "RestoreDialogMessage": "Are you sure you want to restore to default initialization?", + "RestoreDialogTitle": "Do you confirm?", + "Result": "Result", + "Resume": "Recovery", + "ResumeTaskSendSuccessMsg": "Recovery task issued, please refresh later", + "Retry": "Retry", + "Reviewer": "Approvers", + "Role": "Role", + "RoleCreate": "Create role", + "RoleDetail": "Role details", + "RoleInfo": "Role information", + "RoleList": "Roles", + "RoleUpdate": "Update the role", + "RoleUsers": "Authorized users", + "Rows": "Row", + "Rule": "Condition", + "RuleCount": "Condition quantity", + "RuleDetail": "Rule details", + "RuleRelation": "Relationship conditions", + "RuleRelationHelpTip": "And: the action will be executed only when all conditions are met; or: the action will be executed as long as one condition is met", + "RuleSetting": "Condition settings", + "Rules": "Rules", + "Run": "Execute", + "RunAgain": "Execute again", + "RunAs": "Run user", + "RunCommand": "Run command", + "RunJob": "Run job", + "RunSucceed": "Task successfully completed", + "RunTaskManually": "Manually execute", + "RunasHelpText": "Enter username for running script", + "RunasPolicy": "Account policy", + "RunasPolicyHelpText": "When there are no users currently running on the asset, what account selection strategy should be adopted. skip: do not execute. prioritize privileged accounts: if there are privileged accounts, select them first; if not, select regular accounts. only privileged accounts: select only from privileged accounts; if none exist, do not execute.", + "RunningPath": "Running path", + "RunningPathHelpText": "Enter the run path of the script, this setting only applies to shell scripts", + "RunningTimes": "Last 5 run times", + "SCP": "Sangfor cloud platform", + "SMS": "Message", + "SMSProvider": "SMS service provider", + "SMTP": "Server", + "SSHKey": "SSH Key", + "SSHKeyOfProfileSSHUpdatePage": "You can reset and download the SSH public key by clicking the button below, or copy your SSH public key and submit it.", + "SSHPort": "SSH Port", + "SSHSecretKey": "SSH Key", + "SafeCommand": "Secure command", + "SameAccount": "Same", + "SameAccountTip": "Accounts with the same username as authorized users", + "SameTypeAccountTip": "An account with the same username and key type already exists", + "Saturday": "Sat", + "Save": "Save", + "SaveAdhoc": "Save command", + "SaveAndAddAnother": "Save & Continue", + "SaveCommand": "Save command", + "SaveCommandSuccess": "Command saved successfully", + "SaveSetting": "Synchronization settings", + "SaveSuccess": "Save successful", + "SaveSuccessContinueMsg": "Creation successful, you can continue to add content after updating.", + "ScrollToBottom": "Scroll to the bottom", + "ScrollToTop": "Scroll to top", + "Search": "Search", + "SearchAncestorNodePerm": "Search for authorizations simultaneously on the current node and ancestor nodes", + "Secret": "Password", + "SecretKey": "Key", + "SubscriptionID": "Subscription authorization ID", + "SecretKeyStrategy": "Password policy", + "Secure": "Security", + "Security": "Security", + "Select": "Select", + "SelectAdhoc": "Select command", + "SelectAll": "Select all", + "SelectAtLeastOneAssetOrNodeErrMsg": "Select at least one asset or node", + "SelectAttrs": "Select attributes", + "SelectByAttr": "Attribute filter", + "SelectFile": "Select file", + "SelectKeyOrCreateNew": "Select tag key or create new one", + "SelectLabelFilter": "Select tag for search", + "SelectPlatforms": "Select platform", + "SelectProperties": "Attributes", + "SelectResource": "Select resources", + "SelectTemplate": "Select template", + "SelectValueOrCreateNew": "Select tag value or create new one", + "Selected": "Selected", + "Selection": "Selection", + "Selector": "Selector", + "Send": "Send", + "SendVerificationCode": "Send verification code", + "SerialNumber": "Serial number", + "Server": "Server", + "ServerAccountKey": "Service account key", + "ServerError": "Server error", + "ServerTime": "Server time", + "Session": "Session", + "SessionCommands": "Session commands", + "SessionConnectTrend": "Session connection trends", + "SessionData": "Session data", + "SessionDetail": "Session details", + "SessionID": "Session id", + "SessionList": "Asset sessions", + "SessionMonitor": "Monitor", + "SessionOffline": "Historical sessions", + "SessionOnline": "Online sessions", + "SessionSecurity": "Asset session", + "SessionState": "Session status", + "SessionTerminate": "Session termination", + "SessionTrend": "Session trends", + "Sessions": "Sessions", + "SessionsAudit": "Sessions", + "SessionsNum": "Sessions", + "Set": "Configured", + "SetDingTalk": "Dingtalk oauth", + "SetFailed": "Setting failed", + "SetFeiShu": "Set feishu authentication", + "SetMFA": "Multi-factor authentication", + "SetSuccess": "Successfully set", + "SetToDefault": "Set as default", + "Setting": "Setting", + "SettingInEndpointHelpText": "Configure service address and port in system settings / component settings / server endpoints", + "Settings": "System settings", + "Show": "Display", + "ShowAssetAllChildrenNode": "Show all sub-nodes assets", + "ShowAssetOnlyCurrentNode": "Only show current node assets", + "ShowNodeInfo": "Show node details", + "SignChannelNum": "Channel signature", + "SiteMessage": "Notifications", + "SiteMessageList": "Notifications", + "Skip": "Skip this asset", + "Skipped": "Skipped", + "Slack": "Slack", + "SlackOAuth": "Slack OAuth", + "Source": "Source", + "SourceIP": "Source address", + "SourcePort": "Source port", + "Spec": "Specific", + "SpecAccount": "Specified", + "SpecAccountTip": "Specify username to choose authorized account", + "SpecialSymbol": "Special char", + "SpecificInfo": "Special information", + "SshKeyFingerprint": "Ssh fingerprint", + "Startswith": "Starts with...", + "State": "Status", + "StateClosed": "Is closed", + "Status": "Status", + "StatusGreen": "Recently in good condition", + "StatusRed": "Last task execution failed", + "StatusYellow": "There have been recent failures", + "Step": "Step", + "Stop": "Stop", + "Storage": "Storage", + "StorageSetting": "Storage", + "Strategy": "Strategy", + "StrategyCreate": "Create policy", + "StrategyDetail": "Policy details", + "StrategyHelpTip": "Identify the unique attributes of assets (such as platforms) based on priority of strategies; when an asset's attribute (like nodes) can be configured to multiple, all actions of the strategies will be executed.", + "StrategyList": "Policy", + "StrategyUpdate": "Update the policy", + "SuEnabled": "Enable switch", + "SuFrom": "Switch from", + "Submit": "Submit", + "Success": "Success", + "SuccessAsset": "Successful assets", + "SuccessfulOperation": "Action successful", + "Summary(success/total)": " overview( successful/total )", + "Sunday": "Sun", + "SuperAdmin": "Super administrator", + "SuperOrgAdmin": "Super admin + organization admin", + "Support": "Support", + "SupportedProtocol": "Protocols", + "SupportedProtocolHelpText": "Set supported protocols for the asset, you can modify the custom configurations, such as sftp directory, rdp ad domain, etc., by clicking on the set button", + "Sync": "Sync", + "SyncDelete": "Sync deletion", + "SyncDeleteSelected": "Sync deletion selected", + "SyncErrorMsg": "Sync failed", + "SyncInstanceTaskCreate": "Create sync task", + "SyncInstanceTaskDetail": "Sync task details", + "SyncInstanceTaskHistoryAssetList": "Synchronize instance", + "SyncInstanceTaskHistoryList": "Synchronization history", + "SyncInstanceTaskList": "Synchronization task", + "SyncInstanceTaskUpdate": "Update the sync task", + "SyncProtocolToAsset": "Sync protocols to assets", + "SyncSelected": "Sync selected", + "SyncSetting": "Sync settings", + "SyncStrategy": "Sync policy", + "SyncSuccessMsg": "Sync succeeded", + "SyncTask": "Sync tasks", + "SyncUpdateAccountInfo": "Sync new secret to accounts", + "SyncUser": "Sync users", + "SyncedCount": "Synchronized", + "SystemError": "System error", + "SystemRole": "System roles", + "SystemRoleHelpMsg": "System roles are roles that apply universally across all organizations within the platform. these roles allow you to define specific permissions and access levels for users across the entire system. changes made to system roles will affect all organizations using the platform.", + "SystemRoles": "System roles", + "SystemSetting": "System settings", + "SystemTools": "Tools", + "TableColSetting": "Select visible attribute columns", + "TableSetting": "Table preferences", + "Target": "Target", + "TargetResources": "Target resource", + "Task": "Task", + "TestSelected": "Test selected", + "TaskDetail": "Task details", + "TaskDone": "Task finished", + "TaskID": "Task id", + "TaskList": "Tasks", + "SystemTasks": "Tasks", + "TaskMonitor": "Monitoring", + "TechnologyConsult": "Technical consultation", + "TempPasswordTip": "The temporary password is valid for 300 seconds and becomes invalid immediately after use", + "TempToken": "Temporary tokens", + "TemplateAdd": "Add from template", + "TemplateCreate": "Create template", + "TemplateHelpText": "When selecting a template to add, accounts that do not exist under the asset will be automatically created and pushed", + "TemplateManagement": "Templates", + "TencentCloud": "Tencent cloud", + "Terminal": "Components", + "TerminalDetail": "Terminal details", + "TerminalUpdate": "Update the terminal", + "TerminalUpdateStorage": "Update the terminal storage", + "Terminate": "Terminate", + "TerminateTaskSendSuccessMsg": "Task termination has been issued, please refresh and check later", + "TermsAndConditions": "Terms and conditions", + "Test": "Test", + "TestAccountConnective": "Test connectivity", + "TestAssetsConnective": "Test connectivity", + "TestConnection": "Test connection", + "TestGatewayHelpMessage": "If nat port mapping is used, please set it to the real port listened to by ssh", + "TestGatewayTestConnection": "Test connect to gateway", + "TestLdapLoginTitle": "Test ldap user login", + "TestNodeAssetConnectivity": "Test connectivity of asset nodes", + "TestPortErrorMsg": "Port error, please re-enter", + "TestSuccessMsg": "Test succeeded", + "Thursday": "Thu", + "Ticket": "Ticket", + "TicketDetail": "Ticket details", + "TicketFlow": "Ticket flow", + "TicketFlowCreate": "Create approval flow", + "TicketFlowUpdate": "Update the approval flow", + "Tickets": "Tickets", + "Time": "Time", + "TimeDelta": "Time cost", + "TimeExpression": "Time expression", + "Timeout": "Timeout", + "TimeoutHelpText": "When this value is -1, no timeout is specified.", + "Timer": "Timer", + "Title": "Title", + "To": "To", + "Today": "Today", + "TodayFailedConnections": "Failed sessions today", + "Token": "Token", + "Total": "Total", + "TotalJobFailed": "Failed execution actions", + "TotalJobLog": "Total job executions", + "TotalJobRunning": "Running jobs", + "Transfer": "Transfer", + "Tuesday": "Tue", + "TwoAssignee": "Subscribe to authorization id", + "TwoAssigneeType": "Secondary recipient type", + "Type": "Type", + "TypeTree": "Type tree", + "Types": "Type", + "UCloud": "Ucloud uhost", + "UnSyncCount": "Not synced", + "Unbind": "Unlink", + "UnbindHelpText": "Local users are the source of this authentication and cannot be unbound", + "Unblock": "Unlock", + "UnblockSelected": "Unblock selected", + "UnblockSuccessMsg": "Unlock successful", + "UnblockUser": "Unlock user", + "UniqueError": "Only one of the following properties can be set", + "UnlockSuccessMsg": "Unlock successful", + "UnselectedOrg": "No organization selected", + "UnselectedUser": "No user selected", + "UpDownload": "Upload & download", + "Update": "Update", + "UpdateAccount": "Update the account", + "UpdateAccountTemplate": "Update the account template", + "UpdateAssetDetail": "Configure more information", + "UpdateAssetUserToken": "Update account authentication information", + "UpdateEndpoint": "Update the endpoint", + "UpdateEndpointRule": "Update the endpoint rule", + "UpdateErrorMsg": "Update failed", + "UpdateNodeAssetHardwareInfo": "Update node assets hardware information", + "UpdatePlatformHelpText": "The asset will be updated only if the original platform type is the same as the selected platform type. if the platform types before and after the update are different, it will not be updated.", + "UpdateSSHKey": "Change ssh public key", + "UpdateSelected": "Update selected", + "UpdateSuccessMsg": "Successfully updated !", + "Updated": "Updated", + "Upload": "Upload", + "UploadCsvLth10MHelpText": "Only csv/xlsx can be uploaded, and no more than 10m", + "UploadDir": "Upload path", + "UploadFileLthHelpText": "Less than {limit}m supported", + "UploadPlaybook": "Upload playbook", + "UploadSucceed": "Upload succeeded", + "UploadZipTips": "Please upload a file in zip format", + "Uploading": "Uploading file", + "Uppercase": "Uppercase", + "UseProtocol": "User agreement", + "UseSSL": "Use ssl/tls", + "User": "User", + "UserAclLists": "Login ACLs", + "UserAssetActivity": "User/asset activity", + "UserCreate": "Create user", + "UserData": "User", + "UserDetail": "User details", + "UserGroupCreate": "Create user group", + "UserGroupDetail": "User group details", + "UserGroupList": "Groups", + "UserGroupUpdate": "Update the user group", + "UserGroups": "Groups", + "UserList": "Users", + "UserLoginACLHelpMsg": "When logging into the system, the user's login ip and time range can be audited to determine whether they are allowed to loginto the system (effective globally)", + "UserLoginACLHelpText": "When logging in, it can be audited based on the user's login ip and time segment to determine whether the user can login", + "UserLoginAclCreate": "Create user login control", + "UserLoginAclDetail": "User login control details", + "UserLoginAclList": "User login", + "UserLoginAclUpdate": "Update the user login control", + "UserLoginLimit": "User restriction", + "UserLoginTrend": "Account login trend", + "UserPasswordChangeLog": "User password change log", + "UserSession": "Asset sessions", + "UserSwitchFrom": "Switch from", + "UserUpdate": "Update the user", + "Username": "Username", + "UsernamePlaceholder": "Please enter username", + "Users": "User", + "UsersAmount": "User", + "UsersAndUserGroups": "Users/user groups", + "UsersTotal": "Total accounts", + "Valid": "Valid", + "Variable": "Variable", + "VariableHelpText": "You can use {{ key }} to read built-in variables in commands", + "VaultHelpText": "1. for security reasons, vault storage must be enabled in the configuration file.
2. after enabled, fill in other configurations, and perform tests.
3. carry out data synchronization, which is one-way, only syncing from the local database to the distant vault, once synchronization is completed, the local database will no longer store passwords, please back up your data.
4. after modifying vault configuration the second time, you need to restart the service.", + "VerificationCodeSent": "Verification code has been sent", + "VerifySignTmpl": "Sms template", + "Version": "Version", + "View": "View", + "ViewMore": "View more", + "ViewPerm": "View", + "ViewSecret": "View ciphertext", + "VirtualAccountDetail": "Virtual account details", + "VirtualAccountHelpMsg": "Virtual accounts are specialized accounts with specific purposes when connecting assets.", + "VirtualAccountUpdate": "Virtual account update", + "VirtualAccounts": "Virtual accounts", + "VirtualApp": "VirtualApp", + "VirtualAppDetail": "Virtual App details", + "VirtualApps": "VirtualApp", + "Volcengine": "Volcengine", + "Warning": "Warning", + "WeCom": "WeCom", + "WeComOAuth": "WeCom OAuth", + "WeComTest": "Test", + "WebCreate": "Create asset - web", + "WebHelpMessage": "Web type assets depend on remote applications, please go to system settings and configure in remote applications", + "WebSocketDisconnect": "Websocket disconnected", + "WebTerminal": "Web terminal", + "WebUpdate": "Update the asset - web", + "Wednesday": "Wed", + "Week": "Week", + "Proportion": "New this week", + "WeekOrTime": "Day/time", + "WildcardsAllowed": "Allowed wildcards", + "WindowsPushHelpText": "Windows assets temporarily do not support key push", + "WordSep": " ", + "Workbench": "Workbench", + "Workspace": "Workspace", + "Yes": "Yes", + "YourProfile": "Your profile", + "ZStack": "ZStack", + "Zone": "Zone", + "ZoneCreate": "Create zone", + "ZoneEnabled": "Enable zone", + "ZoneHelpMessage": "The zone is the location where assets are located, which can be a data center, public cloud, or VPC. Gateways can be set up within the region. When the network cannot be directly accessed, users can utilize gateways to login to the assets.", + "ZoneList": "Zones", + "ZoneUpdate": "Update the zone", + "TailLog": "Tail Log", + "NoLog": "No log", + "SiteURLTip": "For example: https://demo.jumpserver.org", + "Settings...": "Settings...", + "EmailTemplate": "Template", + "EmailTemplateHelpTip": "Email template is used for sending emails and includes the email subject prefix and email content", + "ForgotPasswordURL": "Forgot password URL", + "ObjectStorage": "Object Storage" } diff --git a/apps/labels/migrations/0001_initial.py b/apps/labels/migrations/0001_initial.py index 294cd5477..03ffc4bd1 100644 --- a/apps/labels/migrations/0001_initial.py +++ b/apps/labels/migrations/0001_initial.py @@ -1,9 +1,10 @@ # Generated by Django 4.1.13 on 2024-05-09 03:16 -from django.db import migrations, models -import django.db.models.deletion import uuid +import django.db.models.deletion +from django.db import migrations, models + class Migration(migrations.Migration): @@ -29,7 +30,7 @@ class Migration(migrations.Migration): ('internal', models.BooleanField(default=False, verbose_name='Internal')), ], options={ - 'verbose_name': 'Label', + 'verbose_name': 'Tag', 'unique_together': {('name', 'value', 'org_id')}, }, ), @@ -48,7 +49,7 @@ class Migration(migrations.Migration): ('res_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.contenttype')), ], options={ - 'verbose_name': 'Labeled resource', + 'verbose_name': 'Tagged resource', 'unique_together': {('label', 'res_type', 'res_id', 'org_id')}, }, ), diff --git a/apps/labels/models.py b/apps/labels/models.py index 3bf9213f5..3002fdb6d 100644 --- a/apps/labels/models.py +++ b/apps/labels/models.py @@ -13,8 +13,8 @@ class Label(JMSOrgBaseModel): internal = models.BooleanField(default=False, verbose_name=_("Internal")) class Meta: - unique_together = [('name', 'value', 'org_id')] - verbose_name = _('Label') + unique_together = [("name", "value", "org_id")] + verbose_name = _("Tag") @lazyproperty def res_count(self): @@ -22,23 +22,28 @@ class Label(JMSOrgBaseModel): @lazyproperty def display_name(self): - return '{}:{}'.format(self.name, self.value) + return "{}:{}".format(self.name, self.value) def __str__(self): - return '{}:{}'.format(self.name, self.value) + return "{}:{}".format(self.name, self.value) class LabeledResource(JMSOrgBaseModel): label = models.ForeignKey( - Label, on_delete=models.CASCADE, related_name='labeled_resources', verbose_name=_("Label") + Label, + on_delete=models.CASCADE, + related_name="labeled_resources", + verbose_name=_("Tag"), ) res_type = models.ForeignKey(ContentType, on_delete=models.CASCADE) - res_id = models.CharField(max_length=36, verbose_name=_("Resource ID"), db_index=True) - resource = GenericForeignKey('res_type', 'res_id') + res_id = models.CharField( + max_length=36, verbose_name=_("Resource ID"), db_index=True + ) + resource = GenericForeignKey("res_type", "res_id") class Meta: - unique_together = [('label', 'res_type', 'res_id', 'org_id')] - verbose_name = _('Labeled resource') + unique_together = [("label", "res_type", "res_id", "org_id")] + verbose_name = _("Tagged resource") def __str__(self): - return '{} => {}'.format(self.label, self.resource) + return "{} => {}".format(self.label, self.resource)