diff --git a/.gitignore b/.gitignore index df5709607..107a42d46 100644 --- a/.gitignore +++ b/.gitignore @@ -45,3 +45,4 @@ test.py .history/ .test/ *.mo +apps.iml diff --git a/README.md b/README.md index 4bd6f8c55..038aa468e 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,7 @@ JumpServer is a mission critical product. Please refer to the Basic Security Rec ## License -Copyright (c) 2014-2024 FIT2CLOUD, All rights reserved. +Copyright (c) 2014-2025 FIT2CLOUD, All rights reserved. Licensed under The GNU General Public License version 3 (GPLv3) (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/apps/acls/serializers/base.py b/apps/acls/serializers/base.py index 4dfa56b9f..24a962822 100644 --- a/apps/acls/serializers/base.py +++ b/apps/acls/serializers/base.py @@ -70,6 +70,13 @@ class ActionAclSerializer(serializers.Serializer): return if not settings.XPACK_LICENSE_IS_VALID: field_action._choices.pop(ActionChoices.review, None) + if not ( + settings.XPACK_LICENSE_IS_VALID and + settings.XPACK_LICENSE_EDITION_ULTIMATE and + settings.FACE_RECOGNITION_ENABLED + ): + field_action._choices.pop(ActionChoices.face_verify, None) + field_action._choices.pop(ActionChoices.face_online, None) for choice in self.Meta.action_choices_exclude: field_action._choices.pop(choice, None) diff --git a/apps/authentication/api/connection_token.py b/apps/authentication/api/connection_token.py index f72a51bdb..1d5c22514 100644 --- a/apps/authentication/api/connection_token.py +++ b/apps/authentication/api/connection_token.py @@ -123,13 +123,15 @@ class RDPFileClientProtocolURLMixin: # rdp_options['domain:s'] = token.account_ad_domain # 设置宽高 - height = self.request.query_params.get('height') - width = self.request.query_params.get('width') - if width and height: - rdp_options['desktopwidth:i'] = width - rdp_options['desktopheight:i'] = height - rdp_options['winposstr:s'] = f'0,1,0,0,{width},{height}' - rdp_options['dynamic resolution:i'] = '0' + + resolution_value = token.connect_options.get('resolution', 'auto') + if resolution_value != 'auto': + width, height = resolution_value.split('x') + if width and height: + rdp_options['desktopwidth:i'] = width + rdp_options['desktopheight:i'] = height + rdp_options['winposstr:s'] = f'0,1,0,0,{width},{height}' + rdp_options['dynamic resolution:i'] = '0' color_quality = self.request.query_params.get('rdp_color_quality') color_quality = color_quality if color_quality else os.getenv('JUMPSERVER_COLOR_DEPTH', RDPColorQuality.HIGH) diff --git a/apps/authentication/mfa/face.py b/apps/authentication/mfa/face.py index 4d847cb99..d04d1e6b1 100644 --- a/apps/authentication/mfa/face.py +++ b/apps/authentication/mfa/face.py @@ -30,10 +30,11 @@ class MFAFace(BaseMFA, AuthFaceMixin): @staticmethod def global_enabled(): - return settings.XPACK_LICENSE_IS_VALID \ - and LicenseEditionChoices.ULTIMATE == \ - LicenseEditionChoices.from_key(settings.XPACK_LICENSE_EDITION) \ - and settings.FACE_RECOGNITION_ENABLED + return ( + settings.XPACK_LICENSE_IS_VALID and + settings.XPACK_LICENSE_EDITION_ULTIMATE and + settings.FACE_RECOGNITION_ENABLED + ) def get_enable_url(self) -> str: return '/ui/#/profile/index' diff --git a/apps/authentication/mixins.py b/apps/authentication/mixins.py index 0b2792507..c346ab1bb 100644 --- a/apps/authentication/mixins.py +++ b/apps/authentication/mixins.py @@ -51,7 +51,7 @@ auth._get_backends = _get_backends def authenticate(request=None, **credentials): """ If the given credentials are valid, return a User object. - 之所以 hack 这个 auticate + 之所以 hack 这个 authenticate """ username = credentials.get('username') @@ -500,10 +500,12 @@ class AuthMixin(CommonMixin, AuthPreCheckMixin, AuthACLMixin, AuthFaceMixin, MFA key_prefix_captcha = "_LOGIN_INVALID_{}" def _check_auth_user_is_valid(self, username, password, public_key): - user = authenticate( - self.request, username=username, - password=password, public_key=public_key - ) + credentials = {'username': username} + if password: + credentials['password'] = password + if public_key: + credentials['public_key'] = public_key + user = authenticate(self.request, **credentials) if not user: self.raise_credential_error(errors.reason_password_failed) diff --git a/apps/authentication/views/base.py b/apps/authentication/views/base.py index 17fe703d7..8b953706e 100644 --- a/apps/authentication/views/base.py +++ b/apps/authentication/views/base.py @@ -111,7 +111,7 @@ class BaseLoginCallbackView(AuthMixin, FlashMessageMixin, IMClientMixin, View): response = self.get_failed_response(login_url, title=msg, msg=msg) return response - if 'next=client' in redirect_url: + if redirect_url and 'next=client' in redirect_url: self.request.META['QUERY_STRING'] += '&next=client' return self.redirect_to_guard_view() diff --git a/apps/i18n/core/en/LC_MESSAGES/django.po b/apps/i18n/core/en/LC_MESSAGES/django.po index 3ac35d1fe..10b479807 100644 --- a/apps/i18n/core/en/LC_MESSAGES/django.po +++ b/apps/i18n/core/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-19 15:10+0800\n" +"POT-Creation-Date: 2025-01-08 14:25+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -365,7 +365,7 @@ msgstr "" #: accounts/serializers/automations/change_secret.py:150 #: accounts/templates/accounts/asset_account_change_info.html:7 #: accounts/templates/accounts/change_secret_failed_info.html:11 -#: acls/serializers/base.py:123 assets/models/asset/common.py:102 +#: acls/serializers/base.py:130 assets/models/asset/common.py:102 #: assets/models/asset/common.py:362 assets/models/cmd_filter.py:36 #: audits/models.py:58 authentication/models/connection_token.py:36 #: perms/models/asset_permission.py:69 terminal/backends/command/models.py:17 @@ -408,7 +408,7 @@ msgstr "" #: accounts/serializers/automations/change_secret.py:120 #: accounts/serializers/automations/change_secret.py:151 #: accounts/templates/accounts/change_secret_failed_info.html:12 -#: acls/serializers/base.py:124 +#: acls/serializers/base.py:131 #: acls/templates/acls/asset_login_reminder.html:10 #: assets/serializers/gateway.py:33 audits/models.py:59 #: authentication/api/connection_token.py:459 ops/models/base.py:18 @@ -513,7 +513,7 @@ msgid "Trigger mode" msgstr "" #: accounts/models/automations/backup_account.py:140 audits/models.py:203 -#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:176 +#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:179 #: xpack/plugins/cloud/models.py:231 msgid "Reason" msgstr "" @@ -929,7 +929,7 @@ msgstr "" #: ops/models/job.py:155 ops/serializers/job.py:20 #: perms/serializers/permission.py:46 #: terminal/templates/terminal/_msg_command_execute_alert.html:16 -#: xpack/plugins/cloud/manager.py:89 +#: xpack/plugins/cloud/manager.py:92 msgid "Assets" msgstr "" @@ -956,7 +956,7 @@ msgstr "" msgid "ID" msgstr "" -#: accounts/serializers/account/account.py:475 acls/serializers/base.py:116 +#: accounts/serializers/account/account.py:475 acls/serializers/base.py:123 #: acls/templates/acls/asset_login_reminder.html:8 #: acls/templates/acls/user_login_reminder.html:8 #: assets/models/cmd_filter.py:24 assets/models/label.py:16 audits/models.py:54 @@ -964,7 +964,7 @@ msgstr "" #: audits/serializers.py:195 authentication/models/connection_token.py:32 #: authentication/models/ssh_key.py:22 authentication/models/sso_token.py:16 #: notifications/models/notification.py:12 -#: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:63 +#: perms/api/user_permission/mixin.py:58 perms/models/asset_permission.py:63 #: rbac/builtin.py:125 rbac/models/rolebinding.py:49 #: rbac/serializers/rolebinding.py:17 terminal/backends/command/models.py:16 #: terminal/models/session/session.py:31 terminal/models/session/sharing.py:34 @@ -1491,15 +1491,15 @@ msgstr "" msgid "IP/Host" msgstr "" -#: acls/serializers/base.py:91 +#: acls/serializers/base.py:98 msgid "Recipients" msgstr "" -#: acls/serializers/base.py:103 tickets/serializers/ticket/ticket.py:77 +#: acls/serializers/base.py:110 tickets/serializers/ticket/ticket.py:77 msgid "The organization `{}` does not exist" msgstr "" -#: acls/serializers/base.py:109 +#: acls/serializers/base.py:116 msgid "None of the reviewers belong to Organization `{}`" msgstr "" @@ -1710,7 +1710,7 @@ msgstr "" #: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:76 #: settings/serializers/feature.py:80 settings/serializers/feature.py:93 #: settings/serializers/msg.py:30 terminal/models/component/endpoint.py:14 -#: terminal/serializers/applet.py:17 xpack/plugins/cloud/manager.py:89 +#: terminal/serializers/applet.py:17 xpack/plugins/cloud/manager.py:92 #: xpack/plugins/cloud/serializers/account_attrs.py:72 msgid "Host" msgstr "" @@ -2748,7 +2748,7 @@ msgstr "" #: audits/const.py:23 rbac/tree.py:268 terminal/api/session/session.py:284 #: terminal/templates/terminal/_msg_command_warning.html:18 #: terminal/templates/terminal/_msg_session_sharing.html:10 -#: xpack/plugins/cloud/manager.py:90 +#: xpack/plugins/cloud/manager.py:93 msgid "View" msgstr "" @@ -2956,7 +2956,7 @@ msgid "Creator" msgstr "" #: audits/serializers.py:39 ops/models/base.py:52 ops/models/job.py:240 -#: xpack/plugins/cloud/manager.py:99 +#: xpack/plugins/cloud/manager.py:102 msgid "Summary" msgstr "" @@ -3131,7 +3131,7 @@ msgid "No available face feature" msgstr "" #: authentication/api/face.py:100 authentication/mfa/face.py:21 -#: authentication/mfa/face.py:23 +#: authentication/mfa/face.py:23 users/views/profile/face.py:72 msgid "Facial comparison failed" msgstr "" @@ -3447,11 +3447,11 @@ msgstr "" msgid "Face Recognition" msgstr "" -#: authentication/mfa/face.py:54 +#: authentication/mfa/face.py:55 msgid "Bind face to enable" msgstr "" -#: authentication/mfa/face.py:58 +#: authentication/mfa/face.py:59 msgid "Unbind face to disable" msgstr "" @@ -3626,13 +3626,13 @@ msgstr "" #: authentication/models/ssh_key.py:15 terminal/serializers/storage.py:146 #: users/models/user/__init__.py:93 -#: xpack/plugins/cloud/serializers/account_attrs.py:213 +#: xpack/plugins/cloud/serializers/account_attrs.py:214 msgid "Private key" msgstr "" #: authentication/models/ssh_key.py:18 settings/serializers/terminal.py:34 #: users/forms/profile.py:175 users/models/user/__init__.py:96 -#: xpack/plugins/cloud/serializers/account_attrs.py:210 +#: xpack/plugins/cloud/serializers/account_attrs.py:211 msgid "Public key" msgstr "" @@ -4077,29 +4077,29 @@ msgstr "" msgid "Redirecting to {} authentication" msgstr "" -#: authentication/views/login.py:243 +#: authentication/views/login.py:247 msgid "Login timeout, please try again." msgstr "" -#: authentication/views/login.py:288 +#: authentication/views/login.py:292 msgid "User email already exists ({})" msgstr "" -#: authentication/views/login.py:366 +#: authentication/views/login.py:370 msgid "" "Wait for {} confirm, You also can copy link to her/him
\n" " Don't close this page" msgstr "" -#: authentication/views/login.py:371 +#: authentication/views/login.py:375 msgid "No ticket found" msgstr "" -#: authentication/views/login.py:407 +#: authentication/views/login.py:411 msgid "Logout success" msgstr "" -#: authentication/views/login.py:408 +#: authentication/views/login.py:412 msgid "Logout success, return login page" msgstr "" @@ -4189,7 +4189,7 @@ msgstr "" msgid "Ultimate edition" msgstr "" -#: common/const/common.py:5 xpack/plugins/cloud/manager.py:417 +#: common/const/common.py:5 xpack/plugins/cloud/manager.py:424 #, python-format msgid "%(name)s was created successfully" msgstr "" @@ -4250,8 +4250,8 @@ msgstr "" #: common/serializers/fields.py:144 terminal/serializers/session.py:81 #: tickets/serializers/ticket/common.py:58 #: xpack/plugins/cloud/serializers/account_attrs.py:56 -#: xpack/plugins/cloud/serializers/account_attrs.py:79 -#: xpack/plugins/cloud/serializers/account_attrs.py:150 +#: xpack/plugins/cloud/serializers/account_attrs.py:80 +#: xpack/plugins/cloud/serializers/account_attrs.py:151 msgid "This field is required." msgstr "" @@ -5067,9 +5067,10 @@ msgstr "" #: ops/models/variable.py:12 ops/serializers/variable.py:23 msgid "" -"The variable name used in the script has a fixed prefix 'jms_' followed by " -"the input variable name. For example, if the variable name is 'name,' the " -"final generated environment variable will be 'jms_name'." +"The variable name used in the script will have a fixed prefix jms_ added to " +"the input variable name. For example, if the input variable name is name, " +"the resulting environment variable will be jms_name, and it can be " +"referenced in the script using {{ jms_name }}" msgstr "" #: ops/models/variable.py:16 ops/serializers/variable.py:31 @@ -5156,11 +5157,11 @@ msgid "" "is the value." msgstr "" -#: ops/tasks.py:53 +#: ops/tasks.py:54 msgid "Run ansible task" msgstr "" -#: ops/tasks.py:56 +#: ops/tasks.py:57 msgid "" "Execute scheduled adhoc and playbooks, periodically invoking the task for " "execution" @@ -5174,19 +5175,19 @@ msgstr "" msgid "Execute the task when manually adhoc or playbooks" msgstr "" -#: ops/tasks.py:107 +#: ops/tasks.py:106 msgid "Clear celery periodic tasks" msgstr "" -#: ops/tasks.py:109 +#: ops/tasks.py:108 msgid "At system startup, clean up celery tasks that no longer exist" msgstr "" -#: ops/tasks.py:133 +#: ops/tasks.py:132 msgid "Create or update periodic tasks" msgstr "" -#: ops/tasks.py:135 +#: ops/tasks.py:134 msgid "" "With version iterations, new tasks may be added, or task names and execution " "times may \n" @@ -5195,11 +5196,11 @@ msgid "" " of scheduled tasks will be updated" msgstr "" -#: ops/tasks.py:148 +#: ops/tasks.py:147 msgid "Periodic check service performance" msgstr "" -#: ops/tasks.py:150 +#: ops/tasks.py:149 msgid "" "Check every hour whether each component is offline and whether the CPU, " "memory, \n" @@ -5207,11 +5208,11 @@ msgid "" "the administrator" msgstr "" -#: ops/tasks.py:160 +#: ops/tasks.py:159 msgid "Clean up unexpected jobs" msgstr "" -#: ops/tasks.py:162 +#: ops/tasks.py:161 msgid "" "Due to exceptions caused by executing adhoc and playbooks in the Job " "Center, \n" @@ -5222,11 +5223,11 @@ msgid "" " failed" msgstr "" -#: ops/tasks.py:175 +#: ops/tasks.py:174 msgid "Clean job_execution db record" msgstr "" -#: ops/tasks.py:177 +#: ops/tasks.py:176 msgid "" "Due to the execution of adhoc and playbooks in the Job Center, execution " "records will \n" @@ -5668,7 +5669,7 @@ msgstr "" msgid "Session audits" msgstr "Session" -#: rbac/tree.py:49 xpack/plugins/cloud/manager.py:90 +#: rbac/tree.py:49 xpack/plugins/cloud/manager.py:93 msgid "Cloud import" msgstr "" @@ -5711,7 +5712,7 @@ msgid "Appearance" msgstr "" #: rbac/tree.py:65 xpack/plugins/license/meta.py:10 -#: xpack/plugins/license/models.py:151 +#: xpack/plugins/license/models.py:153 msgid "License" msgstr "" @@ -6424,7 +6425,7 @@ msgid "SSO auth key TTL" msgstr "" #: settings/serializers/auth/sso.py:20 -#: xpack/plugins/cloud/serializers/account_attrs.py:200 +#: xpack/plugins/cloud/serializers/account_attrs.py:201 msgid "Unit: second" msgstr "" @@ -6581,7 +6582,7 @@ msgid "Tenant ID" msgstr "" #: settings/serializers/feature.py:109 terminal/serializers/storage.py:68 -#: xpack/plugins/cloud/manager.py:107 xpack/plugins/cloud/manager.py:112 +#: xpack/plugins/cloud/manager.py:110 xpack/plugins/cloud/manager.py:115 #: xpack/plugins/cloud/models.py:287 msgid "Region" msgstr "" @@ -7465,7 +7466,7 @@ msgstr "" msgid "Command storages" msgstr "" -#: terminal/api/component/storage.py:84 xpack/plugins/cloud/manager.py:107 +#: terminal/api/component/storage.py:84 xpack/plugins/cloud/manager.py:110 msgid "Invalid" msgstr "" @@ -9580,7 +9581,7 @@ msgstr "" msgid "Face binding successful" msgstr "" -#: users/views/profile/face.py:80 users/views/profile/face.py:81 +#: users/views/profile/face.py:82 users/views/profile/face.py:83 msgid "Face unbinding successful" msgstr "" @@ -9776,19 +9777,19 @@ msgstr "" msgid "Succeed" msgstr "" -#: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:95 +#: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:98 msgid "Unsync" msgstr "" -#: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:94 +#: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:97 msgid "New Sync" msgstr "" -#: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:94 +#: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:97 msgid "Synced" msgstr "" -#: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:96 +#: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:99 msgid "Released" msgstr "" @@ -9808,45 +9809,45 @@ msgstr "" msgid "Imported" msgstr "" -#: xpack/plugins/cloud/manager.py:48 +#: xpack/plugins/cloud/manager.py:51 #, python-format msgid "Task \"%s\" starts executing" msgstr "" -#: xpack/plugins/cloud/manager.py:87 +#: xpack/plugins/cloud/manager.py:90 msgid "View the task details path: " msgstr "" -#: xpack/plugins/cloud/manager.py:90 +#: xpack/plugins/cloud/manager.py:93 msgid "Account Details" msgstr "" -#: xpack/plugins/cloud/manager.py:91 +#: xpack/plugins/cloud/manager.py:94 msgid "Synchronization History List" msgstr "" -#: xpack/plugins/cloud/manager.py:91 +#: xpack/plugins/cloud/manager.py:94 msgid "Synchronization Instance List" msgstr "" -#: xpack/plugins/cloud/manager.py:95 +#: xpack/plugins/cloud/manager.py:98 msgid "To be released" msgstr "" -#: xpack/plugins/cloud/manager.py:99 +#: xpack/plugins/cloud/manager.py:102 msgid "Task execution completed" msgstr "" -#: xpack/plugins/cloud/manager.py:104 +#: xpack/plugins/cloud/manager.py:107 msgid "Synchronization regions" msgstr "" -#: xpack/plugins/cloud/manager.py:129 +#: xpack/plugins/cloud/manager.py:132 #, python-format msgid "Get instances of region \"%s\" error, error: %s" msgstr "" -#: xpack/plugins/cloud/manager.py:175 +#: xpack/plugins/cloud/manager.py:178 #, python-format msgid "Failed to synchronize the instance \"%s\"" msgstr "" @@ -9858,42 +9859,42 @@ msgid "" "platform type. Skip platform and protocol updates" msgstr "" -#: xpack/plugins/cloud/manager.py:399 +#: xpack/plugins/cloud/manager.py:406 #, python-format msgid "The asset \"%s\" already exists" msgstr "" -#: xpack/plugins/cloud/manager.py:401 +#: xpack/plugins/cloud/manager.py:408 #, python-format msgid "Update asset \"%s\"" msgstr "" -#: xpack/plugins/cloud/manager.py:404 +#: xpack/plugins/cloud/manager.py:411 #, python-format msgid "Asset \"%s\" has been updated" msgstr "" -#: xpack/plugins/cloud/manager.py:413 +#: xpack/plugins/cloud/manager.py:420 #, python-format msgid "Prepare to create asset \"%s\"" msgstr "" -#: xpack/plugins/cloud/manager.py:434 +#: xpack/plugins/cloud/manager.py:441 #, python-format msgid "Set nodes \"%s\"" msgstr "" -#: xpack/plugins/cloud/manager.py:460 +#: xpack/plugins/cloud/manager.py:467 #, python-format msgid "Set accounts \"%s\"" msgstr "" -#: xpack/plugins/cloud/manager.py:476 +#: xpack/plugins/cloud/manager.py:483 #, python-format msgid "Set protocols \"%s\"" msgstr "" -#: xpack/plugins/cloud/manager.py:490 xpack/plugins/cloud/tasks.py:31 +#: xpack/plugins/cloud/manager.py:497 xpack/plugins/cloud/tasks.py:31 msgid "Run sync instance task" msgstr "" @@ -10287,74 +10288,78 @@ msgstr "Access key id" msgid "Subscription ID" msgstr "" -#: xpack/plugins/cloud/serializers/account_attrs.py:98 -#: xpack/plugins/cloud/serializers/account_attrs.py:102 -#: xpack/plugins/cloud/serializers/account_attrs.py:126 -#: xpack/plugins/cloud/serializers/account_attrs.py:156 -#: xpack/plugins/cloud/serializers/account_attrs.py:206 +#: xpack/plugins/cloud/serializers/account_attrs.py:74 +msgid "Auto node classification" +msgstr "" + +#: xpack/plugins/cloud/serializers/account_attrs.py:99 +#: xpack/plugins/cloud/serializers/account_attrs.py:103 +#: xpack/plugins/cloud/serializers/account_attrs.py:127 +#: xpack/plugins/cloud/serializers/account_attrs.py:157 +#: xpack/plugins/cloud/serializers/account_attrs.py:207 msgid "API Endpoint" msgstr "" -#: xpack/plugins/cloud/serializers/account_attrs.py:108 +#: xpack/plugins/cloud/serializers/account_attrs.py:109 msgid "Auth url" msgstr "" -#: xpack/plugins/cloud/serializers/account_attrs.py:109 +#: xpack/plugins/cloud/serializers/account_attrs.py:110 msgid "eg: http://openstack.example.com:5000/v3" msgstr "" -#: xpack/plugins/cloud/serializers/account_attrs.py:112 +#: xpack/plugins/cloud/serializers/account_attrs.py:113 msgid "User domain" msgstr "" -#: xpack/plugins/cloud/serializers/account_attrs.py:127 +#: xpack/plugins/cloud/serializers/account_attrs.py:128 msgid "Cert File" msgstr "" -#: xpack/plugins/cloud/serializers/account_attrs.py:128 +#: xpack/plugins/cloud/serializers/account_attrs.py:129 msgid "Key File" msgstr "" -#: xpack/plugins/cloud/serializers/account_attrs.py:144 +#: xpack/plugins/cloud/serializers/account_attrs.py:145 msgid "Service account key" msgstr "" -#: xpack/plugins/cloud/serializers/account_attrs.py:145 +#: xpack/plugins/cloud/serializers/account_attrs.py:146 msgid "The file is in JSON format" msgstr "" -#: xpack/plugins/cloud/serializers/account_attrs.py:163 +#: xpack/plugins/cloud/serializers/account_attrs.py:164 msgid "IP address invalid `{}`, {}" msgstr "" -#: xpack/plugins/cloud/serializers/account_attrs.py:179 +#: xpack/plugins/cloud/serializers/account_attrs.py:180 msgid "Such as: 192.168.1.0/24, 10.0.0.0-10.0.0.255" msgstr "" -#: xpack/plugins/cloud/serializers/account_attrs.py:182 +#: xpack/plugins/cloud/serializers/account_attrs.py:183 msgid "" "The port is used to detect the validity of the IP address. When the " "synchronization task is executed, only the valid IP address will be " "synchronized.
If the port is 0, all IP addresses are valid." msgstr "" -#: xpack/plugins/cloud/serializers/account_attrs.py:190 +#: xpack/plugins/cloud/serializers/account_attrs.py:191 msgid "Hostname prefix" msgstr "" -#: xpack/plugins/cloud/serializers/account_attrs.py:193 +#: xpack/plugins/cloud/serializers/account_attrs.py:194 msgid "IP segment" msgstr "" -#: xpack/plugins/cloud/serializers/account_attrs.py:197 +#: xpack/plugins/cloud/serializers/account_attrs.py:198 msgid "Test port" msgstr "" -#: xpack/plugins/cloud/serializers/account_attrs.py:200 +#: xpack/plugins/cloud/serializers/account_attrs.py:201 msgid "Test timeout" msgstr "" -#: xpack/plugins/cloud/serializers/account_attrs.py:216 +#: xpack/plugins/cloud/serializers/account_attrs.py:217 msgid "Project" msgstr "" diff --git a/apps/i18n/core/ja/LC_MESSAGES/django.po b/apps/i18n/core/ja/LC_MESSAGES/django.po index 06b282f45..6d2ef1a53 100644 --- a/apps/i18n/core/ja/LC_MESSAGES/django.po +++ b/apps/i18n/core/ja/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-19 15:10+0800\n" +"POT-Creation-Date: 2025-01-08 14:25+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -192,7 +192,8 @@ msgstr "集めました" msgid "Template" msgstr "テンプレート" -#: accounts/const/account.py:32 ops/const.py:46 xpack/plugins/cloud/const.py:68 +#: accounts/const/account.py:32 ops/const.py:46 +#: xpack/plugins/cloud/const.py:68 msgid "Skip" msgstr "スキップ" @@ -336,9 +337,7 @@ msgstr "Amazon Secrets Manager" msgid "" "Vault operation failed. Please retry or check your account information on " "Vault." -msgstr "" -"Vault 操作に失敗しました。再試行するか、Vault のアカウント情報を確認してくだ" -"さい。" +msgstr "Vault 操作に失敗しました。再試行するか、Vault のアカウント情報を確認してください。" #: accounts/mixins.py:35 msgid "Export all" @@ -367,7 +366,7 @@ msgstr "ユーザー %s がパスワードを閲覧/導き出しました" #: accounts/serializers/automations/change_secret.py:150 #: accounts/templates/accounts/asset_account_change_info.html:7 #: accounts/templates/accounts/change_secret_failed_info.html:11 -#: acls/serializers/base.py:123 assets/models/asset/common.py:102 +#: acls/serializers/base.py:130 assets/models/asset/common.py:102 #: assets/models/asset/common.py:362 assets/models/cmd_filter.py:36 #: audits/models.py:58 authentication/models/connection_token.py:36 #: perms/models/asset_permission.py:69 terminal/backends/command/models.py:17 @@ -410,13 +409,13 @@ msgstr "ソース ID" #: accounts/serializers/automations/change_secret.py:120 #: accounts/serializers/automations/change_secret.py:151 #: accounts/templates/accounts/change_secret_failed_info.html:12 -#: acls/serializers/base.py:124 +#: acls/serializers/base.py:131 #: acls/templates/acls/asset_login_reminder.html:10 #: assets/serializers/gateway.py:33 audits/models.py:59 #: authentication/api/connection_token.py:459 ops/models/base.py:18 #: perms/models/asset_permission.py:75 settings/serializers/msg.py:33 -#: terminal/backends/command/models.py:18 terminal/models/session/session.py:35 -#: terminal/serializers/command.py:72 +#: terminal/backends/command/models.py:18 +#: terminal/models/session/session.py:35 terminal/serializers/command.py:72 #: terminal/templates/terminal/_msg_command_warning.html:8 #: terminal/templates/terminal/_msg_session_sharing.html:8 #: tickets/models/ticket/command_confirm.py:13 @@ -515,7 +514,7 @@ msgid "Trigger mode" msgstr "トリガーモード" #: accounts/models/automations/backup_account.py:140 audits/models.py:203 -#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:176 +#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:179 #: xpack/plugins/cloud/models.py:231 msgid "Reason" msgstr "理由" @@ -741,9 +740,11 @@ msgstr "パスワードルール" #: perms/models/asset_permission.py:61 rbac/models/role.py:29 #: rbac/serializers/role.py:28 settings/models.py:35 settings/models.py:184 #: settings/serializers/msg.py:89 settings/serializers/terminal.py:9 -#: terminal/models/applet/applet.py:34 terminal/models/component/endpoint.py:13 +#: terminal/models/applet/applet.py:34 +#: terminal/models/component/endpoint.py:13 #: terminal/models/component/endpoint.py:112 -#: terminal/models/component/storage.py:26 terminal/models/component/task.py:13 +#: terminal/models/component/storage.py:26 +#: terminal/models/component/task.py:13 #: terminal/models/component/terminal.py:85 #: terminal/models/virtualapp/provider.py:10 #: terminal/models/virtualapp/virtualapp.py:19 tickets/api/ticket.py:87 @@ -804,8 +805,7 @@ msgstr "ユーザーと同じユーザー名" #: accounts/models/virtual.py:37 msgid "Non-asset account, Input username/password on connect" -msgstr "" -"アセットアカウントではない場合、接続時にユーザー名/パスワードを入力します" +msgstr "アセットアカウントではない場合、接続時にユーザー名/パスワードを入力します" #: accounts/models/virtual.py:38 msgid "The account username name same with user on connect" @@ -815,9 +815,7 @@ msgstr "接続時にユーザー名と同じユーザー名を使用します" msgid "" "Connect asset without using a username and password, and it only supports " "web-based and custom-type assets" -msgstr "" -"ユーザー名とパスワードを使用せずにアセットに接続します。Webベースとカスタムタ" -"イプのアセットのみをサポートします" +msgstr "ユーザー名とパスワードを使用せずにアセットに接続します。Webベースとカスタムタイプのアセットのみをサポートします" #: accounts/notifications.py:12 accounts/notifications.py:37 msgid "Notification of account backup route task results" @@ -827,9 +825,7 @@ msgstr "アカウントバックアップルートタスクの結果の通知" msgid "" "{} - The account backup passage task has been completed. See the attachment " "for details" -msgstr "" -"{} -アカウントバックアップの通過タスクが完了しました。詳細は添付ファイルをご" -"覧ください" +msgstr "{} -アカウントバックアップの通過タスクが完了しました。詳細は添付ファイルをご覧ください" #: accounts/notifications.py:25 msgid "" @@ -837,9 +833,8 @@ msgid "" "password has not been set - please go to personal information -> Basic file " "encryption password for preference settings" msgstr "" -"{} -アカウントのバックアップ通過タスクが完了しました: 暗号化パスワードが設定" -"されていません-個人情報にアクセスしてください-> プリファレンス設定の基本的な" -"ファイル暗号化パスワードの設定" +"{} -アカウントのバックアップ通過タスクが完了しました: 暗号化パスワードが設定されていません-個人情報にアクセスしてください-> " +"プリファレンス設定の基本的なファイル暗号化パスワードの設定" #: accounts/notifications.py:56 msgid "Notification of implementation result of encryption change plan" @@ -857,8 +852,7 @@ msgid "" "has not been set - please go to personal information -> set encryption " "password in preferences" msgstr "" -"{} -暗号化変更タスクが完了しました: 暗号化パスワードが設定されていません-個人" -"情報にアクセスしてください-> 環境設定で暗号化パスワードを設定する" +"{} -暗号化変更タスクが完了しました: 暗号化パスワードが設定されていません-個人情報にアクセスしてください-> 環境設定で暗号化パスワードを設定する" #: accounts/notifications.py:83 msgid "Gather account change information" @@ -901,9 +895,9 @@ msgstr "カテゴリ" #: assets/serializers/asset/common.py:146 assets/serializers/platform.py:159 #: assets/serializers/platform.py:171 audits/serializers.py:77 #: audits/serializers.py:194 -#: authentication/serializers/connect_token_secret.py:126 ops/models/job.py:153 -#: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:40 -#: terminal/models/component/storage.py:58 +#: authentication/serializers/connect_token_secret.py:126 +#: ops/models/job.py:153 perms/serializers/user_permission.py:27 +#: terminal/models/applet/applet.py:40 terminal/models/component/storage.py:58 #: terminal/models/component/storage.py:152 terminal/serializers/applet.py:29 #: terminal/serializers/session.py:25 terminal/serializers/storage.py:281 #: terminal/serializers/storage.py:294 tickets/models/comment.py:26 @@ -941,7 +935,7 @@ msgstr "編集済み" #: ops/models/job.py:155 ops/serializers/job.py:20 #: perms/serializers/permission.py:46 #: terminal/templates/terminal/_msg_command_execute_alert.html:16 -#: xpack/plugins/cloud/manager.py:89 +#: xpack/plugins/cloud/manager.py:92 msgid "Assets" msgstr "資産" @@ -968,15 +962,16 @@ msgstr "特別情報" msgid "ID" msgstr "ID" -#: accounts/serializers/account/account.py:475 acls/serializers/base.py:116 +#: accounts/serializers/account/account.py:475 acls/serializers/base.py:123 #: acls/templates/acls/asset_login_reminder.html:8 #: acls/templates/acls/user_login_reminder.html:8 -#: assets/models/cmd_filter.py:24 assets/models/label.py:16 audits/models.py:54 -#: audits/models.py:90 audits/models.py:172 audits/models.py:271 -#: audits/serializers.py:195 authentication/models/connection_token.py:32 +#: assets/models/cmd_filter.py:24 assets/models/label.py:16 +#: audits/models.py:54 audits/models.py:90 audits/models.py:172 +#: audits/models.py:271 audits/serializers.py:195 +#: authentication/models/connection_token.py:32 #: authentication/models/ssh_key.py:22 authentication/models/sso_token.py:16 #: notifications/models/notification.py:12 -#: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:63 +#: perms/api/user_permission/mixin.py:58 perms/models/asset_permission.py:63 #: rbac/builtin.py:125 rbac/models/rolebinding.py:49 #: rbac/serializers/rolebinding.py:17 terminal/backends/command/models.py:16 #: terminal/models/session/session.py:31 terminal/models/session/sharing.py:34 @@ -1023,8 +1018,7 @@ msgid "" "* If no username is required for authentication, enter null. For AD " "accounts, use the format username@domain." msgstr "" -"ヒント: 認証にユーザー名が必要ない場合は、`null`を入力します。ADアカウントの" -"場合は、`username@domain`のようになります。" +"ヒント: 認証にユーザー名が必要ない場合は、`null`を入力します。ADアカウントの場合は、`username@domain`のようになります。" #: accounts/serializers/account/template.py:13 msgid "Password length" @@ -1057,21 +1051,17 @@ msgid "" "length is the length of the password, and the range is 8 to 30.\n" "lowercase indicates whether the password contains lowercase letters, \n" "uppercase indicates whether it contains uppercase letters,\n" -"digit indicates whether it contains numbers, and symbol indicates whether it " -"contains special symbols.\n" -"exclude_symbols is used to exclude specific symbols. You can fill in the " -"symbol characters to be excluded (up to 16). \n" +"digit indicates whether it contains numbers, and symbol indicates whether it contains special symbols.\n" +"exclude_symbols is used to exclude specific symbols. You can fill in the symbol characters to be excluded (up to 16). \n" "If you do not need to exclude symbols, you can leave it blank.\n" -"default: {\"length\": 16, \"lowercase\": true, \"uppercase\": true, " -"\"digit\": true, \"symbol\": true, \"exclude_symbols\": \"\"}" +"default: {\"length\": 16, \"lowercase\": true, \"uppercase\": true, \"digit\": true, \"symbol\": true, \"exclude_symbols\": \"\"}" msgstr "" -"length はパスワードの長さで、範囲は 8 ~ 30 です。小文字はパスワードに小文字" -"が含まれるかどうかを示し、大文字はパスワードに大文字が含まれるかどうかを示し" -"ます。digit は数字が含まれているかどうかを示し、symbol は特殊記号が含まれてい" -"るかどうかを示します。exclude_symbols は、特定のシンボルを除外するために使用" -"します (最大 16 文字)。シンボルを除外する必要がない場合は、空白のままにするこ" -"とができます。デフォルト: {\"長さ\": 16、\"小文字\": true、\"大文字\": " -"true、\"数字\": true、\"シンボル\": true、\"exclude_symbols\": \"\"}" +"length はパスワードの長さで、範囲は 8 ~ 30 " +"です。小文字はパスワードに小文字が含まれるかどうかを示し、大文字はパスワードに大文字が含まれるかどうかを示します。digit " +"は数字が含まれているかどうかを示し、symbol は特殊記号が含まれているかどうかを示します。exclude_symbols " +"は、特定のシンボルを除外するために使用します (最大 16 文字)。シンボルを除外する必要がない場合は、空白のままにすることができます。デフォルト: " +"{\"長さ\": 16、\"小文字\": true、\"大文字\": true、\"数字\": true、\"シンボル\": " +"true、\"exclude_symbols\": \"\"}" #: accounts/serializers/account/template.py:49 msgid "Secret generation strategy for account creation" @@ -1088,11 +1078,11 @@ msgid "" msgstr "关联平台,可以配置推送参数,如果不关联,则使用默认参数" #: accounts/serializers/account/virtual.py:19 assets/models/cmd_filter.py:40 -#: assets/models/cmd_filter.py:88 common/db/models.py:36 ops/models/adhoc.py:25 -#: ops/models/job.py:163 ops/models/playbook.py:31 rbac/models/role.py:37 -#: settings/models.py:40 terminal/models/applet/applet.py:46 -#: terminal/models/applet/applet.py:332 terminal/models/applet/host.py:143 -#: terminal/models/component/endpoint.py:27 +#: assets/models/cmd_filter.py:88 common/db/models.py:36 +#: ops/models/adhoc.py:25 ops/models/job.py:163 ops/models/playbook.py:31 +#: rbac/models/role.py:37 settings/models.py:40 +#: terminal/models/applet/applet.py:46 terminal/models/applet/applet.py:332 +#: terminal/models/applet/host.py:143 terminal/models/component/endpoint.py:27 #: terminal/models/component/endpoint.py:122 #: terminal/models/session/session.py:48 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 @@ -1107,10 +1097,8 @@ msgid "" "asset secret > Login secret > Manual input.
For security, please set " "config CACHE_LOGIN_PASSWORD_ENABLED to true" msgstr "" -"現在、AD/LDAPからのログインのみをサポートしています。シークレットの優先順位: " -"資産シークレット内の同じアカウント > ログインシークレット > 手動入力.
" -"セキュリティのために、「config CACHE_LOGIN_PASSWORD_ENABLED」をtrueに設定して" -"ください。 " +"現在、AD/LDAPからのログインのみをサポートしています。シークレットの優先順位: 資産シークレット内の同じアカウント > ログインシークレット > " +"手動入力.
セキュリティのために、「config CACHE_LOGIN_PASSWORD_ENABLED」をtrueに設定してください。 " #: accounts/serializers/automations/base.py:23 #: assets/models/asset/common.py:176 assets/serializers/asset/common.py:172 @@ -1145,8 +1133,7 @@ msgstr "アカウントのユーザー名を入力してください" msgid "" "Secret parameter settings, currently only effective for assets of the host " "type." -msgstr "" -"パラメータ設定は現在、AIX LINUX UNIX タイプの資産に対してのみ有効です。" +msgstr "パラメータ設定は現在、AIX LINUX UNIX タイプの資産に対してのみ有効です。" #: accounts/serializers/automations/change_secret.py:124 #: assets/models/automations/base.py:133 @@ -1174,16 +1161,11 @@ msgstr "アカウント実行の自動化" #: accounts/tasks/automation.py:35 msgid "" -"Unified execution entry for account automation tasks: when the system " -"performs tasks \n" -" such as account push, password change, account verification, account " -"collection, \n" -" and gateway account verification, all tasks are executed through " -"this unified entry" +"Unified execution entry for account automation tasks: when the system performs tasks \n" +" such as account push, password change, account verification, account collection, \n" +" and gateway account verification, all tasks are executed through this unified entry" msgstr "" -"アカウント自動化タスクの一元的な実行入口で、システムがアカウントのプッシュ、" -"パスワードの変更、アカウントの確認、アカウントの収集、ゲートウェイアカウント" -"のバリデーションタスクを実行する際、統一して現行のタスクを実行します" +"アカウント自動化タスクの一元的な実行入口で、システムがアカウントのプッシュ、パスワードの変更、アカウントの確認、アカウントの収集、ゲートウェイアカウントのバリデーションタスクを実行する際、統一して現行のタスクを実行します" #: accounts/tasks/automation.py:64 accounts/tasks/automation.py:72 msgid "Execute automation record" @@ -1199,30 +1181,18 @@ msgstr "パスワード変更記録とプッシュ記録を定期的にクリア #: accounts/tasks/automation.py:98 msgid "" -"The system will periodically clean up unnecessary password change and push " -"records, \n" -" including their associated change tasks, execution logs, assets, and " -"accounts. When any \n" -" of these associated items are deleted, the corresponding password " -"change and push records \n" -" become invalid. Therefore, to maintain a clean and efficient " -"database, the system will \n" -" clean up expired records at 2 a.m daily, based on the interval " -"specified by \n" -" PERM_EXPIRED_CHECK_PERIODIC in the config.txt configuration file. " -"This periodic cleanup \n" -" mechanism helps free up storage space and enhances the security and " -"overall performance \n" +"The system will periodically clean up unnecessary password change and push records, \n" +" including their associated change tasks, execution logs, assets, and accounts. When any \n" +" of these associated items are deleted, the corresponding password change and push records \n" +" become invalid. Therefore, to maintain a clean and efficient database, the system will \n" +" clean up expired records at 2 a.m daily, based on the interval specified by \n" +" PERM_EXPIRED_CHECK_PERIODIC in the config.txt configuration file. This periodic cleanup \n" +" mechanism helps free up storage space and enhances the security and overall performance \n" " of data management" msgstr "" -"システムは定期的に不要なパスワード変更記録とプッシュ記録をクリーンアップしま" -"す。これには、関連するパスワード変更タスク、実行記録、資産、アカウントが含ま" -"れます。これらの関連項目のいずれかが削除されると、対応するパスワード変更記録" -"とプッシュ記録は無効となります。したがって、データベースの整理と高速運用のた" -"めに、システム設定ファイルの config.txt の PERM_EXPIRED_CHECK_PERIODIC の時間" -"間隔に従って毎日午前2時に時間を超えた記録をクリーニングします。この定期的なク" -"リーニングメカニズムは、ストレージスペースの解放とデータ管理のセキュリティと" -"パフォーマンスの向上の両方に役立ちます" +"システムは定期的に不要なパスワード変更記録とプッシュ記録をクリーンアップします。これには、関連するパスワード変更タスク、実行記録、資産、アカウントが含まれます。これらの関連項目のいずれかが削除されると、対応するパスワード変更記録とプッシュ記録は無効となります。したがって、データベースの整理と高速運用のために、システム設定ファイルの" +" config.txt の PERM_EXPIRED_CHECK_PERIODIC " +"の時間間隔に従って毎日午前2時に時間を超えた記録をクリーニングします。この定期的なクリーニングメカニズムは、ストレージスペースの解放とデータ管理のセキュリティとパフォーマンスの向上の両方に役立ちます" #: accounts/tasks/backup_account.py:26 msgid "Execute account backup plan" @@ -1230,9 +1200,7 @@ msgstr "アカウントのバックアップ計画を実施する" #: accounts/tasks/backup_account.py:29 msgid "When performing scheduled or manual account backups, this task is used" -msgstr "" -"定時または手動でアカウントバックアップを実行する際は、このタスクを通じて実行" -"します" +msgstr "定時または手動でアカウントバックアップを実行する際は、このタスクを通じて実行します" #: accounts/tasks/gather_accounts.py:32 assets/tasks/automation.py:27 #: orgs/tasks.py:11 terminal/tasks.py:33 @@ -1251,18 +1219,13 @@ msgstr "アカウントをアセットにプッシュ:" msgid "" "When creating or modifying an account requires account push, this task is " "executed" -msgstr "" -"アカウントの作成、アカウントの変更を行う際、アカウントプッシュが必要な場合は" -"このタスクを実行します" +msgstr "アカウントの作成、アカウントの変更を行う際、アカウントプッシュが必要な場合はこのタスクを実行します" #: accounts/tasks/remove_account.py:28 msgid "" -"When clicking \"Sync deletion\" in 'Console - Gather Account - Gathered " -"accounts' this \n" +"When clicking \"Sync deletion\" in 'Console - Gather Account - Gathered accounts' this \n" " task will be executed" -msgstr "" -"コントロールパネル-オートメーション-アカウント収集-収集したアカウント-同期削" -"除をクリックすると、このタスクが実行されます" +msgstr "コントロールパネル-オートメーション-アカウント収集-収集したアカウント-同期削除をクリックすると、このタスクが実行されます" #: accounts/tasks/remove_account.py:50 msgid "Clean historical accounts" @@ -1270,18 +1233,13 @@ msgstr "過去のアカウントをクリアする" #: accounts/tasks/remove_account.py:52 msgid "" -"Each time an asset account is updated, a historical account is generated, so " -"it is \n" -" necessary to clean up the asset account history. The system will " -"clean up excess account \n" -" records at 2 a.m. daily based on the configuration in the \"System " -"settings - Features - \n" +"Each time an asset account is updated, a historical account is generated, so it is \n" +" necessary to clean up the asset account history. The system will clean up excess account \n" +" records at 2 a.m. daily based on the configuration in the \"System settings - Features - \n" " Account storage - Record limit" msgstr "" -"資産アカウントを更新するたびに、歴史的なアカウントが生成されるため、資産アカ" -"ウントの履歴をクリーニングする必要があります。システムは、アカウントストレー" -"ジ-レコード制限の設定に基づき、毎日午前2時に超過した数量のアカウントレコード" -"をクリーニングします" +"資産アカウントを更新するたびに、歴史的なアカウントが生成されるため、資産アカウントの履歴をクリーニングする必要があります。システムは、アカウントストレージ-" +"レコード制限の設定に基づき、毎日午前2時に超過した数量のアカウントレコードをクリーニングします" #: accounts/tasks/remove_account.py:89 msgid "Remove historical accounts that are out of range." @@ -1293,12 +1251,9 @@ msgstr "関連するアカウントへの情報の同期" #: accounts/tasks/template.py:14 msgid "" -"When clicking 'Sync new secret to accounts' in 'Console - Account - " -"Templates - \n" +"When clicking 'Sync new secret to accounts' in 'Console - Account - Templates - \n" " Accounts' this task will be executed" -msgstr "" -"コントロールパネル-アカウントテンプレート-アカウント-同期アカウント情報更新を" -"クリックして同期すると、このタスクが実行されます" +msgstr "コントロールパネル-アカウントテンプレート-アカウント-同期アカウント情報更新をクリックして同期すると、このタスクが実行されます" #: accounts/tasks/vault.py:33 msgid "Sync secret to vault" @@ -1308,9 +1263,7 @@ msgstr "秘密をVaultに同期する" msgid "" "When clicking 'Sync' in 'System Settings - Features - Account Storage' this " "task will be executed" -msgstr "" -"システム設定-機能設定-アカウントストレージをクリックして同期すると、このタス" -"クが実行されます" +msgstr "システム設定-機能設定-アカウントストレージをクリックして同期すると、このタスクが実行されます" #: accounts/tasks/verify_account.py:49 msgid "Verify asset account availability" @@ -1320,9 +1273,7 @@ msgstr "アセット アカウントの可用性を確認する" msgid "" "When clicking 'Test' in 'Console - Asset details - Accounts' this task will " "be executed" -msgstr "" -"コントロールパネル-資産詳細-アカウントをクリックしてテストを実行すると、この" -"タスクが実行されます" +msgstr "コントロールパネル-資産詳細-アカウントをクリックしてテストを実行すると、このタスクが実行されます" #: accounts/tasks/verify_account.py:58 msgid "Verify accounts connectivity" @@ -1353,16 +1304,13 @@ msgstr "尊敬する" msgid "" "Hello! The following is the failure of changing the password of your assets " "or pushing the account. Please check and handle it in time." -msgstr "" -"こんにちは! アセットの変更またはアカウントのプッシュが失敗する状況は次のとお" -"りです。 時間内に確認して対処してください。" +msgstr "こんにちは! アセットの変更またはアカウントのプッシュが失敗する状況は次のとおりです。 時間内に確認して対処してください。" #: accounts/utils.py:52 msgid "" -"If the password starts with {{` and ends with }} `, then the password is not " -"allowed." -msgstr "" -"パスワードが`{{`で始まり、`}}`で終わる場合、パスワードは許可されません。" +"If the password starts with {{` and ends with }} `, then the password is not" +" allowed." +msgstr "パスワードが`{{`で始まり、`}}`で終わる場合、パスワードは許可されません。" #: accounts/utils.py:59 msgid "private key invalid or passphrase error" @@ -1425,7 +1373,8 @@ msgstr "レビュー担当者" #: authentication/models/connection_token.py:54 #: authentication/models/ssh_key.py:13 #: authentication/templates/authentication/_access_key_modal.html:32 -#: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:28 +#: perms/models/asset_permission.py:82 +#: terminal/models/component/endpoint.py:28 #: terminal/models/component/endpoint.py:123 #: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44 #: tickets/const.py:36 @@ -1540,23 +1489,23 @@ msgid "" "10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64 (Domain name " "support)" msgstr "" -"* はすべて一致することを示します。例: 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 (ドメイン名サ" -"ポート)" +"* はすべて一致することを示します。例: " +"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" +" (ドメイン名サポート)" #: acls/serializers/base.py:41 assets/serializers/asset/host.py:19 msgid "IP/Host" msgstr "IP/ホスト" -#: acls/serializers/base.py:91 +#: acls/serializers/base.py:98 msgid "Recipients" msgstr "受信者" -#: acls/serializers/base.py:103 tickets/serializers/ticket/ticket.py:77 +#: acls/serializers/base.py:110 tickets/serializers/ticket/ticket.py:77 msgid "The organization `{}` does not exist" msgstr "組織 '{}'は存在しません" -#: acls/serializers/base.py:109 +#: acls/serializers/base.py:116 msgid "None of the reviewers belong to Organization `{}`" msgstr "いずれのレビューアも組織 '{}' に属していません" @@ -1570,8 +1519,8 @@ msgid "" "With * indicating a match all. Such as: 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 " msgstr "" -"* はすべて一致することを示します。例: 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" +"* はすべて一致することを示します。例: " +"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" #: acls/serializers/rules/rules.py:33 #: authentication/templates/authentication/_msg_oauth_bind.html:12 @@ -1611,9 +1560,7 @@ msgid "" "the asset. If you did not authorize this login or if you notice any " "suspicious activity, please take the necessary actions immediately." msgstr "" -"資産のセキュリティと適切な使用を確保するために、ログイン活動を確認してくださ" -"い。このログインを承認していない場合や、不審な活動に気付いた場合は、直ちに必" -"要な措置を講じてください。" +"資産のセキュリティと適切な使用を確保するために、ログイン活動を確認してください。このログインを承認していない場合や、不審な活動に気付いた場合は、直ちに必要な措置を講じてください。" #: acls/templates/acls/asset_login_reminder.html:16 #: acls/templates/acls/user_login_reminder.html:16 @@ -1642,9 +1589,7 @@ msgstr "ユーザーエージェント" #: assets/api/asset/asset.py:194 msgid "Cannot create asset directly, you should create a host or other" -msgstr "" -"資産を直接作成することはできません。ホストまたはその他を作成する必要がありま" -"す" +msgstr "資産を直接作成することはできません。ホストまたはその他を作成する必要があります" #: assets/api/asset/asset.py:198 msgid "The number of assets exceeds the limit of 5000" @@ -1774,7 +1719,7 @@ msgstr "脚本" #: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:76 #: settings/serializers/feature.py:80 settings/serializers/feature.py:93 #: settings/serializers/msg.py:30 terminal/models/component/endpoint.py:14 -#: terminal/serializers/applet.py:17 xpack/plugins/cloud/manager.py:89 +#: terminal/serializers/applet.py:17 xpack/plugins/cloud/manager.py:92 #: xpack/plugins/cloud/serializers/account_attrs.py:72 msgid "Host" msgstr "ホスト" @@ -1846,9 +1791,8 @@ msgstr "openssh 5.x または 6.x などの古い SSH バージョン" #: assets/const/protocol.py:53 msgid "Netcat help text" msgstr "" -"netcat (nc) をプロキシ ツールとして使用し、プロキシ サーバーからターゲット ホ" -"ストに接続を転送します。 SSH ネイティブ エージェント オプション (-W) がサポー" -"トされていない環境、またはより柔軟なタイムアウト制御が必要な環境に最適です。" +"netcat (nc) をプロキシ ツールとして使用し、プロキシ サーバーからターゲット ホストに接続を転送します。 SSH ネイティブ エージェント " +"オプション (-W) がサポートされていない環境、またはより柔軟なタイムアウト制御が必要な環境に最適です。" #: assets/const/protocol.py:64 msgid "SFTP root" @@ -1861,9 +1805,7 @@ msgid "" "account username
- ${HOME} The home directory of the connected account " "
- ${USER} The username of the user" msgstr "" -"SFTPルートディレクトリ、サポート変数:
-${ACCOUNT}接続されたアカウントの" -"ユーザー名
-${HOME}接続されたアカウントのホームディレクトリ
-${USER}" -"ユーザーのユーザー名" +"SFTPルートディレクトリ、サポート変数:
-${ACCOUNT}接続されたアカウントのユーザー名
-${HOME}接続されたアカウントのホームディレクトリ
-${USER}ユーザーのユーザー名" #: assets/const/protocol.py:81 msgid "Console" @@ -1884,20 +1826,17 @@ msgstr "セキュリティ" #: assets/const/protocol.py:89 msgid "" -"Security layer to use for the connection:
Any
Automatically select the " -"security mode based on the security protocols supported by both the client " +"Security layer to use for the connection:
Any
Automatically select the" +" security mode based on the security protocols supported by both the client " "and the server
RDP
Legacy RDP encryption. This mode is generally only " "used for older Windows servers or in cases where a standard Windows login " "screen is desired
TLS
RDP authentication and encryption implemented " "via TLS.
NLA
This mode uses TLS encryption and requires the username " "and password to be given in advance" msgstr "" -"接続のセキュリティ層:
Any
クライアントとサーバーの両方でサポートされて" -"いるセキュリティプロトコルに基づいて、セキュリティモードを自動的に選択します" -"
RDP
レガシーRDP暗号化。このモードは、通常、古い Windowsサーバーや標準" -"のWindowsログイン画面が必要な場合に使用されます
TLS
TLSによって実装され" -"たRDP認証と暗号化
NLA
このモードはTLS暗号化を使用し、事前にユーザー名と" -"パスワードを提供する必要があります
" +"接続のセキュリティ層:
Any
クライアントとサーバーの両方でサポートされているセキュリティプロトコルに基づいて、セキュリティモードを自動的に選択します
RDP
レガシーRDP暗号化。このモードは、通常、古い" +" " +"Windowsサーバーや標準のWindowsログイン画面が必要な場合に使用されます
TLS
TLSによって実装されたRDP認証と暗号化
NLA
このモードはTLS暗号化を使用し、事前にユーザー名とパスワードを提供する必要があります
" #: assets/const/protocol.py:106 msgid "AD domain" @@ -1973,9 +1912,7 @@ msgstr "安全モード" msgid "" "When safe mode is enabled, some operations will be disabled, such as: New " "tab, right click, visit other website, etc." -msgstr "" -"安全モードが有効になっている場合、新しいタブ、右クリック、他のウェブサイトへ" -"のアクセスなど、一部の操作が無効になります" +msgstr "安全モードが有効になっている場合、新しいタブ、右クリック、他のウェブサイトへのアクセスなど、一部の操作が無効になります" #: assets/const/protocol.py:275 assets/models/asset/web.py:9 #: assets/serializers/asset/info/spec.py:16 @@ -2384,9 +2321,7 @@ msgstr "%(value)s は偶数ではありません" msgid "" "Batch update platform in assets, skipping assets that do not meet platform " "type" -msgstr "" -"プラットフォームタイプがスキップされた資産に合致しない、資産内の一括更新プ" -"ラットフォーム" +msgstr "プラットフォームタイプがスキップされた資産に合致しない、資産内の一括更新プラットフォーム" #: assets/serializers/asset/common.py:36 assets/serializers/platform.py:152 msgid "Protocols, format is [\"protocol/port\"]" @@ -2400,17 +2335,13 @@ msgstr "契約書、形式は 名前/ポート" msgid "" "Accounts, format [{\"name\": \"x\", \"username\": \"x\", \"secret\": \"x\", " "\"secret_type\": \"password\"}]" -msgstr "" -"アカウント、形式は [{\"name\": \"x\", \"username\": \"x\", \"secret\": " -"\"x\", \"secret_type\": \"パスワード\"}]" +msgstr "アカウント、形式は [{\"name\": \"x\", \"username\": \"x\", \"secret\": \"x\", \"secret_type\": \"パスワード\"}]" #: assets/serializers/asset/common.py:135 msgid "" "Node path, format [\"/org_name/node_name\"], if node not exist, will create " "it" -msgstr "" -"ノードパス、形式は [\"/組織/ノード名\"]、もしノードが存在しない場合、それを作" -"成します" +msgstr "ノードパス、形式は [\"/組織/ノード名\"]、もしノードが存在しない場合、それを作成します" #: assets/serializers/asset/common.py:147 assets/serializers/platform.py:173 #: authentication/serializers/connect_token_secret.py:30 @@ -2454,31 +2385,23 @@ msgstr "デフォルト・データベース" #: assets/serializers/asset/database.py:23 msgid "CA cert help text" msgstr "" -" Common Name (CN) フィールドは廃止されました。RFC 5280に基づき、Subject " -"Alternative Name (SAN) フィールドを使用してドメイン名を確認し、セキュリティを" -"強化してください" +" Common Name (CN) フィールドは廃止されました。RFC 5280に基づき、Subject Alternative Name (SAN) " +"フィールドを使用してドメイン名を確認し、セキュリティを強化してください" #: assets/serializers/asset/database.py:24 msgid "Postgresql ssl model help text" msgstr "" -"Prefer:私は暗号化に関心はありませんが、サーバーが暗号化をサポートしているな" -"ら、私は暗号化のコストを支払うことを喜んでいます。\n" -"Require:私のデータを暗号化してほしい、そのコストを受け入れます。私はネット" -"ワークが私が接続したいサーバーに常に接続できるように保証してくれると信じてい" -"ます。\n" -"Verify CA:私はデータが暗号化され、コストを受け入れます。私が信頼するサーバー" -"に接続されていることを確認したい。\n" -"Verify Full:私はデータが暗号化され、コストを受け入れます。私が信頼するサー" -"バーに接続されていること、そしてそれが私が指定したサーバーであることを確認し" -"たい" +"Prefer:私は暗号化に関心はありませんが、サーバーが暗号化をサポートしているなら、私は暗号化のコストを支払うことを喜んでいます。\n" +"Require:私のデータを暗号化してほしい、そのコストを受け入れます。私はネットワークが私が接続したいサーバーに常に接続できるように保証してくれると信じています。\n" +"Verify CA:私はデータが暗号化され、コストを受け入れます。私が信頼するサーバーに接続されていることを確認したい。\n" +"Verify Full:私はデータが暗号化され、コストを受け入れます。私が信頼するサーバーに接続されていること、そしてそれが私が指定したサーバーであることを確認したい" #: assets/serializers/asset/gpt.py:20 msgid "" -"If the server cannot directly connect to the API address, you need set up an " -"HTTP proxy. e.g. http(s)://host:port" +"If the server cannot directly connect to the API address, you need set up an" +" HTTP proxy. e.g. http(s)://host:port" msgstr "" -"サーバーが API アドレスに直接接続できない場合は、HTTP プロキシを設定する必要" -"があります。例: http(s)://host:port" +"サーバーが API アドレスに直接接続できない場合は、HTTP プロキシを設定する必要があります。例: http(s)://host:port" #: assets/serializers/asset/gpt.py:24 msgid "HTTP proxy" @@ -2550,9 +2473,7 @@ msgstr "タイプ" msgid "" "A gateway is a network proxy for a zone, and when connecting assets within " "the zone, the connection is routed through the gateway." -msgstr "" -"ゲートウェイはドメインのネットワーク代理であり、ドメイン内のリソースに接続す" -"る際には、接続はゲートウェイを通してルーティングされます。" +msgstr "ゲートウェイはドメインのネットワーク代理であり、ドメイン内のリソースに接続する際には、接続はゲートウェイを通してルーティングされます。" #: assets/serializers/domain.py:24 assets/serializers/platform.py:181 #: orgs/serializers.py:13 perms/serializers/permission.py:50 @@ -2623,9 +2544,7 @@ msgstr "アドレスからのポート" msgid "" "This protocol is primary, and it must be set when adding assets. " "Additionally, there can only be one primary protocol." -msgstr "" -"このプロトコルはプライマリであり、資産を追加するときに設定する必要がありま" -"す。また、プライマリプロトコルは1つしかありません" +msgstr "このプロトコルはプライマリであり、資産を追加するときに設定する必要があります。また、プライマリプロトコルは1つしかありません" #: assets/serializers/platform.py:102 msgid "This protocol is required, and it must be set when adding assets." @@ -2635,14 +2554,11 @@ msgstr "このプロトコルは必須であり、資産を追加するときに msgid "" "This protocol is default, when adding assets, it will be displayed by " "default." -msgstr "" -"このプロトコルはデフォルトです。資産を追加するときに、デフォルトで表示されま" -"す" +msgstr "このプロトコルはデフォルトです。資産を追加するときに、デフォルトで表示されます" #: assets/serializers/platform.py:108 msgid "This protocol is public, asset will show this protocol to user" -msgstr "" -"このプロトコルは公開されており、資産はこのプロトコルをユーザーに表示します" +msgstr "このプロトコルは公開されており、資産はこのプロトコルをユーザーに表示します" #: assets/serializers/platform.py:161 msgid "Help text" @@ -2662,9 +2578,8 @@ msgid "" "another, similar to logging in with a regular account and then switching to " "root" msgstr "" -"資産にアクセスする際にアカウントでログインし、その後自動的に別のアカウントに" -"切り替えます。これは、通常のアカウントでログインした後に root に切り替えるの" -"と似ています" +"資産にアクセスする際にアカウントでログインし、その後自動的に別のアカウントに切り替えます。これは、通常のアカウントでログインした後に root " +"に切り替えるのと似ています" #: assets/serializers/platform.py:209 msgid "Assets can be connected using a zone gateway" @@ -2700,12 +2615,9 @@ msgstr "資産情報の収集" #: assets/tasks/gather_facts.py:25 msgid "" -"When clicking 'Refresh hardware info' in 'Console - Asset Details - Basic' " -"this task \n" +"When clicking 'Refresh hardware info' in 'Console - Asset Details - Basic' this task \n" " will be executed" -msgstr "" -"コントロールパネル資産詳細-基本設定をクリックしてハードウェア情報を更新する" -"と、このタスクが実行されます" +msgstr "コントロールパネル資産詳細-基本設定をクリックしてハードウェア情報を更新すると、このタスクが実行されます" #: assets/tasks/gather_facts.py:44 msgid "Update assets hardware info: " @@ -2721,21 +2633,16 @@ msgstr "ノード下のアセット数を確認する" #: assets/tasks/nodes_amount.py:18 msgid "" -"Manually verifying asset quantities updates the asset count for nodes under " -"the \n" -" current organization. This task will be called in the following two " -"cases: when updating \n" +"Manually verifying asset quantities updates the asset count for nodes under the \n" +" current organization. This task will be called in the following two cases: when updating \n" " nodes and when the number of nodes exceeds 100" -msgstr "" -"手動で資産数を校正して現在の組織のノード資産数を更新する;ノードを更新する、" -"ノード数が100を超えると、このタスクが呼び出されます" +msgstr "手動で資産数を校正して現在の組織のノード資産数を更新する;ノードを更新する、ノード数が100を超えると、このタスクが呼び出されます" #: assets/tasks/nodes_amount.py:34 msgid "" -"The task of self-checking is already running and cannot be started repeatedly" -msgstr "" -"セルフチェックのタスクはすでに実行されており、繰り返し開始することはできませ" -"ん" +"The task of self-checking is already running and cannot be started " +"repeatedly" +msgstr "セルフチェックのタスクはすでに実行されており、繰り返し開始することはできません" #: assets/tasks/nodes_amount.py:40 msgid "Periodic check the amount of assets under the node" @@ -2743,12 +2650,9 @@ msgstr "ノードの下にあるアセットの数を定期的に確認する" #: assets/tasks/nodes_amount.py:42 msgid "" -"Schedule the check_node_assets_amount_task to periodically update the asset " -"count of \n" +"Schedule the check_node_assets_amount_task to periodically update the asset count of \n" " all nodes under all organizations" -msgstr "" -"check_node_assets_amount_taskタスクを定期的に呼び出し、すべての組織のすべての" -"ノードの資産数を更新します" +msgstr "check_node_assets_amount_taskタスクを定期的に呼び出し、すべての組織のすべてのノードの資産数を更新します" #: assets/tasks/ping.py:20 assets/tasks/ping.py:30 msgid "Test assets connectivity" @@ -2758,9 +2662,7 @@ msgstr "アセット接続のテスト。" msgid "" "When clicking 'Test Asset Connectivity' in 'Asset Details - Basic Settings' " "this task will be executed" -msgstr "" -"資産詳細-基本設定をクリックして資産の接続性をテストすると、このタスクが実行さ" -"れます" +msgstr "資産詳細-基本設定をクリックして資産の接続性をテストすると、このタスクが実行されます" #: assets/tasks/ping.py:46 msgid "Test if the assets under the node are connectable " @@ -2773,11 +2675,9 @@ msgstr "ゲートウェイ接続のテスト。" #: assets/tasks/ping_gateway.py:23 msgid "" -"When clicking 'Test Connection' in 'Domain Details - Gateway' this task will " -"be executed" -msgstr "" -"ネットワーク詳細-ゲートウェイ-接続テストを実行する際に、このタスクを実行しま" -"す" +"When clicking 'Test Connection' in 'Domain Details - Gateway' this task will" +" be executed" +msgstr "ネットワーク詳細-ゲートウェイ-接続テストを実行する際に、このタスクを実行します" #: assets/tasks/utils.py:16 msgid "Asset has been disabled, skipped: {}" @@ -2800,7 +2700,8 @@ msgid "App Audits" msgstr "監査" #: audits/backends/db.py:17 -msgid "The text content is too long. Use Elasticsearch to store operation logs" +msgid "" +"The text content is too long. Use Elasticsearch to store operation logs" msgstr "文章の内容が長すぎる。Elasticsearchで操作履歴を保存する" #: audits/backends/db.py:78 @@ -2854,7 +2755,7 @@ msgstr "マップディレクトリ" #: audits/const.py:23 rbac/tree.py:268 terminal/api/session/session.py:284 #: terminal/templates/terminal/_msg_command_warning.html:18 #: terminal/templates/terminal/_msg_session_sharing.html:10 -#: xpack/plugins/cloud/manager.py:90 +#: xpack/plugins/cloud/manager.py:93 msgid "View" msgstr "表示" @@ -2901,8 +2802,8 @@ msgstr "終了" #: audits/const.py:46 settings/serializers/terminal.py:6 #: terminal/models/applet/host.py:26 terminal/models/component/terminal.py:182 -#: terminal/models/virtualapp/provider.py:14 terminal/serializers/session.py:57 -#: terminal/serializers/session.py:113 +#: terminal/models/virtualapp/provider.py:14 +#: terminal/serializers/session.py:57 terminal/serializers/session.py:113 msgid "Terminal" msgstr "ターミナル" @@ -2941,7 +2842,8 @@ msgid "Job audit log" msgstr "業務監査" #: audits/models.py:56 audits/models.py:100 audits/models.py:175 -#: terminal/models/session/session.py:40 terminal/models/session/sharing.py:113 +#: terminal/models/session/session.py:40 +#: terminal/models/session/sharing.py:113 msgid "Remote addr" msgstr "リモートaddr" @@ -3062,7 +2964,7 @@ msgid "Creator" msgstr "作成者" #: audits/serializers.py:39 ops/models/base.py:52 ops/models/job.py:240 -#: xpack/plugins/cloud/manager.py:99 +#: xpack/plugins/cloud/manager.py:102 msgid "Summary" msgstr "Summary" @@ -3163,18 +3065,13 @@ msgstr "資産監査セッションタスクログのクリーンアップ" #: audits/tasks.py:134 msgid "" -"Since the system generates login logs, operation logs, file upload logs, " -"activity \n" -" logs, Celery execution logs, session recordings, command records, " -"and password change \n" -" logs, it will perform cleanup of records that exceed the time limit " -"according to the \n" +"Since the system generates login logs, operation logs, file upload logs, activity \n" +" logs, Celery execution logs, session recordings, command records, and password change \n" +" logs, it will perform cleanup of records that exceed the time limit according to the \n" " 'Tasks - Regular clean-up' in the system settings at 2 a.m daily" msgstr "" -"システムはログインログ、操作ログ、ファイルアップロードログ、アクティビティロ" -"グ、セルリー実行ログ、セッション録画、コマンド記録、パスワード変更ログを生成" -"します。システムは、システム設定-タスクリスト-定期クリーニング設定に基づき、" -"毎日午前2時に時間を超えたものをクリーニングします" +"システムはログインログ、操作ログ、ファイルアップロードログ、アクティビティログ、セルリー実行ログ、セッション録画、コマンド記録、パスワード変更ログを生成します。システムは、システム設定-" +"タスクリスト-定期クリーニング設定に基づき、毎日午前2時に時間を超えたものをクリーニングします" #: audits/tasks.py:154 msgid "Upload FTP file to external storage" @@ -3182,12 +3079,10 @@ msgstr "外部ストレージへのFTPファイルのアップロード" #: audits/tasks.py:156 msgid "" -"If SERVER_REPLAY_STORAGE is configured, files uploaded through file " -"management will be \n" +"If SERVER_REPLAY_STORAGE is configured, files uploaded through file management will be \n" " synchronized to external storage" msgstr "" -"SERVER_REPLAY_STORAGEが設定されている場合は、ファイルマネージャーでアップロー" -"ドしたファイルを外部ストレージに同期します" +"SERVER_REPLAY_STORAGEが設定されている場合は、ファイルマネージャーでアップロードしたファイルを外部ストレージに同期します" #: authentication/api/access_key.py:39 msgid "Access keys can be created at most 10" @@ -3204,9 +3099,7 @@ msgstr "この操作には、MFAを検証する必要があります" #: authentication/api/connection_token.py:301 msgid "Reusable connection token is not allowed, global setting not enabled" -msgstr "" -"再使用可能な接続トークンの使用は許可されていません。グローバル設定は有効に" -"なっていません" +msgstr "再使用可能な接続トークンの使用は許可されていません。グローバル設定は有効になっていません" #: authentication/api/connection_token.py:421 msgid "Anonymous account is not supported for this asset" @@ -3245,7 +3138,7 @@ msgid "No available face feature" msgstr "利用可能な顔の特徴はありません" #: authentication/api/face.py:100 authentication/mfa/face.py:21 -#: authentication/mfa/face.py:23 +#: authentication/mfa/face.py:23 users/views/profile/face.py:72 msgid "Facial comparison failed" msgstr "顔認証の照合に失敗" @@ -3266,9 +3159,7 @@ msgstr "ユーザーにマッチしなかった" msgid "" "The user is from {}, please go to the corresponding system to change the " "password" -msgstr "" -"ユーザーは {}からです。対応するシステムにアクセスしてパスワードを変更してくだ" -"さい。" +msgstr "ユーザーは {}からです。対応するシステムにアクセスしてパスワードを変更してください。" #: authentication/api/password.py:69 #: authentication/templates/authentication/login.html:393 @@ -3299,8 +3190,7 @@ msgstr "無効なトークンヘッダー。記号文字列にはスペースを #: authentication/backends/drf.py:61 msgid "" "Invalid token header. Sign string should not contain invalid characters." -msgstr "" -"無効なトークンヘッダー。署名文字列に無効な文字を含めることはできません。" +msgstr "無効なトークンヘッダー。署名文字列に無効な文字を含めることはできません。" #: authentication/backends/drf.py:74 msgid "Invalid token or cache refreshed." @@ -3313,9 +3203,7 @@ msgstr "OpenID エラー" #: authentication/backends/oidc/views.py:176 #: authentication/backends/saml2/views.py:283 msgid "Please check if a user with the same username or email already exists" -msgstr "" -"同じユーザー名またはメールアドレスのユーザーが既に存在するかどうかを確認して" -"ください" +msgstr "同じユーザー名またはメールアドレスのユーザーが既に存在するかどうかを確認してください" #: authentication/backends/passkey/api.py:37 msgid "Only register passkey for local user" @@ -3335,7 +3223,8 @@ msgstr "に追加" #: authentication/backends/passkey/models.py:14 #: authentication/models/access_key.py:26 -#: authentication/models/private_token.py:8 authentication/models/ssh_key.py:20 +#: authentication/models/private_token.py:8 +#: authentication/models/ssh_key.py:20 msgid "Date last used" msgstr "最後に使用した日付" @@ -3414,34 +3303,27 @@ msgid "" "You can also try {times_try} times (The account will be temporarily locked " "for {block_time} minutes)" msgstr "" -"入力したユーザー名またはパスワードが正しくありません。再度入力してください。 " -"{times_try} 回試すこともできます (アカウントは {block_time} 分の間一時的に" -"ロックされます)" +"入力したユーザー名またはパスワードが正しくありません。再度入力してください。 {times_try} 回試すこともできます (アカウントは " +"{block_time} 分の間一時的にロックされます)" #: authentication/errors/const.py:47 authentication/errors/const.py:55 msgid "" "The account has been locked (please contact admin to unlock it or try again " "after {} minutes)" -msgstr "" -"アカウントがロックされています (管理者に連絡してロックを解除するか、 {} 分後" -"にもう一度お試しください)" +msgstr "アカウントがロックされています (管理者に連絡してロックを解除するか、 {} 分後にもう一度お試しください)" #: authentication/errors/const.py:51 msgid "" "The address has been locked (please contact admin to unlock it or try again " "after {} minutes)" -msgstr "" -"IP がロックされています (管理者に連絡してロックを解除するか、{} 分後に再試行" -"してください)" +msgstr "IP がロックされています (管理者に連絡してロックを解除するか、{} 分後に再試行してください)" #: authentication/errors/const.py:59 #, python-brace-format msgid "" -"{error}, You can also try {times_try} times (The account will be temporarily " -"locked for {block_time} minutes)" -msgstr "" -"{error},{times_try} 回も試すことができます (アカウントは {block_time} 分の間" -"一時的にロックされます)" +"{error}, You can also try {times_try} times (The account will be temporarily" +" locked for {block_time} minutes)" +msgstr "{error},{times_try} 回も試すことができます (アカウントは {block_time} 分の間一時的にロックされます)" #: authentication/errors/const.py:63 msgid "MFA required" @@ -3528,8 +3410,7 @@ msgstr "ログインする前にパスワードを変更する必要がありま #: authentication/errors/redirect.py:101 authentication/mixins.py:345 msgid "Your password has expired, please reset before logging in" -msgstr "" -"パスワードの有効期限が切れました。ログインする前にリセットしてください。" +msgstr "パスワードの有効期限が切れました。ログインする前にリセットしてください。" #: authentication/forms.py:34 msgid "Auto-login" @@ -3570,18 +3451,17 @@ msgstr "カスタム MFA 検証コード" #: authentication/mfa/custom.py:56 msgid "MFA custom global enabled, cannot disable" -msgstr "" -"カスタム MFA はグローバルに有効になっており、無効にすることはできません" +msgstr "カスタム MFA はグローバルに有効になっており、無効にすることはできません" #: authentication/mfa/face.py:11 msgid "Face Recognition" msgstr "顔認証" -#: authentication/mfa/face.py:54 +#: authentication/mfa/face.py:55 msgid "Bind face to enable" msgstr "顔の特徴を結びつけて有効化" -#: authentication/mfa/face.py:58 +#: authentication/mfa/face.py:59 msgid "Unbind face to disable" msgstr "顔の特徴を解除して無効化" @@ -3650,9 +3530,7 @@ msgstr "無効なユーザーです" msgid "" "The administrator has enabled 'Only allow login from user source'. \n" " The current user source is {}. Please contact the administrator." -msgstr "" -"管理者は「ユーザーソースからのみログインを許可」をオンにしており、現在のユー" -"ザーソースは {} です。管理者に連絡してください。" +msgstr "管理者は「ユーザーソースからのみログインを許可」をオンにしており、現在のユーザーソースは {} です。管理者に連絡してください。" #: authentication/mixins.py:273 msgid "The MFA type ({}) is not enabled" @@ -3758,13 +3636,13 @@ msgstr "プライベートトークン" #: authentication/models/ssh_key.py:15 terminal/serializers/storage.py:146 #: users/models/user/__init__.py:93 -#: xpack/plugins/cloud/serializers/account_attrs.py:213 +#: xpack/plugins/cloud/serializers/account_attrs.py:214 msgid "Private key" msgstr "ssh秘密鍵" #: authentication/models/ssh_key.py:18 settings/serializers/terminal.py:34 #: users/forms/profile.py:175 users/models/user/__init__.py:96 -#: xpack/plugins/cloud/serializers/account_attrs.py:210 +#: xpack/plugins/cloud/serializers/account_attrs.py:211 msgid "Public key" msgstr "公開キー" @@ -3870,11 +3748,9 @@ msgstr "タイプを作成" #: authentication/serializers/ssh_key.py:33 msgid "" -"Please download the private key after creation. Each private key can only be " -"downloaded once" -msgstr "" -"作成完了後、秘密鍵をダウンロードしてください。各秘密鍵のダウンロードは一度き" -"りです" +"Please download the private key after creation. Each private key can only be" +" downloaded once" +msgstr "作成完了後、秘密鍵をダウンロードしてください。各秘密鍵のダウンロードは一度きりです" #: authentication/serializers/ssh_key.py:57 users/forms/profile.py:164 #: users/serializers/profile.py:134 users/serializers/profile.py:161 @@ -3897,11 +3773,9 @@ msgstr "期限切れのセッションをクリアする" #: authentication/tasks.py:15 msgid "" -"Since user logins create sessions, the system will clean up expired sessions " -"every 24 hours" -msgstr "" -"ユーザーがシステムにログインするとセッションが生成されます。システムは24時間" -"ごとに期限切れのセッションをクリーニングします" +"Since user logins create sessions, the system will clean up expired sessions" +" every 24 hours" +msgstr "ユーザーがシステムにログインするとセッションが生成されます。システムは24時間ごとに期限切れのセッションをクリーニングします" #: authentication/templates/authentication/_access_key_modal.html:6 msgid "API key list" @@ -3979,9 +3853,7 @@ msgstr "アカウントにリモートログイン動作があります。注意 msgid "" "If you suspect that the login behavior is abnormal, please modify the " "account password in time." -msgstr "" -"ログイン動作が異常であると疑われる場合は、時間内にアカウントのパスワードを変" -"更してください。" +msgstr "ログイン動作が異常であると疑われる場合は、時間内にアカウントのパスワードを変更してください。" #: authentication/templates/authentication/_msg_oauth_bind.html:6 msgid "Your account has just been bound to" @@ -3995,9 +3867,7 @@ msgstr "操作が独自のものでない場合は、パスワードをバイン msgid "" "Please click the link below to reset your password, if not your request, " "concern your account security" -msgstr "" -"下のリンクをクリックしてパスワードをリセットしてください。リクエストがない場" -"合は、アカウントのセキュリティに関係します。" +msgstr "下のリンクをクリックしてパスワードをリセットしてください。リクエストがない場合は、アカウントのセキュリティに関係します。" #: authentication/templates/authentication/_msg_reset_password.html:10 msgid "Click here reset password" @@ -4042,9 +3912,7 @@ msgstr "ブラウザ" msgid "" "If the password update was not initiated by you, your account may have " "security issues" -msgstr "" -"パスワードの更新が開始されなかった場合、アカウントにセキュリティ上の問題があ" -"る可能性があります" +msgstr "パスワードの更新が開始されなかった場合、アカウントにセキュリティ上の問題がある可能性があります" #: authentication/templates/authentication/_msg_rest_password_success.html:13 #: authentication/templates/authentication/_msg_rest_public_key_success.html:13 @@ -4059,9 +3927,7 @@ msgstr "公開鍵が正常に更新されました" msgid "" "If the public key update was not initiated by you, your account may have " "security issues" -msgstr "" -"公開鍵の更新が開始されなかった場合、アカウントにセキュリティ上の問題がある可" -"能性があります" +msgstr "公開鍵の更新が開始されなかった場合、アカウントにセキュリティ上の問題がある可能性があります" #: authentication/templates/authentication/auth_fail_flash_message_standalone.html:28 #: templates/flash_message_standalone.html:28 tickets/const.py:18 @@ -4076,9 +3942,7 @@ msgstr "再試行" msgid "" "Configuration file has problems and cannot be logged in. Please contact the " "administrator or view latest docs" -msgstr "" -"設定ファイルに問題があり、ログインできません。管理者に連絡するか、最新のド" -"キュメントを参照してください。" +msgstr "設定ファイルに問題があり、ログインできません。管理者に連絡するか、最新のドキュメントを参照してください。" #: authentication/templates/authentication/login.html:309 msgid "If you are administrator, you can update the config resolve it, set" @@ -4124,9 +3988,7 @@ msgstr "コピー成功" msgid "" "This page is not served over HTTPS. Please use HTTPS to ensure security of " "your credentials." -msgstr "" -"このページはHTTPSで提供されていません。HTTPSを使用して、資格情報のセキュリ" -"ティを確保してください。" +msgstr "このページはHTTPSで提供されていません。HTTPSを使用して、資格情報のセキュリティを確保してください。" #: authentication/templates/authentication/passkey.html:173 msgid "Do you want to retry ?" @@ -4225,15 +4087,15 @@ msgstr "リダイレクト" msgid "Redirecting to {} authentication" msgstr "{} 認証へのリダイレクト" -#: authentication/views/login.py:243 +#: authentication/views/login.py:247 msgid "Login timeout, please try again." msgstr "ログインタイムアウト、もう一度お試しください" -#: authentication/views/login.py:288 +#: authentication/views/login.py:292 msgid "User email already exists ({})" msgstr "ユーザー メールボックスは既に存在します ({})" -#: authentication/views/login.py:366 +#: authentication/views/login.py:370 msgid "" "Wait for {} confirm, You also can copy link to her/him
\n" " Don't close this page" @@ -4241,25 +4103,23 @@ msgstr "" "{} 確認を待ちます。彼女/彼へのリンクをコピーすることもできます
\n" " このページを閉じないでください" -#: authentication/views/login.py:371 +#: authentication/views/login.py:375 msgid "No ticket found" msgstr "チケットが見つかりません" -#: authentication/views/login.py:407 +#: authentication/views/login.py:411 msgid "Logout success" msgstr "ログアウト成功" -#: authentication/views/login.py:408 +#: authentication/views/login.py:412 msgid "Logout success, return login page" msgstr "ログアウト成功、ログインページを返す" #: authentication/views/mixins.py:39 msgid "" -"For your safety, automatic redirection login is not supported on the client. " -"If you need to open it in the client, please log in again" -msgstr "" -"安全のため、クライアントでの自動リダイレクトログインはサポートされていませ" -"ん。クライアントで開く必要がある場合は、再度ログインしてください" +"For your safety, automatic redirection login is not supported on the client." +" If you need to open it in the client, please log in again" +msgstr "安全のため、クライアントでの自動リダイレクトログインはサポートされていません。クライアントで開く必要がある場合は、再度ログインしてください" #: authentication/views/slack.py:35 authentication/views/slack.py:120 msgid "Slack Error" @@ -4341,7 +4201,7 @@ msgstr "エンタープライズプロフェッショナル版" msgid "Ultimate edition" msgstr "エンタープライズ・フラッグシップ・エディション" -#: common/const/common.py:5 xpack/plugins/cloud/manager.py:417 +#: common/const/common.py:5 xpack/plugins/cloud/manager.py:424 #, python-format msgid "%(name)s was created successfully" msgstr "%(name)s が正常に作成されました" @@ -4385,13 +4245,12 @@ msgstr "Secret Keyを使用したフィールドの暗号化" #: common/db/fields.py:577 msgid "" -"Invalid JSON data for JSONManyToManyField, should be like {'type': 'all'} or " -"{'type': 'ids', 'ids': []} or {'type': 'attrs', 'attrs': [{'name': 'ip', " +"Invalid JSON data for JSONManyToManyField, should be like {'type': 'all'} or" +" {'type': 'ids', 'ids': []} or {'type': 'attrs', 'attrs': [{'name': 'ip', " "'match': 'exact', 'value': '1.1.1.1'}}" msgstr "" -"JSON言語多对多字段无效,应为 #「タイプ」:「すべて」#「すべて」或 " -"{'type':'ids','ids':[]}或 #タイプ:属性、属性:[#名前:ip、照合:正確、" -"値:1.1.1.1}" +"JSON言語多对多字段无效,应为 #「タイプ」:「すべて」#「すべて」或 {'type':'ids','ids':[]}或 " +"#タイプ:属性、属性:[#名前:ip、照合:正確、値:1.1.1.1}" #: common/db/fields.py:584 msgid "Invalid type, should be \"all\", \"ids\" or \"attrs\"" @@ -4405,8 +4264,8 @@ msgstr "無効なID、リストでなければなりません" #: common/serializers/fields.py:144 terminal/serializers/session.py:81 #: tickets/serializers/ticket/common.py:58 #: xpack/plugins/cloud/serializers/account_attrs.py:56 -#: xpack/plugins/cloud/serializers/account_attrs.py:79 -#: xpack/plugins/cloud/serializers/account_attrs.py:150 +#: xpack/plugins/cloud/serializers/account_attrs.py:80 +#: xpack/plugins/cloud/serializers/account_attrs.py:151 msgid "This field is required." msgstr "このフィールドは必須です。" @@ -4478,9 +4337,7 @@ msgstr "日付時刻形式 {}" msgid "" "Choices, format name(value), name is optional for human read, value is " "requisite, options {}" -msgstr "" -"選択、形式: 名前(値)、名前はオプショナルで、読みやすいように、値は必須です。" -"選択肢は {}" +msgstr "選択、形式: 名前(値)、名前はオプショナルで、読みやすいように、値は必須です。選択肢は {}" #: common/drf/renders/base.py:157 msgid "Choices, options {}" @@ -4497,9 +4354,7 @@ msgstr "タグ、形式: [\"キー:値\"]" #: common/drf/renders/base.py:163 msgid "" "Object, format name(id), name is optional for human read, id is requisite" -msgstr "" -"関連項目、形式: 名前(id)、名前はオプショナルで、読みやすいように、idは必須で" -"す" +msgstr "関連項目、形式: 名前(id)、名前はオプショナルで、読みやすいように、idは必須です" #: common/drf/renders/base.py:165 msgid "Object, format id" @@ -4509,15 +4364,11 @@ msgstr "関連項目、形式は id" msgid "" "Objects, format [\"name(id)\", ...], name is optional for human read, id is " "requisite" -msgstr "" -"多関連項目、形式: [\"名前(id)\", ...]、名前はオプショナルで、読みやすいよう" -"に、idは必須です" +msgstr "多関連項目、形式: [\"名前(id)\", ...]、名前はオプショナルで、読みやすいように、idは必須です" #: common/drf/renders/base.py:171 -msgid "" -"Labels, format [\"key:value\", ...], if label not exists, will create it" -msgstr "" -"タグ、形式: [\"キー:値\", ...]、もしタグが存在しない場合、それを作成します" +msgid "Labels, format [\"key:value\", ...], if label not exists, will create it" +msgstr "タグ、形式: [\"キー:値\", ...]、もしタグが存在しない場合、それを作成します" #: common/drf/renders/base.py:173 msgid "Objects, format [\"id\", ...]" @@ -4527,9 +4378,7 @@ msgstr "多関連項目、形式は [\"id\", ...]" msgid "" "{} - The encryption password has not been set - please go to personal " "information -> file encryption password to set the encryption password" -msgstr "" -"{} - 暗号化パスワードが設定されていません-個人情報->ファイル暗号化パスワード" -"に暗号化パスワードを設定してください" +msgstr "{} - 暗号化パスワードが設定されていません-個人情報->ファイル暗号化パスワードに暗号化パスワードを設定してください" #: common/exceptions.py:15 xpack/plugins/cloud/ws.py:37 #, python-format @@ -4572,9 +4421,7 @@ msgstr "サポートされていません Elasticsearch8" msgid "" "Connection failed: Self-signed certificate used. Please check server " "certificate configuration" -msgstr "" -"接続失敗:自己署名証明書が使用されています,サーバーの証明書設定を確認してく" -"ださい" +msgstr "接続失敗:自己署名証明書が使用されています,サーバーの証明書設定を確認してください" #: common/sdk/im/exceptions.py:23 msgid "Network error, please contact system administrator" @@ -4698,14 +4545,10 @@ msgstr "メールの添付ファイルを送信" #: common/tasks.py:68 msgid "" -"When an account password is changed or an account backup generates " -"attachments, \n" -" this task needs to be executed for sending emails and handling " -"attachments" +"When an account password is changed or an account backup generates attachments, \n" +" this task needs to be executed for sending emails and handling attachments" msgstr "" -"アカウントのパスワードを変更したり、アカウントのバックアップが添付ファイルを" -"生成したりすると、メールと添付ファイルを送信するためのタスクを実行する必要が" -"あります" +"アカウントのパスワードを変更したり、アカウントのバックアップが添付ファイルを生成したりすると、メールと添付ファイルを送信するためのタスクを実行する必要があります" #: common/tasks.py:94 msgid "Upload account backup to external storage" @@ -4715,9 +4558,7 @@ msgstr " セッション映像を外部ストレージにアップロードす msgid "" "When performing an account backup, this task needs to be executed to " "external storage (SFTP)" -msgstr "" -"アカウントのバックアップを実行するときに外部ストレージ(sftp)にアクセスする" -"ため、このタスクを実行します" +msgstr "アカウントのバックアップを実行するときに外部ストレージ(sftp)にアクセスするため、このタスクを実行します" #: common/utils/ip/geoip/utils.py:26 msgid "Invalid ip" @@ -4738,12 +4579,9 @@ msgstr "SMS 認証コードを送信する" #: common/utils/verify_code.py:19 msgid "" -"When resetting a password, forgetting a password, or verifying MFA, this " -"task needs to \n" +"When resetting a password, forgetting a password, or verifying MFA, this task needs to \n" " be executed to send SMS messages" -msgstr "" -"パスワードをリセットするか、パスワードを忘れるか、mfaを検証するときにSMSを送" -"信する必要がある場合、このタスクを実行します" +msgstr "パスワードをリセットするか、パスワードを忘れるか、mfaを検証するときにSMSを送信する必要がある場合、このタスクを実行します" #: common/validators.py:16 msgid "Special char not allowed" @@ -4792,16 +4630,13 @@ msgid "" "configure nginx for url distribution, If you see this page, " "prove that you are not accessing the nginx listening port. Good luck." msgstr "" -"
Lunaは個別にデプロイされたプログラムです。Luna、kokoをデプロイする必要" -"があります。urlディストリビューションにnginxを設定します。
この" -"ページが表示されている場合は、nginxリスニングポートにアクセスしていないことを" -"証明してください。頑張ってください。" +"
" +"Lunaは個別にデプロイされたプログラムです。Luna、kokoをデプロイする必要があります。urlディストリビューションにnginxを設定します。
" +" このページが表示されている場合は、nginxリスニングポートにアクセスしていないことを証明してください。頑張ってください。" #: jumpserver/views/other.py:76 msgid "Websocket server run on port: {}, you should proxy it on nginx" -msgstr "" -"Websocket サーバーはport: {}で実行されます。nginxでプロキシする必要がありま" -"す。" +msgstr "Websocket サーバーはport: {}で実行されます。nginxでプロキシする必要があります。" #: jumpserver/views/other.py:90 msgid "" @@ -4809,10 +4644,8 @@ msgid "" "configure nginx for url distribution, If you see this page, " "prove that you are not accessing the nginx listening port. Good luck." msgstr "" -"
Kokoは個別にデプロイされているプログラムです。Kokoをデプロイする必要が" -"あります。URL配布用にnginxを設定します。
このページが表示されて" -"いる場合は、nginxリスニングポートにアクセスしていないことを証明してください。" -"頑張ってください。" +"
Kokoは個別にデプロイされているプログラムです。Kokoをデプロイする必要があります。URL配布用にnginxを設定します。
" +" このページが表示されている場合は、nginxリスニングポートにアクセスしていないことを証明してください。頑張ってください。" #: labels/apps.py:8 msgid "App Labels" @@ -4876,8 +4709,7 @@ msgstr "投稿サイトニュース" #: notifications/notifications.py:48 msgid "" -"This task needs to be executed for sending internal messages for system " -"alerts, \n" +"This task needs to be executed for sending internal messages for system alerts, \n" " work orders, and other notifications" msgstr "システムの警告やチケットなどを送信するためには、このタスクを実行します" @@ -4914,15 +4746,12 @@ msgstr "タスク実行パラメータエラー" msgid "" "Asset ({asset}) must have at least one of the following protocols added: " "SSH, SFTP, or WinRM" -msgstr "" -"資産({asset})には、少なくともSSH、SFTP、WinRMのいずれか一つのプロトコルを追加" -"する必要があります" +msgstr "資産({asset})には、少なくともSSH、SFTP、WinRMのいずれか一つのプロトコルを追加する必要があります" #: ops/api/job.py:69 #, python-brace-format msgid "Asset ({asset}) authorization is missing SSH, SFTP, or WinRM protocol" -msgstr "" -"資産({asset})の認証にはSSH、SFTP、またはWinRMプロトコルが不足しています" +msgstr "資産({asset})の認証にはSSH、SFTP、またはWinRMプロトコルが不足しています" #: ops/api/job.py:70 #, python-brace-format @@ -4937,9 +4766,7 @@ msgstr "重複したファイルが存在する" #, python-brace-format msgid "" "File size exceeds maximum limit. Please select a file smaller than {limit}MB" -msgstr "" -"ファイルサイズが最大制限を超えています。{limit}MB より小さいファイルを選択し" -"てください。" +msgstr "ファイルサイズが最大制限を超えています。{limit}MB より小さいファイルを選択してください。" #: ops/api/job.py:236 msgid "" @@ -5111,12 +4938,14 @@ msgid "Periodic run" msgstr "定期的なパフォーマンス" #: ops/mixin.py:32 ops/mixin.py:96 ops/mixin.py:116 -#: settings/serializers/auth/ldap.py:80 settings/serializers/auth/ldap_ha.py:62 +#: settings/serializers/auth/ldap.py:80 +#: settings/serializers/auth/ldap_ha.py:62 msgid "Interval" msgstr "間隔" #: ops/mixin.py:35 ops/mixin.py:94 ops/mixin.py:113 -#: settings/serializers/auth/ldap.py:77 settings/serializers/auth/ldap_ha.py:59 +#: settings/serializers/auth/ldap.py:77 +#: settings/serializers/auth/ldap_ha.py:59 msgid "Crontab" msgstr "含む" @@ -5149,9 +4978,10 @@ msgstr "モジュール" msgid "Args" msgstr "アルグ" -#: ops/models/adhoc.py:26 ops/models/playbook.py:34 ops/serializers/mixin.py:10 -#: rbac/models/role.py:31 rbac/models/rolebinding.py:46 -#: rbac/serializers/role.py:12 settings/serializers/auth/oauth2.py:37 +#: ops/models/adhoc.py:26 ops/models/playbook.py:34 +#: ops/serializers/mixin.py:10 rbac/models/role.py:31 +#: rbac/models/rolebinding.py:46 rbac/serializers/role.py:12 +#: settings/serializers/auth/oauth2.py:37 msgid "Scope" msgstr "スコープ" @@ -5255,12 +5085,13 @@ msgstr "変数名" #: ops/models/variable.py:12 ops/serializers/variable.py:23 msgid "" -"The variable name used in the script has a fixed prefix 'jms_' followed by " -"the input variable name. For example, if the variable name is 'name,' the " -"final generated environment variable will be 'jms_name'." +"The variable name used in the script will have a fixed prefix jms_ added to " +"the input variable name. For example, if the input variable name is name, " +"the resulting environment variable will be jms_name, and it can be " +"referenced in the script using {{ jms_name }}" msgstr "" -"スクリプトで使用する変数名で、固定プレフィクスjms_ + 入力した変数名。例えば、" -"変数名がnameの場合、最終的に環境変数はjms_nameとなります" +"スクリプトで使用する変数名は、固定接頭辞 jms_ + 入力された変数名となります。例えば、変数名が name の場合、最終的に生成される環境変数は " +"jms_name となります。スクリプト内で引用する際は {{ jms_name }} を使用します。" #: ops/models/variable.py:16 ops/serializers/variable.py:31 msgid "Default Value" @@ -5344,20 +5175,17 @@ msgid "" "Each item is on a separate line, with each line separated by a colon. The " "part before the colon is the display content, and the part after the colon " "is the value." -msgstr "" -"各項目を一行ごとに、各行は英語のコロンで前の表示内容と後の値を分割できます" +msgstr "各項目を一行ごとに、各行は英語のコロンで前の表示内容と後の値を分割できます" -#: ops/tasks.py:53 +#: ops/tasks.py:54 msgid "Run ansible task" msgstr "Ansible タスクを実行する" -#: ops/tasks.py:56 +#: ops/tasks.py:57 msgid "" "Execute scheduled adhoc and playbooks, periodically invoking the task for " "execution" -msgstr "" -"タイムスケジュールのショートカットコマンドやplaybookを実行するときは、このタ" -"スクを呼び出します" +msgstr "タイムスケジュールのショートカットコマンドやplaybookを実行するときは、このタスクを呼び出します" #: ops/tasks.py:88 msgid "Run ansible task execution" @@ -5365,84 +5193,65 @@ msgstr "Ansible タスクの実行を開始する" #: ops/tasks.py:91 msgid "Execute the task when manually adhoc or playbooks" -msgstr "" -"手動でショートカットコマンドやplaybookを実行するときは、このタスクを実行しま" -"す" +msgstr "手動でショートカットコマンドやplaybookを実行するときは、このタスクを実行します" -#: ops/tasks.py:107 +#: ops/tasks.py:106 msgid "Clear celery periodic tasks" msgstr "タスクログを定期的にクリアする" -#: ops/tasks.py:109 +#: ops/tasks.py:108 msgid "At system startup, clean up celery tasks that no longer exist" msgstr "システム起動時、既に存在しないceleryのタスクをクリーニングします" -#: ops/tasks.py:133 +#: ops/tasks.py:132 msgid "Create or update periodic tasks" msgstr "定期的なタスクの作成または更新" -#: ops/tasks.py:135 +#: ops/tasks.py:134 msgid "" -"With version iterations, new tasks may be added, or task names and execution " -"times may \n" -" be modified. Therefore, upon system startup, tasks will be " -"registered or the parameters \n" +"With version iterations, new tasks may be added, or task names and execution times may \n" +" be modified. Therefore, upon system startup, tasks will be registered or the parameters \n" " of scheduled tasks will be updated" msgstr "" -"バージョンがアップグレードされると、新しいタスクが追加され、タスクの名前や実" -"行時間が変更される可能性があるため、システムが起動すると、タスクを登録した" -"り、タスクのパラメータを更新したりします" +"バージョンがアップグレードされると、新しいタスクが追加され、タスクの名前や実行時間が変更される可能性があるため、システムが起動すると、タスクを登録したり、タスクのパラメータを更新したりします" -#: ops/tasks.py:148 +#: ops/tasks.py:147 msgid "Periodic check service performance" msgstr "サービスのパフォーマンスを定期的に確認する" -#: ops/tasks.py:150 +#: ops/tasks.py:149 msgid "" -"Check every hour whether each component is offline and whether the CPU, " -"memory, \n" -" and disk usage exceed the thresholds, and send an alert message to " -"the administrator" +"Check every hour whether each component is offline and whether the CPU, memory, \n" +" and disk usage exceed the thresholds, and send an alert message to the administrator" msgstr "" -"毎時、各コンポーネントがオフラインになっていないか、CPU、メモリ、ディスク使用" -"率が閾値を超えていないかをチェックし、管理者にメッセージで警告を送ります" +"毎時、各コンポーネントがオフラインになっていないか、CPU、メモリ、ディスク使用率が閾値を超えていないかをチェックし、管理者にメッセージで警告を送ります" -#: ops/tasks.py:160 +#: ops/tasks.py:159 msgid "Clean up unexpected jobs" msgstr "例外ジョブのクリーンアップ" -#: ops/tasks.py:162 +#: ops/tasks.py:161 msgid "" -"Due to exceptions caused by executing adhoc and playbooks in the Job " -"Center, \n" -" which result in the task status not being updated, the system will " -"clean up abnormal jobs \n" -" that have not been completed for more than 3 hours every hour and " -"mark these tasks as \n" +"Due to exceptions caused by executing adhoc and playbooks in the Job Center, \n" +" which result in the task status not being updated, the system will clean up abnormal jobs \n" +" that have not been completed for more than 3 hours every hour and mark these tasks as \n" " failed" msgstr "" -"ショートカットコマンドやplaybookを実行するジョブセンターでは異常が発生し、タ" -"スクの状態が更新されないことがあります。そのため、システムは毎時間、3時間以上" -"終了していない異常なジョブをクリーニングし、タスクを失敗とマークします" +"ショートカットコマンドやplaybookを実行するジョブセンターでは異常が発生し、タスクの状態が更新されないことがあります。そのため、システムは毎時間、3時間以上終了していない異常なジョブをクリーニングし、タスクを失敗とマークします" -#: ops/tasks.py:175 +#: ops/tasks.py:174 msgid "Clean job_execution db record" msgstr "ジョブセンター実行履歴のクリーンアップ" -#: ops/tasks.py:177 +#: ops/tasks.py:176 msgid "" -"Due to the execution of adhoc and playbooks in the Job Center, execution " -"records will \n" -" be generated. The system will clean up records that exceed the " -"retention period every day \n" -" at 2 a.m., based on the configuration of 'System Settings - Tasks - " -"Regular clean-up - \n" +"Due to the execution of adhoc and playbooks in the Job Center, execution records will \n" +" be generated. The system will clean up records that exceed the retention period every day \n" +" at 2 a.m., based on the configuration of 'System Settings - Tasks - Regular clean-up - \n" " Job execution retention days'" msgstr "" -"ショートカットコマンドやplaybookを実行するジョブセンターでは、実行レコードが" -"生成されます。システムは、システム設定-タスクリスト-定期的なクリーニング-ジョ" -"ブセンター実行履歴の設定に基づき、毎日午前2時に保存期間を超過したレコードをク" -"リーニングします。" +"ショートカットコマンドやplaybookを実行するジョブセンターでは、実行レコードが生成されます。システムは、システム設定-タスクリスト-" +"定期的なクリーニング-ジョブセンター実行履歴の設定に基づき、毎日午前2時に保存期間を超過したレコードをクリーニングします。" #: ops/templates/ops/celery_task_log.html:4 msgid "Task log" @@ -5492,8 +5301,7 @@ msgstr "現在の組織 ({}) は削除できません" msgid "" "LDAP synchronization is set to the current organization. Please switch to " "another organization before deleting" -msgstr "" -"LDAP 同期は現在の組織に設定されます。削除する前に別の組織に切り替えてください" +msgstr "LDAP 同期は現在の組織に設定されます。削除する前に別の組織に切り替えてください" #: orgs/api.py:75 msgid "The organization have resource ({}) cannot be deleted" @@ -5512,7 +5320,8 @@ msgstr "組織を選択してから保存してください" #: rbac/serializers/rolebinding.py:44 settings/serializers/auth/base.py:53 #: terminal/templates/terminal/_msg_command_warning.html:21 #: terminal/templates/terminal/_msg_session_sharing.html:14 -#: tickets/models/ticket/general.py:303 tickets/serializers/ticket/ticket.py:60 +#: tickets/models/ticket/general.py:303 +#: tickets/serializers/ticket/ticket.py:60 msgid "Organization" msgstr "組織" @@ -5676,8 +5485,8 @@ msgid "" "Accounts, format [\"@virtual\", \"root\", \"%template_id\"], virtual " "choices: @ALL, @SPEC, @USER, @ANON, @INPUT" msgstr "" -"アカウント、形式 [\"@バーチャルアカウント\", \"root\", \"%テンプレートid\"], " -"バーチャルオプション: @ALL, @SPEC, @USER, @ANON, @INPUT" +"アカウント、形式 [\"@バーチャルアカウント\", \"root\", \"%テンプレートid\"], バーチャルオプション: @ALL, " +"@SPEC, @USER, @ANON, @INPUT" #: perms/serializers/permission.py:38 msgid "Protocols, format [\"ssh\", \"rdp\", \"vnc\"] or [\"all\"]" @@ -5697,19 +5506,12 @@ msgstr "アセット認証ルールの有効期限が切れていることを確 #: perms/tasks.py:30 msgid "" -"The cache of organizational collections, which have completed user " -"authorization tree \n" -" construction, will expire. Therefore, expired collections need to be " -"cleared from the \n" -" cache, and this task will be executed periodically based on the time " -"interval specified \n" -" by PERM_EXPIRED_CHECK_PERIODIC in the system configuration file " -"config.txt" +"The cache of organizational collections, which have completed user authorization tree \n" +" construction, will expire. Therefore, expired collections need to be cleared from the \n" +" cache, and this task will be executed periodically based on the time interval specified \n" +" by PERM_EXPIRED_CHECK_PERIODIC in the system configuration file config.txt" msgstr "" -"利用者権限ツリーの組織集合キャッシュは期限切れになるため、期限切れの集合を" -"キャッシュからクリアする必要があります。このActionは、システム設定ファイル" -"config.txt中のPERM_EXPIRED_CHECK_PERIODICの時間間隔に基づいて定期的に実行され" -"ます" +"利用者権限ツリーの組織集合キャッシュは期限切れになるため、期限切れの集合をキャッシュからクリアする必要があります。このActionは、システム設定ファイルconfig.txt中のPERM_EXPIRED_CHECK_PERIODICの時間間隔に基づいて定期的に実行されます" #: perms/tasks.py:49 msgid "Send asset permission expired notification" @@ -5717,16 +5519,12 @@ msgstr "アセット許可の有効期限通知を送信する" #: perms/tasks.py:51 msgid "" -"Check every day at 10 a.m. and send a notification message to users " -"associated with \n" -" assets whose authorization is about to expire, as well as to the " -"organization's \n" -" administrators, 3 days in advance, to remind them that the asset " -"authorization will \n" +"Check every day at 10 a.m. and send a notification message to users associated with \n" +" assets whose authorization is about to expire, as well as to the organization's \n" +" administrators, 3 days in advance, to remind them that the asset authorization will \n" " expire in a few days" msgstr "" -"毎日午前10時にチェックを行い、資産の承認が近く期限切れになる利用者及びその組" -"織の管理者に、資産が何日で期限切れになるかを3日前に通知を送ります" +"毎日午前10時にチェックを行い、資産の承認が近く期限切れになる利用者及びその組織の管理者に、資産が何日で期限切れになるかを3日前に通知を送ります" #: perms/templates/perms/_msg_item_permissions_expire.html:7 #: perms/templates/perms/_msg_permed_items_expire.html:7 @@ -5845,8 +5643,7 @@ msgstr "全ての組織" msgid "" "User last role in org, can not be delete, you can remove user from org " "instead" -msgstr "" -"ユーザーの最後のロールは削除できません。ユーザーを組織から削除できます。" +msgstr "ユーザーの最後のロールは削除できません。ユーザーを組織から削除できます。" #: rbac/models/rolebinding.py:200 msgid "Organization role binding" @@ -5888,7 +5685,7 @@ msgstr "システム設定" msgid "Session audits" msgstr "セッション監査" -#: rbac/tree.py:49 xpack/plugins/cloud/manager.py:90 +#: rbac/tree.py:49 xpack/plugins/cloud/manager.py:93 msgid "Cloud import" msgstr "クラウドインポート" @@ -5931,7 +5728,7 @@ msgid "Appearance" msgstr "外見" #: rbac/tree.py:65 xpack/plugins/license/meta.py:10 -#: xpack/plugins/license/models.py:151 +#: xpack/plugins/license/models.py:153 msgid "License" msgstr "ライセンス" @@ -5981,9 +5778,7 @@ msgstr "SMTP設定のテスト" #: settings/api/ldap.py:92 msgid "" "Users are not synchronized, please click the user synchronization button" -msgstr "" -"ユーザーは同期されていません。「ユーザーを同期」ボタンをクリックしてくださ" -"い。" +msgstr "ユーザーは同期されていません。「ユーザーを同期」ボタンをクリックしてください。" #: settings/api/sms.py:142 msgid "Invalid SMS platform" @@ -6140,9 +5935,7 @@ msgid "" "information, the system will automatically create the user using this email " "suffix" msgstr "" -"第三者ユーザーの認証が成功した後、第三者認証サービスプラットフォームがユー" -"ザーのメール情報を返さなかった場合、システムは自動的にこのメールのサフィック" -"スでユーザーを作成します" +"第三者ユーザーの認証が成功した後、第三者認証サービスプラットフォームがユーザーのメール情報を返さなかった場合、システムは自動的にこのメールのサフィックスでユーザーを作成します" #: settings/serializers/auth/base.py:37 msgid "Forgot Password URL" @@ -6161,24 +5954,21 @@ msgid "" "Should an flash page be displayed before the user is redirected to third-" "party authentication when the administrator enables third-party redirect " "authentication" -msgstr "" -"管理者が第三者へのリダイレクトの認証を有効にした場合、ユーザーが第三者の認証" -"にリダイレクトされる前に Flash ページを表示するかどうか" +msgstr "管理者が第三者へのリダイレクトの認証を有効にした場合、ユーザーが第三者の認証にリダイレクトされる前に Flash ページを表示するかどうか" #: settings/serializers/auth/base.py:55 msgid "" "When you create a user, you associate the user to the organization of your " "choice. Users always belong to the Default organization." -msgstr "" -"ユーザーを作成するときは、そのユーザーを選択した組織に関連付けます。ユーザー" -"は常にデフォルト組織に属します。" +msgstr "ユーザーを作成するときは、そのユーザーを選択した組織に関連付けます。ユーザーは常にデフォルト組織に属します。" #: settings/serializers/auth/cas.py:12 settings/serializers/auth/cas.py:14 msgid "CAS" msgstr "CAS" #: settings/serializers/auth/cas.py:15 settings/serializers/auth/ldap.py:44 -#: settings/serializers/auth/ldap_ha.py:26 settings/serializers/auth/oidc.py:61 +#: settings/serializers/auth/ldap_ha.py:26 +#: settings/serializers/auth/oidc.py:61 msgid "Server" msgstr "LDAPサーバー" @@ -6203,9 +5993,11 @@ msgstr "ユーザー名のプロパティ" msgid "Enable attributes map" msgstr "属性マップの有効化" -#: settings/serializers/auth/cas.py:34 settings/serializers/auth/dingtalk.py:18 +#: settings/serializers/auth/cas.py:34 +#: settings/serializers/auth/dingtalk.py:18 #: settings/serializers/auth/feishu.py:18 settings/serializers/auth/lark.py:17 -#: settings/serializers/auth/ldap.py:66 settings/serializers/auth/ldap_ha.py:48 +#: settings/serializers/auth/ldap.py:66 +#: settings/serializers/auth/ldap_ha.py:48 #: settings/serializers/auth/oauth2.py:60 settings/serializers/auth/oidc.py:39 #: settings/serializers/auth/saml2.py:35 settings/serializers/auth/slack.py:18 #: settings/serializers/auth/wecom.py:18 @@ -6217,8 +6009,7 @@ msgid "" "User attribute mapping, where the `key` is the CAS service user attribute " "name and the `value` is the JumpServer user attribute name" msgstr "" -"ユーザー属性のマッピング、ここで `key` は CAS サービスのユーザー属性名で、" -"`value` は JumpServer のユーザー属性名です" +"ユーザー属性のマッピング、ここで `key` は CAS サービスのユーザー属性名で、`value` は JumpServer のユーザー属性名です" #: settings/serializers/auth/cas.py:41 msgid "Create user" @@ -6228,9 +6019,7 @@ msgstr "そうでない場合はユーザーを作成" msgid "" "After successful user authentication, if the user does not exist, " "automatically create the user" -msgstr "" -"ユーザー認証が成功した後、ユーザーが存在しない場合、自動的にユーザーが作成さ" -"れます" +msgstr "ユーザー認証が成功した後、ユーザーが存在しない場合、自動的にユーザーが作成されます" #: settings/serializers/auth/dingtalk.py:16 msgid "Dingtalk" @@ -6241,16 +6030,15 @@ msgid "" "User attribute mapping, where the `key` is the JumpServer user attribute " "name and the `value` is the DingTalk service user attribute name" msgstr "" -"ユーザー属性のマッピング、ここで `key` は JumpServer のユーザー属性名で、" -"`value` は ディントーク サービスのユーザー属性名です" +"ユーザー属性のマッピング、ここで `key` は JumpServer のユーザー属性名で、`value` は ディントーク " +"サービスのユーザー属性名です" #: settings/serializers/auth/feishu.py:20 msgid "" "User attribute mapping, where the `key` is the JumpServer user attribute " "name and the `value` is the FeiShu service user attribute name" msgstr "" -"ユーザー属性のマッピング、ここで `key` は JumpServer のユーザー属性名で、" -"`value` は フェイシュ サービスのユーザー属性名です" +"ユーザー属性のマッピング、ここで `key` は JumpServer のユーザー属性名で、`value` は フェイシュ サービスのユーザー属性名です" #: settings/serializers/auth/lark.py:13 users/models/user/_source.py:22 msgid "Lark" @@ -6261,8 +6049,7 @@ msgid "" "User attribute mapping, where the `key` is the JumpServer user attribute " "name and the `value` is the Lark service user attribute name" msgstr "" -"ユーザー属性のマッピング、ここで `key` は JumpServer のユーザー属性名で、" -"`value` は Lark サービスのユーザー属性名です" +"ユーザー属性のマッピング、ここで `key` は JumpServer のユーザー属性名で、`value` は Lark サービスのユーザー属性名です" #: settings/serializers/auth/ldap.py:41 settings/serializers/auth/ldap.py:103 msgid "LDAP" @@ -6272,51 +6059,59 @@ msgstr "LDAP" msgid "LDAP server URI" msgstr "FIDOサーバーID" -#: settings/serializers/auth/ldap.py:48 settings/serializers/auth/ldap_ha.py:30 +#: settings/serializers/auth/ldap.py:48 +#: settings/serializers/auth/ldap_ha.py:30 msgid "Bind DN" msgstr "DN のバインド" -#: settings/serializers/auth/ldap.py:49 settings/serializers/auth/ldap_ha.py:31 +#: settings/serializers/auth/ldap.py:49 +#: settings/serializers/auth/ldap_ha.py:31 msgid "Binding Distinguished Name" msgstr "バインドディレクトリ管理者" -#: settings/serializers/auth/ldap.py:53 settings/serializers/auth/ldap_ha.py:35 +#: settings/serializers/auth/ldap.py:53 +#: settings/serializers/auth/ldap_ha.py:35 msgid "Binding password" msgstr "古いパスワード" -#: settings/serializers/auth/ldap.py:56 settings/serializers/auth/ldap_ha.py:38 +#: settings/serializers/auth/ldap.py:56 +#: settings/serializers/auth/ldap_ha.py:38 msgid "Search OU" msgstr "システムアーキテクチャ" -#: settings/serializers/auth/ldap.py:58 settings/serializers/auth/ldap_ha.py:40 +#: settings/serializers/auth/ldap.py:58 +#: settings/serializers/auth/ldap_ha.py:40 msgid "" "User Search Base, if there are multiple OUs, you can separate them with the " "`|` symbol" -msgstr "" -"ユーザー検索ライブラリ、複数のOUがある場合は`|`の記号で分けることができます" +msgstr "ユーザー検索ライブラリ、複数のOUがある場合は`|`の記号で分けることができます" -#: settings/serializers/auth/ldap.py:62 settings/serializers/auth/ldap_ha.py:44 +#: settings/serializers/auth/ldap.py:62 +#: settings/serializers/auth/ldap_ha.py:44 msgid "Search filter" msgstr "ユーザー検索フィルター" -#: settings/serializers/auth/ldap.py:63 settings/serializers/auth/ldap_ha.py:45 +#: settings/serializers/auth/ldap.py:63 +#: settings/serializers/auth/ldap_ha.py:45 #, python-format msgid "Selection could include (cn|uid|sAMAccountName=%(user)s)" msgstr "選択は (cnまたはuidまたはsAMAccountName)=%(user)s)" -#: settings/serializers/auth/ldap.py:68 settings/serializers/auth/ldap_ha.py:50 +#: settings/serializers/auth/ldap.py:68 +#: settings/serializers/auth/ldap_ha.py:50 msgid "" "User attribute mapping, where the `key` is the JumpServer user attribute " "name and the `value` is the LDAP service user attribute name" msgstr "" -"ユーザー属性のマッピング、ここで `key` は JumpServer のユーザー属性名で、" -"`value` は LDAP サービスのユーザー属性名です" +"ユーザー属性のマッピング、ここで `key` は JumpServer のユーザー属性名で、`value` は LDAP サービスのユーザー属性名です" -#: settings/serializers/auth/ldap.py:84 settings/serializers/auth/ldap_ha.py:66 +#: settings/serializers/auth/ldap.py:84 +#: settings/serializers/auth/ldap_ha.py:66 msgid "Connect timeout (s)" msgstr "接続タイムアウト (秒)" -#: settings/serializers/auth/ldap.py:89 settings/serializers/auth/ldap_ha.py:71 +#: settings/serializers/auth/ldap.py:89 +#: settings/serializers/auth/ldap_ha.py:71 msgid "User DN cache timeout (s)" msgstr "User DN キャッシュの有効期限 (秒)" @@ -6327,11 +6122,11 @@ msgid "" "cache
If the user OU structure has been adjusted, click Submit to clear " "the user DN cache" msgstr "" -"ユーザーがログイン認証時にクエリした User DN をキャッシュすると、ユーザー認証" -"の速度を効果的に改善できます。
ユーザーの OU 構造が調整された場合は、提出" -"をクリックしてユーザーの DN キャッシュをクリアできます。" +"ユーザーがログイン認証時にクエリした User DN をキャッシュすると、ユーザー認証の速度を効果的に改善できます。
ユーザーの OU " +"構造が調整された場合は、提出をクリックしてユーザーの DN キャッシュをクリアできます。" -#: settings/serializers/auth/ldap.py:97 settings/serializers/auth/ldap_ha.py:79 +#: settings/serializers/auth/ldap.py:97 +#: settings/serializers/auth/ldap_ha.py:79 msgid "Search paged size (piece)" msgstr "ページサイズを検索 (じょう)" @@ -6347,13 +6142,12 @@ msgstr "LDAP HA サービスドメイン名" #: settings/serializers/auth/ldap_ha.py:73 msgid "" "Caching the User DN obtained during user login authentication can " -"effectivelyimprove the speed of user authentication., 0 means no cache
If " -"the user OU structure has been adjusted, click Submit to clear the user DN " +"effectivelyimprove the speed of user authentication., 0 means no cache
If" +" the user OU structure has been adjusted, click Submit to clear the user DN " "cache" msgstr "" -"ユーザーがログイン認証時にクエリされた User DN をキャッシュすることで、ユー" -"ザー認証の速度を効果的に向上させることができます
ユーザーの OU 構造が調整" -"された場合は、送信をクリックして User DN のキャッシュをクリアできます" +"ユーザーがログイン認証時にクエリされた User DN をキャッシュすることで、ユーザー認証の速度を効果的に向上させることができます
ユーザーの " +"OU 構造が調整された場合は、送信をクリックして User DN のキャッシュをクリアできます" #: settings/serializers/auth/oauth2.py:19 #: settings/serializers/auth/oauth2.py:22 @@ -6401,7 +6195,8 @@ msgid "End session endpoint" msgstr "プロバイダーのセッション終了エンドポイント" #: settings/serializers/auth/oauth2.py:57 -msgid "When the user signs out, they also be logged out from the OAuth2 server" +msgid "" +"When the user signs out, they also be logged out from the OAuth2 server" msgstr "ユーザーがログアウトすると、OAuth2 サーバからもログアウトします" #: settings/serializers/auth/oauth2.py:62 @@ -6409,11 +6204,11 @@ msgid "" "User attribute mapping, where the `key` is the JumpServer user attribute " "name and the `value` is the OAuth2 service user attribute name" msgstr "" -"ユーザー属性のマッピング、ここで `key` は JumpServer のユーザー属性名で、" -"`value` は OAuth2 サービスのユーザー属性名です" +"ユーザー属性のマッピング、ここで `key` は JumpServer のユーザー属性名で、`value` は OAuth2 " +"サービスのユーザー属性名です" -#: settings/serializers/auth/oauth2.py:67 settings/serializers/auth/oidc.py:113 -#: settings/serializers/auth/saml2.py:45 +#: settings/serializers/auth/oauth2.py:67 +#: settings/serializers/auth/oidc.py:113 settings/serializers/auth/saml2.py:45 msgid "Always update user" msgstr "常にユーザーを更新" @@ -6446,8 +6241,7 @@ msgid "" "User attribute mapping, where the `key` is the JumpServer user attribute " "name and the `value` is the OIDC service user attribute name" msgstr "" -"ユーザー属性のマッピング、ここで `key` は JumpServer のユーザー属性名で、" -"`value` は OIDC サービスのユーザー属性名です" +"ユーザー属性のマッピング、ここで `key` は JumpServer のユーザー属性名で、`value` は OIDC サービスのユーザー属性名です" #: settings/serializers/auth/oidc.py:45 msgid "Enable PKCE" @@ -6465,9 +6259,7 @@ msgstr "Keycloakを使用する" msgid "" "Use Keycloak as the OpenID Connect server, or use standard OpenID Connect " "Protocol" -msgstr "" -"Keycloak を OpenID Connect サーバとして使用するか、標準的な OpenID Connect プ" -"ロトコルを使用する" +msgstr "Keycloak を OpenID Connect サーバとして使用するか、標準的な OpenID Connect プロトコルを使用する" #: settings/serializers/auth/oidc.py:64 msgid "Realm name" @@ -6526,9 +6318,7 @@ msgid "" "The hostname can using passkey auth, If not set, will use request host and " "the request host in DOMAINS, If multiple domains, use comma to separate" msgstr "" -"パスキー認証を使用できるホスト名、設定されていない場合は、リクエストホストと" -"DOMAINSのリクエストホストを使用します。複数のドメインの場合は、カンマで区切り" -"ます" +"パスキー認証を使用できるホスト名、設定されていない場合は、リクエストホストとDOMAINSのリクエストホストを使用します。複数のドメインの場合は、カンマで区切ります" #: settings/serializers/auth/passkey.py:22 msgid "FIDO Server name" @@ -6544,10 +6334,9 @@ msgid "OTP in RADIUS" msgstr "Radius のOTP" #: settings/serializers/auth/radius.py:24 -msgid "* Using OTP in RADIUS means users can employ RADIUS as a method for MFA" -msgstr "" -"* RADIUSでOTPを使用するということは、ユーザーはRADIUSをMFAの方法として使用す" -"ることができる" +msgid "" +"* Using OTP in RADIUS means users can employ RADIUS as a method for MFA" +msgstr "* RADIUSでOTPを使用するということは、ユーザーはRADIUSをMFAの方法として使用することができる" #: settings/serializers/auth/saml2.py:12 settings/serializers/auth/saml2.py:15 msgid "SAML2" @@ -6577,9 +6366,7 @@ msgstr "SP 証明書" msgid "" "User attribute mapping, where the `key` is the SAML2 service user attribute " "name and the `value` is the JumpServer user attribute name" -msgstr "" -"ユーザー属性マッピング(`key`はSAML2サービスのユーザー属性名、`value`は" -"JumpServerのユーザー属性名)" +msgstr "ユーザー属性マッピング(`key`はSAML2サービスのユーザー属性名、`value`はJumpServerのユーザー属性名)" #: settings/serializers/auth/saml2.py:43 msgid "When the user signs out, they also be logged out from the SAML2 server" @@ -6590,8 +6377,7 @@ msgid "" "User attribute mapping, where the `key` is the JumpServer user attribute " "name and the `value` is the Slack service user attribute name" msgstr "" -"ユーザー属性のマッピング、ここで `key` は JumpServer のユーザー属性名で、" -"`value` は Slack サービスのユーザー属性名です" +"ユーザー属性のマッピング、ここで `key` は JumpServer のユーザー属性名で、`value` は Slack サービスのユーザー属性名です" #: settings/serializers/auth/sms.py:18 msgid "Enable Short Message Service (SMS)" @@ -6656,13 +6442,11 @@ msgstr "ビジネス・タイプ(Service id)" #: settings/serializers/auth/sms.py:85 #, python-brace-format msgid "" -"Template need contain {code} and Signature + template length does not exceed " -"67 words. For example, your verification code is {code}, which is valid for " -"5 minutes. Please do not disclose it to others." +"Template need contain {code} and Signature + template length does not exceed" +" 67 words. For example, your verification code is {code}, which is valid for" +" 5 minutes. Please do not disclose it to others." msgstr "" -"テンプレートには{code}を含める必要があり、署名+テンプレートの長さは67ワード未" -"満です。たとえば、認証コードは{code}で、有効期間は5分です。他の人には言わない" -"でください。" +"テンプレートには{code}を含める必要があり、署名+テンプレートの長さは67ワード未満です。たとえば、認証コードは{code}で、有効期間は5分です。他の人には言わないでください。" #: settings/serializers/auth/sms.py:94 #, python-brace-format @@ -6683,15 +6467,14 @@ msgstr "SSO Token認証の有効化" #: settings/serializers/auth/sso.py:17 msgid "Other service can using SSO token login to JumpServer without password" -msgstr "" -"他のサービスはパスワードなしでJumpServerへのSSOトークンログインを使用できます" +msgstr "他のサービスはパスワードなしでJumpServerへのSSOトークンログインを使用できます" #: settings/serializers/auth/sso.py:20 msgid "SSO auth key TTL" msgstr "Token有効期間" #: settings/serializers/auth/sso.py:20 -#: xpack/plugins/cloud/serializers/account_attrs.py:200 +#: xpack/plugins/cloud/serializers/account_attrs.py:201 msgid "Unit: second" msgstr "単位: 秒" @@ -6700,8 +6483,8 @@ msgid "" "User attribute mapping, where the `key` is the JumpServer user attribute " "name and the `value` is the WeCom service user attribute name" msgstr "" -"ユーザー属性のマッピング、ここで `key` は JumpServer のユーザー属性名で、" -"`value` は エンタープライズ WeChat サービスのユーザー属性名です" +"ユーザー属性のマッピング、ここで `key` は JumpServer のユーザー属性名で、`value` は エンタープライズ WeChat " +"サービスのユーザー属性名です" #: settings/serializers/basic.py:11 msgid "Site URL" @@ -6709,11 +6492,9 @@ msgstr "サイトURL" #: settings/serializers/basic.py:13 msgid "" -"Site URL is the externally accessible address of the current product service " -"and is usually used in links in system emails" -msgstr "" -"サイトURLは、現在の製品サービスの外部からアクセス可能なアドレスであり、通常は" -"システムメール内のリンクに使用されます" +"Site URL is the externally accessible address of the current product service" +" and is usually used in links in system emails" +msgstr "サイトURLは、現在の製品サービスの外部からアクセス可能なアドレスであり、通常はシステムメール内のリンクに使用されます" #: settings/serializers/basic.py:18 msgid "User guide url" @@ -6738,9 +6519,7 @@ msgstr "ドキュメントリンク" #: settings/serializers/basic.py:27 msgid "" "Document URL refers to the address in the top navigation bar Help - Document" -msgstr "" -"ドキュメントURLは、上部ナビゲーションバーのアドレスを指します。ヘルプ - ド" -"キュメント" +msgstr "ドキュメントURLは、上部ナビゲーションバーのアドレスを指します。ヘルプ - ドキュメント" #: settings/serializers/basic.py:30 msgid "Support URL" @@ -6749,8 +6528,7 @@ msgstr "サポートリンク" #: settings/serializers/basic.py:31 msgid "" "Support URL refers to the address in the top navigation bar Help - Support" -msgstr "" -"サポートURLは、上部ナビゲーションバーのアドレスを指します。ヘルプ - サポート" +msgstr "サポートURLは、上部ナビゲーションバーのアドレスを指します。ヘルプ - サポート" #: settings/serializers/basic.py:44 msgid "Organization name already exists" @@ -6801,8 +6579,7 @@ msgid "" "Session, record, command will be delete if more than duration, only in " "database, OSS will not be affected." msgstr "" -"この期間を超えるセッション、録音、およびコマンド レコードは削除されます (デー" -"タベースのバックアップに影響し、OSS などには影響しません)" +"この期間を超えるセッション、録音、およびコマンド レコードは削除されます (データベースのバックアップに影響し、OSS などには影響しません)" #: settings/serializers/cleaning.py:53 msgid "Change secret and push record retention days (day)" @@ -6846,9 +6623,8 @@ msgid "" "accounts that exceed the predetermined number. If the value reaches or " "exceeds 999 (default), no historical account deletion will be performed" msgstr "" -"特定の値が 999 未満の場合、システムは毎晩自動的にタスクを実行します。つまり、" -"所定の数を超える履歴アカウントを確認して削除します。 値が 999 以上の場合、履" -"歴アカウントの削除は実行されません。" +"特定の値が 999 未満の場合、システムは毎晩自動的にタスクを実行します。つまり、所定の数を超える履歴アカウントを確認して削除します。 値が 999 " +"以上の場合、履歴アカウントの削除は実行されません。" #: settings/serializers/feature.py:86 msgid "Mount Point" @@ -6860,7 +6636,7 @@ msgid "Tenant ID" msgstr "テナントID" #: settings/serializers/feature.py:109 terminal/serializers/storage.py:68 -#: xpack/plugins/cloud/manager.py:107 xpack/plugins/cloud/manager.py:112 +#: xpack/plugins/cloud/manager.py:110 xpack/plugins/cloud/manager.py:115 #: xpack/plugins/cloud/models.py:287 msgid "Region" msgstr "リージョン" @@ -6883,7 +6659,8 @@ msgid "GPT Base URL" msgstr "GPTアドレス" #: settings/serializers/feature.py:131 -msgid "The base URL of the GPT service. For example: https://api.openai.com/v1" +msgid "" +"The base URL of the GPT service. For example: https://api.openai.com/v1" msgstr "GPTサービスの基本のURL。例えば:https://api.openai.com/v1" #: settings/serializers/feature.py:134 templates/_header_bar.html:96 @@ -6931,9 +6708,7 @@ msgstr "ユーザーの実行" #: settings/serializers/feature.py:169 msgid "" "Allow users to execute batch commands in the Workbench - Job Center - Adhoc" -msgstr "" -"ユーザーがワークベンチ - ジョブセンター - Adhocでバッチコマンドを実行すること" -"を許可します" +msgstr "ユーザーがワークベンチ - ジョブセンター - Adhocでバッチコマンドを実行することを許可します" #: settings/serializers/feature.py:173 msgid "Command blacklist" @@ -6959,9 +6734,7 @@ msgstr "仮想アプリケーション" msgid "" "Virtual applications, you can use the Linux operating system as an " "application server in remote applications." -msgstr "" -"仮想アプリケーションで、リモートアプリケーションのサーバーとしてLinuxオペレー" -"ティングシステムを使用できます。" +msgstr "仮想アプリケーションで、リモートアプリケーションのサーバーとしてLinuxオペレーティングシステムを使用できます。" #: settings/serializers/msg.py:24 msgid "SMTP" @@ -6973,9 +6746,7 @@ msgstr "交換" #: settings/serializers/msg.py:34 msgid "The user to be used for email server authentication" -msgstr "" -"メールサーバーにログインするためのユーザー名。通常、これはあなたのメールアド" -"レスです" +msgstr "メールサーバーにログインするためのユーザー名。通常、これはあなたのメールアドレスです" #: settings/serializers/msg.py:38 msgid "" @@ -7001,9 +6772,7 @@ msgid "" "server. In most email documentation this type of TLS connection is referred " "to as SSL. It is generally used on port 465" msgstr "" -"SMTPサーバーとの通信時に、暗黙のTLS(安全)接続を使用するかどうか。ほとんどの" -"メール文書では、このタイプのTLS接続はSSLと呼ばれます。通常、ポート465を使用し" -"ます" +"SMTPサーバーとの通信時に、暗黙のTLS(安全)接続を使用するかどうか。ほとんどのメール文書では、このタイプのTLS接続はSSLと呼ばれます。通常、ポート465を使用します" #: settings/serializers/msg.py:54 msgid "Use TLS" @@ -7013,9 +6782,7 @@ msgstr "TLSの使用" msgid "" "Whether to use a TLS (secure) connection when talking to the SMTP server. " "This is used for explicit TLS connections, generally on port 587" -msgstr "" -"SMTPサーバーとの通信時に、TLS(安全)接続を使用するかどうか。これは明示的な" -"TLS接続を使用します、通常ポート587を使用します" +msgstr "SMTPサーバーとの通信時に、TLS(安全)接続を使用するかどうか。これは明示的なTLS接続を使用します、通常ポート587を使用します" #: settings/serializers/msg.py:64 msgid "Subject prefix" @@ -7023,11 +6790,9 @@ msgstr "件名プレフィックス" #: settings/serializers/msg.py:69 msgid "" -"Tips: When creating a user, send the subject of the email (eg:Create account " -"successfully)" -msgstr "" -"ヒント: ユーザーを作成するときに、メールの件名を送信します (例: アカウントを" -"正常に作成)" +"Tips: When creating a user, send the subject of the email (eg:Create account" +" successfully)" +msgstr "ヒント: ユーザーを作成するときに、メールの件名を送信します (例: アカウントを正常に作成)" #: settings/serializers/msg.py:73 msgid "Honorific" @@ -7035,17 +6800,14 @@ msgstr "ユーザー敬語の作成" #: settings/serializers/msg.py:74 msgid "Tips: When creating a user, send the honorific of the email (eg:Hello)" -msgstr "" -"ヒント: ユーザーを作成するときは、メールの敬語を送信します (例: こんにちは)" +msgstr "ヒント: ユーザーを作成するときは、メールの敬語を送信します (例: こんにちは)" #: settings/serializers/msg.py:80 #, python-brace-format msgid "" "Tips: When creating a user, send the content of the email, support " "{username} {name} {email} label" -msgstr "" -"ヒント:ユーザーの作成時にパスワード設定メールの内容を送信し、{username}{name}" -"{email}ラベルをサポートします。" +msgstr "ヒント:ユーザーの作成時にパスワード設定メールの内容を送信し、{username}{name}{email}ラベルをサポートします。" #: settings/serializers/msg.py:84 msgid "Tips: Email signature (eg:jumpserver)" @@ -7062,9 +6824,7 @@ msgstr "グループ化されていないノードを表示" #: settings/serializers/other.py:12 msgid "Perm single to ungroup node" msgstr "" -"グループ化されていないノードに個別に許可された資産を配置し、資産が存在する" -"ノードが表示されないようにしますが、そのノードが許可されていないという質問に" -"質問" +"グループ化されていないノードに個別に許可された資産を配置し、資産が存在するノードが表示されないようにしますが、そのノードが許可されていないという質問に質問" #: settings/serializers/security.py:17 msgid "User password expiration (day)" @@ -7076,10 +6836,8 @@ msgid "" "will expire failure;The password expiration reminder mail will be automatic " "sent to the user by system within 5 days (daily) before the password expires" msgstr "" -"ユーザーがその期間中にパスワードを更新しなかった場合、ユーザーパスワードの有" -"効期限が切れます。パスワードの有効期限が切れる前の5日 (毎日) 以内に、パスワー" -"ドの有効期限が切れるリマインダーメールがシステムからユーザーに自動的に送信さ" -"れます。" +"ユーザーがその期間中にパスワードを更新しなかった場合、ユーザーパスワードの有効期限が切れます。パスワードの有効期限が切れる前の5日 (毎日) " +"以内に、パスワードの有効期限が切れるリマインダーメールがシステムからユーザーに自動的に送信されます。" #: settings/serializers/security.py:26 msgid "Recent password count" @@ -7089,9 +6847,7 @@ msgstr "繰り返された履歴パスワードの数" msgid "" "Tip: When the user resets the password, it cannot be the previous n " "historical passwords of the user" -msgstr "" -"ヒント: ユーザーがパスワードをリセットすると、ユーザーの前のnの履歴パスワード" -"にすることはできません" +msgstr "ヒント: ユーザーがパスワードをリセットすると、ユーザーの前のnの履歴パスワードにすることはできません" #: settings/serializers/security.py:34 msgid "Minimum length (User)" @@ -7113,9 +6869,7 @@ msgstr "特別な" msgid "" "If the user has failed to log in for a limited number of times, no login is " "allowed during this time interval." -msgstr "" -"ユーザーが限られた回数だけログインできなかった場合、この時間間隔ではログイン" -"はできません。" +msgstr "ユーザーが限られた回数だけログインできなかった場合、この時間間隔ではログインはできません。" #: settings/serializers/security.py:63 settings/serializers/security.py:73 msgid "Login failures count" @@ -7141,9 +6895,7 @@ msgstr "単一デバイスログインのみ" msgid "" "After the user logs in on the new device, other logged-in devices will " "automatically log out" -msgstr "" -"ユーザーが新しいデバイスにログインすると、ログインしている他のデバイスは自動" -"的にログアウトします。" +msgstr "ユーザーが新しいデバイスにログインすると、ログインしている他のデバイスは自動的にログアウトします。" #: settings/serializers/security.py:95 msgid "Only exist user login" @@ -7156,9 +6908,8 @@ msgid "" "are allowed to log in and automatically create users (if the user does not " "exist)" msgstr "" -"有効にすると、存在しないユーザーはログインできなくなります。無効にすると、" -"ローカル認証方法を除く他の認証方法のユーザーはログインでき、ユーザーが自動的" -"に作成されます (ユーザーが存在しない場合)。" +"有効にすると、存在しないユーザーはログインできなくなります。無効にすると、ローカル認証方法を除く他の認証方法のユーザーはログインでき、ユーザーが自動的に作成されます" +" (ユーザーが存在しない場合)。" #: settings/serializers/security.py:103 msgid "Only from source login" @@ -7166,14 +6917,13 @@ msgstr "ソースログインからのみ" #: settings/serializers/security.py:105 msgid "" -"If it is enabled, the user will only authenticate to the source when logging " -"in; if it is disabled, the user will authenticate all the enabled " +"If it is enabled, the user will only authenticate to the source when logging" +" in; if it is disabled, the user will authenticate all the enabled " "authentication methods in a certain order when logging in, and as long as " "one of the authentication methods is successful, they can log in directly" msgstr "" -"これが有効な場合、ユーザーはログイン時にソースに対してのみ認証されます。無効" -"な場合、ユーザーはログイン時に、いずれかの認証方法が成功する限り、有効なすべ" -"ての認証方法を特定の順序で認証します。 、直接ログインできます" +"これが有効な場合、ユーザーはログイン時にソースに対してのみ認証されます。無効な場合、ユーザーはログイン時に、いずれかの認証方法が成功する限り、有効なすべての認証方法を特定の順序で認証します。" +" 、直接ログインできます" #: settings/serializers/security.py:116 #: users/templates/users/mfa_setting.html:160 @@ -7224,8 +6974,7 @@ msgstr "ログインページのMFA" #: settings/serializers/security.py:144 msgid "Eu security regulations(GDPR) require MFA to be on the login page" -msgstr "" -"Euセキュリティ規制 (GDPR) では、MFAがログインページにある必要があります" +msgstr "Euセキュリティ規制 (GDPR) では、MFAがログインページにある必要があります" #: settings/serializers/security.py:148 msgid "Verify code TTL (second)" @@ -7243,9 +6992,7 @@ msgstr "ログイン動的コードの有効化" msgid "" "The password and additional code are sent to a third party authentication " "system for verification" -msgstr "" -"パスワードと追加コードは、検証のためにサードパーティの認証システムに送信され" -"ます" +msgstr "パスワードと追加コードは、検証のためにサードパーティの認証システムに送信されます" #: settings/serializers/security.py:158 msgid "Login captcha" @@ -7261,13 +7008,11 @@ msgstr "リモートログイン保護" #: settings/serializers/security.py:164 msgid "" -"The system determines whether the login IP address belongs to a common login " -"city. If the account is logged in from a common login city, the system sends " -"a remote login reminder" +"The system determines whether the login IP address belongs to a common login" +" city. If the account is logged in from a common login city, the system " +"sends a remote login reminder" msgstr "" -"システムは、ログインIPアドレスが共通のログイン都市に属しているかどうかを判断" -"します。アカウントが共通のログイン都市からログインしている場合、システムはリ" -"モートログインリマインダーを送信します" +"システムは、ログインIPアドレスが共通のログイン都市に属しているかどうかを判断します。アカウントが共通のログイン都市からログインしている場合、システムはリモートログインリマインダーを送信します" #: settings/serializers/security.py:170 msgid "Auto Disable Threshold (day)" @@ -7277,9 +7022,7 @@ msgstr "未使用のユーザータイムアウト(日)" msgid "" "Detect infrequent users daily and disable them if they exceed the " "predetermined time limit" -msgstr "" -"毎日、頻度の低いユーザーを検出し、予め決められた時間制限を超えた場合は無効に" -"します" +msgstr "毎日、頻度の低いユーザーを検出し、予め決められた時間制限を超えた場合は無効にします" #: settings/serializers/security.py:191 msgid "Watermark" @@ -7313,9 +7056,7 @@ msgstr "ユーザーに資産のオンラインセッション情報の閲覧を msgid "" "When a user connects to an asset, the account selection popup displays the " "number of active sessions for the current asset (RDP protocol only)." -msgstr "" -"ユーザーが資産に接続するとき、アカウント選択のポップアップに現在の資産のオン" -"ラインセッション数を表示(rdpプロトコルのみ)" +msgstr "ユーザーが資産に接続するとき、アカウント選択のポップアップに現在の資産のオンラインセッション数を表示(rdpプロトコルのみ)" #: settings/serializers/security.py:214 msgid "Max online time (hour)" @@ -7336,8 +7077,7 @@ msgstr "セッション共有" #: settings/serializers/security.py:222 msgid "Enabled, Allows user active session to be shared with other users" -msgstr "" -"ユーザーのアクティブなセッションを他のユーザーと共有できるようにします。" +msgstr "ユーザーのアクティブなセッションを他のユーザーと共有できるようにします。" #: settings/serializers/security.py:228 msgid "Insecure command alert" @@ -7366,30 +7106,24 @@ msgstr "ターミナルレジスタの有効化" #: settings/serializers/terminal.py:24 msgid "" -"Allow component register, after all component setup, you should disable this " -"for security" -msgstr "" -"ターミナルレジスタを許可し、すべてのターミナルセットアップの後、セキュリティ" -"のためにこれを無効にする必要があります" +"Allow component register, after all component setup, you should disable this" +" for security" +msgstr "ターミナルレジスタを許可し、すべてのターミナルセットアップの後、セキュリティのためにこれを無効にする必要があります" #: settings/serializers/terminal.py:30 msgid "" "* Allow users to log in to the KoKo component via password authentication" -msgstr "" -"* パスワード認証を通じてユーザがKoKoコンポーネントにログインできるように許可" -"する" +msgstr "* パスワード認証を通じてユーザがKoKoコンポーネントにログインできるように許可する" #: settings/serializers/terminal.py:36 msgid "" "* Allow users to log in to the KoKo component via Public key " "authentication
If third-party authentication services, such as AD/LDAP, " -"are enabled, you should disable this option to prevent users from logging in " -"after being deleted from the AD/LDAP server" +"are enabled, you should disable this option to prevent users from logging in" +" after being deleted from the AD/LDAP server" msgstr "" -"* 公開鍵認証でユーザがKoKoコンポーネントにログインできるように許可する
第" -"三者認証サービス(例:AD/LDAP)が有効化されている場合、ユーザがAD/LDAPサーバ" -"から削除された後に再度ログインするのを防ぐためにこのオプションを無効化するべ" -"きです。" +"* " +"公開鍵認証でユーザがKoKoコンポーネントにログインできるように許可する
第三者認証サービス(例:AD/LDAP)が有効化されている場合、ユーザがAD/LDAPサーバから削除された後に再度ログインするのを防ぐためにこのオプションを無効化するべきです。" #: settings/serializers/terminal.py:43 msgid "Asset sorting" @@ -7401,23 +7135,21 @@ msgstr "ページサイズを一覧表示" #: settings/serializers/terminal.py:51 msgid "" -"* You can individually configure the service address and port in the service " -"endpoint
If enabled, the Luna page will display the DB client launch " +"* You can individually configure the service address and port in the service" +" endpoint
If enabled, the Luna page will display the DB client launch " "method when connecting to assets" msgstr "" -"* サーバエンドポイントでは、サービスアドレスとポートを個別に設定できます。" -"
有効化した場合、Luna ページでは資産への接続時にDBクライアントの起動方法" -"を表示します。" +"* サーバエンドポイントでは、サービスアドレスとポートを個別に設定できます。
有効化した場合、Luna " +"ページでは資産への接続時にDBクライアントの起動方法を表示します。" #: settings/serializers/terminal.py:59 msgid "" -"* You can individually configure the service address and port in the service " -"endpoint
If enabled, the Luna page will display the download rdp file " +"* You can individually configure the service address and port in the service" +" endpoint
If enabled, the Luna page will display the download rdp file " "button and RDP Client launch method when connecting to assets" msgstr "" -"* サーバエンドポイントでは、サービスアドレスとポートを個別に設定できます。" -"
有効化した場合、Luna ページでは資産への接続時にrdp ファイルのダウンロー" -"ドボタンとRDPクライアントの起動方法を表示します。" +"* サーバエンドポイントでは、サービスアドレスとポートを個別に設定できます。
有効化した場合、Luna ページでは資産への接続時にrdp " +"ファイルのダウンロードボタンとRDPクライアントの起動方法を表示します。" #: settings/serializers/terminal.py:66 msgid "Client connection" @@ -7426,11 +7158,11 @@ msgstr "クライアント接続" #: settings/serializers/terminal.py:68 msgid "" "* Allow connecting to the KoKo component via SSH client
If enabled, the " -"Luna page will display the SSH client launch method when connecting to assets" +"Luna page will display the SSH client launch method when connecting to " +"assets" msgstr "" -"* SSHクライアント経由でKoKo コンポーネントに接続できるように許可する
有効" -"化した場合、Luna ページでは資産への接続時にSSHクライアントの起動方法を表示し" -"ます。" +"* SSHクライアント経由でKoKo コンポーネントに接続できるように許可する
有効化した場合、Luna " +"ページでは資産への接続時にSSHクライアントの起動方法を表示します。" #: settings/serializers/tool.py:10 msgid "Tool" @@ -7442,11 +7174,9 @@ msgstr "ワークベンチのツール" #: settings/serializers/tool.py:15 msgid "" -"*! If enabled, users with RBAC permissions will be able to utilize all tools " -"in the workbench" -msgstr "" -"* RBAC権限を持つユーザは、ワークベンチのすべてのツールを使用できるようにしま" -"す" +"*! If enabled, users with RBAC permissions will be able to utilize all tools" +" in the workbench" +msgstr "* RBAC権限を持つユーザは、ワークベンチのすべてのツールを使用できるようにします" #: settings/tasks/ldap.py:73 msgid "Periodic import ldap user" @@ -7456,9 +7186,7 @@ msgstr "LDAP ユーザーを定期的にインポートする" msgid "" "When LDAP auto-sync is configured, this task will be invoked to synchronize " "users" -msgstr "" -"LDAPの自動同期が設定されている場合、このActionを呼び出して利用者の同期を行い" -"ます" +msgstr "LDAPの自動同期が設定されている場合、このActionを呼び出して利用者の同期を行います" #: settings/tasks/ldap.py:83 msgid "Periodic import ldap ha user" @@ -7470,13 +7198,10 @@ msgstr "登録サイクルLDAPユーザータスクのインポート" #: settings/tasks/ldap.py:119 msgid "" -"When LDAP auto-sync parameters change, such as Crontab parameters, the LDAP " -"sync task \n" +"When LDAP auto-sync parameters change, such as Crontab parameters, the LDAP sync task \n" " will be re-registered or updated, and this task will be invoked" msgstr "" -"LDAPの自動同期パラメーターが変更された場合、たとえばCrontabパラメーターが変更" -"され、ldap同期Actionの再登録または更新が必要になった場合、そのActionはこの" -"Actionを呼び出します" +"LDAPの自動同期パラメーターが変更された場合、たとえばCrontabパラメーターが変更され、ldap同期Actionの再登録または更新が必要になった場合、そのActionはこのActionを呼び出します" #: settings/tasks/ldap.py:133 msgid "Registration periodic import ldap ha user task" @@ -7484,12 +7209,11 @@ msgstr "LDAP HA ユーザーの定期インポートタスクの登録" #: settings/tasks/ldap.py:135 msgid "" -"When LDAP HA auto-sync parameters change, such as Crontab parameters, the " -"LDAP HA sync task \n" +"When LDAP HA auto-sync parameters change, such as Crontab parameters, the LDAP HA sync task \n" " will be re-registered or updated, and this task will be invoked" msgstr "" -"LDAP HA自動同期パラメーターが変更された場合、Crontabパラメーターなど、ldap ha" -"同期Actionを再登録または更新する際にはこのActionを呼び出します" +"LDAP HA自動同期パラメーターが変更された場合、Crontabパラメーターなど、ldap " +"ha同期Actionを再登録または更新する際にはこのActionを呼び出します" #: settings/templates/ldap/_msg_import_ldap_user.html:2 msgid "Sync task finish" @@ -7623,9 +7347,7 @@ msgstr "インポート" #: templates/_csv_import_modal.html:12 msgid "Download the imported template or use the exported CSV file format" -msgstr "" -"インポートしたテンプレートをダウンロードするか、エクスポートしたCSVファイル形" -"式を使用する" +msgstr "インポートしたテンプレートをダウンロードするか、エクスポートしたCSVファイル形式を使用する" #: templates/_csv_import_modal.html:13 msgid "Download the import template" @@ -7641,9 +7363,7 @@ msgstr "ファイルを選択してください" #: templates/_csv_update_modal.html:12 msgid "Download the update template or use the exported CSV file format" -msgstr "" -"更新テンプレートをダウンロードするか、エクスポートしたCSVファイル形式を使用す" -"る" +msgstr "更新テンプレートをダウンロードするか、エクスポートしたCSVファイル形式を使用する" #: templates/_csv_update_modal.html:13 msgid "Download the update template" @@ -7684,8 +7404,7 @@ msgid "" " " msgstr "" "\n" -" アカウントが期限切れになったので、管理者に連絡してくださ" -"い。 " +" アカウントが期限切れになったので、管理者に連絡してください。 " #: templates/_message.html:13 msgid "Your account will at" @@ -7699,13 +7418,11 @@ msgstr "期限切れです。" #, python-format msgid "" "\n" -" Your password has expired, please click this link update password.\n" +" Your password has expired, please click this link update password.\n" " " msgstr "" "\n" -" パスワードが期限切れになりましたので、クリックしてください " -" リンク パスワードの更新\n" +" パスワードが期限切れになりましたので、クリックしてください リンク パスワードの更新\n" " " #: templates/_message.html:30 @@ -7716,39 +7433,33 @@ msgstr "あなたのパスワードは" #, python-format msgid "" "\n" -" please click this " -"link to update your password.\n" +" please click this link to update your password.\n" " " msgstr "" "\n" -" クリックしてください リンク パスワードの更新\n" +" クリックしてください リンク パスワードの更新\n" " " #: templates/_message.html:43 #, python-format msgid "" "\n" -" Your information was incomplete. Please click this link to complete your information.\n" +" Your information was incomplete. Please click this link to complete your information.\n" " " msgstr "" "\n" -" あなたの情報が不完全なので、クリックしてください。 リンク 補完\n" +" あなたの情報が不完全なので、クリックしてください。 リンク 補完\n" " " #: templates/_message.html:56 #, python-format msgid "" "\n" -" Your ssh public key not set or expired. Please click this link to update\n" +" Your ssh public key not set or expired. Please click this link to update\n" " " msgstr "" "\n" -" SSHキーが設定されていないか無効になっている場合は、 リンク 更新\n" +" SSHキーが設定されていないか無効になっている場合は、 リンク 更新\n" " " #: templates/_mfa_login_field.html:31 @@ -7780,9 +7491,8 @@ msgid "" "JumpServer Client, currently used to launch the client, now only support " "launch RDP SSH client, The Telnet client will next" msgstr "" -"JumpServerクライアントは、現在特定のクライアントプログラムの接続資産を喚起す" -"るために使用されており、現在はRDP SSHクライアントのみをサポートしています。" -"「Telnetは将来的にサポートする" +"JumpServerクライアントは、現在特定のクライアントプログラムの接続資産を喚起するために使用されており、現在はRDP " +"SSHクライアントのみをサポートしています。「Telnetは将来的にサポートする" #: templates/resource_download.html:35 msgid "Microsoft" @@ -7796,9 +7506,7 @@ msgstr "公式" msgid "" "macOS needs to download the client to connect RDP asset, which comes with " "Windows" -msgstr "" -"MacOSは、Windowsに付属のRDPアセットを接続するためにクライアントをダウンロード" -"する必要があります" +msgstr "MacOSは、Windowsに付属のRDPアセットを接続するためにクライアントをダウンロードする必要があります" #: templates/resource_download.html:45 msgid "Windows Remote application publisher tools" @@ -7808,9 +7516,7 @@ msgstr "Windowsリモートアプリケーション発行者ツール" msgid "" "OpenSSH is a program used to connect remote applications in the Windows " "Remote Application Publisher" -msgstr "" -"OpenSSHはリモートアプリケーションをWindowsリモートアプリケーションで接続する" -"プログラムです" +msgstr "OpenSSHはリモートアプリケーションをWindowsリモートアプリケーションで接続するプログラムです" #: templates/resource_download.html:53 msgid "Offline video player" @@ -7846,7 +7552,7 @@ msgstr "使用中のストレージは削除できません: {}" msgid "Command storages" msgstr "コマンドストア" -#: terminal/api/component/storage.py:84 xpack/plugins/cloud/manager.py:107 +#: terminal/api/component/storage.py:84 xpack/plugins/cloud/manager.py:110 msgid "Invalid" msgstr "無効" @@ -8240,7 +7946,8 @@ msgstr "セッション再生をダウンロードできます" msgid "Account ID" msgstr "アカウント ID" -#: terminal/models/session/session.py:38 terminal/models/session/sharing.py:118 +#: terminal/models/session/session.py:38 +#: terminal/models/session/sharing.py:118 msgid "Login from" msgstr "ログイン元" @@ -8289,8 +7996,8 @@ msgstr "アクションパーミッション" msgid "Origin" msgstr "ソース" -#: terminal/models/session/sharing.py:42 terminal/models/session/sharing.py:100 -#: terminal/notifications.py:279 +#: terminal/models/session/sharing.py:42 +#: terminal/models/session/sharing.py:100 terminal/notifications.py:279 msgid "Session sharing" msgstr "セッション共有" @@ -8403,21 +8110,16 @@ msgstr "コア サービス アドレス" #: terminal/serializers/applet_host.py:38 msgid "" " \n" -" Tips: The application release machine communicates with the Core " -"service. \n" -" If the release machine and the Core service are on the same network " -"segment, \n" -" it is recommended to fill in the intranet address, otherwise fill in " -"the current site URL \n" +" Tips: The application release machine communicates with the Core service. \n" +" If the release machine and the Core service are on the same network segment, \n" +" it is recommended to fill in the intranet address, otherwise fill in the current site URL \n" "
\n" " eg: https://172.16.10.110 or https://dev.jumpserver.com\n" " " msgstr "" -"ヒント: アプリケーション リリース マシンは、コア サービスと通信します。リリー" -"ス マシンとコア サービスが同じネットワーク セグメント上にある場合は、イントラ" -"ネット アドレスを入力することをお勧めします。それ以外の場合は、現在のサイト " -"URL を入力します。
例: https://172.16.10.110 または https://dev." -"jumpserver.com" +"ヒント: アプリケーション リリース マシンは、コア サービスと通信します。リリース マシンとコア サービスが同じネットワーク " +"セグメント上にある場合は、イントラネット アドレスを入力することをお勧めします。それ以外の場合は、現在のサイト URL を入力します。
例: " +"https://172.16.10.110 または https://dev.jumpserver.com" #: terminal/serializers/applet_host.py:46 terminal/serializers/storage.py:207 msgid "Ignore Certificate Verification" @@ -8430,12 +8132,12 @@ msgstr "既存の RDS 証明書" #: terminal/serializers/applet_host.py:50 msgid "" "If not exist, the RDS will be in trial mode, and the trial period is 120 " -"days. Detail" +"days. Detail" msgstr "" -"存在しない場合、RDSは試用モードで、試用期間は120日間です。詳細" +"存在しない場合、RDSは試用モードで、試用期間は120日間です。詳細" #: terminal/serializers/applet_host.py:55 msgid "RDS License Server" @@ -8453,9 +8155,7 @@ msgstr "RDS シングル ユーザー シングル セッション" msgid "" "Tips: A RDS user can have only one session at a time. If set, when next " "login connected, previous session will be disconnected." -msgstr "" -"ヒント:RDSユーザーは一度に一つのセッションしか持てません。設定されている場" -"合、次回のログイン接続時に、前回のセッションが切断されます" +msgstr "ヒント:RDSユーザーは一度に一つのセッションしか持てません。設定されている場合、次回のログイン接続時に、前回のセッションが切断されます" #: terminal/serializers/applet_host.py:65 msgid "RDS Max Disconnection Time (ms)" @@ -8465,9 +8165,7 @@ msgstr "最大切断時間(ミリ秒)" msgid "" "Tips: Set the maximum duration for keeping a disconnected session active on " "the server (log off the session after 60000 milliseconds)." -msgstr "" -"ヒント:サーバー上で切断されたセッションがアクティブな状態で維持される最大時" -"間を設定します(60000ミリ秒後にセッションをログオフ)。" +msgstr "ヒント:サーバー上で切断されたセッションがアクティブな状態で維持される最大時間を設定します(60000ミリ秒後にセッションをログオフ)。" #: terminal/serializers/applet_host.py:72 msgid "RDS Remote App Logoff Time Limit (ms)" @@ -8475,11 +8173,10 @@ msgstr "RDSリモートアプリケーションのログアウト時間制限( #: terminal/serializers/applet_host.py:74 msgid "" -"Tips: Set the logoff time for RemoteApp sessions after closing all RemoteApp " -"programs (0 milliseconds, log off the session immediately)." +"Tips: Set the logoff time for RemoteApp sessions after closing all RemoteApp" +" programs (0 milliseconds, log off the session immediately)." msgstr "" -"ヒント:すべてのRemoteAppプログラムを閉じた後、RemoteAppセッションのログオフ" -"時間を設定します(0ミリ秒、セッションを即座にログオフ)。" +"ヒント:すべてのRemoteAppプログラムを閉じた後、RemoteAppセッションのログオフ時間を設定します(0ミリ秒、セッションを即座にログオフ)。" #: terminal/serializers/applet_host.py:83 terminal/serializers/terminal.py:47 #: terminal/serializers/virtualapp_provider.py:13 @@ -8488,17 +8185,13 @@ msgstr "ロードステータス" #: terminal/serializers/applet_host.py:97 msgid "" -"These accounts are used to connect to the published application, the account " -"is now divided into two types, one is dedicated to each account, each user " +"These accounts are used to connect to the published application, the account" +" is now divided into two types, one is dedicated to each account, each user " "has a private account, the other is public, when the application does not " -"support multiple open and the special has been used, the public account will " -"be used to connect" +"support multiple open and the special has been used, the public account will" +" be used to connect" msgstr "" -"これらのアカウントは、公開されたアプリケーションに接続するために使用されま" -"す。アカウントは現在、2つのタイプに分類されています。1つは、各アカウントに専" -"用のアカウントで、各ユーザーにはプライベートアカウントがあります。もう1つは公" -"開されています。アプリケーションが複数のオープンをサポートしていない場合、お" -"よび特別なものが使用されている場合、公開アカウントが使用されます。" +"これらのアカウントは、公開されたアプリケーションに接続するために使用されます。アカウントは現在、2つのタイプに分類されています。1つは、各アカウントに専用のアカウントで、各ユーザーにはプライベートアカウントがあります。もう1つは公開されています。アプリケーションが複数のオープンをサポートしていない場合、および特別なものが使用されている場合、公開アカウントが使用されます。" #: terminal/serializers/applet_host.py:104 msgid "The number of public accounts created automatically" @@ -8510,9 +8203,8 @@ msgid "" "please set the configuration item CACHE_LOGIN_PASSWORD_ENABLED=true and " "restart the service to enable it." msgstr "" -"同じアカウントを使用してホストに接続します。セキュリティ上の理由から、構成項" -"目 CACHE_LOGIN_PASSWORD_ENABLED=true を設定してサービスを再起動して有効にして" -"ください。" +"同じアカウントを使用してホストに接続します。セキュリティ上の理由から、構成項目 CACHE_LOGIN_PASSWORD_ENABLED=true " +"を設定してサービスを再起動して有効にしてください。" #: terminal/serializers/applet_host.py:149 msgid "Install applets" @@ -8562,9 +8254,7 @@ msgstr "Oracle がリッスンするポート範囲" msgid "" "Oracle proxy server listen port is dynamic, Each additional Oracle database " "instance adds a port listener" -msgstr "" -"Oracle プロキシサーバーがリッスンするポートは動的です。追加の Oracle データ" -"ベースインスタンスはポートリスナーを追加します" +msgstr "Oracle プロキシサーバーがリッスンするポートは動的です。追加の Oracle データベースインスタンスはポートリスナーを追加します" #: terminal/serializers/endpoint.py:38 msgid "" @@ -8572,22 +8262,19 @@ msgid "" "access address of the current browser will be used (the default endpoint " "does not allow modification of the host)" msgstr "" -"アセットに接続するときにアクセスされるホスト アドレス。空の場合は、現在のブラ" -"ウザのアクセス アドレスが使用されます (デフォルトのエンドポイントではホストの" -"変更は許可されません)。" +"アセットに接続するときにアクセスされるホスト アドレス。空の場合は、現在のブラウザのアクセス アドレスが使用されます " +"(デフォルトのエンドポイントではホストの変更は許可されません)。" #: terminal/serializers/endpoint.py:71 msgid "" -"The assets within this IP range, the following endpoint will be used for the " -"connection" +"The assets within this IP range, the following endpoint will be used for the" +" connection" msgstr "このIP範囲内のアセットは、以下のエンドポイントを使用して接続されます" #: terminal/serializers/endpoint.py:72 msgid "" "If asset IP addresses under different endpoints conflict, use asset labels" -msgstr "" -"異なるエンドポイントの下に競合するアセットIPがある場合は、アセットタグを使用" -"して実装します" +msgstr "異なるエンドポイントの下に競合するアセットIPがある場合は、アセットタグを使用して実装します" #: terminal/serializers/endpoint.py:76 msgid "Asset IP" @@ -8674,8 +8361,8 @@ msgid "" "If there are multiple hosts, use a comma (,) to separate them.
(For " "example: http://www.jumpserver.a.com:9100, http://www.jumpserver.b.com:9100)" msgstr "" -"ホストが複数ある場合は、カンマ (,) で区切ってください。
(例: http://www." -"jumpserver.a.com:9100, http://www.jumpserver.b.com:9100)" +"ホストが複数ある場合は、カンマ (,) で区切ってください。
(例: http://www.jumpserver.a.com:9100, " +"http://www.jumpserver.b.com:9100)" #: terminal/serializers/storage.py:199 msgid "Index by date" @@ -8706,9 +8393,7 @@ msgid "" "set as the default storage, will make new Component use the current storage " "by default, without affecting existing Component" msgstr "" -"デフォルトのストレージとして設定すると、新しいコンポーネントが現在のストレー" -"ジをデフォルトで使用するようになりますが、既存のコンポーネントには影響しませ" -"ん" +"デフォルトのストレージとして設定すると、新しいコンポーネントが現在のストレージをデフォルトで使用するようになりますが、既存のコンポーネントには影響しません" #: terminal/serializers/task.py:9 msgid "Session id" @@ -8853,12 +8538,9 @@ msgstr "オフライン セッションをクリアする" #: terminal/tasks.py:45 msgid "" -"Check every 10 minutes for asset connection sessions that have been inactive " -"for 3 \n" +"Check every 10 minutes for asset connection sessions that have been inactive for 3 \n" " minutes and mark these sessions as completed" -msgstr "" -"毎10分ごとに、3分間非活動状態の資産接続セッションを確認し、これらのセッション" -"を完了とマークします" +msgstr "毎10分ごとに、3分間非活動状態の資産接続セッションを確認し、これらのセッションを完了とマークします" #: terminal/tasks.py:68 msgid "Upload session replay to external storage" @@ -8866,12 +8548,9 @@ msgstr "セッションの記録を外部ストレージにアップロードす #: terminal/tasks.py:70 terminal/tasks.py:104 msgid "" -"If SERVER_REPLAY_STORAGE is configured in the config.txt, session commands " -"and \n" +"If SERVER_REPLAY_STORAGE is configured in the config.txt, session commands and \n" " recordings will be uploaded to external storage" -msgstr "" -"SERVER_REPLAY_STORAGEが設定されている場合、ファイル管理を通じてアップロードさ" -"れたファイルを外部ストレージに同期します" +msgstr "SERVER_REPLAY_STORAGEが設定されている場合、ファイル管理を通じてアップロードされたファイルを外部ストレージに同期します" #: terminal/tasks.py:102 msgid "Upload session replay part file to external storage" @@ -8883,8 +8562,7 @@ msgstr "アプリケーション マシンの展開を実行する" #: terminal/tasks.py:126 msgid "" -"When deploying from the remote application publisher details page, and the " -"'Deploy' \n" +"When deploying from the remote application publisher details page, and the 'Deploy' \n" " button is clicked, this task will be executed" msgstr "デプロイメントシステムの展開時に、このActionが実行されます" @@ -8894,12 +8572,9 @@ msgstr "アプリをインストールする" #: terminal/tasks.py:140 msgid "" -"When the 'Deploy' button is clicked in the 'Remote Application' section of " -"the remote \n" +"When the 'Deploy' button is clicked in the 'Remote Application' section of the remote \n" " application publisher details page, this task will be executed" -msgstr "" -"リモートアプリケーションの詳細-リモートアプリケーションの展開時に、このAction" -"が実行されます" +msgstr "リモートアプリケーションの詳細-リモートアプリケーションの展開時に、このActionが実行されます" #: terminal/tasks.py:152 msgid "Uninstall applet" @@ -8907,12 +8582,9 @@ msgstr "アプリをアンインストールする" #: terminal/tasks.py:155 msgid "" -"When the 'Uninstall' button is clicked in the 'Remote Application' section " -"of the \n" +"When the 'Uninstall' button is clicked in the 'Remote Application' section of the \n" " remote application publisher details page, this task will be executed" -msgstr "" -"リモートアプリケーションの詳細-リモートアプリケーションのアンインストール時" -"に、このActionが実行されます" +msgstr "リモートアプリケーションの詳細-リモートアプリケーションのアンインストール時に、このActionが実行されます" #: terminal/tasks.py:167 msgid "Generate applet host accounts" @@ -8920,12 +8592,9 @@ msgstr "リモートアプリケーション上のアカウントを収集する #: terminal/tasks.py:170 msgid "" -"When a remote publishing server is created and an account needs to be " -"created \n" +"When a remote publishing server is created and an account needs to be created \n" " automatically, this task will be executed" -msgstr "" -"リモートパブリッシャーを作成した後、自動でアカウントを作成する必要がある場" -"合、このActionが実行されます" +msgstr "リモートパブリッシャーを作成した後、自動でアカウントを作成する必要がある場合、このActionが実行されます" #: terminal/tasks.py:184 msgid "Check command replay storage connectivity" @@ -8933,16 +8602,12 @@ msgstr "チェックコマンドと録画ストレージの接続性" #: terminal/tasks.py:186 msgid "" -"Check every day at midnight whether the external storage for commands and " -"recordings \n" -" is accessible. If it is not accessible, send a notification to the " -"recipients specified \n" -" in 'System Settings - Notifications - Subscription - Storage - " -"Connectivity'" +"Check every day at midnight whether the external storage for commands and recordings \n" +" is accessible. If it is not accessible, send a notification to the recipients specified \n" +" in 'System Settings - Notifications - Subscription - Storage - Connectivity'" msgstr "" -"毎日午前0時に、コマンドと映像の外部ストレージが接続可能かどうかを確認します。" -"接続できない場合は、システム設定-通知設定-メッセージ訂閱-コマンドと映像スト" -"レージ設定の受け取り人に送信します" +"毎日午前0時に、コマンドと映像の外部ストレージが接続可能かどうかを確認します。接続できない場合は、システム設定-通知設定-メッセージ訂閱-" +"コマンドと映像ストレージ設定の受け取り人に送信します" #: terminal/templates/terminal/_msg_command_alert.html:10 msgid "view" @@ -8955,16 +8620,13 @@ msgid "" "administrator to open more ports." msgstr "" "利用可能なポートと一致しません。データベースの数が、データベース プロキシ " -"サービスによって開かれたポートの数を超えた可能性があります。さらにポートを開" -"くには、管理者に連絡してください。" +"サービスによって開かれたポートの数を超えた可能性があります。さらにポートを開くには、管理者に連絡してください。" #: terminal/utils/db_port_mapper.py:116 msgid "" -"No ports can be used, check and modify the limit on the number of ports that " -"Magnus listens on in the configuration file." -msgstr "" -"使用できるポートがありません。設定ファイルで Magnus がリッスンするポート数の" -"制限を確認して変更してください. " +"No ports can be used, check and modify the limit on the number of ports that" +" Magnus listens on in the configuration file." +msgstr "使用できるポートがありません。設定ファイルで Magnus がリッスンするポート数の制限を確認して変更してください. " #: terminal/utils/db_port_mapper.py:118 msgid "All available port count: {}, Already use port count: {}" @@ -9026,9 +8688,7 @@ msgstr "チケットはすでに閉じています" msgid "" "Created by the ticket ticket title: {} ticket applicant: {} ticket " "processor: {} ticket ID: {}" -msgstr "" -"チケットのタイトル: {} チケット申請者: {} チケットプロセッサ: {} チケットID: " -"{}" +msgstr "チケットのタイトル: {} チケット申請者: {} チケットプロセッサ: {} チケットID: {}" #: tickets/handlers/base.py:84 msgid "Change field" @@ -9262,9 +8922,7 @@ msgstr "承認" #: tickets/views/approve.py:44 msgid "" "This ticket does not exist, the process has ended, or this link has expired" -msgstr "" -"このワークシートが存在しないか、ワークシートが終了したか、このリンクが無効に" -"なっています" +msgstr "このワークシートが存在しないか、ワークシートが終了したか、このリンクが無効になっています" #: tickets/views/approve.py:72 msgid "Click the button below to approve or reject" @@ -9380,8 +9038,7 @@ msgid "" "in. you can also directly bind in \"personal information -> quick " "modification -> change MFA Settings\"!" msgstr "" -"有効にすると、次回のログイン時にマルチファクタ認証バインドプロセスに入りま" -"す。(個人情報->クイック修正->MFAマルチファクタ認証の設定)で直接バインド!" +"有効にすると、次回のログイン時にマルチファクタ認証バインドプロセスに入ります。(個人情報->クイック修正->MFAマルチファクタ認証の設定)で直接バインド!" #: users/forms/profile.py:60 msgid "* Enable MFA to make the account more secure." @@ -9389,12 +9046,11 @@ msgstr "* アカウントをより安全にするためにMFAを有効にしま #: users/forms/profile.py:69 msgid "" -"In order to protect you and your company, please keep your account, password " -"and key sensitive information properly. (for example: setting complex " +"In order to protect you and your company, please keep your account, password" +" and key sensitive information properly. (for example: setting complex " "password, enabling MFA)" msgstr "" -"あなたとあなたの会社を保護するために、アカウント、パスワード、キーの機密情報" -"を適切に保管してください。(例: 複雑なパスワードの設定、MFAの有効化)" +"あなたとあなたの会社を保護するために、アカウント、パスワード、キーの機密情報を適切に保管してください。(例: 複雑なパスワードの設定、MFAの有効化)" #: users/forms/profile.py:83 users/serializers/preference/lina.py:21 msgid "New password" @@ -9551,12 +9207,10 @@ msgstr "ターミナルテーマ名" #: users/serializers/preference/lina.py:12 msgid "" "*! The password for file encryption, used for decryption when the system " -"sends emails containing file attachments.
Such as: account backup files, " -"account password change results files" +"sends emails containing file attachments.
Such as: account backup files," +" account password change results files" msgstr "" -"ファイル暗号化パスワードは、システムから送信されるメールにファイルの添付が含" -"まれている場合、このパスワードで解読します。
例:アカウントのバックアップ" -"ファイル、アカウントのパスワード変更結果ファイル" +"ファイル暗号化パスワードは、システムから送信されるメールにファイルの添付が含まれている場合、このパスワードで解読します。
例:アカウントのバックアップファイル、アカウントのパスワード変更結果ファイル" #: users/serializers/preference/lina.py:39 users/serializers/profile.py:49 msgid "The newly set password is inconsistent" @@ -9604,9 +9258,7 @@ msgid "" "remote computer to fit the window size of the client computer when the " "window is resized." msgstr "" -"ウィンドウサイズを調整したときに、クライアントコンピューターがリモートコン" -"ピューター上の内容をクライアントコンピューターのウィンドウサイズに合うように" -"拡大または縮小するかどうかを決定します。" +"ウィンドウサイズを調整したときに、クライアントコンピューターがリモートコンピューター上の内容をクライアントコンピューターのウィンドウサイズに合うように拡大または縮小するかどうかを決定します。" # msgid "" # "Determines whether the client computer should scale the content on the " @@ -9658,10 +9310,9 @@ msgstr "システムの役割" #: users/serializers/user.py:55 msgid "" -"System roles are roles at the system level, and they will take effect across " -"all organizations" -msgstr "" -"システムロールはシステムレベルのロールであり、すべての組織で有効になります" +"System roles are roles at the system level, and they will take effect across" +" all organizations" +msgstr "システムロールはシステムレベルのロールであり、すべての組織で有効になります" #: users/serializers/user.py:61 msgid "Org roles" @@ -9735,9 +9386,7 @@ msgid "" "other sources.There are security settings that can restrict users to log in " "to the system only from the sources." msgstr "" -"ユーザソースはユーザの作成場所を表し、ADや他のソースになる可能性があります。" -"セキュリティ設定で特定のソースからしかシステムにログインできないようにユーザ" -"を制限することができます。" +"ユーザソースはユーザの作成場所を表し、ADや他のソースになる可能性があります。セキュリティ設定で特定のソースからしかシステムにログインできないようにユーザを制限することができます。" #: users/serializers/user.py:271 msgid "Superuser" @@ -9761,10 +9410,9 @@ msgstr "認証" #: users/serializers/user.py:439 msgid "" -"* For security, only a partial of users is displayed. You can search for more" -msgstr "" -"* あなたの安全のために、一部のユーザーのみを表示します。より多くのユーザーを" -"検索することができます" +"* For security, only a partial of users is displayed. You can search for " +"more" +msgstr "* あなたの安全のために、一部のユーザーのみを表示します。より多くのユーザーを検索することができます" #: users/serializers/user.py:474 msgid "name not unique" @@ -9773,11 +9421,8 @@ msgstr "名前が一意ではない" #: users/signal_handlers.py:41 msgid "" "The administrator has enabled \"Only allow existing users to log in\", \n" -" and the current user is not in the user list. Please contact the " -"administrator." -msgstr "" -"管理者は「既存のユーザーのみログインを許可」をオンにしており、現在のユーザー" -"はユーザーリストにありません。管理者に連絡してください。" +" and the current user is not in the user list. Please contact the administrator." +msgstr "管理者は「既存のユーザーのみログインを許可」をオンにしており、現在のユーザーはユーザーリストにありません。管理者に連絡してください。" #: users/signal_handlers.py:197 msgid "Clean up expired user sessions" @@ -9785,12 +9430,9 @@ msgstr "期限切れのユーザー・セッションのパージ" #: users/signal_handlers.py:199 msgid "" -"After logging in via the web, a user session record is created. At 2 a.m. " -"every day, \n" +"After logging in via the web, a user session record is created. At 2 a.m. every day, \n" " the system cleans up inactive user devices" -msgstr "" -"webでログインすると、利用者のセッションのオンライン記録が生じます。毎日午前2" -"時に、オンラインではない利用者デバイスをクリアします" +msgstr "webでログインすると、利用者のセッションのオンライン記録が生じます。毎日午前2時に、オンラインではない利用者デバイスをクリアします" #: users/tasks.py:26 msgid "Check password expired" @@ -9798,12 +9440,9 @@ msgstr "パスワードの有効期限が切れていることを確認する" #: users/tasks.py:28 msgid "" -"Check every day at 10 AM whether the passwords of users in the system are " -"expired, \n" +"Check every day at 10 AM whether the passwords of users in the system are expired, \n" " and send a notification 5 days in advance" -msgstr "" -"毎日午前10時にチェックし、システム内の利用者のパスワードが期限切れになってい" -"るかどうかを確認し、5日前に通知を送ります" +msgstr "毎日午前10時にチェックし、システム内の利用者のパスワードが期限切れになっているかどうかを確認し、5日前に通知を送ります" #: users/tasks.py:46 msgid "Periodic check password expired" @@ -9811,15 +9450,11 @@ msgstr "定期認証パスワードの有効期限" #: users/tasks.py:48 msgid "" -"With version iterations, new tasks may be added, or task names and execution " -"times may \n" -" be modified. Therefore, upon system startup, it is necessary to " -"register or update the \n" +"With version iterations, new tasks may be added, or task names and execution times may \n" +" be modified. Therefore, upon system startup, it is necessary to register or update the \n" " parameters of the task that checks if passwords have expired" msgstr "" -"バージョンが進化するにつれて、新たなActionが追加されたり、Actionの名前、実行" -"時間が変更されたりする可能性があります。そのため、システムが起動するときに、" -"パスワードの期限切れを確認するActionのパラメータを登録または更新します" +"バージョンが進化するにつれて、新たなActionが追加されたり、Actionの名前、実行時間が変更されたりする可能性があります。そのため、システムが起動するときに、パスワードの期限切れを確認するActionのパラメータを登録または更新します" #: users/tasks.py:67 msgid "Check user expired" @@ -9827,12 +9462,9 @@ msgstr "ユーザーの有効期限が切れていることを確認する" #: users/tasks.py:69 msgid "" -"Check every day at 2 p.m whether the users in the system are expired, and " -"send a \n" +"Check every day at 2 p.m whether the users in the system are expired, and send a \n" " notification 5 days in advance" -msgstr "" -"毎日午前10時に確認し、システム内のユーザーが期限切れになっているか確認し、5日" -"前に通知を送信します" +msgstr "毎日午前10時に確認し、システム内のユーザーが期限切れになっているか確認し、5日前に通知を送信します" #: users/tasks.py:90 msgid "Periodic check user expired" @@ -9840,15 +9472,11 @@ msgstr "ユーザーの有効期限の定期的な検出" #: users/tasks.py:92 msgid "" -"With version iterations, new tasks may be added, or task names and execution " -"times may \n" -" be modified. Therefore, upon system startup, it is necessary to " -"register or update the \n" +"With version iterations, new tasks may be added, or task names and execution times may \n" +" be modified. Therefore, upon system startup, it is necessary to register or update the \n" " parameters of the task that checks if users have expired" msgstr "" -"バージョンのイテレーションに伴い、新たなタスクが追加されたり、タスクの名称、" -"実行時間が変更される可能性があるため、システム起動時に、登録または更新された" -"ユーザーが期限切れのタスクのパラメータをチェックします" +"バージョンのイテレーションに伴い、新たなタスクが追加されたり、タスクの名称、実行時間が変更される可能性があるため、システム起動時に、登録または更新されたユーザーが期限切れのタスクのパラメータをチェックします" #: users/tasks.py:111 msgid "Check unused users" @@ -9856,15 +9484,12 @@ msgstr "未使用のユーザーのチェック" #: users/tasks.py:113 msgid "" -"At 2 p.m. every day, according to the configuration in \"System Settings - " -"Security - \n" -" Auth security - Auto disable threshold\" users who have not logged " -"in or whose API keys \n" +"At 2 p.m. every day, according to the configuration in \"System Settings - Security - \n" +" Auth security - Auto disable threshold\" users who have not logged in or whose API keys \n" " have not been used for a long time will be disabled" msgstr "" -"毎日午前2時、システム設定-セキュリティ設定-非アクティブユーザー自動無効化設定" -"に基づき、長時間ログインしないユーザーやapi_keyを使用しないユーザーを無効にし" -"ます" +"毎日午前2時、システム設定-セキュリティ設定-" +"非アクティブユーザー自動無効化設定に基づき、長時間ログインしないユーザーやapi_keyを使用しないユーザーを無効にします" #: users/tasks.py:157 msgid "The user has not logged in recently and has been disabled." @@ -9878,8 +9503,7 @@ msgstr "アカウントの有効期限は" msgid "" "In order not to affect your normal work, please contact the administrator " "for confirmation." -msgstr "" -"通常の作業に影響を与えないように、確認のために管理者に連絡してください。" +msgstr "通常の作業に影響を与えないように、確認のために管理者に連絡してください。" #: users/templates/users/_msg_password_expire_reminder.html:7 msgid "Your password will expire in" @@ -9889,9 +9513,7 @@ msgstr "パスワードは" msgid "" "For your account security, please click on the link below to update your " "password in time" -msgstr "" -"アカウントのセキュリティについては、下のリンクをクリックしてパスワードを時間" -"内に更新してください" +msgstr "アカウントのセキュリティについては、下のリンクをクリックしてパスワードを時間内に更新してください" #: users/templates/users/_msg_password_expire_reminder.html:11 msgid "Click here update password" @@ -9899,8 +9521,7 @@ msgstr "ここをクリック更新パスワード" #: users/templates/users/_msg_password_expire_reminder.html:15 msgid "If your password has expired, please click the link below to" -msgstr "" -"パスワードの有効期限が切れている場合は、以下のリンクをクリックしてください" +msgstr "パスワードの有効期限が切れている場合は、以下のリンクをクリックしてください" #: users/templates/users/_msg_reset_mfa.html:7 msgid "Your MFA has been reset by site administrator" @@ -10000,11 +9621,9 @@ msgstr "ワンタイムパスワード認証子のバインド" #: users/templates/users/user_otp_enable_bind.html:13 msgid "" -"Use the MFA Authenticator application to scan the following qr code for a 6-" -"bit verification code" -msgstr "" -"MFA Authenticatorアプリケーションを使用して、次のqrコードを6ビット検証コード" -"でスキャンします。" +"Use the MFA Authenticator application to scan the following qr code for a " +"6-bit verification code" +msgstr "MFA Authenticatorアプリケーションを使用して、次のqrコードを6ビット検証コードでスキャンします。" #: users/templates/users/user_otp_enable_bind.html:22 #: users/templates/users/user_verify_mfa.html:27 @@ -10019,9 +9638,7 @@ msgstr "アプリのインストール" msgid "" "Download and install the MFA Authenticator application on your phone or " "applet of WeChat" -msgstr "" -"携帯電話またはWeChatのアプレットにMFA Authenticatorアプリケーションをダウン" -"ロードしてインストールします" +msgstr "携帯電話またはWeChatのアプレットにMFA Authenticatorアプリケーションをダウンロードしてインストールします" #: users/templates/users/user_otp_enable_install_app.html:18 msgid "Android downloads" @@ -10035,9 +9652,7 @@ msgstr "IPhoneのダウンロード" msgid "" "After installation, click the next step to enter the binding page (if " "installed, go to the next step directly)." -msgstr "" -"インストール後、次のステップをクリックしてバインディングページに入ります (イ" -"ンストールされている場合は、次のステップに直接進みます)。" +msgstr "インストール後、次のステップをクリックしてバインディングページに入ります (インストールされている場合は、次のステップに直接進みます)。" #: users/templates/users/user_password_verify.html:8 #: users/templates/users/user_password_verify.html:9 @@ -10052,8 +9667,7 @@ msgstr "認証" msgid "" "The account protection has been opened, please complete the following " "operations according to the prompts" -msgstr "" -"アカウント保護が開始されました。プロンプトに従って次の操作を完了してください" +msgstr "アカウント保護が開始されました。プロンプトに従って次の操作を完了してください" #: users/templates/users/user_verify_mfa.html:17 msgid "Open MFA Authenticator and enter the 6-bit dynamic code" @@ -10071,7 +9685,7 @@ msgstr "JumpServerクライアントにリダイレクト" msgid "Face binding successful" msgstr "顔の特徴の結びつけが成功しました" -#: users/views/profile/face.py:80 users/views/profile/face.py:81 +#: users/views/profile/face.py:82 users/views/profile/face.py:83 msgid "Face unbinding successful" msgstr "顔の特徴の解除が成功しました" @@ -10081,8 +9695,7 @@ msgstr "すでにバインド済み" #: users/views/profile/otp.py:107 msgid "MFA already bound, disable first, then bound" -msgstr "" -"MFAはすでにバインドされており、最初に無効にしてからバインドされています。" +msgstr "MFAはすでにバインドされており、最初に無効にしてからバインドされています。" #: users/views/profile/otp.py:134 msgid "OTP enable success" @@ -10110,11 +9723,9 @@ msgstr "パスワード無効" #: users/views/profile/reset.py:66 msgid "" -"Non-local users can log in only from third-party platforms and cannot change " -"their passwords: {}" -msgstr "" -"ローカル以外のユーザーは、サードパーティ プラットフォームからのログインのみが" -"許可され、パスワードの変更はサポートされていません: {}" +"Non-local users can log in only from third-party platforms and cannot change" +" their passwords: {}" +msgstr "ローカル以外のユーザーは、サードパーティ プラットフォームからのログインのみが許可され、パスワードの変更はサポートされていません: {}" #: users/views/profile/reset.py:188 users/views/profile/reset.py:199 msgid "Token invalid or expired" @@ -10270,19 +9881,19 @@ msgstr "インスタンス名と部分IP" msgid "Succeed" msgstr "成功" -#: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:95 +#: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:98 msgid "Unsync" msgstr "同期していません" -#: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:94 +#: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:97 msgid "New Sync" msgstr "新しい同期" -#: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:94 +#: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:97 msgid "Synced" msgstr "同期済み" -#: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:96 +#: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:99 msgid "Released" msgstr "リリース済み" @@ -10302,45 +9913,45 @@ msgstr "組織が同期されました" msgid "Imported" msgstr "インポート" -#: xpack/plugins/cloud/manager.py:48 +#: xpack/plugins/cloud/manager.py:51 #, python-format msgid "Task \"%s\" starts executing" msgstr "タスク \"%s\" の実行開始" -#: xpack/plugins/cloud/manager.py:87 +#: xpack/plugins/cloud/manager.py:90 msgid "View the task details path: " msgstr "タスク詳細パスの表示: " -#: xpack/plugins/cloud/manager.py:90 +#: xpack/plugins/cloud/manager.py:93 msgid "Account Details" msgstr "アカウントの詳細" -#: xpack/plugins/cloud/manager.py:91 +#: xpack/plugins/cloud/manager.py:94 msgid "Synchronization History List" msgstr "履歴リストの同期" -#: xpack/plugins/cloud/manager.py:91 +#: xpack/plugins/cloud/manager.py:94 msgid "Synchronization Instance List" msgstr "インスタンスリストの同期" -#: xpack/plugins/cloud/manager.py:95 +#: xpack/plugins/cloud/manager.py:98 msgid "To be released" msgstr "しゃはんをまつ" -#: xpack/plugins/cloud/manager.py:99 +#: xpack/plugins/cloud/manager.py:102 msgid "Task execution completed" msgstr "タスク実行完了" -#: xpack/plugins/cloud/manager.py:104 +#: xpack/plugins/cloud/manager.py:107 msgid "Synchronization regions" msgstr "地域を同期する" -#: xpack/plugins/cloud/manager.py:129 +#: xpack/plugins/cloud/manager.py:132 #, python-format msgid "Get instances of region \"%s\" error, error: %s" msgstr "地域 \"%s\" のインスタンスを取得できませんでした、エラー:%s" -#: xpack/plugins/cloud/manager.py:175 +#: xpack/plugins/cloud/manager.py:178 #, python-format msgid "Failed to synchronize the instance \"%s\"" msgstr "インスタンス \"%s\" の同期に失敗しました" @@ -10350,46 +9961,44 @@ msgstr "インスタンス \"%s\" の同期に失敗しました" msgid "" "The updated platform of asset \"%s\" is inconsistent with the original " "platform type. Skip platform and protocol updates" -msgstr "" -"更新された資産 \"%s\" のプラットフォームタイプと元のタイプは一致しません。プ" -"ラットフォームとプロトコルの更新をスキップ" +msgstr "更新された資産 \"%s\" のプラットフォームタイプと元のタイプは一致しません。プラットフォームとプロトコルの更新をスキップ" -#: xpack/plugins/cloud/manager.py:399 +#: xpack/plugins/cloud/manager.py:406 #, python-format msgid "The asset \"%s\" already exists" msgstr "資産 \"%s\" はすでに存在します" -#: xpack/plugins/cloud/manager.py:401 +#: xpack/plugins/cloud/manager.py:408 #, python-format msgid "Update asset \"%s\"" msgstr "資産の更新 \"%s\"" -#: xpack/plugins/cloud/manager.py:404 +#: xpack/plugins/cloud/manager.py:411 #, python-format msgid "Asset \"%s\" has been updated" msgstr "資産 \"%s\" が更新されました" -#: xpack/plugins/cloud/manager.py:413 +#: xpack/plugins/cloud/manager.py:420 #, python-format msgid "Prepare to create asset \"%s\"" msgstr "資産 \"%s\" の作成準備" -#: xpack/plugins/cloud/manager.py:434 +#: xpack/plugins/cloud/manager.py:441 #, python-format msgid "Set nodes \"%s\"" -msgstr "ノード \"%s\" の設定" +msgstr "ノードを設定する \"%s\"" -#: xpack/plugins/cloud/manager.py:460 +#: xpack/plugins/cloud/manager.py:467 #, python-format msgid "Set accounts \"%s\"" -msgstr "アカウント \"%s\" の設定" +msgstr "アカウントを設定する \"%s\"" -#: xpack/plugins/cloud/manager.py:476 +#: xpack/plugins/cloud/manager.py:483 #, python-format msgid "Set protocols \"%s\"" msgstr "プロトコル \"%s\" の設定" -#: xpack/plugins/cloud/manager.py:490 xpack/plugins/cloud/tasks.py:31 +#: xpack/plugins/cloud/manager.py:497 xpack/plugins/cloud/tasks.py:31 msgid "Run sync instance task" msgstr "同期インスタンス タスクを実行する" @@ -10487,7 +10096,8 @@ msgstr "インスタンス" msgid "Sync instance detail" msgstr "同期インスタンスの詳細" -#: xpack/plugins/cloud/models.py:313 xpack/plugins/cloud/serializers/task.py:77 +#: xpack/plugins/cloud/models.py:313 +#: xpack/plugins/cloud/serializers/task.py:77 msgid "Rule relation" msgstr "条件関係" @@ -10543,7 +10153,8 @@ msgstr "ルール一致" msgid "Rule value" msgstr "ルール値" -#: xpack/plugins/cloud/models.py:383 xpack/plugins/cloud/serializers/task.py:80 +#: xpack/plugins/cloud/models.py:383 +#: xpack/plugins/cloud/serializers/task.py:80 msgid "Strategy rule" msgstr "戦略ルール" @@ -10559,7 +10170,8 @@ msgstr "アクション属性" msgid "Action value" msgstr "アクション値" -#: xpack/plugins/cloud/models.py:409 xpack/plugins/cloud/serializers/task.py:83 +#: xpack/plugins/cloud/models.py:409 +#: xpack/plugins/cloud/serializers/task.py:83 msgid "Strategy action" msgstr "戦略アクション" @@ -10783,77 +10395,80 @@ msgstr "アクセスキー" msgid "Subscription ID" msgstr "サブスクリプションID" -#: xpack/plugins/cloud/serializers/account_attrs.py:98 -#: xpack/plugins/cloud/serializers/account_attrs.py:102 -#: xpack/plugins/cloud/serializers/account_attrs.py:126 -#: xpack/plugins/cloud/serializers/account_attrs.py:156 -#: xpack/plugins/cloud/serializers/account_attrs.py:206 +#: xpack/plugins/cloud/serializers/account_attrs.py:74 +msgid "Auto node classification" +msgstr "オートノード分類" + +#: xpack/plugins/cloud/serializers/account_attrs.py:99 +#: xpack/plugins/cloud/serializers/account_attrs.py:103 +#: xpack/plugins/cloud/serializers/account_attrs.py:127 +#: xpack/plugins/cloud/serializers/account_attrs.py:157 +#: xpack/plugins/cloud/serializers/account_attrs.py:207 msgid "API Endpoint" msgstr "APIエンドポイント" -#: xpack/plugins/cloud/serializers/account_attrs.py:108 +#: xpack/plugins/cloud/serializers/account_attrs.py:109 msgid "Auth url" msgstr "認証アドレス" -#: xpack/plugins/cloud/serializers/account_attrs.py:109 +#: xpack/plugins/cloud/serializers/account_attrs.py:110 msgid "eg: http://openstack.example.com:5000/v3" msgstr "例えば: http://openstack.example.com:5000/v3" -#: xpack/plugins/cloud/serializers/account_attrs.py:112 +#: xpack/plugins/cloud/serializers/account_attrs.py:113 msgid "User domain" msgstr "ユーザードメイン" -#: xpack/plugins/cloud/serializers/account_attrs.py:127 +#: xpack/plugins/cloud/serializers/account_attrs.py:128 msgid "Cert File" msgstr "証明書ファイル" -#: xpack/plugins/cloud/serializers/account_attrs.py:128 +#: xpack/plugins/cloud/serializers/account_attrs.py:129 msgid "Key File" msgstr "キーファイル" -#: xpack/plugins/cloud/serializers/account_attrs.py:144 +#: xpack/plugins/cloud/serializers/account_attrs.py:145 msgid "Service account key" msgstr "サービスアカウントキー" -#: xpack/plugins/cloud/serializers/account_attrs.py:145 +#: xpack/plugins/cloud/serializers/account_attrs.py:146 msgid "The file is in JSON format" msgstr "ファイルはJSON形式です。" -#: xpack/plugins/cloud/serializers/account_attrs.py:163 +#: xpack/plugins/cloud/serializers/account_attrs.py:164 msgid "IP address invalid `{}`, {}" msgstr "IPアドレスが無効: '{}', {}" -#: xpack/plugins/cloud/serializers/account_attrs.py:179 +#: xpack/plugins/cloud/serializers/account_attrs.py:180 msgid "Such as: 192.168.1.0/24, 10.0.0.0-10.0.0.255" msgstr "例:192.168.1.0/24、10.0.0.0.0-10.0.0.255" -#: xpack/plugins/cloud/serializers/account_attrs.py:182 +#: xpack/plugins/cloud/serializers/account_attrs.py:183 msgid "" "The port is used to detect the validity of the IP address. When the " "synchronization task is executed, only the valid IP address will be " "synchronized.
If the port is 0, all IP addresses are valid." msgstr "" -"このポートは、 IP アドレスの有効性を検出するために使用されます。同期タスクが" -"実行されると、有効な IP アドレスのみが同期されます。
ポートが0の場合、す" -"べてのIPアドレスが有効です。" +"このポートは、 IP アドレスの有効性を検出するために使用されます。同期タスクが実行されると、有効な IP アドレスのみが同期されます。 " +"
ポートが0の場合、すべてのIPアドレスが有効です。" -#: xpack/plugins/cloud/serializers/account_attrs.py:190 +#: xpack/plugins/cloud/serializers/account_attrs.py:191 msgid "Hostname prefix" msgstr "ホスト名プレフィックス" -#: xpack/plugins/cloud/serializers/account_attrs.py:193 +#: xpack/plugins/cloud/serializers/account_attrs.py:194 msgid "IP segment" msgstr "IP セグメント" -#: xpack/plugins/cloud/serializers/account_attrs.py:197 +#: xpack/plugins/cloud/serializers/account_attrs.py:198 msgid "Test port" msgstr "テストポート" -#: xpack/plugins/cloud/serializers/account_attrs.py:200 +#: xpack/plugins/cloud/serializers/account_attrs.py:201 msgid "Test timeout" msgstr "テストタイムアウト" -#: xpack/plugins/cloud/serializers/account_attrs.py:216 +#: xpack/plugins/cloud/serializers/account_attrs.py:217 msgid "Project" msgstr "project" @@ -10868,8 +10483,7 @@ msgstr "インスタンス数" #: xpack/plugins/cloud/tasks.py:33 msgid "" "\n" -" Execute this task when manually or scheduled cloud synchronization " -"tasks are performed\n" +" Execute this task when manually or scheduled cloud synchronization tasks are performed\n" " " msgstr "" "\n" @@ -10882,16 +10496,13 @@ msgstr "同期インスタンス タスクの実行記録を定期的にクリ #: xpack/plugins/cloud/tasks.py:54 msgid "" "\n" -" Every day, according to the configuration in \"System Settings - " -"Tasks - Regular \n" -" clean-up - Cloud sync task history retention days\" the system will " -"clean up the execution \n" +" Every day, according to the configuration in \"System Settings - Tasks - Regular \n" +" clean-up - Cloud sync task history retention days\" the system will clean up the execution \n" " records generated by cloud synchronization\n" " " msgstr "" "\n" -"毎日、システム設定-タスクリスト-定期的なクリーニング設定-クラウド同期記録設定" -"に基づき、クラウド同期によって生成された実行記録をクリーニングします。" +"毎日、システム設定-タスクリスト-定期的なクリーニング設定-クラウド同期記録設定に基づき、クラウド同期によって生成された実行記録をクリーニングします。" #: xpack/plugins/interface/api.py:52 msgid "Restore default successfully." diff --git a/apps/i18n/core/pt_BR/LC_MESSAGES/django.po b/apps/i18n/core/pt_BR/LC_MESSAGES/django.po index 3b5277745..66f565460 100644 --- a/apps/i18n/core/pt_BR/LC_MESSAGES/django.po +++ b/apps/i18n/core/pt_BR/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-19 15:10+0800\n" +"POT-Creation-Date: 2025-01-08 14:25+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -193,7 +193,8 @@ msgstr "Coleção" msgid "Template" msgstr "Modelo" -#: accounts/const/account.py:32 ops/const.py:46 xpack/plugins/cloud/const.py:68 +#: accounts/const/account.py:32 ops/const.py:46 +#: xpack/plugins/cloud/const.py:68 msgid "Skip" msgstr "Pular" @@ -369,7 +370,7 @@ msgstr "Usuário %s visualizou/exportou a senha" #: accounts/serializers/automations/change_secret.py:150 #: accounts/templates/accounts/asset_account_change_info.html:7 #: accounts/templates/accounts/change_secret_failed_info.html:11 -#: acls/serializers/base.py:123 assets/models/asset/common.py:102 +#: acls/serializers/base.py:130 assets/models/asset/common.py:102 #: assets/models/asset/common.py:362 assets/models/cmd_filter.py:36 #: audits/models.py:58 authentication/models/connection_token.py:36 #: perms/models/asset_permission.py:69 terminal/backends/command/models.py:17 @@ -412,13 +413,13 @@ msgstr "ID de origem" #: accounts/serializers/automations/change_secret.py:120 #: accounts/serializers/automations/change_secret.py:151 #: accounts/templates/accounts/change_secret_failed_info.html:12 -#: acls/serializers/base.py:124 +#: acls/serializers/base.py:131 #: acls/templates/acls/asset_login_reminder.html:10 #: assets/serializers/gateway.py:33 audits/models.py:59 #: authentication/api/connection_token.py:459 ops/models/base.py:18 #: perms/models/asset_permission.py:75 settings/serializers/msg.py:33 -#: terminal/backends/command/models.py:18 terminal/models/session/session.py:35 -#: terminal/serializers/command.py:72 +#: terminal/backends/command/models.py:18 +#: terminal/models/session/session.py:35 terminal/serializers/command.py:72 #: terminal/templates/terminal/_msg_command_warning.html:8 #: terminal/templates/terminal/_msg_session_sharing.html:8 #: tickets/models/ticket/command_confirm.py:13 @@ -517,7 +518,7 @@ msgid "Trigger mode" msgstr "Modo de Trigger" #: accounts/models/automations/backup_account.py:140 audits/models.py:203 -#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:176 +#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:179 #: xpack/plugins/cloud/models.py:231 msgid "Reason" msgstr "Motivo" @@ -743,9 +744,11 @@ msgstr "Regras de senha" #: perms/models/asset_permission.py:61 rbac/models/role.py:29 #: rbac/serializers/role.py:28 settings/models.py:35 settings/models.py:184 #: settings/serializers/msg.py:89 settings/serializers/terminal.py:9 -#: terminal/models/applet/applet.py:34 terminal/models/component/endpoint.py:13 +#: terminal/models/applet/applet.py:34 +#: terminal/models/component/endpoint.py:13 #: terminal/models/component/endpoint.py:112 -#: terminal/models/component/storage.py:26 terminal/models/component/task.py:13 +#: terminal/models/component/storage.py:26 +#: terminal/models/component/task.py:13 #: terminal/models/component/terminal.py:85 #: terminal/models/virtualapp/provider.py:10 #: terminal/models/virtualapp/virtualapp.py:19 tickets/api/ticket.py:87 @@ -807,8 +810,8 @@ msgstr "Nome de usuário é o mesmo que o do usuário" #: accounts/models/virtual.py:37 msgid "Non-asset account, Input username/password on connect" msgstr "" -"Conta que se conecta com nome de usuário/senha inseridos manualmente durante " -"o login" +"Conta que se conecta com nome de usuário/senha inseridos manualmente durante" +" o login" #: accounts/models/virtual.py:38 msgid "The account username name same with user on connect" @@ -907,9 +910,9 @@ msgstr "Categoria" #: assets/serializers/asset/common.py:146 assets/serializers/platform.py:159 #: assets/serializers/platform.py:171 audits/serializers.py:77 #: audits/serializers.py:194 -#: authentication/serializers/connect_token_secret.py:126 ops/models/job.py:153 -#: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:40 -#: terminal/models/component/storage.py:58 +#: authentication/serializers/connect_token_secret.py:126 +#: ops/models/job.py:153 perms/serializers/user_permission.py:27 +#: terminal/models/applet/applet.py:40 terminal/models/component/storage.py:58 #: terminal/models/component/storage.py:152 terminal/serializers/applet.py:29 #: terminal/serializers/session.py:25 terminal/serializers/storage.py:281 #: terminal/serializers/storage.py:294 tickets/models/comment.py:26 @@ -947,7 +950,7 @@ msgstr "Modificado" #: ops/models/job.py:155 ops/serializers/job.py:20 #: perms/serializers/permission.py:46 #: terminal/templates/terminal/_msg_command_execute_alert.html:16 -#: xpack/plugins/cloud/manager.py:89 +#: xpack/plugins/cloud/manager.py:92 msgid "Assets" msgstr "Bens" @@ -974,15 +977,16 @@ msgstr "Informações especiais" msgid "ID" msgstr "ID" -#: accounts/serializers/account/account.py:475 acls/serializers/base.py:116 +#: accounts/serializers/account/account.py:475 acls/serializers/base.py:123 #: acls/templates/acls/asset_login_reminder.html:8 #: acls/templates/acls/user_login_reminder.html:8 -#: assets/models/cmd_filter.py:24 assets/models/label.py:16 audits/models.py:54 -#: audits/models.py:90 audits/models.py:172 audits/models.py:271 -#: audits/serializers.py:195 authentication/models/connection_token.py:32 +#: assets/models/cmd_filter.py:24 assets/models/label.py:16 +#: audits/models.py:54 audits/models.py:90 audits/models.py:172 +#: audits/models.py:271 audits/serializers.py:195 +#: authentication/models/connection_token.py:32 #: authentication/models/ssh_key.py:22 authentication/models/sso_token.py:16 #: notifications/models/notification.py:12 -#: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:63 +#: perms/api/user_permission/mixin.py:58 perms/models/asset_permission.py:63 #: rbac/builtin.py:125 rbac/models/rolebinding.py:49 #: rbac/serializers/rolebinding.py:17 terminal/backends/command/models.py:16 #: terminal/models/session/session.py:31 terminal/models/session/sharing.py:34 @@ -1063,23 +1067,20 @@ msgid "" "length is the length of the password, and the range is 8 to 30.\n" "lowercase indicates whether the password contains lowercase letters, \n" "uppercase indicates whether it contains uppercase letters,\n" -"digit indicates whether it contains numbers, and symbol indicates whether it " -"contains special symbols.\n" -"exclude_symbols is used to exclude specific symbols. You can fill in the " -"symbol characters to be excluded (up to 16). \n" +"digit indicates whether it contains numbers, and symbol indicates whether it contains special symbols.\n" +"exclude_symbols is used to exclude specific symbols. You can fill in the symbol characters to be excluded (up to 16). \n" "If you do not need to exclude symbols, you can leave it blank.\n" -"default: {\"length\": 16, \"lowercase\": true, \"uppercase\": true, " -"\"digit\": true, \"symbol\": true, \"exclude_symbols\": \"\"}" +"default: {\"length\": 16, \"lowercase\": true, \"uppercase\": true, \"digit\": true, \"symbol\": true, \"exclude_symbols\": \"\"}" msgstr "" "length é o comprimento da senha, a faixa de preenchimento é de 8 a 30. " -"lowercase indica se a senha deve incluir letras minúsculas, uppercase indica " -"se deve incluir letras maiúsculas, digit indica se deve incluir números, " +"lowercase indica se a senha deve incluir letras minúsculas, uppercase indica" +" se deve incluir letras maiúsculas, digit indica se deve incluir números, " "symbol indica se deve incluir símbolos especiais. exclude_symbols é usado " "para excluir símbolos específicos, você pode preencher os caracteres do " -"símbolo que deseja excluir (no máximo 16), se não precisar excluir símbolos, " -"pode deixar em branco. Padrão: {\"length\": 16, \"lowercase\": true, " -"\"uppercase\": true, \"digit\": true, \"symbol\": true, \"exclude_symbols\": " -"\"\"}" +"símbolo que deseja excluir (no máximo 16), se não precisar excluir símbolos," +" pode deixar em branco. Padrão: {\"length\": 16, \"lowercase\": true, " +"\"uppercase\": true, \"digit\": true, \"symbol\": true, \"exclude_symbols\":" +" \"\"}" #: accounts/serializers/account/template.py:49 msgid "Secret generation strategy for account creation" @@ -1100,11 +1101,11 @@ msgstr "" "associada, usará os parâmetros padrão" #: accounts/serializers/account/virtual.py:19 assets/models/cmd_filter.py:40 -#: assets/models/cmd_filter.py:88 common/db/models.py:36 ops/models/adhoc.py:25 -#: ops/models/job.py:163 ops/models/playbook.py:31 rbac/models/role.py:37 -#: settings/models.py:40 terminal/models/applet/applet.py:46 -#: terminal/models/applet/applet.py:332 terminal/models/applet/host.py:143 -#: terminal/models/component/endpoint.py:27 +#: assets/models/cmd_filter.py:88 common/db/models.py:36 +#: ops/models/adhoc.py:25 ops/models/job.py:163 ops/models/playbook.py:31 +#: rbac/models/role.py:37 settings/models.py:40 +#: terminal/models/applet/applet.py:46 terminal/models/applet/applet.py:332 +#: terminal/models/applet/host.py:143 terminal/models/component/endpoint.py:27 #: terminal/models/component/endpoint.py:122 #: terminal/models/session/session.py:48 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 @@ -1188,12 +1189,9 @@ msgstr "Execução automática da conta" #: accounts/tasks/automation.py:35 msgid "" -"Unified execution entry for account automation tasks: when the system " -"performs tasks \n" -" such as account push, password change, account verification, account " -"collection, \n" -" and gateway account verification, all tasks are executed through " -"this unified entry" +"Unified execution entry for account automation tasks: when the system performs tasks \n" +" such as account push, password change, account verification, account collection, \n" +" and gateway account verification, all tasks are executed through this unified entry" msgstr "" "Entrada unificada para execução de tarefa automática de conta, quando o " "sistema executa o push de conta, troca de senha, verificação de conta, " @@ -1207,8 +1205,8 @@ msgstr "Registro de execução automática" #: accounts/tasks/automation.py:67 msgid "When manually executing password change records, this task is used" msgstr "" -"Quando o registro de alteração de senha é executado manualmente, é realizado " -"por meio desta tarefa" +"Quando o registro de alteração de senha é executado manualmente, é realizado" +" por meio desta tarefa" #: accounts/tasks/automation.py:96 msgid "Clean change secret and push record period" @@ -1217,33 +1215,26 @@ msgstr "" #: accounts/tasks/automation.py:98 msgid "" -"The system will periodically clean up unnecessary password change and push " -"records, \n" -" including their associated change tasks, execution logs, assets, and " -"accounts. When any \n" -" of these associated items are deleted, the corresponding password " -"change and push records \n" -" become invalid. Therefore, to maintain a clean and efficient " -"database, the system will \n" -" clean up expired records at 2 a.m daily, based on the interval " -"specified by \n" -" PERM_EXPIRED_CHECK_PERIODIC in the config.txt configuration file. " -"This periodic cleanup \n" -" mechanism helps free up storage space and enhances the security and " -"overall performance \n" +"The system will periodically clean up unnecessary password change and push records, \n" +" including their associated change tasks, execution logs, assets, and accounts. When any \n" +" of these associated items are deleted, the corresponding password change and push records \n" +" become invalid. Therefore, to maintain a clean and efficient database, the system will \n" +" clean up expired records at 2 a.m daily, based on the interval specified by \n" +" PERM_EXPIRED_CHECK_PERIODIC in the config.txt configuration file. This periodic cleanup \n" +" mechanism helps free up storage space and enhances the security and overall performance \n" " of data management" msgstr "" "O sistema irá limpar periodicamente os registros de alteração de senha e " -"registros de push que não são mais necessários, incluindo aquelas tarefas de " -"alteração de senha associadas, registros de execução, ativos e contas. " +"registros de push que não são mais necessários, incluindo aquelas tarefas de" +" alteração de senha associadas, registros de execução, ativos e contas. " "Quando qualquer um desses itens associados é excluído, o registro de " -"alteração de senha e push correspondente se tornará inválido. Portanto, para " -"manter a base de dados limpa e eficiente, a limpeza é realizada todos os " +"alteração de senha e push correspondente se tornará inválido. Portanto, para" +" manter a base de dados limpa e eficiente, a limpeza é realizada todos os " "dias às 2 da manhã para aqueles que excederam o intervalo de tempo no " "arquivo de configuração do sistema config.txt PERM_EXPIRED_CHECK_PERIODIC. " "Este mecanismo de limpeza regular não só ajuda a liberar espaço de " -"armazenamento, mas também melhora a segurança e o desempenho geral da gestão " -"de dados." +"armazenamento, mas também melhora a segurança e o desempenho geral da gestão" +" de dados." #: accounts/tasks/backup_account.py:26 msgid "Execute account backup plan" @@ -1273,13 +1264,12 @@ msgid "" "When creating or modifying an account requires account push, this task is " "executed" msgstr "" -"Essa tarefa é realizada quando uma conta é criada ou modificada e o envio da " -"conta é necessário" +"Essa tarefa é realizada quando uma conta é criada ou modificada e o envio da" +" conta é necessário" #: accounts/tasks/remove_account.py:28 msgid "" -"When clicking \"Sync deletion\" in 'Console - Gather Account - Gathered " -"accounts' this \n" +"When clicking \"Sync deletion\" in 'Console - Gather Account - Gathered accounts' this \n" " task will be executed" msgstr "" "Esta tarefa é executada quando você clica para sincronizar e deletar em " @@ -1292,17 +1282,14 @@ msgstr "Limpar contas históricas" #: accounts/tasks/remove_account.py:52 msgid "" -"Each time an asset account is updated, a historical account is generated, so " -"it is \n" -" necessary to clean up the asset account history. The system will " -"clean up excess account \n" -" records at 2 a.m. daily based on the configuration in the \"System " -"settings - Features - \n" +"Each time an asset account is updated, a historical account is generated, so it is \n" +" necessary to clean up the asset account history. The system will clean up excess account \n" +" records at 2 a.m. daily based on the configuration in the \"System settings - Features - \n" " Account storage - Record limit" msgstr "" "Como uma conta histórica é gerada toda vez que uma conta de ativo é " -"atualizada, é necessário limpar o histórico da conta do ativo. O sistema irá " -"limpar os registros de conta excedentes às 2 da manhã de acordo com a " +"atualizada, é necessário limpar o histórico da conta do ativo. O sistema irá" +" limpar os registros de conta excedentes às 2 da manhã de acordo com a " "configuração de limite de registro em Armazenamento de Conta " #: accounts/tasks/remove_account.py:89 @@ -1315,8 +1302,7 @@ msgstr "Sincronizar informações com as contas associadas" #: accounts/tasks/template.py:14 msgid "" -"When clicking 'Sync new secret to accounts' in 'Console - Account - " -"Templates - \n" +"When clicking 'Sync new secret to accounts' in 'Console - Account - Templates - \n" " Accounts' this task will be executed" msgstr "" "Esta tarefa é realizada quando você clica em sincronizar na Console - " @@ -1376,13 +1362,13 @@ msgid "" "Hello! The following is the failure of changing the password of your assets " "or pushing the account. Please check and handle it in time." msgstr "" -"Olá! Aqui estão os casos de falha ao alterar ou enviar a senha do ativo. Por " -"favor, verifique e corrija o mais rápido possível." +"Olá! Aqui estão os casos de falha ao alterar ou enviar a senha do ativo. Por" +" favor, verifique e corrija o mais rápido possível." #: accounts/utils.py:52 msgid "" -"If the password starts with {{` and ends with }} `, then the password is not " -"allowed." +"If the password starts with {{` and ends with }} `, then the password is not" +" allowed." msgstr "" "Se a senha começar com `{{` e terminar com `}}`, essa senha não é permitida." @@ -1436,8 +1422,8 @@ msgstr "Prioridade" #: terminal/models/component/endpoint.py:116 xpack/plugins/cloud/models.py:317 msgid "1-100, the lower the value will be match first" msgstr "" -"O intervalo da prioridade pode ser de 1 a 100 (quanto menor o valor, maior a " -"prioridade)" +"O intervalo da prioridade pode ser de 1 a 100 (quanto menor o valor, maior a" +" prioridade)" #: acls/models/base.py:42 assets/models/cmd_filter.py:86 #: authentication/serializers/connect_token_secret.py:91 @@ -1449,7 +1435,8 @@ msgstr "Aprovador" #: authentication/models/connection_token.py:54 #: authentication/models/ssh_key.py:13 #: authentication/templates/authentication/_access_key_modal.html:32 -#: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:28 +#: perms/models/asset_permission.py:82 +#: terminal/models/component/endpoint.py:28 #: terminal/models/component/endpoint.py:123 #: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44 #: tickets/const.py:36 @@ -1565,22 +1552,22 @@ msgid "" "support)" msgstr "" "* representa uma correspondência com tudo. Por exemplo: 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 " -"(suporte ao domínio) " +"192.168.1.0/24, 10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64" +" (suporte ao domínio) " #: acls/serializers/base.py:41 assets/serializers/asset/host.py:19 msgid "IP/Host" msgstr "IP/Host" -#: acls/serializers/base.py:91 +#: acls/serializers/base.py:98 msgid "Recipients" msgstr "Destinatário" -#: acls/serializers/base.py:103 tickets/serializers/ticket/ticket.py:77 +#: acls/serializers/base.py:110 tickets/serializers/ticket/ticket.py:77 msgid "The organization `{}` does not exist" msgstr "A organização `{}` não existe." -#: acls/serializers/base.py:109 +#: acls/serializers/base.py:116 msgid "None of the reviewers belong to Organization `{}`" msgstr "Todos os revisores não pertencem à organização `{}`" @@ -1623,8 +1610,8 @@ msgid "" "We would like to inform you that a user has recently logged into the " "following asset:" msgstr "" -"Queremos informá-lo de que os seguintes ativos tiveram recentemente usuários " -"logados:" +"Queremos informá-lo de que os seguintes ativos tiveram recentemente usuários" +" logados:" #: acls/templates/acls/asset_login_reminder.html:6 msgid "Asset details" @@ -1706,7 +1693,8 @@ msgstr "{} foi desativado" #: assets/automations/base/manager.py:251 msgid " - Platform {} ansible disabled" -msgstr " - Plataforma {} Ansible foi desabilitada, impossível executar tarefas" +msgstr "" +" - Plataforma {} Ansible foi desabilitada, impossível executar tarefas" #: assets/automations/base/manager.py:324 msgid ">>> Task preparation phase" @@ -1800,7 +1788,7 @@ msgstr "Script" #: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:76 #: settings/serializers/feature.py:80 settings/serializers/feature.py:93 #: settings/serializers/msg.py:30 terminal/models/component/endpoint.py:14 -#: terminal/serializers/applet.py:17 xpack/plugins/cloud/manager.py:89 +#: terminal/serializers/applet.py:17 xpack/plugins/cloud/manager.py:92 #: xpack/plugins/cloud/serializers/account_attrs.py:72 msgid "Host" msgstr "Host" @@ -1889,8 +1877,8 @@ msgid "" "
- ${USER} The username of the user" msgstr "" "Diretório raiz do SFTP, suporta variáveis:
-${ACCOUNT} nome de usuário " -"da conta conectada
-${HOME} diretório principal da conta conectada
-" -"${USER} nome de usuário do usuário" +"da conta conectada
-${HOME} diretório principal da conta conectada " +"
-${USER} nome de usuário do usuário" #: assets/const/protocol.py:81 msgid "Console" @@ -1911,8 +1899,8 @@ msgstr "Segurança" #: assets/const/protocol.py:89 msgid "" -"Security layer to use for the connection:
Any
Automatically select the " -"security mode based on the security protocols supported by both the client " +"Security layer to use for the connection:
Any
Automatically select the" +" security mode based on the security protocols supported by both the client " "and the server
RDP
Legacy RDP encryption. This mode is generally only " "used for older Windows servers or in cases where a standard Windows login " "screen is desired
TLS
RDP authentication and encryption implemented " @@ -1921,11 +1909,11 @@ msgid "" msgstr "" "Camadas de segurança da conexão:
Qualquer
Escolhe automaticamente o " "modo seguro baseado nos protocolos de segurança suportados pelo cliente e " -"pelo servidor
RDP
Modo de criptografia tradicional do RDP. Normalmente " -"usado apenas para servidores Windows mais antigos ou quando é necessário uma " -"tela de login padrão do Windows
TLS
Autenticação e criptografia do RDP " -"implementada através do TLS
NLA
Este modo utiliza a criptografia TLS e " -"exige que o nome de usuário e a senha sejam fornecidos antecipadamente" +"pelo servidor
RDP
Modo de criptografia tradicional do RDP. Normalmente" +" usado apenas para servidores Windows mais antigos ou quando é necessário " +"uma tela de login padrão do Windows
TLS
Autenticação e criptografia do" +" RDP implementada através do TLS
NLA
Este modo utiliza a criptografia " +"TLS e exige que o nome de usuário e a senha sejam fornecidos antecipadamente" #: assets/const/protocol.py:106 msgid "AD domain" @@ -1988,7 +1976,8 @@ msgstr "Opções de conexão" #: assets/const/protocol.py:233 msgid "The connection specific options eg. retryWrites=false&retryReads=false" -msgstr "Opções de conexão específicas, como retryWrites=false&retryReads=false" +msgstr "" +"Opções de conexão específicas, como retryWrites=false&retryReads=false" #: assets/const/protocol.py:245 msgid "Auth username" @@ -2003,8 +1992,9 @@ msgid "" "When safe mode is enabled, some operations will be disabled, such as: New " "tab, right click, visit other website, etc." msgstr "" -"Quando o modo de segurança estiver ativo, algumas ações serão desabilitadas, " -"como: abrir novas abas, clicar com o botão direito, acessar outros sites etc" +"Quando o modo de segurança estiver ativo, algumas ações serão desabilitadas," +" como: abrir novas abas, clicar com o botão direito, acessar outros sites " +"etc" #: assets/const/protocol.py:275 assets/models/asset/web.py:9 #: assets/serializers/asset/info/spec.py:16 @@ -2490,21 +2480,15 @@ msgstr "" #: assets/serializers/asset/database.py:24 msgid "Postgresql ssl model help text" msgstr "" -"Preferir: eu não me importo com criptografia, mas se o servidor suportar, " -"estou disposto a pagar o custo.\n" -"Exigir: eu quero que meus dados sejam criptografados, aceito o custo. Eu " -"confio que a rede garantirá que estou sempre conectado ao servidor que " -"quero.\n" -"Verificar CA: Eu quero que meus dados sejam criptografados, eu assumo o " -"custo. Eu quero garantir que estou conectado a um servidor de confiança.\n" -"Verificar Completo: eu quero que meus dados sejam criptografados, estou " -"disposto a assumir o custo. Eu quero ter certeza de que estou conectado a um " -"servidor confiável, e que é o servidor que eu especifico." +"Preferir: eu não me importo com criptografia, mas se o servidor suportar, estou disposto a pagar o custo.\n" +"Exigir: eu quero que meus dados sejam criptografados, aceito o custo. Eu confio que a rede garantirá que estou sempre conectado ao servidor que quero.\n" +"Verificar CA: Eu quero que meus dados sejam criptografados, eu assumo o custo. Eu quero garantir que estou conectado a um servidor de confiança.\n" +"Verificar Completo: eu quero que meus dados sejam criptografados, estou disposto a assumir o custo. Eu quero ter certeza de que estou conectado a um servidor confiável, e que é o servidor que eu especifico." #: assets/serializers/asset/gpt.py:20 msgid "" -"If the server cannot directly connect to the API address, you need set up an " -"HTTP proxy. e.g. http(s)://host:port" +"If the server cannot directly connect to the API address, you need set up an" +" HTTP proxy. e.g. http(s)://host:port" msgstr "" "Se o servidor não pode acessar diretamente o endereço da API, você precisa " "configurar um proxy HTTP. por exemplo http(s)://host:port" @@ -2729,8 +2713,7 @@ msgstr "Coleta de informações de ativos" #: assets/tasks/gather_facts.py:25 msgid "" -"When clicking 'Refresh hardware info' in 'Console - Asset Details - Basic' " -"this task \n" +"When clicking 'Refresh hardware info' in 'Console - Asset Details - Basic' this task \n" " will be executed" msgstr "" "Quando clicar para atualizar as informações de hardware na página de " @@ -2750,10 +2733,8 @@ msgstr "Verificar a quantidade de ativos sob o nó" #: assets/tasks/nodes_amount.py:18 msgid "" -"Manually verifying asset quantities updates the asset count for nodes under " -"the \n" -" current organization. This task will be called in the following two " -"cases: when updating \n" +"Manually verifying asset quantities updates the asset count for nodes under the \n" +" current organization. This task will be called in the following two cases: when updating \n" " nodes and when the number of nodes exceeds 100" msgstr "" "Ajuste manual do número de ativos para atualizar o número de ativos do nó " @@ -2762,7 +2743,8 @@ msgstr "" #: assets/tasks/nodes_amount.py:34 msgid "" -"The task of self-checking is already running and cannot be started repeatedly" +"The task of self-checking is already running and cannot be started " +"repeatedly" msgstr "" "O programa de auto-inspeção já está rodando, não pode ser reinicializado" @@ -2772,8 +2754,7 @@ msgstr "Verificação periódica da quantidade de ativos sob o nó" #: assets/tasks/nodes_amount.py:42 msgid "" -"Schedule the check_node_assets_amount_task to periodically update the asset " -"count of \n" +"Schedule the check_node_assets_amount_task to periodically update the asset count of \n" " all nodes under all organizations" msgstr "" "Convocação regular do Action check_node_assets_amount_task, atualização da " @@ -2802,8 +2783,8 @@ msgstr "Testar a conectividade do gateway" #: assets/tasks/ping_gateway.py:23 msgid "" -"When clicking 'Test Connection' in 'Domain Details - Gateway' this task will " -"be executed" +"When clicking 'Test Connection' in 'Domain Details - Gateway' this task will" +" be executed" msgstr "" "Quando esta Action é executada no detalhe do domínio de rede - gateway - " "teste de conexão" @@ -2829,7 +2810,8 @@ msgid "App Audits" msgstr "Auditoria de Logs" #: audits/backends/db.py:17 -msgid "The text content is too long. Use Elasticsearch to store operation logs" +msgid "" +"The text content is too long. Use Elasticsearch to store operation logs" msgstr "" "O conteúdo do texto é muito longo. Por favor, use o Elasticsearch para " "armazenar logs de ação" @@ -2885,7 +2867,7 @@ msgstr "Mapeamento de Diretórios" #: audits/const.py:23 rbac/tree.py:268 terminal/api/session/session.py:284 #: terminal/templates/terminal/_msg_command_warning.html:18 #: terminal/templates/terminal/_msg_session_sharing.html:10 -#: xpack/plugins/cloud/manager.py:90 +#: xpack/plugins/cloud/manager.py:93 msgid "View" msgstr "Visualizar" @@ -2932,8 +2914,8 @@ msgstr "Terminar" #: audits/const.py:46 settings/serializers/terminal.py:6 #: terminal/models/applet/host.py:26 terminal/models/component/terminal.py:182 -#: terminal/models/virtualapp/provider.py:14 terminal/serializers/session.py:57 -#: terminal/serializers/session.py:113 +#: terminal/models/virtualapp/provider.py:14 +#: terminal/serializers/session.py:57 terminal/serializers/session.py:113 msgid "Terminal" msgstr "Terminal" @@ -2972,7 +2954,8 @@ msgid "Job audit log" msgstr "Logs de auditoria de tarefas" #: audits/models.py:56 audits/models.py:100 audits/models.py:175 -#: terminal/models/session/session.py:40 terminal/models/session/sharing.py:113 +#: terminal/models/session/session.py:40 +#: terminal/models/session/sharing.py:113 msgid "Remote addr" msgstr "Endereço remoto" @@ -3093,7 +3076,7 @@ msgid "Creator" msgstr "Criador" #: audits/serializers.py:39 ops/models/base.py:52 ops/models/job.py:240 -#: xpack/plugins/cloud/manager.py:99 +#: xpack/plugins/cloud/manager.py:102 msgid "Summary" msgstr "Resumo" @@ -3194,12 +3177,9 @@ msgstr "Limpar logs de tarefas de auditoria de ativos" #: audits/tasks.py:134 msgid "" -"Since the system generates login logs, operation logs, file upload logs, " -"activity \n" -" logs, Celery execution logs, session recordings, command records, " -"and password change \n" -" logs, it will perform cleanup of records that exceed the time limit " -"according to the \n" +"Since the system generates login logs, operation logs, file upload logs, activity \n" +" logs, Celery execution logs, session recordings, command records, and password change \n" +" logs, it will perform cleanup of records that exceed the time limit according to the \n" " 'Tasks - Regular clean-up' in the system settings at 2 a.m daily" msgstr "" "Devido ao sistema gerar logs de entrada, logs de operações, logs de upload " @@ -3215,12 +3195,12 @@ msgstr "Upload de arquivos FTP para armazenamento externo" #: audits/tasks.py:156 msgid "" -"If SERVER_REPLAY_STORAGE is configured, files uploaded through file " -"management will be \n" +"If SERVER_REPLAY_STORAGE is configured, files uploaded through file management will be \n" " synchronized to external storage" msgstr "" -"Se SERVER_REPLAY_STORAGE estiver configurado, os arquivos carregados através " -"do gerenciamento de arquivos serão sincronizados com o armazenamento externo" +"Se SERVER_REPLAY_STORAGE estiver configurado, os arquivos carregados através" +" do gerenciamento de arquivos serão sincronizados com o armazenamento " +"externo" #: authentication/api/access_key.py:39 msgid "Access keys can be created at most 10" @@ -3280,7 +3260,7 @@ msgid "No available face feature" msgstr "Não há características faciais disponíveis" #: authentication/api/face.py:100 authentication/mfa/face.py:21 -#: authentication/mfa/face.py:23 +#: authentication/mfa/face.py:23 users/views/profile/face.py:72 msgid "Facial comparison failed" msgstr "Falha na comparação facial" @@ -3371,7 +3351,8 @@ msgstr "Adicional" #: authentication/backends/passkey/models.py:14 #: authentication/models/access_key.py:26 -#: authentication/models/private_token.py:8 authentication/models/ssh_key.py:20 +#: authentication/models/private_token.py:8 +#: authentication/models/ssh_key.py:20 msgid "Date last used" msgstr "Data do último uso" @@ -3473,8 +3454,8 @@ msgstr "" #: authentication/errors/const.py:59 #, python-brace-format msgid "" -"{error}, You can also try {times_try} times (The account will be temporarily " -"locked for {block_time} minutes)" +"{error}, You can also try {times_try} times (The account will be temporarily" +" locked for {block_time} minutes)" msgstr "" "{error}, você ainda pode tentar {times_try} vezes (a conta será bloqueada " "temporariamente por {block_time} minutos) " @@ -3611,11 +3592,11 @@ msgstr "MFA personalizado ativado globalmente, não pode ser desativado" msgid "Face Recognition" msgstr "Reconhecimento facial" -#: authentication/mfa/face.py:54 +#: authentication/mfa/face.py:55 msgid "Bind face to enable" msgstr "Vincule características faciais para habilitar" -#: authentication/mfa/face.py:58 +#: authentication/mfa/face.py:59 msgid "Unbind face to disable" msgstr "Desvincule características faciais para desabilitar" @@ -3687,8 +3668,8 @@ msgid "" "The administrator has enabled 'Only allow login from user source'. \n" " The current user source is {}. Please contact the administrator." msgstr "" -"O administrador ativou 'Apenas login a partir da fonte do usuário', a origem " -"do usuário atual é {}, por favor, contate o administrador." +"O administrador ativou 'Apenas login a partir da fonte do usuário', a origem" +" do usuário atual é {}, por favor, contate o administrador." #: authentication/mixins.py:273 msgid "The MFA type ({}) is not enabled" @@ -3794,13 +3775,13 @@ msgstr "Token privado" #: authentication/models/ssh_key.py:15 terminal/serializers/storage.py:146 #: users/models/user/__init__.py:93 -#: xpack/plugins/cloud/serializers/account_attrs.py:213 +#: xpack/plugins/cloud/serializers/account_attrs.py:214 msgid "Private key" msgstr "Chave privada ssh" #: authentication/models/ssh_key.py:18 settings/serializers/terminal.py:34 #: users/forms/profile.py:175 users/models/user/__init__.py:96 -#: xpack/plugins/cloud/serializers/account_attrs.py:210 +#: xpack/plugins/cloud/serializers/account_attrs.py:211 msgid "Public key" msgstr "Chave pública SSH" @@ -3906,11 +3887,11 @@ msgstr "Tipo de Criação" #: authentication/serializers/ssh_key.py:33 msgid "" -"Please download the private key after creation. Each private key can only be " -"downloaded once" +"Please download the private key after creation. Each private key can only be" +" downloaded once" msgstr "" -"Após a criação, faça o download da chave privada, cada chave privada só pode " -"ser baixada uma vez" +"Após a criação, faça o download da chave privada, cada chave privada só pode" +" ser baixada uma vez" #: authentication/serializers/ssh_key.py:57 users/forms/profile.py:164 #: users/serializers/profile.py:134 users/serializers/profile.py:161 @@ -3933,8 +3914,8 @@ msgstr "Limpar sessões expiradas" #: authentication/tasks.py:15 msgid "" -"Since user logins create sessions, the system will clean up expired sessions " -"every 24 hours" +"Since user logins create sessions, the system will clean up expired sessions" +" every 24 hours" msgstr "" "Como as sessões são geradas quando os usuários acessam o sistema, ele limpa " "as sessões expiradas a cada 24 horas" @@ -3946,8 +3927,8 @@ msgstr "Lista de chaves API" #: authentication/templates/authentication/_access_key_modal.html:18 msgid "Using api key sign api header, every requests header difference" msgstr "" -"Use a chave API para assinar o cabeçalho do pedido, cada cabeçalho de pedido " -"é diferente" +"Use a chave API para assinar o cabeçalho do pedido, cada cabeçalho de pedido" +" é diferente" #: authentication/templates/authentication/_access_key_modal.html:19 msgid "docs" @@ -4085,8 +4066,8 @@ msgid "" "If the password update was not initiated by you, your account may have " "security issues" msgstr "" -"Se essa atualização de senha não foi iniciada por você, sua conta pode estar " -"com problemas de segurança" +"Se essa atualização de senha não foi iniciada por você, sua conta pode estar" +" com problemas de segurança" #: authentication/templates/authentication/_msg_rest_password_success.html:13 #: authentication/templates/authentication/_msg_rest_public_key_success.html:13 @@ -4149,8 +4130,8 @@ msgstr "Próximo passo" #: authentication/templates/authentication/login_mfa.html:22 msgid "Can't provide security? Please contact the administrator!" msgstr "" -"Se você não puder fornecer o código de verificação MFA, entre em contato com " -"o administrador!" +"Se você não puder fornecer o código de verificação MFA, entre em contato com" +" o administrador!" #: authentication/templates/authentication/login_wait_confirm.html:41 msgid "Refresh" @@ -4173,8 +4154,8 @@ msgid "" "This page is not served over HTTPS. Please use HTTPS to ensure security of " "your credentials." msgstr "" -"Esta página não usa o protocolo HTTPS, por favor, use o protocolo HTTPS para " -"garantir a segurança de suas credenciais." +"Esta página não usa o protocolo HTTPS, por favor, use o protocolo HTTPS para" +" garantir a segurança de suas credenciais." #: authentication/templates/authentication/passkey.html:173 msgid "Do you want to retry ?" @@ -4276,39 +4257,38 @@ msgstr "Redirecionando" msgid "Redirecting to {} authentication" msgstr "Redirecionando para a autenticação {}" -#: authentication/views/login.py:243 +#: authentication/views/login.py:247 msgid "Login timeout, please try again." msgstr "Tempo de login expirou, por favor, faça o login novamente" -#: authentication/views/login.py:288 +#: authentication/views/login.py:292 msgid "User email already exists ({})" msgstr "O e-mail do usuário já existe ({})" -#: authentication/views/login.py:366 +#: authentication/views/login.py:370 msgid "" "Wait for {} confirm, You also can copy link to her/him
\n" " Don't close this page" msgstr "" -"Esperando pela confirmação de {}, você também pode copiar e enviar o " -"link para ele/ela
\n" +"Esperando pela confirmação de {}, você também pode copiar e enviar o link para ele/ela
\n" "Não feche esta página" -#: authentication/views/login.py:371 +#: authentication/views/login.py:375 msgid "No ticket found" msgstr "Nenhum ticket de suporte foi encontrado" -#: authentication/views/login.py:407 +#: authentication/views/login.py:411 msgid "Logout success" msgstr "Logout bem-sucedido" -#: authentication/views/login.py:408 +#: authentication/views/login.py:412 msgid "Logout success, return login page" msgstr "Logout bem-sucedido, voltar para a página de login" #: authentication/views/mixins.py:39 msgid "" -"For your safety, automatic redirection login is not supported on the client. " -"If you need to open it in the client, please log in again" +"For your safety, automatic redirection login is not supported on the client." +" If you need to open it in the client, please log in again" msgstr "" "Para sua segurança, o cliente não suporta login automático. Se precisar " "abrir no cliente, faça login novamente" @@ -4394,7 +4374,7 @@ msgstr "Versão Profissional Empresarial" msgid "Ultimate edition" msgstr "Versão Premium Empresarial" -#: common/const/common.py:5 xpack/plugins/cloud/manager.py:417 +#: common/const/common.py:5 xpack/plugins/cloud/manager.py:424 #, python-format msgid "%(name)s was created successfully" msgstr "%(name)s criado com sucesso" @@ -4438,8 +4418,8 @@ msgstr "Campos criptografados" #: common/db/fields.py:577 msgid "" -"Invalid JSON data for JSONManyToManyField, should be like {'type': 'all'} or " -"{'type': 'ids', 'ids': []} or {'type': 'attrs', 'attrs': [{'name': 'ip', " +"Invalid JSON data for JSONManyToManyField, should be like {'type': 'all'} or" +" {'type': 'ids', 'ids': []} or {'type': 'attrs', 'attrs': [{'name': 'ip', " "'match': 'exact', 'value': '1.1.1.1'}}" msgstr "" "JSON campos muitos para muitos inválidos, deve ser {'type': 'all'} ou " @@ -4458,8 +4438,8 @@ msgstr "ID inválido, deve ser uma lista" #: common/serializers/fields.py:144 terminal/serializers/session.py:81 #: tickets/serializers/ticket/common.py:58 #: xpack/plugins/cloud/serializers/account_attrs.py:56 -#: xpack/plugins/cloud/serializers/account_attrs.py:79 -#: xpack/plugins/cloud/serializers/account_attrs.py:150 +#: xpack/plugins/cloud/serializers/account_attrs.py:80 +#: xpack/plugins/cloud/serializers/account_attrs.py:151 msgid "This field is required." msgstr "Este campo é obrigatório." @@ -4532,8 +4512,8 @@ msgid "" "Choices, format name(value), name is optional for human read, value is " "requisite, options {}" msgstr "" -"Opções, formato: nome(valor), o nome é opcional, para facilidade de leitura, " -"o valor é obrigatório, as opções disponíveis são {}" +"Opções, formato: nome(valor), o nome é opcional, para facilidade de leitura," +" o valor é obrigatório, as opções disponíveis são {}" #: common/drf/renders/base.py:157 msgid "Choices, options {}" @@ -4563,12 +4543,11 @@ msgid "" "Objects, format [\"name(id)\", ...], name is optional for human read, id is " "requisite" msgstr "" -"Múltiplos itens associados, formato: [\"nome(id)\", ...], o nome é opcional, " -"para facilidade de leitura, o id é obrigatório" +"Múltiplos itens associados, formato: [\"nome(id)\", ...], o nome é opcional," +" para facilidade de leitura, o id é obrigatório" #: common/drf/renders/base.py:171 -msgid "" -"Labels, format [\"key:value\", ...], if label not exists, will create it" +msgid "Labels, format [\"key:value\", ...], if label not exists, will create it" msgstr "" "Etiquetas, formato: [\"chave: valor\", ...], se a etiqueta não existir, ela " "será criada" @@ -4753,13 +4732,11 @@ msgstr "Anexo do email" #: common/tasks.py:68 msgid "" -"When an account password is changed or an account backup generates " -"attachments, \n" -" this task needs to be executed for sending emails and handling " -"attachments" +"When an account password is changed or an account backup generates attachments, \n" +" this task needs to be executed for sending emails and handling attachments" msgstr "" -"Ação a ser realizada ao enviar email e anexos, quando a senha é alterada e o " -"backup de conta gera anexos" +"Ação a ser realizada ao enviar email e anexos, quando a senha é alterada e o" +" backup de conta gera anexos" #: common/tasks.py:94 msgid "Upload account backup to external storage" @@ -4792,8 +4769,7 @@ msgstr "Enviar código de verificação por SMS" #: common/utils/verify_code.py:19 msgid "" -"When resetting a password, forgetting a password, or verifying MFA, this " -"task needs to \n" +"When resetting a password, forgetting a password, or verifying MFA, this task needs to \n" " be executed to send SMS messages" msgstr "" "Execute esta tarefa quando precisar enviar um SMS para redefinir a senha, " @@ -4930,8 +4906,7 @@ msgstr "Publicar mensagem interna" #: notifications/notifications.py:48 msgid "" -"This task needs to be executed for sending internal messages for system " -"alerts, \n" +"This task needs to be executed for sending internal messages for system alerts, \n" " work orders, and other notifications" msgstr "" "Algumas alertas do sistema, ordens de serviço e outras necessidades são " @@ -5168,12 +5143,14 @@ msgid "Periodic run" msgstr "Execução periódica" #: ops/mixin.py:32 ops/mixin.py:96 ops/mixin.py:116 -#: settings/serializers/auth/ldap.py:80 settings/serializers/auth/ldap_ha.py:62 +#: settings/serializers/auth/ldap.py:80 +#: settings/serializers/auth/ldap_ha.py:62 msgid "Interval" msgstr "Intervalo" #: ops/mixin.py:35 ops/mixin.py:94 ops/mixin.py:113 -#: settings/serializers/auth/ldap.py:77 settings/serializers/auth/ldap_ha.py:59 +#: settings/serializers/auth/ldap.py:77 +#: settings/serializers/auth/ldap_ha.py:59 msgid "Crontab" msgstr "Crontab" @@ -5206,9 +5183,10 @@ msgstr "Módulo" msgid "Args" msgstr "Conteúdo" -#: ops/models/adhoc.py:26 ops/models/playbook.py:34 ops/serializers/mixin.py:10 -#: rbac/models/role.py:31 rbac/models/rolebinding.py:46 -#: rbac/serializers/role.py:12 settings/serializers/auth/oauth2.py:37 +#: ops/models/adhoc.py:26 ops/models/playbook.py:34 +#: ops/serializers/mixin.py:10 rbac/models/role.py:31 +#: rbac/models/rolebinding.py:46 rbac/serializers/role.py:12 +#: settings/serializers/auth/oauth2.py:37 msgid "Scope" msgstr "Alcance" @@ -5312,13 +5290,15 @@ msgstr "Nome da variável" #: ops/models/variable.py:12 ops/serializers/variable.py:23 msgid "" -"The variable name used in the script has a fixed prefix 'jms_' followed by " -"the input variable name. For example, if the variable name is 'name,' the " -"final generated environment variable will be 'jms_name'." +"The variable name used in the script will have a fixed prefix jms_ added to " +"the input variable name. For example, if the input variable name is name, " +"the resulting environment variable will be jms_name, and it can be " +"referenced in the script using {{ jms_name }}" msgstr "" -"O nome da variável usada no script, prefixo fixo jms_ + nome da variável " -"inserida, por exemplo, se o nome da variável for nome, então a variável de " -"ambiente final será jms_name" +"No nome das variáveis usadas no script, fixe o prefixo jms_ + o nome da " +"variável de entrada. Por exemplo, se o nome da variável for name, a variável" +" de ambiente gerada será jms_name. Ao referenciar no script, utilize {{ " +"jms_name }}." #: ops/models/variable.py:16 ops/serializers/variable.py:31 msgid "Default Value" @@ -5406,11 +5386,11 @@ msgstr "" "Uma linha para cada item, cada linha pode ser separada por dois pontos em " "inglês, o conteúdo exibido está à frente e o valor está atrás" -#: ops/tasks.py:53 +#: ops/tasks.py:54 msgid "Run ansible task" msgstr "Executando Tarefa Ansible" -#: ops/tasks.py:56 +#: ops/tasks.py:57 msgid "" "Execute scheduled adhoc and playbooks, periodically invoking the task for " "execution" @@ -5428,83 +5408,73 @@ msgstr "" "Execute manualmente os comandos rápidos, a tarefa é executada durante o " "playbook" -#: ops/tasks.py:107 +#: ops/tasks.py:106 msgid "Clear celery periodic tasks" msgstr "Limpar Tarefas Periódicas" -#: ops/tasks.py:109 +#: ops/tasks.py:108 msgid "At system startup, clean up celery tasks that no longer exist" msgstr "" "Quando o sistema é iniciado, limpa as tarefas celery que não existem mais" -#: ops/tasks.py:133 +#: ops/tasks.py:132 msgid "Create or update periodic tasks" msgstr "Criar ou Atualizar Tarefas Periódicas" -#: ops/tasks.py:135 +#: ops/tasks.py:134 msgid "" -"With version iterations, new tasks may be added, or task names and execution " -"times may \n" -" be modified. Therefore, upon system startup, tasks will be " -"registered or the parameters \n" +"With version iterations, new tasks may be added, or task names and execution times may \n" +" be modified. Therefore, upon system startup, tasks will be registered or the parameters \n" " of scheduled tasks will be updated" msgstr "" -"Com a progressão da versão, novas tarefas podem ser adicionadas ou o nome da " -"tarefa, o tempo de execução podem ser alterados, então quando o sistema é " +"Com a progressão da versão, novas tarefas podem ser adicionadas ou o nome da" +" tarefa, o tempo de execução podem ser alterados, então quando o sistema é " "iniciado, ele registra ou atualiza os parâmetros da tarefa cron" -#: ops/tasks.py:148 +#: ops/tasks.py:147 msgid "Periodic check service performance" msgstr "Verificação Periódica do Desempenho do Serviço" -#: ops/tasks.py:150 +#: ops/tasks.py:149 msgid "" -"Check every hour whether each component is offline and whether the CPU, " -"memory, \n" -" and disk usage exceed the thresholds, and send an alert message to " -"the administrator" +"Check every hour whether each component is offline and whether the CPU, memory, \n" +" and disk usage exceed the thresholds, and send an alert message to the administrator" msgstr "" "Verifique se cada componente está offline a cada hora, cpu, memória, se a " -"taxa de uso do disco rígido ultrapassa o limite, e envie mensagens de alerta " -"para o administrador" +"taxa de uso do disco rígido ultrapassa o limite, e envie mensagens de alerta" +" para o administrador" -#: ops/tasks.py:160 +#: ops/tasks.py:159 msgid "Clean up unexpected jobs" msgstr "Limpar Atividades Anômalas" -#: ops/tasks.py:162 +#: ops/tasks.py:161 msgid "" -"Due to exceptions caused by executing adhoc and playbooks in the Job " -"Center, \n" -" which result in the task status not being updated, the system will " -"clean up abnormal jobs \n" -" that have not been completed for more than 3 hours every hour and " -"mark these tasks as \n" +"Due to exceptions caused by executing adhoc and playbooks in the Job Center, \n" +" which result in the task status not being updated, the system will clean up abnormal jobs \n" +" that have not been completed for more than 3 hours every hour and mark these tasks as \n" " failed" msgstr "" "Devido ao centro de Atividade executando comandos rápidos, a execução do " "playbook pode causar anomalias, o status da tarefa não foi atualizado, o " -"sistema limpa a cada hora as Atividades anômalas que não foram concluídas em " -"mais de 3 horas e marca a tarefa como falha." +"sistema limpa a cada hora as Atividades anômalas que não foram concluídas em" +" mais de 3 horas e marca a tarefa como falha." -#: ops/tasks.py:175 +#: ops/tasks.py:174 msgid "Clean job_execution db record" msgstr "Limpeza do histórico de execução do Centro de Ação " -#: ops/tasks.py:177 +#: ops/tasks.py:176 msgid "" -"Due to the execution of adhoc and playbooks in the Job Center, execution " -"records will \n" -" be generated. The system will clean up records that exceed the " -"retention period every day \n" -" at 2 a.m., based on the configuration of 'System Settings - Tasks - " -"Regular clean-up - \n" +"Due to the execution of adhoc and playbooks in the Job Center, execution records will \n" +" be generated. The system will clean up records that exceed the retention period every day \n" +" at 2 a.m., based on the configuration of 'System Settings - Tasks - Regular clean-up - \n" " Job execution retention days'" msgstr "" " Devido ao Centro de Ação executar comandos rápidos, playbook, registros de " "execução serão gerados, o sistema realizará a limpeza dos registros que " -"excedem o tempo de armazenamento todos os dias às 2h da manhã, de acordo com " -"a configuração do sistema - Lista de tarefas - Limpeza regular - " +"excedem o tempo de armazenamento todos os dias às 2h da manhã, de acordo com" +" a configuração do sistema - Lista de tarefas - Limpeza regular - " "Configuração do histórico de execução do Centro de Ação " #: ops/templates/ops/celery_task_log.html:4 @@ -5576,7 +5546,8 @@ msgstr "Por favor, selecione uma organização antes de salvar" #: rbac/serializers/rolebinding.py:44 settings/serializers/auth/base.py:53 #: terminal/templates/terminal/_msg_command_warning.html:21 #: terminal/templates/terminal/_msg_session_sharing.html:14 -#: tickets/models/ticket/general.py:303 tickets/serializers/ticket/ticket.py:60 +#: tickets/models/ticket/general.py:303 +#: tickets/serializers/ticket/ticket.py:60 msgid "Organization" msgstr "Organização" @@ -5761,19 +5732,15 @@ msgstr "A verificação da regra de autorização de ativos expirou" #: perms/tasks.py:30 msgid "" -"The cache of organizational collections, which have completed user " -"authorization tree \n" -" construction, will expire. Therefore, expired collections need to be " -"cleared from the \n" -" cache, and this task will be executed periodically based on the time " -"interval specified \n" -" by PERM_EXPIRED_CHECK_PERIODIC in the system configuration file " -"config.txt" +"The cache of organizational collections, which have completed user authorization tree \n" +" construction, will expire. Therefore, expired collections need to be cleared from the \n" +" cache, and this task will be executed periodically based on the time interval specified \n" +" by PERM_EXPIRED_CHECK_PERIODIC in the system configuration file config.txt" msgstr "" "O cache do conjunto de organizações já construído na árvore de autorização " -"do usuário expirará, então é necessário limpar o conjunto expirado do cache, " -"de acordo com o intervalo de tempo PERM_EXPIRED_CHECK_PERIODIC no arquivo de " -"configuração do sistema config.txt, execute esta tarefa regularmente" +"do usuário expirará, então é necessário limpar o conjunto expirado do cache," +" de acordo com o intervalo de tempo PERM_EXPIRED_CHECK_PERIODIC no arquivo " +"de configuração do sistema config.txt, execute esta tarefa regularmente" #: perms/tasks.py:49 msgid "Send asset permission expired notification" @@ -5781,17 +5748,14 @@ msgstr "Enviar notificações de expiração de permissões de ativos" #: perms/tasks.py:51 msgid "" -"Check every day at 10 a.m. and send a notification message to users " -"associated with \n" -" assets whose authorization is about to expire, as well as to the " -"organization's \n" -" administrators, 3 days in advance, to remind them that the asset " -"authorization will \n" +"Check every day at 10 a.m. and send a notification message to users associated with \n" +" assets whose authorization is about to expire, as well as to the organization's \n" +" administrators, 3 days in advance, to remind them that the asset authorization will \n" " expire in a few days" msgstr "" "Verifique às 10 horas da manhã todos os dias, envie uma mensagem para os " -"usuários e o administrador da organização associados à autorização de ativos " -"que está para expirar em três dias, informando quantos dias o ativo irá " +"usuários e o administrador da organização associados à autorização de ativos" +" que está para expirar em três dias, informando quantos dias o ativo irá " "expirar" #: perms/templates/perms/_msg_item_permissions_expire.html:7 @@ -5912,8 +5876,8 @@ msgid "" "User last role in org, can not be delete, you can remove user from org " "instead" msgstr "" -"O último papel do usuário não pode ser excluído, você pode remover o usuário " -"da organização" +"O último papel do usuário não pode ser excluído, você pode remover o usuário" +" da organização" #: rbac/models/rolebinding.py:200 msgid "Organization role binding" @@ -5955,7 +5919,7 @@ msgstr "Configurações do sistema" msgid "Session audits" msgstr "Auditoria de sessão" -#: rbac/tree.py:49 xpack/plugins/cloud/manager.py:90 +#: rbac/tree.py:49 xpack/plugins/cloud/manager.py:93 msgid "Cloud import" msgstr "Sincronização em nuvem" @@ -5998,7 +5962,7 @@ msgid "Appearance" msgstr "Interface" #: rbac/tree.py:65 xpack/plugins/license/meta.py:10 -#: xpack/plugins/license/models.py:151 +#: xpack/plugins/license/models.py:153 msgid "License" msgstr "Licença" @@ -6206,9 +6170,9 @@ msgid "" "suffix" msgstr "" "Após a autenticação bem-sucedida do usuário por terceiros, se a plataforma " -"de serviço de autenticação de terceiros não retornar as informações de e-" -"mail do usuário, o sistema criará automaticamente o usuário com este sufixo " -"de e-mail" +"de serviço de autenticação de terceiros não retornar as informações de " +"e-mail do usuário, o sistema criará automaticamente o usuário com este " +"sufixo de e-mail" #: settings/serializers/auth/base.py:37 msgid "Forgot Password URL" @@ -6245,7 +6209,8 @@ msgid "CAS" msgstr "CAS" #: settings/serializers/auth/cas.py:15 settings/serializers/auth/ldap.py:44 -#: settings/serializers/auth/ldap_ha.py:26 settings/serializers/auth/oidc.py:61 +#: settings/serializers/auth/ldap_ha.py:26 +#: settings/serializers/auth/oidc.py:61 msgid "Server" msgstr "Endereço do servidor" @@ -6260,7 +6225,8 @@ msgstr "Sincronizar logout" #: settings/serializers/auth/cas.py:22 msgid "When the user signs out, they also be logged out from the CAS server" -msgstr "Quando o usuário se desconecta, eles são desconectados do servidor CAS" +msgstr "" +"Quando o usuário se desconecta, eles são desconectados do servidor CAS" #: settings/serializers/auth/cas.py:28 msgid "Username attr" @@ -6270,9 +6236,11 @@ msgstr "Atributo de nome de usuário" msgid "Enable attributes map" msgstr "Ativar mapeamento de atributos" -#: settings/serializers/auth/cas.py:34 settings/serializers/auth/dingtalk.py:18 +#: settings/serializers/auth/cas.py:34 +#: settings/serializers/auth/dingtalk.py:18 #: settings/serializers/auth/feishu.py:18 settings/serializers/auth/lark.py:17 -#: settings/serializers/auth/ldap.py:66 settings/serializers/auth/ldap_ha.py:48 +#: settings/serializers/auth/ldap.py:66 +#: settings/serializers/auth/ldap_ha.py:48 #: settings/serializers/auth/oauth2.py:60 settings/serializers/auth/oidc.py:39 #: settings/serializers/auth/saml2.py:35 settings/serializers/auth/slack.py:18 #: settings/serializers/auth/wecom.py:18 @@ -6341,23 +6309,28 @@ msgstr "LDAP" msgid "LDAP server URI" msgstr "Domínio do serviço LDAP" -#: settings/serializers/auth/ldap.py:48 settings/serializers/auth/ldap_ha.py:30 +#: settings/serializers/auth/ldap.py:48 +#: settings/serializers/auth/ldap_ha.py:30 msgid "Bind DN" msgstr "DN vinculado" -#: settings/serializers/auth/ldap.py:49 settings/serializers/auth/ldap_ha.py:31 +#: settings/serializers/auth/ldap.py:49 +#: settings/serializers/auth/ldap_ha.py:31 msgid "Binding Distinguished Name" msgstr "Administrador de diretório vinculado" -#: settings/serializers/auth/ldap.py:53 settings/serializers/auth/ldap_ha.py:35 +#: settings/serializers/auth/ldap.py:53 +#: settings/serializers/auth/ldap_ha.py:35 msgid "Binding password" msgstr "Senha vinculada" -#: settings/serializers/auth/ldap.py:56 settings/serializers/auth/ldap_ha.py:38 +#: settings/serializers/auth/ldap.py:56 +#: settings/serializers/auth/ldap_ha.py:38 msgid "Search OU" msgstr "OU do usuário" -#: settings/serializers/auth/ldap.py:58 settings/serializers/auth/ldap_ha.py:40 +#: settings/serializers/auth/ldap.py:58 +#: settings/serializers/auth/ldap_ha.py:40 msgid "" "User Search Base, if there are multiple OUs, you can separate them with the " "`|` symbol" @@ -6365,16 +6338,19 @@ msgstr "" "Biblioteca de pesquisa do usuário, se houver várias OUs, você pode usar o " "símbolo `|` para separar" -#: settings/serializers/auth/ldap.py:62 settings/serializers/auth/ldap_ha.py:44 +#: settings/serializers/auth/ldap.py:62 +#: settings/serializers/auth/ldap_ha.py:44 msgid "Search filter" msgstr "Filtro de usuário" -#: settings/serializers/auth/ldap.py:63 settings/serializers/auth/ldap_ha.py:45 +#: settings/serializers/auth/ldap.py:63 +#: settings/serializers/auth/ldap_ha.py:45 #, python-format msgid "Selection could include (cn|uid|sAMAccountName=%(user)s)" msgstr "As opções possíveis são (cn ou uid ou sAMAccountName=%(user)s)" -#: settings/serializers/auth/ldap.py:68 settings/serializers/auth/ldap_ha.py:50 +#: settings/serializers/auth/ldap.py:68 +#: settings/serializers/auth/ldap_ha.py:50 msgid "" "User attribute mapping, where the `key` is the JumpServer user attribute " "name and the `value` is the LDAP service user attribute name" @@ -6382,11 +6358,13 @@ msgstr "" "Mapeamento de atributos do usuário, onde `key` é o nome do atributo do " "usuário JumpServer e `value` é o nome do atributo do usuário do serviço LDAP" -#: settings/serializers/auth/ldap.py:84 settings/serializers/auth/ldap_ha.py:66 +#: settings/serializers/auth/ldap.py:84 +#: settings/serializers/auth/ldap_ha.py:66 msgid "Connect timeout (s)" msgstr "Tempo de conexão (segundos)" -#: settings/serializers/auth/ldap.py:89 settings/serializers/auth/ldap_ha.py:71 +#: settings/serializers/auth/ldap.py:89 +#: settings/serializers/auth/ldap_ha.py:71 msgid "User DN cache timeout (s)" msgstr "Tempo de cache do User DN (segundos)" @@ -6398,11 +6376,12 @@ msgid "" "the user DN cache" msgstr "" "Cache do User DN consultado durante a autenticação de login do usuário, o " -"que pode melhorar efetivamente a velocidade de autenticação do usuário
Se " -"a arquitetura de OU do usuário for ajustada, clique em enviar para limpar o " -"cache do User DN" +"que pode melhorar efetivamente a velocidade de autenticação do usuário
Se" +" a arquitetura de OU do usuário for ajustada, clique em enviar para limpar o" +" cache do User DN" -#: settings/serializers/auth/ldap.py:97 settings/serializers/auth/ldap_ha.py:79 +#: settings/serializers/auth/ldap.py:97 +#: settings/serializers/auth/ldap_ha.py:79 msgid "Search paged size (piece)" msgstr "Número de páginas de pesquisa (linhas)" @@ -6418,8 +6397,8 @@ msgstr "Domínio do Serviço LDAP HA" #: settings/serializers/auth/ldap_ha.py:73 msgid "" "Caching the User DN obtained during user login authentication can " -"effectivelyimprove the speed of user authentication., 0 means no cache
If " -"the user OU structure has been adjusted, click Submit to clear the user DN " +"effectivelyimprove the speed of user authentication., 0 means no cache
If" +" the user OU structure has been adjusted, click Submit to clear the user DN " "cache" msgstr "" "Ao fazer cache do User DN consultado durante a autenticação do login do " @@ -6473,7 +6452,8 @@ msgid "End session endpoint" msgstr "Endereço do ponto de encerramento da sessão" #: settings/serializers/auth/oauth2.py:57 -msgid "When the user signs out, they also be logged out from the OAuth2 server" +msgid "" +"When the user signs out, they also be logged out from the OAuth2 server" msgstr "Quando os usuários saem, eles também sairão do servidor OAuth2" #: settings/serializers/auth/oauth2.py:62 @@ -6485,8 +6465,8 @@ msgstr "" "usuário JumpServer, e `value` é o nome do atributo do usuário do serviço " "OAuth2." -#: settings/serializers/auth/oauth2.py:67 settings/serializers/auth/oidc.py:113 -#: settings/serializers/auth/saml2.py:45 +#: settings/serializers/auth/oauth2.py:67 +#: settings/serializers/auth/oidc.py:113 settings/serializers/auth/saml2.py:45 msgid "Always update user" msgstr "Sempre atualizar informações do usuário" @@ -6618,10 +6598,11 @@ msgid "OTP in RADIUS" msgstr "Use o Radius OTP" #: settings/serializers/auth/radius.py:24 -msgid "* Using OTP in RADIUS means users can employ RADIUS as a method for MFA" +msgid "" +"* Using OTP in RADIUS means users can employ RADIUS as a method for MFA" msgstr "" -"* Usar OTP no RADIUS significa que os usuários podem usar RADIUS como método " -"de MFA" +"* Usar OTP no RADIUS significa que os usuários podem usar RADIUS como método" +" de MFA" #: settings/serializers/auth/saml2.py:12 settings/serializers/auth/saml2.py:15 msgid "SAML2" @@ -6733,9 +6714,9 @@ msgstr "Tipo de serviço (Service id)" #: settings/serializers/auth/sms.py:85 #, python-brace-format msgid "" -"Template need contain {code} and Signature + template length does not exceed " -"67 words. For example, your verification code is {code}, which is valid for " -"5 minutes. Please do not disclose it to others." +"Template need contain {code} and Signature + template length does not exceed" +" 67 words. For example, your verification code is {code}, which is valid for" +" 5 minutes. Please do not disclose it to others." msgstr "" "O modelo precisa conter {code}, e a soma do comprimento da assinatura e do " "modelo não pode exceder 67 caracteres. Por exemplo, seu código de " @@ -6762,15 +6743,15 @@ msgstr "Ativar autenticação com token SSO" #: settings/serializers/auth/sso.py:17 msgid "Other service can using SSO token login to JumpServer without password" msgstr "" -"Outros sistemas podem se integrar ao JumpServer usando Token SSO, eliminando " -"o processo de login." +"Outros sistemas podem se integrar ao JumpServer usando Token SSO, eliminando" +" o processo de login." #: settings/serializers/auth/sso.py:20 msgid "SSO auth key TTL" msgstr "Validade do token" #: settings/serializers/auth/sso.py:20 -#: xpack/plugins/cloud/serializers/account_attrs.py:200 +#: xpack/plugins/cloud/serializers/account_attrs.py:201 msgid "Unit: second" msgstr "Unidade: segundos" @@ -6789,8 +6770,8 @@ msgstr "URL do site atual" #: settings/serializers/basic.py:13 msgid "" -"Site URL is the externally accessible address of the current product service " -"and is usually used in links in system emails" +"Site URL is the externally accessible address of the current product service" +" and is usually used in links in system emails" msgstr "" "URL do site é o endereço externo acessível do serviço do produto atual, " "geralmente usado em links em emails do sistema" @@ -6885,8 +6866,8 @@ msgid "" "Session, record, command will be delete if more than duration, only in " "database, OSS will not be affected." msgstr "" -"Sessões, gravações e registros de comandos acima desse prazo serão excluídos " -"(afeta o armazenamento do banco de dados, OSS, etc não são afetados)" +"Sessões, gravações e registros de comandos acima desse prazo serão excluídos" +" (afeta o armazenamento do banco de dados, OSS, etc não são afetados)" #: settings/serializers/cleaning.py:53 msgid "Change secret and push record retention days (day)" @@ -6945,7 +6926,7 @@ msgid "Tenant ID" msgstr "ID do inquilino" #: settings/serializers/feature.py:109 terminal/serializers/storage.py:68 -#: xpack/plugins/cloud/manager.py:107 xpack/plugins/cloud/manager.py:112 +#: xpack/plugins/cloud/manager.py:110 xpack/plugins/cloud/manager.py:115 #: xpack/plugins/cloud/models.py:287 msgid "Region" msgstr "Região" @@ -6968,7 +6949,8 @@ msgid "GPT Base URL" msgstr "Endereço GPT" #: settings/serializers/feature.py:131 -msgid "The base URL of the GPT service. For example: https://api.openai.com/v1" +msgid "" +"The base URL of the GPT service. For example: https://api.openai.com/v1" msgstr "URL básico do serviço GPT. Por exemplo: https://api.openai.com/v1" #: settings/serializers/feature.py:134 templates/_header_bar.html:96 @@ -6978,7 +6960,8 @@ msgstr "Chave API" #: settings/serializers/feature.py:138 msgid "" "The proxy server address of the GPT service. For example: http://ip:port" -msgstr "Endereço do servidor proxy do serviço GPT. Por exemplo: http://ip:port" +msgstr "" +"Endereço do servidor proxy do serviço GPT. Por exemplo: http://ip:port" #: settings/serializers/feature.py:141 msgid "GPT Model" @@ -7112,8 +7095,8 @@ msgstr "Prefixo do assunto" #: settings/serializers/msg.py:69 msgid "" -"Tips: When creating a user, send the subject of the email (eg:Create account " -"successfully)" +"Tips: When creating a user, send the subject of the email (eg:Create account" +" successfully)" msgstr "" "Dica: ao criar um usuário, envie um e-mail de configuração da senha com o " "assunto (por exemplo: criação de usuário bem-sucedida)" @@ -7204,8 +7187,8 @@ msgid "" "If the user has failed to log in for a limited number of times, no login is " "allowed during this time interval." msgstr "" -"Quando o número de falhas de login do usuário atingir o limite, o login será " -"proibido durante esse intervalo" +"Quando o número de falhas de login do usuário atingir o limite, o login será" +" proibido durante esse intervalo" #: settings/serializers/security.py:63 settings/serializers/security.py:73 msgid "Login failures count" @@ -7257,13 +7240,13 @@ msgstr "Login apenas a partir de usuários originais" #: settings/serializers/security.py:105 msgid "" -"If it is enabled, the user will only authenticate to the source when logging " -"in; if it is disabled, the user will authenticate all the enabled " +"If it is enabled, the user will only authenticate to the source when logging" +" in; if it is disabled, the user will authenticate all the enabled " "authentication methods in a certain order when logging in, and as long as " "one of the authentication methods is successful, they can log in directly" msgstr "" -"Se ativada, a autenticação do usuário no login será feita apenas no ponto de " -"origem; Se desativada, a autenticação do usuário seguirá uma certa ordem " +"Se ativada, a autenticação do usuário no login será feita apenas no ponto de" +" origem; Se desativada, a autenticação do usuário seguirá uma certa ordem " "entre todos os métodos de autenticação ativados, com sucesso em um deles " "permitindo o login direto" @@ -7319,8 +7302,8 @@ msgstr "Inserir MFA na página de login" #: settings/serializers/security.py:144 msgid "Eu security regulations(GDPR) require MFA to be on the login page" msgstr "" -"A regulamentação de segurança de dados da União Europeia (GDPR) exige MFA na " -"página de login para garantir a segurança do login do sistema" +"A regulamentação de segurança de dados da União Europeia (GDPR) exige MFA na" +" página de login para garantir a segurança do login do sistema" #: settings/serializers/security.py:148 msgid "Verify code TTL (second)" @@ -7359,9 +7342,9 @@ msgstr "Notificação de login de local diferente" #: settings/serializers/security.py:164 msgid "" -"The system determines whether the login IP address belongs to a common login " -"city. If the account is logged in from a common login city, the system sends " -"a remote login reminder" +"The system determines whether the login IP address belongs to a common login" +" city. If the account is logged in from a common login city, the system " +"sends a remote login reminder" msgstr "" "Com base se o IP de login pertence à cidade de login usual, se a conta for " "acessada de uma cidade não usual, um lembrete de login de local diferente " @@ -7376,8 +7359,8 @@ msgid "" "Detect infrequent users daily and disable them if they exceed the " "predetermined time limit" msgstr "" -"Um cheque é feito todos os dias, os usuários que excedem o tempo predefinido " -"são automaticamente desativados" +"Um cheque é feito todos os dias, os usuários que excedem o tempo predefinido" +" são automaticamente desativados" #: settings/serializers/security.py:191 msgid "Watermark" @@ -7396,8 +7379,8 @@ msgstr "Tempo máximo ocioso da conexão (minutos)" #: settings/serializers/security.py:197 msgid "If idle time more than it, disconnect connection." msgstr "" -"Observação: se essa configuração for excedida sem qualquer Action, a conexão " -"será desconectada" +"Observação: se essa configuração for excedida sem qualquer Action, a conexão" +" será desconectada" #: settings/serializers/security.py:200 msgid "Session expire at browser closed" @@ -7409,7 +7392,8 @@ msgstr "Quer que a sessão expire quando o usuário fecha o navegador?" #: settings/serializers/security.py:206 msgid "Allow users to view asset session information" -msgstr "Permitir que os usuários vejam informações da sessão online dos ativos" +msgstr "" +"Permitir que os usuários vejam informações da sessão online dos ativos" #: settings/serializers/security.py:208 msgid "" @@ -7472,11 +7456,11 @@ msgstr "Registro do componente" #: settings/serializers/terminal.py:24 msgid "" -"Allow component register, after all component setup, you should disable this " -"for security" +"Allow component register, after all component setup, you should disable this" +" for security" msgstr "" -"Permitir o registro de componentes? Após todos os terminais serem iniciados, " -"deve-se desactivar por razões de segurança" +"Permitir o registro de componentes? Após todos os terminais serem iniciados," +" deve-se desactivar por razões de segurança" #: settings/serializers/terminal.py:30 msgid "" @@ -7489,14 +7473,14 @@ msgstr "" msgid "" "* Allow users to log in to the KoKo component via Public key " "authentication
If third-party authentication services, such as AD/LDAP, " -"are enabled, you should disable this option to prevent users from logging in " -"after being deleted from the AD/LDAP server" +"are enabled, you should disable this option to prevent users from logging in" +" after being deleted from the AD/LDAP server" msgstr "" "* Permite aos usuários fazer login no componente KoKo através da " "autenticação de chave pública
Se o serviço de autenticação de terceiros " "(como AD / LDAP) estiver habilitado, esta opção deve ser desabilitada, para " -"evitar que o usuário faça login novamente após ser excluído do servidor AD / " -"LDAP" +"evitar que o usuário faça login novamente após ser excluído do servidor AD /" +" LDAP" #: settings/serializers/terminal.py:43 msgid "Asset sorting" @@ -7508,8 +7492,8 @@ msgstr "Quantidade por página da lista de ativos" #: settings/serializers/terminal.py:51 msgid "" -"* You can individually configure the service address and port in the service " -"endpoint
If enabled, the Luna page will display the DB client launch " +"* You can individually configure the service address and port in the service" +" endpoint
If enabled, the Luna page will display the DB client launch " "method when connecting to assets" msgstr "" "* Você pode configurar o endereço e a porta do serviço separadamente nos " @@ -7518,8 +7502,8 @@ msgstr "" #: settings/serializers/terminal.py:59 msgid "" -"* You can individually configure the service address and port in the service " -"endpoint
If enabled, the Luna page will display the download rdp file " +"* You can individually configure the service address and port in the service" +" endpoint
If enabled, the Luna page will display the download rdp file " "button and RDP Client launch method when connecting to assets" msgstr "" "* Você pode configurar o endereço e a porta do serviço separadamente nos " @@ -7534,11 +7518,12 @@ msgstr "Conexão do Cliente" #: settings/serializers/terminal.py:68 msgid "" "* Allow connecting to the KoKo component via SSH client
If enabled, the " -"Luna page will display the SSH client launch method when connecting to assets" +"Luna page will display the SSH client launch method when connecting to " +"assets" msgstr "" -"* Permite ao Cliente SSH conectar-se ao componente KoKo
Se habilitado, a " -"página do Luna mostrará o método de inicialização do Cliente SSH ao conectar-" -"se aos ativos" +"* Permite ao Cliente SSH conectar-se ao componente KoKo
Se habilitado, a" +" página do Luna mostrará o método de inicialização do Cliente SSH ao " +"conectar-se aos ativos" #: settings/serializers/tool.py:10 msgid "Tool" @@ -7550,8 +7535,8 @@ msgstr "Ferramentas na bancada" #: settings/serializers/tool.py:15 msgid "" -"*! If enabled, users with RBAC permissions will be able to utilize all tools " -"in the workbench" +"*! If enabled, users with RBAC permissions will be able to utilize all tools" +" in the workbench" msgstr "" "*! Se habilitado, os usuários com permissões RBAC poderão utilizar todas as " "ferramentas disponíveis na bancada" @@ -7578,8 +7563,7 @@ msgstr "Registre a tarefa do usuário LDAP de importação periódica" #: settings/tasks/ldap.py:119 msgid "" -"When LDAP auto-sync parameters change, such as Crontab parameters, the LDAP " -"sync task \n" +"When LDAP auto-sync parameters change, such as Crontab parameters, the LDAP sync task \n" " will be re-registered or updated, and this task will be invoked" msgstr "" "Quando alterações são efetuadas nos parâmetros de sincronização automática " @@ -7592,8 +7576,7 @@ msgstr "Registre a tarefa do usuário LDAP HA de importação periódica" #: settings/tasks/ldap.py:135 msgid "" -"When LDAP HA auto-sync parameters change, such as Crontab parameters, the " -"LDAP HA sync task \n" +"When LDAP HA auto-sync parameters change, such as Crontab parameters, the LDAP HA sync task \n" " will be re-registered or updated, and this task will be invoked" msgstr "" "Quando alterações são efetuadas nos parâmetros de sincronização automática " @@ -7789,8 +7772,7 @@ msgid "" " " msgstr "" "\n" -" Sua conta expirou, por favor entre em contato com o " -"administrador. " +" Sua conta expirou, por favor entre em contato com o administrador. " #: templates/_message.html:13 msgid "Your account will at" @@ -7804,13 +7786,11 @@ msgstr "." #, python-format msgid "" "\n" -" Your password has expired, please click this link update password.\n" +" Your password has expired, please click this link update password.\n" " " msgstr "" "\n" -" Sua senha expirou, por favor clique no link para atualizar sua senha\n" +" Sua senha expirou, por favor clique no link para atualizar sua senha\n" " " #: templates/_message.html:30 @@ -7821,39 +7801,33 @@ msgstr "Sua senha irá expirar em" #, python-format msgid "" "\n" -" please click this " -"link to update your password.\n" +" please click this link to update your password.\n" " " msgstr "" "\n" -" Por favor, clique no link para atualizar sua senha\n" +" Por favor, clique no link para atualizar sua senha\n" " " #: templates/_message.html:43 #, python-format msgid "" "\n" -" Your information was incomplete. Please click this link to complete your information.\n" +" Your information was incomplete. Please click this link to complete your information.\n" " " msgstr "" "\n" -" Suas informações estão incompletas, por favor clique no link para completar\n" +" Suas informações estão incompletas, por favor clique no link para completar\n" " " #: templates/_message.html:56 #, python-format msgid "" "\n" -" Your ssh public key not set or expired. Please click this link to update\n" +" Your ssh public key not set or expired. Please click this link to update\n" " " msgstr "" "\n" -" Sua chave SSH não está definida ou expirou, por favor clique " -"no link para atualizar\n" +" Sua chave SSH não está definida ou expirou, por favor clique no link para atualizar\n" " " #: templates/_mfa_login_field.html:31 @@ -7914,8 +7888,8 @@ msgid "" "OpenSSH is a program used to connect remote applications in the Windows " "Remote Application Publisher" msgstr "" -"OpenSSH é um programa usado para conectar aplicativos remotos no servidor de " -"publicação de aplicativos remotos do Windows" +"OpenSSH é um programa usado para conectar aplicativos remotos no servidor de" +" publicação de aplicativos remotos do Windows" #: templates/resource_download.html:53 msgid "Offline video player" @@ -7953,7 +7927,7 @@ msgstr "Não é possível excluir o armazenamento em uso: {}" msgid "Command storages" msgstr "Armazenamento de comandos" -#: terminal/api/component/storage.py:84 xpack/plugins/cloud/manager.py:107 +#: terminal/api/component/storage.py:84 xpack/plugins/cloud/manager.py:110 msgid "Invalid" msgstr "Inválido" @@ -8347,7 +8321,8 @@ msgstr "É possível fazer download da gravação da sessão" msgid "Account ID" msgstr "Conta" -#: terminal/models/session/session.py:38 terminal/models/session/sharing.py:118 +#: terminal/models/session/session.py:38 +#: terminal/models/session/sharing.py:118 msgid "Login from" msgstr "Origem do login" @@ -8396,8 +8371,8 @@ msgstr "Permissões de ação" msgid "Origin" msgstr "Origem" -#: terminal/models/session/sharing.py:42 terminal/models/session/sharing.py:100 -#: terminal/notifications.py:279 +#: terminal/models/session/sharing.py:42 +#: terminal/models/session/sharing.py:100 terminal/notifications.py:279 msgid "Session sharing" msgstr "Compartilhamento de Sessão" @@ -8510,21 +8485,15 @@ msgstr "Endereço de serviço Core" #: terminal/serializers/applet_host.py:38 msgid "" " \n" -" Tips: The application release machine communicates with the Core " -"service. \n" -" If the release machine and the Core service are on the same network " -"segment, \n" -" it is recommended to fill in the intranet address, otherwise fill in " -"the current site URL \n" +" Tips: The application release machine communicates with the Core service. \n" +" If the release machine and the Core service are on the same network segment, \n" +" it is recommended to fill in the intranet address, otherwise fill in the current site URL \n" "
\n" " eg: https://172.16.10.110 or https://dev.jumpserver.com\n" " " msgstr "" " \n" -"Dica: O publicador de aplicativos e o serviço Core usam comunicação. Se o " -"publicador e o serviço Core estiverem na mesma rede, é recomendado preencher " -"o endereço da intranet; caso contrário, preencha o URL do atual site. Por " -"exemplo: https://172.16.10.110 ou https://dev.jumpserver.com." +"Dica: O publicador de aplicativos e o serviço Core usam comunicação. Se o publicador e o serviço Core estiverem na mesma rede, é recomendado preencher o endereço da intranet; caso contrário, preencha o URL do atual site. Por exemplo: https://172.16.10.110 ou https://dev.jumpserver.com." #: terminal/serializers/applet_host.py:46 terminal/serializers/storage.py:207 msgid "Ignore Certificate Verification" @@ -8537,12 +8506,13 @@ msgstr "Já existem licenças RDS" #: terminal/serializers/applet_host.py:50 msgid "" "If not exist, the RDS will be in trial mode, and the trial period is 120 " -"days. Detail" +"days. Detail" msgstr "" "Se não existir, o RDS estará em modo de teste, com um período de teste de " -"120 dias. Detalhes" +"120 dias. Detalhes" #: terminal/serializers/applet_host.py:55 msgid "RDS License Server" @@ -8582,8 +8552,8 @@ msgstr "Tempo limite de logoff de aplicativo remoto do RDS (milissegundos)" #: terminal/serializers/applet_host.py:74 msgid "" -"Tips: Set the logoff time for RemoteApp sessions after closing all RemoteApp " -"programs (0 milliseconds, log off the session immediately)." +"Tips: Set the logoff time for RemoteApp sessions after closing all RemoteApp" +" programs (0 milliseconds, log off the session immediately)." msgstr "" "Nota: Define o tempo de logoff da sessão RemoteAPP após o fechamento de " "todos os programas RemoteApp (0 milissegundos, logoff imediato da sessão)" @@ -8595,15 +8565,15 @@ msgstr "Status de carga" #: terminal/serializers/applet_host.py:97 msgid "" -"These accounts are used to connect to the published application, the account " -"is now divided into two types, one is dedicated to each account, each user " +"These accounts are used to connect to the published application, the account" +" is now divided into two types, one is dedicated to each account, each user " "has a private account, the other is public, when the application does not " -"support multiple open and the special has been used, the public account will " -"be used to connect" +"support multiple open and the special has been used, the public account will" +" be used to connect" msgstr "" -"Estas contas são usadas para conectar-se aos aplicativos publicados, e agora " -"são divididas em dois tipos:
Uma é dedicada, cada usuário tem uma conta " -"dedicada. A outra é a pública, que será usada quando o aplicativo não " +"Estas contas são usadas para conectar-se aos aplicativos publicados, e agora" +" são divididas em dois tipos:
Uma é dedicada, cada usuário tem uma " +"conta dedicada. A outra é a pública, que será usada quando o aplicativo não " "suportar múltiplas execuções e as dedicadas já estiverem em uso;
Nota: " "Se a criação automática de conta não estiver ativada, a máquina publicada " "atual só poderá ser agendada para ativos com uma etiqueta especificada, por " @@ -8684,20 +8654,21 @@ msgid "" "does not allow modification of the host)" msgstr "" "Endereço do host acessado ao conectar ao ativo, se estiver vazio, use o " -"endereço de acesso do navegador atual (o host padrão não permite modificação)" +"endereço de acesso do navegador atual (o host padrão não permite " +"modificação)" #: terminal/serializers/endpoint.py:71 msgid "" -"The assets within this IP range, the following endpoint will be used for the " -"connection" +"The assets within this IP range, the following endpoint will be used for the" +" connection" msgstr "O ativo na faixa de IP usará o endpoint abaixo para conexão" #: terminal/serializers/endpoint.py:72 msgid "" "If asset IP addresses under different endpoints conflict, use asset labels" msgstr "" -"Se houver conflitos de IP de ativos em diferentes pontos finais, use tags de " -"ativos para resolver." +"Se houver conflitos de IP de ativos em diferentes pontos finais, use tags de" +" ativos para resolver." #: terminal/serializers/endpoint.py:76 msgid "Asset IP" @@ -8962,8 +8933,7 @@ msgstr "Limpar sessão offline" #: terminal/tasks.py:45 msgid "" -"Check every 10 minutes for asset connection sessions that have been inactive " -"for 3 \n" +"Check every 10 minutes for asset connection sessions that have been inactive for 3 \n" " minutes and mark these sessions as completed" msgstr "" "A cada 10 minutos, verifica sessões de conexão de ativos inativos por 3 " @@ -8975,8 +8945,7 @@ msgstr "Upload de gravação de sessão para armazenamento externo" #: terminal/tasks.py:70 terminal/tasks.py:104 msgid "" -"If SERVER_REPLAY_STORAGE is configured in the config.txt, session commands " -"and \n" +"If SERVER_REPLAY_STORAGE is configured in the config.txt, session commands and \n" " recordings will be uploaded to external storage" msgstr "" "Se SERVER_REPLAY_STORAGE estiver configurado, sincronize os arquivos " @@ -8992,8 +8961,7 @@ msgstr "Executar implantação da aplicação" #: terminal/tasks.py:126 msgid "" -"When deploying from the remote application publisher details page, and the " -"'Deploy' \n" +"When deploying from the remote application publisher details page, and the 'Deploy' \n" " button is clicked, this task will be executed" msgstr "" "Implantação da publicação, ao clicar na implantação, executar esta tarefa" @@ -9004,8 +8972,7 @@ msgstr "Instalar aplicação" #: terminal/tasks.py:140 msgid "" -"When the 'Deploy' button is clicked in the 'Remote Application' section of " -"the remote \n" +"When the 'Deploy' button is clicked in the 'Remote Application' section of the remote \n" " application publisher details page, this task will be executed" msgstr "" "Ao detalhar o aplicativo remoto - aplicativo remoto, ao clicar na " @@ -9017,8 +8984,7 @@ msgstr "Desinstalar aplicação" #: terminal/tasks.py:155 msgid "" -"When the 'Uninstall' button is clicked in the 'Remote Application' section " -"of the \n" +"When the 'Uninstall' button is clicked in the 'Remote Application' section of the \n" " remote application publisher details page, this task will be executed" msgstr "" "Ao detalhar o aplicativo remoto - aplicativo remoto, ao clicar na " @@ -9030,12 +8996,11 @@ msgstr "Coletar contas no aplicativo remoto" #: terminal/tasks.py:170 msgid "" -"When a remote publishing server is created and an account needs to be " -"created \n" +"When a remote publishing server is created and an account needs to be created \n" " automatically, this task will be executed" msgstr "" -"Após criar a máquina de publicação remota, se for necessário criar uma conta " -"automaticamente, execute a tarefa" +"Após criar a máquina de publicação remota, se for necessário criar uma conta" +" automaticamente, execute a tarefa" #: terminal/tasks.py:184 msgid "Check command replay storage connectivity" @@ -9043,15 +9008,12 @@ msgstr "Verificar a conectividade de armazenamento de comandos e gravações" #: terminal/tasks.py:186 msgid "" -"Check every day at midnight whether the external storage for commands and " -"recordings \n" -" is accessible. If it is not accessible, send a notification to the " -"recipients specified \n" -" in 'System Settings - Notifications - Subscription - Storage - " -"Connectivity'" +"Check every day at midnight whether the external storage for commands and recordings \n" +" is accessible. If it is not accessible, send a notification to the recipients specified \n" +" in 'System Settings - Notifications - Subscription - Storage - Connectivity'" msgstr "" -"Verifica todos os dias à meia-noite se o armazenamento externo de comandos e " -"gravações pode ser conectado, se não puder, envie para: Configurações do " +"Verifica todos os dias à meia-noite se o armazenamento externo de comandos e" +" gravações pode ser conectado, se não puder, envie para: Configurações do " "sistema - Configurações de notificação - Assinatura de mensagem - " "Destinatário definido para armazenamento de configurações de gravação e " "comando." @@ -9066,18 +9028,18 @@ msgid "" "number of ports open to the database agent service, Contact the " "administrator to open more ports." msgstr "" -"Não foi possível encontrar uma porta disponível, o número de bancos de dados " -"pode ter excedido o número de portas abertas pelo serviço de proxy do banco " -"de dados, por favor, entre em contato com o administrador para abrir mais " +"Não foi possível encontrar uma porta disponível, o número de bancos de dados" +" pode ter excedido o número de portas abertas pelo serviço de proxy do banco" +" de dados, por favor, entre em contato com o administrador para abrir mais " "portas." #: terminal/utils/db_port_mapper.py:116 msgid "" -"No ports can be used, check and modify the limit on the number of ports that " -"Magnus listens on in the configuration file." +"No ports can be used, check and modify the limit on the number of ports that" +" Magnus listens on in the configuration file." msgstr "" -"Não há portas disponíveis para uso, verifique e modifique o limite do número " -"de portas que o Magnus está ouvindo no arquivo de configuração." +"Não há portas disponíveis para uso, verifique e modifique o limite do número" +" de portas que o Magnus está ouvindo no arquivo de configuração." #: terminal/utils/db_port_mapper.py:118 msgid "All available port count: {}, Already use port count: {}" @@ -9435,7 +9397,8 @@ msgstr "Auditor da organização" #: users/const.py:18 msgid "Reset link will be generated and sent to the user" -msgstr "Gere um link de redefinição de senha e envie para o usuário por e-mail" +msgstr "" +"Gere um link de redefinição de senha e envie para o usuário por e-mail" #: users/const.py:19 msgid "Set password" @@ -9499,9 +9462,9 @@ msgid "" "in. you can also directly bind in \"personal information -> quick " "modification -> change MFA Settings\"!" msgstr "" -"Depois de ativado, você entrará no processo de vinculação de autenticação de " -"múltiplos fatores na próxima vez que fizer login; Você também pode vincular " -"diretamente em (Informações pessoais->Modificação rápida->Configuração de " +"Depois de ativado, você entrará no processo de vinculação de autenticação de" +" múltiplos fatores na próxima vez que fizer login; Você também pode vincular" +" diretamente em (Informações pessoais->Modificação rápida->Configuração de " "autenticação MFA de múltiplos fatores)!" #: users/forms/profile.py:60 @@ -9512,8 +9475,8 @@ msgstr "" #: users/forms/profile.py:69 msgid "" -"In order to protect you and your company, please keep your account, password " -"and key sensitive information properly. (for example: setting complex " +"In order to protect you and your company, please keep your account, password" +" and key sensitive information properly. (for example: setting complex " "password, enabling MFA)" msgstr "" "Para proteger sua segurança e a da sua empresa, por favor, cuide bem da sua " @@ -9673,11 +9636,11 @@ msgstr "Nome do tema do terminal" #: users/serializers/preference/lina.py:12 msgid "" "*! The password for file encryption, used for decryption when the system " -"sends emails containing file attachments.
Such as: account backup files, " -"account password change results files" +"sends emails containing file attachments.
Such as: account backup files," +" account password change results files" msgstr "" -"Senha de criptografia de arquivo, use esta senha para descriptografar quando " -"o email enviado pelo sistema contém um anexo de arquivo.
Por exemplo: " +"Senha de criptografia de arquivo, use esta senha para descriptografar quando" +" o email enviado pelo sistema contém um anexo de arquivo.
Por exemplo: " "arquivo de backup da conta, arquivo de resultado de alteração de senha da " "conta" @@ -9728,8 +9691,8 @@ msgid "" "window is resized." msgstr "" "Determinar se o computador cliente deve redimensionar o conteúdo no " -"computador remoto para se ajustar ao tamanho da janela do computador cliente " -"quando o tamanho da janela é alterado" +"computador remoto para se ajustar ao tamanho da janela do computador cliente" +" quando o tamanho da janela é alterado" #: users/serializers/preference/luna.py:59 msgid "Remote app connect method" @@ -9773,8 +9736,8 @@ msgstr "Função de sistema" #: users/serializers/user.py:55 msgid "" -"System roles are roles at the system level, and they will take effect across " -"all organizations" +"System roles are roles at the system level, and they will take effect across" +" all organizations" msgstr "" "A função do sistema é um papel definido ao nível do sistema e será efetivo " "em todas as organizações" @@ -9788,8 +9751,8 @@ msgid "" "Org roles are roles at the organization level, and they will only take " "effect within current organization" msgstr "" -"Os papéis organizacionais são papéis no nível da organização, válidos apenas " -"dentro da organização atual " +"Os papéis organizacionais são papéis no nível da organização, válidos apenas" +" dentro da organização atual " #: users/serializers/user.py:70 msgid "Organizations and roles" @@ -9853,8 +9816,8 @@ msgid "" "other sources.There are security settings that can restrict users to log in " "to the system only from the sources." msgstr "" -" A identidade de origem do usuário indica o local de criação do usuário, que " -"pode ser AD ou outra fonte. As configurações de segurança podem limitar os " +" A identidade de origem do usuário indica o local de criação do usuário, que" +" pode ser AD ou outra fonte. As configurações de segurança podem limitar os " "usuários a fazer login somente a partir de uma fonte especificada." #: users/serializers/user.py:271 @@ -9879,7 +9842,8 @@ msgstr "Autenticação" #: users/serializers/user.py:439 msgid "" -"* For security, only a partial of users is displayed. You can search for more" +"* For security, only a partial of users is displayed. You can search for " +"more" msgstr "" "* Para sua segurança, apenas alguns usuários são mostrados. Você pode " "procurar por mais" @@ -9891,8 +9855,7 @@ msgstr "Nome duplicado" #: users/signal_handlers.py:41 msgid "" "The administrator has enabled \"Only allow existing users to log in\", \n" -" and the current user is not in the user list. Please contact the " -"administrator." +" and the current user is not in the user list. Please contact the administrator." msgstr "" "O administrador ativou a opção 'Permitir login apenas para usuários " "existentes', o usuário atual não está na lista de usuários, por favor, " @@ -9904,8 +9867,7 @@ msgstr "Limpar sessões de usuários expiradas" #: users/signal_handlers.py:199 msgid "" -"After logging in via the web, a user session record is created. At 2 a.m. " -"every day, \n" +"After logging in via the web, a user session record is created. At 2 a.m. every day, \n" " the system cleans up inactive user devices" msgstr "" "Após o login via web, será gerado um registro da sessão do usuário online, " @@ -9918,8 +9880,7 @@ msgstr "A verificação da senha expirou" #: users/tasks.py:28 msgid "" -"Check every day at 10 AM whether the passwords of users in the system are " -"expired, \n" +"Check every day at 10 AM whether the passwords of users in the system are expired, \n" " and send a notification 5 days in advance" msgstr "" "Verifica-se todos os dias às 10 da manhã se as senhas dos usuários no " @@ -9931,10 +9892,8 @@ msgstr "Verificação periódica de senhas expiradas" #: users/tasks.py:48 msgid "" -"With version iterations, new tasks may be added, or task names and execution " -"times may \n" -" be modified. Therefore, upon system startup, it is necessary to " -"register or update the \n" +"With version iterations, new tasks may be added, or task names and execution times may \n" +" be modified. Therefore, upon system startup, it is necessary to register or update the \n" " parameters of the task that checks if passwords have expired" msgstr "" "Com as iterações das versões, novas tarefas podem ser adicionadas ou o nome " @@ -9948,8 +9907,7 @@ msgstr "Verificação de usuário já expirado." #: users/tasks.py:69 msgid "" -"Check every day at 2 p.m whether the users in the system are expired, and " -"send a \n" +"Check every day at 2 p.m whether the users in the system are expired, and send a \n" " notification 5 days in advance" msgstr "" "Confira todos os dias às 14h se os usuários do sistema estão expirados e " @@ -9961,16 +9919,14 @@ msgstr "Verificação periódica do vencimento dos usuários" #: users/tasks.py:92 msgid "" -"With version iterations, new tasks may be added, or task names and execution " -"times may \n" -" be modified. Therefore, upon system startup, it is necessary to " -"register or update the \n" +"With version iterations, new tasks may be added, or task names and execution times may \n" +" be modified. Therefore, upon system startup, it is necessary to register or update the \n" " parameters of the task that checks if users have expired" msgstr "" "Com o avanço das versões, pode haver a adição de novas tarefas ou " "modificação dos nomes, horários de execução das tarefas, por isso, ao " -"iniciar o sistema, registre ou atualize os parâmetros da tarefa de verificar " -"se o usuário já expirou" +"iniciar o sistema, registre ou atualize os parâmetros da tarefa de verificar" +" se o usuário já expirou" #: users/tasks.py:111 msgid "Check unused users" @@ -9978,14 +9934,12 @@ msgstr "Verifique os usuários inativos" #: users/tasks.py:113 msgid "" -"At 2 p.m. every day, according to the configuration in \"System Settings - " -"Security - \n" -" Auth security - Auto disable threshold\" users who have not logged " -"in or whose API keys \n" +"At 2 p.m. every day, according to the configuration in \"System Settings - Security - \n" +" Auth security - Auto disable threshold\" users who have not logged in or whose API keys \n" " have not been used for a long time will be disabled" msgstr "" -"Todos os dias às 14h, com base na configuração do sistema - configurações de " -"segurança - configuração de desativação automática de usuários inativos, " +"Todos os dias às 14h, com base na configuração do sistema - configurações de" +" segurança - configuração de desativação automática de usuários inativos, " "desativar usuários que não fazem login ou não usam a chave API por muito " "tempo" @@ -10129,8 +10083,8 @@ msgstr "Vincular validador MFA" #: users/templates/users/user_otp_enable_bind.html:13 msgid "" -"Use the MFA Authenticator application to scan the following qr code for a 6-" -"bit verification code" +"Use the MFA Authenticator application to scan the following qr code for a " +"6-bit verification code" msgstr "" "Use o aplicativo do validador MFA para escanear o código QR abaixo e obter " "um código de verificação de 6 dígitos" @@ -10201,7 +10155,7 @@ msgstr "Redirecionamento para o cliente JumpServer" msgid "Face binding successful" msgstr "Vinculação de características faciais bem-sucedida" -#: users/views/profile/face.py:80 users/views/profile/face.py:81 +#: users/views/profile/face.py:82 users/views/profile/face.py:83 msgid "Face unbinding successful" msgstr "Desvinculação de características faciais bem-sucedida" @@ -10240,11 +10194,11 @@ msgstr "Nome de usuário ou senha inválidos" #: users/views/profile/reset.py:66 msgid "" -"Non-local users can log in only from third-party platforms and cannot change " -"their passwords: {}" +"Non-local users can log in only from third-party platforms and cannot change" +" their passwords: {}" msgstr "" -"Usuários não locais só podem entrar através de plataformas de terceiros, não " -"é suportada a alteração de senha: {}" +"Usuários não locais só podem entrar através de plataformas de terceiros, não" +" é suportada a alteração de senha: {}" #: users/views/profile/reset.py:188 users/views/profile/reset.py:199 msgid "Token invalid or expired" @@ -10404,19 +10358,19 @@ msgstr "Nome da instância e parte do IP" msgid "Succeed" msgstr "Sucesso" -#: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:95 +#: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:98 msgid "Unsync" msgstr "Não sincronizado" -#: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:94 +#: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:97 msgid "New Sync" msgstr "Nova sincronização" -#: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:94 +#: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:97 msgid "Synced" msgstr "Sincronizado" -#: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:96 +#: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:99 msgid "Released" msgstr "Liberado" @@ -10436,45 +10390,45 @@ msgstr "Organização sincronizada" msgid "Imported" msgstr "Importar" -#: xpack/plugins/cloud/manager.py:48 +#: xpack/plugins/cloud/manager.py:51 #, python-format msgid "Task \"%s\" starts executing" msgstr "Tarefa \"%s\" começou a executar" -#: xpack/plugins/cloud/manager.py:87 +#: xpack/plugins/cloud/manager.py:90 msgid "View the task details path: " msgstr "Ver detalhes" -#: xpack/plugins/cloud/manager.py:90 +#: xpack/plugins/cloud/manager.py:93 msgid "Account Details" msgstr "Conta" -#: xpack/plugins/cloud/manager.py:91 +#: xpack/plugins/cloud/manager.py:94 msgid "Synchronization History List" msgstr "Sincronizar lista de histórico" -#: xpack/plugins/cloud/manager.py:91 +#: xpack/plugins/cloud/manager.py:94 msgid "Synchronization Instance List" msgstr "Sincronizar lista de instâncias" -#: xpack/plugins/cloud/manager.py:95 +#: xpack/plugins/cloud/manager.py:98 msgid "To be released" msgstr "Aguardando liberação" -#: xpack/plugins/cloud/manager.py:99 +#: xpack/plugins/cloud/manager.py:102 msgid "Task execution completed" msgstr "Conclusão de execução da tarefa" -#: xpack/plugins/cloud/manager.py:104 +#: xpack/plugins/cloud/manager.py:107 msgid "Synchronization regions" msgstr "Sincronizar região" -#: xpack/plugins/cloud/manager.py:129 +#: xpack/plugins/cloud/manager.py:132 #, python-format msgid "Get instances of region \"%s\" error, error: %s" msgstr "Obter erro de instância na região \"%s\", erro: %s" -#: xpack/plugins/cloud/manager.py:175 +#: xpack/plugins/cloud/manager.py:178 #, python-format msgid "Failed to synchronize the instance \"%s\"" msgstr "Impossível sincronizar instância %s" @@ -10488,42 +10442,42 @@ msgstr "" "A atualização da plataforma do ativo “%s” não é consistente com o tipo de " "plataforma original. Ignorar atualização de plataforma e protocolo" -#: xpack/plugins/cloud/manager.py:399 +#: xpack/plugins/cloud/manager.py:406 #, python-format msgid "The asset \"%s\" already exists" msgstr "Ativo \"%s\" já existe" -#: xpack/plugins/cloud/manager.py:401 +#: xpack/plugins/cloud/manager.py:408 #, python-format msgid "Update asset \"%s\"" msgstr "Atualizando ativo \"%s\"" -#: xpack/plugins/cloud/manager.py:404 +#: xpack/plugins/cloud/manager.py:411 #, python-format msgid "Asset \"%s\" has been updated" msgstr "Ativo \"%s\" foi atualizado" -#: xpack/plugins/cloud/manager.py:413 +#: xpack/plugins/cloud/manager.py:420 #, python-format msgid "Prepare to create asset \"%s\"" msgstr "Preparar para criar ativo %s" -#: xpack/plugins/cloud/manager.py:434 +#: xpack/plugins/cloud/manager.py:441 #, python-format msgid "Set nodes \"%s\"" -msgstr "Deletar nó: \"%s\"" +msgstr "Configurar os nós: \"%s\"" -#: xpack/plugins/cloud/manager.py:460 +#: xpack/plugins/cloud/manager.py:467 #, python-format msgid "Set accounts \"%s\"" -msgstr "Deletar conta: %s" +msgstr "Configurar a conta: %s" -#: xpack/plugins/cloud/manager.py:476 +#: xpack/plugins/cloud/manager.py:483 #, python-format msgid "Set protocols \"%s\"" msgstr "Configurar protocolo \"%s\"" -#: xpack/plugins/cloud/manager.py:490 xpack/plugins/cloud/tasks.py:31 +#: xpack/plugins/cloud/manager.py:497 xpack/plugins/cloud/tasks.py:31 msgid "Run sync instance task" msgstr "Executar tarefa de sincronização de instância" @@ -10621,7 +10575,8 @@ msgstr "Instância" msgid "Sync instance detail" msgstr "Detalhes da Sincronização de Instância" -#: xpack/plugins/cloud/models.py:313 xpack/plugins/cloud/serializers/task.py:77 +#: xpack/plugins/cloud/models.py:313 +#: xpack/plugins/cloud/serializers/task.py:77 msgid "Rule relation" msgstr "Relação Condicional" @@ -10677,7 +10632,8 @@ msgstr "Correspondência de regra" msgid "Rule value" msgstr "Valor da regra" -#: xpack/plugins/cloud/models.py:383 xpack/plugins/cloud/serializers/task.py:80 +#: xpack/plugins/cloud/models.py:383 +#: xpack/plugins/cloud/serializers/task.py:80 msgid "Strategy rule" msgstr "Condição" @@ -10693,7 +10649,8 @@ msgstr "Atributos de ação" msgid "Action value" msgstr "Valor de ação" -#: xpack/plugins/cloud/models.py:409 xpack/plugins/cloud/serializers/task.py:83 +#: xpack/plugins/cloud/models.py:409 +#: xpack/plugins/cloud/serializers/task.py:83 msgid "Strategy action" msgstr "Action" @@ -10917,78 +10874,82 @@ msgstr "Access key id" msgid "Subscription ID" msgstr "ID de inscrição" -#: xpack/plugins/cloud/serializers/account_attrs.py:98 -#: xpack/plugins/cloud/serializers/account_attrs.py:102 -#: xpack/plugins/cloud/serializers/account_attrs.py:126 -#: xpack/plugins/cloud/serializers/account_attrs.py:156 -#: xpack/plugins/cloud/serializers/account_attrs.py:206 +#: xpack/plugins/cloud/serializers/account_attrs.py:74 +msgid "Auto node classification" +msgstr "Classificação automática de nós" + +#: xpack/plugins/cloud/serializers/account_attrs.py:99 +#: xpack/plugins/cloud/serializers/account_attrs.py:103 +#: xpack/plugins/cloud/serializers/account_attrs.py:127 +#: xpack/plugins/cloud/serializers/account_attrs.py:157 +#: xpack/plugins/cloud/serializers/account_attrs.py:207 msgid "API Endpoint" msgstr "Ponto de extremidade da API" -#: xpack/plugins/cloud/serializers/account_attrs.py:108 +#: xpack/plugins/cloud/serializers/account_attrs.py:109 msgid "Auth url" msgstr "Endereço de autenticação" -#: xpack/plugins/cloud/serializers/account_attrs.py:109 +#: xpack/plugins/cloud/serializers/account_attrs.py:110 msgid "eg: http://openstack.example.com:5000/v3" msgstr "Por exemplo: http://openstack.example.com:5000/v3" -#: xpack/plugins/cloud/serializers/account_attrs.py:112 +#: xpack/plugins/cloud/serializers/account_attrs.py:113 msgid "User domain" msgstr "Domínio do usuário" -#: xpack/plugins/cloud/serializers/account_attrs.py:127 +#: xpack/plugins/cloud/serializers/account_attrs.py:128 msgid "Cert File" msgstr "Arquivo de certificado" -#: xpack/plugins/cloud/serializers/account_attrs.py:128 +#: xpack/plugins/cloud/serializers/account_attrs.py:129 msgid "Key File" msgstr "Arquivo de chave" -#: xpack/plugins/cloud/serializers/account_attrs.py:144 +#: xpack/plugins/cloud/serializers/account_attrs.py:145 msgid "Service account key" msgstr "Chave da conta de serviço" -#: xpack/plugins/cloud/serializers/account_attrs.py:145 +#: xpack/plugins/cloud/serializers/account_attrs.py:146 msgid "The file is in JSON format" msgstr "Arquivo no formato JSON" -#: xpack/plugins/cloud/serializers/account_attrs.py:163 +#: xpack/plugins/cloud/serializers/account_attrs.py:164 msgid "IP address invalid `{}`, {}" msgstr "Endereço IP inválido: `{}`, {}" -#: xpack/plugins/cloud/serializers/account_attrs.py:179 +#: xpack/plugins/cloud/serializers/account_attrs.py:180 msgid "Such as: 192.168.1.0/24, 10.0.0.0-10.0.0.255" msgstr "Exemplo: 192.168.1.0/24,10.0.0.0-10.0.0.255" -#: xpack/plugins/cloud/serializers/account_attrs.py:182 +#: xpack/plugins/cloud/serializers/account_attrs.py:183 msgid "" "The port is used to detect the validity of the IP address. When the " "synchronization task is executed, only the valid IP address will be " "synchronized.
If the port is 0, all IP addresses are valid." msgstr "" -"A porta é usada para verificar a validade do endereço IP, durante a execução " -"da tarefa de sincronização, apenas os endereços IP válidos serão " -"sincronizados.
Se a porta for 0, significa que todos os endereços IP são " -"válidos." +"A porta é usada para verificar a validade do endereço IP, durante a execução" +" da tarefa de sincronização, apenas os endereços IP válidos serão " +"sincronizados.
Se a porta for 0, significa que todos os endereços IP são" +" válidos." -#: xpack/plugins/cloud/serializers/account_attrs.py:190 +#: xpack/plugins/cloud/serializers/account_attrs.py:191 msgid "Hostname prefix" msgstr "Prefixo de nome do host" -#: xpack/plugins/cloud/serializers/account_attrs.py:193 +#: xpack/plugins/cloud/serializers/account_attrs.py:194 msgid "IP segment" msgstr "Segmento de IP" -#: xpack/plugins/cloud/serializers/account_attrs.py:197 +#: xpack/plugins/cloud/serializers/account_attrs.py:198 msgid "Test port" msgstr "Porta de teste" -#: xpack/plugins/cloud/serializers/account_attrs.py:200 +#: xpack/plugins/cloud/serializers/account_attrs.py:201 msgid "Test timeout" msgstr "Tempo limite de teste" -#: xpack/plugins/cloud/serializers/account_attrs.py:216 +#: xpack/plugins/cloud/serializers/account_attrs.py:217 msgid "Project" msgstr "projeto" @@ -11003,13 +10964,11 @@ msgstr "Número de instâncias" #: xpack/plugins/cloud/tasks.py:33 msgid "" "\n" -" Execute this task when manually or scheduled cloud synchronization " -"tasks are performed\n" +" Execute this task when manually or scheduled cloud synchronization tasks are performed\n" " " msgstr "" "\n" -"Manual, executa esta tarefa ao executar a tarefa de sincronização em nuvem " -"programada" +"Manual, executa esta tarefa ao executar a tarefa de sincronização em nuvem programada" #: xpack/plugins/cloud/tasks.py:52 msgid "Period clean sync instance task execution" @@ -11020,17 +10979,13 @@ msgstr "" #: xpack/plugins/cloud/tasks.py:54 msgid "" "\n" -" Every day, according to the configuration in \"System Settings - " -"Tasks - Regular \n" -" clean-up - Cloud sync task history retention days\" the system will " -"clean up the execution \n" +" Every day, according to the configuration in \"System Settings - Tasks - Regular \n" +" clean-up - Cloud sync task history retention days\" the system will clean up the execution \n" " records generated by cloud synchronization\n" " " msgstr "" "\n" -"Todos os dias, de acordo com as configurações do sistema - lista de tarefas " -"- limpeza regular - configuração de registros de sincronização em nuvem, " -"limpa os registros de execução gerados pela sincronização na nuvem." +"Todos os dias, de acordo com as configurações do sistema - lista de tarefas - limpeza regular - configuração de registros de sincronização em nuvem, limpa os registros de execução gerados pela sincronização na nuvem." #: xpack/plugins/interface/api.py:52 msgid "Restore default successfully." diff --git a/apps/i18n/core/zh/LC_MESSAGES/django.po b/apps/i18n/core/zh/LC_MESSAGES/django.po index 2aeb05b39..6377d08f8 100644 --- a/apps/i18n/core/zh/LC_MESSAGES/django.po +++ b/apps/i18n/core/zh/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: JumpServer 0.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-19 15:10+0800\n" +"POT-Creation-Date: 2025-01-08 14:25+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n" "Last-Translator: ibuler \n" "Language-Team: JumpServer team\n" @@ -364,7 +364,7 @@ msgstr "用户 %s 查看/导出 了密码" #: accounts/serializers/automations/change_secret.py:150 #: accounts/templates/accounts/asset_account_change_info.html:7 #: accounts/templates/accounts/change_secret_failed_info.html:11 -#: acls/serializers/base.py:123 assets/models/asset/common.py:102 +#: acls/serializers/base.py:130 assets/models/asset/common.py:102 #: assets/models/asset/common.py:362 assets/models/cmd_filter.py:36 #: audits/models.py:58 authentication/models/connection_token.py:36 #: perms/models/asset_permission.py:69 terminal/backends/command/models.py:17 @@ -407,7 +407,7 @@ msgstr "来源 ID" #: accounts/serializers/automations/change_secret.py:120 #: accounts/serializers/automations/change_secret.py:151 #: accounts/templates/accounts/change_secret_failed_info.html:12 -#: acls/serializers/base.py:124 +#: acls/serializers/base.py:131 #: acls/templates/acls/asset_login_reminder.html:10 #: assets/serializers/gateway.py:33 audits/models.py:59 #: authentication/api/connection_token.py:459 ops/models/base.py:18 @@ -512,7 +512,7 @@ msgid "Trigger mode" msgstr "触发模式" #: accounts/models/automations/backup_account.py:140 audits/models.py:203 -#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:176 +#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:179 #: xpack/plugins/cloud/models.py:231 msgid "Reason" msgstr "原因" @@ -937,7 +937,7 @@ msgstr "已修改" #: ops/models/job.py:155 ops/serializers/job.py:20 #: perms/serializers/permission.py:46 #: terminal/templates/terminal/_msg_command_execute_alert.html:16 -#: xpack/plugins/cloud/manager.py:89 +#: xpack/plugins/cloud/manager.py:92 msgid "Assets" msgstr "资产" @@ -964,7 +964,7 @@ msgstr "特殊信息" msgid "ID" msgstr "ID" -#: accounts/serializers/account/account.py:475 acls/serializers/base.py:116 +#: accounts/serializers/account/account.py:475 acls/serializers/base.py:123 #: acls/templates/acls/asset_login_reminder.html:8 #: acls/templates/acls/user_login_reminder.html:8 #: assets/models/cmd_filter.py:24 assets/models/label.py:16 audits/models.py:54 @@ -972,7 +972,7 @@ msgstr "ID" #: audits/serializers.py:195 authentication/models/connection_token.py:32 #: authentication/models/ssh_key.py:22 authentication/models/sso_token.py:16 #: notifications/models/notification.py:12 -#: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:63 +#: perms/api/user_permission/mixin.py:58 perms/models/asset_permission.py:63 #: rbac/builtin.py:125 rbac/models/rolebinding.py:49 #: rbac/serializers/rolebinding.py:17 terminal/backends/command/models.py:16 #: terminal/models/session/session.py:31 terminal/models/session/sharing.py:34 @@ -1519,15 +1519,15 @@ msgstr "" msgid "IP/Host" msgstr "IP/主机" -#: acls/serializers/base.py:91 +#: acls/serializers/base.py:98 msgid "Recipients" msgstr "接收人" -#: acls/serializers/base.py:103 tickets/serializers/ticket/ticket.py:77 +#: acls/serializers/base.py:110 tickets/serializers/ticket/ticket.py:77 msgid "The organization `{}` does not exist" msgstr "组织 `{}` 不存在" -#: acls/serializers/base.py:109 +#: acls/serializers/base.py:116 msgid "None of the reviewers belong to Organization `{}`" msgstr "所有复核人都不属于组织 `{}`" @@ -1742,7 +1742,7 @@ msgstr "脚本" #: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:76 #: settings/serializers/feature.py:80 settings/serializers/feature.py:93 #: settings/serializers/msg.py:30 terminal/models/component/endpoint.py:14 -#: terminal/serializers/applet.py:17 xpack/plugins/cloud/manager.py:89 +#: terminal/serializers/applet.py:17 xpack/plugins/cloud/manager.py:92 #: xpack/plugins/cloud/serializers/account_attrs.py:72 msgid "Host" msgstr "主机" @@ -2794,7 +2794,7 @@ msgstr "映射目录" #: audits/const.py:23 rbac/tree.py:268 terminal/api/session/session.py:284 #: terminal/templates/terminal/_msg_command_warning.html:18 #: terminal/templates/terminal/_msg_session_sharing.html:10 -#: xpack/plugins/cloud/manager.py:90 +#: xpack/plugins/cloud/manager.py:93 msgid "View" msgstr "查看" @@ -3002,7 +3002,7 @@ msgid "Creator" msgstr "创建者" #: audits/serializers.py:39 ops/models/base.py:52 ops/models/job.py:240 -#: xpack/plugins/cloud/manager.py:99 +#: xpack/plugins/cloud/manager.py:102 msgid "Summary" msgstr "汇总" @@ -3181,7 +3181,7 @@ msgid "No available face feature" msgstr "没有可用的人脸特征" #: authentication/api/face.py:100 authentication/mfa/face.py:21 -#: authentication/mfa/face.py:23 +#: authentication/mfa/face.py:23 users/views/profile/face.py:72 msgid "Facial comparison failed" msgstr "人脸比对失败" @@ -3500,11 +3500,11 @@ msgstr "自定义 MFA 全局开启,无法被禁用" msgid "Face Recognition" msgstr "人脸识别" -#: authentication/mfa/face.py:54 +#: authentication/mfa/face.py:55 msgid "Bind face to enable" msgstr "绑定人脸特征以启用" -#: authentication/mfa/face.py:58 +#: authentication/mfa/face.py:59 msgid "Unbind face to disable" msgstr "解绑人脸特征以禁用" @@ -3679,13 +3679,13 @@ msgstr "私有令牌" #: authentication/models/ssh_key.py:15 terminal/serializers/storage.py:146 #: users/models/user/__init__.py:93 -#: xpack/plugins/cloud/serializers/account_attrs.py:213 +#: xpack/plugins/cloud/serializers/account_attrs.py:214 msgid "Private key" msgstr "ssh私钥" #: authentication/models/ssh_key.py:18 settings/serializers/terminal.py:34 #: users/forms/profile.py:175 users/models/user/__init__.py:96 -#: xpack/plugins/cloud/serializers/account_attrs.py:210 +#: xpack/plugins/cloud/serializers/account_attrs.py:211 msgid "Public key" msgstr "SSH公钥" @@ -4130,15 +4130,15 @@ msgstr "跳转中" msgid "Redirecting to {} authentication" msgstr "正在跳转到 {} 认证" -#: authentication/views/login.py:243 +#: authentication/views/login.py:247 msgid "Login timeout, please try again." msgstr "登录超时,请重新登录" -#: authentication/views/login.py:288 +#: authentication/views/login.py:292 msgid "User email already exists ({})" msgstr "用户邮箱已存在 ({})" -#: authentication/views/login.py:366 +#: authentication/views/login.py:370 msgid "" "Wait for {} confirm, You also can copy link to her/him
\n" " Don't close this page" @@ -4146,15 +4146,15 @@ msgstr "" "等待 {} 确认, 你也可以复制链接发给他/她
\n" " 不要关闭本页面" -#: authentication/views/login.py:371 +#: authentication/views/login.py:375 msgid "No ticket found" msgstr "没有发现工单" -#: authentication/views/login.py:407 +#: authentication/views/login.py:411 msgid "Logout success" msgstr "退出登录成功" -#: authentication/views/login.py:408 +#: authentication/views/login.py:412 msgid "Logout success, return login page" msgstr "退出登录成功,返回到登录页面" @@ -4245,7 +4245,7 @@ msgstr "企业专业版" msgid "Ultimate edition" msgstr "企业旗舰版" -#: common/const/common.py:5 xpack/plugins/cloud/manager.py:417 +#: common/const/common.py:5 xpack/plugins/cloud/manager.py:424 #, python-format msgid "%(name)s was created successfully" msgstr "%(name)s 创建成功" @@ -4309,8 +4309,8 @@ msgstr "无效的ID,应为列表" #: common/serializers/fields.py:144 terminal/serializers/session.py:81 #: tickets/serializers/ticket/common.py:58 #: xpack/plugins/cloud/serializers/account_attrs.py:56 -#: xpack/plugins/cloud/serializers/account_attrs.py:79 -#: xpack/plugins/cloud/serializers/account_attrs.py:150 +#: xpack/plugins/cloud/serializers/account_attrs.py:80 +#: xpack/plugins/cloud/serializers/account_attrs.py:151 msgid "This field is required." msgstr "该字段是必填项。" @@ -5134,12 +5134,13 @@ msgstr "变量名" #: ops/models/variable.py:12 ops/serializers/variable.py:23 msgid "" -"The variable name used in the script has a fixed prefix 'jms_' followed by " -"the input variable name. For example, if the variable name is 'name,' the " -"final generated environment variable will be 'jms_name'." +"The variable name used in the script will have a fixed prefix jms_ added to " +"the input variable name. For example, if the input variable name is name, " +"the resulting environment variable will be jms_name, and it can be " +"referenced in the script using {{ jms_name }}" msgstr "" "在脚本使用的变量名称,固定前缀 jms_ + 输入的变量名,例如变量名name,则最终生" -"成环境变量为 jms_name" +"成环境变量为 jms_name,在脚本中引用时使用 {{ jms_name }}" #: ops/models/variable.py:16 ops/serializers/variable.py:31 msgid "Default Value" @@ -5225,11 +5226,11 @@ msgid "" "is the value." msgstr "每项单独一行,每行可以用英文冒号分割前边是显示的内容后边是值" -#: ops/tasks.py:53 +#: ops/tasks.py:54 msgid "Run ansible task" msgstr "运行 Ansible 任务" -#: ops/tasks.py:56 +#: ops/tasks.py:57 msgid "" "Execute scheduled adhoc and playbooks, periodically invoking the task for " "execution" @@ -5243,19 +5244,19 @@ msgstr "开始执行 Ansible 任务" msgid "Execute the task when manually adhoc or playbooks" msgstr "手动执行快捷命令,playbook时执行该任务" -#: ops/tasks.py:107 +#: ops/tasks.py:106 msgid "Clear celery periodic tasks" msgstr "清理周期任务" -#: ops/tasks.py:109 +#: ops/tasks.py:108 msgid "At system startup, clean up celery tasks that no longer exist" msgstr "系统启动时,清理已经不存在的celery任务" -#: ops/tasks.py:133 +#: ops/tasks.py:132 msgid "Create or update periodic tasks" msgstr "创建或更新周期任务" -#: ops/tasks.py:135 +#: ops/tasks.py:134 msgid "" "With version iterations, new tasks may be added, or task names and execution " "times may \n" @@ -5266,11 +5267,11 @@ msgstr "" "随着版本迭代,可能会新增任务或者修改任务的名称,执行时间,所以在系统启动时," "将会注册任务或者更新定时任务参数" -#: ops/tasks.py:148 +#: ops/tasks.py:147 msgid "Periodic check service performance" msgstr "周期检测服务性能" -#: ops/tasks.py:150 +#: ops/tasks.py:149 msgid "" "Check every hour whether each component is offline and whether the CPU, " "memory, \n" @@ -5280,11 +5281,11 @@ msgstr "" "每小时检测各组件是否离线,cpu,内存,硬盘使用率是否超过阈值,向管理员发送消息" "预警" -#: ops/tasks.py:160 +#: ops/tasks.py:159 msgid "Clean up unexpected jobs" msgstr "清理异常作业" -#: ops/tasks.py:162 +#: ops/tasks.py:161 msgid "" "Due to exceptions caused by executing adhoc and playbooks in the Job " "Center, \n" @@ -5297,11 +5298,11 @@ msgstr "" "由于作业中心执行快捷命令,playbook会产生异常,任务状态未更新完成,系统将每小" "时执行清理超3小时未完成的异常作业,并将任务标记失败" -#: ops/tasks.py:175 +#: ops/tasks.py:174 msgid "Clean job_execution db record" msgstr "清理作业中心执行历史" -#: ops/tasks.py:177 +#: ops/tasks.py:176 msgid "" "Due to the execution of adhoc and playbooks in the Job Center, execution " "records will \n" @@ -5755,7 +5756,7 @@ msgstr "系统设置" msgid "Session audits" msgstr "会话审计" -#: rbac/tree.py:49 xpack/plugins/cloud/manager.py:90 +#: rbac/tree.py:49 xpack/plugins/cloud/manager.py:93 msgid "Cloud import" msgstr "云同步" @@ -5798,7 +5799,7 @@ msgid "Appearance" msgstr "界面" #: rbac/tree.py:65 xpack/plugins/license/meta.py:10 -#: xpack/plugins/license/models.py:151 +#: xpack/plugins/license/models.py:153 msgid "License" msgstr "许可证" @@ -6543,7 +6544,7 @@ msgid "SSO auth key TTL" msgstr "令牌有效期" #: settings/serializers/auth/sso.py:20 -#: xpack/plugins/cloud/serializers/account_attrs.py:200 +#: xpack/plugins/cloud/serializers/account_attrs.py:201 msgid "Unit: second" msgstr "单位: 秒" @@ -6705,7 +6706,7 @@ msgid "Tenant ID" msgstr "租户 ID" #: settings/serializers/feature.py:109 terminal/serializers/storage.py:68 -#: xpack/plugins/cloud/manager.py:107 xpack/plugins/cloud/manager.py:112 +#: xpack/plugins/cloud/manager.py:110 xpack/plugins/cloud/manager.py:115 #: xpack/plugins/cloud/models.py:287 msgid "Region" msgstr "地域" @@ -7639,7 +7640,7 @@ msgstr "无法删除正在使用的存储: {}" msgid "Command storages" msgstr "命令存储" -#: terminal/api/component/storage.py:84 xpack/plugins/cloud/manager.py:107 +#: terminal/api/component/storage.py:84 xpack/plugins/cloud/manager.py:110 msgid "Invalid" msgstr "无效" @@ -9809,7 +9810,7 @@ msgstr "重定向到 JumpServer 客户端" msgid "Face binding successful" msgstr "绑定人脸特征成功" -#: users/views/profile/face.py:80 users/views/profile/face.py:81 +#: users/views/profile/face.py:82 users/views/profile/face.py:83 msgid "Face unbinding successful" msgstr "解绑人脸特征成功" @@ -10005,19 +10006,19 @@ msgstr "实例名称和部分IP" msgid "Succeed" msgstr "成功" -#: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:95 +#: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:98 msgid "Unsync" msgstr "未同步" -#: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:94 +#: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:97 msgid "New Sync" msgstr "新同步" -#: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:94 +#: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:97 msgid "Synced" msgstr "已同步" -#: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:96 +#: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:99 msgid "Released" msgstr "已释放" @@ -10037,45 +10038,45 @@ msgstr "已同步组织" msgid "Imported" msgstr "导入" -#: xpack/plugins/cloud/manager.py:48 +#: xpack/plugins/cloud/manager.py:51 #, python-format msgid "Task \"%s\" starts executing" msgstr "任务 \"%s\" 开始执行" -#: xpack/plugins/cloud/manager.py:87 +#: xpack/plugins/cloud/manager.py:90 msgid "View the task details path: " msgstr "查看详情" -#: xpack/plugins/cloud/manager.py:90 +#: xpack/plugins/cloud/manager.py:93 msgid "Account Details" msgstr "账号" -#: xpack/plugins/cloud/manager.py:91 +#: xpack/plugins/cloud/manager.py:94 msgid "Synchronization History List" msgstr "同步历史列表" -#: xpack/plugins/cloud/manager.py:91 +#: xpack/plugins/cloud/manager.py:94 msgid "Synchronization Instance List" msgstr "同步实例列表" -#: xpack/plugins/cloud/manager.py:95 +#: xpack/plugins/cloud/manager.py:98 msgid "To be released" msgstr "待释放" -#: xpack/plugins/cloud/manager.py:99 +#: xpack/plugins/cloud/manager.py:102 msgid "Task execution completed" msgstr "任务执行完成" -#: xpack/plugins/cloud/manager.py:104 +#: xpack/plugins/cloud/manager.py:107 msgid "Synchronization regions" msgstr "同步地区" -#: xpack/plugins/cloud/manager.py:129 +#: xpack/plugins/cloud/manager.py:132 #, python-format msgid "Get instances of region \"%s\" error, error: %s" msgstr "获取区域 \"%s\" 的实例错误,错误:%s" -#: xpack/plugins/cloud/manager.py:175 +#: xpack/plugins/cloud/manager.py:178 #, python-format msgid "Failed to synchronize the instance \"%s\"" msgstr "无法同步实例 %s" @@ -10087,42 +10088,42 @@ msgid "" "platform type. Skip platform and protocol updates" msgstr "资产“%s”的更新平台与原平台类型不一致。跳过平台和协议更新" -#: xpack/plugins/cloud/manager.py:399 +#: xpack/plugins/cloud/manager.py:406 #, python-format msgid "The asset \"%s\" already exists" msgstr "资产 \"%s\" 已存在" -#: xpack/plugins/cloud/manager.py:401 +#: xpack/plugins/cloud/manager.py:408 #, python-format msgid "Update asset \"%s\"" msgstr "更新资产 \"%s\"" -#: xpack/plugins/cloud/manager.py:404 +#: xpack/plugins/cloud/manager.py:411 #, python-format msgid "Asset \"%s\" has been updated" msgstr "资产 \"%s\" 已更新" -#: xpack/plugins/cloud/manager.py:413 +#: xpack/plugins/cloud/manager.py:420 #, python-format msgid "Prepare to create asset \"%s\"" msgstr "准备创建资产 %s" -#: xpack/plugins/cloud/manager.py:434 +#: xpack/plugins/cloud/manager.py:441 #, python-format msgid "Set nodes \"%s\"" -msgstr "删除节点: \"%s\"" +msgstr "设置节点: \"%s\"" -#: xpack/plugins/cloud/manager.py:460 +#: xpack/plugins/cloud/manager.py:467 #, python-format msgid "Set accounts \"%s\"" -msgstr "删除账号: %s" +msgstr "设置账号: %s" -#: xpack/plugins/cloud/manager.py:476 +#: xpack/plugins/cloud/manager.py:483 #, python-format msgid "Set protocols \"%s\"" msgstr "设置协议 \"%s\"" -#: xpack/plugins/cloud/manager.py:490 xpack/plugins/cloud/tasks.py:31 +#: xpack/plugins/cloud/manager.py:497 xpack/plugins/cloud/tasks.py:31 msgid "Run sync instance task" msgstr "执行同步实例任务" @@ -10516,51 +10517,55 @@ msgstr "Access key id" msgid "Subscription ID" msgstr "订阅 ID" -#: xpack/plugins/cloud/serializers/account_attrs.py:98 -#: xpack/plugins/cloud/serializers/account_attrs.py:102 -#: xpack/plugins/cloud/serializers/account_attrs.py:126 -#: xpack/plugins/cloud/serializers/account_attrs.py:156 -#: xpack/plugins/cloud/serializers/account_attrs.py:206 +#: xpack/plugins/cloud/serializers/account_attrs.py:74 +msgid "Auto node classification" +msgstr "自动节点分类" + +#: xpack/plugins/cloud/serializers/account_attrs.py:99 +#: xpack/plugins/cloud/serializers/account_attrs.py:103 +#: xpack/plugins/cloud/serializers/account_attrs.py:127 +#: xpack/plugins/cloud/serializers/account_attrs.py:157 +#: xpack/plugins/cloud/serializers/account_attrs.py:207 msgid "API Endpoint" msgstr "API 端点" -#: xpack/plugins/cloud/serializers/account_attrs.py:108 +#: xpack/plugins/cloud/serializers/account_attrs.py:109 msgid "Auth url" msgstr "认证地址" -#: xpack/plugins/cloud/serializers/account_attrs.py:109 +#: xpack/plugins/cloud/serializers/account_attrs.py:110 msgid "eg: http://openstack.example.com:5000/v3" msgstr "如: http://openstack.example.com:5000/v3" -#: xpack/plugins/cloud/serializers/account_attrs.py:112 +#: xpack/plugins/cloud/serializers/account_attrs.py:113 msgid "User domain" msgstr "用户域" -#: xpack/plugins/cloud/serializers/account_attrs.py:127 +#: xpack/plugins/cloud/serializers/account_attrs.py:128 msgid "Cert File" msgstr "证书文件" -#: xpack/plugins/cloud/serializers/account_attrs.py:128 +#: xpack/plugins/cloud/serializers/account_attrs.py:129 msgid "Key File" msgstr "密钥文件" -#: xpack/plugins/cloud/serializers/account_attrs.py:144 +#: xpack/plugins/cloud/serializers/account_attrs.py:145 msgid "Service account key" msgstr "服务账号密钥" -#: xpack/plugins/cloud/serializers/account_attrs.py:145 +#: xpack/plugins/cloud/serializers/account_attrs.py:146 msgid "The file is in JSON format" msgstr "JSON 格式的文件" -#: xpack/plugins/cloud/serializers/account_attrs.py:163 +#: xpack/plugins/cloud/serializers/account_attrs.py:164 msgid "IP address invalid `{}`, {}" msgstr "IP 地址无效: `{}`, {}" -#: xpack/plugins/cloud/serializers/account_attrs.py:179 +#: xpack/plugins/cloud/serializers/account_attrs.py:180 msgid "Such as: 192.168.1.0/24, 10.0.0.0-10.0.0.255" msgstr "例: 192.168.1.0/24,10.0.0.0-10.0.0.255" -#: xpack/plugins/cloud/serializers/account_attrs.py:182 +#: xpack/plugins/cloud/serializers/account_attrs.py:183 msgid "" "The port is used to detect the validity of the IP address. When the " "synchronization task is executed, only the valid IP address will be " @@ -10569,23 +10574,23 @@ msgstr "" "端口用来检测 IP 地址的有效性,在同步任务执行时,只会同步有效的 IP 地址。
" "如果端口为 0,则表示所有 IP 地址均有效。" -#: xpack/plugins/cloud/serializers/account_attrs.py:190 +#: xpack/plugins/cloud/serializers/account_attrs.py:191 msgid "Hostname prefix" msgstr "主机名前缀" -#: xpack/plugins/cloud/serializers/account_attrs.py:193 +#: xpack/plugins/cloud/serializers/account_attrs.py:194 msgid "IP segment" msgstr "IP 网段" -#: xpack/plugins/cloud/serializers/account_attrs.py:197 +#: xpack/plugins/cloud/serializers/account_attrs.py:198 msgid "Test port" msgstr "测试端口" -#: xpack/plugins/cloud/serializers/account_attrs.py:200 +#: xpack/plugins/cloud/serializers/account_attrs.py:201 msgid "Test timeout" msgstr "测试超时时间" -#: xpack/plugins/cloud/serializers/account_attrs.py:216 +#: xpack/plugins/cloud/serializers/account_attrs.py:217 msgid "Project" msgstr "project" @@ -10678,3 +10683,9 @@ msgstr "许可证导入成功" #: xpack/plugins/license/api.py:53 msgid "Invalid license" msgstr "许可证无效" + +#~ msgid "Start sending backup emails" +#~ msgstr "发送备份邮件" + +#~ msgid "domain_name" +#~ msgstr "域名" diff --git a/apps/i18n/core/zh_Hant/LC_MESSAGES/django.po b/apps/i18n/core/zh_Hant/LC_MESSAGES/django.po index 007186d8c..7bc540151 100644 --- a/apps/i18n/core/zh_Hant/LC_MESSAGES/django.po +++ b/apps/i18n/core/zh_Hant/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: JumpServer 0.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-19 15:10+0800\n" +"POT-Creation-Date: 2025-01-08 14:25+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n" "Last-Translator: ibuler \n" "Language-Team: JumpServer team\n" @@ -16,8 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.4.3\n" -"X-ZhConverter: 繁化姬 dict-74c8d060-r1048 @ 2024/04/07 18:19:20 | https://" -"zhconvert.org\n" +"X-ZhConverter: 繁化姬 dict-74c8d060-r1048 @ 2024/04/07 18:19:20 | https://zhconvert.org\n" #: accounts/api/automations/base.py:79 tickets/api/ticket.py:132 msgid "The parameter 'action' must be [{}]" @@ -193,7 +192,8 @@ msgstr "收集" msgid "Template" msgstr "模板" -#: accounts/const/account.py:32 ops/const.py:46 xpack/plugins/cloud/const.py:68 +#: accounts/const/account.py:32 ops/const.py:46 +#: xpack/plugins/cloud/const.py:68 msgid "Skip" msgstr "跳過" @@ -366,7 +366,7 @@ msgstr "用戶 %s 查看/匯出 了密碼" #: accounts/serializers/automations/change_secret.py:150 #: accounts/templates/accounts/asset_account_change_info.html:7 #: accounts/templates/accounts/change_secret_failed_info.html:11 -#: acls/serializers/base.py:123 assets/models/asset/common.py:102 +#: acls/serializers/base.py:130 assets/models/asset/common.py:102 #: assets/models/asset/common.py:362 assets/models/cmd_filter.py:36 #: audits/models.py:58 authentication/models/connection_token.py:36 #: perms/models/asset_permission.py:69 terminal/backends/command/models.py:17 @@ -409,13 +409,13 @@ msgstr "來源 ID" #: accounts/serializers/automations/change_secret.py:120 #: accounts/serializers/automations/change_secret.py:151 #: accounts/templates/accounts/change_secret_failed_info.html:12 -#: acls/serializers/base.py:124 +#: acls/serializers/base.py:131 #: acls/templates/acls/asset_login_reminder.html:10 #: assets/serializers/gateway.py:33 audits/models.py:59 #: authentication/api/connection_token.py:459 ops/models/base.py:18 #: perms/models/asset_permission.py:75 settings/serializers/msg.py:33 -#: terminal/backends/command/models.py:18 terminal/models/session/session.py:35 -#: terminal/serializers/command.py:72 +#: terminal/backends/command/models.py:18 +#: terminal/models/session/session.py:35 terminal/serializers/command.py:72 #: terminal/templates/terminal/_msg_command_warning.html:8 #: terminal/templates/terminal/_msg_session_sharing.html:8 #: tickets/models/ticket/command_confirm.py:13 @@ -514,7 +514,7 @@ msgid "Trigger mode" msgstr "觸發模式" #: accounts/models/automations/backup_account.py:140 audits/models.py:203 -#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:176 +#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:179 #: xpack/plugins/cloud/models.py:231 msgid "Reason" msgstr "原因" @@ -740,9 +740,11 @@ msgstr "密碼規則" #: perms/models/asset_permission.py:61 rbac/models/role.py:29 #: rbac/serializers/role.py:28 settings/models.py:35 settings/models.py:184 #: settings/serializers/msg.py:89 settings/serializers/terminal.py:9 -#: terminal/models/applet/applet.py:34 terminal/models/component/endpoint.py:13 +#: terminal/models/applet/applet.py:34 +#: terminal/models/component/endpoint.py:13 #: terminal/models/component/endpoint.py:112 -#: terminal/models/component/storage.py:26 terminal/models/component/task.py:13 +#: terminal/models/component/storage.py:26 +#: terminal/models/component/task.py:13 #: terminal/models/component/terminal.py:85 #: terminal/models/virtualapp/provider.py:10 #: terminal/models/virtualapp/virtualapp.py:19 tickets/api/ticket.py:87 @@ -817,8 +819,7 @@ msgstr "登錄資產時,帳號使用者名稱與使用者使用者名稱相同 msgid "" "Connect asset without using a username and password, and it only supports " "web-based and custom-type assets" -msgstr "" -"連接資產時不使用使用者名稱和密碼的帳號,僅支持 web類型 和 自訂類型 的資產" +msgstr "連接資產時不使用使用者名稱和密碼的帳號,僅支持 web類型 和 自訂類型 的資產" #: accounts/notifications.py:12 accounts/notifications.py:37 msgid "Notification of account backup route task results" @@ -835,9 +836,7 @@ msgid "" "{} - The account backup passage task has been completed: the encryption " "password has not been set - please go to personal information -> Basic file " "encryption password for preference settings" -msgstr "" -"{} - 帳號備份任務已完成: 未設置加密密碼 - 請前往個人資訊 -> 偏好設置的基本中" -"設置文件加密密碼" +msgstr "{} - 帳號備份任務已完成: 未設置加密密碼 - 請前往個人資訊 -> 偏好設置的基本中設置文件加密密碼" #: accounts/notifications.py:56 msgid "Notification of implementation result of encryption change plan" @@ -854,9 +853,7 @@ msgid "" "{} - The encryption change task has been completed: the encryption password " "has not been set - please go to personal information -> set encryption " "password in preferences" -msgstr "" -"{} - 改密任務已完成: 未設置加密密碼 - 請前往個人資訊 -> 偏好設置中設置加密密" -"碼" +msgstr "{} - 改密任務已完成: 未設置加密密碼 - 請前往個人資訊 -> 偏好設置中設置加密密碼" #: accounts/notifications.py:83 msgid "Gather account change information" @@ -899,9 +896,9 @@ msgstr "類別" #: assets/serializers/asset/common.py:146 assets/serializers/platform.py:159 #: assets/serializers/platform.py:171 audits/serializers.py:77 #: audits/serializers.py:194 -#: authentication/serializers/connect_token_secret.py:126 ops/models/job.py:153 -#: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:40 -#: terminal/models/component/storage.py:58 +#: authentication/serializers/connect_token_secret.py:126 +#: ops/models/job.py:153 perms/serializers/user_permission.py:27 +#: terminal/models/applet/applet.py:40 terminal/models/component/storage.py:58 #: terminal/models/component/storage.py:152 terminal/serializers/applet.py:29 #: terminal/serializers/session.py:25 terminal/serializers/storage.py:281 #: terminal/serializers/storage.py:294 tickets/models/comment.py:26 @@ -939,7 +936,7 @@ msgstr "已修改" #: ops/models/job.py:155 ops/serializers/job.py:20 #: perms/serializers/permission.py:46 #: terminal/templates/terminal/_msg_command_execute_alert.html:16 -#: xpack/plugins/cloud/manager.py:89 +#: xpack/plugins/cloud/manager.py:92 msgid "Assets" msgstr "資產" @@ -966,15 +963,16 @@ msgstr "特殊資訊" msgid "ID" msgstr "ID" -#: accounts/serializers/account/account.py:475 acls/serializers/base.py:116 +#: accounts/serializers/account/account.py:475 acls/serializers/base.py:123 #: acls/templates/acls/asset_login_reminder.html:8 #: acls/templates/acls/user_login_reminder.html:8 -#: assets/models/cmd_filter.py:24 assets/models/label.py:16 audits/models.py:54 -#: audits/models.py:90 audits/models.py:172 audits/models.py:271 -#: audits/serializers.py:195 authentication/models/connection_token.py:32 +#: assets/models/cmd_filter.py:24 assets/models/label.py:16 +#: audits/models.py:54 audits/models.py:90 audits/models.py:172 +#: audits/models.py:271 audits/serializers.py:195 +#: authentication/models/connection_token.py:32 #: authentication/models/ssh_key.py:22 authentication/models/sso_token.py:16 #: notifications/models/notification.py:12 -#: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:63 +#: perms/api/user_permission/mixin.py:58 perms/models/asset_permission.py:63 #: rbac/builtin.py:125 rbac/models/rolebinding.py:49 #: rbac/serializers/rolebinding.py:17 terminal/backends/command/models.py:16 #: terminal/models/session/session.py:31 terminal/models/session/sharing.py:34 @@ -1020,9 +1018,7 @@ msgstr "密鑰密碼" msgid "" "* If no username is required for authentication, enter null. For AD " "accounts, use the format username@domain." -msgstr "" -"提示:如果認證時不需要使用者名稱,可填寫為 null,如果是 AD 帳號,格式為 " -"username@domain" +msgstr "提示:如果認證時不需要使用者名稱,可填寫為 null,如果是 AD 帳號,格式為 username@domain" #: accounts/serializers/account/template.py:13 msgid "Password length" @@ -1055,20 +1051,16 @@ msgid "" "length is the length of the password, and the range is 8 to 30.\n" "lowercase indicates whether the password contains lowercase letters, \n" "uppercase indicates whether it contains uppercase letters,\n" -"digit indicates whether it contains numbers, and symbol indicates whether it " -"contains special symbols.\n" -"exclude_symbols is used to exclude specific symbols. You can fill in the " -"symbol characters to be excluded (up to 16). \n" +"digit indicates whether it contains numbers, and symbol indicates whether it contains special symbols.\n" +"exclude_symbols is used to exclude specific symbols. You can fill in the symbol characters to be excluded (up to 16). \n" "If you do not need to exclude symbols, you can leave it blank.\n" -"default: {\"length\": 16, \"lowercase\": true, \"uppercase\": true, " -"\"digit\": true, \"symbol\": true, \"exclude_symbols\": \"\"}" +"default: {\"length\": 16, \"lowercase\": true, \"uppercase\": true, \"digit\": true, \"symbol\": true, \"exclude_symbols\": \"\"}" msgstr "" -"length 是密碼的長度,填入範圍為 8 到 30。lowercase 表示密碼中是否包含小寫字" -"母,uppercase 表示是否包含大寫字母,digit 表示是否包含數字,symbol 表示是否包" -"含特殊符號。exclude_symbols 用於排除特定符號,您可以填寫要排除的符號字元(最" -"多 16 個),如果無需排除符號,可以留空。預設: {\"length\": 16, " -"\"lowercase\": true, \"uppercase\": true, \"digit\": true, \"symbol\": true, " -"\"exclude_symbols\": \"\"}" +"length 是密碼的長度,填入範圍為 8 到 30。lowercase 表示密碼中是否包含小寫字母,uppercase " +"表示是否包含大寫字母,digit 表示是否包含數字,symbol 表示是否包含特殊符號。exclude_symbols " +"用於排除特定符號,您可以填寫要排除的符號字元(最多 16 個),如果無需排除符號,可以留空。預設: {\"length\": 16, " +"\"lowercase\": true, \"uppercase\": true, \"digit\": true, \"symbol\": true," +" \"exclude_symbols\": \"\"}" #: accounts/serializers/account/template.py:49 msgid "Secret generation strategy for account creation" @@ -1085,11 +1077,11 @@ msgid "" msgstr "關聯平台,可配置推送參數,如果不關聯,將使用默認參數" #: accounts/serializers/account/virtual.py:19 assets/models/cmd_filter.py:40 -#: assets/models/cmd_filter.py:88 common/db/models.py:36 ops/models/adhoc.py:25 -#: ops/models/job.py:163 ops/models/playbook.py:31 rbac/models/role.py:37 -#: settings/models.py:40 terminal/models/applet/applet.py:46 -#: terminal/models/applet/applet.py:332 terminal/models/applet/host.py:143 -#: terminal/models/component/endpoint.py:27 +#: assets/models/cmd_filter.py:88 common/db/models.py:36 +#: ops/models/adhoc.py:25 ops/models/job.py:163 ops/models/playbook.py:31 +#: rbac/models/role.py:37 settings/models.py:40 +#: terminal/models/applet/applet.py:46 terminal/models/applet/applet.py:332 +#: terminal/models/applet/host.py:143 terminal/models/component/endpoint.py:27 #: terminal/models/component/endpoint.py:122 #: terminal/models/session/session.py:48 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 @@ -1104,9 +1096,8 @@ msgid "" "asset secret > Login secret > Manual input.
For security, please set " "config CACHE_LOGIN_PASSWORD_ENABLED to true" msgstr "" -"當前僅支持 AD/LDAP 登錄方式用戶。 同名帳號密碼生效順序: 資產上存在的同名帳號" -"密碼 > 登錄密碼 > 手動輸入
為了安全起見,請設置配置項 " -"CACHE_LOGIN_PASSWORD_ENABLED=true,重啟服務才能開啟" +"當前僅支持 AD/LDAP 登錄方式用戶。 同名帳號密碼生效順序: 資產上存在的同名帳號密碼 > 登錄密碼 > 手動輸入
" +"為了安全起見,請設置配置項 CACHE_LOGIN_PASSWORD_ENABLED=true,重啟服務才能開啟" #: accounts/serializers/automations/base.py:23 #: assets/models/asset/common.py:176 assets/serializers/asset/common.py:172 @@ -1169,15 +1160,10 @@ msgstr "帳號執行自動化" #: accounts/tasks/automation.py:35 msgid "" -"Unified execution entry for account automation tasks: when the system " -"performs tasks \n" -" such as account push, password change, account verification, account " -"collection, \n" -" and gateway account verification, all tasks are executed through " -"this unified entry" -msgstr "" -"帳號自動化任務統一執行入口,當系統執行帳號推送,更改密碼,驗證帳號,收集帳" -"號,驗證網關帳號任務時,統一透過當前任務執行" +"Unified execution entry for account automation tasks: when the system performs tasks \n" +" such as account push, password change, account verification, account collection, \n" +" and gateway account verification, all tasks are executed through this unified entry" +msgstr "帳號自動化任務統一執行入口,當系統執行帳號推送,更改密碼,驗證帳號,收集帳號,驗證網關帳號任務時,統一透過當前任務執行" #: accounts/tasks/automation.py:64 accounts/tasks/automation.py:72 msgid "Execute automation record" @@ -1193,27 +1179,18 @@ msgstr "週期清理改密記錄和推送記錄" #: accounts/tasks/automation.py:98 msgid "" -"The system will periodically clean up unnecessary password change and push " -"records, \n" -" including their associated change tasks, execution logs, assets, and " -"accounts. When any \n" -" of these associated items are deleted, the corresponding password " -"change and push records \n" -" become invalid. Therefore, to maintain a clean and efficient " -"database, the system will \n" -" clean up expired records at 2 a.m daily, based on the interval " -"specified by \n" -" PERM_EXPIRED_CHECK_PERIODIC in the config.txt configuration file. " -"This periodic cleanup \n" -" mechanism helps free up storage space and enhances the security and " -"overall performance \n" +"The system will periodically clean up unnecessary password change and push records, \n" +" including their associated change tasks, execution logs, assets, and accounts. When any \n" +" of these associated items are deleted, the corresponding password change and push records \n" +" become invalid. Therefore, to maintain a clean and efficient database, the system will \n" +" clean up expired records at 2 a.m daily, based on the interval specified by \n" +" PERM_EXPIRED_CHECK_PERIODIC in the config.txt configuration file. This periodic cleanup \n" +" mechanism helps free up storage space and enhances the security and overall performance \n" " of data management" msgstr "" -"系統會定期清理不再需要的改密記錄和推送記錄,包括那些關聯的改密任務、執行記" -"錄、資產和帳號。當這些關聯項中的任意一個被刪除時,對應的改密和推送記錄將變為" -"無效。因此,為了保持資料庫的整潔和高效運行,根據系統配置文件 config.txt 中 " -"PERM_EXPIRED_CHECK_PERIODIC 的時間間隔對於超出時間的於每天凌晨2點進行清理。這" -"種定期清理機制不僅有助於釋放存儲空間,還能提高數據管理的安全和整體性能" +"系統會定期清理不再需要的改密記錄和推送記錄,包括那些關聯的改密任務、執行記錄、資產和帳號。當這些關聯項中的任意一個被刪除時,對應的改密和推送記錄將變為無效。因此,為了保持資料庫的整潔和高效運行,根據系統配置文件" +" config.txt 中 PERM_EXPIRED_CHECK_PERIODIC " +"的時間間隔對於超出時間的於每天凌晨2點進行清理。這種定期清理機制不僅有助於釋放存儲空間,還能提高數據管理的安全和整體性能" #: accounts/tasks/backup_account.py:26 msgid "Execute account backup plan" @@ -1244,8 +1221,7 @@ msgstr "當創建帳號,修改帳號時,需要帳號推送時執行該任務 #: accounts/tasks/remove_account.py:28 msgid "" -"When clicking \"Sync deletion\" in 'Console - Gather Account - Gathered " -"accounts' this \n" +"When clicking \"Sync deletion\" in 'Console - Gather Account - Gathered accounts' this \n" " task will be executed" msgstr "當在控制台-自動化-帳號收集-收集的帳號-點擊同步刪除會執行該任務" @@ -1255,16 +1231,12 @@ msgstr "清理歷史帳號" #: accounts/tasks/remove_account.py:52 msgid "" -"Each time an asset account is updated, a historical account is generated, so " -"it is \n" -" necessary to clean up the asset account history. The system will " -"clean up excess account \n" -" records at 2 a.m. daily based on the configuration in the \"System " -"settings - Features - \n" +"Each time an asset account is updated, a historical account is generated, so it is \n" +" necessary to clean up the asset account history. The system will clean up excess account \n" +" records at 2 a.m. daily based on the configuration in the \"System settings - Features - \n" " Account storage - Record limit" msgstr "" -"由於每次更新資產帳號,都會產生歷史帳號,所以需要清理資產帳號的歷史。系統會根" -"據帳號儲存-記錄限制的配置,每天凌晨2點對於超出的數量的帳號記錄進行清理" +"由於每次更新資產帳號,都會產生歷史帳號,所以需要清理資產帳號的歷史。系統會根據帳號儲存-記錄限制的配置,每天凌晨2點對於超出的數量的帳號記錄進行清理" #: accounts/tasks/remove_account.py:89 msgid "Remove historical accounts that are out of range." @@ -1276,8 +1248,7 @@ msgstr "同步資訊到關聯的帳號" #: accounts/tasks/template.py:14 msgid "" -"When clicking 'Sync new secret to accounts' in 'Console - Account - " -"Templates - \n" +"When clicking 'Sync new secret to accounts' in 'Console - Account - Templates - \n" " Accounts' this task will be executed" msgstr "當在控制台-帳號模板-帳號-同步更新帳號信息點擊同步時,執行該任務" @@ -1334,8 +1305,8 @@ msgstr "你好! 以下是資產改密或推送帳戶失敗的情況。 請及 #: accounts/utils.py:52 msgid "" -"If the password starts with {{` and ends with }} `, then the password is not " -"allowed." +"If the password starts with {{` and ends with }} `, then the password is not" +" allowed." msgstr "如果密碼以 `{{` 開始,並且以 `}}` 結束,則該密碼是不允許的。" #: accounts/utils.py:59 @@ -1399,7 +1370,8 @@ msgstr "審批人" #: authentication/models/connection_token.py:54 #: authentication/models/ssh_key.py:13 #: authentication/templates/authentication/_access_key_modal.html:32 -#: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:28 +#: perms/models/asset_permission.py:82 +#: terminal/models/component/endpoint.py:28 #: terminal/models/component/endpoint.py:123 #: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44 #: tickets/const.py:36 @@ -1514,22 +1486,22 @@ msgid "" "10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64 (Domain name " "support)" msgstr "" -"* 表示匹配所有。例如: 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 (支持網域)" +"* 表示匹配所有。例如: 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 (支持網域)" #: acls/serializers/base.py:41 assets/serializers/asset/host.py:19 msgid "IP/Host" msgstr "IP/主機" -#: acls/serializers/base.py:91 +#: acls/serializers/base.py:98 msgid "Recipients" msgstr "接收人" -#: acls/serializers/base.py:103 tickets/serializers/ticket/ticket.py:77 +#: acls/serializers/base.py:110 tickets/serializers/ticket/ticket.py:77 msgid "The organization `{}` does not exist" msgstr "組織 `{}` 不存在" -#: acls/serializers/base.py:109 +#: acls/serializers/base.py:116 msgid "None of the reviewers belong to Organization `{}`" msgstr "所有覆核人都不屬於組織 `{}`" @@ -1543,8 +1515,8 @@ msgid "" "With * indicating a match all. Such as: 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 " msgstr "" -"* 表示匹配所有。例如: 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" +"* 表示匹配所有。例如: 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" #: acls/serializers/rules/rules.py:33 #: authentication/templates/authentication/_msg_oauth_bind.html:12 @@ -1583,9 +1555,7 @@ msgid "" "Please review the login activity to ensure the security and proper usage of " "the asset. If you did not authorize this login or if you notice any " "suspicious activity, please take the necessary actions immediately." -msgstr "" -"請您稽核此登入行為,以確保資產的安全和正確使用。如果您未授權此次登入或發現任" -"何可疑行為,請立即採取必要的行動。" +msgstr "請您稽核此登入行為,以確保資產的安全和正確使用。如果您未授權此次登入或發現任何可疑行為,請立即採取必要的行動。" #: acls/templates/acls/asset_login_reminder.html:16 #: acls/templates/acls/user_login_reminder.html:16 @@ -1744,7 +1714,7 @@ msgstr "腳本" #: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:76 #: settings/serializers/feature.py:80 settings/serializers/feature.py:93 #: settings/serializers/msg.py:30 terminal/models/component/endpoint.py:14 -#: terminal/serializers/applet.py:17 xpack/plugins/cloud/manager.py:89 +#: terminal/serializers/applet.py:17 xpack/plugins/cloud/manager.py:92 #: xpack/plugins/cloud/serializers/account_attrs.py:72 msgid "Host" msgstr "主機" @@ -1816,8 +1786,8 @@ msgstr "舊的 SSH 版本,例如 openssh 5.x 或 6.x" #: assets/const/protocol.py:53 msgid "Netcat help text" msgstr "" -"使用 netcat (nc) 作為代理工具,將連線從代理伺服器轉送到目標主機。適用於不支" -"援 SSH 原生代理選項 (-W) 的環境,或需要更多靈活性和逾時控制的場景。" +"使用 netcat (nc) 作為代理工具,將連線從代理伺服器轉送到目標主機。適用於不支援 SSH 原生代理選項 (-W) " +"的環境,或需要更多靈活性和逾時控制的場景。" #: assets/const/protocol.py:64 msgid "SFTP root" @@ -1830,8 +1800,7 @@ msgid "" "account username
- ${HOME} The home directory of the connected account " "
- ${USER} The username of the user" msgstr "" -"SFTP根目錄,支持變數:
-${ACCOUNT}已連接帳戶使用者名稱
-${HOME}連接帳戶" -"的主目錄
-${USER}用戶的使用者名稱" +"SFTP根目錄,支持變數:
-${ACCOUNT}已連接帳戶使用者名稱
-${HOME}連接帳戶的主目錄
-${USER}用戶的使用者名稱" #: assets/const/protocol.py:81 msgid "Console" @@ -1852,18 +1821,17 @@ msgstr "安全" #: assets/const/protocol.py:89 msgid "" -"Security layer to use for the connection:
Any
Automatically select the " -"security mode based on the security protocols supported by both the client " +"Security layer to use for the connection:
Any
Automatically select the" +" security mode based on the security protocols supported by both the client " "and the server
RDP
Legacy RDP encryption. This mode is generally only " "used for older Windows servers or in cases where a standard Windows login " "screen is desired
TLS
RDP authentication and encryption implemented " "via TLS.
NLA
This mode uses TLS encryption and requires the username " "and password to be given in advance" msgstr "" -"連接的安全層:
Any
根據客戶端和伺服器支援的安全協議自動選擇安全模式" -"
RDP
傳統的 RDP 加密模式。通常僅用於較舊的 Windows 伺服器或需要標準 " -"Windows 登入螢幕的情況
TLS
通過 TLS 實現的 RDP 認證和加密
NLA
此" -"模式使用 TLS 加密,並要求提前提供用戶名和密碼
" +"連接的安全層:
Any
根據客戶端和伺服器支援的安全協議自動選擇安全模式
RDP
傳統的 RDP 加密模式。通常僅用於較舊的 " +"Windows 伺服器或需要標準 Windows 登入螢幕的情況
TLS
通過 TLS 實現的 RDP " +"認證和加密
NLA
此模式使用 TLS 加密,並要求提前提供用戶名和密碼
" #: assets/const/protocol.py:106 msgid "AD domain" @@ -1939,8 +1907,7 @@ msgstr "安全模式" msgid "" "When safe mode is enabled, some operations will be disabled, such as: New " "tab, right click, visit other website, etc." -msgstr "" -"當安全模式啟用時,一些操作將被禁用,例如:新建標籤頁、右鍵、訪問其它網站 等" +msgstr "當安全模式啟用時,一些操作將被禁用,例如:新建標籤頁、右鍵、訪問其它網站 等" #: assets/const/protocol.py:275 assets/models/asset/web.py:9 #: assets/serializers/asset/info/spec.py:16 @@ -2365,9 +2332,7 @@ msgstr "協定,格式為 名稱/連接埠" msgid "" "Accounts, format [{\"name\": \"x\", \"username\": \"x\", \"secret\": \"x\", " "\"secret_type\": \"password\"}]" -msgstr "" -"帳號,格式為 [{\"name\": \"x\", \"username\": \"x\", \"secret\": \"x\", " -"\"secret_type\": \"password\"}]" +msgstr "帳號,格式為 [{\"name\": \"x\", \"username\": \"x\", \"secret\": \"x\", \"secret_type\": \"password\"}]" #: assets/serializers/asset/common.py:135 msgid "" @@ -2417,27 +2382,22 @@ msgstr "默認資料庫" #: assets/serializers/asset/database.py:23 msgid "CA cert help text" msgstr "" -"Common Name (CN) 字段已被棄用,請根據 RFC 5280 使用 Subject Alternative Name " -"(SAN) 字段來驗證網域名,以提高安全性。" +"Common Name (CN) 字段已被棄用,請根據 RFC 5280 使用 Subject Alternative Name (SAN) " +"字段來驗證網域名,以提高安全性。" #: assets/serializers/asset/database.py:24 msgid "Postgresql ssl model help text" msgstr "" "Prefer:我不在乎是否加密,但如果伺服器支持加密,我願意支付加密的費用。\n" -"Require:我希望我的資料被加密,我可以承擔那個費用。我相信網路將確保我始終連接" -"到我想要的伺服器。\n" -"Verify CA:我希望我的資料被加密,我可以承擔那個費用。我想要確認我連接到我信任" -"的伺服器。\n" -"Verify Full:我希望我的資料被加密,我接受負擔。我想確保我連接到我信任的伺服" -"器,並且它是我指定的伺服器。" +"Require:我希望我的資料被加密,我可以承擔那個費用。我相信網路將確保我始終連接到我想要的伺服器。\n" +"Verify CA:我希望我的資料被加密,我可以承擔那個費用。我想要確認我連接到我信任的伺服器。\n" +"Verify Full:我希望我的資料被加密,我接受負擔。我想確保我連接到我信任的伺服器,並且它是我指定的伺服器。" #: assets/serializers/asset/gpt.py:20 msgid "" -"If the server cannot directly connect to the API address, you need set up an " -"HTTP proxy. e.g. http(s)://host:port" -msgstr "" -"如果伺服器不能直接訪問 api 地址,你需要設置一個 HTTP 代理。例如 http(s)://" -"host:port" +"If the server cannot directly connect to the API address, you need set up an" +" HTTP proxy. e.g. http(s)://host:port" +msgstr "如果伺服器不能直接訪問 api 地址,你需要設置一個 HTTP 代理。例如 http(s)://host:port" #: assets/serializers/asset/gpt.py:24 msgid "HTTP proxy" @@ -2613,9 +2573,7 @@ msgid "" "Login with account when accessing assets, then automatically switch to " "another, similar to logging in with a regular account and then switching to " "root" -msgstr "" -"在訪問資產時使用帳戶登入,然後自動切換到另一個帳戶,就像用普通帳戶登入然後切" -"換到 root 一樣" +msgstr "在訪問資產時使用帳戶登入,然後自動切換到另一個帳戶,就像用普通帳戶登入然後切換到 root 一樣" #: assets/serializers/platform.py:209 msgid "Assets can be connected using a zone gateway" @@ -2651,8 +2609,7 @@ msgstr "收集資產資訊" #: assets/tasks/gather_facts.py:25 msgid "" -"When clicking 'Refresh hardware info' in 'Console - Asset Details - Basic' " -"this task \n" +"When clicking 'Refresh hardware info' in 'Console - Asset Details - Basic' this task \n" " will be executed" msgstr "當在控制台資產詳情-基本設定點擊更新硬體資訊執行該任務" @@ -2670,18 +2627,15 @@ msgstr "檢查節點下資產數量" #: assets/tasks/nodes_amount.py:18 msgid "" -"Manually verifying asset quantities updates the asset count for nodes under " -"the \n" -" current organization. This task will be called in the following two " -"cases: when updating \n" +"Manually verifying asset quantities updates the asset count for nodes under the \n" +" current organization. This task will be called in the following two cases: when updating \n" " nodes and when the number of nodes exceeds 100" -msgstr "" -"手動校對資產數量更新當前組織下的節點資產數量;更新節點,當節點數大於100這兩種" -"情況會呼叫該任務" +msgstr "手動校對資產數量更新當前組織下的節點資產數量;更新節點,當節點數大於100這兩種情況會呼叫該任務" #: assets/tasks/nodes_amount.py:34 msgid "" -"The task of self-checking is already running and cannot be started repeatedly" +"The task of self-checking is already running and cannot be started " +"repeatedly" msgstr "自檢程序已經在運行,不能重複啟動" #: assets/tasks/nodes_amount.py:40 @@ -2690,11 +2644,9 @@ msgstr "週期性檢查節點下資產數量" #: assets/tasks/nodes_amount.py:42 msgid "" -"Schedule the check_node_assets_amount_task to periodically update the asset " -"count of \n" +"Schedule the check_node_assets_amount_task to periodically update the asset count of \n" " all nodes under all organizations" -msgstr "" -"定時調用check_node_assets_amount_task任務,更新所有組織下所有節點的資產數量" +msgstr "定時調用check_node_assets_amount_task任務,更新所有組織下所有節點的資產數量" #: assets/tasks/ping.py:20 assets/tasks/ping.py:30 msgid "Test assets connectivity" @@ -2717,8 +2669,8 @@ msgstr "測試網關可連接性" #: assets/tasks/ping_gateway.py:23 msgid "" -"When clicking 'Test Connection' in 'Domain Details - Gateway' this task will " -"be executed" +"When clicking 'Test Connection' in 'Domain Details - Gateway' this task will" +" be executed" msgstr "當在網域詳情-網關-測試連線時執行該任務" #: assets/tasks/utils.py:16 @@ -2742,7 +2694,8 @@ msgid "App Audits" msgstr "日志审计" #: audits/backends/db.py:17 -msgid "The text content is too long. Use Elasticsearch to store operation logs" +msgid "" +"The text content is too long. Use Elasticsearch to store operation logs" msgstr "文字內容太長。請使用 Elasticsearch 儲存操作日誌" #: audits/backends/db.py:78 @@ -2796,7 +2749,7 @@ msgstr "映射目錄" #: audits/const.py:23 rbac/tree.py:268 terminal/api/session/session.py:284 #: terminal/templates/terminal/_msg_command_warning.html:18 #: terminal/templates/terminal/_msg_session_sharing.html:10 -#: xpack/plugins/cloud/manager.py:90 +#: xpack/plugins/cloud/manager.py:93 msgid "View" msgstr "查看" @@ -2843,8 +2796,8 @@ msgstr "結束" #: audits/const.py:46 settings/serializers/terminal.py:6 #: terminal/models/applet/host.py:26 terminal/models/component/terminal.py:182 -#: terminal/models/virtualapp/provider.py:14 terminal/serializers/session.py:57 -#: terminal/serializers/session.py:113 +#: terminal/models/virtualapp/provider.py:14 +#: terminal/serializers/session.py:57 terminal/serializers/session.py:113 msgid "Terminal" msgstr "終端" @@ -2883,7 +2836,8 @@ msgid "Job audit log" msgstr "作業審計" #: audits/models.py:56 audits/models.py:100 audits/models.py:175 -#: terminal/models/session/session.py:40 terminal/models/session/sharing.py:113 +#: terminal/models/session/session.py:40 +#: terminal/models/session/sharing.py:113 msgid "Remote addr" msgstr "遠端地址" @@ -3004,7 +2958,7 @@ msgid "Creator" msgstr "創建者" #: audits/serializers.py:39 ops/models/base.py:52 ops/models/job.py:240 -#: xpack/plugins/cloud/manager.py:99 +#: xpack/plugins/cloud/manager.py:102 msgid "Summary" msgstr "匯總" @@ -3105,17 +3059,13 @@ msgstr "清理資產審計會話任務日誌" #: audits/tasks.py:134 msgid "" -"Since the system generates login logs, operation logs, file upload logs, " -"activity \n" -" logs, Celery execution logs, session recordings, command records, " -"and password change \n" -" logs, it will perform cleanup of records that exceed the time limit " -"according to the \n" +"Since the system generates login logs, operation logs, file upload logs, activity \n" +" logs, Celery execution logs, session recordings, command records, and password change \n" +" logs, it will perform cleanup of records that exceed the time limit according to the \n" " 'Tasks - Regular clean-up' in the system settings at 2 a.m daily" msgstr "" -"由於系統會產生登錄日誌,操作日誌,文件上傳日誌,活動日誌,celery執行日誌,會" -"話錄製和命令記錄,改密日誌,所以系統會根據系統設置-任務列表-定期清理配置,對" -"於超出時間的於每天凌晨2點進行清理" +"由於系統會產生登錄日誌,操作日誌,文件上傳日誌,活動日誌,celery執行日誌,會話錄製和命令記錄,改密日誌,所以系統會根據系統設置-任務列表-" +"定期清理配置,對於超出時間的於每天凌晨2點進行清理" #: audits/tasks.py:154 msgid "Upload FTP file to external storage" @@ -3123,11 +3073,9 @@ msgstr "上傳 FTP 文件到外部儲存" #: audits/tasks.py:156 msgid "" -"If SERVER_REPLAY_STORAGE is configured, files uploaded through file " -"management will be \n" +"If SERVER_REPLAY_STORAGE is configured, files uploaded through file management will be \n" " synchronized to external storage" -msgstr "" -"如果設置了SERVER_REPLAY_STORAGE,將通過文件管理上傳的文件同步到外部儲存" +msgstr "如果設置了SERVER_REPLAY_STORAGE,將通過文件管理上傳的文件同步到外部儲存" #: authentication/api/access_key.py:39 msgid "Access keys can be created at most 10" @@ -3183,7 +3131,7 @@ msgid "No available face feature" msgstr "沒有可用的人臉特徵" #: authentication/api/face.py:100 authentication/mfa/face.py:21 -#: authentication/mfa/face.py:23 +#: authentication/mfa/face.py:23 users/views/profile/face.py:72 msgid "Facial comparison failed" msgstr "臉部比對失敗" @@ -3268,7 +3216,8 @@ msgstr "附加" #: authentication/backends/passkey/models.py:14 #: authentication/models/access_key.py:26 -#: authentication/models/private_token.py:8 authentication/models/ssh_key.py:20 +#: authentication/models/private_token.py:8 +#: authentication/models/ssh_key.py:20 msgid "Date last used" msgstr "最後使用日期" @@ -3347,8 +3296,7 @@ msgid "" "You can also try {times_try} times (The account will be temporarily locked " "for {block_time} minutes)" msgstr "" -"您輸入的使用者名稱或密碼不正確,請重新輸入。 您還可以嘗試 {times_try} 次 (帳" -"號將被臨時 鎖定 {block_time} 分鐘)" +"您輸入的使用者名稱或密碼不正確,請重新輸入。 您還可以嘗試 {times_try} 次 (帳號將被臨時 鎖定 {block_time} 分鐘)" #: authentication/errors/const.py:47 authentication/errors/const.py:55 msgid "" @@ -3365,10 +3313,9 @@ msgstr "IP 已被鎖定 (請聯絡管理員解鎖或 {} 分鐘後重試)" #: authentication/errors/const.py:59 #, python-brace-format msgid "" -"{error}, You can also try {times_try} times (The account will be temporarily " -"locked for {block_time} minutes)" -msgstr "" -"{error},您還可以嘗試 {times_try} 次 (帳號將被臨時鎖定 {block_time} 分鐘)" +"{error}, You can also try {times_try} times (The account will be temporarily" +" locked for {block_time} minutes)" +msgstr "{error},您還可以嘗試 {times_try} 次 (帳號將被臨時鎖定 {block_time} 分鐘)" #: authentication/errors/const.py:63 msgid "MFA required" @@ -3502,11 +3449,11 @@ msgstr "自訂 MFA 全局開啟,無法被禁用" msgid "Face Recognition" msgstr "臉部辨識" -#: authentication/mfa/face.py:54 +#: authentication/mfa/face.py:55 msgid "Bind face to enable" msgstr "綁定人臉特徵以啟用" -#: authentication/mfa/face.py:58 +#: authentication/mfa/face.py:59 msgid "Unbind face to disable" msgstr "解除綁定人臉特徵以禁用" @@ -3681,13 +3628,13 @@ msgstr "私有令牌" #: authentication/models/ssh_key.py:15 terminal/serializers/storage.py:146 #: users/models/user/__init__.py:93 -#: xpack/plugins/cloud/serializers/account_attrs.py:213 +#: xpack/plugins/cloud/serializers/account_attrs.py:214 msgid "Private key" msgstr "ssh私鑰" #: authentication/models/ssh_key.py:18 settings/serializers/terminal.py:34 #: users/forms/profile.py:175 users/models/user/__init__.py:96 -#: xpack/plugins/cloud/serializers/account_attrs.py:210 +#: xpack/plugins/cloud/serializers/account_attrs.py:211 msgid "Public key" msgstr "SSH公鑰" @@ -3793,8 +3740,8 @@ msgstr "創建類型" #: authentication/serializers/ssh_key.py:33 msgid "" -"Please download the private key after creation. Each private key can only be " -"downloaded once" +"Please download the private key after creation. Each private key can only be" +" downloaded once" msgstr "創建完成後請下載私鑰,每個私鑰僅有一次下載機會" #: authentication/serializers/ssh_key.py:57 users/forms/profile.py:164 @@ -3818,8 +3765,8 @@ msgstr "清除過期會話" #: authentication/tasks.py:15 msgid "" -"Since user logins create sessions, the system will clean up expired sessions " -"every 24 hours" +"Since user logins create sessions, the system will clean up expired sessions" +" every 24 hours" msgstr "由於用戶登錄系統會產生會話,系統會每24小時清理已經過期的會話" #: authentication/templates/authentication/_access_key_modal.html:6 @@ -4132,15 +4079,15 @@ msgstr "跳轉中" msgid "Redirecting to {} authentication" msgstr "正在跳轉到 {} 認證" -#: authentication/views/login.py:243 +#: authentication/views/login.py:247 msgid "Login timeout, please try again." msgstr "登錄超時,請重新登入" -#: authentication/views/login.py:288 +#: authentication/views/login.py:292 msgid "User email already exists ({})" msgstr "用戶信箱已存在 ({})" -#: authentication/views/login.py:366 +#: authentication/views/login.py:370 msgid "" "Wait for {} confirm, You also can copy link to her/him
\n" " Don't close this page" @@ -4148,24 +4095,23 @@ msgstr "" "等待 {} 確認, 你也可以複製連結發給他/她
\n" " 不要關閉本頁面" -#: authentication/views/login.py:371 +#: authentication/views/login.py:375 msgid "No ticket found" msgstr "沒有發現工單" -#: authentication/views/login.py:407 +#: authentication/views/login.py:411 msgid "Logout success" msgstr "退出登錄成功" -#: authentication/views/login.py:408 +#: authentication/views/login.py:412 msgid "Logout success, return login page" msgstr "退出登錄成功,返回到登入頁面" #: authentication/views/mixins.py:39 msgid "" -"For your safety, automatic redirection login is not supported on the client. " -"If you need to open it in the client, please log in again" -msgstr "" -"為了您的安全,客戶端不支持自動跳轉登錄。如果需要在客戶端中打開,請重新登錄" +"For your safety, automatic redirection login is not supported on the client." +" If you need to open it in the client, please log in again" +msgstr "為了您的安全,客戶端不支持自動跳轉登錄。如果需要在客戶端中打開,請重新登錄" #: authentication/views/slack.py:35 authentication/views/slack.py:120 msgid "Slack Error" @@ -4247,7 +4193,7 @@ msgstr "企業專業版" msgid "Ultimate edition" msgstr "企業旗艦版" -#: common/const/common.py:5 xpack/plugins/cloud/manager.py:417 +#: common/const/common.py:5 xpack/plugins/cloud/manager.py:424 #, python-format msgid "%(name)s was created successfully" msgstr "%(name)s 創建成功" @@ -4291,13 +4237,12 @@ msgstr "加密的欄位" #: common/db/fields.py:577 msgid "" -"Invalid JSON data for JSONManyToManyField, should be like {'type': 'all'} or " -"{'type': 'ids', 'ids': []} or {'type': 'attrs', 'attrs': [{'name': 'ip', " +"Invalid JSON data for JSONManyToManyField, should be like {'type': 'all'} or" +" {'type': 'ids', 'ids': []} or {'type': 'attrs', 'attrs': [{'name': 'ip', " "'match': 'exact', 'value': '1.1.1.1'}}" msgstr "" -"JSON 多對多欄位無效,應為 {'type': 'all'} 或 {'type': 'ids', 'ids': []} 或 " -"{'type': 'attrs', 'attrs': [{'name': 'ip', 'match': 'exact', 'value': " -"'1.1.1.1'}}" +"JSON 多對多欄位無效,應為 {'type': 'all'} 或 {'type': 'ids', 'ids': []} 或 {'type': " +"'attrs', 'attrs': [{'name': 'ip', 'match': 'exact', 'value': '1.1.1.1'}}" #: common/db/fields.py:584 msgid "Invalid type, should be \"all\", \"ids\" or \"attrs\"" @@ -4311,8 +4256,8 @@ msgstr "無效的ID,應為列表" #: common/serializers/fields.py:144 terminal/serializers/session.py:81 #: tickets/serializers/ticket/common.py:58 #: xpack/plugins/cloud/serializers/account_attrs.py:56 -#: xpack/plugins/cloud/serializers/account_attrs.py:79 -#: xpack/plugins/cloud/serializers/account_attrs.py:150 +#: xpack/plugins/cloud/serializers/account_attrs.py:80 +#: xpack/plugins/cloud/serializers/account_attrs.py:151 msgid "This field is required." msgstr "該欄位是必填項。" @@ -4411,12 +4356,10 @@ msgstr "關聯項,格式是 id" msgid "" "Objects, format [\"name(id)\", ...], name is optional for human read, id is " "requisite" -msgstr "" -"多關聯項,格式: [\"名稱(id)\", ...], 名稱是可選的,方便閱讀,id 是必填的" +msgstr "多關聯項,格式: [\"名稱(id)\", ...], 名稱是可選的,方便閱讀,id 是必填的" #: common/drf/renders/base.py:171 -msgid "" -"Labels, format [\"key:value\", ...], if label not exists, will create it" +msgid "Labels, format [\"key:value\", ...], if label not exists, will create it" msgstr "標籤,格式: [\"鍵:值\", ...], 如果標籤不存在,將創建它" #: common/drf/renders/base.py:173 @@ -4596,10 +4539,8 @@ msgstr "發送郵件附件" #: common/tasks.py:68 msgid "" -"When an account password is changed or an account backup generates " -"attachments, \n" -" this task needs to be executed for sending emails and handling " -"attachments" +"When an account password is changed or an account backup generates attachments, \n" +" this task needs to be executed for sending emails and handling attachments" msgstr "當帳號改密,帳號備份產生附件,需要對發送郵件及附件,執行該任務" #: common/tasks.py:94 @@ -4631,8 +4572,7 @@ msgstr "傳簡訊驗證碼" #: common/utils/verify_code.py:19 msgid "" -"When resetting a password, forgetting a password, or verifying MFA, this " -"task needs to \n" +"When resetting a password, forgetting a password, or verifying MFA, this task needs to \n" " be executed to send SMS messages" msgstr "當重設密碼,忘記密碼,驗證mfa時,需要發送短信時執行該任務" @@ -4683,8 +4623,8 @@ msgid "" "configure nginx for url distribution, If you see this page, " "prove that you are not accessing the nginx listening port. Good luck." msgstr "" -"
Luna是單獨部署的一個程序,你需要部署luna,koko,
如果你看到了" -"這個頁面,證明你訪問的不是nginx監聽的埠,祝你好運
" +"
Luna是單獨部署的一個程序,你需要部署luna,koko, " +"
如果你看到了這個頁面,證明你訪問的不是nginx監聽的埠,祝你好運
" #: jumpserver/views/other.py:76 msgid "Websocket server run on port: {}, you should proxy it on nginx" @@ -4696,8 +4636,8 @@ msgid "" "configure nginx for url distribution, If you see this page, " "prove that you are not accessing the nginx listening port. Good luck." msgstr "" -"
Koko是單獨部署的一個程序,你需要部署Koko, 並確保nginx配置轉發,
如果你看到了這個頁面,證明你訪問的不是nginx監聽的埠,祝你好運
" +"
Koko是單獨部署的一個程序,你需要部署Koko, 並確保nginx配置轉發, " +"
如果你看到了這個頁面,證明你訪問的不是nginx監聽的埠,祝你好運
" #: labels/apps.py:8 msgid "App Labels" @@ -4761,8 +4701,7 @@ msgstr "發布站內消息" #: notifications/notifications.py:48 msgid "" -"This task needs to be executed for sending internal messages for system " -"alerts, \n" +"This task needs to be executed for sending internal messages for system alerts, \n" " work orders, and other notifications" msgstr "系統一些告警,工單等需要發送站內信時執行該任務" @@ -4991,12 +4930,14 @@ msgid "Periodic run" msgstr "週期性執行" #: ops/mixin.py:32 ops/mixin.py:96 ops/mixin.py:116 -#: settings/serializers/auth/ldap.py:80 settings/serializers/auth/ldap_ha.py:62 +#: settings/serializers/auth/ldap.py:80 +#: settings/serializers/auth/ldap_ha.py:62 msgid "Interval" msgstr "間隔" #: ops/mixin.py:35 ops/mixin.py:94 ops/mixin.py:113 -#: settings/serializers/auth/ldap.py:77 settings/serializers/auth/ldap_ha.py:59 +#: settings/serializers/auth/ldap.py:77 +#: settings/serializers/auth/ldap_ha.py:59 msgid "Crontab" msgstr "Crontab" @@ -5029,9 +4970,10 @@ msgstr "模組" msgid "Args" msgstr "參數" -#: ops/models/adhoc.py:26 ops/models/playbook.py:34 ops/serializers/mixin.py:10 -#: rbac/models/role.py:31 rbac/models/rolebinding.py:46 -#: rbac/serializers/role.py:12 settings/serializers/auth/oauth2.py:37 +#: ops/models/adhoc.py:26 ops/models/playbook.py:34 +#: ops/serializers/mixin.py:10 rbac/models/role.py:31 +#: rbac/models/rolebinding.py:46 rbac/serializers/role.py:12 +#: settings/serializers/auth/oauth2.py:37 msgid "Scope" msgstr "範圍" @@ -5137,12 +5079,13 @@ msgstr "變數名" #: ops/models/variable.py:12 ops/serializers/variable.py:23 msgid "" -"The variable name used in the script has a fixed prefix 'jms_' followed by " -"the input variable name. For example, if the variable name is 'name,' the " -"final generated environment variable will be 'jms_name'." +"The variable name used in the script will have a fixed prefix jms_ added to " +"the input variable name. For example, if the input variable name is name, " +"the resulting environment variable will be jms_name, and it can be " +"referenced in the script using {{ jms_name }}" msgstr "" -"在程式碼中使用的變數名稱,固定前綴 jms_ + 輸入的變數名,例如變數名稱為name," -"則最終生成環境變數為 jms_name" +"在腳本中使用的變量名稱,固定前綴為 jms_ + 輸入的變量名,例如變量名為 name,則最終生成的環境變量為 jms_name。在腳本中引用時使用 " +"{{ jms_name }}。" #: ops/models/variable.py:16 ops/serializers/variable.py:31 msgid "Default Value" @@ -5228,11 +5171,11 @@ msgid "" "is the value." msgstr "每項單獨一行,每行可以用英文冒號分割前面是顯示的內容後面是值" -#: ops/tasks.py:53 +#: ops/tasks.py:54 msgid "Run ansible task" msgstr "運行 Ansible 任務" -#: ops/tasks.py:56 +#: ops/tasks.py:57 msgid "" "Execute scheduled adhoc and playbooks, periodically invoking the task for " "execution" @@ -5246,76 +5189,60 @@ msgstr "開始執行 Ansible 任務" msgid "Execute the task when manually adhoc or playbooks" msgstr "手動執行快捷命令,playbook時執行該任務" -#: ops/tasks.py:107 +#: ops/tasks.py:106 msgid "Clear celery periodic tasks" msgstr "清理週期任務" -#: ops/tasks.py:109 +#: ops/tasks.py:108 msgid "At system startup, clean up celery tasks that no longer exist" msgstr "系統啟動時,清理已經不存在的celery任務" -#: ops/tasks.py:133 +#: ops/tasks.py:132 msgid "Create or update periodic tasks" msgstr "創建或更新週期任務" -#: ops/tasks.py:135 +#: ops/tasks.py:134 msgid "" -"With version iterations, new tasks may be added, or task names and execution " -"times may \n" -" be modified. Therefore, upon system startup, tasks will be " -"registered or the parameters \n" +"With version iterations, new tasks may be added, or task names and execution times may \n" +" be modified. Therefore, upon system startup, tasks will be registered or the parameters \n" " of scheduled tasks will be updated" -msgstr "" -"隨著版本迭代,可能會新增任務或者修改任務的名稱,執行時間,所以在系統啟動" -"時,,將會註冊任務或者更新定時任務參數" +msgstr "隨著版本迭代,可能會新增任務或者修改任務的名稱,執行時間,所以在系統啟動時,,將會註冊任務或者更新定時任務參數" -#: ops/tasks.py:148 +#: ops/tasks.py:147 msgid "Periodic check service performance" msgstr "週期檢測服務性能" -#: ops/tasks.py:150 +#: ops/tasks.py:149 msgid "" -"Check every hour whether each component is offline and whether the CPU, " -"memory, \n" -" and disk usage exceed the thresholds, and send an alert message to " -"the administrator" -msgstr "" -"每小時檢測各組件是否離線,cpu,內存,硬盤使用率是否超過閾值,向管理員發送訊息" -"預警" +"Check every hour whether each component is offline and whether the CPU, memory, \n" +" and disk usage exceed the thresholds, and send an alert message to the administrator" +msgstr "每小時檢測各組件是否離線,cpu,內存,硬盤使用率是否超過閾值,向管理員發送訊息預警" -#: ops/tasks.py:160 +#: ops/tasks.py:159 msgid "Clean up unexpected jobs" msgstr "清理異常作業" -#: ops/tasks.py:162 +#: ops/tasks.py:161 msgid "" -"Due to exceptions caused by executing adhoc and playbooks in the Job " -"Center, \n" -" which result in the task status not being updated, the system will " -"clean up abnormal jobs \n" -" that have not been completed for more than 3 hours every hour and " -"mark these tasks as \n" +"Due to exceptions caused by executing adhoc and playbooks in the Job Center, \n" +" which result in the task status not being updated, the system will clean up abnormal jobs \n" +" that have not been completed for more than 3 hours every hour and mark these tasks as \n" " failed" -msgstr "" -"由於作業中心執行快捷命令,playbook會產生異常,任務狀態未更新完成,系統將每小" -"時執行清理超3小時未完成的異常作業,並將任務標記失敗" +msgstr "由於作業中心執行快捷命令,playbook會產生異常,任務狀態未更新完成,系統將每小時執行清理超3小時未完成的異常作業,並將任務標記失敗" -#: ops/tasks.py:175 +#: ops/tasks.py:174 msgid "Clean job_execution db record" msgstr "清理作業中心執行歷史" -#: ops/tasks.py:177 +#: ops/tasks.py:176 msgid "" -"Due to the execution of adhoc and playbooks in the Job Center, execution " -"records will \n" -" be generated. The system will clean up records that exceed the " -"retention period every day \n" -" at 2 a.m., based on the configuration of 'System Settings - Tasks - " -"Regular clean-up - \n" +"Due to the execution of adhoc and playbooks in the Job Center, execution records will \n" +" be generated. The system will clean up records that exceed the retention period every day \n" +" at 2 a.m., based on the configuration of 'System Settings - Tasks - Regular clean-up - \n" " Job execution retention days'" msgstr "" -"由於作業中心執行快捷命令,playbook,會產生j執行記錄,系統會根據系統設置-任務" -"列表-定期清理-作業中心執行歷史配置,每天凌晨2點對超出保存時間的記錄進行清理" +"由於作業中心執行快捷命令,playbook,會產生j執行記錄,系統會根據系統設置-任務列表-定期清理-" +"作業中心執行歷史配置,每天凌晨2點對超出保存時間的記錄進行清理" #: ops/templates/ops/celery_task_log.html:4 msgid "Task log" @@ -5384,7 +5311,8 @@ msgstr "請選擇一個組織後再保存" #: rbac/serializers/rolebinding.py:44 settings/serializers/auth/base.py:53 #: terminal/templates/terminal/_msg_command_warning.html:21 #: terminal/templates/terminal/_msg_session_sharing.html:14 -#: tickets/models/ticket/general.py:303 tickets/serializers/ticket/ticket.py:60 +#: tickets/models/ticket/general.py:303 +#: tickets/serializers/ticket/ticket.py:60 msgid "Organization" msgstr "組織" @@ -5547,9 +5475,7 @@ msgstr "組織 ({}) 的資產授權" msgid "" "Accounts, format [\"@virtual\", \"root\", \"%template_id\"], virtual " "choices: @ALL, @SPEC, @USER, @ANON, @INPUT" -msgstr "" -"帳號,格式為 [\"@虛擬帳號\", \"root\", \"%模板id\"], 虛擬選項: @ALL, @SPEC, " -"@USER, @ANON, @INPUT" +msgstr "帳號,格式為 [\"@虛擬帳號\", \"root\", \"%模板id\"], 虛擬選項: @ALL, @SPEC, @USER, @ANON, @INPUT" #: perms/serializers/permission.py:38 msgid "Protocols, format [\"ssh\", \"rdp\", \"vnc\"] or [\"all\"]" @@ -5569,18 +5495,13 @@ msgstr "校驗資產授權規則已過期" #: perms/tasks.py:30 msgid "" -"The cache of organizational collections, which have completed user " -"authorization tree \n" -" construction, will expire. Therefore, expired collections need to be " -"cleared from the \n" -" cache, and this task will be executed periodically based on the time " -"interval specified \n" -" by PERM_EXPIRED_CHECK_PERIODIC in the system configuration file " -"config.txt" +"The cache of organizational collections, which have completed user authorization tree \n" +" construction, will expire. Therefore, expired collections need to be cleared from the \n" +" cache, and this task will be executed periodically based on the time interval specified \n" +" by PERM_EXPIRED_CHECK_PERIODIC in the system configuration file config.txt" msgstr "" -"使用者授權樹已經建製完成的組織集合快取會過期,因此需要將過期的集合從快取中清" -"理掉,根據系統設定檔 config.txt 中的 PERM_EXPIRED_CHECK_PERIODIC 的時間間隔定" -"時執行該Action" +"使用者授權樹已經建製完成的組織集合快取會過期,因此需要將過期的集合從快取中清理掉,根據系統設定檔 config.txt 中的 " +"PERM_EXPIRED_CHECK_PERIODIC 的時間間隔定時執行該Action" #: perms/tasks.py:49 msgid "Send asset permission expired notification" @@ -5588,16 +5509,11 @@ msgstr "發送資產權限過期通知" #: perms/tasks.py:51 msgid "" -"Check every day at 10 a.m. and send a notification message to users " -"associated with \n" -" assets whose authorization is about to expire, as well as to the " -"organization's \n" -" administrators, 3 days in advance, to remind them that the asset " -"authorization will \n" +"Check every day at 10 a.m. and send a notification message to users associated with \n" +" assets whose authorization is about to expire, as well as to the organization's \n" +" administrators, 3 days in advance, to remind them that the asset authorization will \n" " expire in a few days" -msgstr "" -"每天早上10點檢查,對於即將過期的資產授權相關聯的使用者及該組織管理員提前三天" -"發送訊息通知,提示資產還有幾天即將過期" +msgstr "每天早上10點檢查,對於即將過期的資產授權相關聯的使用者及該組織管理員提前三天發送訊息通知,提示資產還有幾天即將過期" #: perms/templates/perms/_msg_item_permissions_expire.html:7 #: perms/templates/perms/_msg_permed_items_expire.html:7 @@ -5758,7 +5674,7 @@ msgstr "系統設置" msgid "Session audits" msgstr "會話審計" -#: rbac/tree.py:49 xpack/plugins/cloud/manager.py:90 +#: rbac/tree.py:49 xpack/plugins/cloud/manager.py:93 msgid "Cloud import" msgstr "雲同步" @@ -5801,7 +5717,7 @@ msgid "Appearance" msgstr "介面" #: rbac/tree.py:65 xpack/plugins/license/meta.py:10 -#: xpack/plugins/license/models.py:151 +#: xpack/plugins/license/models.py:153 msgid "License" msgstr "許可證" @@ -6007,9 +5923,7 @@ msgid "" "authentication service platform does not return the user's email " "information, the system will automatically create the user using this email " "suffix" -msgstr "" -"第三方使用者認證成功後,若第三方認證服務平台未回傳該使用者的電子信箱資訊,系" -"統將自動以此電子信箱後綴建立使用者" +msgstr "第三方使用者認證成功後,若第三方認證服務平台未回傳該使用者的電子信箱資訊,系統將自動以此電子信箱後綴建立使用者" #: settings/serializers/auth/base.py:37 msgid "Forgot Password URL" @@ -6028,23 +5942,21 @@ msgid "" "Should an flash page be displayed before the user is redirected to third-" "party authentication when the administrator enables third-party redirect " "authentication" -msgstr "" -"Action管理員啟用第三方重新定向身份驗證時,在使用者重定向到第三方身份驗證之前" -"是否顯示 Flash 頁面" +msgstr "Action管理員啟用第三方重新定向身份驗證時,在使用者重定向到第三方身份驗證之前是否顯示 Flash 頁面" #: settings/serializers/auth/base.py:55 msgid "" "When you create a user, you associate the user to the organization of your " "choice. Users always belong to the Default organization." -msgstr "" -"建立使用者時,您會將該使用者與您選擇的組織關聯。使用者始終屬於 Default 組織。" +msgstr "建立使用者時,您會將該使用者與您選擇的組織關聯。使用者始終屬於 Default 組織。" #: settings/serializers/auth/cas.py:12 settings/serializers/auth/cas.py:14 msgid "CAS" msgstr "CAS" #: settings/serializers/auth/cas.py:15 settings/serializers/auth/ldap.py:44 -#: settings/serializers/auth/ldap_ha.py:26 settings/serializers/auth/oidc.py:61 +#: settings/serializers/auth/ldap_ha.py:26 +#: settings/serializers/auth/oidc.py:61 msgid "Server" msgstr "服務端地址" @@ -6069,9 +5981,11 @@ msgstr "使用者名稱屬性" msgid "Enable attributes map" msgstr "啟用屬性映射" -#: settings/serializers/auth/cas.py:34 settings/serializers/auth/dingtalk.py:18 +#: settings/serializers/auth/cas.py:34 +#: settings/serializers/auth/dingtalk.py:18 #: settings/serializers/auth/feishu.py:18 settings/serializers/auth/lark.py:17 -#: settings/serializers/auth/ldap.py:66 settings/serializers/auth/ldap_ha.py:48 +#: settings/serializers/auth/ldap.py:66 +#: settings/serializers/auth/ldap_ha.py:48 #: settings/serializers/auth/oauth2.py:60 settings/serializers/auth/oidc.py:39 #: settings/serializers/auth/saml2.py:35 settings/serializers/auth/slack.py:18 #: settings/serializers/auth/wecom.py:18 @@ -6082,9 +5996,7 @@ msgstr "映射屬性" msgid "" "User attribute mapping, where the `key` is the CAS service user attribute " "name and the `value` is the JumpServer user attribute name" -msgstr "" -"使用者屬性對照,其中 `key` 是 CAS 服務使用者屬性名稱,`value` 是 JumpServer " -"使用者屬性名稱" +msgstr "使用者屬性對照,其中 `key` 是 CAS 服務使用者屬性名稱,`value` 是 JumpServer 使用者屬性名稱" #: settings/serializers/auth/cas.py:41 msgid "Create user" @@ -6104,17 +6016,13 @@ msgstr "啟用釘釘認證" msgid "" "User attribute mapping, where the `key` is the JumpServer user attribute " "name and the `value` is the DingTalk service user attribute name" -msgstr "" -"使用者屬性對照,其中 `key` 是 JumpServer 使用者屬性名稱,`value` 是釘釘服務使" -"用者屬性名稱" +msgstr "使用者屬性對照,其中 `key` 是 JumpServer 使用者屬性名稱,`value` 是釘釘服務使用者屬性名稱" #: settings/serializers/auth/feishu.py:20 msgid "" "User attribute mapping, where the `key` is the JumpServer user attribute " "name and the `value` is the FeiShu service user attribute name" -msgstr "" -"使用者屬性對照,其中 `key` 是 JumpServer 使用者屬性名稱,`value` 是飛書服務使" -"用者屬性名稱" +msgstr "使用者屬性對照,其中 `key` 是 JumpServer 使用者屬性名稱,`value` 是飛書服務使用者屬性名稱" #: settings/serializers/auth/lark.py:13 users/models/user/_source.py:22 msgid "Lark" @@ -6124,9 +6032,7 @@ msgstr "" msgid "" "User attribute mapping, where the `key` is the JumpServer user attribute " "name and the `value` is the Lark service user attribute name" -msgstr "" -"使用者屬性對照,其中 `key` 是 JumpServer 使用者屬性名稱,`value` 是 Lark 服務" -"使用者屬性名稱" +msgstr "使用者屬性對照,其中 `key` 是 JumpServer 使用者屬性名稱,`value` 是 Lark 服務使用者屬性名稱" #: settings/serializers/auth/ldap.py:41 settings/serializers/auth/ldap.py:103 msgid "LDAP" @@ -6136,50 +6042,58 @@ msgstr "LDAP" msgid "LDAP server URI" msgstr "LDAP 服務域名" -#: settings/serializers/auth/ldap.py:48 settings/serializers/auth/ldap_ha.py:30 +#: settings/serializers/auth/ldap.py:48 +#: settings/serializers/auth/ldap_ha.py:30 msgid "Bind DN" msgstr "綁定 DN" -#: settings/serializers/auth/ldap.py:49 settings/serializers/auth/ldap_ha.py:31 +#: settings/serializers/auth/ldap.py:49 +#: settings/serializers/auth/ldap_ha.py:31 msgid "Binding Distinguished Name" msgstr "綁定的 DN" -#: settings/serializers/auth/ldap.py:53 settings/serializers/auth/ldap_ha.py:35 +#: settings/serializers/auth/ldap.py:53 +#: settings/serializers/auth/ldap_ha.py:35 msgid "Binding password" msgstr "原來的密碼" -#: settings/serializers/auth/ldap.py:56 settings/serializers/auth/ldap_ha.py:38 +#: settings/serializers/auth/ldap.py:56 +#: settings/serializers/auth/ldap_ha.py:38 msgid "Search OU" msgstr "系統架構" -#: settings/serializers/auth/ldap.py:58 settings/serializers/auth/ldap_ha.py:40 +#: settings/serializers/auth/ldap.py:58 +#: settings/serializers/auth/ldap_ha.py:40 msgid "" "User Search Base, if there are multiple OUs, you can separate them with the " "`|` symbol" msgstr "使用者搜尋庫,如果有多個OU,可以用`|`符號分隔" -#: settings/serializers/auth/ldap.py:62 settings/serializers/auth/ldap_ha.py:44 +#: settings/serializers/auth/ldap.py:62 +#: settings/serializers/auth/ldap_ha.py:44 msgid "Search filter" msgstr "用戶過濾器" -#: settings/serializers/auth/ldap.py:63 settings/serializers/auth/ldap_ha.py:45 +#: settings/serializers/auth/ldap.py:63 +#: settings/serializers/auth/ldap_ha.py:45 #, python-format msgid "Selection could include (cn|uid|sAMAccountName=%(user)s)" msgstr "可能的選項是(cn或uid或sAMAccountName=%(user)s)" -#: settings/serializers/auth/ldap.py:68 settings/serializers/auth/ldap_ha.py:50 +#: settings/serializers/auth/ldap.py:68 +#: settings/serializers/auth/ldap_ha.py:50 msgid "" "User attribute mapping, where the `key` is the JumpServer user attribute " "name and the `value` is the LDAP service user attribute name" -msgstr "" -"使用者屬性對照,其中 `key` 是 JumpServer 使用者屬性名稱,`value` 是 LDAP 服務" -"使用者屬性名稱" +msgstr "使用者屬性對照,其中 `key` 是 JumpServer 使用者屬性名稱,`value` 是 LDAP 服務使用者屬性名稱" -#: settings/serializers/auth/ldap.py:84 settings/serializers/auth/ldap_ha.py:66 +#: settings/serializers/auth/ldap.py:84 +#: settings/serializers/auth/ldap_ha.py:66 msgid "Connect timeout (s)" msgstr "連接超時時間 (秒)" -#: settings/serializers/auth/ldap.py:89 settings/serializers/auth/ldap_ha.py:71 +#: settings/serializers/auth/ldap.py:89 +#: settings/serializers/auth/ldap_ha.py:71 msgid "User DN cache timeout (s)" msgstr "快取逾時時間 (秒)" @@ -6190,10 +6104,10 @@ msgid "" "cache
If the user OU structure has been adjusted, click Submit to clear " "the user DN cache" msgstr "" -"對用戶登入驗證時查詢出的 User DN 進行緩存,可以有效提升用戶認證的速度
如果" -"用戶 OU 架構有调整,點擊提交即可清除用戶 DN 緩存" +"對用戶登入驗證時查詢出的 User DN 進行緩存,可以有效提升用戶認證的速度
如果用戶 OU 架構有调整,點擊提交即可清除用戶 DN 緩存" -#: settings/serializers/auth/ldap.py:97 settings/serializers/auth/ldap_ha.py:79 +#: settings/serializers/auth/ldap.py:97 +#: settings/serializers/auth/ldap_ha.py:79 msgid "Search paged size (piece)" msgstr "搜索分頁數量 (條)" @@ -6209,12 +6123,12 @@ msgstr "LDAP HA 服務網域名" #: settings/serializers/auth/ldap_ha.py:73 msgid "" "Caching the User DN obtained during user login authentication can " -"effectivelyimprove the speed of user authentication., 0 means no cache
If " -"the user OU structure has been adjusted, click Submit to clear the user DN " +"effectivelyimprove the speed of user authentication., 0 means no cache
If" +" the user OU structure has been adjusted, click Submit to clear the user DN " "cache" msgstr "" -"對使用者登入驗證時查詢出的 User DN 進行快取,可以有效提升使用者驗證的速度
" -"如果使用者 OU 架構有調整,點擊提交即可清除使用者 DN 快取" +"對使用者登入驗證時查詢出的 User DN 進行快取,可以有效提升使用者驗證的速度
如果使用者 OU 架構有調整,點擊提交即可清除使用者 DN " +"快取" #: settings/serializers/auth/oauth2.py:19 #: settings/serializers/auth/oauth2.py:22 @@ -6262,19 +6176,18 @@ msgid "End session endpoint" msgstr "Logout session endpoint address" #: settings/serializers/auth/oauth2.py:57 -msgid "When the user signs out, they also be logged out from the OAuth2 server" +msgid "" +"When the user signs out, they also be logged out from the OAuth2 server" msgstr "當使用者退出時,他們也會從 OAuth2 伺服器退出" #: settings/serializers/auth/oauth2.py:62 msgid "" "User attribute mapping, where the `key` is the JumpServer user attribute " "name and the `value` is the OAuth2 service user attribute name" -msgstr "" -"使用者屬性對照,其中 `key` 是 JumpServer 使用者屬性名稱,`value` 是 OAuth2 服" -"務使用者屬性名稱" +msgstr "使用者屬性對照,其中 `key` 是 JumpServer 使用者屬性名稱,`value` 是 OAuth2 服務使用者屬性名稱" -#: settings/serializers/auth/oauth2.py:67 settings/serializers/auth/oidc.py:113 -#: settings/serializers/auth/saml2.py:45 +#: settings/serializers/auth/oauth2.py:67 +#: settings/serializers/auth/oidc.py:113 settings/serializers/auth/saml2.py:45 msgid "Always update user" msgstr "總是更新用戶資訊" @@ -6306,9 +6219,7 @@ msgstr "Ignore SSL certificate verification" msgid "" "User attribute mapping, where the `key` is the JumpServer user attribute " "name and the `value` is the OIDC service user attribute name" -msgstr "" -"使用者屬性映射,其中 `key` 是 JumpServer 使用者屬性名稱,`value` 是 OIDC 服務" -"使用者屬性名稱" +msgstr "使用者屬性映射,其中 `key` 是 JumpServer 使用者屬性名稱,`value` 是 OIDC 服務使用者屬性名稱" #: settings/serializers/auth/oidc.py:45 msgid "Enable PKCE" @@ -6326,8 +6237,7 @@ msgstr "使用 Keycloak" msgid "" "Use Keycloak as the OpenID Connect server, or use standard OpenID Connect " "Protocol" -msgstr "" -"使用 Keycloak 作為 OpenID Connect 伺服器,或者使用標準 OpenID Connect 協議" +msgstr "使用 Keycloak 作為 OpenID Connect 伺服器,或者使用標準 OpenID Connect 協議" #: settings/serializers/auth/oidc.py:64 msgid "Realm name" @@ -6386,8 +6296,7 @@ msgid "" "The hostname can using passkey auth, If not set, will use request host and " "the request host in DOMAINS, If multiple domains, use comma to separate" msgstr "" -"可以使用 Passkey 認證的域名,如果不設置,將使用請求主機(主機名在可信域 " -"DOMAINS中), 如果有多個域名,使用逗號分隔, 不需要埠號" +"可以使用 Passkey 認證的域名,如果不設置,將使用請求主機(主機名在可信域 DOMAINS中), 如果有多個域名,使用逗號分隔, 不需要埠號" #: settings/serializers/auth/passkey.py:22 msgid "FIDO Server name" @@ -6403,7 +6312,8 @@ msgid "OTP in RADIUS" msgstr "Use Radius OTP" #: settings/serializers/auth/radius.py:24 -msgid "* Using OTP in RADIUS means users can employ RADIUS as a method for MFA" +msgid "" +"* Using OTP in RADIUS means users can employ RADIUS as a method for MFA" msgstr "* 在 RADIUS 中使用 OTP 意味著使用者可以利用 RADIUS 作為 MFA 的方法 " #: settings/serializers/auth/saml2.py:12 settings/serializers/auth/saml2.py:15 @@ -6434,9 +6344,7 @@ msgstr "SP 證書" msgid "" "User attribute mapping, where the `key` is the SAML2 service user attribute " "name and the `value` is the JumpServer user attribute name" -msgstr "" -" 使用者屬性映射,其中 `key` 是 SAML2 服務使用者屬性名稱,`value` 是 " -"JumpServer 使用者屬性名稱" +msgstr " 使用者屬性映射,其中 `key` 是 SAML2 服務使用者屬性名稱,`value` 是 JumpServer 使用者屬性名稱" #: settings/serializers/auth/saml2.py:43 msgid "When the user signs out, they also be logged out from the SAML2 server" @@ -6446,9 +6354,7 @@ msgstr "當使用者登出時,他們也會從 SAML2 伺服器登出" msgid "" "User attribute mapping, where the `key` is the JumpServer user attribute " "name and the `value` is the Slack service user attribute name" -msgstr "" -"使用者屬性對照,其中 `key` 是 JumpServer 使用者屬性名稱,`value` 是 Slack 服" -"務使用者屬性名稱" +msgstr "使用者屬性對照,其中 `key` 是 JumpServer 使用者屬性名稱,`value` 是 Slack 服務使用者屬性名稱" #: settings/serializers/auth/sms.py:18 msgid "Enable Short Message Service (SMS)" @@ -6513,12 +6419,10 @@ msgstr "業務型態(Service id)" #: settings/serializers/auth/sms.py:85 #, python-brace-format msgid "" -"Template need contain {code} and Signature + template length does not exceed " -"67 words. For example, your verification code is {code}, which is valid for " -"5 minutes. Please do not disclose it to others." -msgstr "" -"模板需要包含 {code},並且模板+簽名長度不能超過67個字。例如, 您的驗證碼是 " -"{code}, 有效期為5分鐘。請不要洩露給其他人。" +"Template need contain {code} and Signature + template length does not exceed" +" 67 words. For example, your verification code is {code}, which is valid for" +" 5 minutes. Please do not disclose it to others." +msgstr "模板需要包含 {code},並且模板+簽名長度不能超過67個字。例如, 您的驗證碼是 {code}, 有效期為5分鐘。請不要洩露給其他人。" #: settings/serializers/auth/sms.py:94 #, python-brace-format @@ -6546,7 +6450,7 @@ msgid "SSO auth key TTL" msgstr "令牌有效期" #: settings/serializers/auth/sso.py:20 -#: xpack/plugins/cloud/serializers/account_attrs.py:200 +#: xpack/plugins/cloud/serializers/account_attrs.py:201 msgid "Unit: second" msgstr "單位: 秒" @@ -6554,9 +6458,7 @@ msgstr "單位: 秒" msgid "" "User attribute mapping, where the `key` is the JumpServer user attribute " "name and the `value` is the WeCom service user attribute name" -msgstr "" -"使用者屬性映射,其中 `key` 是 JumpServer 使用者屬性名稱,`value` 是企業微信服" -"務使用者屬性名稱" +msgstr "使用者屬性映射,其中 `key` 是 JumpServer 使用者屬性名稱,`value` 是企業微信服務使用者屬性名稱" #: settings/serializers/basic.py:11 msgid "Site URL" @@ -6564,8 +6466,8 @@ msgstr "目前網站 URL" #: settings/serializers/basic.py:13 msgid "" -"Site URL is the externally accessible address of the current product service " -"and is usually used in links in system emails" +"Site URL is the externally accessible address of the current product service" +" and is usually used in links in system emails" msgstr "站點 URL 是目前產品服務的外部可訪問地址,通常在系統郵件的連結中使用" #: settings/serializers/basic.py:18 @@ -6650,8 +6552,7 @@ msgstr "會話日誌 (天)" msgid "" "Session, record, command will be delete if more than duration, only in " "database, OSS will not be affected." -msgstr "" -"會話、錄影,命令記錄超過該時長將會被清除 (影響資料庫儲存,OSS 等不受影響)" +msgstr "會話、錄影,命令記錄超過該時長將會被清除 (影響資料庫儲存,OSS 等不受影響)" #: settings/serializers/cleaning.py:53 msgid "Change secret and push record retention days (day)" @@ -6695,8 +6596,7 @@ msgid "" "accounts that exceed the predetermined number. If the value reaches or " "exceeds 999 (default), no historical account deletion will be performed" msgstr "" -"如果特定數值小於999,系統將在每日晚間自動執行任務:檢查並刪除超出預定數量的歷" -"史帳號。如果該數值達到或超過999,則不進行任何歷史帳號的刪除操作。" +"如果特定數值小於999,系統將在每日晚間自動執行任務:檢查並刪除超出預定數量的歷史帳號。如果該數值達到或超過999,則不進行任何歷史帳號的刪除操作。" #: settings/serializers/feature.py:86 msgid "Mount Point" @@ -6708,7 +6608,7 @@ msgid "Tenant ID" msgstr "租戶 ID" #: settings/serializers/feature.py:109 terminal/serializers/storage.py:68 -#: xpack/plugins/cloud/manager.py:107 xpack/plugins/cloud/manager.py:112 +#: xpack/plugins/cloud/manager.py:110 xpack/plugins/cloud/manager.py:115 #: xpack/plugins/cloud/models.py:287 msgid "Region" msgstr "地域" @@ -6731,7 +6631,8 @@ msgid "GPT Base URL" msgstr "GPT 地址" #: settings/serializers/feature.py:131 -msgid "The base URL of the GPT service. For example: https://api.openai.com/v1" +msgid "" +"The base URL of the GPT service. For example: https://api.openai.com/v1" msgstr "GPT 服務的基礎 URL。例如:https://api.openai.com/v1" #: settings/serializers/feature.py:134 templates/_header_bar.html:96 @@ -6843,8 +6744,7 @@ msgid "" "server. In most email documentation this type of TLS connection is referred " "to as SSL. It is generally used on port 465" msgstr "" -"與 SMTP 伺服器通信時是否使用隱式 TLS(安全)連接。在大多數電子郵件文檔中,這" -"種類型的 TLS 連接稱為 SSL。它通常在埠 465 上使用" +"與 SMTP 伺服器通信時是否使用隱式 TLS(安全)連接。在大多數電子郵件文檔中,這種類型的 TLS 連接稱為 SSL。它通常在埠 465 上使用" #: settings/serializers/msg.py:54 msgid "Use TLS" @@ -6854,9 +6754,7 @@ msgstr "使用 TLS" msgid "" "Whether to use a TLS (secure) connection when talking to the SMTP server. " "This is used for explicit TLS connections, generally on port 587" -msgstr "" -"與 SMTP 伺服器通信時是否使用 TLS(安全)連接。這用於顯式 TLS 連接,通常在埠 " -"587 上" +msgstr "與 SMTP 伺服器通信時是否使用 TLS(安全)連接。這用於顯式 TLS 連接,通常在埠 587 上" #: settings/serializers/msg.py:64 msgid "Subject prefix" @@ -6864,8 +6762,8 @@ msgstr "主題前綴" #: settings/serializers/msg.py:69 msgid "" -"Tips: When creating a user, send the subject of the email (eg:Create account " -"successfully)" +"Tips: When creating a user, send the subject of the email (eg:Create account" +" successfully)" msgstr "提示: 創建用戶時,發送設置密碼郵件的主題 (例如: 創建用戶成功)" #: settings/serializers/msg.py:73 @@ -6881,8 +6779,7 @@ msgstr "提示: 創建用戶時,發送設置密碼郵件的敬語 (例如: 你 msgid "" "Tips: When creating a user, send the content of the email, support " "{username} {name} {email} label" -msgstr "" -"提示: 創建用戶時,發送設置密碼郵件的內容, 支持 {username} {name} {email} 標籤" +msgstr "提示: 創建用戶時,發送設置密碼郵件的內容, 支持 {username} {name} {email} 標籤" #: settings/serializers/msg.py:84 msgid "Tips: Email signature (eg:jumpserver)" @@ -6898,9 +6795,7 @@ msgstr "顯示未分組節點" #: settings/serializers/other.py:12 msgid "Perm single to ungroup node" -msgstr "" -"放置單獨授權的資產到未分組節點, 避免能看到資產所在節點,但該節點未被授權的問" -"題" +msgstr "放置單獨授權的資產到未分組節點, 避免能看到資產所在節點,但該節點未被授權的問題" #: settings/serializers/security.py:17 msgid "User password expiration (day)" @@ -6911,9 +6806,7 @@ msgid "" "If the user does not update the password during the time, the user password " "will expire failure;The password expiration reminder mail will be automatic " "sent to the user by system within 5 days (daily) before the password expires" -msgstr "" -"如果用戶在此期間沒有更新密碼,用戶密碼將過期失效; 密碼過期提醒郵件將在密碼過" -"期前5天內由系統 (每天)自動發送給用戶" +msgstr "如果用戶在此期間沒有更新密碼,用戶密碼將過期失效; 密碼過期提醒郵件將在密碼過期前5天內由系統 (每天)自動發送給用戶" #: settings/serializers/security.py:26 msgid "Recent password count" @@ -6983,9 +6876,7 @@ msgid "" "users of other authentication methods except local authentication methods " "are allowed to log in and automatically create users (if the user does not " "exist)" -msgstr "" -"如果開啟,不存在的用戶將不被允許登錄;如果關閉,除本地認證方式外,其他認證方" -"式的用戶都允許登錄並自動創建用戶 (如果用戶不存在)" +msgstr "如果開啟,不存在的用戶將不被允許登錄;如果關閉,除本地認證方式外,其他認證方式的用戶都允許登錄並自動創建用戶 (如果用戶不存在)" #: settings/serializers/security.py:103 msgid "Only from source login" @@ -6993,13 +6884,12 @@ msgstr "僅從用戶來源登錄" #: settings/serializers/security.py:105 msgid "" -"If it is enabled, the user will only authenticate to the source when logging " -"in; if it is disabled, the user will authenticate all the enabled " +"If it is enabled, the user will only authenticate to the source when logging" +" in; if it is disabled, the user will authenticate all the enabled " "authentication methods in a certain order when logging in, and as long as " "one of the authentication methods is successful, they can log in directly" msgstr "" -"如果開啟,用戶登錄時僅會向來源端進行認證;如果關閉,用戶登錄時會按照一定的順" -"序對所有已開啟的認證方式進行順序認證,只要有一個認證成功就可以直接登錄" +"如果開啟,用戶登錄時僅會向來源端進行認證;如果關閉,用戶登錄時會按照一定的順序對所有已開啟的認證方式進行順序認證,只要有一個認證成功就可以直接登錄" #: settings/serializers/security.py:116 #: users/templates/users/mfa_setting.html:160 @@ -7068,9 +6958,7 @@ msgstr "啟用登入附加碼" msgid "" "The password and additional code are sent to a third party authentication " "system for verification" -msgstr "" -"密碼和附加碼一併發送給第三方認證系統進行校驗, 如:有的第三方認證系統,需要 密" -"碼+6位數字 完成認證" +msgstr "密碼和附加碼一併發送給第三方認證系統進行校驗, 如:有的第三方認證系統,需要 密碼+6位數字 完成認證" #: settings/serializers/security.py:158 msgid "Login captcha" @@ -7086,12 +6974,10 @@ msgstr "異地登入通知" #: settings/serializers/security.py:164 msgid "" -"The system determines whether the login IP address belongs to a common login " -"city. If the account is logged in from a common login city, the system sends " -"a remote login reminder" -msgstr "" -"根據登錄 IP 是否所屬常用登錄城市進行判斷,若帳號在非常用城市登錄,會發送異地" -"登錄提醒" +"The system determines whether the login IP address belongs to a common login" +" city. If the account is logged in from a common login city, the system " +"sends a remote login reminder" +msgstr "根據登錄 IP 是否所屬常用登錄城市進行判斷,若帳號在非常用城市登錄,會發送異地登錄提醒" #: settings/serializers/security.py:170 msgid "Auto Disable Threshold (day)" @@ -7135,8 +7021,7 @@ msgstr "允許用戶查看資產在線會話資訊" msgid "" "When a user connects to an asset, the account selection popup displays the " "number of active sessions for the current asset (RDP protocol only)." -msgstr "" -"當用戶連接資產時,帳號選擇彈窗中顯示當前資產的在線會話數量(僅 rdp 協議)" +msgstr "當用戶連接資產時,帳號選擇彈窗中顯示當前資產的在線會話數量(僅 rdp 協議)" #: settings/serializers/security.py:214 msgid "Max online time (hour)" @@ -7186,8 +7071,8 @@ msgstr "元件註冊" #: settings/serializers/terminal.py:24 msgid "" -"Allow component register, after all component setup, you should disable this " -"for security" +"Allow component register, after all component setup, you should disable this" +" for security" msgstr "是否允許元件註冊,當所有終端啟動後,為了安全應該關閉" #: settings/serializers/terminal.py:30 @@ -7199,11 +7084,11 @@ msgstr "* 允許用戶透過密碼驗證登入KoKo元件" msgid "" "* Allow users to log in to the KoKo component via Public key " "authentication
If third-party authentication services, such as AD/LDAP, " -"are enabled, you should disable this option to prevent users from logging in " -"after being deleted from the AD/LDAP server" +"are enabled, you should disable this option to prevent users from logging in" +" after being deleted from the AD/LDAP server" msgstr "" -"* 允許用戶透過公鑰驗證方式登入 KoKo 元件
如果第三方認證服務(如 AD/LDAP)" -"已啟用,則應禁用此選項,以防止用戶從 AD/LDAP 伺服器中刪除後再次登入" +"* 允許用戶透過公鑰驗證方式登入 KoKo 元件
如果第三方認證服務(如 AD/LDAP)已啟用,則應禁用此選項,以防止用戶從 AD/LDAP " +"伺服器中刪除後再次登入" #: settings/serializers/terminal.py:43 msgid "Asset sorting" @@ -7215,21 +7100,18 @@ msgstr "資產列表每頁數量" #: settings/serializers/terminal.py:51 msgid "" -"* You can individually configure the service address and port in the service " -"endpoint
If enabled, the Luna page will display the DB client launch " +"* You can individually configure the service address and port in the service" +" endpoint
If enabled, the Luna page will display the DB client launch " "method when connecting to assets" -msgstr "" -"* 您可以在服務端點中單獨配置服務地址和端口
如果啟用,Luna 界面將在連接資" -"產時顯示 DB 客戶端啟動方法" +msgstr "* 您可以在服務端點中單獨配置服務地址和端口
如果啟用,Luna 界面將在連接資產時顯示 DB 客戶端啟動方法" #: settings/serializers/terminal.py:59 msgid "" -"* You can individually configure the service address and port in the service " -"endpoint
If enabled, the Luna page will display the download rdp file " +"* You can individually configure the service address and port in the service" +" endpoint
If enabled, the Luna page will display the download rdp file " "button and RDP Client launch method when connecting to assets" msgstr "" -"* 您可以在服務端點中單獨配置服務地址和端口
如果啟用,Luna 界面將在連接資" -"產時顯示下載 rdp 文件按鈕和 RDP 客戶端啟動方法" +"* 您可以在服務端點中單獨配置服務地址和端口
如果啟用,Luna 界面將在連接資產時顯示下載 rdp 文件按鈕和 RDP 客戶端啟動方法" #: settings/serializers/terminal.py:66 msgid "Client connection" @@ -7238,10 +7120,9 @@ msgstr "客戶端連接" #: settings/serializers/terminal.py:68 msgid "" "* Allow connecting to the KoKo component via SSH client
If enabled, the " -"Luna page will display the SSH client launch method when connecting to assets" -msgstr "" -"* 允許透過 SSH 客戶端連接到 KoKo 元件
如果啟用,則在連接到資產時,Luna 界" -"面將顯示 SSH 客戶端啟動方法" +"Luna page will display the SSH client launch method when connecting to " +"assets" +msgstr "* 允許透過 SSH 客戶端連接到 KoKo 元件
如果啟用,則在連接到資產時,Luna 界面將顯示 SSH 客戶端啟動方法" #: settings/serializers/tool.py:10 msgid "Tool" @@ -7253,8 +7134,8 @@ msgstr "工作台中的工具" #: settings/serializers/tool.py:15 msgid "" -"*! If enabled, users with RBAC permissions will be able to utilize all tools " -"in the workbench" +"*! If enabled, users with RBAC permissions will be able to utilize all tools" +" in the workbench" msgstr "*! 如果啟用,具有 RBAC 權限的用戶將能夠使用工作台中的所有工具" #: settings/tasks/ldap.py:73 @@ -7277,12 +7158,9 @@ msgstr "註冊週期匯入 LDAP 用戶 任務" #: settings/tasks/ldap.py:119 msgid "" -"When LDAP auto-sync parameters change, such as Crontab parameters, the LDAP " -"sync task \n" +"When LDAP auto-sync parameters change, such as Crontab parameters, the LDAP sync task \n" " will be re-registered or updated, and this task will be invoked" -msgstr "" -"設置了LDAP自動同步參數變動時,像是Crontab參數,重新註冊或更新ldap同步Action將" -"呼叫該Action" +msgstr "設置了LDAP自動同步參數變動時,像是Crontab參數,重新註冊或更新ldap同步Action將呼叫該Action" #: settings/tasks/ldap.py:133 msgid "Registration periodic import ldap ha user task" @@ -7290,12 +7168,9 @@ msgstr "註冊周期導入 LDAP HA 使用者 Action" #: settings/tasks/ldap.py:135 msgid "" -"When LDAP HA auto-sync parameters change, such as Crontab parameters, the " -"LDAP HA sync task \n" +"When LDAP HA auto-sync parameters change, such as Crontab parameters, the LDAP HA sync task \n" " will be re-registered or updated, and this task will be invoked" -msgstr "" -"設置了LDAP HA自動同步參數變動時,像是Crontab參數,重新註冊或更新ldap ha同步" -"Action將呼叫該Action" +msgstr "設置了LDAP HA自動同步參數變動時,像是Crontab參數,重新註冊或更新ldap ha同步Action將呼叫該Action" #: settings/templates/ldap/_msg_import_ldap_user.html:2 msgid "Sync task finish" @@ -7500,13 +7375,11 @@ msgstr "過期。" #, python-format msgid "" "\n" -" Your password has expired, please click this link update password.\n" +" Your password has expired, please click this link update password.\n" " " msgstr "" "\n" -" 您的密碼已經過期,請點擊 連結 更新密碼\n" +" 您的密碼已經過期,請點擊 連結 更新密碼\n" " " #: templates/_message.html:30 @@ -7517,39 +7390,33 @@ msgstr "您的密碼將於" #, python-format msgid "" "\n" -" please click this " -"link to update your password.\n" +" please click this link to update your password.\n" " " msgstr "" "\n" -" 請點擊 連結 更" -"新密碼\n" +" 請點擊 連結 更新密碼\n" " " #: templates/_message.html:43 #, python-format msgid "" "\n" -" Your information was incomplete. Please click this link to complete your information.\n" +" Your information was incomplete. Please click this link to complete your information.\n" " " msgstr "" "\n" -" 你的資訊不完整,請點擊 連結 " -" 補充完整\n" +" 你的資訊不完整,請點擊 連結 補充完整\n" " " #: templates/_message.html:56 #, python-format msgid "" "\n" -" Your ssh public key not set or expired. Please click this link to update\n" +" Your ssh public key not set or expired. Please click this link to update\n" " " msgstr "" "\n" -" 您的SSH金鑰沒有設置或已失效,請點擊 連結 更新\n" +" 您的SSH金鑰沒有設置或已失效,請點擊 連結 更新\n" " " #: templates/_mfa_login_field.html:31 @@ -7580,9 +7447,7 @@ msgstr "用戶端" msgid "" "JumpServer Client, currently used to launch the client, now only support " "launch RDP SSH client, The Telnet client will next" -msgstr "" -"JumpServer 用戶端,目前用來喚起 特定用戶端程序 連接資產, 目前僅支持 RDP SSH " -"用戶端,Telnet 會在未來支持" +msgstr "JumpServer 用戶端,目前用來喚起 特定用戶端程序 連接資產, 目前僅支持 RDP SSH 用戶端,Telnet 會在未來支持" #: templates/resource_download.html:35 msgid "Microsoft" @@ -7642,7 +7507,7 @@ msgstr "無法刪除正在使用的儲存: {}" msgid "Command storages" msgstr "命令儲存" -#: terminal/api/component/storage.py:84 xpack/plugins/cloud/manager.py:107 +#: terminal/api/component/storage.py:84 xpack/plugins/cloud/manager.py:110 msgid "Invalid" msgstr "無效" @@ -8036,7 +7901,8 @@ msgstr "可以下載會話錄影" msgid "Account ID" msgstr "帳號" -#: terminal/models/session/session.py:38 terminal/models/session/sharing.py:118 +#: terminal/models/session/session.py:38 +#: terminal/models/session/sharing.py:118 msgid "Login from" msgstr "登錄來源" @@ -8085,8 +7951,8 @@ msgstr "操作權限" msgid "Origin" msgstr "來源" -#: terminal/models/session/sharing.py:42 terminal/models/session/sharing.py:100 -#: terminal/notifications.py:279 +#: terminal/models/session/sharing.py:42 +#: terminal/models/session/sharing.py:100 terminal/notifications.py:279 msgid "Session sharing" msgstr "會話分享" @@ -8199,19 +8065,15 @@ msgstr "Core 服務地址" #: terminal/serializers/applet_host.py:38 msgid "" " \n" -" Tips: The application release machine communicates with the Core " -"service. \n" -" If the release machine and the Core service are on the same network " -"segment, \n" -" it is recommended to fill in the intranet address, otherwise fill in " -"the current site URL \n" +" Tips: The application release machine communicates with the Core service. \n" +" If the release machine and the Core service are on the same network segment, \n" +" it is recommended to fill in the intranet address, otherwise fill in the current site URL \n" "
\n" " eg: https://172.16.10.110 or https://dev.jumpserver.com\n" " " msgstr "" -"提示:應用發布機和 Core 服務進行通信使用,如果發布機和 Core 服務在同一網段," -"建議填寫內網地址,否則填寫當前站點 URL
例如:https://172.16.10.110 or " -"https://dev.jumpserver.com" +"提示:應用發布機和 Core 服務進行通信使用,如果發布機和 Core 服務在同一網段,建議填寫內網地址,否則填寫當前站點 " +"URL
例如:https://172.16.10.110 or https://dev.jumpserver.com" #: terminal/serializers/applet_host.py:46 terminal/serializers/storage.py:207 msgid "Ignore Certificate Verification" @@ -8224,12 +8086,12 @@ msgstr "已有 RDS 許可證" #: terminal/serializers/applet_host.py:50 msgid "" "If not exist, the RDS will be in trial mode, and the trial period is 120 " -"days. Detail" +"days. Detail" msgstr "" -"如果不存在,RDS將處於試用模式,試用期為 120 天。詳情" +"如果不存在,RDS將處於試用模式,試用期為 120 天。詳情" #: terminal/serializers/applet_host.py:55 msgid "RDS License Server" @@ -8247,9 +8109,7 @@ msgstr "RDS 單用戶單會話" msgid "" "Tips: A RDS user can have only one session at a time. If set, when next " "login connected, previous session will be disconnected." -msgstr "" -"提示:RDS 用戶一次只能有一個會話。如果設定了,當下一次登入連接時,之前的會話" -"將會被斷開" +msgstr "提示:RDS 用戶一次只能有一個會話。如果設定了,當下一次登入連接時,之前的會話將會被斷開" #: terminal/serializers/applet_host.py:65 msgid "RDS Max Disconnection Time (ms)" @@ -8259,9 +8119,7 @@ msgstr "RDS 最大斷開時間(毫秒)" msgid "" "Tips: Set the maximum duration for keeping a disconnected session active on " "the server (log off the session after 60000 milliseconds)." -msgstr "" -"提示:設置某個已斷開連接的會話在伺服器上能保持活動狀態的最長時間(60000 毫秒" -"後註銷會話)" +msgstr "提示:設置某個已斷開連接的會話在伺服器上能保持活動狀態的最長時間(60000 毫秒後註銷會話)" #: terminal/serializers/applet_host.py:72 msgid "RDS Remote App Logoff Time Limit (ms)" @@ -8269,11 +8127,9 @@ msgstr "RDS 遠程應用註銷時間限制(毫秒)" #: terminal/serializers/applet_host.py:74 msgid "" -"Tips: Set the logoff time for RemoteApp sessions after closing all RemoteApp " -"programs (0 milliseconds, log off the session immediately)." -msgstr "" -"提示:關閉所有 RemoteApp 程序之後設置 RemoteAPP 會話的註銷時間(0 毫秒,立即" -"註銷會話)" +"Tips: Set the logoff time for RemoteApp sessions after closing all RemoteApp" +" programs (0 milliseconds, log off the session immediately)." +msgstr "提示:關閉所有 RemoteApp 程序之後設置 RemoteAPP 會話的註銷時間(0 毫秒,立即註銷會話)" #: terminal/serializers/applet_host.py:83 terminal/serializers/terminal.py:47 #: terminal/serializers/virtualapp_provider.py:13 @@ -8282,16 +8138,15 @@ msgstr "負載狀態" #: terminal/serializers/applet_host.py:97 msgid "" -"These accounts are used to connect to the published application, the account " -"is now divided into two types, one is dedicated to each account, each user " +"These accounts are used to connect to the published application, the account" +" is now divided into two types, one is dedicated to each account, each user " "has a private account, the other is public, when the application does not " -"support multiple open and the special has been used, the public account will " -"be used to connect" +"support multiple open and the special has been used, the public account will" +" be used to connect" msgstr "" -"這些帳號用於連接髮布的應用,帳號現在分為兩種類型:
一種是專用的,每個用" -"戶都有一個專用帳號。 另一種是公共的,當應用不支持多開且專用的已經被使用時,會" -"使用公共帳號連接;
注意: 如果不開啟自動創建帳號, 當前發布機僅能被指定標" -"簽的資產調度到,默認不會放到調度池中,且需要手動維護帳號" +"這些帳號用於連接髮布的應用,帳號現在分為兩種類型:
一種是專用的,每個用戶都有一個專用帳號。 " +"另一種是公共的,當應用不支持多開且專用的已經被使用時,會使用公共帳號連接;
注意: 如果不開啟自動創建帳號, " +"當前發布機僅能被指定標簽的資產調度到,默認不會放到調度池中,且需要手動維護帳號" #: terminal/serializers/applet_host.py:104 msgid "The number of public accounts created automatically" @@ -8303,8 +8158,7 @@ msgid "" "please set the configuration item CACHE_LOGIN_PASSWORD_ENABLED=true and " "restart the service to enable it." msgstr "" -"優先使用同名帳號連接髮布機。為了安全,需配置文件中開啟配置 " -"CACHE_LOGIN_PASSWORD_ENABLED=true, 修改後重啟服務" +"優先使用同名帳號連接髮布機。為了安全,需配置文件中開啟配置 CACHE_LOGIN_PASSWORD_ENABLED=true, 修改後重啟服務" #: terminal/serializers/applet_host.py:149 msgid "Install applets" @@ -8354,23 +8208,19 @@ msgstr "Oracle 埠範圍" msgid "" "Oracle proxy server listen port is dynamic, Each additional Oracle database " "instance adds a port listener" -msgstr "" -"Oracle 代理伺服器監聽埠是動態的,每增加一個 Oracle 資料庫實例,就會增加一個埠" -"監聽" +msgstr "Oracle 代理伺服器監聽埠是動態的,每增加一個 Oracle 資料庫實例,就會增加一個埠監聽" #: terminal/serializers/endpoint.py:38 msgid "" "The host address accessed when connecting to assets, if it is empty, the " "access address of the current browser will be used (the default endpoint " "does not allow modification of the host)" -msgstr "" -"連接資產時訪問的主機地址,如果為空則使用當前瀏覽器的訪問地址 (默認端點不允許" -"修改主機)" +msgstr "連接資產時訪問的主機地址,如果為空則使用當前瀏覽器的訪問地址 (默認端點不允許修改主機)" #: terminal/serializers/endpoint.py:71 msgid "" -"The assets within this IP range, the following endpoint will be used for the " -"connection" +"The assets within this IP range, the following endpoint will be used for the" +" connection" msgstr "該 IP 範圍內的資產,將使用下面的端點進行連接" #: terminal/serializers/endpoint.py:72 @@ -8463,8 +8313,8 @@ msgid "" "If there are multiple hosts, use a comma (,) to separate them.
(For " "example: http://www.jumpserver.a.com:9100, http://www.jumpserver.b.com:9100)" msgstr "" -"如果有多個主機,請用逗號 (,) 分隔它們。
(例如:http://www.jumpserver.a." -"com:9100,http://www.jumpserver.b.com:9100)" +"如果有多個主機,請用逗號 (,) " +"分隔它們。
(例如:http://www.jumpserver.a.com:9100,http://www.jumpserver.b.com:9100)" #: terminal/serializers/storage.py:199 msgid "Index by date" @@ -8639,8 +8489,7 @@ msgstr "清除離線會話" #: terminal/tasks.py:45 msgid "" -"Check every 10 minutes for asset connection sessions that have been inactive " -"for 3 \n" +"Check every 10 minutes for asset connection sessions that have been inactive for 3 \n" " minutes and mark these sessions as completed" msgstr "每10分鐘檢查3分鐘未活躍的資產連結會話,將這些會話標記未已完成" @@ -8650,11 +8499,9 @@ msgstr "上傳會話錄影到外部儲存" #: terminal/tasks.py:70 terminal/tasks.py:104 msgid "" -"If SERVER_REPLAY_STORAGE is configured in the config.txt, session commands " -"and \n" +"If SERVER_REPLAY_STORAGE is configured in the config.txt, session commands and \n" " recordings will be uploaded to external storage" -msgstr "" -"如果設置了SERVER_REPLAY_STORAGE,將透過檔案管理上傳的檔案同步到外部儲存" +msgstr "如果設置了SERVER_REPLAY_STORAGE,將透過檔案管理上傳的檔案同步到外部儲存" #: terminal/tasks.py:102 msgid "Upload session replay part file to external storage" @@ -8666,8 +8513,7 @@ msgstr "運行應用機部署" #: terminal/tasks.py:126 msgid "" -"When deploying from the remote application publisher details page, and the " -"'Deploy' \n" +"When deploying from the remote application publisher details page, and the 'Deploy' \n" " button is clicked, this task will be executed" msgstr "發布機部署,點擊部署時,執行該Action" @@ -8677,8 +8523,7 @@ msgstr "安裝應用" #: terminal/tasks.py:140 msgid "" -"When the 'Deploy' button is clicked in the 'Remote Application' section of " -"the remote \n" +"When the 'Deploy' button is clicked in the 'Remote Application' section of the remote \n" " application publisher details page, this task will be executed" msgstr "當遠端應用發布機的詳細資訊-遠端應用,點擊部署時,執行該Action" @@ -8688,8 +8533,7 @@ msgstr "卸載應用" #: terminal/tasks.py:155 msgid "" -"When the 'Uninstall' button is clicked in the 'Remote Application' section " -"of the \n" +"When the 'Uninstall' button is clicked in the 'Remote Application' section of the \n" " remote application publisher details page, this task will be executed" msgstr "當遠端應用發布機的詳細資訊-遠端應用,點擊移除時,執行該Action" @@ -8699,8 +8543,7 @@ msgstr "收集遠程應用上的帳號" #: terminal/tasks.py:170 msgid "" -"When a remote publishing server is created and an account needs to be " -"created \n" +"When a remote publishing server is created and an account needs to be created \n" " automatically, this task will be executed" msgstr "當創建遠程發布機後,需要自動創建帳號時,執行該Action" @@ -8710,15 +8553,10 @@ msgstr "檢查命令及錄影儲存可連接性 " #: terminal/tasks.py:186 msgid "" -"Check every day at midnight whether the external storage for commands and " -"recordings \n" -" is accessible. If it is not accessible, send a notification to the " -"recipients specified \n" -" in 'System Settings - Notifications - Subscription - Storage - " -"Connectivity'" -msgstr "" -"每天凌晨0點檢查命令及錄像外部儲存是否能夠連接,無法連接時發送給:系統設定-通" -"知設定-訊息訂閱-命令及錄像儲存設定的接收人" +"Check every day at midnight whether the external storage for commands and recordings \n" +" is accessible. If it is not accessible, send a notification to the recipients specified \n" +" in 'System Settings - Notifications - Subscription - Storage - Connectivity'" +msgstr "每天凌晨0點檢查命令及錄像外部儲存是否能夠連接,無法連接時發送給:系統設定-通知設定-訊息訂閱-命令及錄像儲存設定的接收人" #: terminal/templates/terminal/_msg_command_alert.html:10 msgid "view" @@ -8729,14 +8567,12 @@ msgid "" "No available port is matched. The number of databases may have exceeded the " "number of ports open to the database agent service, Contact the " "administrator to open more ports." -msgstr "" -"未匹配到可用埠,資料庫的數量可能已經超過資料庫代理服務開放的埠數量,請聯系管" -"理員開放更多埠。" +msgstr "未匹配到可用埠,資料庫的數量可能已經超過資料庫代理服務開放的埠數量,請聯系管理員開放更多埠。" #: terminal/utils/db_port_mapper.py:116 msgid "" -"No ports can be used, check and modify the limit on the number of ports that " -"Magnus listens on in the configuration file." +"No ports can be used, check and modify the limit on the number of ports that" +" Magnus listens on in the configuration file." msgstr "沒有埠可以使用,檢查並修改配置文件中 Magnus 監聽的埠數量限制。" #: terminal/utils/db_port_mapper.py:118 @@ -8799,8 +8635,7 @@ msgstr "工單已經關閉" msgid "" "Created by the ticket ticket title: {} ticket applicant: {} ticket " "processor: {} ticket ID: {}" -msgstr "" -"通過工單創建, 工單標題: {}, 工單申請人: {}, 工單處理人: {}, 工單 ID: {}" +msgstr "通過工單創建, 工單標題: {}, 工單申請人: {}, 工單處理人: {}, 工單 ID: {}" #: tickets/handlers/base.py:84 msgid "Change field" @@ -9149,9 +8984,7 @@ msgid "" "When enabled, you will enter the MFA binding process the next time you log " "in. you can also directly bind in \"personal information -> quick " "modification -> change MFA Settings\"!" -msgstr "" -"啟用之後您將會在下次登錄時進入多因子認證綁定流程;您也可以在 (個人資訊->快速" -"修改->設置 MFA 多因子認證)中直接綁定!" +msgstr "啟用之後您將會在下次登錄時進入多因子認證綁定流程;您也可以在 (個人資訊->快速修改->設置 MFA 多因子認證)中直接綁定!" #: users/forms/profile.py:60 msgid "* Enable MFA to make the account more secure." @@ -9159,12 +8992,10 @@ msgstr "* 啟用 MFA 多因子認證,使帳號更加安全。" #: users/forms/profile.py:69 msgid "" -"In order to protect you and your company, please keep your account, password " -"and key sensitive information properly. (for example: setting complex " +"In order to protect you and your company, please keep your account, password" +" and key sensitive information properly. (for example: setting complex " "password, enabling MFA)" -msgstr "" -"為了保護您和公司的安全,請妥善保管您的帳號、密碼和金鑰等重要敏感資訊; (如:" -"設置複雜密碼,並啟用 MFA 多因子認證)" +msgstr "為了保護您和公司的安全,請妥善保管您的帳號、密碼和金鑰等重要敏感資訊; (如:設置複雜密碼,並啟用 MFA 多因子認證)" #: users/forms/profile.py:83 users/serializers/preference/lina.py:21 msgid "New password" @@ -9321,8 +9152,8 @@ msgstr "終端主題名稱" #: users/serializers/preference/lina.py:12 msgid "" "*! The password for file encryption, used for decryption when the system " -"sends emails containing file attachments.
Such as: account backup files, " -"account password change results files" +"sends emails containing file attachments.
Such as: account backup files," +" account password change results files" msgstr "" "File Encryption Password, when the system sends mails containing file " "attachments, use this password for decryption.
For example: Account " @@ -9375,9 +9206,7 @@ msgid "" "Determines whether the client computer should scale the content on the " "remote computer to fit the window size of the client computer when the " "window is resized." -msgstr "" -"確定調整窗口大小時用戶端計算機是否應縮放遠程計算機上的內容以適應用戶端計算機" -"的窗口大小" +msgstr "確定調整窗口大小時用戶端計算機是否應縮放遠程計算機上的內容以適應用戶端計算機的窗口大小" #: users/serializers/preference/luna.py:59 msgid "Remote app connect method" @@ -9421,10 +9250,11 @@ msgstr "系統角色" #: users/serializers/user.py:55 msgid "" -"System roles are roles at the system level, and they will take effect across " -"all organizations" +"System roles are roles at the system level, and they will take effect across" +" all organizations" msgstr "" -"System role is a system-level role, it will be effective in all organizations" +"System role is a system-level role, it will be effective in all " +"organizations" #: users/serializers/user.py:61 msgid "Org roles" @@ -9435,8 +9265,8 @@ msgid "" "Org roles are roles at the organization level, and they will only take " "effect within current organization" msgstr "" -"Organization role is an organization-level role, it is only effective within " -"the current organization" +"Organization role is an organization-level role, it is only effective within" +" the current organization" #: users/serializers/user.py:70 msgid "Organizations and roles" @@ -9500,8 +9330,8 @@ msgid "" "other sources.There are security settings that can restrict users to log in " "to the system only from the sources." msgstr "" -"User origin identifies the location where the user was created. It can be AD " -"or other sources. Security settings can restrict users to log in to the " +"User origin identifies the location where the user was created. It can be AD" +" or other sources. Security settings can restrict users to log in to the " "system only from designated sources." #: users/serializers/user.py:271 @@ -9526,7 +9356,8 @@ msgstr "認證" #: users/serializers/user.py:439 msgid "" -"* For security, only a partial of users is displayed. You can search for more" +"* For security, only a partial of users is displayed. You can search for " +"more" msgstr "" "*For security reasons, only a portion of users is displayed. You can search " "for more" @@ -9538,10 +9369,8 @@ msgstr "名稱重複" #: users/signal_handlers.py:41 msgid "" "The administrator has enabled \"Only allow existing users to log in\", \n" -" and the current user is not in the user list. Please contact the " -"administrator." -msgstr "" -"管理員已開啟'僅允許已存在用戶登錄',當前用戶不在用戶列表中,請聯絡管理員。" +" and the current user is not in the user list. Please contact the administrator." +msgstr "管理員已開啟'僅允許已存在用戶登錄',當前用戶不在用戶列表中,請聯絡管理員。" #: users/signal_handlers.py:197 msgid "Clean up expired user sessions" @@ -9549,11 +9378,9 @@ msgstr "清除過期的用戶會話" #: users/signal_handlers.py:199 msgid "" -"After logging in via the web, a user session record is created. At 2 a.m. " -"every day, \n" +"After logging in via the web, a user session record is created. At 2 a.m. every day, \n" " the system cleans up inactive user devices" -msgstr "" -"使用web登入後,會產生使用者會話在線紀錄,每天凌晨2點,清理未在線的使用者設備" +msgstr "使用web登入後,會產生使用者會話在線紀錄,每天凌晨2點,清理未在線的使用者設備" #: users/tasks.py:26 msgid "Check password expired" @@ -9561,8 +9388,7 @@ msgstr "校驗密碼已過期" #: users/tasks.py:28 msgid "" -"Check every day at 10 AM whether the passwords of users in the system are " -"expired, \n" +"Check every day at 10 AM whether the passwords of users in the system are expired, \n" " and send a notification 5 days in advance" msgstr "每天早上10點檢查,系統中使用者的密碼是否過期,提前5天發送通知" @@ -9572,14 +9398,10 @@ msgstr "週期校驗密碼過期" #: users/tasks.py:48 msgid "" -"With version iterations, new tasks may be added, or task names and execution " -"times may \n" -" be modified. Therefore, upon system startup, it is necessary to " -"register or update the \n" +"With version iterations, new tasks may be added, or task names and execution times may \n" +" be modified. Therefore, upon system startup, it is necessary to register or update the \n" " parameters of the task that checks if passwords have expired" -msgstr "" -"隨著版本迭代,可能會新增Action或者修改Action的名稱,執行時間,所以在系統啟動" -"時,註冊或者更新檢驗密碼已過期Action的參數" +msgstr "隨著版本迭代,可能會新增Action或者修改Action的名稱,執行時間,所以在系統啟動時,註冊或者更新檢驗密碼已過期Action的參數" #: users/tasks.py:67 msgid "Check user expired" @@ -9587,8 +9409,7 @@ msgstr "校驗用戶已過期" #: users/tasks.py:69 msgid "" -"Check every day at 2 p.m whether the users in the system are expired, and " -"send a \n" +"Check every day at 2 p.m whether the users in the system are expired, and send a \n" " notification 5 days in advance" msgstr "每天上午10點檢查,系統中的使用者是否過期,提前5天發送通知" @@ -9598,14 +9419,10 @@ msgstr "週期檢測用戶過期" #: users/tasks.py:92 msgid "" -"With version iterations, new tasks may be added, or task names and execution " -"times may \n" -" be modified. Therefore, upon system startup, it is necessary to " -"register or update the \n" +"With version iterations, new tasks may be added, or task names and execution times may \n" +" be modified. Therefore, upon system startup, it is necessary to register or update the \n" " parameters of the task that checks if users have expired" -msgstr "" -"隨著版本迭代,可能會新增任務或者修改任務的名稱,執行時間,所以在系統啟動時," -"註冊或者更新檢驗使用者已過期任務的參數" +msgstr "隨著版本迭代,可能會新增任務或者修改任務的名稱,執行時間,所以在系統啟動時,註冊或者更新檢驗使用者已過期任務的參數" #: users/tasks.py:111 msgid "Check unused users" @@ -9613,14 +9430,10 @@ msgstr "檢查未使用的用戶" #: users/tasks.py:113 msgid "" -"At 2 p.m. every day, according to the configuration in \"System Settings - " -"Security - \n" -" Auth security - Auto disable threshold\" users who have not logged " -"in or whose API keys \n" +"At 2 p.m. every day, according to the configuration in \"System Settings - Security - \n" +" Auth security - Auto disable threshold\" users who have not logged in or whose API keys \n" " have not been used for a long time will be disabled" -msgstr "" -"每天凌晨2點,根據系統配置-安全設置-不活躍使用者自動禁用配置,對長時間不登錄或" -"api_key不使用的使用者進行禁用" +msgstr "每天凌晨2點,根據系統配置-安全設置-不活躍使用者自動禁用配置,對長時間不登錄或api_key不使用的使用者進行禁用" #: users/tasks.py:157 msgid "The user has not logged in recently and has been disabled." @@ -9754,8 +9567,8 @@ msgstr "綁定MFA驗證器" #: users/templates/users/user_otp_enable_bind.html:13 msgid "" -"Use the MFA Authenticator application to scan the following qr code for a 6-" -"bit verification code" +"Use the MFA Authenticator application to scan the following qr code for a " +"6-bit verification code" msgstr "使用 MFA 驗證器應用掃描以下二維碼,獲取6位驗證碼" #: users/templates/users/user_otp_enable_bind.html:22 @@ -9818,7 +9631,7 @@ msgstr "重新導向到 JumpServer 客戶端" msgid "Face binding successful" msgstr "綁定人臉特徵成功" -#: users/views/profile/face.py:80 users/views/profile/face.py:81 +#: users/views/profile/face.py:82 users/views/profile/face.py:83 msgid "Face unbinding successful" msgstr "解除綁定人臉特徵成功" @@ -9856,8 +9669,8 @@ msgstr "使用者名稱或密碼無效" #: users/views/profile/reset.py:66 msgid "" -"Non-local users can log in only from third-party platforms and cannot change " -"their passwords: {}" +"Non-local users can log in only from third-party platforms and cannot change" +" their passwords: {}" msgstr "非本地用戶僅允許從第三方平台登錄,不支持修改密碼: {}" #: users/views/profile/reset.py:188 users/views/profile/reset.py:199 @@ -10017,19 +9830,19 @@ msgstr "實例名稱和部分IP" msgid "Succeed" msgstr "成功" -#: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:95 +#: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:98 msgid "Unsync" msgstr "未同步" -#: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:94 +#: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:97 msgid "New Sync" msgstr "新同步" -#: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:94 +#: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:97 msgid "Synced" msgstr "已同步" -#: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:96 +#: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:99 msgid "Released" msgstr "已釋放" @@ -10049,46 +9862,45 @@ msgstr "已同步的組織" msgid "Imported" msgstr "導入" -#: xpack/plugins/cloud/manager.py:48 +#: xpack/plugins/cloud/manager.py:51 #, python-format msgid "Task \"%s\" starts executing" msgstr "Action \"%s\" 開始執行" -#: xpack/plugins/cloud/manager.py:87 +#: xpack/plugins/cloud/manager.py:90 msgid "View the task details path: " msgstr "查看詳細內容" -#: xpack/plugins/cloud/manager.py:90 +#: xpack/plugins/cloud/manager.py:93 msgid "Account Details" msgstr "帳號" -#: xpack/plugins/cloud/manager.py:91 +#: xpack/plugins/cloud/manager.py:94 msgid "Synchronization History List" msgstr "Synchronous history list" -#: xpack/plugins/cloud/manager.py:91 +#: xpack/plugins/cloud/manager.py:94 msgid "Synchronization Instance List" msgstr "Synchronous instance list" -#: xpack/plugins/cloud/manager.py:95 +#: xpack/plugins/cloud/manager.py:98 msgid "To be released" msgstr "待釋放" -#: xpack/plugins/cloud/manager.py:99 +#: xpack/plugins/cloud/manager.py:102 msgid "Task execution completed" msgstr "任務執行完成" -#: xpack/plugins/cloud/manager.py:104 +#: xpack/plugins/cloud/manager.py:107 msgid "Synchronization regions" msgstr "同步地區" -#: xpack/plugins/cloud/manager.py:129 +#: xpack/plugins/cloud/manager.py:132 #, python-format msgid "Get instances of region \"%s\" error, error: %s" -msgstr "" -"An error occurred while getting the instances of Region \"%s\", Error: %s" +msgstr "An error occurred while getting the instances of Region \"%s\", Error: %s" -#: xpack/plugins/cloud/manager.py:175 +#: xpack/plugins/cloud/manager.py:178 #, python-format msgid "Failed to synchronize the instance \"%s\"" msgstr "Unable to synchronize instance %s" @@ -10102,42 +9914,42 @@ msgstr "" "The update platform of asset \"%s\" is not consistent with the original " "platform type. Skip platform and protocol updates" -#: xpack/plugins/cloud/manager.py:399 +#: xpack/plugins/cloud/manager.py:406 #, python-format msgid "The asset \"%s\" already exists" msgstr "\"資產 \"%s\" 已存在" -#: xpack/plugins/cloud/manager.py:401 +#: xpack/plugins/cloud/manager.py:408 #, python-format msgid "Update asset \"%s\"" msgstr "更新資產 \"%s\"" -#: xpack/plugins/cloud/manager.py:404 +#: xpack/plugins/cloud/manager.py:411 #, python-format msgid "Asset \"%s\" has been updated" msgstr "資產 \"%s\" 已更新" -#: xpack/plugins/cloud/manager.py:413 +#: xpack/plugins/cloud/manager.py:420 #, python-format msgid "Prepare to create asset \"%s\"" msgstr "Preparing to create asset %s" -#: xpack/plugins/cloud/manager.py:434 +#: xpack/plugins/cloud/manager.py:441 #, python-format msgid "Set nodes \"%s\"" -msgstr "Delete Node: \"%s\"" +msgstr "設定節點: \"%s\"" -#: xpack/plugins/cloud/manager.py:460 +#: xpack/plugins/cloud/manager.py:467 #, python-format msgid "Set accounts \"%s\"" -msgstr "刪除帳號: %s" +msgstr "設定帳號: %s" -#: xpack/plugins/cloud/manager.py:476 +#: xpack/plugins/cloud/manager.py:483 #, python-format msgid "Set protocols \"%s\"" msgstr "設定協議 \"%s\"" -#: xpack/plugins/cloud/manager.py:490 xpack/plugins/cloud/tasks.py:31 +#: xpack/plugins/cloud/manager.py:497 xpack/plugins/cloud/tasks.py:31 msgid "Run sync instance task" msgstr "執行同步實例任務" @@ -10235,7 +10047,8 @@ msgstr "實例" msgid "Sync instance detail" msgstr "同步實例詳情" -#: xpack/plugins/cloud/models.py:313 xpack/plugins/cloud/serializers/task.py:77 +#: xpack/plugins/cloud/models.py:313 +#: xpack/plugins/cloud/serializers/task.py:77 msgid "Rule relation" msgstr "條件關係" @@ -10291,7 +10104,8 @@ msgstr "規則匹配" msgid "Rule value" msgstr "規則值" -#: xpack/plugins/cloud/models.py:383 xpack/plugins/cloud/serializers/task.py:80 +#: xpack/plugins/cloud/models.py:383 +#: xpack/plugins/cloud/serializers/task.py:80 msgid "Strategy rule" msgstr "條件" @@ -10307,7 +10121,8 @@ msgstr "動作屬性" msgid "Action value" msgstr "動作值" -#: xpack/plugins/cloud/models.py:409 xpack/plugins/cloud/serializers/task.py:83 +#: xpack/plugins/cloud/models.py:409 +#: xpack/plugins/cloud/serializers/task.py:83 msgid "Strategy action" msgstr "動作" @@ -10531,76 +10346,78 @@ msgstr "Access key ID(AK)" msgid "Subscription ID" msgstr "訂閱 ID" -#: xpack/plugins/cloud/serializers/account_attrs.py:98 -#: xpack/plugins/cloud/serializers/account_attrs.py:102 -#: xpack/plugins/cloud/serializers/account_attrs.py:126 -#: xpack/plugins/cloud/serializers/account_attrs.py:156 -#: xpack/plugins/cloud/serializers/account_attrs.py:206 +#: xpack/plugins/cloud/serializers/account_attrs.py:74 +msgid "Auto node classification" +msgstr "自動節點分類" + +#: xpack/plugins/cloud/serializers/account_attrs.py:99 +#: xpack/plugins/cloud/serializers/account_attrs.py:103 +#: xpack/plugins/cloud/serializers/account_attrs.py:127 +#: xpack/plugins/cloud/serializers/account_attrs.py:157 +#: xpack/plugins/cloud/serializers/account_attrs.py:207 msgid "API Endpoint" msgstr "API 端點" -#: xpack/plugins/cloud/serializers/account_attrs.py:108 +#: xpack/plugins/cloud/serializers/account_attrs.py:109 msgid "Auth url" msgstr "認證地址" -#: xpack/plugins/cloud/serializers/account_attrs.py:109 +#: xpack/plugins/cloud/serializers/account_attrs.py:110 msgid "eg: http://openstack.example.com:5000/v3" msgstr "如: http://openstack.example.com:5000/v3" -#: xpack/plugins/cloud/serializers/account_attrs.py:112 +#: xpack/plugins/cloud/serializers/account_attrs.py:113 msgid "User domain" msgstr "用戶域" -#: xpack/plugins/cloud/serializers/account_attrs.py:127 +#: xpack/plugins/cloud/serializers/account_attrs.py:128 msgid "Cert File" msgstr "證書文件" -#: xpack/plugins/cloud/serializers/account_attrs.py:128 +#: xpack/plugins/cloud/serializers/account_attrs.py:129 msgid "Key File" msgstr "金鑰文件" -#: xpack/plugins/cloud/serializers/account_attrs.py:144 +#: xpack/plugins/cloud/serializers/account_attrs.py:145 msgid "Service account key" msgstr "服務帳號金鑰" -#: xpack/plugins/cloud/serializers/account_attrs.py:145 +#: xpack/plugins/cloud/serializers/account_attrs.py:146 msgid "The file is in JSON format" msgstr "JSON 格式的文件" -#: xpack/plugins/cloud/serializers/account_attrs.py:163 +#: xpack/plugins/cloud/serializers/account_attrs.py:164 msgid "IP address invalid `{}`, {}" msgstr "IP 地址無效: `{}`, {}" -#: xpack/plugins/cloud/serializers/account_attrs.py:179 +#: xpack/plugins/cloud/serializers/account_attrs.py:180 msgid "Such as: 192.168.1.0/24, 10.0.0.0-10.0.0.255" msgstr "例: 192.168.1.0/24,10.0.0.0-10.0.0.255" -#: xpack/plugins/cloud/serializers/account_attrs.py:182 +#: xpack/plugins/cloud/serializers/account_attrs.py:183 msgid "" "The port is used to detect the validity of the IP address. When the " "synchronization task is executed, only the valid IP address will be " "synchronized.
If the port is 0, all IP addresses are valid." -msgstr "" -"埠用來檢測 IP 地址的有效性,在同步任務執行時,只會同步有效的 IP 地址。
如" -"果埠為 0,則表示所有 IP 地址均有效。" +msgstr "埠用來檢測 IP 地址的有效性,在同步任務執行時,只會同步有效的 IP 地址。
如果埠為 0,則表示所有 IP 地址均有效。" -#: xpack/plugins/cloud/serializers/account_attrs.py:190 +#: xpack/plugins/cloud/serializers/account_attrs.py:191 msgid "Hostname prefix" msgstr "主機名前綴" -#: xpack/plugins/cloud/serializers/account_attrs.py:193 +#: xpack/plugins/cloud/serializers/account_attrs.py:194 msgid "IP segment" msgstr "IP 網段" -#: xpack/plugins/cloud/serializers/account_attrs.py:197 +#: xpack/plugins/cloud/serializers/account_attrs.py:198 msgid "Test port" msgstr "測試埠" -#: xpack/plugins/cloud/serializers/account_attrs.py:200 +#: xpack/plugins/cloud/serializers/account_attrs.py:201 msgid "Test timeout" msgstr "測試超時時間" -#: xpack/plugins/cloud/serializers/account_attrs.py:216 +#: xpack/plugins/cloud/serializers/account_attrs.py:217 msgid "Project" msgstr "project" @@ -10615,8 +10432,7 @@ msgstr "實例個數" #: xpack/plugins/cloud/tasks.py:33 msgid "" "\n" -" Execute this task when manually or scheduled cloud synchronization " -"tasks are performed\n" +" Execute this task when manually or scheduled cloud synchronization tasks are performed\n" " " msgstr "" "\n" @@ -10629,16 +10445,13 @@ msgstr "定期清除同步實例任務執行記錄" #: xpack/plugins/cloud/tasks.py:54 msgid "" "\n" -" Every day, according to the configuration in \"System Settings - " -"Tasks - Regular \n" -" clean-up - Cloud sync task history retention days\" the system will " -"clean up the execution \n" +" Every day, according to the configuration in \"System Settings - Tasks - Regular \n" +" clean-up - Cloud sync task history retention days\" the system will clean up the execution \n" " records generated by cloud synchronization\n" " " msgstr "" "\n" -"每天根據系統設置-任務列表-定期清理配置-雲同步記錄配置,對雲同步產生的執行記錄" -"進行清理" +"每天根據系統設置-任務列表-定期清理配置-雲同步記錄配置,對雲同步產生的執行記錄進行清理" #: xpack/plugins/interface/api.py:52 msgid "Restore default successfully." diff --git a/apps/i18n/lina/en.json b/apps/i18n/lina/en.json index ef4310511..6b42ce035 100644 --- a/apps/i18n/lina/en.json +++ b/apps/i18n/lina/en.json @@ -98,7 +98,7 @@ "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", + "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 [publishing machine: publishing machine name] or [AppletHost: publishing machine name];
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", diff --git a/apps/i18n/lina/zh.json b/apps/i18n/lina/zh.json index c9d118672..c7fcf48d0 100644 --- a/apps/i18n/lina/zh.json +++ b/apps/i18n/lina/zh.json @@ -98,7 +98,7 @@ "AppletHelpText": "在上传过程中,如果应用不存在,则创建该应用;如果已存在,则进行应用更新。", "AppletHostCreate": "添加远程应用发布机", "AppletHostDetail": "远程应用发布机详情", - "AppletHostSelectHelpMessage": "连接资产时,应用发布机选择是随机的(但优先选择上次使用的),如果想为某个资产固定发布机,可以指定标签 <发布机:发布机名称> 或 ;
连接该发布机选择账号时,以下情况会选择用户的 同名账号 或 专有账号(js开头),否则使用公用账号(jms开头):
  1. 发布机和应用都支持并发;
  2. 发布机支持并发,应用不支持并发,当前应用没有使用专有账号;
  3. 发布机不支持并发,应用支持并发或不支持,没有任一应用使用专有账号;
注意: 应用支不支持并发是开发者决定,主机支不支持是发布机配置中的 单用户单会话决定", + "AppletHostSelectHelpMessage": "连接资产时,应用发布机选择是随机的(但优先选择上次使用的),如果想为某个资产固定发布机,可以指定标签 [发布机:发布机名称] 或 [AppletHost:发布机名称];
连接该发布机选择账号时,以下情况会选择用户的 同名账号 或 专有账号(js开头),否则使用公用账号(jms开头):
  1. 发布机和应用都支持并发;
  2. 发布机支持并发,应用不支持并发,当前应用没有使用专有账号;
  3. 发布机不支持并发,应用支持并发或不支持,没有任一应用使用专有账号;
注意: 应用支不支持并发是开发者决定,主机支不支持是发布机配置中的 单用户单会话决定", "AppletHostUpdate": "更新远程应用发布机", "AppletHostZoneHelpText": "这里的网域属于 System 组织", "AppletHosts": "应用发布机", diff --git a/apps/i18n/luna/pt_br.json b/apps/i18n/luna/pt_br.json index 57f498a2c..fee7196e4 100644 --- a/apps/i18n/luna/pt_br.json +++ b/apps/i18n/luna/pt_br.json @@ -71,6 +71,9 @@ "Expand all": "Expandir Tudo", "Expand all asset": "Expanda todos os ativos abaixo do nó", "Expire time": "Tempo de Expiração", + "Face online required": "Este login precisa de verificação facial e monitoramento, deseja continuar?", + "Face verify required": "Este login requer verificação facial, deseja continuar? ", + "Face verify success": "Verificação facial bem-sucedida. ", "Failed to open address": "Falha ao abrir o endereço", "Favorite": "Favoritos", "File Manager": "Arquivo gerenciar", @@ -121,6 +124,7 @@ "No": "Não", "No account available": "Não há contas disponíveis", "No available connect method": "Nenhum método de conexão disponível", + "No facial features": "Não há características faciais disponíveis no momento, por favor, dirija-se à página de informações pessoais para vincular. ", "No matching found": "Sem correspondências", "No permission": "Sem permissão", "No protocol available": "Não há protocolos disponíveis", @@ -168,7 +172,7 @@ "Send text to all ssh terminals": "Enviar texto para todos os terminais ssh", "Set reusable": "Iniciar reutilização", "Setting": "Configurações", - "Settings or basic settings": "Menu 设置 → Configurações básicas", + "Settings or basic settings": "Menu configurar → Configurações básicas", "ShareSession": "Compartilhamento de sessão", "Show left manager": "Mostrar Barra Lateral Esquerda", "Skip": "Pular", diff --git a/apps/jumpserver/conf.py b/apps/jumpserver/conf.py index 6491b13ce..01af7ec96 100644 --- a/apps/jumpserver/conf.py +++ b/apps/jumpserver/conf.py @@ -290,7 +290,7 @@ class Config(dict): 'AUTH_LDAP_START_TLS': False, 'AUTH_LDAP_USER_ATTR_MAP': {"username": "cn", "name": "sn", "email": "mail"}, 'AUTH_LDAP_CONNECT_TIMEOUT': 10, - 'AUTH_LDAP_CACHE_TIMEOUT': 3600 * 24 * 30, + 'AUTH_LDAP_CACHE_TIMEOUT': 0, 'AUTH_LDAP_SEARCH_PAGED_SIZE': 1000, 'AUTH_LDAP_SYNC_IS_PERIODIC': False, 'AUTH_LDAP_SYNC_INTERVAL': None, @@ -310,7 +310,7 @@ class Config(dict): 'AUTH_LDAP_HA_START_TLS': False, 'AUTH_LDAP_HA_USER_ATTR_MAP': {"username": "cn", "name": "sn", "email": "mail"}, 'AUTH_LDAP_HA_CONNECT_TIMEOUT': 10, - 'AUTH_LDAP_HA_CACHE_TIMEOUT': 3600 * 24 * 30, + 'AUTH_LDAP_HA_CACHE_TIMEOUT': 0, 'AUTH_LDAP_HA_SEARCH_PAGED_SIZE': 1000, 'AUTH_LDAP_HA_SYNC_IS_PERIODIC': False, 'AUTH_LDAP_HA_SYNC_INTERVAL': None, diff --git a/apps/jumpserver/settings/_xpack.py b/apps/jumpserver/settings/_xpack.py index f0e59cecf..76b1d81b3 100644 --- a/apps/jumpserver/settings/_xpack.py +++ b/apps/jumpserver/settings/_xpack.py @@ -19,6 +19,7 @@ XPACK_TEMPLATES_DIR = [] XPACK_CONTEXT_PROCESSOR = [] XPACK_LICENSE_IS_VALID = False XPACK_LICENSE_EDITION = "" +XPACK_LICENSE_EDITION_ULTIMATE = False XPACK_LICENSE_INFO = { 'corporation': corporation, } diff --git a/apps/jumpserver/views/other.py b/apps/jumpserver/views/other.py index 3e2856193..cd5da8a61 100644 --- a/apps/jumpserver/views/other.py +++ b/apps/jumpserver/views/other.py @@ -102,7 +102,7 @@ class ResourceDownload(TemplateView): OPENSSH_VERSION=v9.4.0.0 TINKER_VERSION=v0.1.6 VIDEO_PLAYER_VERSION=0.2.0 - CLIENT_VERSION=v3.0.0 + CLIENT_VERSION=v3.0.1 """ def get_meta_json(self): diff --git a/apps/ops/migrations/0005_historicaljob_periodic_variable_and_more.py b/apps/ops/migrations/0005_historicaljob_periodic_variable_and_more.py index 1b09246ce..c046e5990 100644 --- a/apps/ops/migrations/0005_historicaljob_periodic_variable_and_more.py +++ b/apps/ops/migrations/0005_historicaljob_periodic_variable_and_more.py @@ -1,9 +1,10 @@ # Generated by Django 4.1.13 on 2024-10-30 09:38 +import uuid + +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion -import uuid class Migration(migrations.Migration): @@ -34,7 +35,7 @@ class Migration(migrations.Migration): ('comment', models.TextField(blank=True, default='', verbose_name='Comment')), ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('name', models.CharField(max_length=1024, null=True, verbose_name='Name')), - ('var_name', models.CharField(help_text="The variable name used in the script has a fixed prefix 'jms_' followed by the input variable name. For example, if the variable name is 'name,' the final generated environment variable will be 'jms_name'.", max_length=1024, null=True, verbose_name='Variable name')), + ('var_name', models.CharField(help_text="The variable name used in the script will have a fixed prefix jms_ added to the input variable name. For example, if the input variable name is name, the resulting environment variable will be jms_name, and it can be referenced in the script using {{ jms_name }}", max_length=1024, null=True, verbose_name='Variable name')), ('default_value', models.CharField(max_length=2048, null=True, verbose_name='Default Value')), ('type', models.CharField(default='text', max_length=64, verbose_name='Variable type')), ('tips', models.CharField(blank=True, default='', max_length=1024, null=True, verbose_name='Tips')), diff --git a/apps/ops/models/job.py b/apps/ops/models/job.py index 28169afd9..673548f75 100644 --- a/apps/ops/models/job.py +++ b/apps/ops/models/job.py @@ -188,11 +188,7 @@ class Job(JMSOrgBaseModel, PeriodTaskModelMixin): @property def average_time_cost(self): - total_cost = 0 - finished_count = self.executions.filter(status__in=['success', 'failed']).count() - for execution in self.executions.filter(status__in=['success', 'failed']).all(): - total_cost += execution.time_cost - return total_cost / finished_count if finished_count else 0 + return self.last_execution.time_cost if self.last_execution else 0 def get_register_task(self): from ..tasks import run_ops_job diff --git a/apps/ops/models/variable.py b/apps/ops/models/variable.py index 55044d758..6d0b51072 100644 --- a/apps/ops/models/variable.py +++ b/apps/ops/models/variable.py @@ -9,9 +9,9 @@ class Variable(JMSBaseModel): name = models.CharField(max_length=1024, verbose_name=_('Name'), null=True) var_name = models.CharField( max_length=1024, null=True, verbose_name=_('Variable name'), - help_text=_("The variable name used in the script has a fixed prefix 'jms_' followed by the input variable " - "name. For example, if the variable name is 'name,' the final generated environment variable will " - "be 'jms_name'.") + help_text=_("The variable name used in the script will have a fixed prefix jms_ added to the input variable " + "name. For example, if the input variable name is name, the resulting environment variable will " + "be jms_name, and it can be referenced in the script using {{ jms_name }}") ) default_value = models.CharField(max_length=2048, verbose_name=_('Default Value'), null=True) creator = models.ForeignKey('users.User', verbose_name=_("Creator"), on_delete=models.SET_NULL, null=True) diff --git a/apps/ops/serializers/variable.py b/apps/ops/serializers/variable.py index 7134655f2..6fd25df2c 100644 --- a/apps/ops/serializers/variable.py +++ b/apps/ops/serializers/variable.py @@ -20,9 +20,9 @@ class VariableSerializer(CommonBulkModelSerializer): name = serializers.CharField(max_length=1024, label=_('Name'), required=True) var_name = serializers.CharField( max_length=1024, required=True, label=_('Variable name'), - help_text=_("The variable name used in the script has a fixed prefix 'jms_' followed by the input variable " - "name. For example, if the variable name is 'name,' the final generated environment variable will " - "be 'jms_name'.") + help_text=_("The variable name used in the script will have a fixed prefix jms_ added to the input variable " + "name. For example, if the input variable name is name, the resulting environment variable will " + "be jms_name, and it can be referenced in the script using {{ jms_name }}") ) creator = ReadableHiddenField(default=serializers.CurrentUserDefault()) type = LabeledChoiceField( diff --git a/apps/ops/tasks.py b/apps/ops/tasks.py index 0edea2d81..340c44b3d 100644 --- a/apps/ops/tasks.py +++ b/apps/ops/tasks.py @@ -11,6 +11,7 @@ from django.conf import settings from common.const.crontab import CRONTAB_AT_AM_TWO from common.utils import get_logger, get_object_or_none, get_log_keep_day from ops.celery import app +from ops.const import Types from ops.serializers.job import JobExecutionSerializer from orgs.utils import tmp_to_org, tmp_to_root_org from .celery.decorator import ( @@ -57,14 +58,13 @@ def _run_ops_job_execution(execution): ) ) def run_ops_job(job_id): - if not settings.SECURITY_COMMAND_EXECUTION: - return with tmp_to_root_org(): job = get_object_or_none(Job, id=job_id) if not job: logger.error("Did not get the execution: {}".format(job_id)) return - + if not settings.SECURITY_COMMAND_EXECUTION and job.type != Types.upload_file: + return with tmp_to_org(job.org): execution = job.create_execution() execution.creator = job.creator @@ -92,14 +92,13 @@ def job_execution_task_activity_callback(self, execution_id, *args, **kwargs): ) ) def run_ops_job_execution(execution_id, **kwargs): - if not settings.SECURITY_COMMAND_EXECUTION: - return with tmp_to_root_org(): execution = get_object_or_none(JobExecution, id=execution_id) - if not execution: logger.error("Did not get the execution: {}".format(execution_id)) return + if not settings.SECURITY_COMMAND_EXECUTION and execution.job.type != Types.upload_file: + return _run_ops_job_execution(execution) diff --git a/apps/perms/api/user_permission/mixin.py b/apps/perms/api/user_permission/mixin.py index 24ed7fbc1..0a912c018 100644 --- a/apps/perms/api/user_permission/mixin.py +++ b/apps/perms/api/user_permission/mixin.py @@ -2,14 +2,17 @@ # from django.shortcuts import get_object_or_404 from django.utils.translation import gettext_lazy as _ +from django.core.cache import cache from rest_framework.request import Request +from common.utils.http import is_true +from common.utils import lazyproperty, is_uuid from common.exceptions import JMSObjectDoesNotExist -from common.utils import is_uuid from rbac.permissions import RBACPermission from users.models import User +from perms.utils import UserPermTreeRefreshUtil -__all__ = ['SelfOrPKUserMixin'] +__all__ = ['SelfOrPKUserMixin', 'RebuildTreeMixin'] class SelfOrPKUserMixin: @@ -57,3 +60,33 @@ class SelfOrPKUserMixin: def request_user_is_self(self): return self.kwargs.get('user') in ['my', 'self'] + + +class RebuildTreeMixin: + user: User + request: Request + + def get(self, request, *args, **kwargs): + UserPermTreeRefreshUtil(self.user).refresh_if_need(force=self.is_force_refresh_tree) + return super().get(request, *args, **kwargs) + + @lazyproperty + def is_force_refresh_tree(self): + force = is_true(self.request.query_params.get('rebuild_tree')) + if not force: + force = self.compute_is_force_refresh() + return force + + def compute_is_force_refresh(self): + """ 5s 内连续刷新三次转为强制刷新 """ + force_timeout = 5 + force_max_count = 3 + force_cache_key = '{user_id}:{path}'.format(user_id=self.user.id, path=self.request.path) + count = cache.get(force_cache_key, 1) + if count >= force_max_count: + force = True + cache.delete(force_cache_key) + else: + force = False + cache.set(force_cache_key, count + 1, force_timeout) + return force diff --git a/apps/perms/api/user_permission/nodes.py b/apps/perms/api/user_permission/nodes.py index 793ad3858..ca1c2cfbd 100644 --- a/apps/perms/api/user_permission/nodes.py +++ b/apps/perms/api/user_permission/nodes.py @@ -8,7 +8,7 @@ from assets.models import Node from common.utils import get_logger, lazyproperty from perms import serializers from perms.utils import UserPermNodeUtil -from .mixin import SelfOrPKUserMixin +from .mixin import SelfOrPKUserMixin, RebuildTreeMixin logger = get_logger(__name__) @@ -18,7 +18,7 @@ __all__ = [ ] -class BaseUserPermedNodesApi(SelfOrPKUserMixin, ListAPIView): +class BaseUserPermedNodesApi(SelfOrPKUserMixin, RebuildTreeMixin, ListAPIView): serializer_class = serializers.NodePermedSerializer def get_queryset(self): diff --git a/apps/perms/api/user_permission/tree/asset.py b/apps/perms/api/user_permission/tree/asset.py index ee0cb72ff..a20c131f9 100644 --- a/apps/perms/api/user_permission/tree/asset.py +++ b/apps/perms/api/user_permission/tree/asset.py @@ -4,7 +4,7 @@ from rest_framework.response import Response from assets.api import SerializeToTreeNodeMixin from assets.models import Asset from common.utils import get_logger -from .mixin import RebuildTreeMixin +from ..mixin import RebuildTreeMixin from ..assets import UserAllPermedAssetsApi logger = get_logger(__name__) diff --git a/apps/perms/api/user_permission/tree/mixin.py b/apps/perms/api/user_permission/tree/mixin.py deleted file mode 100644 index 46714ce05..000000000 --- a/apps/perms/api/user_permission/tree/mixin.py +++ /dev/null @@ -1,40 +0,0 @@ -from django.core.cache import cache - -from rest_framework.request import Request - -from common.utils.http import is_true -from common.utils import lazyproperty -from perms.utils import UserPermTreeRefreshUtil -from users.models import User - -__all__ = ['RebuildTreeMixin'] - - -class RebuildTreeMixin: - user: User - request: Request - - def get(self, request, *args, **kwargs): - UserPermTreeRefreshUtil(self.user).refresh_if_need(force=self.is_force_refresh_tree) - return super().get(request, *args, **kwargs) - - @lazyproperty - def is_force_refresh_tree(self): - force = is_true(self.request.query_params.get('rebuild_tree')) - if not force: - force = self.compute_is_force_refresh() - return force - - def compute_is_force_refresh(self): - """ 5s 内连续刷新三次转为强制刷新 """ - force_timeout = 5 - force_max_count = 3 - force_cache_key = '{user_id}:{path}'.format(user_id=self.user.id, path=self.request.path) - count = cache.get(force_cache_key, 1) - if count >= force_max_count: - force = True - cache.delete(force_cache_key) - else: - force = False - cache.set(force_cache_key, count + 1, force_timeout) - return force diff --git a/apps/perms/api/user_permission/tree/node.py b/apps/perms/api/user_permission/tree/node.py index 5872753c5..80eafa2a1 100644 --- a/apps/perms/api/user_permission/tree/node.py +++ b/apps/perms/api/user_permission/tree/node.py @@ -3,7 +3,6 @@ from rest_framework.response import Response from assets.api import SerializeToTreeNodeMixin from common.utils import get_logger -from .mixin import RebuildTreeMixin from ..nodes import ( UserAllPermedNodesApi, UserPermedNodeChildrenApi, @@ -17,7 +16,7 @@ __all__ = [ ] -class NodeTreeMixin(RebuildTreeMixin, SerializeToTreeNodeMixin): +class NodeTreeMixin(SerializeToTreeNodeMixin): filter_queryset: callable get_queryset: callable diff --git a/apps/perms/api/user_permission/tree/node_with_asset.py b/apps/perms/api/user_permission/tree/node_with_asset.py index dbba179f0..75dfed490 100644 --- a/apps/perms/api/user_permission/tree/node_with_asset.py +++ b/apps/perms/api/user_permission/tree/node_with_asset.py @@ -13,8 +13,7 @@ from perms.hands import Node from perms.models import PermNode from perms.utils import UserPermAssetUtil from perms.utils import UserPermNodeUtil -from .mixin import RebuildTreeMixin -from ..mixin import SelfOrPKUserMixin +from ..mixin import SelfOrPKUserMixin, RebuildTreeMixin __all__ = [ 'UserPermedNodesWithAssetsAsTreeApi', diff --git a/apps/perms/utils/permission.py b/apps/perms/utils/permission.py index 859f579be..e877cc7af 100644 --- a/apps/perms/utils/permission.py +++ b/apps/perms/utils/permission.py @@ -23,14 +23,14 @@ class AssetPermissionUtil(object): # group if with_group: groups = user.groups.all() - group_perm_ids = self.get_permissions_for_user_groups(groups, flat=True) + group_perm_ids = self.get_permissions_for_user_groups(groups, flat=True, with_expired=with_expired) perm_ids.update(group_perm_ids) perms = self.get_permissions(ids=perm_ids, with_expired=with_expired) if flat: return perms.values_list('id', flat=True) return perms - def get_permissions_for_user_groups(self, user_groups, flat=False): + def get_permissions_for_user_groups(self, user_groups, flat=False, with_expired=False): """ 获取用户组的授权规则 """ if isinstance(user_groups, list): group_ids = [g.id for g in user_groups] @@ -39,7 +39,7 @@ class AssetPermissionUtil(object): perm_ids = AssetPermission.user_groups.through.objects \ .filter(usergroup_id__in=group_ids) \ .values_list('assetpermission_id', flat=True).distinct() - perms = self.get_permissions(ids=perm_ids) + perms = self.get_permissions(ids=perm_ids, with_expired=with_expired) if flat: return perms.values_list('id', flat=True) return perms diff --git a/apps/settings/serializers/auth/ldap.py b/apps/settings/serializers/auth/ldap.py index be022a659..767bbdeea 100644 --- a/apps/settings/serializers/auth/ldap.py +++ b/apps/settings/serializers/auth/ldap.py @@ -3,6 +3,7 @@ from rest_framework import serializers from common.serializers.fields import EncryptedField from .base import OrgListField +from .mixin import LDAPSerializerMixin __all__ = [ 'LDAPTestConfigSerializer', 'LDAPUserSerializer', 'LDAPTestLoginSerializer', @@ -36,7 +37,7 @@ class LDAPUserSerializer(serializers.Serializer): status = serializers.JSONField(read_only=True) -class LDAPSettingSerializer(serializers.Serializer): +class LDAPSettingSerializer(LDAPSerializerMixin, serializers.Serializer): # encrypt_fields 现在使用 write_only 来判断了 PREFIX_TITLE = _('LDAP') @@ -85,7 +86,7 @@ class LDAPSettingSerializer(serializers.Serializer): ) AUTH_LDAP_CACHE_TIMEOUT = serializers.IntegerField( min_value=0, max_value=3600 * 24 * 30 * 12, - default=3600 * 24 * 30, + default=0, required=False, label=_('User DN cache timeout (s)'), help_text=_( 'Caching the User DN obtained during user login authentication can effectively ' @@ -103,10 +104,11 @@ class LDAPSettingSerializer(serializers.Serializer): AUTH_LDAP = serializers.BooleanField(required=False, label=_('LDAP')) AUTH_LDAP_SYNC_ORG_IDS = OrgListField() - def post_save(self): - keys = ['AUTH_LDAP_SYNC_IS_PERIODIC', 'AUTH_LDAP_SYNC_INTERVAL', 'AUTH_LDAP_SYNC_CRONTAB'] - kwargs = {k: self.validated_data[k] for k in keys if k in self.validated_data} - if not kwargs: - return + periodic_key = 'AUTH_LDAP_SYNC_IS_PERIODIC' + interval_key = 'AUTH_LDAP_SYNC_INTERVAL' + crontab_key = 'AUTH_LDAP_SYNC_CRONTAB' + + @staticmethod + def import_task_function(**kwargs): from settings.tasks import import_ldap_user_periodic import_ldap_user_periodic(**kwargs) diff --git a/apps/settings/serializers/auth/ldap_ha.py b/apps/settings/serializers/auth/ldap_ha.py index c653beeda..95cf3c5b9 100644 --- a/apps/settings/serializers/auth/ldap_ha.py +++ b/apps/settings/serializers/auth/ldap_ha.py @@ -3,6 +3,8 @@ from rest_framework import serializers from common.serializers.fields import EncryptedField from .base import OrgListField +from .mixin import LDAPSerializerMixin +from ops.mixin import PeriodTaskSerializerMixin __all__ = ['LDAPHATestConfigSerializer', 'LDAPHASettingSerializer'] @@ -18,7 +20,7 @@ class LDAPHATestConfigSerializer(serializers.Serializer): AUTH_LDAP_HA = serializers.BooleanField(required=False) -class LDAPHASettingSerializer(serializers.Serializer): +class LDAPHASettingSerializer(LDAPSerializerMixin, serializers.Serializer): # encrypt_fields 现在使用 write_only 来判断了 PREFIX_TITLE = _('LDAP HA') @@ -67,7 +69,7 @@ class LDAPHASettingSerializer(serializers.Serializer): ) AUTH_LDAP_HA_CACHE_TIMEOUT = serializers.IntegerField( min_value=0, max_value=3600 * 24 * 30 * 12, - default=3600 * 24 * 30, + default=0, required=False, label=_('User DN cache timeout (s)'), help_text=_( 'Caching the User DN obtained during user login authentication can effectively' @@ -85,10 +87,11 @@ class LDAPHASettingSerializer(serializers.Serializer): AUTH_LDAP_HA = serializers.BooleanField(required=False, label=_('LDAP HA')) AUTH_LDAP_HA_SYNC_ORG_IDS = OrgListField() - def post_save(self): - keys = ['AUTH_LDAP_HA_SYNC_IS_PERIODIC', 'AUTH_LDAP_HA_SYNC_INTERVAL', 'AUTH_LDAP_HA_SYNC_CRONTAB'] - kwargs = {k: self.validated_data[k] for k in keys if k in self.validated_data} - if not kwargs: - return + periodic_key = 'AUTH_LDAP_HA_SYNC_IS_PERIODIC' + interval_key = 'AUTH_LDAP_HA_SYNC_INTERVAL' + crontab_key = 'AUTH_LDAP_HA_SYNC_CRONTAB' + + @staticmethod + def import_task_function(**kwargs): from settings.tasks import import_ldap_ha_user_periodic import_ldap_ha_user_periodic(**kwargs) diff --git a/apps/settings/serializers/auth/mixin.py b/apps/settings/serializers/auth/mixin.py new file mode 100644 index 000000000..2eed91289 --- /dev/null +++ b/apps/settings/serializers/auth/mixin.py @@ -0,0 +1,21 @@ +from django.utils.translation import gettext_lazy as _ +from rest_framework import serializers +from ops.mixin import PeriodTaskSerializerMixin + + +class LDAPSerializerMixin: + def validate(self, attrs): + is_periodic = attrs.get(self.periodic_key) + crontab = attrs.get(self.crontab_key) + interval = attrs.get(self.interval_key) + if is_periodic and not any([crontab, interval]): + msg = _("Require interval or crontab setting") + raise serializers.ValidationError(msg) + return super().validate(attrs) + + def post_save(self): + keys = [self.periodic_key, self.interval_key, self.crontab_key] + kwargs = {k: self.validated_data[k] for k in keys if k in self.validated_data} + if not kwargs: + return + self.import_task_function(**kwargs) diff --git a/apps/settings/serializers/public.py b/apps/settings/serializers/public.py index 82a3c5118..3c7b11a6b 100644 --- a/apps/settings/serializers/public.py +++ b/apps/settings/serializers/public.py @@ -34,6 +34,8 @@ class PrivateSettingSerializer(PublicSettingSerializer): PASSWORD_RULE = serializers.DictField() SECURITY_SESSION_SHARE = serializers.BooleanField() XPACK_LICENSE_IS_VALID = serializers.BooleanField() + XPACK_LICENSE_EDITION_ULTIMATE = serializers.BooleanField() + FACE_RECOGNITION_ENABLED = serializers.BooleanField() XPACK_LICENSE_INFO = serializers.DictField() HELP_DOCUMENT_URL = serializers.CharField() HELP_SUPPORT_URL = serializers.CharField() diff --git a/apps/settings/tasks/ldap.py b/apps/settings/tasks/ldap.py index 6694cf54c..b90394814 100644 --- a/apps/settings/tasks/ldap.py +++ b/apps/settings/tasks/ldap.py @@ -9,7 +9,7 @@ from common.utils import get_logger from common.utils.timezone import local_now_display from ops.celery.decorator import after_app_ready_start from ops.celery.utils import ( - create_or_update_celery_periodic_tasks + create_or_update_celery_periodic_tasks, disable_celery_periodic_task ) from orgs.models import Organization from settings.notifications import LDAPImportMessage @@ -90,9 +90,12 @@ def import_ldap_ha_user(): def register_periodic_task(task_name, task_func, interval_key, enabled_key, crontab_key, **kwargs): - interval = kwargs.get(interval_key, settings.AUTH_LDAP_SYNC_INTERVAL) - enabled = kwargs.get(enabled_key, settings.AUTH_LDAP_SYNC_IS_PERIODIC) - crontab = kwargs.get(crontab_key, settings.AUTH_LDAP_SYNC_CRONTAB) + interval = kwargs.get(interval_key, getattr(settings, interval_key)) + enabled = kwargs.get(enabled_key, getattr(settings, enabled_key)) + crontab = kwargs.get(crontab_key, getattr(settings, crontab_key)) + + if not enabled: + disable_celery_periodic_task(task_name) if isinstance(interval, int): interval = interval * 3600 diff --git a/apps/static/js/jumpserver.js b/apps/static/js/jumpserver.js index e4aa52033..73410e9b0 100644 --- a/apps/static/js/jumpserver.js +++ b/apps/static/js/jumpserver.js @@ -147,6 +147,9 @@ function activeNav(prefix) { } var path = document.location.pathname; path = path.replace(prefix, ''); + if (path === '/core/download/') { + return + } var urlArray = path.split("/"); var app = urlArray[1]; var resource = urlArray[2]; diff --git a/apps/templates/_foot_js.html b/apps/templates/_foot_js.html index 180903863..dcf8a9069 100644 --- a/apps/templates/_foot_js.html +++ b/apps/templates/_foot_js.html @@ -6,7 +6,7 @@ - + diff --git a/apps/terminal/utils/components.py b/apps/terminal/utils/components.py index 692fe28fd..da853f0c1 100644 --- a/apps/terminal/utils/components.py +++ b/apps/terminal/utils/components.py @@ -97,10 +97,10 @@ class ComponentsPrometheusMetricsUtil(TypedComponentsStatusMetricsUtil): def convert_status_metrics(metrics): return { 'any': metrics['total'], - 'normal': metrics['normal'], - 'high': metrics['high'], - 'critical': metrics['critical'], - 'offline': metrics['offline'] + 'normal': len(metrics['normal']), + 'high': len(metrics['high']), + 'critical': len(metrics['critical']), + 'offline': len(metrics['offline']) } def get_component_status_metrics(self): @@ -112,8 +112,8 @@ class ComponentsPrometheusMetricsUtil(TypedComponentsStatusMetricsUtil): tp = metric['type'] prometheus_metrics.append(f'## 组件: {tp}') status_metrics = self.convert_status_metrics(metric) - for status, value in status_metrics.items(): - metric_text = status_metric_text % (tp, status, value) + for status, count in status_metrics.items(): + metric_text = status_metric_text % (tp, status, count) prometheus_metrics.append(metric_text) return prometheus_metrics