From 6e8affcdd6e9579fea05c347e3e7131f78ae3642 Mon Sep 17 00:00:00 2001 From: ibuler <ibuler@qq.com> Date: Thu, 19 Sep 2024 21:38:08 +0800 Subject: [PATCH 01/36] perf: ops db migrate --- apps/ops/migrations/0003_alter_adhoc_unique_together_and_more.py | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/ops/migrations/0003_alter_adhoc_unique_together_and_more.py b/apps/ops/migrations/0003_alter_adhoc_unique_together_and_more.py index 98087c86a..ae73802ff 100644 --- a/apps/ops/migrations/0003_alter_adhoc_unique_together_and_more.py +++ b/apps/ops/migrations/0003_alter_adhoc_unique_together_and_more.py @@ -28,6 +28,7 @@ class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('ops', '0002_celerytask'), + ('orgs', '0002_auto_20180903_1132'), ] operations = [ From d09eb3c4fafe880fcc01c668dd26215800c66efe Mon Sep 17 00:00:00 2001 From: feng <1304903146@qq.com> Date: Fri, 20 Sep 2024 18:03:43 +0800 Subject: [PATCH 02/36] perf: Lock username is not case sensitive --- apps/users/utils.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/users/utils.py b/apps/users/utils.py index cdb15eb23..14b36a875 100644 --- a/apps/users/utils.py +++ b/apps/users/utils.py @@ -110,6 +110,7 @@ class BlockUtil: BLOCK_KEY_TMPL: str def __init__(self, username): + username = username.lower() self.block_key = self.BLOCK_KEY_TMPL.format(username) self.key_ttl = int(settings.SECURITY_LOGIN_LIMIT_TIME) * 60 @@ -125,6 +126,7 @@ class BlockUtilBase: BLOCK_KEY_TMPL: str def __init__(self, username, ip): + username = username.lower() self.username = username self.ip = ip self.limit_key = self.LIMIT_KEY_TMPL.format(username, ip) @@ -158,6 +160,7 @@ class BlockUtilBase: @classmethod def unblock_user(cls, username): + username = username.lower() key_limit = cls.LIMIT_KEY_TMPL.format(username, '*') key_block = cls.BLOCK_KEY_TMPL.format(username) # Redis 尽量不要用通配 @@ -166,6 +169,7 @@ class BlockUtilBase: @classmethod def is_user_block(cls, username): + username = username.lower() block_key = cls.BLOCK_KEY_TMPL.format(username) return bool(cache.get(block_key)) From 920199c6df50c7a524e17bd3f04c08b9dc91a0e1 Mon Sep 17 00:00:00 2001 From: feng <1304903146@qq.com> Date: Wed, 25 Sep 2024 10:52:16 +0800 Subject: [PATCH 03/36] perf: The maximum length of the randomly generated password is changed to 36 --- apps/accounts/serializers/account/template.py | 2 +- apps/accounts/serializers/automations/change_secret.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/accounts/serializers/account/template.py b/apps/accounts/serializers/account/template.py index 5a0529b2d..3df2d5b74 100644 --- a/apps/accounts/serializers/account/template.py +++ b/apps/accounts/serializers/account/template.py @@ -10,7 +10,7 @@ from .base import BaseAccountSerializer class PasswordRulesSerializer(serializers.Serializer): - length = serializers.IntegerField(min_value=8, max_value=30, default=16, label=_('Password length')) + length = serializers.IntegerField(min_value=8, max_value=36, default=16, label=_('Password length')) lowercase = serializers.BooleanField(default=True, label=_('Lowercase')) uppercase = serializers.BooleanField(default=True, label=_('Uppercase')) digit = serializers.BooleanField(default=True, label=_('Digit')) diff --git a/apps/accounts/serializers/automations/change_secret.py b/apps/accounts/serializers/automations/change_secret.py index 34d4326b8..e9a653c13 100644 --- a/apps/accounts/serializers/automations/change_secret.py +++ b/apps/accounts/serializers/automations/change_secret.py @@ -84,7 +84,7 @@ class ChangeSecretAutomationSerializer(AuthValidateMixin, BaseAutomationSerializ msg = _("* Please enter the correct password length") raise serializers.ValidationError(msg) - if length < 6 or length > 30: + if length < 6 or length > 36: msg = _('* Password length range 6-30 bits') raise serializers.ValidationError(msg) From f7030e4fee30e6dc0c8fc9846ff7b3e1ef52dfa6 Mon Sep 17 00:00:00 2001 From: feng <1304903146@qq.com> Date: Thu, 26 Sep 2024 10:52:31 +0800 Subject: [PATCH 04/36] perf: Login encryption key cache added --- apps/authentication/middleware.py | 43 +++++++++++++++++++++++-------- apps/authentication/tests.py | 2 +- 2 files changed, 33 insertions(+), 12 deletions(-) diff --git a/apps/authentication/middleware.py b/apps/authentication/middleware.py index e6182e9bb..d1f3b087b 100644 --- a/apps/authentication/middleware.py +++ b/apps/authentication/middleware.py @@ -2,6 +2,7 @@ import base64 from django.conf import settings from django.contrib.auth import logout as auth_logout +from django.core.cache import cache from django.http import HttpResponse from django.shortcuts import redirect, reverse, render from django.utils.deprecation import MiddlewareMixin @@ -116,23 +117,43 @@ class ThirdPartyLoginMiddleware(mixins.AuthMixin): class SessionCookieMiddleware(MiddlewareMixin): + USER_LOGIN_ENCRYPTION_KEY_PAIR = 'user_login_encryption_key_pair' - @staticmethod - def set_cookie_public_key(request, response): + def set_cookie_public_key(self, request, response): if request.path.startswith('/api'): return - pub_key_name = settings.SESSION_RSA_PUBLIC_KEY_NAME - public_key = request.session.get(pub_key_name) - cookie_key = request.COOKIES.get(pub_key_name) - if public_key and public_key == cookie_key: + + session_public_key_name = settings.SESSION_RSA_PUBLIC_KEY_NAME + session_private_key_name = settings.SESSION_RSA_PRIVATE_KEY_NAME + + session_public_key = request.session.get(session_public_key_name) + cookie_public_key = request.COOKIES.get(session_public_key_name) + + if session_public_key and session_public_key == cookie_public_key: return - pri_key_name = settings.SESSION_RSA_PRIVATE_KEY_NAME - private_key, public_key = gen_key_pair() + private_key, public_key = self.get_key_pair() + public_key_decode = base64.b64encode(public_key.encode()).decode() - request.session[pub_key_name] = public_key_decode - request.session[pri_key_name] = private_key - response.set_cookie(pub_key_name, public_key_decode) + + request.session[session_public_key_name] = public_key_decode + request.session[session_private_key_name] = private_key + response.set_cookie(session_public_key_name, public_key_decode) + + def get_key_pair(self): + key_pair = cache.get(self.USER_LOGIN_ENCRYPTION_KEY_PAIR) + if key_pair: + return key_pair['private_key'], key_pair['public_key'] + + private_key, public_key = gen_key_pair() + + key_pair = { + 'private_key': private_key, + 'public_key': public_key + } + cache.set(self.USER_LOGIN_ENCRYPTION_KEY_PAIR, key_pair, None) + + return private_key, public_key @staticmethod def set_cookie_session_prefix(request, response): diff --git a/apps/authentication/tests.py b/apps/authentication/tests.py index 890a1fb4f..2a98146c7 100644 --- a/apps/authentication/tests.py +++ b/apps/authentication/tests.py @@ -1,4 +1,4 @@ -from .utils import gen_key_pair, rsa_decrypt, rsa_encrypt +from common.utils import gen_key_pair, rsa_decrypt, rsa_encrypt def test_rsa_encrypt_decrypt(message='test-password-$%^&*'): From 03114463849a830bd87ec00abb16a14fb6330236 Mon Sep 17 00:00:00 2001 From: wangruidong <940853815@qq.com> Date: Fri, 20 Sep 2024 15:07:44 +0800 Subject: [PATCH 05/36] perf: playbook clone with file --- apps/ops/api/playbook.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/apps/ops/api/playbook.py b/apps/ops/api/playbook.py index 6c3ed5a7c..c214269c4 100644 --- a/apps/ops/api/playbook.py +++ b/apps/ops/api/playbook.py @@ -65,9 +65,19 @@ class PlaybookViewSet(JMSBulkModelViewSet): def perform_create(self, serializer): instance = serializer.save() + base_path = safe_join(settings.DATA_DIR, "ops", "playbook") + clone_id = self.request.query_params.get('clone_from') + if clone_id: + src_path = safe_join(base_path, clone_id) + dest_path = safe_join(base_path, str(instance.id)) + if not os.path.exists(src_path): + raise JMSException(code='invalid_playbook_id', detail={"msg": "clone playbook file not found"}) + shutil.copytree(src_path, dest_path) + return + if 'multipart/form-data' in self.request.headers['Content-Type']: src_path = safe_join(settings.MEDIA_ROOT, instance.path.name) - dest_path = safe_join(settings.DATA_DIR, "ops", "playbook", instance.id.__str__()) + dest_path = safe_join(base_path, str(instance.id)) try: unzip_playbook(src_path, dest_path) @@ -78,7 +88,7 @@ class PlaybookViewSet(JMSBulkModelViewSet): raise PlaybookNoValidEntry elif instance.create_method == 'blank': - dest_path = safe_join(settings.DATA_DIR, "ops", "playbook", instance.id.__str__()) + dest_path = safe_join(base_path, str(instance.id)) os.makedirs(dest_path) with open(safe_join(dest_path, 'main.yml'), 'w') as f: f.write('## write your playbook here') From 43fa3f420ac0353021394ebbd629498cfe4bd853 Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Fri, 27 Sep 2024 14:17:16 +0800 Subject: [PATCH 06/36] fix: Addressing the issue of unauthorized execution of system tools (#14209) * fix: Addressing the issue of unauthorized execution of system tools * perf: Optimization conditions --------- Co-authored-by: jiangweidong <1053570670@qq.com> --- apps/settings/ws.py | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/apps/settings/ws.py b/apps/settings/ws.py index 6dca2f0a2..5d119ceaa 100644 --- a/apps/settings/ws.py +++ b/apps/settings/ws.py @@ -3,10 +3,11 @@ import json import asyncio +from asgiref.sync import sync_to_async from channels.generic.websocket import AsyncJsonWebsocketConsumer from django.core.cache import cache from django.conf import settings -from django.utils.translation import gettext_lazy as _, activate +from django.utils.translation import gettext_lazy as _ from django.utils import translation from urllib.parse import parse_qs @@ -37,11 +38,27 @@ TASK_STATUS_IS_OVER = 'OVER' class ToolsWebsocket(AsyncJsonWebsocketConsumer): + is_closed: bool = False + + @staticmethod + @sync_to_async + def get_user_roles(user): + return [str(i) for i in user.system_roles.values_list('id', flat=True)] + + async def is_superuser(self, user): + from rbac.builtin import BuiltinRole + + ids = await self.get_user_roles(user) + return BuiltinRole.system_admin.id in ids async def connect(self): user = self.scope["user"] if user.is_authenticated: - await self.accept() + has_perm = await sync_to_async(user.has_perm)('rbac.view_systemtools') + if await self.is_superuser(user) or (settings.TOOL_USER_ENABLED and has_perm): + await self.accept() + else: + await self.close() else: await self.close() @@ -96,6 +113,12 @@ class ToolsWebsocket(AsyncJsonWebsocketConsumer): await self.send_msg() await self.close() + async def close(self, code=None): + if self.is_closed: + return + await super().close(code) + self.is_closed = True + async def disconnect(self, code): await self.close() close_old_connections() From e95da730f2b23af9f8b43ecaf3ccd08f9558632b Mon Sep 17 00:00:00 2001 From: wangruidong <940853815@qq.com> Date: Mon, 23 Sep 2024 16:47:29 +0800 Subject: [PATCH 07/36] perf: Koko can display assets custom name --- apps/perms/api/user_permission/assets.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/perms/api/user_permission/assets.py b/apps/perms/api/user_permission/assets.py index 1e541eb8d..0eac8c87e 100644 --- a/apps/perms/api/user_permission/assets.py +++ b/apps/perms/api/user_permission/assets.py @@ -56,8 +56,9 @@ class BaseUserPermedAssetsApi(SelfOrPKUserMixin, ExtraFilterFieldsMixin, ListAPI return assets def get_serializer(self, *args, **kwargs): - if len(args) == 1 and kwargs.get('many', False) and self.request_user_is_self(): - MyAsset.set_asset_custom_value(args[0], self.request.user) + need_custom_value_user = self.request_user_is_self() or self.request.user.is_service_account + if len(args) == 1 and kwargs.get('many', False) and need_custom_value_user: + MyAsset.set_asset_custom_value(args[0], self.user) return super().get_serializer(*args, **kwargs) @abc.abstractmethod From b62763bca348c5f73231bd8e7c7e31c2680cfe90 Mon Sep 17 00:00:00 2001 From: jiangweidong <1053570670@qq.com> Date: Mon, 23 Sep 2024 18:12:04 +0800 Subject: [PATCH 08/36] perf: Cloud Sync IP Policy Updated to Preferred Option i18n --- apps/i18n/core/en/LC_MESSAGES/django.po | 2 +- apps/i18n/core/ja/LC_MESSAGES/django.po | 4 ++-- apps/i18n/core/zh/LC_MESSAGES/django.po | 4 ++-- apps/i18n/core/zh_Hant/LC_MESSAGES/django.po | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/i18n/core/en/LC_MESSAGES/django.po b/apps/i18n/core/en/LC_MESSAGES/django.po index 1c9fab98d..15124c901 100644 --- a/apps/i18n/core/en/LC_MESSAGES/django.po +++ b/apps/i18n/core/en/LC_MESSAGES/django.po @@ -9696,7 +9696,7 @@ msgstr "" #: xpack/plugins/cloud/models.py:115 #: xpack/plugins/cloud/serializers/task.py:161 -msgid "Sync IP type" +msgid "Preferred IP type" msgstr "" #: xpack/plugins/cloud/models.py:118 diff --git a/apps/i18n/core/ja/LC_MESSAGES/django.po b/apps/i18n/core/ja/LC_MESSAGES/django.po index fa9a02acf..831ef34a0 100644 --- a/apps/i18n/core/ja/LC_MESSAGES/django.po +++ b/apps/i18n/core/ja/LC_MESSAGES/django.po @@ -10176,8 +10176,8 @@ msgstr "IPネットワークセグメントグループ" #: xpack/plugins/cloud/models.py:115 #: xpack/plugins/cloud/serializers/task.py:161 -msgid "Sync IP type" -msgstr "同期IPタイプ" +msgid "Preferred IP type" +msgstr "優先 IP タイプ" #: xpack/plugins/cloud/models.py:118 msgid "Always update" diff --git a/apps/i18n/core/zh/LC_MESSAGES/django.po b/apps/i18n/core/zh/LC_MESSAGES/django.po index aba5997d7..af26dc6e6 100644 --- a/apps/i18n/core/zh/LC_MESSAGES/django.po +++ b/apps/i18n/core/zh/LC_MESSAGES/django.po @@ -9925,8 +9925,8 @@ msgstr "IP网段组" #: xpack/plugins/cloud/models.py:115 #: xpack/plugins/cloud/serializers/task.py:161 -msgid "Sync IP type" -msgstr "同步IP类型" +msgid "Preferred IP type" +msgstr "首选 IP 类型" #: xpack/plugins/cloud/models.py:118 msgid "Always update" diff --git a/apps/i18n/core/zh_Hant/LC_MESSAGES/django.po b/apps/i18n/core/zh_Hant/LC_MESSAGES/django.po index fa41cfb03..721e9c816 100644 --- a/apps/i18n/core/zh_Hant/LC_MESSAGES/django.po +++ b/apps/i18n/core/zh_Hant/LC_MESSAGES/django.po @@ -9929,8 +9929,8 @@ msgstr "IP網段組" #: xpack/plugins/cloud/models.py:115 #: xpack/plugins/cloud/serializers/task.py:161 -msgid "Sync IP type" -msgstr "同步IP類型" +msgid "Preferred IP type" +msgstr "首選 IP 類型" #: xpack/plugins/cloud/models.py:118 msgid "Always update" From efdcd4c7082665ff2536b4f9e2f4f8a4012a3bdf Mon Sep 17 00:00:00 2001 From: Bai <baijiangjie@gmail.com> Date: Tue, 24 Sep 2024 11:10:55 +0800 Subject: [PATCH 09/36] perf: upgrade geoip2 and .mmdb --- apps/common/utils/ip/geoip/GeoLite2-City.mmdb | 4 ++-- poetry.lock | 16 ++++++++++------ pyproject.toml | 2 +- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/apps/common/utils/ip/geoip/GeoLite2-City.mmdb b/apps/common/utils/ip/geoip/GeoLite2-City.mmdb index c3b9d8bac..ad9fa7e96 100644 --- a/apps/common/utils/ip/geoip/GeoLite2-City.mmdb +++ b/apps/common/utils/ip/geoip/GeoLite2-City.mmdb @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:860b4d38beff81667c64da41c026a7dd28c3c93a28ae61fefaa7c26875f35638 -size 73906864 +oid sha256:c5119fd8911a107a7112422ade326766fe3d9538ac15bca06e3c622191c84e18 +size 61086554 diff --git a/poetry.lock b/poetry.lock index 051a97173..31704c58b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2662,19 +2662,23 @@ reference = "aliyun" [[package]] name = "geoip2" -version = "4.7.0" +version = "4.8.0" description = "MaxMind GeoIP2 API" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "geoip2-4.7.0-py2.py3-none-any.whl", hash = "sha256:078fcd4cce26ea029b1e3252a0f0ec20a1f42e7ab0f19b7be3864f20f4db2b51"}, - {file = "geoip2-4.7.0.tar.gz", hash = "sha256:3bdde4994f6bc917eafab5b51e772d737b2ae00037a5b85001fb06dc68f779df"}, + {file = "geoip2-4.8.0-py2.py3-none-any.whl", hash = "sha256:39b38ec703575355d10475c0e6aa981827a2b4b5471d308c4ecb5e79cbe366ce"}, + {file = "geoip2-4.8.0.tar.gz", hash = "sha256:dd9cc180b7d41724240ea481d5d539149e65b234f64282b231b9170794a9ac35"}, ] [package.dependencies] aiohttp = ">=3.6.2,<4.0.0" -maxminddb = ">=2.3.0,<3.0.0" +maxminddb = ">=2.5.1,<3.0.0" requests = ">=2.24.0,<3.0.0" +setuptools = ">=60.0.0" + +[package.extras] +test = ["mocket (>=3.11.1)"] [package.source] type = "legacy" @@ -7670,4 +7674,4 @@ reference = "aliyun" [metadata] lock-version = "2.0" python-versions = "^3.11" -content-hash = "9acfafd75bf7dbb7e0dffb54b7f11f6b09aa4ceff769d193a3906d03ae796ccc" +content-hash = "ecc26ab3966eeb87427e4a12fbed86ead9709ae85b8748aee89729c8c9cd143e" diff --git a/pyproject.toml b/pyproject.toml index 9b2047f6c..608c1ad77 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -82,7 +82,7 @@ python3-saml = "1.15.0" websocket-client = "1.6.1" pyjwkest = "1.4.2" jsonfield2 = "4.0.0.post0" -geoip2 = "4.7.0" +geoip2 = "4.8.0" ipip-ipdb = "1.6.1" pywinrm = "0.4.3" python-nmap = "0.7.1" From 5f07271afacc598b41228512af23fad99d013fa0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <github-actions[bot]@users.noreply.github.com> Date: Tue, 24 Sep 2024 03:30:13 +0000 Subject: [PATCH 10/36] perf: Update Dockerfile with new base image tag --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b8ffe29e4..12f5c6620 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM jumpserver/core-base:20240919_024156 AS stage-build +FROM jumpserver/core-base:20240924_031841 AS stage-build ARG VERSION From ad6d2e1cd7c8e9b088cff01a836929d9b94fd236 Mon Sep 17 00:00:00 2001 From: Bai <baijiangjie@gmail.com> Date: Tue, 24 Sep 2024 11:49:11 +0800 Subject: [PATCH 11/36] fix: Fixed the issue that the workbench user login log only displays failed logs --- apps/audits/api.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/audits/api.py b/apps/audits/api.py index cd1513c5c..f0504ad7a 100644 --- a/apps/audits/api.py +++ b/apps/audits/api.py @@ -146,7 +146,9 @@ class MyLoginLogViewSet(UserLoginCommonMixin, OrgReadonlyModelViewSet): def get_queryset(self): qs = super().get_queryset() - qs = qs.filter(username=self.request.user.username) + username = self.request.user.username + q = Q(username=username) | Q(username__icontains=f'({username})') + qs = qs.filter(q) return qs From addd2e7d1cdf41bb568d779e2aebc8623ca18b83 Mon Sep 17 00:00:00 2001 From: wangruidong <940853815@qq.com> Date: Wed, 25 Sep 2024 16:57:42 +0800 Subject: [PATCH 12/36] perf: Endpoint add is_active field --- .../migrations/0004_endpoint_is_active.py | 18 ++++++++++++++++++ apps/terminal/models/component/endpoint.py | 7 +++++-- apps/terminal/serializers/endpoint.py | 2 +- 3 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 apps/terminal/migrations/0004_endpoint_is_active.py diff --git a/apps/terminal/migrations/0004_endpoint_is_active.py b/apps/terminal/migrations/0004_endpoint_is_active.py new file mode 100644 index 000000000..fc7cc780f --- /dev/null +++ b/apps/terminal/migrations/0004_endpoint_is_active.py @@ -0,0 +1,18 @@ +# Generated by Django 4.1.13 on 2024-09-25 07:38 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('terminal', '0003_auto_20171230_0308'), + ] + + operations = [ + migrations.AddField( + model_name='endpoint', + name='is_active', + field=models.BooleanField(default=True, verbose_name='Active'), + ), + ] diff --git a/apps/terminal/models/component/endpoint.py b/apps/terminal/models/component/endpoint.py index b347dd12e..0df5f7519 100644 --- a/apps/terminal/models/component/endpoint.py +++ b/apps/terminal/models/component/endpoint.py @@ -1,5 +1,6 @@ from django.core.validators import MinValueValidator, MaxValueValidator from django.db import models +from django.db.models import Prefetch from django.utils.translation import gettext_lazy as _ from assets.models import Asset @@ -23,6 +24,7 @@ class Endpoint(JMSBaseModel): sqlserver_port = PortField(default=14330, verbose_name=_('SQLServer port')) comment = models.TextField(default='', blank=True, verbose_name=_('Comment')) + is_active = models.BooleanField(default=True, verbose_name=_('Active')) default_id = '00000000-0000-0000-0000-000000000001' @@ -98,7 +100,7 @@ class Endpoint(JMSBaseModel): values = instance.labels.filter(label__name='endpoint').values_list('label__value', flat=True) if not values: return None - endpoints = cls.objects.filter(name__in=list(values)).order_by('-date_updated') + endpoints = cls.objects.filter(is_active=True, name__in=list(values)).order_by('-date_updated') for endpoint in endpoints: if endpoint.is_valid_for(instance, protocol): endpoint = cls.handle_endpoint_host(endpoint, request) @@ -128,7 +130,8 @@ class EndpointRule(JMSBaseModel): @classmethod def match(cls, target_instance, target_ip, protocol): - for endpoint_rule in cls.objects.prefetch_related('endpoint').filter(is_active=True): + active_endpoints = Prefetch('endpoint', queryset=Endpoint.objects.filter(is_active=True)) + for endpoint_rule in cls.objects.prefetch_related(active_endpoints).filter(is_active=True): if not contains_ip(target_ip, endpoint_rule.ip_group): continue if not endpoint_rule.endpoint: diff --git a/apps/terminal/serializers/endpoint.py b/apps/terminal/serializers/endpoint.py index 2b734f71e..dbaf482e8 100644 --- a/apps/terminal/serializers/endpoint.py +++ b/apps/terminal/serializers/endpoint.py @@ -28,7 +28,7 @@ class EndpointSerializer(BulkModelSerializer): fields_small = [ 'host', 'https_port', 'http_port', 'ssh_port', 'rdp_port', 'mysql_port', 'mariadb_port', 'postgresql_port', 'redis_port', - 'oracle_port_range', 'oracle_port', 'sqlserver_port', + 'oracle_port_range', 'oracle_port', 'sqlserver_port', 'is_active' ] fields = fields_mini + fields_small + [ 'comment', 'date_created', 'date_updated', 'created_by' From b882b12d046e0af6d5c1c315b45ab18201cc0833 Mon Sep 17 00:00:00 2001 From: feng <1304903146@qq.com> Date: Wed, 25 Sep 2024 18:33:12 +0800 Subject: [PATCH 13/36] perf: Check the validity of the connection token --- apps/authentication/api/connection_token.py | 23 ++++++++++++++ apps/terminal/serializers/session.py | 34 +++++++++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/apps/authentication/api/connection_token.py b/apps/authentication/api/connection_token.py index 37fb3e968..05135bc97 100644 --- a/apps/authentication/api/connection_token.py +++ b/apps/authentication/api/connection_token.py @@ -472,6 +472,7 @@ class SuperConnectionTokenViewSet(ConnectionTokenViewSet): rbac_perms = { 'create': 'authentication.add_superconnectiontoken', 'renewal': 'authentication.add_superconnectiontoken', + 'check': 'authentication.view_superconnectiontoken', 'get_secret_detail': 'authentication.view_superconnectiontokensecret', 'get_applet_info': 'authentication.view_superconnectiontoken', 'release_applet_account': 'authentication.view_superconnectiontoken', @@ -484,6 +485,28 @@ class SuperConnectionTokenViewSet(ConnectionTokenViewSet): def get_user(self, serializer): return serializer.validated_data.get('user') + @action(methods=['GET'], detail=True, url_path='check') + def check(self, request, *args, **kwargs): + instance = self.get_object() + data = { + "detail": "OK", + "code": "perm_ok", + "expired": instance.is_expired + } + try: + self._validate_perm( + instance.user, + instance.asset, + instance.account, + instance.protocol + ) + except JMSException as e: + data['code'] = e.detail.code + data['detail'] = str(e.detail) + return Response(data=data, status=status.HTTP_400_BAD_REQUEST) + + return Response(data=data, status=status.HTTP_200_OK) + @action(methods=['PATCH'], detail=False) def renewal(self, request, *args, **kwargs): from common.utils.timezone import as_current_tz diff --git a/apps/terminal/serializers/session.py b/apps/terminal/serializers/session.py index d54111c89..924c11049 100644 --- a/apps/terminal/serializers/session.py +++ b/apps/terminal/serializers/session.py @@ -1,10 +1,12 @@ from django.utils.translation import gettext_lazy as _ from rest_framework import serializers +from assets.models import Asset from common.serializers.fields import LabeledChoiceField from common.utils import pretty_string from orgs.mixins.serializers import BulkOrgResourceModelSerializer from terminal.session_lifecycle import lifecycle_events_map +from users.models import User from .terminal import TerminalSmallSerializer from ..const import SessionType, SessionErrorReason from ..models import Session @@ -73,6 +75,38 @@ class SessionSerializer(BulkOrgResourceModelSerializer): value = pretty_string(value, max_length=max_length) return value + @staticmethod + def get_valid_instance(model_cls, instance_id, field_name, error_message, validation_attr='is_active'): + if instance_id is None: + raise serializers.ValidationError({field_name: _('This field is required.')}) + instance = model_cls.objects.filter(id=instance_id).first() + if not instance or not getattr(instance, validation_attr, False): + raise serializers.ValidationError({field_name: error_message}) + return instance + + def create(self, validated_data): + user_id = validated_data.get('user_id') + asset_id = validated_data.get('asset_id') + + user = self.get_valid_instance( + User, + user_id, + 'user_id', + _('No user or invalid user'), + validation_attr='is_valid' + ) + + asset = self.get_valid_instance( + Asset, + asset_id, + 'asset_id', + _('No asset or invalid asset') + ) + + validated_data['user'] = str(user) + validated_data['asset'] = str(asset) + return super().create(validated_data) + class SessionDisplaySerializer(SessionSerializer): command_amount = serializers.IntegerField(read_only=True, label=_('Command amount')) From 3881edd2ba16ea0ed49642e9c751e8034dc7abb1 Mon Sep 17 00:00:00 2001 From: feng <1304903146@qq.com> Date: Sun, 29 Sep 2024 16:10:26 +0800 Subject: [PATCH 14/36] perf: Optimize file audit download prompt --- apps/assets/const/base.py | 2 +- apps/i18n/lina/en.json | 4 +++- apps/i18n/lina/ja.json | 1 - apps/i18n/lina/zh.json | 3 +++ apps/i18n/lina/zh_hant.json | 1 - apps/settings/serializers/public.py | 1 + 6 files changed, 8 insertions(+), 4 deletions(-) diff --git a/apps/assets/const/base.py b/apps/assets/const/base.py index 3236050ea..425e384f0 100644 --- a/apps/assets/const/base.py +++ b/apps/assets/const/base.py @@ -112,7 +112,7 @@ class BaseType(TextChoices): @classmethod def get_choices(cls): - if not settings.XPACK_ENABLED: + if not settings.XPACK_LICENSE_IS_VALID: choices = [(tp.value, tp.label) for tp in cls.get_community_types()] else: choices = cls.choices diff --git a/apps/i18n/lina/en.json b/apps/i18n/lina/en.json index 4494ee93f..bd263697d 100644 --- a/apps/i18n/lina/en.json +++ b/apps/i18n/lina/en.json @@ -443,7 +443,9 @@ "Docs": "Docs", "Download": "Download", "DownloadCenter": "Download", - "DownloadFTPFileTip": "The current action does not record files, or the file size exceeds the threshold (default 100m), or it has not yet been saved to the corresponding storage", + "FTPStorageNotEnabled": "The file storage function is not enabled. Please modify the configuration file and add the following configuration: FTP_FILE_MAX_STORE=100 (supports saving files within 100M)", + "FTPFileNotStored": "The file has not been saved to storage yet, please check back later.", + "FTPUnknownStorageState": "Unknown file storage status, please contact your administrator.", "DownloadImportTemplateMsg": "Download creation template", "DownloadReplay": "Download recording", "DownloadUpdateTemplateMsg": "Download update template", diff --git a/apps/i18n/lina/ja.json b/apps/i18n/lina/ja.json index a0f0af624..7e5666a0e 100644 --- a/apps/i18n/lina/ja.json +++ b/apps/i18n/lina/ja.json @@ -458,7 +458,6 @@ "Docs": "文書", "Download": "ダウンロード", "DownloadCenter": "ダウンロードセンター", - "DownloadFTPFileTip": "現在のActionでは、ファイルは記録されず、またはファイルサイズが閾値(デフォルトは100M)を超える、またはまだ対応するストレージに保存されていない", "DownloadImportTemplateMsg": "テンプレートをダウンロードで作成", "DownloadReplay": "ビデオのダウンロード", "DownloadUpdateTemplateMsg": "更新テンプレートをダウンロード", diff --git a/apps/i18n/lina/zh.json b/apps/i18n/lina/zh.json index 00884db00..1bbd96af9 100644 --- a/apps/i18n/lina/zh.json +++ b/apps/i18n/lina/zh.json @@ -444,6 +444,9 @@ "Download": "下载", "DownloadCenter": "下载中心", "DownloadFTPFileTip": "当前动作不记录文件,或者文件大小超过阈值(默认100M),或者还未保存到对应存储中", + "FTPStorageNotEnabled": "文件存储功能未开启,请修改配置文件并添加配置:FTP_FILE_MAX_STORE=100(支持保存100M以内的文件)", + "FTPFileNotStored": "文件尚未保存到存储中,请稍后查看。", + "FTPUnknownStorageState": "未知的文件存储状态,请联系管理员。", "DownloadImportTemplateMsg": "下载创建模板", "DownloadReplay": "下载录像", "DownloadUpdateTemplateMsg": "下载更新模板", diff --git a/apps/i18n/lina/zh_hant.json b/apps/i18n/lina/zh_hant.json index e4b00112a..2660cbe8a 100644 --- a/apps/i18n/lina/zh_hant.json +++ b/apps/i18n/lina/zh_hant.json @@ -593,7 +593,6 @@ "DomainUpdate": "更新網域", "Download": "下載", "DownloadCenter": "下載中心", - "DownloadFTPFileTip": "當前動作不記錄文件,或者檔案大小超過閾值(默認100M),或者還未保存到對應儲存中", "DownloadImportTemplateMsg": "下載創建模板", "DownloadReplay": "下載錄影", "DownloadUpdateTemplateMsg": "下載更新範本", diff --git a/apps/settings/serializers/public.py b/apps/settings/serializers/public.py index 32ab1e61c..bf1ad6e34 100644 --- a/apps/settings/serializers/public.py +++ b/apps/settings/serializers/public.py @@ -62,6 +62,7 @@ class PrivateSettingSerializer(PublicSettingSerializer): CHAT_AI_ENABLED = serializers.BooleanField() GPT_MODEL = serializers.CharField() FILE_UPLOAD_SIZE_LIMIT_MB = serializers.IntegerField() + FTP_FILE_MAX_STORE = serializers.IntegerField() LOKI_LOG_ENABLED = serializers.BooleanField() TOOL_USER_ENABLED = serializers.BooleanField() From 7c211b3fb6cd1a447e5c1cc4a50b6e39db0d1df6 Mon Sep 17 00:00:00 2001 From: wangruidong <940853815@qq.com> Date: Tue, 8 Oct 2024 11:47:14 +0800 Subject: [PATCH 15/36] perf: Translate --- .../verify_gateway_account/manager.py | 4 +- .../automations/ping_gateway/manager.py | 2 +- apps/i18n/core/zh/LC_MESSAGES/django.po | 120 ++++++++++-------- 3 files changed, 71 insertions(+), 55 deletions(-) diff --git a/apps/accounts/automations/verify_gateway_account/manager.py b/apps/accounts/automations/verify_gateway_account/manager.py index f6e4e38ab..def47aa3e 100644 --- a/apps/accounts/automations/verify_gateway_account/manager.py +++ b/apps/accounts/automations/verify_gateway_account/manager.py @@ -1,3 +1,5 @@ +from django.utils.translation import gettext_lazy as _ + from accounts.const import AutomationTypes from assets.automations.ping_gateway.manager import PingGatewayManager from common.utils import get_logger @@ -13,7 +15,7 @@ class VerifyGatewayAccountManager(PingGatewayManager): @staticmethod def before_runner_start(): - logger.info(">>> 开始执行测试网关账号可连接性任务") + logger.info(_(">>> Start executing the task to test gateway account connectivity")) def get_accounts(self, gateway): account_ids = self.execution.snapshot['accounts'] diff --git a/apps/assets/automations/ping_gateway/manager.py b/apps/assets/automations/ping_gateway/manager.py index f42090f07..43a6fb9b1 100644 --- a/apps/assets/automations/ping_gateway/manager.py +++ b/apps/assets/automations/ping_gateway/manager.py @@ -115,7 +115,7 @@ class PingGatewayManager: @staticmethod def before_runner_start(): - print(">>> 开始执行测试网关可连接性任务") + print(_(">>> Start executing the task to test gateway connectivity")) def get_accounts(self, gateway): account = gateway.select_account diff --git a/apps/i18n/core/zh/LC_MESSAGES/django.po b/apps/i18n/core/zh/LC_MESSAGES/django.po index af26dc6e6..e600fb48a 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-09-19 17:03+0800\n" +"POT-Creation-Date: 2024-10-08 11:41+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n" "Last-Translator: ibuler <ibuler@qq.com>\n" "Language-Team: JumpServer team<ibuler@qq.com>\n" @@ -117,6 +117,10 @@ msgstr "未找到待处理帐户" msgid "Success: %s, Failed: %s, Total: %s" msgstr "成功: %s, 失败: %s, 总数: %s" +#: accounts/automations/verify_gateway_account/manager.py:18 +msgid ">>> Start executing the task to test gateway account connectivity" +msgstr ">>> 开始执行测试网关账号可连接性任务" + #: accounts/const/account.py:6 #: accounts/serializers/automations/change_secret.py:34 #: audits/signal_handlers/login_log.py:34 authentication/confirm/password.py:9 @@ -351,7 +355,7 @@ msgstr "用户 %s 查看/导出 了密码" #: audits/models.py:58 authentication/models/connection_token.py:36 #: perms/models/asset_permission.py:69 terminal/backends/command/models.py:17 #: terminal/models/session/session.py:32 terminal/notifications.py:155 -#: terminal/serializers/command.py:17 terminal/serializers/session.py:28 +#: terminal/serializers/command.py:17 terminal/serializers/session.py:30 #: terminal/templates/terminal/_msg_command_warning.html:4 #: terminal/templates/terminal/_msg_session_sharing.html:4 #: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:288 @@ -498,7 +502,7 @@ msgstr "原因" #: accounts/models/automations/backup_account.py:136 #: accounts/serializers/automations/change_secret.py:110 #: accounts/serializers/automations/change_secret.py:145 -#: ops/serializers/job.py:74 terminal/serializers/session.py:52 +#: ops/serializers/job.py:74 terminal/serializers/session.py:54 msgid "Is success" msgstr "是否成功" @@ -715,8 +719,8 @@ 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:12 -#: terminal/models/component/endpoint.py:109 +#: terminal/models/applet/applet.py:34 terminal/models/component/endpoint.py:13 +#: terminal/models/component/endpoint.py:111 #: terminal/models/component/storage.py:26 terminal/models/component/task.py:13 #: terminal/models/component/terminal.py:85 #: terminal/models/virtualapp/provider.py:10 @@ -878,7 +882,7 @@ msgstr "类别" #: 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:23 terminal/serializers/storage.py:281 +#: terminal/serializers/session.py:25 terminal/serializers/storage.py:281 #: terminal/serializers/storage.py:294 tickets/models/comment.py:26 #: tickets/models/flow.py:42 tickets/models/ticket/apply_application.py:16 #: tickets/models/ticket/general.py:276 tickets/serializers/flow.py:25 @@ -1064,8 +1068,8 @@ msgstr "关联平台,可配置推送参数,如果不关联,将使用默认 #: ops/models/job.py:158 ops/models/playbook.py:33 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:25 -#: terminal/models/component/endpoint.py:119 +#: terminal/models/component/endpoint.py:26 +#: terminal/models/component/endpoint.py:121 #: terminal/models/session/session.py:47 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 #: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91 @@ -1354,12 +1358,12 @@ msgid "Notify and warn" msgstr "提示并告警" #: acls/models/base.py:37 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:112 xpack/plugins/cloud/models.py:314 +#: terminal/models/component/endpoint.py:114 xpack/plugins/cloud/models.py:314 msgid "Priority" msgstr "优先级" #: acls/models/base.py:38 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:113 xpack/plugins/cloud/models.py:315 +#: terminal/models/component/endpoint.py:115 xpack/plugins/cloud/models.py:315 msgid "1-100, the lower the value will be match first" msgstr "优先级可选范围为 1-100 (数值越小越优先)" @@ -1373,8 +1377,8 @@ msgstr "审批人" #: authentication/models/connection_token.py:53 #: 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:120 +#: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:27 +#: terminal/models/component/endpoint.py:122 #: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44 #: tickets/const.py:36 msgid "Active" @@ -1663,7 +1667,7 @@ msgid "Unable to connect to port {port} on {address}" msgstr "无法连接到 {port} 上的端口 {address}" #: assets/automations/ping_gateway/manager.py:58 -#: authentication/middleware.py:93 xpack/plugins/cloud/providers/fc.py:47 +#: authentication/middleware.py:94 xpack/plugins/cloud/providers/fc.py:47 msgid "Authentication failed" msgstr "认证失败" @@ -1672,6 +1676,10 @@ msgstr "认证失败" msgid "Connect failed" msgstr "连接失败" +#: assets/automations/ping_gateway/manager.py:118 +msgid ">>> Start executing the task to test gateway connectivity" +msgstr ">>> 开始执行测试网关可连接性任务" + #: assets/const/automation.py:6 audits/const.py:6 audits/const.py:47 #: audits/signal_handlers/activity_log.py:62 common/utils/ip/geoip/utils.py:31 #: common/utils/ip/geoip/utils.py:37 common/utils/ip/utils.py:104 @@ -1713,7 +1721,7 @@ msgstr "脚本" #: assets/const/category.py:10 assets/models/asset/host.py:8 #: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:76 #: settings/serializers/feature.py:52 settings/serializers/msg.py:30 -#: terminal/models/component/endpoint.py:13 terminal/serializers/applet.py:17 +#: terminal/models/component/endpoint.py:14 terminal/serializers/applet.py:17 #: xpack/plugins/cloud/manager.py:83 #: xpack/plugins/cloud/serializers/account_attrs.py:72 msgid "Host" @@ -2802,8 +2810,8 @@ msgstr "结束" #: audits/const.py:46 settings/serializers/terminal.py:6 #: terminal/models/applet/host.py:26 terminal/models/component/terminal.py:174 -#: terminal/models/virtualapp/provider.py:14 terminal/serializers/session.py:55 -#: terminal/serializers/session.py:79 +#: terminal/models/virtualapp/provider.py:14 terminal/serializers/session.py:57 +#: terminal/serializers/session.py:113 msgid "Terminal" msgstr "终端" @@ -3480,7 +3488,7 @@ msgstr "设置手机号码启用" msgid "Clear phone number to disable" msgstr "清空手机号码禁用" -#: authentication/middleware.py:94 settings/utils/ldap.py:691 +#: authentication/middleware.py:95 settings/utils/ldap.py:691 msgid "Authentication failed (before login check failed): {}" msgstr "认证失败 (登录前检查失败): {}" @@ -3503,7 +3511,7 @@ msgid "Please change your password" msgstr "请修改密码" #: authentication/models/access_key.py:22 -#: terminal/models/component/endpoint.py:110 +#: terminal/models/component/endpoint.py:112 msgid "IP group" msgstr "IPグループ" @@ -3525,7 +3533,7 @@ msgstr "自定义密码" #: authentication/serializers/connect_token_secret.py:114 #: settings/serializers/msg.py:28 terminal/models/applet/applet.py:43 #: terminal/models/virtualapp/virtualapp.py:24 -#: terminal/serializers/session.py:21 terminal/serializers/session.py:48 +#: terminal/serializers/session.py:23 terminal/serializers/session.py:50 #: terminal/serializers/storage.py:71 msgid "Protocol" msgstr "协议" @@ -3572,6 +3580,7 @@ msgid "Connection token expired at: {}" msgstr "连接令牌过期: {}" #: authentication/models/connection_token.py:125 +#: terminal/serializers/session.py:95 msgid "No user or invalid user" msgstr "没有用户或用户失效" @@ -4196,7 +4205,8 @@ msgid "Invalid ids for ids, should be a list" msgstr "无效的ID,应为列表" #: common/db/fields.py:589 common/db/fields.py:594 -#: common/serializers/fields.py:144 tickets/serializers/ticket/common.py:58 +#: 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 @@ -4706,27 +4716,27 @@ msgstr "正在创建任务,无法中断,请稍后重试。" msgid "Currently playbook is being used in a job" msgstr "当前 playbook 正在作业中使用" -#: ops/api/playbook.py:113 +#: ops/api/playbook.py:123 msgid "Unsupported file content" msgstr "不支持的文件内容" -#: ops/api/playbook.py:115 ops/api/playbook.py:161 ops/api/playbook.py:209 +#: ops/api/playbook.py:125 ops/api/playbook.py:171 ops/api/playbook.py:219 msgid "Invalid file path" msgstr "无效的文件路径" -#: ops/api/playbook.py:187 +#: ops/api/playbook.py:197 msgid "This file can not be rename" msgstr "该文件不能重命名" -#: ops/api/playbook.py:206 +#: ops/api/playbook.py:216 msgid "File already exists" msgstr "文件已存在" -#: ops/api/playbook.py:224 +#: ops/api/playbook.py:234 msgid "File key is required" msgstr "文件密钥该字段是必填项。" -#: ops/api/playbook.py:227 +#: ops/api/playbook.py:237 msgid "This file can not be delete" msgstr "无法删除此文件" @@ -5032,7 +5042,7 @@ msgstr "下次执行时间" msgid "Execute after saving" msgstr "保存后执行" -#: ops/serializers/job.py:52 terminal/serializers/session.py:47 +#: ops/serializers/job.py:52 terminal/serializers/session.py:49 msgid "Duration" msgstr "时长" @@ -5040,7 +5050,7 @@ msgstr "时长" msgid "Job type" msgstr "任务类型" -#: ops/serializers/job.py:75 terminal/serializers/session.py:56 +#: ops/serializers/job.py:75 terminal/serializers/session.py:58 msgid "Is finished" msgstr "是否完成" @@ -7194,11 +7204,11 @@ msgstr "认证失败: (未知): {}" msgid "Authentication success: {}" msgstr "认证成功: {}" -#: settings/ws.py:199 +#: settings/ws.py:222 msgid "No LDAP user was found" msgstr "没有获取到 LDAP 用户" -#: settings/ws.py:205 +#: settings/ws.py:228 msgid "Total {}, success {}, failure {}" msgstr "总共 {},成功 {},失败 {}" @@ -7690,51 +7700,51 @@ msgstr "初始化" msgid "Applet host deployment" msgstr "应用部署" -#: terminal/models/component/endpoint.py:15 +#: terminal/models/component/endpoint.py:16 msgid "HTTPS port" msgstr "HTTPS 端口" -#: terminal/models/component/endpoint.py:16 +#: terminal/models/component/endpoint.py:17 msgid "HTTP port" msgstr "HTTP 端口" -#: terminal/models/component/endpoint.py:17 +#: terminal/models/component/endpoint.py:18 msgid "SSH port" msgstr "SSH 端口" -#: terminal/models/component/endpoint.py:18 +#: terminal/models/component/endpoint.py:19 msgid "RDP port" msgstr "RDP 端口" -#: terminal/models/component/endpoint.py:19 +#: terminal/models/component/endpoint.py:20 msgid "MySQL port" msgstr "MySQL 端口" -#: terminal/models/component/endpoint.py:20 +#: terminal/models/component/endpoint.py:21 msgid "MariaDB port" msgstr "MariaDB 端口" -#: terminal/models/component/endpoint.py:21 +#: terminal/models/component/endpoint.py:22 msgid "PostgreSQL port" msgstr "PostgreSQL 端口" -#: terminal/models/component/endpoint.py:22 +#: terminal/models/component/endpoint.py:23 msgid "Redis port" msgstr "Redis 端口" -#: terminal/models/component/endpoint.py:23 +#: terminal/models/component/endpoint.py:24 msgid "SQLServer port" msgstr "SQLServer 端口" -#: terminal/models/component/endpoint.py:30 -#: terminal/models/component/endpoint.py:117 +#: terminal/models/component/endpoint.py:32 +#: terminal/models/component/endpoint.py:119 #: terminal/serializers/endpoint.py:73 terminal/serializers/storage.py:41 #: terminal/serializers/storage.py:53 terminal/serializers/storage.py:83 #: terminal/serializers/storage.py:93 terminal/serializers/storage.py:101 msgid "Endpoint" msgstr "端点" -#: terminal/models/component/endpoint.py:123 +#: terminal/models/component/endpoint.py:125 msgid "Endpoint rule" msgstr "端点规则" @@ -7820,11 +7830,11 @@ msgstr "登录来源" msgid "Replay" msgstr "回放" -#: terminal/models/session/session.py:48 terminal/serializers/session.py:78 +#: terminal/models/session/session.py:48 terminal/serializers/session.py:112 msgid "Command amount" msgstr "命令数量" -#: terminal/models/session/session.py:49 terminal/serializers/session.py:30 +#: terminal/models/session/session.py:49 terminal/serializers/session.py:32 msgid "Error reason" msgstr "错误原因" @@ -8159,34 +8169,38 @@ msgstr "如果不同端点下的资产 IP 有冲突,使用资产标签实现" msgid "Asset IP" msgstr "资产 IP" -#: terminal/serializers/session.py:25 terminal/serializers/session.py:53 +#: terminal/serializers/session.py:27 terminal/serializers/session.py:55 msgid "Can replay" msgstr "是否可重放" -#: terminal/serializers/session.py:26 terminal/serializers/session.py:54 +#: terminal/serializers/session.py:28 terminal/serializers/session.py:56 msgid "Can join" msgstr "是否可加入" -#: terminal/serializers/session.py:27 terminal/serializers/session.py:57 +#: terminal/serializers/session.py:29 terminal/serializers/session.py:59 msgid "Can terminate" msgstr "是否可中断" -#: terminal/serializers/session.py:49 +#: terminal/serializers/session.py:51 msgid "User ID" msgstr "用户 ID" -#: terminal/serializers/session.py:50 +#: terminal/serializers/session.py:52 msgid "Asset ID" msgstr "资产 ID" -#: terminal/serializers/session.py:51 +#: terminal/serializers/session.py:53 msgid "Login from display" msgstr "登录来源名称" -#: terminal/serializers/session.py:58 +#: terminal/serializers/session.py:60 msgid "Terminal display" msgstr "终端显示" +#: terminal/serializers/session.py:103 +msgid "No asset or invalid asset" +msgstr "没有资产或资产未激活" + #: terminal/serializers/storage.py:23 msgid "Endpoint invalid: remove path `{}`" msgstr "端点无效: 移除路径 `{}`" @@ -9925,8 +9939,8 @@ msgstr "IP网段组" #: xpack/plugins/cloud/models.py:115 #: xpack/plugins/cloud/serializers/task.py:161 -msgid "Preferred IP type" -msgstr "首选 IP 类型" +msgid "Sync IP type" +msgstr "密文类型" #: xpack/plugins/cloud/models.py:118 msgid "Always update" From 63f828da0b5da6f6d36c8f5b283eb1ceb65b013f Mon Sep 17 00:00:00 2001 From: wangruidong <940853815@qq.com> Date: Wed, 9 Oct 2024 14:55:34 +0800 Subject: [PATCH 16/36] perf: Default endpoint cannot be disabled --- apps/terminal/serializers/endpoint.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apps/terminal/serializers/endpoint.py b/apps/terminal/serializers/endpoint.py index dbaf482e8..c0e236195 100644 --- a/apps/terminal/serializers/endpoint.py +++ b/apps/terminal/serializers/endpoint.py @@ -58,6 +58,13 @@ class EndpointSerializer(BulkModelSerializer): extra_kwargs[field.name] = kwargs return extra_kwargs + def validate_is_active(self, value): + if str(self.instance.id) == Endpoint.default_id: + # 默认端点不能禁用 + return True + else: + return value + class EndpointRuleSerializer(BulkModelSerializer): _ip_group_help_text = '{}, {} <br>{}'.format( From aad824d127a5738fe00664062b99427d031eb502 Mon Sep 17 00:00:00 2001 From: wangruidong <940853815@qq.com> Date: Wed, 9 Oct 2024 16:10:14 +0800 Subject: [PATCH 17/36] perf: add created_by field --- apps/ops/serializers/adhoc.py | 2 +- apps/ops/serializers/playbook.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/ops/serializers/adhoc.py b/apps/ops/serializers/adhoc.py index 4b72860e5..4c73a01ea 100644 --- a/apps/ops/serializers/adhoc.py +++ b/apps/ops/serializers/adhoc.py @@ -15,5 +15,5 @@ class AdHocSerializer(ScopeSerializerMixin, CommonBulkModelSerializer): class Meta: model = AdHoc - read_only_field = ["id", "creator", "date_created", "date_updated"] + read_only_field = ["id", "creator", "date_created", "date_updated", "created_by"] fields = read_only_field + ["id", "name", "scope", "module", "args", "comment"] diff --git a/apps/ops/serializers/playbook.py b/apps/ops/serializers/playbook.py index c157251a6..e22e33068 100644 --- a/apps/ops/serializers/playbook.py +++ b/apps/ops/serializers/playbook.py @@ -25,7 +25,7 @@ class PlaybookSerializer(ScopeSerializerMixin, CommonBulkModelSerializer): class Meta: model = Playbook - read_only_fields = ["id", "date_created", "date_updated"] + read_only_fields = ["id", "date_created", "date_updated", "created_by"] fields = read_only_fields + [ "id", 'path', 'scope', "name", "comment", "creator", 'create_method', 'vcs_url', From bd56697d6d7862aa7ac39e9264e8a0cd9ebca514 Mon Sep 17 00:00:00 2001 From: Bai <baijiangjie@gmail.com> Date: Thu, 10 Oct 2024 17:50:03 +0800 Subject: [PATCH 18/36] perf: DEFAULT_PAGE_SIZE same as MAX_LIMIT_PER_PAGE --- apps/jumpserver/conf.py | 1 - apps/jumpserver/settings/custom.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/jumpserver/conf.py b/apps/jumpserver/conf.py index 0e5843560..2ad01de08 100644 --- a/apps/jumpserver/conf.py +++ b/apps/jumpserver/conf.py @@ -659,7 +659,6 @@ class Config(dict): # API 分页 'MAX_LIMIT_PER_PAGE': 10000, - 'DEFAULT_PAGE_SIZE': None, 'LIMIT_SUPER_PRIV': False, diff --git a/apps/jumpserver/settings/custom.py b/apps/jumpserver/settings/custom.py index 9161e2252..ea492d252 100644 --- a/apps/jumpserver/settings/custom.py +++ b/apps/jumpserver/settings/custom.py @@ -210,7 +210,7 @@ SESSION_RSA_PUBLIC_KEY_NAME = 'jms_public_key' OPERATE_LOG_ELASTICSEARCH_CONFIG = CONFIG.OPERATE_LOG_ELASTICSEARCH_CONFIG MAX_LIMIT_PER_PAGE = CONFIG.MAX_LIMIT_PER_PAGE -DEFAULT_PAGE_SIZE = CONFIG.DEFAULT_PAGE_SIZE +DEFAULT_PAGE_SIZE = CONFIG.MAX_LIMIT_PER_PAGE PERM_TREE_REGEN_INTERVAL = CONFIG.PERM_TREE_REGEN_INTERVAL # Magnus DB Port From 578458f734fb7b0e8ba0915dfb8227cf255fcc36 Mon Sep 17 00:00:00 2001 From: wangruidong <940853815@qq.com> Date: Fri, 11 Oct 2024 11:06:06 +0800 Subject: [PATCH 19/36] perf: site msg content optimize --- .../templates/authentication/_msg_different_city.html | 4 +--- .../templates/authentication/_msg_reset_password.html | 3 +-- .../templates/authentication/_msg_rest_password_success.html | 5 ++--- .../authentication/_msg_rest_public_key_success.html | 5 ++--- apps/perms/templates/perms/_msg_permed_items_expire.html | 3 +-- .../users/templates/users/_msg_password_expire_reminder.html | 3 +-- apps/users/templates/users/_msg_user_created.html | 4 +--- 7 files changed, 9 insertions(+), 18 deletions(-) diff --git a/apps/authentication/templates/authentication/_msg_different_city.html b/apps/authentication/templates/authentication/_msg_different_city.html index b3ca09432..287d7c3e8 100644 --- a/apps/authentication/templates/authentication/_msg_different_city.html +++ b/apps/authentication/templates/authentication/_msg_different_city.html @@ -8,10 +8,8 @@ <p> <b>{% trans 'Username' %}:</b> {{ username }}<br> <b>{% trans 'Login Date' %}:</b> {{ time }}<br> - <b>{% trans 'Login city' %}:</b> {{ city }}({{ ip }}) + <b>{% trans 'Login city' %}:</b> {{ city }}({{ ip }})<br> </p> - -- <p> {% trans 'If you suspect that the login behavior is abnormal, please modify the account password in time.' %} </p> \ No newline at end of file diff --git a/apps/authentication/templates/authentication/_msg_reset_password.html b/apps/authentication/templates/authentication/_msg_reset_password.html index f53bda209..6f0132ac3 100644 --- a/apps/authentication/templates/authentication/_msg_reset_password.html +++ b/apps/authentication/templates/authentication/_msg_reset_password.html @@ -10,8 +10,7 @@ {% trans 'Click here reset password' %} </a> </p> - -- +<br> <p> {% trans 'This link is valid for 1 hour. After it expires' %} <a href="{{ forget_password_url }}?email={{ user.email }}">{% trans 'request new one' %}</a> diff --git a/apps/authentication/templates/authentication/_msg_rest_password_success.html b/apps/authentication/templates/authentication/_msg_rest_password_success.html index 8f875a819..25740f267 100644 --- a/apps/authentication/templates/authentication/_msg_rest_password_success.html +++ b/apps/authentication/templates/authentication/_msg_rest_password_success.html @@ -5,10 +5,9 @@ {% trans 'Your password has just been successfully updated' %} </p> <p> - <b>{% trans 'IP' %}:</b> {{ ip_address }} <br/> - <b>{% trans 'Browser' %}:</b> {{ browser }} + <b>{% trans 'IP' %}:</b> {{ ip_address }} <br> + <b>{% trans 'Browser' %}:</b> {{ browser }} <br> </p> -- <p> {% trans 'If the password update was not initiated by you, your account may have security issues' %} <br/> {% trans 'If you have any questions, you can contact the administrator' %} diff --git a/apps/authentication/templates/authentication/_msg_rest_public_key_success.html b/apps/authentication/templates/authentication/_msg_rest_public_key_success.html index 327f75cb0..94cb3e50f 100644 --- a/apps/authentication/templates/authentication/_msg_rest_public_key_success.html +++ b/apps/authentication/templates/authentication/_msg_rest_public_key_success.html @@ -5,10 +5,9 @@ {% trans 'Your public key has just been successfully updated' %} </p> <p> - <b>{% trans 'IP' %}:</b> {{ ip_address }} <br/> - <b>{% trans 'Browser' %}:</b> {{ browser }} + <b>{% trans 'IP' %}:</b> {{ ip_address }} <br> + <b>{% trans 'Browser' %}:</b> {{ browser }} <br> </p> -- <p> {% trans 'If the public key update was not initiated by you, your account may have security issues' %} <br/> {% trans 'If you have any questions, you can contact the administrator' %} diff --git a/apps/perms/templates/perms/_msg_permed_items_expire.html b/apps/perms/templates/perms/_msg_permed_items_expire.html index 328653d6f..01175f54e 100644 --- a/apps/perms/templates/perms/_msg_permed_items_expire.html +++ b/apps/perms/templates/perms/_msg_permed_items_expire.html @@ -15,8 +15,7 @@ {% endfor %} </ul> -<br/> -- +<br> <p> {% trans 'If you have any question, please contact the administrator' %} </p> diff --git a/apps/users/templates/users/_msg_password_expire_reminder.html b/apps/users/templates/users/_msg_password_expire_reminder.html index bfd290156..7cde70165 100644 --- a/apps/users/templates/users/_msg_password_expire_reminder.html +++ b/apps/users/templates/users/_msg_password_expire_reminder.html @@ -9,9 +9,8 @@ <br /> <br /> <a href="{{ update_password_url }}">{% trans 'Click here update password' %}</a> - <br /> + <br/> </p> -- <p> {% trans 'If your password has expired, please click the link below to' %} <a href="{{ forget_password_url }}?email={{ email }}">{% trans 'Reset password' %}</a> diff --git a/apps/users/templates/users/_msg_user_created.html b/apps/users/templates/users/_msg_user_created.html index e3e23bb89..8a7f35422 100644 --- a/apps/users/templates/users/_msg_user_created.html +++ b/apps/users/templates/users/_msg_user_created.html @@ -15,9 +15,7 @@ {% trans 'click here to set your password' %} </a> </p> - - - - + <br> <p> {% trans 'This link is valid for 1 hour. After it expires' %} <a href="{{ forget_password_url }}?email={{ user.email }}">{% trans 'request new one' %}</a> From 7e111da529d1457c02c09c7b0243e8db974339e1 Mon Sep 17 00:00:00 2001 From: feng <1304903146@qq.com> Date: Sat, 12 Oct 2024 14:35:18 +0800 Subject: [PATCH 20/36] perf: Translate --- apps/i18n/core/en/LC_MESSAGES/django.po | 169 ++++++++-------- apps/i18n/core/ja/LC_MESSAGES/django.po | 192 +++++++++++-------- apps/i18n/core/zh/LC_MESSAGES/django.po | 45 +++-- apps/i18n/core/zh_Hant/LC_MESSAGES/django.po | 186 ++++++++++-------- 4 files changed, 330 insertions(+), 262 deletions(-) diff --git a/apps/i18n/core/en/LC_MESSAGES/django.po b/apps/i18n/core/en/LC_MESSAGES/django.po index 15124c901..1aaded933 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-09-19 16:31+0800\n" +"POT-Creation-Date: 2024-10-12 11:30+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -118,6 +118,10 @@ msgstr "" msgid "Success: %s, Failed: %s, Total: %s" msgstr "" +#: accounts/automations/verify_gateway_account/manager.py:18 +msgid ">>> Start executing the task to test gateway account connectivity" +msgstr "" + #: accounts/const/account.py:6 #: accounts/serializers/automations/change_secret.py:34 #: audits/signal_handlers/login_log.py:34 authentication/confirm/password.py:9 @@ -352,7 +356,7 @@ msgstr "" #: audits/models.py:58 authentication/models/connection_token.py:36 #: perms/models/asset_permission.py:69 terminal/backends/command/models.py:17 #: terminal/models/session/session.py:32 terminal/notifications.py:155 -#: terminal/serializers/command.py:17 terminal/serializers/session.py:28 +#: terminal/serializers/command.py:17 terminal/serializers/session.py:30 #: terminal/templates/terminal/_msg_command_warning.html:4 #: terminal/templates/terminal/_msg_session_sharing.html:4 #: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:288 @@ -499,7 +503,7 @@ msgstr "" #: accounts/models/automations/backup_account.py:136 #: accounts/serializers/automations/change_secret.py:110 #: accounts/serializers/automations/change_secret.py:145 -#: ops/serializers/job.py:74 terminal/serializers/session.py:52 +#: ops/serializers/job.py:74 terminal/serializers/session.py:54 msgid "Is success" msgstr "Is success" @@ -716,8 +720,8 @@ 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:12 -#: terminal/models/component/endpoint.py:109 +#: terminal/models/applet/applet.py:34 terminal/models/component/endpoint.py:13 +#: terminal/models/component/endpoint.py:111 #: terminal/models/component/storage.py:26 terminal/models/component/task.py:13 #: terminal/models/component/terminal.py:85 #: terminal/models/virtualapp/provider.py:10 @@ -870,7 +874,7 @@ msgstr "" #: 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:23 terminal/serializers/storage.py:281 +#: terminal/serializers/session.py:25 terminal/serializers/storage.py:281 #: terminal/serializers/storage.py:294 tickets/models/comment.py:26 #: tickets/models/flow.py:42 tickets/models/ticket/apply_application.py:16 #: tickets/models/ticket/general.py:276 tickets/serializers/flow.py:25 @@ -1048,8 +1052,8 @@ msgstr "" #: ops/models/job.py:158 ops/models/playbook.py:33 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:25 -#: terminal/models/component/endpoint.py:119 +#: terminal/models/component/endpoint.py:26 +#: terminal/models/component/endpoint.py:121 #: terminal/models/session/session.py:47 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 #: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91 @@ -1328,12 +1332,12 @@ msgid "Notify and warn" msgstr "" #: acls/models/base.py:37 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:112 xpack/plugins/cloud/models.py:314 +#: terminal/models/component/endpoint.py:114 xpack/plugins/cloud/models.py:314 msgid "Priority" msgstr "" #: acls/models/base.py:38 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:113 xpack/plugins/cloud/models.py:315 +#: terminal/models/component/endpoint.py:115 xpack/plugins/cloud/models.py:315 msgid "1-100, the lower the value will be match first" msgstr "" @@ -1347,8 +1351,8 @@ msgstr "" #: authentication/models/connection_token.py:53 #: 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:120 +#: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:27 +#: terminal/models/component/endpoint.py:122 #: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44 #: tickets/const.py:36 msgid "Active" @@ -1631,7 +1635,7 @@ msgid "Unable to connect to port {port} on {address}" msgstr "" #: assets/automations/ping_gateway/manager.py:58 -#: authentication/middleware.py:93 xpack/plugins/cloud/providers/fc.py:47 +#: authentication/middleware.py:94 xpack/plugins/cloud/providers/fc.py:47 msgid "Authentication failed" msgstr "" @@ -1640,6 +1644,10 @@ msgstr "" msgid "Connect failed" msgstr "" +#: assets/automations/ping_gateway/manager.py:118 +msgid ">>> Start executing the task to test gateway connectivity" +msgstr "" + #: assets/const/automation.py:6 audits/const.py:6 audits/const.py:47 #: audits/signal_handlers/activity_log.py:62 common/utils/ip/geoip/utils.py:31 #: common/utils/ip/geoip/utils.py:37 common/utils/ip/utils.py:104 @@ -1681,7 +1689,7 @@ msgstr "" #: assets/const/category.py:10 assets/models/asset/host.py:8 #: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:76 #: settings/serializers/feature.py:52 settings/serializers/msg.py:30 -#: terminal/models/component/endpoint.py:13 terminal/serializers/applet.py:17 +#: terminal/models/component/endpoint.py:14 terminal/serializers/applet.py:17 #: xpack/plugins/cloud/manager.py:83 #: xpack/plugins/cloud/serializers/account_attrs.py:72 msgid "Host" @@ -2353,13 +2361,13 @@ msgstr "" msgid "Postgresql ssl model help text" msgstr "" "Prefer: I don't care about encryption, but I wish to pay the overhead of " -"encryption if the server supports it.Require: I want my data to be " -"encrypted, and I accept the overhead. I trust that the network will make " -"sure I always connect to the server I want.Verify CA: I want my data " -"encrypted, and I accept the overhead. I want to be sure that I connect to a " -"server that I trust.Verify Full: I want my data encrypted, and I accept the " -"overhead. I want to be sure that I connect to a server I trust, and that " -"it's the one I specify." +"encryption if the server supports it.\n" +"Require: I want my data to be encrypted, and I accept the overhead. I trust that the network will make " +"sure I always connect to the server I want.\n" +"Verify CA: I want my data encrypted, and I accept the overhead. I want to be sure that I connect to a " +"server that I trust.\n" +"Verify Full: I want my data encrypted, and I accept the " +"overhead. I want to be sure that I connect to a server I trust, and that it's the one I specify." #: assets/serializers/asset/gpt.py:20 msgid "" @@ -2758,8 +2766,8 @@ msgstr "" #: audits/const.py:46 settings/serializers/terminal.py:6 #: terminal/models/applet/host.py:26 terminal/models/component/terminal.py:174 -#: terminal/models/virtualapp/provider.py:14 terminal/serializers/session.py:55 -#: terminal/serializers/session.py:79 +#: terminal/models/virtualapp/provider.py:14 terminal/serializers/session.py:57 +#: terminal/serializers/session.py:113 msgid "Terminal" msgstr "" @@ -3127,6 +3135,7 @@ msgid "OpenID Error" msgstr "" #: authentication/backends/oidc/views.py:175 +#: authentication/backends/saml2/views.py:282 msgid "Please check if a user with the same username or email already exists" msgstr "" @@ -3156,6 +3165,10 @@ msgstr "" msgid "Credential ID" msgstr "" +#: authentication/backends/saml2/views.py:281 +msgid "SAML2 Error" +msgstr "" + #: authentication/confirm/password.py:16 msgid "Authentication failed password incorrect" msgstr "" @@ -3424,7 +3437,7 @@ msgstr "" msgid "Clear phone number to disable" msgstr "" -#: authentication/middleware.py:94 settings/utils/ldap.py:691 +#: authentication/middleware.py:95 settings/utils/ldap.py:691 msgid "Authentication failed (before login check failed): {}" msgstr "" @@ -3447,7 +3460,7 @@ msgid "Please change your password" msgstr "" #: authentication/models/access_key.py:22 -#: terminal/models/component/endpoint.py:110 +#: terminal/models/component/endpoint.py:112 msgid "IP group" msgstr "" @@ -3469,7 +3482,7 @@ msgstr "" #: authentication/serializers/connect_token_secret.py:114 #: settings/serializers/msg.py:28 terminal/models/applet/applet.py:43 #: terminal/models/virtualapp/virtualapp.py:24 -#: terminal/serializers/session.py:21 terminal/serializers/session.py:48 +#: terminal/serializers/session.py:23 terminal/serializers/session.py:50 #: terminal/serializers/storage.py:71 msgid "Protocol" msgstr "" @@ -3516,6 +3529,7 @@ msgid "Connection token expired at: {}" msgstr "" #: authentication/models/connection_token.py:125 +#: terminal/serializers/session.py:95 msgid "No user or invalid user" msgstr "" @@ -3750,7 +3764,7 @@ msgstr "" msgid "Your account has remote login behavior, please pay attention" msgstr "" -#: authentication/templates/authentication/_msg_different_city.html:16 +#: authentication/templates/authentication/_msg_different_city.html:14 msgid "" "If you suspect that the login behavior is abnormal, please modify the " "account password in time." @@ -3774,13 +3788,13 @@ msgstr "" msgid "Click here reset password" msgstr "" -#: authentication/templates/authentication/_msg_reset_password.html:16 -#: users/templates/users/_msg_user_created.html:22 +#: authentication/templates/authentication/_msg_reset_password.html:15 +#: users/templates/users/_msg_user_created.html:20 msgid "This link is valid for 1 hour. After it expires" msgstr "" -#: authentication/templates/authentication/_msg_reset_password.html:17 -#: users/templates/users/_msg_user_created.html:23 +#: authentication/templates/authentication/_msg_reset_password.html:16 +#: users/templates/users/_msg_user_created.html:21 msgid "request new one" msgstr "" @@ -3809,14 +3823,14 @@ msgstr "" msgid "Browser" msgstr "" -#: authentication/templates/authentication/_msg_rest_password_success.html:13 +#: authentication/templates/authentication/_msg_rest_password_success.html:12 msgid "" "If the password update was not initiated by you, your account may have " "security issues" msgstr "" -#: authentication/templates/authentication/_msg_rest_password_success.html:14 -#: authentication/templates/authentication/_msg_rest_public_key_success.html:14 +#: authentication/templates/authentication/_msg_rest_password_success.html:13 +#: authentication/templates/authentication/_msg_rest_public_key_success.html:13 msgid "If you have any questions, you can contact the administrator" msgstr "" @@ -3824,7 +3838,7 @@ msgstr "" msgid "Your public key has just been successfully updated" msgstr "" -#: authentication/templates/authentication/_msg_rest_public_key_success.html:13 +#: authentication/templates/authentication/_msg_rest_public_key_success.html:12 msgid "" "If the public key update was not initiated by you, your account may have " "security issues" @@ -3897,7 +3911,7 @@ msgid "LAN" msgstr "" #: authentication/views/base.py:71 -#: perms/templates/perms/_msg_permed_items_expire.html:21 +#: perms/templates/perms/_msg_permed_items_expire.html:20 msgid "If you have any question, please contact the administrator" msgstr "" @@ -4134,7 +4148,8 @@ msgid "Invalid ids for ids, should be a list" msgstr "" #: common/db/fields.py:589 common/db/fields.py:594 -#: common/serializers/fields.py:144 tickets/serializers/ticket/common.py:58 +#: 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 @@ -4636,27 +4651,27 @@ msgstr "" msgid "Currently playbook is being used in a job" msgstr "" -#: ops/api/playbook.py:113 +#: ops/api/playbook.py:123 msgid "Unsupported file content" msgstr "" -#: ops/api/playbook.py:115 ops/api/playbook.py:161 ops/api/playbook.py:209 +#: ops/api/playbook.py:125 ops/api/playbook.py:171 ops/api/playbook.py:219 msgid "Invalid file path" msgstr "" -#: ops/api/playbook.py:187 +#: ops/api/playbook.py:197 msgid "This file can not be rename" msgstr "" -#: ops/api/playbook.py:206 +#: ops/api/playbook.py:216 msgid "File already exists" msgstr "" -#: ops/api/playbook.py:224 +#: ops/api/playbook.py:234 msgid "File key is required" msgstr "" -#: ops/api/playbook.py:227 +#: ops/api/playbook.py:237 msgid "This file can not be delete" msgstr "" @@ -4962,7 +4977,7 @@ msgstr "" msgid "Execute after saving" msgstr "Execute after saving" -#: ops/serializers/job.py:52 terminal/serializers/session.py:47 +#: ops/serializers/job.py:52 terminal/serializers/session.py:49 msgid "Duration" msgstr "" @@ -4970,7 +4985,7 @@ msgstr "" msgid "Job type" msgstr "" -#: ops/serializers/job.py:75 terminal/serializers/session.py:56 +#: ops/serializers/job.py:75 terminal/serializers/session.py:58 msgid "Is finished" msgstr "Finished" @@ -7040,11 +7055,11 @@ msgstr "" msgid "Authentication success: {}" msgstr "" -#: settings/ws.py:199 +#: settings/ws.py:222 msgid "No LDAP user was found" msgstr "" -#: settings/ws.py:205 +#: settings/ws.py:228 msgid "Total {}, success {}, failure {}" msgstr "" @@ -7516,51 +7531,51 @@ msgstr "" msgid "Applet host deployment" msgstr "" -#: terminal/models/component/endpoint.py:15 +#: terminal/models/component/endpoint.py:16 msgid "HTTPS port" msgstr "" -#: terminal/models/component/endpoint.py:16 +#: terminal/models/component/endpoint.py:17 msgid "HTTP port" msgstr "" -#: terminal/models/component/endpoint.py:17 +#: terminal/models/component/endpoint.py:18 msgid "SSH port" msgstr "" -#: terminal/models/component/endpoint.py:18 +#: terminal/models/component/endpoint.py:19 msgid "RDP port" msgstr "" -#: terminal/models/component/endpoint.py:19 +#: terminal/models/component/endpoint.py:20 msgid "MySQL port" msgstr "" -#: terminal/models/component/endpoint.py:20 +#: terminal/models/component/endpoint.py:21 msgid "MariaDB port" msgstr "" -#: terminal/models/component/endpoint.py:21 +#: terminal/models/component/endpoint.py:22 msgid "PostgreSQL port" msgstr "" -#: terminal/models/component/endpoint.py:22 +#: terminal/models/component/endpoint.py:23 msgid "Redis port" msgstr "" -#: terminal/models/component/endpoint.py:23 +#: terminal/models/component/endpoint.py:24 msgid "SQLServer port" msgstr "" -#: terminal/models/component/endpoint.py:30 -#: terminal/models/component/endpoint.py:117 -#: terminal/serializers/endpoint.py:73 terminal/serializers/storage.py:41 +#: terminal/models/component/endpoint.py:32 +#: terminal/models/component/endpoint.py:119 +#: terminal/serializers/endpoint.py:80 terminal/serializers/storage.py:41 #: terminal/serializers/storage.py:53 terminal/serializers/storage.py:83 #: terminal/serializers/storage.py:93 terminal/serializers/storage.py:101 msgid "Endpoint" msgstr "" -#: terminal/models/component/endpoint.py:123 +#: terminal/models/component/endpoint.py:125 msgid "Endpoint rule" msgstr "" @@ -7646,11 +7661,11 @@ msgstr "" msgid "Replay" msgstr "" -#: terminal/models/session/session.py:48 terminal/serializers/session.py:78 +#: terminal/models/session/session.py:48 terminal/serializers/session.py:112 msgid "Command amount" msgstr "" -#: terminal/models/session/session.py:49 terminal/serializers/session.py:30 +#: terminal/models/session/session.py:49 terminal/serializers/session.py:32 msgid "Error reason" msgstr "" @@ -7947,49 +7962,53 @@ msgid "" "does not allow modification of the host)" msgstr "" -#: terminal/serializers/endpoint.py:64 +#: terminal/serializers/endpoint.py:71 msgid "" "The assets within this IP range, the following endpoint will be used for the " "connection" msgstr "" -#: terminal/serializers/endpoint.py:65 +#: terminal/serializers/endpoint.py:72 msgid "" "If asset IP addresses under different endpoints conflict, use asset labels" msgstr "" -#: terminal/serializers/endpoint.py:69 +#: terminal/serializers/endpoint.py:76 msgid "Asset IP" msgstr "" -#: terminal/serializers/session.py:25 terminal/serializers/session.py:53 +#: terminal/serializers/session.py:27 terminal/serializers/session.py:55 msgid "Can replay" msgstr "" -#: terminal/serializers/session.py:26 terminal/serializers/session.py:54 +#: terminal/serializers/session.py:28 terminal/serializers/session.py:56 msgid "Can join" msgstr "" -#: terminal/serializers/session.py:27 terminal/serializers/session.py:57 +#: terminal/serializers/session.py:29 terminal/serializers/session.py:59 msgid "Can terminate" msgstr "" -#: terminal/serializers/session.py:49 +#: terminal/serializers/session.py:51 msgid "User ID" msgstr "" -#: terminal/serializers/session.py:50 +#: terminal/serializers/session.py:52 msgid "Asset ID" msgstr "" -#: terminal/serializers/session.py:51 +#: terminal/serializers/session.py:53 msgid "Login from display" msgstr "" -#: terminal/serializers/session.py:58 +#: terminal/serializers/session.py:60 msgid "Terminal display" msgstr "" +#: terminal/serializers/session.py:103 +msgid "No asset or invalid asset" +msgstr "" + #: terminal/serializers/storage.py:23 msgid "Endpoint invalid: remove path `{}`" msgstr "" @@ -8850,7 +8869,7 @@ msgid "Force enabled" msgstr "" #: users/notifications.py:55 -#: users/templates/users/_msg_password_expire_reminder.html:17 +#: users/templates/users/_msg_password_expire_reminder.html:16 #: users/templates/users/reset_password.html:5 #: users/templates/users/reset_password.html:6 msgid "Reset password" @@ -9195,7 +9214,7 @@ msgstr "" msgid "Click here update password" msgstr "" -#: users/templates/users/_msg_password_expire_reminder.html:16 +#: users/templates/users/_msg_password_expire_reminder.html:15 msgid "If your password has expired, please click the link below to" msgstr "" @@ -9696,7 +9715,7 @@ msgstr "" #: xpack/plugins/cloud/models.py:115 #: xpack/plugins/cloud/serializers/task.py:161 -msgid "Preferred IP type" +msgid "Sync IP type" msgstr "" #: xpack/plugins/cloud/models.py:118 diff --git a/apps/i18n/core/ja/LC_MESSAGES/django.po b/apps/i18n/core/ja/LC_MESSAGES/django.po index 831ef34a0..99f3a11ff 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-09-19 16:31+0800\n" +"POT-Creation-Date: 2024-10-12 11:30+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -118,6 +118,10 @@ msgstr "保留中のアカウントが見つかりません" msgid "Success: %s, Failed: %s, Total: %s" msgstr "成功: %s、失敗: %s、合計: %s" +#: accounts/automations/verify_gateway_account/manager.py:18 +msgid ">>> Start executing the task to test gateway account connectivity" +msgstr ">>> ゲートウェイ接続のテストタスクを開始する" + #: accounts/const/account.py:6 #: accounts/serializers/automations/change_secret.py:34 #: audits/signal_handlers/login_log.py:34 authentication/confirm/password.py:9 @@ -352,7 +356,7 @@ msgstr "ユーザー %s がパスワードを閲覧/導き出しました" #: audits/models.py:58 authentication/models/connection_token.py:36 #: perms/models/asset_permission.py:69 terminal/backends/command/models.py:17 #: terminal/models/session/session.py:32 terminal/notifications.py:155 -#: terminal/serializers/command.py:17 terminal/serializers/session.py:28 +#: terminal/serializers/command.py:17 terminal/serializers/session.py:30 #: terminal/templates/terminal/_msg_command_warning.html:4 #: terminal/templates/terminal/_msg_session_sharing.html:4 #: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:288 @@ -499,7 +503,7 @@ msgstr "理由" #: accounts/models/automations/backup_account.py:136 #: accounts/serializers/automations/change_secret.py:110 #: accounts/serializers/automations/change_secret.py:145 -#: ops/serializers/job.py:74 terminal/serializers/session.py:52 +#: ops/serializers/job.py:74 terminal/serializers/session.py:54 msgid "Is success" msgstr "成功は" @@ -716,8 +720,8 @@ 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:12 -#: terminal/models/component/endpoint.py:109 +#: terminal/models/applet/applet.py:34 terminal/models/component/endpoint.py:13 +#: terminal/models/component/endpoint.py:111 #: terminal/models/component/storage.py:26 terminal/models/component/task.py:13 #: terminal/models/component/terminal.py:85 #: terminal/models/virtualapp/provider.py:10 @@ -880,7 +884,7 @@ msgstr "カテゴリ" #: 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:23 terminal/serializers/storage.py:281 +#: terminal/serializers/session.py:25 terminal/serializers/storage.py:281 #: terminal/serializers/storage.py:294 tickets/models/comment.py:26 #: tickets/models/flow.py:42 tickets/models/ticket/apply_application.py:16 #: tickets/models/ticket/general.py:276 tickets/serializers/flow.py:25 @@ -1040,11 +1044,13 @@ msgid "" "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" @@ -1065,8 +1071,8 @@ msgstr "关联平台,可以配置推送参数,如果不关联,则使用默 #: ops/models/job.py:158 ops/models/playbook.py:33 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:25 -#: terminal/models/component/endpoint.py:119 +#: terminal/models/component/endpoint.py:26 +#: terminal/models/component/endpoint.py:121 #: terminal/models/session/session.py:47 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 #: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91 @@ -1378,12 +1384,12 @@ msgid "Notify and warn" msgstr "プロンプトと警告" #: acls/models/base.py:37 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:112 xpack/plugins/cloud/models.py:314 +#: terminal/models/component/endpoint.py:114 xpack/plugins/cloud/models.py:314 msgid "Priority" msgstr "優先順位" #: acls/models/base.py:38 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:113 xpack/plugins/cloud/models.py:315 +#: terminal/models/component/endpoint.py:115 xpack/plugins/cloud/models.py:315 msgid "1-100, the lower the value will be match first" msgstr "1-100、低い値は最初に一致します" @@ -1397,8 +1403,8 @@ msgstr "レビュー担当者" #: authentication/models/connection_token.py:53 #: 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:120 +#: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:27 +#: terminal/models/component/endpoint.py:122 #: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44 #: tickets/const.py:36 msgid "Active" @@ -1691,7 +1697,7 @@ msgid "Unable to connect to port {port} on {address}" msgstr "{port} のポート {address} に接続できません" #: assets/automations/ping_gateway/manager.py:58 -#: authentication/middleware.py:93 xpack/plugins/cloud/providers/fc.py:47 +#: authentication/middleware.py:94 xpack/plugins/cloud/providers/fc.py:47 msgid "Authentication failed" msgstr "認証に失敗しました" @@ -1700,6 +1706,12 @@ msgstr "認証に失敗しました" msgid "Connect failed" msgstr "接続に失敗しました" +#: assets/automations/ping_gateway/manager.py:118 +#, fuzzy +#| msgid ">>> Start executing tasks" +msgid ">>> Start executing the task to test gateway connectivity" +msgstr ">>> タスクの実行を開始" + #: assets/const/automation.py:6 audits/const.py:6 audits/const.py:47 #: audits/signal_handlers/activity_log.py:62 common/utils/ip/geoip/utils.py:31 #: common/utils/ip/geoip/utils.py:37 common/utils/ip/utils.py:104 @@ -1741,7 +1753,7 @@ msgstr "脚本" #: assets/const/category.py:10 assets/models/asset/host.py:8 #: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:76 #: settings/serializers/feature.py:52 settings/serializers/msg.py:30 -#: terminal/models/component/endpoint.py:13 terminal/serializers/applet.py:17 +#: terminal/models/component/endpoint.py:14 terminal/serializers/applet.py:17 #: xpack/plugins/cloud/manager.py:83 #: xpack/plugins/cloud/serializers/account_attrs.py:72 msgid "Host" @@ -2428,13 +2440,11 @@ msgstr "" #: assets/serializers/asset/database.py:24 msgid "Postgresql ssl model help text" msgstr "" -"Prefer:私は暗号化に関心はありませんが、サーバーが暗号化をサポートしているな" -"ら、私は暗号化のコストを支払うことを喜んでいます。Require:私のデータを暗号化" -"してほしい、そのコストを受け入れます。私はネットワークが私が接続したいサー" -"バーに常に接続できるように保証してくれると信じています。Verify CA:私はデータ" -"が暗号化され、コストを受け入れます。私が信頼するサーバーに接続されていること" -"を確認したい。Verify Full:私はデータが暗号化され、コストを受け入れます。私が" -"信頼するサーバーに接続されていること、そしてそれが私が指定したサーバーである" +"Prefer:私は暗号化に関心はありませんが、サーバーが暗号化をサポートしているなら、私は暗号化のコストを支払うことを喜んでいます。\n" +"Require:私のデータを暗号化してほしい、そのコストを受け入れます。" +"私はネットワークが私が接続したいサーバーに常に接続できるように保証してくれると信じています。\n" +"Verify CA:私はデータが暗号化され、コストを受け入れます。私が信頼するサーバーに接続されていることを確認したい。\n" +"Verify Full:私はデータが暗号化され、コストを受け入れます。私が信頼するサーバーに接続されていること、そしてそれが私が指定したサーバーである" "ことを確認したい" #: assets/serializers/asset/gpt.py:20 @@ -2858,8 +2868,8 @@ msgstr "終了" #: audits/const.py:46 settings/serializers/terminal.py:6 #: terminal/models/applet/host.py:26 terminal/models/component/terminal.py:174 -#: terminal/models/virtualapp/provider.py:14 terminal/serializers/session.py:55 -#: terminal/serializers/session.py:79 +#: terminal/models/virtualapp/provider.py:14 terminal/serializers/session.py:57 +#: terminal/serializers/session.py:113 msgid "Terminal" msgstr "ターミナル" @@ -3238,6 +3248,7 @@ msgid "OpenID Error" msgstr "OpenID エラー" #: authentication/backends/oidc/views.py:175 +#: authentication/backends/saml2/views.py:282 msgid "Please check if a user with the same username or email already exists" msgstr "" "同じユーザー名またはメールアドレスのユーザーが既に存在するかどうかを確認して" @@ -3269,6 +3280,10 @@ msgstr "最後に使用した日付" msgid "Credential ID" msgstr "資格情報ID" +#: authentication/backends/saml2/views.py:281 +msgid "SAML2 Error" +msgstr "SAML2 エラー" + #: authentication/confirm/password.py:16 msgid "Authentication failed password incorrect" msgstr "認証に失敗しました (ユーザー名またはパスワードが正しくありません)" @@ -3548,7 +3563,7 @@ msgstr "電話番号を設定して有効にする" msgid "Clear phone number to disable" msgstr "無効にする電話番号をクリアする" -#: authentication/middleware.py:94 settings/utils/ldap.py:691 +#: authentication/middleware.py:95 settings/utils/ldap.py:691 msgid "Authentication failed (before login check failed): {}" msgstr "認証に失敗しました (ログインチェックが失敗する前): {}" @@ -3573,7 +3588,7 @@ msgid "Please change your password" msgstr "パスワードを変更してください" #: authentication/models/access_key.py:22 -#: terminal/models/component/endpoint.py:110 +#: terminal/models/component/endpoint.py:112 msgid "IP group" msgstr "IP グループ" @@ -3595,7 +3610,7 @@ msgstr "カスタムパスワード" #: authentication/serializers/connect_token_secret.py:114 #: settings/serializers/msg.py:28 terminal/models/applet/applet.py:43 #: terminal/models/virtualapp/virtualapp.py:24 -#: terminal/serializers/session.py:21 terminal/serializers/session.py:48 +#: terminal/serializers/session.py:23 terminal/serializers/session.py:50 #: terminal/serializers/storage.py:71 msgid "Protocol" msgstr "プロトコル" @@ -3642,6 +3657,7 @@ msgid "Connection token expired at: {}" msgstr "接続トークンの有効期限: {}" #: authentication/models/connection_token.py:125 +#: terminal/serializers/session.py:95 msgid "No user or invalid user" msgstr "ユーザーなしまたは期限切れのユーザー" @@ -3880,7 +3896,7 @@ msgstr "こんにちは" msgid "Your account has remote login behavior, please pay attention" msgstr "アカウントにリモートログイン動作があります。注意してください" -#: authentication/templates/authentication/_msg_different_city.html:16 +#: authentication/templates/authentication/_msg_different_city.html:14 msgid "" "If you suspect that the login behavior is abnormal, please modify the " "account password in time." @@ -3908,13 +3924,13 @@ msgstr "" msgid "Click here reset password" msgstr "ここをクリックしてパスワードをリセット" -#: authentication/templates/authentication/_msg_reset_password.html:16 -#: users/templates/users/_msg_user_created.html:22 +#: authentication/templates/authentication/_msg_reset_password.html:15 +#: users/templates/users/_msg_user_created.html:20 msgid "This link is valid for 1 hour. After it expires" msgstr "このリンクは1時間有効です。有効期限が切れた後" -#: authentication/templates/authentication/_msg_reset_password.html:17 -#: users/templates/users/_msg_user_created.html:23 +#: authentication/templates/authentication/_msg_reset_password.html:16 +#: users/templates/users/_msg_user_created.html:21 msgid "request new one" msgstr "新しいものを要求する" @@ -3943,7 +3959,7 @@ msgstr "パスワードが正常に更新されました" msgid "Browser" msgstr "ブラウザ" -#: authentication/templates/authentication/_msg_rest_password_success.html:13 +#: authentication/templates/authentication/_msg_rest_password_success.html:12 msgid "" "If the password update was not initiated by you, your account may have " "security issues" @@ -3951,8 +3967,8 @@ msgstr "" "パスワードの更新が開始されなかった場合、アカウントにセキュリティ上の問題があ" "る可能性があります" -#: authentication/templates/authentication/_msg_rest_password_success.html:14 -#: authentication/templates/authentication/_msg_rest_public_key_success.html:14 +#: authentication/templates/authentication/_msg_rest_password_success.html:13 +#: authentication/templates/authentication/_msg_rest_public_key_success.html:13 msgid "If you have any questions, you can contact the administrator" msgstr "質問があれば、管理者に連絡できます" @@ -3960,7 +3976,7 @@ msgstr "質問があれば、管理者に連絡できます" msgid "Your public key has just been successfully updated" msgstr "公開鍵が正常に更新されました" -#: authentication/templates/authentication/_msg_rest_public_key_success.html:13 +#: authentication/templates/authentication/_msg_rest_public_key_success.html:12 msgid "" "If the public key update was not initiated by you, your account may have " "security issues" @@ -4039,7 +4055,7 @@ msgid "LAN" msgstr "ローカルエリアネットワーク" #: authentication/views/base.py:71 -#: perms/templates/perms/_msg_permed_items_expire.html:21 +#: perms/templates/perms/_msg_permed_items_expire.html:20 msgid "If you have any question, please contact the administrator" msgstr "質問があったら、管理者に連絡して下さい" @@ -4283,7 +4299,8 @@ msgid "Invalid ids for ids, should be a list" msgstr "無効なID、リストでなければなりません" #: common/db/fields.py:589 common/db/fields.py:594 -#: common/serializers/fields.py:144 tickets/serializers/ticket/common.py:58 +#: 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 @@ -4818,27 +4835,27 @@ msgstr "タスクを作成中で、中断できません。後でもう一度お msgid "Currently playbook is being used in a job" msgstr "現在プレイブックは1つのジョブで使用されています" -#: ops/api/playbook.py:113 +#: ops/api/playbook.py:123 msgid "Unsupported file content" msgstr "サポートされていないファイルの内容" -#: ops/api/playbook.py:115 ops/api/playbook.py:161 ops/api/playbook.py:209 +#: ops/api/playbook.py:125 ops/api/playbook.py:171 ops/api/playbook.py:219 msgid "Invalid file path" msgstr "無効なファイルパス" -#: ops/api/playbook.py:187 +#: ops/api/playbook.py:197 msgid "This file can not be rename" msgstr "ファイル名を変更することはできません" -#: ops/api/playbook.py:206 +#: ops/api/playbook.py:216 msgid "File already exists" msgstr "ファイルは既に存在します。" -#: ops/api/playbook.py:224 +#: ops/api/playbook.py:234 msgid "File key is required" msgstr "ファイルキーこのフィールドは必須です" -#: ops/api/playbook.py:227 +#: ops/api/playbook.py:237 msgid "This file can not be delete" msgstr "このファイルを削除できません" @@ -5144,7 +5161,7 @@ msgstr "最後の実行" msgid "Execute after saving" msgstr "保存後に実行" -#: ops/serializers/job.py:52 terminal/serializers/session.py:47 +#: ops/serializers/job.py:52 terminal/serializers/session.py:49 msgid "Duration" msgstr "きかん" @@ -5152,7 +5169,7 @@ msgstr "きかん" msgid "Job type" msgstr "タスクの種類" -#: ops/serializers/job.py:75 terminal/serializers/session.py:56 +#: ops/serializers/job.py:75 terminal/serializers/session.py:58 msgid "Is finished" msgstr "終了しました" @@ -7380,11 +7397,11 @@ msgstr "認証に失敗しました (不明): {}" msgid "Authentication success: {}" msgstr "認証成功: {}" -#: settings/ws.py:199 +#: settings/ws.py:222 msgid "No LDAP user was found" msgstr "LDAPユーザーが取得されませんでした" -#: settings/ws.py:205 +#: settings/ws.py:228 msgid "Total {}, success {}, failure {}" msgstr "合計 {},成功 {},失敗 {}" @@ -7886,51 +7903,51 @@ msgstr "初期化" msgid "Applet host deployment" msgstr "アプリケーション配備" -#: terminal/models/component/endpoint.py:15 +#: terminal/models/component/endpoint.py:16 msgid "HTTPS port" msgstr "HTTPS ポート" -#: terminal/models/component/endpoint.py:16 +#: terminal/models/component/endpoint.py:17 msgid "HTTP port" msgstr "HTTP ポート" -#: terminal/models/component/endpoint.py:17 +#: terminal/models/component/endpoint.py:18 msgid "SSH port" msgstr "SSH ポート" -#: terminal/models/component/endpoint.py:18 +#: terminal/models/component/endpoint.py:19 msgid "RDP port" msgstr "RDP ポート" -#: terminal/models/component/endpoint.py:19 +#: terminal/models/component/endpoint.py:20 msgid "MySQL port" msgstr "MySQL ポート" -#: terminal/models/component/endpoint.py:20 +#: terminal/models/component/endpoint.py:21 msgid "MariaDB port" msgstr "MariaDB ポート" -#: terminal/models/component/endpoint.py:21 +#: terminal/models/component/endpoint.py:22 msgid "PostgreSQL port" msgstr "PostgreSQL ポート" -#: terminal/models/component/endpoint.py:22 +#: terminal/models/component/endpoint.py:23 msgid "Redis port" msgstr "Redis ポート" -#: terminal/models/component/endpoint.py:23 +#: terminal/models/component/endpoint.py:24 msgid "SQLServer port" msgstr "SQLServer ポート" -#: terminal/models/component/endpoint.py:30 -#: terminal/models/component/endpoint.py:117 -#: terminal/serializers/endpoint.py:73 terminal/serializers/storage.py:41 +#: terminal/models/component/endpoint.py:32 +#: terminal/models/component/endpoint.py:119 +#: terminal/serializers/endpoint.py:80 terminal/serializers/storage.py:41 #: terminal/serializers/storage.py:53 terminal/serializers/storage.py:83 #: terminal/serializers/storage.py:93 terminal/serializers/storage.py:101 msgid "Endpoint" msgstr "エンドポイント" -#: terminal/models/component/endpoint.py:123 +#: terminal/models/component/endpoint.py:125 msgid "Endpoint rule" msgstr "エンドポイントルール" @@ -8016,11 +8033,11 @@ msgstr "ログイン元" msgid "Replay" msgstr "リプレイ" -#: terminal/models/session/session.py:48 terminal/serializers/session.py:78 +#: terminal/models/session/session.py:48 terminal/serializers/session.py:112 msgid "Command amount" msgstr "コマンド量" -#: terminal/models/session/session.py:49 terminal/serializers/session.py:30 +#: terminal/models/session/session.py:49 terminal/serializers/session.py:32 msgid "Error reason" msgstr "間違った理由" @@ -8339,51 +8356,55 @@ msgstr "" "ウザのアクセス アドレスが使用されます (デフォルトのエンドポイントではホストの" "変更は許可されません)。" -#: terminal/serializers/endpoint.py:64 +#: terminal/serializers/endpoint.py:71 msgid "" "The assets within this IP range, the following endpoint will be used for the " "connection" msgstr "このIP範囲内のアセットは、以下のエンドポイントを使用して接続されます" -#: terminal/serializers/endpoint.py:65 +#: terminal/serializers/endpoint.py:72 msgid "" "If asset IP addresses under different endpoints conflict, use asset labels" msgstr "" "異なるエンドポイントの下に競合するアセットIPがある場合は、アセットタグを使用" "して実装します" -#: terminal/serializers/endpoint.py:69 +#: terminal/serializers/endpoint.py:76 msgid "Asset IP" msgstr "資産 IP" -#: terminal/serializers/session.py:25 terminal/serializers/session.py:53 +#: terminal/serializers/session.py:27 terminal/serializers/session.py:55 msgid "Can replay" msgstr "再生できます" -#: terminal/serializers/session.py:26 terminal/serializers/session.py:54 +#: terminal/serializers/session.py:28 terminal/serializers/session.py:56 msgid "Can join" msgstr "参加できます" -#: terminal/serializers/session.py:27 terminal/serializers/session.py:57 +#: terminal/serializers/session.py:29 terminal/serializers/session.py:59 msgid "Can terminate" msgstr "終了できます" -#: terminal/serializers/session.py:49 +#: terminal/serializers/session.py:51 msgid "User ID" msgstr "ユーザーID" -#: terminal/serializers/session.py:50 +#: terminal/serializers/session.py:52 msgid "Asset ID" msgstr "資産ID" -#: terminal/serializers/session.py:51 +#: terminal/serializers/session.py:53 msgid "Login from display" msgstr "表示からのログイン" -#: terminal/serializers/session.py:58 +#: terminal/serializers/session.py:60 msgid "Terminal display" msgstr "ターミナルディスプレイ" +#: terminal/serializers/session.py:103 +msgid "No asset or invalid asset" +msgstr "アセットが存在しないか、アセットがアクティブ化されていません" + #: terminal/serializers/storage.py:23 msgid "Endpoint invalid: remove path `{}`" msgstr "エンドポイントが無効: パス '{}' を削除" @@ -9277,7 +9298,7 @@ msgid "Force enabled" msgstr "強制有効" #: users/notifications.py:55 -#: users/templates/users/_msg_password_expire_reminder.html:17 +#: users/templates/users/_msg_password_expire_reminder.html:16 #: users/templates/users/reset_password.html:5 #: users/templates/users/reset_password.html:6 msgid "Reset password" @@ -9662,7 +9683,7 @@ msgstr "" msgid "Click here update password" msgstr "ここをクリック更新パスワード" -#: users/templates/users/_msg_password_expire_reminder.html:16 +#: users/templates/users/_msg_password_expire_reminder.html:15 msgid "If your password has expired, please click the link below to" msgstr "" "パスワードの有効期限が切れている場合は、以下のリンクをクリックしてください" @@ -10176,8 +10197,8 @@ msgstr "IPネットワークセグメントグループ" #: xpack/plugins/cloud/models.py:115 #: xpack/plugins/cloud/serializers/task.py:161 -msgid "Preferred IP type" -msgstr "優先 IP タイプ" +msgid "Sync IP type" +msgstr "同期IPタイプ" #: xpack/plugins/cloud/models.py:118 msgid "Always update" @@ -10616,7 +10637,8 @@ msgid "" " Execute this task when manually or scheduled cloud synchronization " "tasks are performed\n" " " -msgstr "\n" +msgstr "" +"\n" "手動で、定時にクラウド同期タスクを実行する時にこのタスクを実行します" #: xpack/plugins/cloud/tasks.py:52 @@ -10632,7 +10654,8 @@ msgid "" "clean up the execution \n" " records generated by cloud synchronization\n" " " -msgstr "\n" +msgstr "" +"\n" "毎日、システム設定-タスクリスト-定期的なクリーニング設定-クラウド同期記録設定" "に基づき、クラウド同期によって生成された実行記録をクリーニングします。" @@ -10705,3 +10728,6 @@ msgstr "エンタープライズプロフェッショナル版" #: xpack/plugins/license/models.py:86 msgid "Ultimate edition" msgstr "エンタープライズ・フラッグシップ・エディション" + +#~ msgid "Preferred IP type" +#~ msgstr "優先 IP タイプ" diff --git a/apps/i18n/core/zh/LC_MESSAGES/django.po b/apps/i18n/core/zh/LC_MESSAGES/django.po index e600fb48a..c9ac01ce3 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-10-08 11:41+0800\n" +"POT-Creation-Date: 2024-10-12 11:30+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n" "Last-Translator: ibuler <ibuler@qq.com>\n" "Language-Team: JumpServer team<ibuler@qq.com>\n" @@ -2400,11 +2400,10 @@ msgstr "" #: assets/serializers/asset/database.py:24 msgid "Postgresql ssl model help text" msgstr "" -"Prefer:我不关心加密,但如果服务器支持加密,我愿意支付加密的开销。Require:我" -"希望我的数据被加密,我接受开销。我相信网络将确保我始终连接到我想要的服务器。" -"Verify CA:我希望我的数据被加密,我接受开销。我想确保我连接到我信任的服务器。" -"Verify Full:我希望我的数据被加密,我接受开销。我想确保我连接到我信任的服务" -"器,并且它是我指定的服务器。" +"Prefer:我不关心加密,但如果服务器支持加密,我愿意支付加密的开销。\n" +"Require:我希望我的数据被加密,我接受开销。我相信网络将确保我始终连接到我想要的服务器。\n" +"Verify CA:我希望我的数据被加密,我接受开销。我想确保我连接到我信任的服务器。\n" +"Verify Full:我希望我的数据被加密,我接受开销。我想确保我连接到我信任的服务器,并且它是我指定的服务器。" #: assets/serializers/asset/gpt.py:20 msgid "" @@ -3815,7 +3814,7 @@ msgstr "你好" msgid "Your account has remote login behavior, please pay attention" msgstr "你的账号存在异地登录行为,请关注。" -#: authentication/templates/authentication/_msg_different_city.html:16 +#: authentication/templates/authentication/_msg_different_city.html:14 msgid "" "If you suspect that the login behavior is abnormal, please modify the " "account password in time." @@ -3839,13 +3838,13 @@ msgstr "请点击下面链接重置密码, 如果不是您申请的,请关 msgid "Click here reset password" msgstr "点击这里重置密码" -#: authentication/templates/authentication/_msg_reset_password.html:16 -#: users/templates/users/_msg_user_created.html:22 +#: authentication/templates/authentication/_msg_reset_password.html:15 +#: users/templates/users/_msg_user_created.html:20 msgid "This link is valid for 1 hour. After it expires" msgstr "这个链接有效期1小时, 超过时间您可以" -#: authentication/templates/authentication/_msg_reset_password.html:17 -#: users/templates/users/_msg_user_created.html:23 +#: authentication/templates/authentication/_msg_reset_password.html:16 +#: users/templates/users/_msg_user_created.html:21 msgid "request new one" msgstr "重新申请" @@ -3874,14 +3873,14 @@ msgstr "你的密码刚刚成功更新" msgid "Browser" msgstr "浏览器" -#: authentication/templates/authentication/_msg_rest_password_success.html:13 +#: authentication/templates/authentication/_msg_rest_password_success.html:12 msgid "" "If the password update was not initiated by you, your account may have " "security issues" msgstr "如果这次密码更新不是由你发起的,那么你的账号可能存在安全问题" -#: authentication/templates/authentication/_msg_rest_password_success.html:14 -#: authentication/templates/authentication/_msg_rest_public_key_success.html:14 +#: authentication/templates/authentication/_msg_rest_password_success.html:13 +#: authentication/templates/authentication/_msg_rest_public_key_success.html:13 msgid "If you have any questions, you can contact the administrator" msgstr "如果有疑问或需求,请联系系统管理员" @@ -3889,7 +3888,7 @@ msgstr "如果有疑问或需求,请联系系统管理员" msgid "Your public key has just been successfully updated" msgstr "你的公钥刚刚成功更新" -#: authentication/templates/authentication/_msg_rest_public_key_success.html:13 +#: authentication/templates/authentication/_msg_rest_public_key_success.html:12 msgid "" "If the public key update was not initiated by you, your account may have " "security issues" @@ -3962,7 +3961,7 @@ msgid "LAN" msgstr "局域网" #: authentication/views/base.py:71 -#: perms/templates/perms/_msg_permed_items_expire.html:21 +#: perms/templates/perms/_msg_permed_items_expire.html:20 msgid "If you have any question, please contact the administrator" msgstr "如果有疑问或需求,请联系系统管理员" @@ -7738,7 +7737,7 @@ msgstr "SQLServer 端口" #: terminal/models/component/endpoint.py:32 #: terminal/models/component/endpoint.py:119 -#: terminal/serializers/endpoint.py:73 terminal/serializers/storage.py:41 +#: terminal/serializers/endpoint.py:80 terminal/serializers/storage.py:41 #: terminal/serializers/storage.py:53 terminal/serializers/storage.py:83 #: terminal/serializers/storage.py:93 terminal/serializers/storage.py:101 msgid "Endpoint" @@ -8154,18 +8153,18 @@ msgstr "" "连接资产时访问的主机地址,如果为空则使用当前浏览器的访问地址 (默认端点不允许" "修改主机)" -#: terminal/serializers/endpoint.py:64 +#: terminal/serializers/endpoint.py:71 msgid "" "The assets within this IP range, the following endpoint will be used for the " "connection" msgstr "该 IP 范围内的资产,将使用下面的端点进行连接" -#: terminal/serializers/endpoint.py:65 +#: terminal/serializers/endpoint.py:72 msgid "" "If asset IP addresses under different endpoints conflict, use asset labels" msgstr "如果不同端点下的资产 IP 有冲突,使用资产标签实现" -#: terminal/serializers/endpoint.py:69 +#: terminal/serializers/endpoint.py:76 msgid "Asset IP" msgstr "资产 IP" @@ -9075,7 +9074,7 @@ msgid "Force enabled" msgstr "强制启用" #: users/notifications.py:55 -#: users/templates/users/_msg_password_expire_reminder.html:17 +#: users/templates/users/_msg_password_expire_reminder.html:16 #: users/templates/users/reset_password.html:5 #: users/templates/users/reset_password.html:6 msgid "Reset password" @@ -9438,7 +9437,7 @@ msgstr "为了您的账号安全,请点击下面的链接及时更新密码" msgid "Click here update password" msgstr "点击这里更新密码" -#: users/templates/users/_msg_password_expire_reminder.html:16 +#: users/templates/users/_msg_password_expire_reminder.html:15 msgid "If your password has expired, please click the link below to" msgstr "如果你的密码已过期,请点击" @@ -9940,7 +9939,7 @@ msgstr "IP网段组" #: xpack/plugins/cloud/models.py:115 #: xpack/plugins/cloud/serializers/task.py:161 msgid "Sync IP type" -msgstr "密文类型" +msgstr "同步 IP 类型" #: xpack/plugins/cloud/models.py:118 msgid "Always update" diff --git a/apps/i18n/core/zh_Hant/LC_MESSAGES/django.po b/apps/i18n/core/zh_Hant/LC_MESSAGES/django.po index 721e9c816..78b8aab8c 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-09-19 16:31+0800\n" +"POT-Creation-Date: 2024-10-12 11:30+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n" "Last-Translator: ibuler <ibuler@qq.com>\n" "Language-Team: JumpServer team<ibuler@qq.com>\n" @@ -119,6 +119,10 @@ msgstr "未找到待處理帳戶" msgid "Success: %s, Failed: %s, Total: %s" msgstr "成功: %s, 失敗: %s, 總數: %s" +#: accounts/automations/verify_gateway_account/manager.py:18 +msgid ">>> Start executing the task to test gateway account connectivity" +msgstr "" + #: accounts/const/account.py:6 #: accounts/serializers/automations/change_secret.py:34 #: audits/signal_handlers/login_log.py:34 authentication/confirm/password.py:9 @@ -353,7 +357,7 @@ msgstr "用戶 %s 查看/匯出 了密碼" #: audits/models.py:58 authentication/models/connection_token.py:36 #: perms/models/asset_permission.py:69 terminal/backends/command/models.py:17 #: terminal/models/session/session.py:32 terminal/notifications.py:155 -#: terminal/serializers/command.py:17 terminal/serializers/session.py:28 +#: terminal/serializers/command.py:17 terminal/serializers/session.py:30 #: terminal/templates/terminal/_msg_command_warning.html:4 #: terminal/templates/terminal/_msg_session_sharing.html:4 #: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:288 @@ -500,7 +504,7 @@ msgstr "原因" #: accounts/models/automations/backup_account.py:136 #: accounts/serializers/automations/change_secret.py:110 #: accounts/serializers/automations/change_secret.py:145 -#: ops/serializers/job.py:74 terminal/serializers/session.py:52 +#: ops/serializers/job.py:74 terminal/serializers/session.py:54 msgid "Is success" msgstr "是否成功" @@ -717,8 +721,8 @@ 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:12 -#: terminal/models/component/endpoint.py:109 +#: terminal/models/applet/applet.py:34 terminal/models/component/endpoint.py:13 +#: terminal/models/component/endpoint.py:111 #: terminal/models/component/storage.py:26 terminal/models/component/task.py:13 #: terminal/models/component/terminal.py:85 #: terminal/models/virtualapp/provider.py:10 @@ -880,7 +884,7 @@ msgstr "類別" #: 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:23 terminal/serializers/storage.py:281 +#: terminal/serializers/session.py:25 terminal/serializers/storage.py:281 #: terminal/serializers/storage.py:294 tickets/models/comment.py:26 #: tickets/models/flow.py:42 tickets/models/ticket/apply_application.py:16 #: tickets/models/ticket/general.py:276 tickets/serializers/flow.py:25 @@ -1040,11 +1044,12 @@ msgid "" "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" @@ -1065,8 +1070,8 @@ msgstr "關聯平台,可配置推送參數,如果不關聯,將使用默認 #: ops/models/job.py:158 ops/models/playbook.py:33 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:25 -#: terminal/models/component/endpoint.py:119 +#: terminal/models/component/endpoint.py:26 +#: terminal/models/component/endpoint.py:121 #: terminal/models/session/session.py:47 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 #: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91 @@ -1355,12 +1360,12 @@ msgid "Notify and warn" msgstr "提示並警告" #: acls/models/base.py:37 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:112 xpack/plugins/cloud/models.py:314 +#: terminal/models/component/endpoint.py:114 xpack/plugins/cloud/models.py:314 msgid "Priority" msgstr "優先度" #: acls/models/base.py:38 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:113 xpack/plugins/cloud/models.py:315 +#: terminal/models/component/endpoint.py:115 xpack/plugins/cloud/models.py:315 msgid "1-100, the lower the value will be match first" msgstr "優先度可選範圍為 1-100 (數值越小越優先)" @@ -1374,8 +1379,8 @@ msgstr "審批人" #: authentication/models/connection_token.py:53 #: 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:120 +#: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:27 +#: terminal/models/component/endpoint.py:122 #: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44 #: tickets/const.py:36 msgid "Active" @@ -1664,7 +1669,7 @@ msgid "Unable to connect to port {port} on {address}" msgstr "無法連接到 {port} 上的埠 {address}" #: assets/automations/ping_gateway/manager.py:58 -#: authentication/middleware.py:93 xpack/plugins/cloud/providers/fc.py:47 +#: authentication/middleware.py:94 xpack/plugins/cloud/providers/fc.py:47 msgid "Authentication failed" msgstr "認證失敗" @@ -1673,6 +1678,10 @@ msgstr "認證失敗" msgid "Connect failed" msgstr "連接失敗" +#: assets/automations/ping_gateway/manager.py:118 +msgid ">>> Start executing the task to test gateway connectivity" +msgstr ">>> 開始執行測試網關可連接性任務" + #: assets/const/automation.py:6 audits/const.py:6 audits/const.py:47 #: audits/signal_handlers/activity_log.py:62 common/utils/ip/geoip/utils.py:31 #: common/utils/ip/geoip/utils.py:37 common/utils/ip/utils.py:104 @@ -1714,7 +1723,7 @@ msgstr "腳本" #: assets/const/category.py:10 assets/models/asset/host.py:8 #: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:76 #: settings/serializers/feature.py:52 settings/serializers/msg.py:30 -#: terminal/models/component/endpoint.py:13 terminal/serializers/applet.py:17 +#: terminal/models/component/endpoint.py:14 terminal/serializers/applet.py:17 #: xpack/plugins/cloud/manager.py:83 #: xpack/plugins/cloud/serializers/account_attrs.py:72 msgid "Host" @@ -2393,11 +2402,10 @@ msgstr "" #: assets/serializers/asset/database.py:24 msgid "Postgresql ssl model help text" msgstr "" -"Prefer:我不在乎是否加密,但如果伺服器支持加密,我願意支付加密的費用。" -"Require:我希望我的資料被加密,我可以承擔那個費用。我相信網路將確保我始終連接" -"到我想要的伺服器。Verify CA:我希望我的資料被加密,我可以承擔那個費用。我想要" -"確認我連接到我信任的伺服器。Verify Full:我希望我的資料被加密,我接受負擔。我" -"想確保我連接到我信任的伺服器,並且它是我指定的伺服器。" +"Prefer:我不在乎是否加密,但如果伺服器支持加密,我願意支付加密的費用。\n" +"Require:我希望我的資料被加密,我可以承擔那個費用。我相信網路將確保我始終連接到我想要的伺服器。\n" +"Verify CA:我希望我的資料被加密,我可以承擔那個費用。我想要確認我連接到我信任的伺服器。\n" +"Verify Full:我希望我的資料被加密,我接受負擔。我想確保我連接到我信任的伺服器,並且它是我指定的伺服器。" #: assets/serializers/asset/gpt.py:20 msgid "" @@ -2803,8 +2811,8 @@ msgstr "結束" #: audits/const.py:46 settings/serializers/terminal.py:6 #: terminal/models/applet/host.py:26 terminal/models/component/terminal.py:174 -#: terminal/models/virtualapp/provider.py:14 terminal/serializers/session.py:55 -#: terminal/serializers/session.py:79 +#: terminal/models/virtualapp/provider.py:14 terminal/serializers/session.py:57 +#: terminal/serializers/session.py:113 msgid "Terminal" msgstr "終端" @@ -3176,6 +3184,7 @@ msgid "OpenID Error" msgstr "OpenID 錯誤" #: authentication/backends/oidc/views.py:175 +#: authentication/backends/saml2/views.py:282 msgid "Please check if a user with the same username or email already exists" msgstr "請檢查是否已經存在相同用戶名或電子郵箱的用戶" @@ -3205,6 +3214,10 @@ msgstr "最後使用日期" msgid "Credential ID" msgstr "憑證 ID" +#: authentication/backends/saml2/views.py:281 +msgid "SAML2 Error" +msgstr "SAML2 錯誤" + #: authentication/confirm/password.py:16 msgid "Authentication failed password incorrect" msgstr "認證失敗 (使用者名稱或密碼不正確)" @@ -3476,7 +3489,7 @@ msgstr "設置手機號碼啟用" msgid "Clear phone number to disable" msgstr "清空手機號碼禁用" -#: authentication/middleware.py:94 settings/utils/ldap.py:691 +#: authentication/middleware.py:95 settings/utils/ldap.py:691 msgid "Authentication failed (before login check failed): {}" msgstr "認證失敗 (登錄前檢查失敗): {}" @@ -3499,7 +3512,7 @@ msgid "Please change your password" msgstr "請修改密碼" #: authentication/models/access_key.py:22 -#: terminal/models/component/endpoint.py:110 +#: terminal/models/component/endpoint.py:112 msgid "IP group" msgstr "IPグループ" @@ -3521,7 +3534,7 @@ msgstr "自訂密碼" #: authentication/serializers/connect_token_secret.py:114 #: settings/serializers/msg.py:28 terminal/models/applet/applet.py:43 #: terminal/models/virtualapp/virtualapp.py:24 -#: terminal/serializers/session.py:21 terminal/serializers/session.py:48 +#: terminal/serializers/session.py:23 terminal/serializers/session.py:50 #: terminal/serializers/storage.py:71 msgid "Protocol" msgstr "協議" @@ -3568,6 +3581,7 @@ msgid "Connection token expired at: {}" msgstr "連接令牌過期: {}" #: authentication/models/connection_token.py:125 +#: terminal/serializers/session.py:95 msgid "No user or invalid user" msgstr "沒有用戶或用戶失效" @@ -3802,7 +3816,7 @@ msgstr "你好" msgid "Your account has remote login behavior, please pay attention" msgstr "你的帳號存在異地登入行為,請關注。" -#: authentication/templates/authentication/_msg_different_city.html:16 +#: authentication/templates/authentication/_msg_different_city.html:14 msgid "" "If you suspect that the login behavior is abnormal, please modify the " "account password in time." @@ -3826,13 +3840,13 @@ msgstr "請點擊下面連結重設密碼, 如果不是您申請的,請關 msgid "Click here reset password" msgstr "點擊這裡重設密碼" -#: authentication/templates/authentication/_msg_reset_password.html:16 -#: users/templates/users/_msg_user_created.html:22 +#: authentication/templates/authentication/_msg_reset_password.html:15 +#: users/templates/users/_msg_user_created.html:20 msgid "This link is valid for 1 hour. After it expires" msgstr "這個連結有效期1小時, 超過時間您可以" -#: authentication/templates/authentication/_msg_reset_password.html:17 -#: users/templates/users/_msg_user_created.html:23 +#: authentication/templates/authentication/_msg_reset_password.html:16 +#: users/templates/users/_msg_user_created.html:21 msgid "request new one" msgstr "重新申請" @@ -3861,14 +3875,14 @@ msgstr "你的密碼剛剛成功更新" msgid "Browser" msgstr "瀏覽器" -#: authentication/templates/authentication/_msg_rest_password_success.html:13 +#: authentication/templates/authentication/_msg_rest_password_success.html:12 msgid "" "If the password update was not initiated by you, your account may have " "security issues" msgstr "如果這次密碼更新不是由你發起的,那麼你的帳號可能存在安全問題" -#: authentication/templates/authentication/_msg_rest_password_success.html:14 -#: authentication/templates/authentication/_msg_rest_public_key_success.html:14 +#: authentication/templates/authentication/_msg_rest_password_success.html:13 +#: authentication/templates/authentication/_msg_rest_public_key_success.html:13 msgid "If you have any questions, you can contact the administrator" msgstr "如果有疑問或需求,請聯絡系統管理員" @@ -3876,7 +3890,7 @@ msgstr "如果有疑問或需求,請聯絡系統管理員" msgid "Your public key has just been successfully updated" msgstr "你的公鑰剛剛成功更新" -#: authentication/templates/authentication/_msg_rest_public_key_success.html:13 +#: authentication/templates/authentication/_msg_rest_public_key_success.html:12 msgid "" "If the public key update was not initiated by you, your account may have " "security issues" @@ -3949,7 +3963,7 @@ msgid "LAN" msgstr "區域網路" #: authentication/views/base.py:71 -#: perms/templates/perms/_msg_permed_items_expire.html:21 +#: perms/templates/perms/_msg_permed_items_expire.html:20 msgid "If you have any question, please contact the administrator" msgstr "如果有疑問或需求,請聯絡系統管理員" @@ -4192,7 +4206,8 @@ msgid "Invalid ids for ids, should be a list" msgstr "無效的ID,應為列表" #: common/db/fields.py:589 common/db/fields.py:594 -#: common/serializers/fields.py:144 tickets/serializers/ticket/common.py:58 +#: 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 @@ -4701,27 +4716,27 @@ msgstr "正在創建任務,無法中斷,請稍後重試。" msgid "Currently playbook is being used in a job" msgstr "當前 playbook 正在作業中使用" -#: ops/api/playbook.py:113 +#: ops/api/playbook.py:123 msgid "Unsupported file content" msgstr "不支持的文件內容" -#: ops/api/playbook.py:115 ops/api/playbook.py:161 ops/api/playbook.py:209 +#: ops/api/playbook.py:125 ops/api/playbook.py:171 ops/api/playbook.py:219 msgid "Invalid file path" msgstr "無效的文件路徑" -#: ops/api/playbook.py:187 +#: ops/api/playbook.py:197 msgid "This file can not be rename" msgstr "該文件不能重命名" -#: ops/api/playbook.py:206 +#: ops/api/playbook.py:216 msgid "File already exists" msgstr "文件已存在" -#: ops/api/playbook.py:224 +#: ops/api/playbook.py:234 msgid "File key is required" msgstr "文件金鑰該欄位是必填項。" -#: ops/api/playbook.py:227 +#: ops/api/playbook.py:237 msgid "This file can not be delete" msgstr "無法刪除此文件" @@ -5029,7 +5044,7 @@ msgstr "下次Action時間" msgid "Execute after saving" msgstr "儲存後Action" -#: ops/serializers/job.py:52 terminal/serializers/session.py:47 +#: ops/serializers/job.py:52 terminal/serializers/session.py:49 msgid "Duration" msgstr "時長" @@ -5037,7 +5052,7 @@ msgstr "時長" msgid "Job type" msgstr "任務類型" -#: ops/serializers/job.py:75 terminal/serializers/session.py:56 +#: ops/serializers/job.py:75 terminal/serializers/session.py:58 msgid "Is finished" msgstr "是否完成" @@ -7191,11 +7206,11 @@ msgstr "認證失敗: (未知): {}" msgid "Authentication success: {}" msgstr "認證成功: {}" -#: settings/ws.py:199 +#: settings/ws.py:222 msgid "No LDAP user was found" msgstr "沒有取得到 LDAP 用戶" -#: settings/ws.py:205 +#: settings/ws.py:228 msgid "Total {}, success {}, failure {}" msgstr "總共 {},成功 {},失敗 {}" @@ -7687,51 +7702,51 @@ msgstr "初始化" msgid "Applet host deployment" msgstr "應用部署" -#: terminal/models/component/endpoint.py:15 +#: terminal/models/component/endpoint.py:16 msgid "HTTPS port" msgstr "HTTPS 埠" -#: terminal/models/component/endpoint.py:16 +#: terminal/models/component/endpoint.py:17 msgid "HTTP port" msgstr "HTTP 埠" -#: terminal/models/component/endpoint.py:17 +#: terminal/models/component/endpoint.py:18 msgid "SSH port" msgstr "SSH 埠" -#: terminal/models/component/endpoint.py:18 +#: terminal/models/component/endpoint.py:19 msgid "RDP port" msgstr "RDP 埠" -#: terminal/models/component/endpoint.py:19 +#: terminal/models/component/endpoint.py:20 msgid "MySQL port" msgstr "MySQL 埠" -#: terminal/models/component/endpoint.py:20 +#: terminal/models/component/endpoint.py:21 msgid "MariaDB port" msgstr "MariaDB 埠" -#: terminal/models/component/endpoint.py:21 +#: terminal/models/component/endpoint.py:22 msgid "PostgreSQL port" msgstr "PostgreSQL 埠" -#: terminal/models/component/endpoint.py:22 +#: terminal/models/component/endpoint.py:23 msgid "Redis port" msgstr "Redis 埠" -#: terminal/models/component/endpoint.py:23 +#: terminal/models/component/endpoint.py:24 msgid "SQLServer port" msgstr "SQLServer 埠" -#: terminal/models/component/endpoint.py:30 -#: terminal/models/component/endpoint.py:117 -#: terminal/serializers/endpoint.py:73 terminal/serializers/storage.py:41 +#: terminal/models/component/endpoint.py:32 +#: terminal/models/component/endpoint.py:119 +#: terminal/serializers/endpoint.py:80 terminal/serializers/storage.py:41 #: terminal/serializers/storage.py:53 terminal/serializers/storage.py:83 #: terminal/serializers/storage.py:93 terminal/serializers/storage.py:101 msgid "Endpoint" msgstr "端點" -#: terminal/models/component/endpoint.py:123 +#: terminal/models/component/endpoint.py:125 msgid "Endpoint rule" msgstr "端點規則" @@ -7817,11 +7832,11 @@ msgstr "登錄來源" msgid "Replay" msgstr "重播" -#: terminal/models/session/session.py:48 terminal/serializers/session.py:78 +#: terminal/models/session/session.py:48 terminal/serializers/session.py:112 msgid "Command amount" msgstr "命令數量" -#: terminal/models/session/session.py:49 terminal/serializers/session.py:30 +#: terminal/models/session/session.py:49 terminal/serializers/session.py:32 msgid "Error reason" msgstr "錯誤原因" @@ -8135,49 +8150,53 @@ msgstr "" "連接資產時訪問的主機地址,如果為空則使用當前瀏覽器的訪問地址 (默認端點不允許" "修改主機)" -#: terminal/serializers/endpoint.py:64 +#: terminal/serializers/endpoint.py:71 msgid "" "The assets within this IP range, the following endpoint will be used for the " "connection" msgstr "該 IP 範圍內的資產,將使用下面的端點進行連接" -#: terminal/serializers/endpoint.py:65 +#: terminal/serializers/endpoint.py:72 msgid "" "If asset IP addresses under different endpoints conflict, use asset labels" msgstr "如果不同端點下的資產 IP 有衝突,使用資產標籤實現" -#: terminal/serializers/endpoint.py:69 +#: terminal/serializers/endpoint.py:76 msgid "Asset IP" msgstr "資產 IP" -#: terminal/serializers/session.py:25 terminal/serializers/session.py:53 +#: terminal/serializers/session.py:27 terminal/serializers/session.py:55 msgid "Can replay" msgstr "是否可重放" -#: terminal/serializers/session.py:26 terminal/serializers/session.py:54 +#: terminal/serializers/session.py:28 terminal/serializers/session.py:56 msgid "Can join" msgstr "是否可加入" -#: terminal/serializers/session.py:27 terminal/serializers/session.py:57 +#: terminal/serializers/session.py:29 terminal/serializers/session.py:59 msgid "Can terminate" msgstr "是否可中斷" -#: terminal/serializers/session.py:49 +#: terminal/serializers/session.py:51 msgid "User ID" msgstr "用戶 ID" -#: terminal/serializers/session.py:50 +#: terminal/serializers/session.py:52 msgid "Asset ID" msgstr "資產 ID" -#: terminal/serializers/session.py:51 +#: terminal/serializers/session.py:53 msgid "Login from display" msgstr "登錄來源名稱" -#: terminal/serializers/session.py:58 +#: terminal/serializers/session.py:60 msgid "Terminal display" msgstr "終端顯示" +#: terminal/serializers/session.py:103 +msgid "No asset or invalid asset" +msgstr "沒有資產或資產未激活" + #: terminal/serializers/storage.py:23 msgid "Endpoint invalid: remove path `{}`" msgstr "端點無效: 移除路徑 `{}`" @@ -9052,7 +9071,7 @@ msgid "Force enabled" msgstr "強制啟用" #: users/notifications.py:55 -#: users/templates/users/_msg_password_expire_reminder.html:17 +#: users/templates/users/_msg_password_expire_reminder.html:16 #: users/templates/users/reset_password.html:5 #: users/templates/users/reset_password.html:6 msgid "Reset password" @@ -9422,7 +9441,7 @@ msgstr "為了您的帳號安全,請點擊下面的連結及時更新密碼" msgid "Click here update password" msgstr "點擊這裡更新密碼" -#: users/templates/users/_msg_password_expire_reminder.html:16 +#: users/templates/users/_msg_password_expire_reminder.html:15 msgid "If your password has expired, please click the link below to" msgstr "如果你的密碼已過期,請點擊" @@ -9929,8 +9948,8 @@ msgstr "IP網段組" #: xpack/plugins/cloud/models.py:115 #: xpack/plugins/cloud/serializers/task.py:161 -msgid "Preferred IP type" -msgstr "首選 IP 類型" +msgid "Sync IP type" +msgstr "同步 IP 類型" #: xpack/plugins/cloud/models.py:118 msgid "Always update" @@ -10368,7 +10387,8 @@ msgid "" " Execute this task when manually or scheduled cloud synchronization " "tasks are performed\n" " " -msgstr "\n" +msgstr "" +"\n" "手動,定時執行雲同步任務時執行該任務" #: xpack/plugins/cloud/tasks.py:52 @@ -10384,7 +10404,8 @@ msgid "" "clean up the execution \n" " records generated by cloud synchronization\n" " " -msgstr "\n" +msgstr "" +"\n" "每天根據系統設置-任務列表-定期清理配置-雲同步記錄配置,對雲同步產生的執行記錄" "進行清理" @@ -10457,3 +10478,6 @@ msgstr "企業專業版" #: xpack/plugins/license/models.py:86 msgid "Ultimate edition" msgstr "企業旗艦版" + +#~ msgid "Preferred IP type" +#~ msgstr "首選 IP 類型" From b7362d3f51138b3525de27e4678ccd605bc7f6bf Mon Sep 17 00:00:00 2001 From: wangruidong <940853815@qq.com> Date: Sat, 12 Oct 2024 15:14:47 +0800 Subject: [PATCH 21/36] fix: adhoc execute alert msg --- apps/ops/ansible/runner.py | 5 +++-- apps/ops/models/job.py | 10 ++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/apps/ops/ansible/runner.py b/apps/ops/ansible/runner.py index 53ab5e89e..29ccf53f9 100644 --- a/apps/ops/ansible/runner.py +++ b/apps/ops/ansible/runner.py @@ -40,9 +40,10 @@ class AdHocRunner: def check_module(self): if self.module not in self.cmd_modules_choices: return - if self.module_args and self.module_args.split()[0] in settings.SECURITY_COMMAND_BLACKLIST: + command = self.module_args + if command and set(command.split()).intersection(set(settings.SECURITY_COMMAND_BLACKLIST)): raise CommandInBlackListException( - "Command is rejected by black list: {}".format(self.module_args.split()[0])) + "Command is rejected by black list: {}".format(self.module_args)) def set_local_connection(self): if self.job_module in self.need_local_connection_modules_choices: diff --git a/apps/ops/models/job.py b/apps/ops/models/job.py index 9b203fc05..6c1132f3e 100644 --- a/apps/ops/models/job.py +++ b/apps/ops/models/job.py @@ -481,6 +481,16 @@ class JobExecution(JMSOrgBaseModel): for acl in acls: if self.match_command_group(acl, asset): break + command = self.current_job.args + if command and set(command.split()).intersection(set(settings.SECURITY_COMMAND_BLACKLIST)): + CommandExecutionAlert({ + "assets": self.current_job.assets.all(), + "input": self.material, + "risk_level": RiskLevelChoices.reject, + "user": self.creator, + }).publish_async() + raise CommandInBlackListException( + "Command is rejected by black list: {}".format(self.current_job.args)) def check_danger_keywords(self): lines = self.job.playbook.check_dangerous_keywords() From 575b3a617ff2f66e01ce5d20463ecad71b65c3c5 Mon Sep 17 00:00:00 2001 From: Aaron3S <chenyang@fit2cloud.com> Date: Fri, 11 Oct 2024 19:06:23 +0800 Subject: [PATCH 22/36] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=20chen=20?= =?UTF-8?q?=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/i18n/chen/en.json | 5 ++++- apps/i18n/chen/zh.json | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/i18n/chen/en.json b/apps/i18n/chen/en.json index ba0347f7c..d962126f7 100644 --- a/apps/i18n/chen/en.json +++ b/apps/i18n/chen/en.json @@ -70,5 +70,8 @@ "initializingDatasourceFailedMessage": "Connection failed, please check if the database connection configuration is correct", "Warning": "Warning", "ExecutionCanceled": "Execution Canceled", - "CommandWarningDialogMessage": "The command you executed is risky and an alert notification will be sent to the administrator. Do you want to continue?" + "CommandWarningDialogMessage": "The command you executed is risky and an alert notification will be sent to the administrator. Do you want to continue?", + "PermissionExpiredDialogTitle": "Permission expired", + "PermissionExpiredDialogMessage": "Permission has expired, and the session will expire in ten minutes. Please contact the administrator promptly for renewal", + "PermissionAlreadyExpired": "Permission already expired" } \ No newline at end of file diff --git a/apps/i18n/chen/zh.json b/apps/i18n/chen/zh.json index 62ae1aaa6..9c7414978 100644 --- a/apps/i18n/chen/zh.json +++ b/apps/i18n/chen/zh.json @@ -70,5 +70,8 @@ "initializingDatasourceFailedMessage": "连接失败,请检查数据库连接配置是否正确", "Warning": "警告", "ExecutionCanceled": "执行已取消", - "CommandWarningDialogMessage": "您执行的命令存在风险,告警通知将发送给管理员。是否继续?" + "CommandWarningDialogMessage": "您执行的命令存在风险,告警通知将发送给管理员。是否继续?", + "PermissionExpiredDialogTitle": "授权已过期", + "PermissionExpiredDialogMessage": "授权已过期,会话将在十分钟后过期,请及时联系管理员续期", + "PermissionAlreadyExpired": "授权已过期" } \ No newline at end of file From f9cf2ea2e597232bf205d21d51932889c0176dbe Mon Sep 17 00:00:00 2001 From: Eric <xplzv@126.com> Date: Sat, 12 Oct 2024 14:59:03 +0800 Subject: [PATCH 23/36] perf: fix api error when deleting offline panda components --- apps/audits/signal_handlers/operate_log.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/audits/signal_handlers/operate_log.py b/apps/audits/signal_handlers/operate_log.py index 71f9b4f48..c6a8948ab 100644 --- a/apps/audits/signal_handlers/operate_log.py +++ b/apps/audits/signal_handlers/operate_log.py @@ -187,7 +187,7 @@ def on_django_start_set_operate_log_monitor_models(sender, **kwargs): 'PermedAsset', 'PermedAccount', 'MenuPermission', 'Permission', 'TicketSession', 'ApplyLoginTicket', 'ApplyCommandTicket', 'ApplyLoginAssetTicket', - 'FavoriteAsset', 'ChangeSecretRecord' + 'FavoriteAsset', 'ChangeSecretRecord', 'AppProvider', } include_models = {'UserSession'} for i, app in enumerate(apps.get_models(), 1): From 1c6ce422cfeb288e7487fb5977fa023ad956cb4e Mon Sep 17 00:00:00 2001 From: Eric <xplzv@126.com> Date: Sat, 12 Oct 2024 16:24:13 +0800 Subject: [PATCH 24/36] perf: update tinker v0.1.9 --- apps/terminal/automations/deploy_applet_host/playbook.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/terminal/automations/deploy_applet_host/playbook.yml b/apps/terminal/automations/deploy_applet_host/playbook.yml index a53e02225..d96039b5e 100644 --- a/apps/terminal/automations/deploy_applet_host/playbook.yml +++ b/apps/terminal/automations/deploy_applet_host/playbook.yml @@ -18,7 +18,7 @@ PYTHON_VERSION: 3.11.6 CHROME_VERSION: 118.0.5993.118 CHROME_DRIVER_VERSION: 118.0.5993.70 - TINKER_VERSION: v0.1.7 + TINKER_VERSION: v0.1.9 tasks: - block: From 7a528b499ae00e4e95ab319e899546c627d007ed Mon Sep 17 00:00:00 2001 From: wangruidong <940853815@qq.com> Date: Sat, 12 Oct 2024 18:50:59 +0800 Subject: [PATCH 25/36] perf: import data validate platform --- apps/assets/serializers/asset/common.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apps/assets/serializers/asset/common.py b/apps/assets/serializers/asset/common.py index 5f1cee9ab..0a15597e4 100644 --- a/apps/assets/serializers/asset/common.py +++ b/apps/assets/serializers/asset/common.py @@ -309,6 +309,13 @@ class AssetSerializer(BulkOrgResourceModelSerializer, ResourceLabelsMixin, Writa }) return protocols_data_map.values() + def validate_platform(self, platform_data): + if self.Meta.model.__name__.lower() != platform_data.category: + raise serializers.ValidationError({ + 'platform': f"platform is not match: {platform_data.name}" + }) + return platform_data + @staticmethod def update_account_su_from(accounts, include_su_from_accounts): if not include_su_from_accounts: From 31f8a193929a6a12b1158fd5eaed53f07805041d Mon Sep 17 00:00:00 2001 From: wangruidong <940853815@qq.com> Date: Mon, 14 Oct 2024 15:10:30 +0800 Subject: [PATCH 26/36] perf: Translate account history --- apps/accounts/models/account.py | 3 +- apps/assets/serializers/asset/common.py | 10 +++-- apps/audits/backends/db.py | 3 ++ apps/i18n/core/zh/LC_MESSAGES/django.po | 57 ++++++++++++++++--------- 4 files changed, 48 insertions(+), 25 deletions(-) diff --git a/apps/accounts/models/account.py b/apps/accounts/models/account.py index f99230670..38d37b3ad 100644 --- a/apps/accounts/models/account.py +++ b/apps/accounts/models/account.py @@ -53,7 +53,8 @@ class Account(AbsConnectivity, LabeledMixin, BaseAccount): on_delete=models.SET_NULL, verbose_name=_("Su from") ) version = models.IntegerField(default=0, verbose_name=_('Version')) - history = AccountHistoricalRecords(included_fields=['id', '_secret', 'secret_type', 'version']) + history = AccountHistoricalRecords(included_fields=['id', '_secret', 'secret_type', 'version'], + verbose_name=_("historical Account")) source = models.CharField(max_length=30, default=Source.LOCAL, verbose_name=_('Source')) source_id = models.CharField(max_length=128, null=True, blank=True, verbose_name=_('Source ID')) diff --git a/apps/assets/serializers/asset/common.py b/apps/assets/serializers/asset/common.py index 0a15597e4..04bdf6010 100644 --- a/apps/assets/serializers/asset/common.py +++ b/apps/assets/serializers/asset/common.py @@ -18,7 +18,7 @@ from common.serializers.fields import LabeledChoiceField from labels.models import Label from orgs.mixins.serializers import BulkOrgResourceModelSerializer from ...const import Category, AllTypes -from ...models import Asset, Node, Platform, Protocol +from ...models import Asset, Node, Platform, Protocol, Host, Device, Database, Cloud, Web, Custom __all__ = [ 'AssetSerializer', 'AssetSimpleSerializer', 'MiniAssetSerializer', @@ -310,9 +310,13 @@ class AssetSerializer(BulkOrgResourceModelSerializer, ResourceLabelsMixin, Writa return protocols_data_map.values() def validate_platform(self, platform_data): - if self.Meta.model.__name__.lower() != platform_data.category: + check_models = {Host, Device, Database, Cloud, Web, Custom} + if self.Meta.model not in check_models: + return platform_data + model_name = self.Meta.model.__name__.lower() + if model_name != platform_data.category: raise serializers.ValidationError({ - 'platform': f"platform is not match: {platform_data.name}" + 'platform': f"Platform does not match: {platform_data.name}" }) return platform_data diff --git a/apps/audits/backends/db.py b/apps/audits/backends/db.py index 44efdd82f..f95e51bf0 100644 --- a/apps/audits/backends/db.py +++ b/apps/audits/backends/db.py @@ -74,6 +74,9 @@ class OperateLogStore(object): @classmethod def convert_diff_friendly(cls, op_log): diff_list = list() + # 标记翻译字符串 + labels = _("labels") + operate_log_id = _("operate_log_id") handler = cls._get_special_handler(op_log.resource_type) for k, v in op_log.diff.items(): before_value, after_value = cls.split_value(v) diff --git a/apps/i18n/core/zh/LC_MESSAGES/django.po b/apps/i18n/core/zh/LC_MESSAGES/django.po index c9ac01ce3..4582d6875 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-10-12 11:30+0800\n" +"POT-Creation-Date: 2024-10-14 15:06+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n" "Last-Translator: ibuler <ibuler@qq.com>\n" "Language-Team: JumpServer team<ibuler@qq.com>\n" @@ -376,16 +376,20 @@ msgstr "切换自" msgid "Version" msgstr "版本" -#: accounts/models/account.py:57 accounts/serializers/account/account.py:228 +#: accounts/models/account.py:57 +msgid "historical Account" +msgstr "账号历史" + +#: accounts/models/account.py:58 accounts/serializers/account/account.py:228 #: users/models/user/__init__.py:119 msgid "Source" msgstr "来源" -#: accounts/models/account.py:58 +#: accounts/models/account.py:59 msgid "Source ID" msgstr "来源 ID" -#: accounts/models/account.py:61 +#: accounts/models/account.py:62 #: accounts/serializers/automations/change_secret.py:113 #: accounts/serializers/automations/change_secret.py:144 #: accounts/templates/accounts/change_secret_failed_info.html:12 @@ -403,27 +407,27 @@ msgstr "来源 ID" msgid "Account" msgstr "账号" -#: accounts/models/account.py:67 +#: accounts/models/account.py:68 msgid "Can view asset account secret" msgstr "可以查看资产账号密码" -#: accounts/models/account.py:68 +#: accounts/models/account.py:69 msgid "Can view asset history account" msgstr "可以查看资产历史账号" -#: accounts/models/account.py:69 +#: accounts/models/account.py:70 msgid "Can view asset history account secret" msgstr "可以查看资产历史账号密码" -#: accounts/models/account.py:70 +#: accounts/models/account.py:71 msgid "Can verify account" msgstr "可以验证账号" -#: accounts/models/account.py:71 +#: accounts/models/account.py:72 msgid "Can push account" msgstr "可以推送账号" -#: accounts/models/account.py:72 +#: accounts/models/account.py:73 msgid "Can remove account" msgstr "可以移除账号" @@ -934,7 +938,7 @@ msgstr "账号已存在" #: accounts/serializers/account/account.py:459 #: accounts/serializers/account/base.py:93 #: accounts/serializers/account/template.py:83 -#: assets/serializers/asset/common.py:407 +#: assets/serializers/asset/common.py:418 msgid "Spec info" msgstr "特殊信息" @@ -1392,7 +1396,7 @@ msgstr "用户" #: acls/models/base.py:98 assets/models/automations/base.py:17 #: assets/models/cmd_filter.py:38 assets/serializers/asset/common.py:148 -#: assets/serializers/asset/common.py:406 perms/serializers/permission.py:55 +#: assets/serializers/asset/common.py:417 perms/serializers/permission.py:55 #: perms/serializers/user_permission.py:75 rbac/tree.py:35 msgid "Accounts" msgstr "账号" @@ -1980,7 +1984,7 @@ msgstr "平台" msgid "Zone" msgstr "网域" -#: assets/models/asset/common.py:179 assets/serializers/asset/common.py:408 +#: assets/models/asset/common.py:179 assets/serializers/asset/common.py:419 #: assets/serializers/asset/host.py:11 msgid "Gathered info" msgstr "收集资产硬件信息" @@ -2163,7 +2167,7 @@ msgstr "我的资产" msgid "New node" msgstr "新节点" -#: assets/models/node.py:467 audits/backends/db.py:82 audits/backends/db.py:83 +#: assets/models/node.py:467 audits/backends/db.py:85 audits/backends/db.py:86 msgid "empty" msgstr "空" @@ -2367,7 +2371,7 @@ msgid "Node path" msgstr "节点路径" #: assets/serializers/asset/common.py:168 -#: assets/serializers/asset/common.py:409 +#: assets/serializers/asset/common.py:420 msgid "Auto info" msgstr "自动化信息" @@ -2383,7 +2387,7 @@ msgstr "端口超出范围 (0-65535)" msgid "Protocol is required: {}" msgstr "协议是必填的: {}" -#: assets/serializers/asset/common.py:336 +#: assets/serializers/asset/common.py:347 msgid "Invalid data" msgstr "无效的数据" @@ -2401,9 +2405,12 @@ msgstr "" 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 "" @@ -2719,7 +2726,15 @@ msgstr "日志审计" msgid "The text content is too long. Use Elasticsearch to store operation logs" msgstr "文字内容太长。请使用 Elasticsearch 存储操作日志" -#: audits/backends/db.py:108 +#: audits/backends/db.py:78 +msgid "labels" +msgstr "标签" + +#: audits/backends/db.py:79 +msgid "operate_log_id" +msgstr "操作日志ID" + +#: audits/backends/db.py:111 msgid "Tips" msgstr "提示" @@ -4989,7 +5004,7 @@ msgstr "Material" msgid "Material Type" msgstr "Material 类型" -#: ops/models/job.py:548 +#: ops/models/job.py:558 msgid "Job Execution" msgstr "作业执行" From aa78a03efa3ad52d183ba7810d122a31d1171940 Mon Sep 17 00:00:00 2001 From: feng <1304903146@qq.com> Date: Mon, 14 Oct 2024 16:05:38 +0800 Subject: [PATCH 27/36] perf: Translate --- apps/i18n/chen/en.json | 12 +- apps/i18n/chen/ja.json | 3 + apps/i18n/chen/zh.json | 12 +- apps/i18n/chen/zh_hant.json | 3 + apps/i18n/core/en/LC_MESSAGES/django.po | 62 +- apps/i18n/core/ja/LC_MESSAGES/django.po | 1433 +++++++----------- apps/i18n/core/zh_Hant/LC_MESSAGES/django.po | 984 +++++------- apps/i18n/koko/en.json | 12 +- apps/i18n/koko/zh.json | 12 +- apps/i18n/lina/en.json | 10 +- apps/i18n/lina/ja.json | 5 + apps/i18n/lina/zh.json | 10 +- apps/i18n/lina/zh_hant.json | 5 + apps/i18n/luna/en.json | 6 +- apps/i18n/luna/ja.json | 2 + apps/i18n/luna/zh.json | 6 +- apps/i18n/luna/zh_hant.json | 2 + 17 files changed, 1036 insertions(+), 1543 deletions(-) diff --git a/apps/i18n/chen/en.json b/apps/i18n/chen/en.json index d962126f7..3493e9c3e 100644 --- a/apps/i18n/chen/en.json +++ b/apps/i18n/chen/en.json @@ -9,6 +9,7 @@ "CommandReviewMessage": "The command you entered requires verification before it can be executed. Would you like to initiate a review request?", "CommandReviewRejectBy": "Command review request has been rejected by %s", "CommandReviewTimeoutError": "Command review request has timed out", + "CommandWarningDialogMessage": "The command you executed is risky and an alert notification will be sent to the administrator. Do you want to continue?", "Confirm": "Confirm", "ConnectError": "Error while fetching data", "ConnectSuccess": "Connected successfully", @@ -22,6 +23,7 @@ "ErrorMessage": "Error message", "ExecuteError": "Error while executing", "ExecuteSuccess": "Executed successfully", + "ExecutionCanceled": "Execution Canceled", "ExportALL": "Export all data", "ExportAll": "Export all", "ExportCurrent": "Export current page", @@ -42,6 +44,9 @@ "OverMaxSessionTimeError": "Since this session has been active for more than %d hours, it has been closed", "ParseError": "Error while parsing", "PasteNotAllowed": "You are not allowed to paste, please contact the administrator to open it!", + "PermissionAlreadyExpired": "Permission already expired", + "PermissionExpiredDialogMessage": "Permission has expired, and the session will expire in ten minutes. Please contact the administrator promptly for renewal", + "PermissionExpiredDialogTitle": "Permission expired", "PermissionsExpiredOn": "Permissions associated with this session expired on %s", "Properties": "Properties", "Refresh": "Refresh", @@ -67,11 +72,6 @@ "Version": "Version", "ViewData": "View data", "WaitCommandReviewMessage": "The review request has been initiated, please wait for the review results", - "initializingDatasourceFailedMessage": "Connection failed, please check if the database connection configuration is correct", "Warning": "Warning", - "ExecutionCanceled": "Execution Canceled", - "CommandWarningDialogMessage": "The command you executed is risky and an alert notification will be sent to the administrator. Do you want to continue?", - "PermissionExpiredDialogTitle": "Permission expired", - "PermissionExpiredDialogMessage": "Permission has expired, and the session will expire in ten minutes. Please contact the administrator promptly for renewal", - "PermissionAlreadyExpired": "Permission already expired" + "initializingDatasourceFailedMessage": "Connection failed, please check if the database connection configuration is correct" } \ No newline at end of file diff --git a/apps/i18n/chen/ja.json b/apps/i18n/chen/ja.json index b04aca68a..93e2e6f1c 100644 --- a/apps/i18n/chen/ja.json +++ b/apps/i18n/chen/ja.json @@ -44,6 +44,9 @@ "OverMaxSessionTimeError": "このセッションの時間が%d時間を超えたため、閉じられました", "ParseError": "解析に失敗しました", "PasteNotAllowed": "貼り付けは許可されていません。管理者に連絡して権限を開いてください!", + "PermissionAlreadyExpired": "権限が期限切れ", + "PermissionExpiredDialogMessage": "権限が期限切れで、セッションは10分後に期限切れになります。管理者に連絡し、期限を延長してください。", + "PermissionExpiredDialogTitle": "権限が期限切れ", "PermissionsExpiredOn": "このセッションに関連する権限は%sに期限切れです", "Properties": "プロパティ", "Refresh": "リフレッシュ", diff --git a/apps/i18n/chen/zh.json b/apps/i18n/chen/zh.json index 9c7414978..51e4047c1 100644 --- a/apps/i18n/chen/zh.json +++ b/apps/i18n/chen/zh.json @@ -9,6 +9,7 @@ "CommandReviewMessage": "您输入的命令需要复核后才可以执行, 是否发起复核请求?", "CommandReviewRejectBy": "命令复核被 %s 拒绝", "CommandReviewTimeoutError": "命令复核超时", + "CommandWarningDialogMessage": "您执行的命令存在风险,告警通知将发送给管理员。是否继续?", "Confirm": "确认", "ConnectError": "连接失败", "ConnectSuccess": "连接成功", @@ -22,6 +23,7 @@ "ErrorMessage": "错误消息", "ExecuteError": "执行失败", "ExecuteSuccess": "执行成功", + "ExecutionCanceled": "执行已取消", "ExportALL": "导出所有数据", "ExportAll": "导出全部", "ExportCurrent": "导出当前页面", @@ -42,6 +44,9 @@ "OverMaxSessionTimeError": "由于此会话时间大于 %d 小时,已经被关闭", "ParseError": "解析失败", "PasteNotAllowed": "不允许粘贴,请联系管理员开启权限!", + "PermissionAlreadyExpired": "授权已过期", + "PermissionExpiredDialogMessage": "授权已过期,会话将在十分钟后过期,请及时联系管理员续期", + "PermissionExpiredDialogTitle": "授权已过期", "PermissionsExpiredOn": "此会话关联的权限已于 %s 过期", "Properties": "属性", "Refresh": "刷新", @@ -67,11 +72,6 @@ "Version": "版本", "ViewData": "查看数据", "WaitCommandReviewMessage": "复核请求已发起, 请等待复核结果", - "initializingDatasourceFailedMessage": "连接失败,请检查数据库连接配置是否正确", "Warning": "警告", - "ExecutionCanceled": "执行已取消", - "CommandWarningDialogMessage": "您执行的命令存在风险,告警通知将发送给管理员。是否继续?", - "PermissionExpiredDialogTitle": "授权已过期", - "PermissionExpiredDialogMessage": "授权已过期,会话将在十分钟后过期,请及时联系管理员续期", - "PermissionAlreadyExpired": "授权已过期" + "initializingDatasourceFailedMessage": "连接失败,请检查数据库连接配置是否正确" } \ No newline at end of file diff --git a/apps/i18n/chen/zh_hant.json b/apps/i18n/chen/zh_hant.json index 253fb449b..bf042cb32 100644 --- a/apps/i18n/chen/zh_hant.json +++ b/apps/i18n/chen/zh_hant.json @@ -44,6 +44,9 @@ "OverMaxSessionTimeError": "由於此會話時間大於 %d 小時,已經被關閉", "ParseError": "解析失敗", "PasteNotAllowed": "不允許貼上,請聯絡管理員開啟權限!", + "PermissionAlreadyExpired": "授權已過期", + "PermissionExpiredDialogMessage": "授權已過期,對話將在十分鐘後過期,請及時聯繫管理員續期。", + "PermissionExpiredDialogTitle": "授權已過期", "PermissionsExpiredOn": "此會話關聯的權限已於 %s 過期", "Properties": "屬性", "Refresh": "刷新", diff --git a/apps/i18n/core/en/LC_MESSAGES/django.po b/apps/i18n/core/en/LC_MESSAGES/django.po index 1aaded933..d850b8f43 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-10-12 11:30+0800\n" +"POT-Creation-Date: 2024-10-14 15:58+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -377,16 +377,20 @@ msgstr "Switch from" msgid "Version" msgstr "" -#: accounts/models/account.py:57 accounts/serializers/account/account.py:228 +#: accounts/models/account.py:57 +msgid "historical Account" +msgstr "" + +#: accounts/models/account.py:58 accounts/serializers/account/account.py:228 #: users/models/user/__init__.py:119 msgid "Source" msgstr "" -#: accounts/models/account.py:58 +#: accounts/models/account.py:59 msgid "Source ID" msgstr "" -#: accounts/models/account.py:61 +#: accounts/models/account.py:62 #: accounts/serializers/automations/change_secret.py:113 #: accounts/serializers/automations/change_secret.py:144 #: accounts/templates/accounts/change_secret_failed_info.html:12 @@ -404,27 +408,27 @@ msgstr "" msgid "Account" msgstr "" -#: accounts/models/account.py:67 +#: accounts/models/account.py:68 msgid "Can view asset account secret" msgstr "" -#: accounts/models/account.py:68 +#: accounts/models/account.py:69 msgid "Can view asset history account" msgstr "" -#: accounts/models/account.py:69 +#: accounts/models/account.py:70 msgid "Can view asset history account secret" msgstr "" -#: accounts/models/account.py:70 +#: accounts/models/account.py:71 msgid "Can verify account" msgstr "" -#: accounts/models/account.py:71 +#: accounts/models/account.py:72 msgid "Can push account" msgstr "" -#: accounts/models/account.py:72 +#: accounts/models/account.py:73 msgid "Can remove account" msgstr "" @@ -926,7 +930,7 @@ msgstr "" #: accounts/serializers/account/account.py:459 #: accounts/serializers/account/base.py:93 #: accounts/serializers/account/template.py:83 -#: assets/serializers/asset/common.py:407 +#: assets/serializers/asset/common.py:418 msgid "Spec info" msgstr "" @@ -1366,7 +1370,7 @@ msgstr "" #: acls/models/base.py:98 assets/models/automations/base.py:17 #: assets/models/cmd_filter.py:38 assets/serializers/asset/common.py:148 -#: assets/serializers/asset/common.py:406 perms/serializers/permission.py:55 +#: assets/serializers/asset/common.py:417 perms/serializers/permission.py:55 #: perms/serializers/user_permission.py:75 rbac/tree.py:35 msgid "Accounts" msgstr "" @@ -1943,7 +1947,7 @@ msgstr "" msgid "Zone" msgstr "" -#: assets/models/asset/common.py:179 assets/serializers/asset/common.py:408 +#: assets/models/asset/common.py:179 assets/serializers/asset/common.py:419 #: assets/serializers/asset/host.py:11 msgid "Gathered info" msgstr "" @@ -2124,7 +2128,7 @@ msgstr "" msgid "New node" msgstr "" -#: assets/models/node.py:467 audits/backends/db.py:82 audits/backends/db.py:83 +#: assets/models/node.py:467 audits/backends/db.py:85 audits/backends/db.py:86 msgid "empty" msgstr "" @@ -2326,7 +2330,7 @@ msgid "Node path" msgstr "" #: assets/serializers/asset/common.py:168 -#: assets/serializers/asset/common.py:409 +#: assets/serializers/asset/common.py:420 msgid "Auto info" msgstr "" @@ -2342,7 +2346,7 @@ msgstr "" msgid "Protocol is required: {}" msgstr "" -#: assets/serializers/asset/common.py:336 +#: assets/serializers/asset/common.py:347 msgid "Invalid data" msgstr "" @@ -2362,12 +2366,12 @@ msgid "Postgresql ssl model help text" msgstr "" "Prefer: I don't care about encryption, but I wish to pay the overhead of " "encryption if the server supports it.\n" -"Require: I want my data to be encrypted, and I accept the overhead. I trust that the network will make " -"sure I always connect to the server I want.\n" -"Verify CA: I want my data encrypted, and I accept the overhead. I want to be sure that I connect to a " -"server that I trust.\n" -"Verify Full: I want my data encrypted, and I accept the " -"overhead. I want to be sure that I connect to a server I trust, and that it's the one I specify." +"Require: I want my data to be encrypted, and I accept the overhead. I trust " +"that the network will make sure I always connect to the server I want.\n" +"Verify CA: I want my data encrypted, and I accept the overhead. I want to be " +"sure that I connect to a server that I trust.\n" +"Verify Full: I want my data encrypted, and I accept the overhead. I want to " +"be sure that I connect to a server I trust, and that it's the one I specify." #: assets/serializers/asset/gpt.py:20 msgid "" @@ -2676,7 +2680,15 @@ msgstr "Activities" msgid "The text content is too long. Use Elasticsearch to store operation logs" msgstr "" -#: audits/backends/db.py:108 +#: audits/backends/db.py:78 +msgid "labels" +msgstr "Labels" + +#: audits/backends/db.py:79 +msgid "operate_log_id" +msgstr "" + +#: audits/backends/db.py:111 msgid "Tips" msgstr "" @@ -4526,7 +4538,7 @@ msgstr "" #: labels/apps.py:8 msgid "App Labels" -msgstr "Labels" +msgstr "App labels" #: labels/models.py:15 msgid "Color" @@ -4925,7 +4937,7 @@ msgstr "" msgid "Material Type" msgstr "" -#: ops/models/job.py:548 +#: ops/models/job.py:558 msgid "Job Execution" msgstr "" diff --git a/apps/i18n/core/ja/LC_MESSAGES/django.po b/apps/i18n/core/ja/LC_MESSAGES/django.po index 99f3a11ff..62e9455d2 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-10-12 11:30+0800\n" +"POT-Creation-Date: 2024-10-14 15:58+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -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 "スキップ" @@ -377,16 +378,20 @@ msgstr "から切り替え" msgid "Version" msgstr "バージョン" -#: accounts/models/account.py:57 accounts/serializers/account/account.py:228 +#: accounts/models/account.py:57 +msgid "historical Account" +msgstr "アカウントの歴史" + +#: accounts/models/account.py:58 accounts/serializers/account/account.py:228 #: users/models/user/__init__.py:119 msgid "Source" msgstr "ソース" -#: accounts/models/account.py:58 +#: accounts/models/account.py:59 msgid "Source ID" msgstr "ソース ID" -#: accounts/models/account.py:61 +#: accounts/models/account.py:62 #: accounts/serializers/automations/change_secret.py:113 #: accounts/serializers/automations/change_secret.py:144 #: accounts/templates/accounts/change_secret_failed_info.html:12 @@ -395,8 +400,8 @@ msgstr "ソース ID" #: assets/serializers/gateway.py:33 audits/models.py:59 #: authentication/api/connection_token.py:411 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:34 -#: terminal/serializers/command.py:72 +#: terminal/backends/command/models.py:18 +#: terminal/models/session/session.py:34 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 @@ -404,27 +409,27 @@ msgstr "ソース ID" msgid "Account" msgstr "アカウント" -#: accounts/models/account.py:67 +#: accounts/models/account.py:68 msgid "Can view asset account secret" msgstr "資産アカウントの秘密を表示できます" -#: accounts/models/account.py:68 +#: accounts/models/account.py:69 msgid "Can view asset history account" msgstr "資産履歴アカウントを表示できます" -#: accounts/models/account.py:69 +#: accounts/models/account.py:70 msgid "Can view asset history account secret" msgstr "資産履歴アカウントパスワードを表示できます" -#: accounts/models/account.py:70 +#: accounts/models/account.py:71 msgid "Can verify account" msgstr "アカウントを確認できます" -#: accounts/models/account.py:71 +#: accounts/models/account.py:72 msgid "Can push account" msgstr "アカウントをプッシュできます" -#: accounts/models/account.py:72 +#: accounts/models/account.py:73 msgid "Can remove account" msgstr "アカウントを削除できます" @@ -720,9 +725,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:111 -#: 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 @@ -783,8 +790,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" @@ -794,9 +800,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" @@ -806,9 +810,7 @@ msgstr "アカウントバックアップルートタスクの結果の通知" msgid "" "{} - The account backup passage task has been completed. See the attachment " "for details" -msgstr "" -"{} -アカウントバックアップの通過タスクが完了しました。詳細は添付ファイルをご" -"覧ください" +msgstr "{} -アカウントバックアップの通過タスクが完了しました。詳細は添付ファイルをご覧ください" #: accounts/notifications.py:25 msgid "" @@ -816,9 +818,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" @@ -836,8 +837,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" @@ -880,9 +880,9 @@ msgstr "カテゴリ" #: assets/serializers/asset/common.py:146 assets/serializers/platform.py:159 #: assets/serializers/platform.py:171 audits/serializers.py:53 #: audits/serializers.py:170 -#: authentication/serializers/connect_token_secret.py:126 ops/models/job.py:150 -#: 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:150 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 @@ -936,7 +936,7 @@ msgstr "アカウントはすでに存在しています" #: accounts/serializers/account/account.py:459 #: accounts/serializers/account/base.py:93 #: accounts/serializers/account/template.py:83 -#: assets/serializers/asset/common.py:407 +#: assets/serializers/asset/common.py:418 msgid "Spec info" msgstr "特別情報" @@ -950,9 +950,10 @@ msgstr "ID" #: accounts/serializers/account/account.py:475 acls/serializers/base.py:116 #: 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:171 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:171 +#: 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 @@ -1002,8 +1003,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" @@ -1036,21 +1036,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" @@ -1067,11 +1063,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:158 ops/models/playbook.py:33 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:26 +#: assets/models/cmd_filter.py:88 common/db/models.py:36 +#: ops/models/adhoc.py:25 ops/models/job.py:158 ops/models/playbook.py:33 +#: 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:26 #: terminal/models/component/endpoint.py:121 #: terminal/models/session/session.py:47 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 @@ -1086,14 +1082,13 @@ msgid "" "asset secret > Login secret > Manual input. <br/ >For security, please set " "config CACHE_LOGIN_PASSWORD_ENABLED to true" msgstr "" -"現在、AD/LDAPからのログインのみをサポートしています。シークレットの優先順位: " -"資産シークレット内の同じアカウント > ログインシークレット > 手動入力. <br/> " -"セキュリティのために、「config CACHE_LOGIN_PASSWORD_ENABLED」をtrueに設定して" -"ください。 " +"現在、AD/LDAPからのログインのみをサポートしています。シークレットの優先順位: 資産シークレット内の同じアカウント > ログインシークレット > " +"手動入力. <br/> セキュリティのために、「config CACHE_LOGIN_PASSWORD_ENABLED」をtrueに設定してください。 " #: accounts/serializers/automations/base.py:23 #: assets/models/asset/common.py:176 assets/serializers/asset/common.py:172 -#: assets/serializers/automations/base.py:21 perms/serializers/permission.py:47 +#: assets/serializers/automations/base.py:21 +#: perms/serializers/permission.py:47 msgid "Nodes" msgstr "ノード" @@ -1123,8 +1118,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:84 msgid "* Please enter the correct password length" @@ -1160,16 +1154,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" @@ -1185,30 +1174,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" @@ -1216,9 +1193,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 @@ -1237,18 +1212,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" @@ -1256,18 +1226,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." @@ -1279,12 +1244,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:32 msgid "Sync secret to vault" @@ -1294,9 +1256,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" @@ -1306,9 +1266,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" @@ -1339,16 +1297,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" @@ -1403,7 +1358,8 @@ msgstr "レビュー担当者" #: authentication/models/connection_token.py:53 #: 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:27 +#: perms/models/asset_permission.py:82 +#: terminal/models/component/endpoint.py:27 #: terminal/models/component/endpoint.py:122 #: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44 #: tickets/const.py:36 @@ -1418,7 +1374,7 @@ msgstr "ユーザー" #: acls/models/base.py:98 assets/models/automations/base.py:17 #: assets/models/cmd_filter.py:38 assets/serializers/asset/common.py:148 -#: assets/serializers/asset/common.py:406 perms/serializers/permission.py:55 +#: assets/serializers/asset/common.py:417 perms/serializers/permission.py:55 #: perms/serializers/user_permission.py:75 rbac/tree.py:35 msgid "Accounts" msgstr "アカウント" @@ -1518,9 +1474,9 @@ 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" @@ -1548,8 +1504,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 @@ -1589,9 +1545,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 @@ -1620,9 +1574,7 @@ msgstr "ユーザーエージェント" #: assets/api/asset/asset.py:190 msgid "Cannot create asset directly, you should create a host or other" -msgstr "" -"資産を直接作成することはできません。ホストまたはその他を作成する必要がありま" -"す" +msgstr "資産を直接作成することはできません。ホストまたはその他を作成する必要があります" #: assets/api/asset/asset.py:194 msgid "The number of assets exceeds the limit of 5000" @@ -1707,10 +1659,8 @@ msgid "Connect failed" msgstr "接続に失敗しました" #: assets/automations/ping_gateway/manager.py:118 -#, fuzzy -#| msgid ">>> Start executing tasks" msgid ">>> Start executing the task to test gateway connectivity" -msgstr ">>> タスクの実行を開始" +msgstr ">>> テストゲートウェイ接続性タスクの実行を開始する" #: assets/const/automation.py:6 audits/const.py:6 audits/const.py:47 #: audits/signal_handlers/activity_log.py:62 common/utils/ip/geoip/utils.py:31 @@ -1826,9 +1776,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" @@ -1841,9 +1790,7 @@ msgid "" "account username <br>- ${HOME} The home directory of the connected account " "<br>- ${USER} The username of the user" msgstr "" -"SFTPルートディレクトリ、サポート変数:<br>-${ACCOUNT}接続されたアカウントの" -"ユーザー名<br>-${HOME}接続されたアカウントのホームディレクトリ<br>-${USER}" -"ユーザーのユーザー名" +"SFTPルートディレクトリ、サポート変数:<br>-${ACCOUNT}接続されたアカウントのユーザー名<br>-${HOME}接続されたアカウントのホームディレクトリ<br>-${USER}ユーザーのユーザー名" #: assets/const/protocol.py:81 msgid "Console" @@ -1864,20 +1811,17 @@ msgstr "セキュリティ" #: assets/const/protocol.py:89 msgid "" -"Security layer to use for the connection:<br>Any<br>Automatically select the " -"security mode based on the security protocols supported by both the client " +"Security layer to use for the connection:<br>Any<br>Automatically select the" +" security mode based on the security protocols supported by both the client " "and the server<br>RDP<br>Legacy RDP encryption. This mode is generally only " "used for older Windows servers or in cases where a standard Windows login " "screen is desired<br>TLS<br>RDP authentication and encryption implemented " "via TLS.<br>NLA<br>This mode uses TLS encryption and requires the username " "and password to be given in advance" msgstr "" -"接続のセキュリティ層:<br>Any<br>クライアントとサーバーの両方でサポートされて" -"いるセキュリティプロトコルに基づいて、セキュリティモードを自動的に選択します" -"<br>RDP<br>レガシーRDP暗号化。このモードは、通常、古い Windowsサーバーや標準" -"のWindowsログイン画面が必要な場合に使用されます<br>TLS<br>TLSによって実装され" -"たRDP認証と暗号化<br>NLA<br>このモードはTLS暗号化を使用し、事前にユーザー名と" -"パスワードを提供する必要があります<br>" +"接続のセキュリティ層:<br>Any<br>クライアントとサーバーの両方でサポートされているセキュリティプロトコルに基づいて、セキュリティモードを自動的に選択します<br>RDP<br>レガシーRDP暗号化。このモードは、通常、古い" +" " +"Windowsサーバーや標準のWindowsログイン画面が必要な場合に使用されます<br>TLS<br>TLSによって実装されたRDP認証と暗号化<br>NLA<br>このモードはTLS暗号化を使用し、事前にユーザー名とパスワードを提供する必要があります<br>" #: assets/const/protocol.py:106 msgid "AD domain" @@ -1953,9 +1897,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 @@ -2017,7 +1959,7 @@ msgstr "プラットフォーム" msgid "Zone" msgstr "ゾーン" -#: assets/models/asset/common.py:179 assets/serializers/asset/common.py:408 +#: assets/models/asset/common.py:179 assets/serializers/asset/common.py:419 #: assets/serializers/asset/host.py:11 msgid "Gathered info" msgstr "資産ハードウェア情報の収集" @@ -2198,7 +2140,7 @@ msgstr "私の資産" msgid "New node" msgstr "新しいノード" -#: assets/models/node.py:467 audits/backends/db.py:82 audits/backends/db.py:83 +#: assets/models/node.py:467 audits/backends/db.py:85 audits/backends/db.py:86 msgid "empty" msgstr "空" @@ -2363,9 +2305,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\"]" @@ -2379,17 +2319,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 @@ -2406,7 +2342,7 @@ msgid "Node path" msgstr "ノードパスです" #: assets/serializers/asset/common.py:168 -#: assets/serializers/asset/common.py:409 +#: assets/serializers/asset/common.py:420 msgid "Auto info" msgstr "自動情報" @@ -2422,7 +2358,7 @@ msgstr "ポート番号が範囲外です (0-65535)" msgid "Protocol is required: {}" msgstr "プロトコルが必要です: {}" -#: assets/serializers/asset/common.py:336 +#: assets/serializers/asset/common.py:347 msgid "Invalid data" msgstr "無効なデータ" @@ -2433,27 +2369,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" +"Require:私のデータを暗号化してほしい、そのコストを受け入れます。私はネットワークが私が接続したいサーバーに常に接続できるように保証してくれると信じています。\n" "Verify CA:私はデータが暗号化され、コストを受け入れます。私が信頼するサーバーに接続されていることを確認したい。\n" -"Verify Full:私はデータが暗号化され、コストを受け入れます。私が信頼するサーバーに接続されていること、そしてそれが私が指定したサーバーである" -"ことを確認したい" +"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" @@ -2525,9 +2457,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 @@ -2598,9 +2528,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." @@ -2610,14 +2538,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" @@ -2637,9 +2562,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" @@ -2675,12 +2599,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: " @@ -2696,21 +2617,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" @@ -2718,12 +2634,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" @@ -2733,9 +2646,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 " @@ -2748,11 +2659,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: {}" @@ -2775,10 +2684,19 @@ 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:108 +#: audits/backends/db.py:78 +msgid "labels" +msgstr "タグ" + +#: audits/backends/db.py:79 +msgid "operate_log_id" +msgstr "操作ログID" + +#: audits/backends/db.py:111 msgid "Tips" msgstr "謎々" @@ -2868,8 +2786,8 @@ msgstr "終了" #: audits/const.py:46 settings/serializers/terminal.py:6 #: terminal/models/applet/host.py:26 terminal/models/component/terminal.py:174 -#: 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 "ターミナル" @@ -2908,7 +2826,8 @@ msgid "Job audit log" msgstr "ジョブ監査ログ" #: audits/models.py:56 audits/models.py:100 audits/models.py:175 -#: terminal/models/session/session.py:39 terminal/models/session/sharing.py:113 +#: terminal/models/session/session.py:39 +#: terminal/models/session/sharing.py:113 msgid "Remote addr" msgstr "リモートaddr" @@ -3121,18 +3040,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" @@ -3140,12 +3054,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" @@ -3162,9 +3074,7 @@ msgstr "この操作には、MFAを検証する必要があります" #: authentication/api/connection_token.py:265 msgid "Reusable connection token is not allowed, global setting not enabled" -msgstr "" -"再使用可能な接続トークンの使用は許可されていません。グローバル設定は有効に" -"なっていません" +msgstr "再使用可能な接続トークンの使用は許可されていません。グローバル設定は有効になっていません" #: authentication/api/connection_token.py:379 msgid "Anonymous account is not supported for this asset" @@ -3203,9 +3113,7 @@ msgstr "ユーザーにマッチしなかった" msgid "" "The user is from {}, please go to the corresponding system to change the " "password" -msgstr "" -"ユーザーは {}からです。対応するシステムにアクセスしてパスワードを変更してくだ" -"さい。" +msgstr "ユーザーは {}からです。対応するシステムにアクセスしてパスワードを変更してください。" #: authentication/api/password.py:65 #: authentication/templates/authentication/login.html:393 @@ -3236,8 +3144,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." @@ -3250,9 +3157,7 @@ msgstr "OpenID エラー" #: authentication/backends/oidc/views.py:175 #: authentication/backends/saml2/views.py:282 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" @@ -3272,7 +3177,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 "最後に使用した日付" @@ -3351,34 +3257,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" @@ -3465,8 +3364,7 @@ msgstr "ログインする前にパスワードを変更する必要がありま #: authentication/errors/redirect.py:101 authentication/mixins.py:344 msgid "Your password has expired, please reset before logging in" -msgstr "" -"パスワードの有効期限が切れました。ログインする前にリセットしてください。" +msgstr "パスワードの有効期限が切れました。ログインする前にリセットしてください。" #: authentication/forms.py:34 msgid "Auto-login" @@ -3507,8 +3405,7 @@ msgstr "カスタム MFA 検証コード" #: authentication/mfa/custom.py:56 msgid "MFA custom global enabled, cannot disable" -msgstr "" -"カスタム MFA はグローバルに有効になっており、無効にすることはできません" +msgstr "カスタム MFA はグローバルに有効になっており、無効にすることはできません" #: authentication/mfa/otp.py:7 msgid "OTP code invalid, or server time error" @@ -3575,9 +3472,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" @@ -3791,11 +3686,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:161 #: users/serializers/profile.py:133 users/serializers/profile.py:160 @@ -3818,11 +3711,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" @@ -3900,9 +3791,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" @@ -3916,9 +3805,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" @@ -3963,9 +3850,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 @@ -3980,9 +3865,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 @@ -3993,9 +3876,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" @@ -4041,9 +3922,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 ?" @@ -4172,11 +4051,9 @@ 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:118 msgid "Slack Error" @@ -4282,13 +4159,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\"" @@ -4375,9 +4251,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 {}" @@ -4394,9 +4268,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" @@ -4406,15 +4278,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\", ...]" @@ -4424,9 +4292,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 @@ -4469,9 +4335,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" @@ -4595,14 +4459,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" @@ -4612,9 +4472,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" @@ -4635,12 +4493,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" @@ -4681,16 +4536,13 @@ msgid "" "configure nginx for url distribution,</div> </div>If you see this page, " "prove that you are not accessing the nginx listening port. Good luck.</div>" msgstr "" -"<div> Lunaは個別にデプロイされたプログラムです。Luna、kokoをデプロイする必要" -"があります。urlディストリビューションにnginxを設定します。</div> </div> この" -"ページが表示されている場合は、nginxリスニングポートにアクセスしていないことを" -"証明してください。頑張ってください。</div>" +"<div> " +"Lunaは個別にデプロイされたプログラムです。Luna、kokoをデプロイする必要があります。urlディストリビューションにnginxを設定します。</div>" +" </div> このページが表示されている場合は、nginxリスニングポートにアクセスしていないことを証明してください。頑張ってください。</div>" #: 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 "" @@ -4698,10 +4550,8 @@ msgid "" "configure nginx for url distribution,</div> </div>If you see this page, " "prove that you are not accessing the nginx listening port. Good luck.</div>" msgstr "" -"<div> Kokoは個別にデプロイされているプログラムです。Kokoをデプロイする必要が" -"あります。URL配布用にnginxを設定します。</div> </div> このページが表示されて" -"いる場合は、nginxリスニングポートにアクセスしていないことを証明してください。" -"頑張ってください。</div>" +"<div> Kokoは個別にデプロイされているプログラムです。Kokoをデプロイする必要があります。URL配布用にnginxを設定します。</div> " +"</div> このページが表示されている場合は、nginxリスニングポートにアクセスしていないことを証明してください。頑張ってください。</div>" #: labels/apps.py:8 msgid "App Labels" @@ -4765,8 +4615,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 "システムの警告やチケットなどを送信するためには、このタスクを実行します" @@ -4799,15 +4648,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:84 #, 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:85 #, python-brace-format @@ -4822,9 +4668,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:244 msgid "" @@ -4982,12 +4826,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 "含む" @@ -5020,9 +4866,10 @@ msgstr "モジュール" msgid "Args" msgstr "アルグ" -#: ops/models/adhoc.py:26 ops/models/playbook.py:36 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:36 +#: 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 "スコープ" @@ -5109,7 +4956,7 @@ msgstr "Material" msgid "Material Type" msgstr "Material を選択してオプションを設定します。" -#: ops/models/job.py:548 +#: ops/models/job.py:558 msgid "Job Execution" msgstr "ジョブ実行" @@ -5189,9 +5036,7 @@ msgstr "Ansible タスクを実行する" msgid "" "Execute scheduled adhoc and playbooks, periodically invoking the task for " "execution" -msgstr "" -"タイムスケジュールのショートカットコマンドやplaybookを実行するときは、このタ" -"スクを呼び出します" +msgstr "タイムスケジュールのショートカットコマンドやplaybookを実行するときは、このタスクを呼び出します" #: ops/tasks.py:82 msgid "Run ansible task execution" @@ -5199,9 +5044,7 @@ msgstr "Ansible タスクの実行を開始する" #: ops/tasks.py:85 msgid "Execute the task when manually adhoc or playbooks" -msgstr "" -"手動でショートカットコマンドやplaybookを実行するときは、このタスクを実行しま" -"す" +msgstr "手動でショートカットコマンドやplaybookを実行するときは、このタスクを実行します" #: ops/tasks.py:99 msgid "Clear celery periodic tasks" @@ -5217,15 +5060,11 @@ msgstr "定期的なタスクの作成または更新" #: ops/tasks.py:127 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:140 msgid "Periodic check service performance" @@ -5233,13 +5072,10 @@ msgstr "サービスのパフォーマンスを定期的に確認する" #: ops/tasks.py:142 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:152 msgid "Clean up unexpected jobs" @@ -5247,17 +5083,12 @@ msgstr "例外ジョブのクリーンアップ" #: ops/tasks.py:154 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:167 msgid "Clean job_execution db record" @@ -5265,18 +5096,13 @@ msgstr "ジョブセンター実行履歴のクリーンアップ" #: ops/tasks.py:169 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" @@ -5326,8 +5152,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" @@ -5346,7 +5171,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 "組織" @@ -5510,8 +5336,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\"]" @@ -5531,19 +5357,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" @@ -5551,16 +5370,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 @@ -5679,8 +5494,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" @@ -5811,9 +5625,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" @@ -5970,9 +5782,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" @@ -5991,24 +5801,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サーバー" @@ -6033,9 +5840,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 @@ -6047,8 +5856,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" @@ -6058,9 +5866,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" @@ -6071,16 +5877,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" @@ -6091,8 +5896,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" @@ -6102,51 +5906,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 キャッシュの有効期限 (秒)" @@ -6157,11 +5969,11 @@ msgid "" "cache<br>If the user OU structure has been adjusted, click Submit to clear " "the user DN cache" msgstr "" -"ユーザーがログイン認証時にクエリした User DN をキャッシュすると、ユーザー認証" -"の速度を効果的に改善できます。<br>ユーザーの OU 構造が調整された場合は、提出" -"をクリックしてユーザーの DN キャッシュをクリアできます。" +"ユーザーがログイン認証時にクエリした User DN をキャッシュすると、ユーザー認証の速度を効果的に改善できます。<br>ユーザーの 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 "ページサイズを検索 (じょう)" @@ -6177,13 +5989,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<br>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<br>If" +" the user OU structure has been adjusted, click Submit to clear the user DN " "cache" msgstr "" -"ユーザーがログイン認証時にクエリされた User DN をキャッシュすることで、ユー" -"ザー認証の速度を効果的に向上させることができます<br>ユーザーの OU 構造が調整" -"された場合は、送信をクリックして User DN のキャッシュをクリアできます" +"ユーザーがログイン認証時にクエリされた User DN をキャッシュすることで、ユーザー認証の速度を効果的に向上させることができます<br>ユーザーの " +"OU 構造が調整された場合は、送信をクリックして User DN のキャッシュをクリアできます" #: settings/serializers/auth/oauth2.py:19 #: settings/serializers/auth/oauth2.py:22 @@ -6230,7 +6041,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 @@ -6238,11 +6050,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 "常にユーザーを更新" @@ -6275,8 +6087,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" @@ -6294,9 +6105,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" @@ -6355,9 +6164,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" @@ -6373,10 +6180,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" @@ -6406,9 +6212,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" @@ -6419,8 +6223,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)" @@ -6485,13 +6288,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 @@ -6512,8 +6313,7 @@ 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" @@ -6529,8 +6329,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" @@ -6538,11 +6338,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" @@ -6567,9 +6365,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" @@ -6578,8 +6374,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" @@ -6630,8 +6425,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)" @@ -6675,9 +6469,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:76 settings/serializers/feature.py:82 msgid "Chat AI" @@ -6688,7 +6481,8 @@ msgid "GPT Base URL" msgstr "GPTアドレス" #: settings/serializers/feature.py:86 -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:89 templates/_header_bar.html:96 @@ -6736,9 +6530,7 @@ msgstr "ユーザーの実行" #: settings/serializers/feature.py:124 msgid "" "Allow users to execute batch commands in the Workbench - Job Center - Adhoc" -msgstr "" -"ユーザーがワークベンチ - ジョブセンター - Adhocでバッチコマンドを実行すること" -"を許可します" +msgstr "ユーザーがワークベンチ - ジョブセンター - Adhocでバッチコマンドを実行することを許可します" #: settings/serializers/feature.py:128 msgid "Command blacklist" @@ -6764,9 +6556,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" @@ -6778,9 +6568,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 "" @@ -6806,9 +6594,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" @@ -6818,9 +6604,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" @@ -6828,11 +6612,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" @@ -6840,17 +6622,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)" @@ -6867,9 +6646,7 @@ msgstr "グループ化されていないノードを表示" #: settings/serializers/other.py:12 msgid "Perm single to ungroup node" msgstr "" -"グループ化されていないノードに個別に許可された資産を配置し、資産が存在する" -"ノードが表示されないようにしますが、そのノードが許可されていないという質問に" -"質問" +"グループ化されていないノードに個別に許可された資産を配置し、資産が存在するノードが表示されないようにしますが、そのノードが許可されていないという質問に質問" #: settings/serializers/security.py:17 msgid "User password expiration (day)" @@ -6881,10 +6658,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" @@ -6894,9 +6669,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)" @@ -6918,9 +6691,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" @@ -6946,9 +6717,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" @@ -6961,9 +6730,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" @@ -6971,14 +6739,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 @@ -7029,8 +6796,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)" @@ -7048,9 +6814,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" @@ -7066,13 +6830,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)" @@ -7082,9 +6844,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" @@ -7129,8 +6889,7 @@ msgstr "セッション共有" #: settings/serializers/security.py:213 msgid "Enabled, Allows user active session to be shared with other users" -msgstr "" -"ユーザーのアクティブなセッションを他のユーザーと共有できるようにします。" +msgstr "ユーザーのアクティブなセッションを他のユーザーと共有できるようにします。" #: settings/serializers/security.py:219 msgid "Insecure command alert" @@ -7159,30 +6918,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<br/>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コンポーネントにログインできるように許可する<br/>第" -"三者認証サービス(例:AD/LDAP)が有効化されている場合、ユーザがAD/LDAPサーバ" -"から削除された後に再度ログインするのを防ぐためにこのオプションを無効化するべ" -"きです。" +"* " +"公開鍵認証でユーザがKoKoコンポーネントにログインできるように許可する<br/>第三者認証サービス(例:AD/LDAP)が有効化されている場合、ユーザがAD/LDAPサーバから削除された後に再度ログインするのを防ぐためにこのオプションを無効化するべきです。" #: settings/serializers/terminal.py:43 msgid "Asset sorting" @@ -7194,23 +6947,21 @@ msgstr "ページサイズを一覧表示" #: settings/serializers/terminal.py:51 msgid "" -"* You can individually configure the service address and port in the service " -"endpoint<br/>If enabled, the Luna page will display the DB client launch " +"* You can individually configure the service address and port in the service" +" endpoint<br/>If enabled, the Luna page will display the DB client launch " "method when connecting to assets" msgstr "" -"* サーバエンドポイントでは、サービスアドレスとポートを個別に設定できます。" -"<br/>有効化した場合、Luna ページでは資産への接続時にDBクライアントの起動方法" -"を表示します。" +"* サーバエンドポイントでは、サービスアドレスとポートを個別に設定できます。<br/>有効化した場合、Luna " +"ページでは資産への接続時にDBクライアントの起動方法を表示します。" #: settings/serializers/terminal.py:59 msgid "" -"* You can individually configure the service address and port in the service " -"endpoint<br/>If enabled, the Luna page will display the download rdp file " +"* You can individually configure the service address and port in the service" +" endpoint<br/>If enabled, the Luna page will display the download rdp file " "button and RDP Client launch method when connecting to assets" msgstr "" -"* サーバエンドポイントでは、サービスアドレスとポートを個別に設定できます。" -"<br/>有効化した場合、Luna ページでは資産への接続時にrdp ファイルのダウンロー" -"ドボタンとRDPクライアントの起動方法を表示します。" +"* サーバエンドポイントでは、サービスアドレスとポートを個別に設定できます。<br/>有効化した場合、Luna ページでは資産への接続時にrdp " +"ファイルのダウンロードボタンとRDPクライアントの起動方法を表示します。" #: settings/serializers/terminal.py:66 msgid "Client connection" @@ -7219,11 +6970,11 @@ msgstr "クライアント接続" #: settings/serializers/terminal.py:68 msgid "" "* Allow connecting to the KoKo component via SSH client<br/>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 コンポーネントに接続できるように許可する<br/>有効" -"化した場合、Luna ページでは資産への接続時にSSHクライアントの起動方法を表示し" -"ます。" +"* SSHクライアント経由でKoKo コンポーネントに接続できるように許可する<br/>有効化した場合、Luna " +"ページでは資産への接続時にSSHクライアントの起動方法を表示します。" #: settings/serializers/tool.py:10 msgid "Tool" @@ -7235,11 +6986,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" @@ -7249,9 +6998,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" @@ -7263,13 +7010,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" @@ -7277,12 +7021,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" @@ -7416,9 +7159,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" @@ -7434,9 +7175,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" @@ -7477,8 +7216,7 @@ msgid "" " " msgstr "" "\n" -" アカウントが期限切れになったので、管理者に連絡してくださ" -"い。 " +" アカウントが期限切れになったので、管理者に連絡してください。 " #: templates/_message.html:13 msgid "Your account will at" @@ -7492,13 +7230,11 @@ msgstr "期限切れです。" #, python-format msgid "" "\n" -" Your password has expired, please click <a " -"href=\"%(user_password_update_url)s\"> this link </a> update password.\n" +" Your password has expired, please click <a href=\"%(user_password_update_url)s\"> this link </a> update password.\n" " " msgstr "" "\n" -" パスワードが期限切れになりましたので、クリックしてください " -"<a href=\"%(user_password_update_url)s\"> リンク </a> パスワードの更新\n" +" パスワードが期限切れになりましたので、クリックしてください <a href=\"%(user_password_update_url)s\"> リンク </a> パスワードの更新\n" " " #: templates/_message.html:30 @@ -7509,39 +7245,33 @@ msgstr "あなたのパスワードは" #, python-format msgid "" "\n" -" please click <a href=\"%(user_password_update_url)s\"> this " -"link </a> to update your password.\n" +" please click <a href=\"%(user_password_update_url)s\"> this link </a> to update your password.\n" " " msgstr "" "\n" -" クリックしてください <a " -"href=\"%(user_password_update_url)s\"> リンク </a> パスワードの更新\n" +" クリックしてください <a href=\"%(user_password_update_url)s\"> リンク </a> パスワードの更新\n" " " #: templates/_message.html:43 #, python-format msgid "" "\n" -" Your information was incomplete. Please click <a " -"href=\"%(first_login_url)s\"> this link </a>to complete your information.\n" +" Your information was incomplete. Please click <a href=\"%(first_login_url)s\"> this link </a>to complete your information.\n" " " msgstr "" "\n" -" あなたの情報が不完全なので、クリックしてください。 <a " -"href=\"%(first_login_url)s\"> リンク </a> 補完\n" +" あなたの情報が不完全なので、クリックしてください。 <a href=\"%(first_login_url)s\"> リンク </a> 補完\n" " " #: templates/_message.html:56 #, python-format msgid "" "\n" -" Your ssh public key not set or expired. Please click <a " -"href=\"%(user_pubkey_update)s\"> this link </a>to update\n" +" Your ssh public key not set or expired. Please click <a href=\"%(user_pubkey_update)s\"> this link </a>to update\n" " " msgstr "" "\n" -" SSHキーが設定されていないか無効になっている場合は、 <a " -"href=\"%(user_pubkey_update)s\"> リンク </a> 更新\n" +" SSHキーが設定されていないか無効になっている場合は、 <a href=\"%(user_pubkey_update)s\"> リンク </a> 更新\n" " " #: templates/_mfa_login_field.html:28 @@ -7573,9 +7303,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" @@ -7589,9 +7318,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" @@ -7601,9 +7328,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" @@ -8025,7 +7750,8 @@ msgstr "セッション再生をダウンロードできます" msgid "Account ID" msgstr "アカウント ID" -#: terminal/models/session/session.py:37 terminal/models/session/sharing.py:118 +#: terminal/models/session/session.py:37 +#: terminal/models/session/sharing.py:118 msgid "Login from" msgstr "ログイン元" @@ -8074,8 +7800,8 @@ msgstr "アクションパーミッション" msgid "Origin" msgstr "ソース" -#: terminal/models/session/sharing.py:42 terminal/models/session/sharing.py:100 -#: terminal/notifications.py:261 +#: terminal/models/session/sharing.py:42 +#: terminal/models/session/sharing.py:100 terminal/notifications.py:261 msgid "Session sharing" msgstr "セッション共有" @@ -8175,11 +7901,11 @@ msgstr "アイコン" #: terminal/serializers/applet_host.py:24 msgid "Per Device (Device number limit)" -msgstr "" +msgstr "各ユーザー(デバイス数制限)" #: terminal/serializers/applet_host.py:25 msgid "Per User (User number limit)" -msgstr "" +msgstr "各デバイス(ユーザー数制限)" #: terminal/serializers/applet_host.py:37 msgid "Core API" @@ -8188,21 +7914,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" " <br> \n" " eg: https://172.16.10.110 or https://dev.jumpserver.com\n" " " msgstr "" -"ヒント: アプリケーション リリース マシンは、コア サービスと通信します。リリー" -"ス マシンとコア サービスが同じネットワーク セグメント上にある場合は、イントラ" -"ネット アドレスを入力することをお勧めします。それ以外の場合は、現在のサイト " -"URL を入力します。<br>例: https://172.16.10.110 または https://dev." -"jumpserver.com" +"ヒント: アプリケーション リリース マシンは、コア サービスと通信します。リリース マシンとコア サービスが同じネットワーク " +"セグメント上にある場合は、イントラネット アドレスを入力することをお勧めします。それ以外の場合は、現在のサイト URL を入力します。<br>例: " +"https://172.16.10.110 または https://dev.jumpserver.com" #: terminal/serializers/applet_host.py:46 terminal/serializers/storage.py:207 msgid "Ignore Certificate Verification" @@ -8215,9 +7936,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. <a href=\"https://learn.microsoft.com/en-us/windows-server/remote/" -"remote-desktop-services/rds-client-access-license\">Detail</a>" +"days. <a href=\"https://learn.microsoft.com/en-us/windows-" +"server/remote/remote-desktop-services/rds-client-access-license\">Detail</a>" msgstr "" +"存在しない場合、RDSは試用モードで、試用期間は120日間です。<a href='https://learn.microsoft.com/en-" +"us/windows-server/remote/remote-desktop-services/rds-client-access-" +"license'>詳細</a>" #: terminal/serializers/applet_host.py:55 msgid "RDS License Server" @@ -8235,7 +7959,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 "" +msgstr "ヒント:RDSユーザーは一度に一つのセッションしか持てません。設定されている場合、次回のログイン接続時に、前回のセッションが切断されます" #: terminal/serializers/applet_host.py:65 msgid "RDS Max Disconnection Time (ms)" @@ -8245,9 +7969,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)" @@ -8255,11 +7977,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 @@ -8268,17 +7989,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" @@ -8290,9 +8007,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" @@ -8342,9 +8058,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 "" @@ -8352,22 +8066,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" @@ -8468,8 +8179,8 @@ msgid "" "If there are multiple hosts, use a comma (,) to separate them. <br>(For " "example: http://www.jumpserver.a.com:9100, http://www.jumpserver.b.com:9100)" msgstr "" -"ホストが複数ある場合は、カンマ (,) で区切ってください。<br>(例: http://www." -"jumpserver.a.com:9100, http://www.jumpserver.b.com:9100)" +"ホストが複数ある場合は、カンマ (,) で区切ってください。<br>(例: http://www.jumpserver.a.com:9100, " +"http://www.jumpserver.b.com:9100)" #: terminal/serializers/storage.py:199 msgid "Index by date" @@ -8500,9 +8211,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" @@ -8647,12 +8356,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" @@ -8660,12 +8366,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" @@ -8677,8 +8380,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が実行されます" @@ -8688,12 +8390,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" @@ -8701,12 +8400,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" @@ -8714,12 +8410,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" @@ -8727,16 +8420,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" @@ -8749,16 +8438,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: {}" @@ -8820,9 +8506,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" @@ -9056,9 +8740,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" @@ -9174,8 +8856,7 @@ msgid "" "in. you can also directly bind in \"personal information -> quick " "modification -> change MFA Settings\"!" msgstr "" -"有効にすると、次回のログイン時にマルチファクタ認証バインドプロセスに入りま" -"す。(個人情報->クイック修正->MFAマルチファクタ認証の設定)で直接バインド!" +"有効にすると、次回のログイン時にマルチファクタ認証バインドプロセスに入ります。(個人情報->クイック修正->MFAマルチファクタ認証の設定)で直接バインド!" #: users/forms/profile.py:59 msgid "* Enable MFA to make the account more secure." @@ -9183,12 +8864,11 @@ msgstr "* アカウントをより安全にするためにMFAを有効にしま #: users/forms/profile.py:68 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:82 users/serializers/preference/lina.py:21 msgid "New password" @@ -9341,12 +9021,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. <br>Such as: account backup files, " -"account password change results files" +"sends emails containing file attachments. <br>Such as: account backup files," +" account password change results files" msgstr "" -"ファイル暗号化パスワードは、システムから送信されるメールにファイルの添付が含" -"まれている場合、このパスワードで解読します。<br>例:アカウントのバックアップ" -"ファイル、アカウントのパスワード変更結果ファイル" +"ファイル暗号化パスワードは、システムから送信されるメールにファイルの添付が含まれている場合、このパスワードで解読します。<br>例:アカウントのバックアップファイル、アカウントのパスワード変更結果ファイル" #: users/serializers/preference/lina.py:39 users/serializers/profile.py:48 msgid "The newly set password is inconsistent" @@ -9394,9 +9072,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 " @@ -9448,10 +9124,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" @@ -9521,9 +9196,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:266 msgid "Superuser" @@ -9547,10 +9220,9 @@ msgstr "認証" #: users/serializers/user.py:426 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:461 msgid "name not unique" @@ -9559,11 +9231,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:196 msgid "Clean up expired user sessions" @@ -9571,12 +9240,9 @@ msgstr "期限切れのユーザー・セッションのパージ" #: users/signal_handlers.py:198 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" @@ -9584,12 +9250,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" @@ -9597,15 +9260,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" @@ -9613,12 +9272,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" @@ -9626,15 +9282,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" @@ -9642,15 +9294,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." @@ -9664,8 +9313,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" @@ -9675,9 +9323,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" @@ -9685,8 +9331,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" @@ -9786,11 +9431,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 @@ -9805,9 +9448,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" @@ -9821,9 +9462,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 @@ -9838,8 +9477,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" @@ -9851,8 +9489,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" @@ -9880,11 +9517,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" @@ -10116,9 +9751,7 @@ 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:392 #, python-format @@ -10249,7 +9882,8 @@ msgstr "インスタンス" msgid "Sync instance detail" msgstr "同期インスタンスの詳細" -#: xpack/plugins/cloud/models.py:311 xpack/plugins/cloud/serializers/task.py:77 +#: xpack/plugins/cloud/models.py:311 +#: xpack/plugins/cloud/serializers/task.py:77 msgid "Rule relation" msgstr "条件関係" @@ -10305,7 +9939,8 @@ msgstr "ルール一致" msgid "Rule value" msgstr "ルール値" -#: xpack/plugins/cloud/models.py:381 xpack/plugins/cloud/serializers/task.py:80 +#: xpack/plugins/cloud/models.py:381 +#: xpack/plugins/cloud/serializers/task.py:80 msgid "Strategy rule" msgstr "戦略ルール" @@ -10321,7 +9956,8 @@ msgstr "アクション属性" msgid "Action value" msgstr "アクション値" -#: xpack/plugins/cloud/models.py:407 xpack/plugins/cloud/serializers/task.py:83 +#: xpack/plugins/cloud/models.py:407 +#: xpack/plugins/cloud/serializers/task.py:83 msgid "Strategy action" msgstr "戦略アクション" @@ -10599,9 +10235,8 @@ msgid "" "synchronization task is executed, only the valid IP address will be " "synchronized. <br>If the port is 0, all IP addresses are valid." msgstr "" -"このポートは、 IP アドレスの有効性を検出するために使用されます。同期タスクが" -"実行されると、有効な IP アドレスのみが同期されます。 <br>ポートが0の場合、す" -"べてのIPアドレスが有効です。" +"このポートは、 IP アドレスの有効性を検出するために使用されます。同期タスクが実行されると、有効な IP アドレスのみが同期されます。 " +"<br>ポートが0の場合、すべてのIPアドレスが有効です。" #: xpack/plugins/cloud/serializers/account_attrs.py:190 msgid "Hostname prefix" @@ -10634,8 +10269,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" @@ -10648,16 +10282,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/zh_Hant/LC_MESSAGES/django.po b/apps/i18n/core/zh_Hant/LC_MESSAGES/django.po index 78b8aab8c..dcea0003b 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-10-12 11:30+0800\n" +"POT-Creation-Date: 2024-10-14 15:58+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n" "Last-Translator: ibuler <ibuler@qq.com>\n" "Language-Team: JumpServer team<ibuler@qq.com>\n" @@ -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 [{}]" @@ -121,7 +120,7 @@ msgstr "成功: %s, 失敗: %s, 總數: %s" #: accounts/automations/verify_gateway_account/manager.py:18 msgid ">>> Start executing the task to test gateway account connectivity" -msgstr "" +msgstr ">>> 開始執行測試閘道器帳號可連結性的任務" #: accounts/const/account.py:6 #: accounts/serializers/automations/change_secret.py:34 @@ -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 "跳過" @@ -378,16 +378,20 @@ msgstr "切換自" msgid "Version" msgstr "版本" -#: accounts/models/account.py:57 accounts/serializers/account/account.py:228 +#: accounts/models/account.py:57 +msgid "historical Account" +msgstr "帳號歷史" + +#: accounts/models/account.py:58 accounts/serializers/account/account.py:228 #: users/models/user/__init__.py:119 msgid "Source" msgstr "來源" -#: accounts/models/account.py:58 +#: accounts/models/account.py:59 msgid "Source ID" msgstr "來源 ID" -#: accounts/models/account.py:61 +#: accounts/models/account.py:62 #: accounts/serializers/automations/change_secret.py:113 #: accounts/serializers/automations/change_secret.py:144 #: accounts/templates/accounts/change_secret_failed_info.html:12 @@ -396,8 +400,8 @@ msgstr "來源 ID" #: assets/serializers/gateway.py:33 audits/models.py:59 #: authentication/api/connection_token.py:411 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:34 -#: terminal/serializers/command.py:72 +#: terminal/backends/command/models.py:18 +#: terminal/models/session/session.py:34 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 @@ -405,27 +409,27 @@ msgstr "來源 ID" msgid "Account" msgstr "帳號" -#: accounts/models/account.py:67 +#: accounts/models/account.py:68 msgid "Can view asset account secret" msgstr "可以查看資產帳號密碼" -#: accounts/models/account.py:68 +#: accounts/models/account.py:69 msgid "Can view asset history account" msgstr "可以查看資產歷史帳號" -#: accounts/models/account.py:69 +#: accounts/models/account.py:70 msgid "Can view asset history account secret" msgstr "可以查看資產歷史帳號密碼" -#: accounts/models/account.py:70 +#: accounts/models/account.py:71 msgid "Can verify account" msgstr "可以驗證帳號" -#: accounts/models/account.py:71 +#: accounts/models/account.py:72 msgid "Can push account" msgstr "可以推送帳號" -#: accounts/models/account.py:72 +#: accounts/models/account.py:73 msgid "Can remove account" msgstr "可以移除帳號" @@ -721,9 +725,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:111 -#: 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 @@ -798,8 +804,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" @@ -816,9 +821,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" @@ -835,9 +838,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" @@ -880,9 +881,9 @@ msgstr "類別" #: assets/serializers/asset/common.py:146 assets/serializers/platform.py:159 #: assets/serializers/platform.py:171 audits/serializers.py:53 #: audits/serializers.py:170 -#: authentication/serializers/connect_token_secret.py:126 ops/models/job.py:150 -#: 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:150 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 @@ -936,7 +937,7 @@ msgstr "帳號已存在" #: accounts/serializers/account/account.py:459 #: accounts/serializers/account/base.py:93 #: accounts/serializers/account/template.py:83 -#: assets/serializers/asset/common.py:407 +#: assets/serializers/asset/common.py:418 msgid "Spec info" msgstr "特殊資訊" @@ -950,9 +951,10 @@ msgstr "ID" #: accounts/serializers/account/account.py:475 acls/serializers/base.py:116 #: 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:171 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:171 +#: 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 @@ -1001,9 +1003,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" @@ -1036,20 +1036,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" @@ -1066,11 +1062,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:158 ops/models/playbook.py:33 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:26 +#: assets/models/cmd_filter.py:88 common/db/models.py:36 +#: ops/models/adhoc.py:25 ops/models/job.py:158 ops/models/playbook.py:33 +#: 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:26 #: terminal/models/component/endpoint.py:121 #: terminal/models/session/session.py:47 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 @@ -1085,13 +1081,13 @@ msgid "" "asset secret > Login secret > Manual input. <br/ >For security, please set " "config CACHE_LOGIN_PASSWORD_ENABLED to true" msgstr "" -"當前僅支持 AD/LDAP 登錄方式用戶。 同名帳號密碼生效順序: 資產上存在的同名帳號" -"密碼 > 登錄密碼 > 手動輸入 <br/> 為了安全起見,請設置配置項 " -"CACHE_LOGIN_PASSWORD_ENABLED=true,重啟服務才能開啟" +"當前僅支持 AD/LDAP 登錄方式用戶。 同名帳號密碼生效順序: 資產上存在的同名帳號密碼 > 登錄密碼 > 手動輸入 <br/> " +"為了安全起見,請設置配置項 CACHE_LOGIN_PASSWORD_ENABLED=true,重啟服務才能開啟" #: accounts/serializers/automations/base.py:23 #: assets/models/asset/common.py:176 assets/serializers/asset/common.py:172 -#: assets/serializers/automations/base.py:21 perms/serializers/permission.py:47 +#: assets/serializers/automations/base.py:21 +#: perms/serializers/permission.py:47 msgid "Nodes" msgstr "節點" @@ -1157,15 +1153,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" @@ -1181,27 +1172,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" @@ -1232,8 +1214,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 "當在控制台-自動化-帳號收集-收集的帳號-點擊同步刪除會執行該任務" @@ -1243,16 +1224,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." @@ -1264,8 +1241,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 "當在控制台-帳號模板-帳號-同步更新帳號信息點擊同步時,執行該任務" @@ -1322,8 +1298,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 @@ -1379,7 +1355,8 @@ msgstr "審批人" #: authentication/models/connection_token.py:53 #: 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:27 +#: perms/models/asset_permission.py:82 +#: terminal/models/component/endpoint.py:27 #: terminal/models/component/endpoint.py:122 #: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44 #: tickets/const.py:36 @@ -1394,7 +1371,7 @@ msgstr "用戶管理" #: acls/models/base.py:98 assets/models/automations/base.py:17 #: assets/models/cmd_filter.py:38 assets/serializers/asset/common.py:148 -#: assets/serializers/asset/common.py:406 perms/serializers/permission.py:55 +#: assets/serializers/asset/common.py:417 perms/serializers/permission.py:55 #: perms/serializers/user_permission.py:75 rbac/tree.py:35 msgid "Accounts" msgstr "帳號管理" @@ -1494,8 +1471,8 @@ 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" @@ -1523,8 +1500,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 @@ -1563,9 +1540,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 @@ -1796,8 +1771,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" @@ -1810,8 +1785,7 @@ msgid "" "account username <br>- ${HOME} The home directory of the connected account " "<br>- ${USER} The username of the user" msgstr "" -"SFTP根目錄,支持變數:<br>-${ACCOUNT}已連接帳戶使用者名稱<br>-${HOME}連接帳戶" -"的主目錄<br>-${USER}用戶的使用者名稱" +"SFTP根目錄,支持變數:<br>-${ACCOUNT}已連接帳戶使用者名稱<br>-${HOME}連接帳戶的主目錄<br>-${USER}用戶的使用者名稱" #: assets/const/protocol.py:81 msgid "Console" @@ -1832,18 +1806,17 @@ msgstr "安全" #: assets/const/protocol.py:89 msgid "" -"Security layer to use for the connection:<br>Any<br>Automatically select the " -"security mode based on the security protocols supported by both the client " +"Security layer to use for the connection:<br>Any<br>Automatically select the" +" security mode based on the security protocols supported by both the client " "and the server<br>RDP<br>Legacy RDP encryption. This mode is generally only " "used for older Windows servers or in cases where a standard Windows login " "screen is desired<br>TLS<br>RDP authentication and encryption implemented " "via TLS.<br>NLA<br>This mode uses TLS encryption and requires the username " "and password to be given in advance" msgstr "" -"連接的安全層:<br>Any<br>根據客戶端和伺服器支援的安全協議自動選擇安全模式" -"<br>RDP<br>傳統的 RDP 加密模式。通常僅用於較舊的 Windows 伺服器或需要標準 " -"Windows 登入螢幕的情況<br>TLS<br>通過 TLS 實現的 RDP 認證和加密<br>NLA<br>此" -"模式使用 TLS 加密,並要求提前提供用戶名和密碼<br>" +"連接的安全層:<br>Any<br>根據客戶端和伺服器支援的安全協議自動選擇安全模式<br>RDP<br>傳統的 RDP 加密模式。通常僅用於較舊的 " +"Windows 伺服器或需要標準 Windows 登入螢幕的情況<br>TLS<br>通過 TLS 實現的 RDP " +"認證和加密<br>NLA<br>此模式使用 TLS 加密,並要求提前提供用戶名和密碼<br>" #: assets/const/protocol.py:106 msgid "AD domain" @@ -1919,8 +1892,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 @@ -1982,7 +1954,7 @@ msgstr "系統平台" msgid "Zone" msgstr "網域" -#: assets/models/asset/common.py:179 assets/serializers/asset/common.py:408 +#: assets/models/asset/common.py:179 assets/serializers/asset/common.py:419 #: assets/serializers/asset/host.py:11 msgid "Gathered info" msgstr "收集資產硬體資訊" @@ -2165,7 +2137,7 @@ msgstr "我的資產" msgid "New node" msgstr "新節點" -#: assets/models/node.py:467 audits/backends/db.py:82 audits/backends/db.py:83 +#: assets/models/node.py:467 audits/backends/db.py:85 audits/backends/db.py:86 msgid "empty" msgstr "空" @@ -2344,9 +2316,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 "" @@ -2369,7 +2339,7 @@ msgid "Node path" msgstr "節點路徑" #: assets/serializers/asset/common.py:168 -#: assets/serializers/asset/common.py:409 +#: assets/serializers/asset/common.py:420 msgid "Auto info" msgstr "自動化資訊" @@ -2385,7 +2355,7 @@ msgstr "埠超出範圍 (0-65535)" msgid "Protocol is required: {}" msgstr "協議是必填的: {}" -#: assets/serializers/asset/common.py:336 +#: assets/serializers/asset/common.py:347 msgid "Invalid data" msgstr "無效的數據" @@ -2396,8 +2366,8 @@ 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" @@ -2409,11 +2379,9 @@ msgstr "" #: 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" @@ -2589,9 +2557,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" @@ -2627,8 +2593,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 "當在控制台資產詳情-基本設定點擊更新硬體資訊執行該任務" @@ -2646,18 +2611,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 @@ -2666,11 +2628,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" @@ -2693,8 +2653,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 @@ -2718,10 +2678,19 @@ 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:108 +#: audits/backends/db.py:78 +msgid "labels" +msgstr "標籤" + +#: audits/backends/db.py:79 +msgid "operate_log_id" +msgstr "Action日誌ID" + +#: audits/backends/db.py:111 msgid "Tips" msgstr "提示" @@ -2811,8 +2780,8 @@ msgstr "結束" #: audits/const.py:46 settings/serializers/terminal.py:6 #: terminal/models/applet/host.py:26 terminal/models/component/terminal.py:174 -#: 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 "終端" @@ -2851,7 +2820,8 @@ msgid "Job audit log" msgstr "作業審計日誌" #: audits/models.py:56 audits/models.py:100 audits/models.py:175 -#: terminal/models/session/session.py:39 terminal/models/session/sharing.py:113 +#: terminal/models/session/session.py:39 +#: terminal/models/session/sharing.py:113 msgid "Remote addr" msgstr "遠端地址" @@ -3064,17 +3034,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" @@ -3082,11 +3048,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" @@ -3206,7 +3170,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 "最後使用日期" @@ -3285,8 +3250,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 "" @@ -3303,10 +3267,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" @@ -3715,8 +3678,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:161 @@ -3740,8 +3703,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 @@ -4080,10 +4043,9 @@ 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:118 msgid "Slack Error" @@ -4189,13 +4151,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\"" @@ -4309,12 +4270,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 @@ -4494,10 +4453,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 @@ -4529,8 +4486,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時,需要發送短信時執行該任務" @@ -4573,8 +4529,8 @@ msgid "" "configure nginx for url distribution,</div> </div>If you see this page, " "prove that you are not accessing the nginx listening port. Good luck.</div>" msgstr "" -"<div>Luna是單獨部署的一個程序,你需要部署luna,koko, </div><div>如果你看到了" -"這個頁面,證明你訪問的不是nginx監聽的埠,祝你好運</div>" +"<div>Luna是單獨部署的一個程序,你需要部署luna,koko, " +"</div><div>如果你看到了這個頁面,證明你訪問的不是nginx監聽的埠,祝你好運</div>" #: jumpserver/views/other.py:76 msgid "Websocket server run on port: {}, you should proxy it on nginx" @@ -4586,8 +4542,8 @@ msgid "" "configure nginx for url distribution,</div> </div>If you see this page, " "prove that you are not accessing the nginx listening port. Good luck.</div>" msgstr "" -"<div>Koko是單獨部署的一個程序,你需要部署Koko, 並確保nginx配置轉發, </" -"div><div>如果你看到了這個頁面,證明你訪問的不是nginx監聽的埠,祝你好運</div>" +"<div>Koko是單獨部署的一個程序,你需要部署Koko, 並確保nginx配置轉發, " +"</div><div>如果你看到了這個頁面,證明你訪問的不是nginx監聽的埠,祝你好運</div>" #: labels/apps.py:8 msgid "App Labels" @@ -4651,8 +4607,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 "系統一些告警,工單等需要發送站內信時執行該任務" @@ -4863,12 +4818,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" @@ -4901,9 +4858,10 @@ msgstr "模組" msgid "Args" msgstr "參數" -#: ops/models/adhoc.py:26 ops/models/playbook.py:36 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:36 +#: 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 "範圍" @@ -4992,7 +4950,7 @@ msgstr "Material" msgid "Material Type" msgstr "Material 類型" -#: ops/models/job.py:548 +#: ops/models/job.py:558 msgid "Job Execution" msgstr "作業執行" @@ -5096,14 +5054,10 @@ msgstr "創建或更新週期任務" #: ops/tasks.py:127 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:140 msgid "Periodic check service performance" @@ -5111,13 +5065,9 @@ msgstr "週期檢測服務性能" #: ops/tasks.py:142 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:152 msgid "Clean up unexpected jobs" @@ -5125,16 +5075,11 @@ msgstr "清理異常作業" #: ops/tasks.py:154 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:167 msgid "Clean job_execution db record" @@ -5142,16 +5087,13 @@ msgstr "清理作業中心執行歷史" #: ops/tasks.py:169 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" @@ -5220,7 +5162,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 "組織" @@ -5383,9 +5326,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\"]" @@ -5405,18 +5346,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" @@ -5424,16 +5360,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 @@ -5839,9 +5770,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" @@ -5860,23 +5789,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 "服務端地址" @@ -5901,9 +5828,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 @@ -5914,9 +5843,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" @@ -5936,17 +5863,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" @@ -5956,9 +5879,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" @@ -5968,50 +5889,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 "快取逾時時間 (秒)" @@ -6022,10 +5951,10 @@ msgid "" "cache<br>If the user OU structure has been adjusted, click Submit to clear " "the user DN cache" msgstr "" -"對用戶登入驗證時查詢出的 User DN 進行緩存,可以有效提升用戶認證的速度<br>如果" -"用戶 OU 架構有调整,點擊提交即可清除用戶 DN 緩存" +"對用戶登入驗證時查詢出的 User DN 進行緩存,可以有效提升用戶認證的速度<br>如果用戶 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 "搜索分頁數量 (條)" @@ -6041,12 +5970,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<br>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<br>If" +" the user OU structure has been adjusted, click Submit to clear the user DN " "cache" msgstr "" -"對使用者登入驗證時查詢出的 User DN 進行快取,可以有效提升使用者驗證的速度<br>" -"如果使用者 OU 架構有調整,點擊提交即可清除使用者 DN 快取" +"對使用者登入驗證時查詢出的 User DN 進行快取,可以有效提升使用者驗證的速度<br>如果使用者 OU 架構有調整,點擊提交即可清除使用者 DN " +"快取" #: settings/serializers/auth/oauth2.py:19 #: settings/serializers/auth/oauth2.py:22 @@ -6093,19 +6022,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 "總是更新用戶資訊" @@ -6137,9 +6065,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" @@ -6157,8 +6083,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" @@ -6217,8 +6142,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" @@ -6234,7 +6158,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 @@ -6265,9 +6190,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" @@ -6277,9 +6200,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)" @@ -6344,12 +6265,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 @@ -6385,9 +6304,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" @@ -6395,8 +6312,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 @@ -6481,8 +6398,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)" @@ -6526,8 +6442,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:76 settings/serializers/feature.py:82 msgid "Chat AI" @@ -6538,7 +6453,8 @@ msgid "GPT Base URL" msgstr "GPT 地址" #: settings/serializers/feature.py:86 -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:89 templates/_header_bar.html:96 @@ -6650,8 +6566,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" @@ -6661,9 +6576,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" @@ -6671,8 +6584,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 @@ -6688,8 +6601,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)" @@ -6705,9 +6617,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)" @@ -6718,9 +6628,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" @@ -6790,9 +6698,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" @@ -6800,13 +6706,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 @@ -6875,9 +6780,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" @@ -6893,12 +6796,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)" @@ -6982,8 +6883,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 @@ -6995,11 +6896,11 @@ msgstr "* 允許用戶透過密碼驗證登入KoKo元件" msgid "" "* Allow users to log in to the KoKo component via Public key " "authentication<br/>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 元件<br/>如果第三方認證服務(如 AD/LDAP)" -"已啟用,則應禁用此選項,以防止用戶從 AD/LDAP 伺服器中刪除後再次登入" +"* 允許用戶透過公鑰驗證方式登入 KoKo 元件<br/>如果第三方認證服務(如 AD/LDAP)已啟用,則應禁用此選項,以防止用戶從 AD/LDAP " +"伺服器中刪除後再次登入" #: settings/serializers/terminal.py:43 msgid "Asset sorting" @@ -7011,21 +6912,18 @@ msgstr "資產列表每頁數量" #: settings/serializers/terminal.py:51 msgid "" -"* You can individually configure the service address and port in the service " -"endpoint<br/>If enabled, the Luna page will display the DB client launch " +"* You can individually configure the service address and port in the service" +" endpoint<br/>If enabled, the Luna page will display the DB client launch " "method when connecting to assets" -msgstr "" -"* 您可以在服務端點中單獨配置服務地址和端口<br/>如果啟用,Luna 界面將在連接資" -"產時顯示 DB 客戶端啟動方法" +msgstr "* 您可以在服務端點中單獨配置服務地址和端口<br/>如果啟用,Luna 界面將在連接資產時顯示 DB 客戶端啟動方法" #: settings/serializers/terminal.py:59 msgid "" -"* You can individually configure the service address and port in the service " -"endpoint<br/>If enabled, the Luna page will display the download rdp file " +"* You can individually configure the service address and port in the service" +" endpoint<br/>If enabled, the Luna page will display the download rdp file " "button and RDP Client launch method when connecting to assets" msgstr "" -"* 您可以在服務端點中單獨配置服務地址和端口<br/>如果啟用,Luna 界面將在連接資" -"產時顯示下載 rdp 文件按鈕和 RDP 客戶端啟動方法" +"* 您可以在服務端點中單獨配置服務地址和端口<br/>如果啟用,Luna 界面將在連接資產時顯示下載 rdp 文件按鈕和 RDP 客戶端啟動方法" #: settings/serializers/terminal.py:66 msgid "Client connection" @@ -7034,10 +6932,9 @@ msgstr "客戶端連接" #: settings/serializers/terminal.py:68 msgid "" "* Allow connecting to the KoKo component via SSH client<br/>If enabled, the " -"Luna page will display the SSH client launch method when connecting to assets" -msgstr "" -"* 允許透過 SSH 客戶端連接到 KoKo 元件<br/>如果啟用,則在連接到資產時,Luna 界" -"面將顯示 SSH 客戶端啟動方法" +"Luna page will display the SSH client launch method when connecting to " +"assets" +msgstr "* 允許透過 SSH 客戶端連接到 KoKo 元件<br/>如果啟用,則在連接到資產時,Luna 界面將顯示 SSH 客戶端啟動方法" #: settings/serializers/tool.py:10 msgid "Tool" @@ -7049,8 +6946,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 @@ -7073,12 +6970,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" @@ -7086,12 +6980,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" @@ -7296,13 +7187,11 @@ msgstr "過期。" #, python-format msgid "" "\n" -" Your password has expired, please click <a " -"href=\"%(user_password_update_url)s\"> this link </a> update password.\n" +" Your password has expired, please click <a href=\"%(user_password_update_url)s\"> this link </a> update password.\n" " " msgstr "" "\n" -" 您的密碼已經過期,請點擊 <a " -"href=\"%(user_password_update_url)s\"> 連結 </a> 更新密碼\n" +" 您的密碼已經過期,請點擊 <a href=\"%(user_password_update_url)s\"> 連結 </a> 更新密碼\n" " " #: templates/_message.html:30 @@ -7313,39 +7202,33 @@ msgstr "您的密碼將於" #, python-format msgid "" "\n" -" please click <a href=\"%(user_password_update_url)s\"> this " -"link </a> to update your password.\n" +" please click <a href=\"%(user_password_update_url)s\"> this link </a> to update your password.\n" " " msgstr "" "\n" -" 請點擊 <a href=\"%(user_password_update_url)s\"> 連結 </a> 更" -"新密碼\n" +" 請點擊 <a href=\"%(user_password_update_url)s\"> 連結 </a> 更新密碼\n" " " #: templates/_message.html:43 #, python-format msgid "" "\n" -" Your information was incomplete. Please click <a " -"href=\"%(first_login_url)s\"> this link </a>to complete your information.\n" +" Your information was incomplete. Please click <a href=\"%(first_login_url)s\"> this link </a>to complete your information.\n" " " msgstr "" "\n" -" 你的資訊不完整,請點擊 <a href=\"%(first_login_url)s\"> 連結 " -"</a> 補充完整\n" +" 你的資訊不完整,請點擊 <a href=\"%(first_login_url)s\"> 連結 </a> 補充完整\n" " " #: templates/_message.html:56 #, python-format msgid "" "\n" -" Your ssh public key not set or expired. Please click <a " -"href=\"%(user_pubkey_update)s\"> this link </a>to update\n" +" Your ssh public key not set or expired. Please click <a href=\"%(user_pubkey_update)s\"> this link </a>to update\n" " " msgstr "" "\n" -" 您的SSH金鑰沒有設置或已失效,請點擊 <a " -"href=\"%(user_pubkey_update)s\"> 連結 </a> 更新\n" +" 您的SSH金鑰沒有設置或已失效,請點擊 <a href=\"%(user_pubkey_update)s\"> 連結 </a> 更新\n" " " #: templates/_mfa_login_field.html:28 @@ -7376,9 +7259,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" @@ -7824,7 +7705,8 @@ msgstr "可以下載會話錄影" msgid "Account ID" msgstr "帳號" -#: terminal/models/session/session.py:37 terminal/models/session/sharing.py:118 +#: terminal/models/session/session.py:37 +#: terminal/models/session/sharing.py:118 msgid "Login from" msgstr "登錄來源" @@ -7873,8 +7755,8 @@ msgstr "操作權限" msgid "Origin" msgstr "來源" -#: terminal/models/session/sharing.py:42 terminal/models/session/sharing.py:100 -#: terminal/notifications.py:261 +#: terminal/models/session/sharing.py:42 +#: terminal/models/session/sharing.py:100 terminal/notifications.py:261 msgid "Session sharing" msgstr "會話分享" @@ -7974,11 +7856,11 @@ msgstr "圖示" #: terminal/serializers/applet_host.py:24 msgid "Per Device (Device number limit)" -msgstr "" +msgstr "每個用戶 (限制設備數量)" #: terminal/serializers/applet_host.py:25 msgid "Per User (User number limit)" -msgstr "" +msgstr "每個設備 (限制用戶數量)" #: terminal/serializers/applet_host.py:37 msgid "Core API" @@ -7987,19 +7869,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" " <br> \n" " eg: https://172.16.10.110 or https://dev.jumpserver.com\n" " " msgstr "" -"提示:應用發布機和 Core 服務進行通信使用,如果發布機和 Core 服務在同一網段," -"建議填寫內網地址,否則填寫當前站點 URL<br>例如:https://172.16.10.110 or " -"https://dev.jumpserver.com" +"提示:應用發布機和 Core 服務進行通信使用,如果發布機和 Core 服務在同一網段,建議填寫內網地址,否則填寫當前站點 " +"URL<br>例如: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" @@ -8012,9 +7890,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. <a href=\"https://learn.microsoft.com/en-us/windows-server/remote/" -"remote-desktop-services/rds-client-access-license\">Detail</a>" +"days. <a href=\"https://learn.microsoft.com/en-us/windows-" +"server/remote/remote-desktop-services/rds-client-access-license\">Detail</a>" msgstr "" +"如果不存在,RDS將處於試用模式,試用期為 120 天。<a href='https://learn.microsoft.com/en-" +"us/windows-server/remote/remote-desktop-services/rds-client-access-" +"license'>詳情</a>" #: terminal/serializers/applet_host.py:55 msgid "RDS License Server" @@ -8032,7 +7913,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 "" +msgstr "提示:RDS 用戶一次只能有一個會話。如果設定了,當下一次登入連接時,之前的會話將會被斷開" #: terminal/serializers/applet_host.py:65 msgid "RDS Max Disconnection Time (ms)" @@ -8042,9 +7923,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)" @@ -8052,11 +7931,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 @@ -8065,16 +7942,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 "" -"這些帳號用於連接髮布的應用,帳號現在分為兩種類型: <br/ >一種是專用的,每個用" -"戶都有一個專用帳號。 另一種是公共的,當應用不支持多開且專用的已經被使用時,會" -"使用公共帳號連接; <br />注意: 如果不開啟自動創建帳號, 當前發布機僅能被指定標" -"簽的資產調度到,默認不會放到調度池中,且需要手動維護帳號" +"這些帳號用於連接髮布的應用,帳號現在分為兩種類型: <br/ >一種是專用的,每個用戶都有一個專用帳號。 " +"另一種是公共的,當應用不支持多開且專用的已經被使用時,會使用公共帳號連接; <br />注意: 如果不開啟自動創建帳號, " +"當前發布機僅能被指定標簽的資產調度到,默認不會放到調度池中,且需要手動維護帳號" #: terminal/serializers/applet_host.py:104 msgid "The number of public accounts created automatically" @@ -8086,8 +7962,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" @@ -8137,23 +8012,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 @@ -8260,8 +8131,8 @@ msgid "" "If there are multiple hosts, use a comma (,) to separate them. <br>(For " "example: http://www.jumpserver.a.com:9100, http://www.jumpserver.b.com:9100)" msgstr "" -"如果有多個主機,請用逗號 (,) 分隔它們。<br>(例如:http://www.jumpserver.a." -"com:9100,http://www.jumpserver.b.com:9100)" +"如果有多個主機,請用逗號 (,) " +"分隔它們。<br>(例如:http://www.jumpserver.a.com:9100,http://www.jumpserver.b.com:9100)" #: terminal/serializers/storage.py:199 msgid "Index by date" @@ -8436,8 +8307,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分鐘未活躍的資產連結會話,將這些會話標記未已完成" @@ -8447,11 +8317,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" @@ -8463,8 +8331,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" @@ -8474,8 +8341,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" @@ -8485,8 +8351,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" @@ -8496,8 +8361,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" @@ -8507,15 +8371,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" @@ -8526,14 +8385,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 @@ -8596,8 +8453,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" @@ -8946,9 +8802,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:59 msgid "* Enable MFA to make the account more secure." @@ -8956,12 +8810,10 @@ msgstr "* 啟用 MFA 多因子認證,使帳號更加安全。" #: users/forms/profile.py:68 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:82 users/serializers/preference/lina.py:21 msgid "New password" @@ -9114,8 +8966,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. <br>Such as: account backup files, " -"account password change results files" +"sends emails containing file attachments. <br>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.<br>For example: Account " @@ -9168,9 +9020,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" @@ -9214,10 +9064,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" @@ -9228,8 +9079,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" @@ -9289,8 +9140,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:266 @@ -9315,7 +9166,8 @@ msgstr "認證" #: users/serializers/user.py:426 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" @@ -9327,10 +9179,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:196 msgid "Clean up expired user sessions" @@ -9338,11 +9188,9 @@ msgstr "清除過期的用戶會話" #: users/signal_handlers.py:198 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" @@ -9350,8 +9198,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天發送通知" @@ -9361,14 +9208,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" @@ -9376,8 +9219,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天發送通知" @@ -9387,14 +9229,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" @@ -9402,14 +9240,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." @@ -9543,8 +9377,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 @@ -9629,8 +9463,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 @@ -9854,8 +9688,7 @@ msgstr "同步地區" #: xpack/plugins/cloud/manager.py:115 #, 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:157 #, python-format @@ -10000,7 +9833,8 @@ msgstr "實例" msgid "Sync instance detail" msgstr "同步實例詳情" -#: xpack/plugins/cloud/models.py:311 xpack/plugins/cloud/serializers/task.py:77 +#: xpack/plugins/cloud/models.py:311 +#: xpack/plugins/cloud/serializers/task.py:77 msgid "Rule relation" msgstr "條件關係" @@ -10056,7 +9890,8 @@ msgstr "規則匹配" msgid "Rule value" msgstr "規則值" -#: xpack/plugins/cloud/models.py:381 xpack/plugins/cloud/serializers/task.py:80 +#: xpack/plugins/cloud/models.py:381 +#: xpack/plugins/cloud/serializers/task.py:80 msgid "Strategy rule" msgstr "條件" @@ -10072,7 +9907,8 @@ msgstr "動作屬性" msgid "Action value" msgstr "動作值" -#: xpack/plugins/cloud/models.py:407 xpack/plugins/cloud/serializers/task.py:83 +#: xpack/plugins/cloud/models.py:407 +#: xpack/plugins/cloud/serializers/task.py:83 msgid "Strategy action" msgstr "動作" @@ -10349,9 +10185,7 @@ 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. <br>If the port is 0, all IP addresses are valid." -msgstr "" -"埠用來檢測 IP 地址的有效性,在同步任務執行時,只會同步有效的 IP 地址。 <br>如" -"果埠為 0,則表示所有 IP 地址均有效。" +msgstr "埠用來檢測 IP 地址的有效性,在同步任務執行時,只會同步有效的 IP 地址。 <br>如果埠為 0,則表示所有 IP 地址均有效。" #: xpack/plugins/cloud/serializers/account_attrs.py:190 msgid "Hostname prefix" @@ -10384,8 +10218,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" @@ -10398,16 +10231,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/koko/en.json b/apps/i18n/koko/en.json index bd02311c7..a694da090 100644 --- a/apps/i18n/koko/en.json +++ b/apps/i18n/koko/en.json @@ -1,6 +1,9 @@ { "ActionPerm": "Actions", "Cancel": "Cancel", + "Clone Connect": "Clone Connect", + "Close All Tabs": "Close All Tabs", + "Close Current Tab": "Close Current Tab", "Confirm": "Confirm", "ConfirmBtn": "Confirm", "Connect": "Connect", @@ -8,6 +11,7 @@ "CopyShareURLSuccess": "Copy Share URL Success", "CreateLink": "Create Share Link", "CreateSuccess": "Success", + "Custom Setting": "Custom Setting", "DownArrow": "Down arrow", "Download": "Download", "DownloadSuccess": "Download success", @@ -33,6 +37,7 @@ "Paste": "Paste", "PauseSession": "Pause Session", "ReadOnly": "Read-Only", + "Reconnect": "Reconnect", "Refresh": "Refresh", "Remove": "Remove", "RemoveShareUser": "You have been removed from the shared session.", @@ -62,10 +67,5 @@ "VerifyCode": "Verify Code", "WaitFileTransfer": "Wait file transfer to finish", "WebSocketClosed": "WebSocket closed", - "Writable": "Writable", - "Reconnect": "Reconnect", - "Close Current Tab": "Close Current Tab", - "Close All Tabs": "Close All Tabs", - "Clone Connect": "Clone Connect", - "Custom Setting": "Custom Setting" + "Writable": "Writable" } \ No newline at end of file diff --git a/apps/i18n/koko/zh.json b/apps/i18n/koko/zh.json index db0cc86f2..e124d1574 100644 --- a/apps/i18n/koko/zh.json +++ b/apps/i18n/koko/zh.json @@ -1,6 +1,9 @@ { "ActionPerm": "操作权限", "Cancel": "取消", + "Clone Connect": "复制窗口", + "Close All Tabs": "关闭所有", + "Close Current Tab": "关闭当前", "Confirm": "确认", "ConfirmBtn": "确定", "Connect": "连接", @@ -8,6 +11,7 @@ "CopyShareURLSuccess": "复制分享地址成功", "CreateLink": "创建分享链接", "CreateSuccess": "创建成功", + "Custom Setting": "自定义设置", "DownArrow": "向下箭头", "Download": "下载", "DownloadSuccess": "下载成功", @@ -33,6 +37,7 @@ "Paste": "粘贴", "PauseSession": "暂停此会话", "ReadOnly": "只读", + "Reconnect": "重新连接", "Refresh": "刷新", "Remove": "移除", "RemoveShareUser": "你已经被移除共享会话", @@ -62,10 +67,5 @@ "VerifyCode": "验证码", "WaitFileTransfer": "等待文件传输结束", "WebSocketClosed": "WebSocket 已关闭", - "Reconnect": "重新连接", - "Writable": "可写", - "Close Current Tab": "关闭当前", - "Close All Tabs": "关闭所有", - "Clone Connect": "复制窗口", - "Custom Setting": "自定义设置" + "Writable": "可写" } \ No newline at end of file diff --git a/apps/i18n/lina/en.json b/apps/i18n/lina/en.json index bd263697d..e98b0b8ae 100644 --- a/apps/i18n/lina/en.json +++ b/apps/i18n/lina/en.json @@ -443,9 +443,6 @@ "Docs": "Docs", "Download": "Download", "DownloadCenter": "Download", - "FTPStorageNotEnabled": "The file storage function is not enabled. Please modify the configuration file and add the following configuration: FTP_FILE_MAX_STORE=100 (supports saving files within 100M)", - "FTPFileNotStored": "The file has not been saved to storage yet, please check back later.", - "FTPUnknownStorageState": "Unknown file storage status, please contact your administrator.", "DownloadImportTemplateMsg": "Download creation template", "DownloadReplay": "Download recording", "DownloadUpdateTemplateMsg": "Download update template", @@ -507,6 +504,9 @@ "ExportOnlySelectedItems": "Export selected items", "ExportRange": "Export range", "FC": "Fusion compute", + "FTPFileNotStored": "The file has not been saved to storage yet, please check back later.", + "FTPStorageNotEnabled": "The file storage function is not enabled. Please modify the configuration file and add the following configuration: FTP_FILE_MAX_STORE=100 (supports saving files within 100M)", + "FTPUnknownStorageState": "Unknown file storage status, please contact your administrator.", "Failed": "Failed", "FailedAsset": "Failed assets", "FaviconTip": "Note: website icon (suggested image size: 16px*16px)", @@ -1217,6 +1217,7 @@ "TaskID": "Task id", "TaskList": "Tasks", "TaskMonitor": "Monitoring", + "TaskPath": "Task path", "TechnologyConsult": "Technical consultation", "TempPasswordTip": "The temporary password is valid for 300 seconds and becomes invalid immediately after use", "TempToken": "Temporary tokens", @@ -1399,6 +1400,5 @@ "ZoneUpdate": "Update the zone", "disallowSelfUpdateFields": "Not allowed to modify the current fields yourself", "forceEnableMFAHelpText": "If force enable, user can not disable by themselves", - "removeWarningMsg": "Are you sure you want to remove", - "TaskPath": "Task path" + "removeWarningMsg": "Are you sure you want to remove" } \ No newline at end of file diff --git a/apps/i18n/lina/ja.json b/apps/i18n/lina/ja.json index 7e5666a0e..33783d6c4 100644 --- a/apps/i18n/lina/ja.json +++ b/apps/i18n/lina/ja.json @@ -458,6 +458,7 @@ "Docs": "文書", "Download": "ダウンロード", "DownloadCenter": "ダウンロードセンター", + "DownloadFTPFileTip": "現在のActionはファイルを記録せず、またはファイルのサイズが閾値(デフォルト100M)を超えている、またはまだ対応するストレージに保存されていません。", "DownloadImportTemplateMsg": "テンプレートをダウンロードで作成", "DownloadReplay": "ビデオのダウンロード", "DownloadUpdateTemplateMsg": "更新テンプレートをダウンロード", @@ -519,6 +520,9 @@ "ExportOnlySelectedItems": "選択オプションのみをエクスポート", "ExportRange": "エクスポート範囲", "FC": "Fusion Compute", + "FTPFileNotStored": "ファイルはまだストレージに保存されていません、後で確認してください。", + "FTPStorageNotEnabled": "ファイルストレージ機能が有効になっていません、設定ファイルを変更し、次の設定を追加してください:FTP_FILE_MAX_STORE=100(100M以下のファイルを保存可能)", + "FTPUnknownStorageState": "不明なファイルストレージの状態、管理者にご連絡ください。", "Failed": "失敗", "FailedAsset": "失敗した資産", "FaviconTip": "ヒント:ウェブサイトのアイコン(推奨画像サイズ:16px*16px)", @@ -1294,6 +1298,7 @@ "Timeout": "タイムアウト", "TimeoutHelpText": "この値が-1の場合、タイムアウト時間を指定しない", "Timer": "定期的にAction", + "TimerExecution": "定期実行", "Title": "タイトル", "To": "至", "Today": "今日", diff --git a/apps/i18n/lina/zh.json b/apps/i18n/lina/zh.json index 1bbd96af9..ed05ec2ec 100644 --- a/apps/i18n/lina/zh.json +++ b/apps/i18n/lina/zh.json @@ -444,9 +444,6 @@ "Download": "下载", "DownloadCenter": "下载中心", "DownloadFTPFileTip": "当前动作不记录文件,或者文件大小超过阈值(默认100M),或者还未保存到对应存储中", - "FTPStorageNotEnabled": "文件存储功能未开启,请修改配置文件并添加配置:FTP_FILE_MAX_STORE=100(支持保存100M以内的文件)", - "FTPFileNotStored": "文件尚未保存到存储中,请稍后查看。", - "FTPUnknownStorageState": "未知的文件存储状态,请联系管理员。", "DownloadImportTemplateMsg": "下载创建模板", "DownloadReplay": "下载录像", "DownloadUpdateTemplateMsg": "下载更新模板", @@ -508,6 +505,9 @@ "ExportOnlySelectedItems": "仅导出选择项", "ExportRange": "导出范围", "FC": "Fusion Compute", + "FTPFileNotStored": "文件尚未保存到存储中,请稍后查看。", + "FTPStorageNotEnabled": "文件存储功能未开启,请修改配置文件并添加配置:FTP_FILE_MAX_STORE=100(支持保存100M以内的文件)", + "FTPUnknownStorageState": "未知的文件存储状态,请联系管理员。", "Failed": "失败", "FailedAsset": "失败的资产", "FaviconTip": "提示:网站图标(建议图片大小为: 16px*16px)", @@ -1221,6 +1221,7 @@ "TaskID": "任务 ID", "TaskList": "任务列表", "TaskMonitor": "任务监控", + "TaskPath": "任务路径", "TechnologyConsult": "技术咨询", "TempPasswordTip": "临时密码有效期为 300 秒,使用后立刻失效", "TempToken": "临时密码", @@ -1403,6 +1404,5 @@ "ZoneUpdate": "更新网域", "disallowSelfUpdateFields": "不允许自己修改当前字段", "forceEnableMFAHelpText": "如果强制启用,用户无法自行禁用", - "removeWarningMsg": "你确定要移除", - "TaskPath": "任务路径" + "removeWarningMsg": "你确定要移除" } \ No newline at end of file diff --git a/apps/i18n/lina/zh_hant.json b/apps/i18n/lina/zh_hant.json index 2660cbe8a..e32d22687 100644 --- a/apps/i18n/lina/zh_hant.json +++ b/apps/i18n/lina/zh_hant.json @@ -593,6 +593,7 @@ "DomainUpdate": "更新網域", "Download": "下載", "DownloadCenter": "下載中心", + "DownloadFTPFileTip": "當前Action不記錄檔案,或者檔案大小超過閾值(預設100M),或者還未儲存到對應儲存中。", "DownloadImportTemplateMsg": "下載創建模板", "DownloadReplay": "下載錄影", "DownloadUpdateTemplateMsg": "下載更新範本", @@ -667,6 +668,9 @@ "ExportRange": "匯出範圍", "FAILURE": "失敗", "FC": "Fusion Compute", + "FTPFileNotStored": "檔案尚未儲存到儲存中,請稍後查看。", + "FTPStorageNotEnabled": "檔案儲存功能未開啟,請修改配置檔並添加配置:FTP_FILE_MAX_STORE=100(支持儲存100M以內的檔案)", + "FTPUnknownStorageState": "未知的檔案儲存狀態,請聯絡管理員。", "Failed": "失敗", "FailedAsset": "失敗的資產", "False": "否", @@ -1654,6 +1658,7 @@ "Timeout": "超時(秒)", "TimeoutHelpText": "當此值為-1時,不指定超時時間", "Timer": "定時執行", + "TimerExecution": "定時執行", "TimerPeriod": "定時執行週期", "TimesWeekUnit": "次/周", "Title": "Title", diff --git a/apps/i18n/luna/en.json b/apps/i18n/luna/en.json index d5334f687..3d7869858 100644 --- a/apps/i18n/luna/en.json +++ b/apps/i18n/luna/en.json @@ -129,6 +129,7 @@ "Password is your password login to system": "Password is your password login to system", "Pause": "Pause", "Pause task has been send": "Pause task has been send", + "Play List": "Play List", "Please choose an account": "Please choose an account", "Please input password": "Please input password", "Port": "Port", @@ -216,11 +217,10 @@ "connectDisabledTipsNoAccount": "Tips: No valid authorization account found, current resource cannot be connected. Please contact the administrator for assistance", "connectDisabledTipsNoConnectMethod": "Tips: No valid connection method found, current resource cannot be connected. Please contact the administrator for assistance", "download": "download", + "recordingIsBeingDownloaded": "Recording is being downloaded, please wait.", "rows": "rows", "start time": "start time", "success": "success", "system user": "system user", - "user": "user", - "recordingIsBeingDownloaded": "Recording is being downloaded, please wait.", - "Play List": "Play List" + "user": "user" } \ No newline at end of file diff --git a/apps/i18n/luna/ja.json b/apps/i18n/luna/ja.json index f18fd2b69..3aba3b017 100644 --- a/apps/i18n/luna/ja.json +++ b/apps/i18n/luna/ja.json @@ -130,6 +130,7 @@ "Password is your password login to system": "パスワードは、システムにログインするためのパスワードです", "Pause": "タスクを一時停止", "Pause task has been send": "一時停止タスクが送信されました", + "Play List": "再生リスト", "Please choose an account": "ユーザーを選択してください", "Please input password": "パスワードを入力してください", "Port": "ポート", @@ -220,6 +221,7 @@ "connectDisabledTipsNoAccount": "ヒント:有効な認可アカウントが見つかりませんでした。このリソースは接続できません。管理者に連絡してください", "connectDisabledTipsNoConnectMethod": "ヒント:有効な接続方法が見つかりませんでした。このリソースは接続できません。管理者に連絡してください", "download": "ダウンロード", + "recordingIsBeingDownloaded": "ビデオのダウンロードが進行中です、お待ちください。", "rows": "行数", "start time": "開始時間", "success": "成功", diff --git a/apps/i18n/luna/zh.json b/apps/i18n/luna/zh.json index 005992ca4..b8a4d812f 100644 --- a/apps/i18n/luna/zh.json +++ b/apps/i18n/luna/zh.json @@ -128,6 +128,7 @@ "Password is your password login to system": "密码是你登录系统的密码", "Pause": "暂停", "Pause task has been send": "暂停任务已发送", + "Play List": "播放列表", "Please choose an account": "请选择一个用户", "Please input password": "请输入密码", "Port": "端口", @@ -214,11 +215,10 @@ "connectDisabledTipsNoAccount": "提示:未找到有效的授权账号,当前资源无法连接,请联系管理员进行处理", "connectDisabledTipsNoConnectMethod": "提示:未找到有效的连接方式,当前资源无法连接,请联系管理员进行处理", "download": "下载", + "recordingIsBeingDownloaded": "录像正在下载中,请稍候", "rows": "行数", "start time": "开始时间", "success": "成功", "system user": "系统用户", - "user": "用户", - "recordingIsBeingDownloaded": "录像正在下载中,请稍候", - "Play List": "播放列表" + "user": "用户" } \ No newline at end of file diff --git a/apps/i18n/luna/zh_hant.json b/apps/i18n/luna/zh_hant.json index dcaae5d70..8f5e858bf 100644 --- a/apps/i18n/luna/zh_hant.json +++ b/apps/i18n/luna/zh_hant.json @@ -129,6 +129,7 @@ "Password is your password login to system": "密碼是你登入系統的密碼", "Pause": "暫停", "Pause task has been send": "暫停任務已發送", + "Play List": "播放清單", "Please choose an account": "請選擇一個用戶", "Please input password": "請輸入密碼", "Port": "埠", @@ -218,6 +219,7 @@ "connectDisabledTipsNoAccount": "提示:未找到有效的授權帳號,當前資源無法連接,請聯繫管理員進行處理", "connectDisabledTipsNoConnectMethod": "提示:未找到有效的連接方式,當前資源無法連接,請聯繫管理員進行處理", "download": "下載", + "recordingIsBeingDownloaded": "錄影正在下載中,請稍等", "rows": "行數", "start time": "開始時間", "success": "成功", From ca8987fef64bc36f7b6e8b733ff4de60ef4274cf Mon Sep 17 00:00:00 2001 From: feng <1304903146@qq.com> Date: Mon, 14 Oct 2024 16:39:31 +0800 Subject: [PATCH 28/36] perf: Change secret remove redundant checks --- .../serializers/automations/change_secret.py | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/apps/accounts/serializers/automations/change_secret.py b/apps/accounts/serializers/automations/change_secret.py index e9a653c13..7e12ea848 100644 --- a/apps/accounts/serializers/automations/change_secret.py +++ b/apps/accounts/serializers/automations/change_secret.py @@ -75,19 +75,6 @@ class ChangeSecretAutomationSerializer(AuthValidateMixin, BaseAutomationSerializ if self.initial_data.get('secret_strategy') == SecretStrategy.custom: return password_rules - length = password_rules.get('length') - - try: - length = int(length) - except Exception as e: - logger.error(e) - msg = _("* Please enter the correct password length") - raise serializers.ValidationError(msg) - - if length < 6 or length > 36: - msg = _('* Password length range 6-30 bits') - raise serializers.ValidationError(msg) - return password_rules def validate(self, attrs): From 2a781c228f6a0ae65e94534a5603768583b1426c Mon Sep 17 00:00:00 2001 From: feng <1304903146@qq.com> Date: Tue, 15 Oct 2024 10:43:45 +0800 Subject: [PATCH 29/36] perf: Cas user cannot bind organization --- apps/users/signal_handlers.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/users/signal_handlers.py b/apps/users/signal_handlers.py index b8fb37085..2f5f34e86 100644 --- a/apps/users/signal_handlers.py +++ b/apps/users/signal_handlers.py @@ -53,10 +53,11 @@ def user_authenticated_handle(user, created, source, attrs=None, **kwargs): user.source = source user.save() - if created and isinstance(attrs, dict): + if created: org_ids = bind_user_to_org_role(user) - group_names = attrs.get('groups') - bind_user_to_group(org_ids, group_names, user) + if isinstance(attrs, dict): + group_names = attrs.get('groups') + bind_user_to_group(org_ids, group_names, user) if not attrs: return From 1b8cdbc4dda12403f918b1cb8b5ca35ac6f1d703 Mon Sep 17 00:00:00 2001 From: Huaqing Chen <hc3587@nyu.edu> Date: Tue, 15 Oct 2024 10:09:58 +0800 Subject: [PATCH 30/36] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dwebsocket=E4=B8=8D?= =?UTF-8?q?=E8=83=BD=E4=BD=BF=E7=94=A8Authorization=20Header=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/jumpserver/routing.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/jumpserver/routing.py b/apps/jumpserver/routing.py index 0c8e78063..1075cb584 100644 --- a/apps/jumpserver/routing.py +++ b/apps/jumpserver/routing.py @@ -33,17 +33,17 @@ def get_signature_user(scope): return if scope['type'] == 'websocket': scope['method'] = 'GET' - try: - # 因为 ws 使用的是 scope,所以需要转换成 request 对象,用于认证校验 - request = ASGIRequest(scope, None) - backends = [SignatureAuthentication(), - AccessTokenAuthentication()] - for backend in backends: + # 因为 ws 使用的是 scope,所以需要转换成 request 对象,用于认证校验 + request = ASGIRequest(scope, None) + backends = [SignatureAuthentication(), + AccessTokenAuthentication()] + for backend in backends: + try: user, _ = backend.authenticate(request) if user: return user - except Exception as e: - print(e) + except Exception as e: + print(e) return None From 0e1e26c29c73a93f8691174beaf2e8c09d28e65a Mon Sep 17 00:00:00 2001 From: ibuler <ibuler@qq.com> Date: Wed, 16 Oct 2024 15:06:00 +0800 Subject: [PATCH 31/36] perf: disable f1 key --- .../extensions/disable_new_tab_window_menu/content_script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/terminal/applets/chrome/extensions/disable_new_tab_window_menu/content_script.js b/apps/terminal/applets/chrome/extensions/disable_new_tab_window_menu/content_script.js index 3b2ba828c..63f89f0a8 100644 --- a/apps/terminal/applets/chrome/extensions/disable_new_tab_window_menu/content_script.js +++ b/apps/terminal/applets/chrome/extensions/disable_new_tab_window_menu/content_script.js @@ -36,7 +36,7 @@ document.addEventListener("contextmenu", function (event) { const AllowedKeys = ['P', 'F', 'C', 'V'] window.addEventListener("keydown", function (e) { - if (e.key === "F12" || (e.ctrlKey && !AllowedKeys.includes(e.key.toUpperCase()))) { + if (e.key === "F12" || e.key === "F1" || (e.ctrlKey && !AllowedKeys.includes(e.key.toUpperCase()))) { e.preventDefault(); e.stopPropagation(); debug('Press key: ', e.ctrlKey ? 'Ctrl' : '', e.shiftKey ? ' Shift' : '', e.key) From d4f69a7ff847de509f5010ce71f6f79753316506 Mon Sep 17 00:00:00 2001 From: wangruidong <940853815@qq.com> Date: Wed, 16 Oct 2024 17:56:47 +0800 Subject: [PATCH 32/36] perf: Translate --- apps/i18n/lina/en.json | 3 ++- apps/i18n/lina/ja.json | 3 ++- apps/i18n/lina/zh.json | 3 ++- apps/i18n/lina/zh_hant.json | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/apps/i18n/lina/en.json b/apps/i18n/lina/en.json index e98b0b8ae..cc3220118 100644 --- a/apps/i18n/lina/en.json +++ b/apps/i18n/lina/en.json @@ -1400,5 +1400,6 @@ "ZoneUpdate": "Update the zone", "disallowSelfUpdateFields": "Not allowed to modify the current fields yourself", "forceEnableMFAHelpText": "If force enable, user can not disable by themselves", - "removeWarningMsg": "Are you sure you want to remove" + "removeWarningMsg": "Are you sure you want to remove", + "InstanceNamePartIp": "Instance name and Partial IP" } \ No newline at end of file diff --git a/apps/i18n/lina/ja.json b/apps/i18n/lina/ja.json index 33783d6c4..dba2752fb 100644 --- a/apps/i18n/lina/ja.json +++ b/apps/i18n/lina/ja.json @@ -1442,5 +1442,6 @@ "ZoneUpdate": "更新エリア", "disallowSelfUpdateFields": "現在のフィールドを自分で変更することは許可されていません", "forceEnableMFAHelpText": "強制的に有効化すると、ユーザーは自分で無効化することができません。", - "removeWarningMsg": "削除してもよろしいですか" + "removeWarningMsg": "削除してもよろしいですか", + "InstanceNamePartIp": "インスタンス名と部分IP" } \ No newline at end of file diff --git a/apps/i18n/lina/zh.json b/apps/i18n/lina/zh.json index ed05ec2ec..58535ec97 100644 --- a/apps/i18n/lina/zh.json +++ b/apps/i18n/lina/zh.json @@ -1404,5 +1404,6 @@ "ZoneUpdate": "更新网域", "disallowSelfUpdateFields": "不允许自己修改当前字段", "forceEnableMFAHelpText": "如果强制启用,用户无法自行禁用", - "removeWarningMsg": "你确定要移除" + "removeWarningMsg": "你确定要移除", + "InstanceNamePartIp": "实例名称和部分IP" } \ No newline at end of file diff --git a/apps/i18n/lina/zh_hant.json b/apps/i18n/lina/zh_hant.json index e32d22687..c3e21c4f4 100644 --- a/apps/i18n/lina/zh_hant.json +++ b/apps/i18n/lina/zh_hant.json @@ -2283,5 +2283,6 @@ "weComTest": "測試", "week": "周", "weekOf": "周的星期", - "wildcardsAllowed": "允許的通配符" + "wildcardsAllowed": "允許的通配符", + "InstanceNamePartIp": "實例名稱和部分IP" } \ No newline at end of file From b87650038f1c47322ac97e5f0c8fd6fcabeef62a Mon Sep 17 00:00:00 2001 From: Eric <xplzv@126.com> Date: Wed, 16 Oct 2024 17:55:19 +0800 Subject: [PATCH 33/36] perf: update code --- apps/common/storage/replay.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/common/storage/replay.py b/apps/common/storage/replay.py index de1a56e82..639015b87 100644 --- a/apps/common/storage/replay.py +++ b/apps/common/storage/replay.py @@ -1,6 +1,8 @@ import json import os +import shutil import tarfile +import time from itertools import chain from django.core.files.storage import default_storage @@ -62,16 +64,17 @@ class SessionPartReplayStorageHandler(object): # 保存到storage的路径 target_path = os.path.join(default_storage.base_location, local_path) - + target_tmp_path = target_path + f'.tmp{int(time.time())}' target_dir = os.path.dirname(target_path) if not os.path.isdir(target_dir): make_dirs(target_dir, exist_ok=True) - ok, err = storage.download(remote_path, target_path) + ok, err = storage.download(remote_path, target_tmp_path) if not ok: msg = 'Failed download {} file: {}'.format(part_filename, err) logger.error(msg) return None, msg + shutil.move(target_tmp_path, target_path) url = default_storage.url(local_path) return local_path, url From 05fc966444954e003f6db3dc4ea08aa9532049ad Mon Sep 17 00:00:00 2001 From: Eric <xplzv@126.com> Date: Wed, 16 Oct 2024 18:24:04 +0800 Subject: [PATCH 34/36] perf: add koko i18n --- apps/i18n/koko/en.json | 4 +++- apps/i18n/koko/zh.json | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/i18n/koko/en.json b/apps/i18n/koko/en.json index a694da090..e37fd7065 100644 --- a/apps/i18n/koko/en.json +++ b/apps/i18n/koko/en.json @@ -36,6 +36,8 @@ "OnlineUsers": "Online Users", "Paste": "Paste", "PauseSession": "Pause Session", + "PermissionExpired": "Permission expired", + "PermissionValid": "Permission valid", "ReadOnly": "Read-Only", "Reconnect": "Reconnect", "Refresh": "Refresh", @@ -68,4 +70,4 @@ "WaitFileTransfer": "Wait file transfer to finish", "WebSocketClosed": "WebSocket closed", "Writable": "Writable" -} \ No newline at end of file +} diff --git a/apps/i18n/koko/zh.json b/apps/i18n/koko/zh.json index e124d1574..ddebc4d65 100644 --- a/apps/i18n/koko/zh.json +++ b/apps/i18n/koko/zh.json @@ -36,6 +36,8 @@ "OnlineUsers": "在线人员", "Paste": "粘贴", "PauseSession": "暂停此会话", + "PermissionExpired": "权限已过期", + "PermissionValid": "权限有效", "ReadOnly": "只读", "Reconnect": "重新连接", "Refresh": "刷新", @@ -68,4 +70,4 @@ "WaitFileTransfer": "等待文件传输结束", "WebSocketClosed": "WebSocket 已关闭", "Writable": "可写" -} \ No newline at end of file +} From 9b0c81333f803299f57a6f368f45bd76cea45044 Mon Sep 17 00:00:00 2001 From: ibuler <ibuler@qq.com> Date: Thu, 17 Oct 2024 10:14:33 +0800 Subject: [PATCH 35/36] perf: debug pub sub --- apps/common/utils/connection.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/common/utils/connection.py b/apps/common/utils/connection.py index cbe961968..5ec4f95b2 100644 --- a/apps/common/utils/connection.py +++ b/apps/common/utils/connection.py @@ -47,6 +47,7 @@ class Subscription: self.ch = pb.ch self.sub = sub self.unsubscribed = False + logger.info("Subscribed to channel: ", sub) def _handle_msg(self, _next, error, complete): """ @@ -105,10 +106,11 @@ class Subscription: def unsubscribe(self): self.unsubscribed = True + logger.info("Unsubscribed from channel: ", self.sub) try: self.sub.close() except Exception as e: - logger.debug('Unsubscribe msg error: {}'.format(e)) + logger.warning('Unsubscribe msg error: {}'.format(e)) def retry(self, _next, error, complete): logger.info('Retry subscribe channel: {}'.format(self.ch)) From b0f86e43a61eba7414a2d1c491237c864e792985 Mon Sep 17 00:00:00 2001 From: feng <1304903146@qq.com> Date: Thu, 17 Oct 2024 12:03:31 +0800 Subject: [PATCH 36/36] perf: Translate --- apps/i18n/core/en/LC_MESSAGES/django.po | 140 +- apps/i18n/core/ja/LC_MESSAGES/django.po | 1536 +++++++++++------- apps/i18n/core/zh/LC_MESSAGES/django.po | 151 +- apps/i18n/core/zh_Hant/LC_MESSAGES/django.po | 1090 ++++++++----- apps/i18n/koko/en.json | 2 +- apps/i18n/koko/ja.json | 2 + apps/i18n/koko/zh.json | 2 +- apps/i18n/koko/zh_hant.json | 2 + apps/i18n/lina/en.json | 4 +- apps/i18n/lina/ja.json | 4 +- apps/i18n/lina/zh.json | 4 +- apps/i18n/lina/zh_hant.json | 4 +- 12 files changed, 1756 insertions(+), 1185 deletions(-) diff --git a/apps/i18n/core/en/LC_MESSAGES/django.po b/apps/i18n/core/en/LC_MESSAGES/django.po index d850b8f43..72ad7b488 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-10-14 15:58+0800\n" +"POT-Creation-Date: 2024-10-17 11:45+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -64,7 +64,7 @@ msgstr "" #: accounts/automations/backup_account/handlers.py:219 #: accounts/const/automation.py:110 -#: accounts/serializers/automations/change_secret.py:166 +#: accounts/serializers/automations/change_secret.py:153 #: assets/serializers/automations/base.py:52 audits/const.py:64 #: audits/models.py:64 audits/signal_handlers/activity_log.py:33 #: common/const/choices.py:65 ops/const.py:74 ops/serializers/celery.py:48 @@ -75,7 +75,7 @@ msgstr "Success" #: accounts/automations/backup_account/handlers.py:221 #: accounts/const/account.py:34 accounts/const/automation.py:109 -#: accounts/serializers/automations/change_secret.py:167 audits/const.py:65 +#: accounts/serializers/automations/change_secret.py:154 audits/const.py:65 #: audits/signal_handlers/activity_log.py:33 common/const/choices.py:66 #: ops/const.py:76 terminal/const.py:79 xpack/plugins/cloud/const.py:47 msgid "Failed" @@ -347,8 +347,8 @@ msgstr "" #: accounts/serializers/account/account.py:226 #: accounts/serializers/account/account.py:272 #: accounts/serializers/account/gathered_account.py:10 -#: accounts/serializers/automations/change_secret.py:111 -#: accounts/serializers/automations/change_secret.py:143 +#: accounts/serializers/automations/change_secret.py:98 +#: accounts/serializers/automations/change_secret.py:130 #: 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 @@ -359,7 +359,7 @@ msgstr "" #: terminal/serializers/command.py:17 terminal/serializers/session.py:30 #: terminal/templates/terminal/_msg_command_warning.html:4 #: terminal/templates/terminal/_msg_session_sharing.html:4 -#: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:288 +#: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:289 msgid "Asset" msgstr "" @@ -391,8 +391,8 @@ msgid "Source ID" msgstr "" #: accounts/models/account.py:62 -#: accounts/serializers/automations/change_secret.py:113 -#: accounts/serializers/automations/change_secret.py:144 +#: accounts/serializers/automations/change_secret.py:100 +#: accounts/serializers/automations/change_secret.py:131 #: accounts/templates/accounts/change_secret_failed_info.html:12 #: acls/serializers/base.py:124 #: acls/templates/acls/asset_login_reminder.html:10 @@ -493,20 +493,20 @@ msgstr "" #: accounts/serializers/account/backup.py:48 #: accounts/serializers/automations/base.py:56 #: assets/models/automations/base.py:122 -#: assets/serializers/automations/base.py:40 xpack/plugins/cloud/models.py:240 -#: xpack/plugins/cloud/serializers/task.py:243 +#: assets/serializers/automations/base.py:40 xpack/plugins/cloud/models.py:241 +#: xpack/plugins/cloud/serializers/task.py:247 msgid "Trigger mode" msgstr "" #: accounts/models/automations/backup_account.py:134 audits/models.py:203 #: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:158 -#: xpack/plugins/cloud/models.py:229 +#: xpack/plugins/cloud/models.py:230 msgid "Reason" msgstr "" #: accounts/models/automations/backup_account.py:136 -#: accounts/serializers/automations/change_secret.py:110 -#: accounts/serializers/automations/change_secret.py:145 +#: accounts/serializers/automations/change_secret.py:97 +#: accounts/serializers/automations/change_secret.py:132 #: ops/serializers/job.py:74 terminal/serializers/session.py:54 msgid "Is success" msgstr "Is success" @@ -597,8 +597,8 @@ msgstr "" #: terminal/serializers/applet.py:18 terminal/serializers/applet_host.py:148 #: terminal/serializers/virtualapp.py:35 tickets/models/ticket/general.py:284 #: tickets/serializers/super_ticket.py:13 -#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:225 -#: xpack/plugins/cloud/models.py:292 +#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:226 +#: xpack/plugins/cloud/models.py:293 msgid "Status" msgstr "" @@ -732,7 +732,7 @@ msgstr "" #: terminal/models/virtualapp/virtualapp.py:19 tickets/api/ticket.py:87 #: users/forms/profile.py:32 users/models/group.py:13 #: users/models/preference.py:11 users/models/user/__init__.py:57 -#: xpack/plugins/cloud/models.py:34 xpack/plugins/cloud/models.py:308 +#: xpack/plugins/cloud/models.py:34 xpack/plugins/cloud/models.py:309 #: xpack/plugins/cloud/serializers/task.py:75 msgid "Name" msgstr "" @@ -761,7 +761,7 @@ msgstr "" msgid "Push params" msgstr "" -#: accounts/models/template.py:26 xpack/plugins/cloud/models.py:389 +#: accounts/models/template.py:26 xpack/plugins/cloud/models.py:390 msgid "Account template" msgstr "" @@ -1061,7 +1061,7 @@ msgstr "" #: terminal/models/session/session.py:47 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 #: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91 -#: xpack/plugins/cloud/models.py:41 xpack/plugins/cloud/models.py:122 +#: xpack/plugins/cloud/models.py:41 xpack/plugins/cloud/models.py:123 msgid "Comment" msgstr "Description" @@ -1106,15 +1106,7 @@ msgid "" "type." msgstr "" -#: accounts/serializers/automations/change_secret.py:84 -msgid "* Please enter the correct password length" -msgstr "" - -#: accounts/serializers/automations/change_secret.py:88 -msgid "* Password length range 6-30 bits" -msgstr "" - -#: accounts/serializers/automations/change_secret.py:117 +#: accounts/serializers/automations/change_secret.py:104 #: assets/models/automations/base.py:127 msgid "Automation task execution" msgstr "" @@ -1336,12 +1328,12 @@ msgid "Notify and warn" msgstr "" #: acls/models/base.py:37 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:114 xpack/plugins/cloud/models.py:314 +#: terminal/models/component/endpoint.py:114 xpack/plugins/cloud/models.py:315 msgid "Priority" msgstr "" #: acls/models/base.py:38 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:115 xpack/plugins/cloud/models.py:315 +#: terminal/models/component/endpoint.py:115 xpack/plugins/cloud/models.py:316 msgid "1-100, the lower the value will be match first" msgstr "" @@ -1385,7 +1377,7 @@ msgid "Command" msgstr "" #: acls/models/command_acl.py:17 assets/models/cmd_filter.py:59 -#: xpack/plugins/cloud/models.py:355 +#: xpack/plugins/cloud/models.py:356 msgid "Regex" msgstr "" @@ -1502,7 +1494,7 @@ msgstr "" #: authentication/templates/authentication/_msg_oauth_bind.html:12 #: authentication/templates/authentication/_msg_rest_password_success.html:8 #: authentication/templates/authentication/_msg_rest_public_key_success.html:8 -#: common/drf/renders/base.py:150 xpack/plugins/cloud/models.py:390 +#: common/drf/renders/base.py:150 xpack/plugins/cloud/models.py:391 msgid "IP" msgstr "" @@ -1939,7 +1931,7 @@ msgstr "" #: assets/models/asset/common.py:169 assets/models/platform.py:149 #: authentication/backends/passkey/models.py:12 #: authentication/serializers/connect_token_secret.py:118 -#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:385 +#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:386 msgid "Platform" msgstr "" @@ -2002,7 +1994,7 @@ msgstr "" #: assets/models/automations/base.py:18 assets/models/cmd_filter.py:32 #: assets/models/node.py:553 perms/models/asset_permission.py:72 -#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:386 +#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:387 msgid "Node" msgstr "" @@ -2319,7 +2311,7 @@ msgstr "" #: authentication/serializers/connect_token_secret.py:30 #: authentication/serializers/connect_token_secret.py:75 #: perms/models/asset_permission.py:76 perms/serializers/permission.py:56 -#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:388 +#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:389 #: xpack/plugins/cloud/serializers/task.py:35 msgid "Protocols" msgstr "" @@ -3607,7 +3599,7 @@ msgid "Component" msgstr "" #: authentication/serializers/connect_token_secret.py:136 -#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:387 +#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:388 msgid "Domain" msgstr "" @@ -4867,7 +4859,7 @@ msgid "Date last run" msgstr "" #: ops/models/base.py:51 ops/models/job.py:238 -#: xpack/plugins/cloud/models.py:223 +#: xpack/plugins/cloud/models.py:224 msgid "Result" msgstr "" @@ -8039,7 +8031,7 @@ msgid "Access key secret" msgstr "" #: terminal/serializers/storage.py:68 xpack/plugins/cloud/manager.py:100 -#: xpack/plugins/cloud/models.py:285 +#: xpack/plugins/cloud/models.py:286 msgid "Region" msgstr "" @@ -9126,11 +9118,11 @@ msgid "" "administrator." msgstr "" -#: users/signal_handlers.py:196 +#: users/signal_handlers.py:197 msgid "Clean up expired user sessions" msgstr "" -#: users/signal_handlers.py:198 +#: 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" @@ -9560,7 +9552,7 @@ msgstr "" msgid "Public IP" msgstr "" -#: xpack/plugins/cloud/const.py:42 xpack/plugins/cloud/models.py:359 +#: xpack/plugins/cloud/const.py:42 xpack/plugins/cloud/models.py:360 msgid "Instance name" msgstr "" @@ -9725,133 +9717,133 @@ msgstr "" msgid "IP network segment group" msgstr "" -#: xpack/plugins/cloud/models.py:115 +#: xpack/plugins/cloud/models.py:116 #: xpack/plugins/cloud/serializers/task.py:161 -msgid "Sync IP type" +msgid "Preferred IP type" msgstr "" -#: xpack/plugins/cloud/models.py:118 +#: xpack/plugins/cloud/models.py:119 msgid "Always update" msgstr "" -#: xpack/plugins/cloud/models.py:120 +#: xpack/plugins/cloud/models.py:121 msgid "Fully synchronous" msgstr "" -#: xpack/plugins/cloud/models.py:125 +#: xpack/plugins/cloud/models.py:126 msgid "Date last sync" msgstr "" -#: xpack/plugins/cloud/models.py:128 xpack/plugins/cloud/models.py:377 -#: xpack/plugins/cloud/models.py:403 +#: xpack/plugins/cloud/models.py:129 xpack/plugins/cloud/models.py:378 +#: xpack/plugins/cloud/models.py:404 msgid "Strategy" msgstr "" -#: xpack/plugins/cloud/models.py:133 xpack/plugins/cloud/models.py:221 +#: xpack/plugins/cloud/models.py:134 xpack/plugins/cloud/models.py:222 msgid "Sync instance task" msgstr "" -#: xpack/plugins/cloud/models.py:232 xpack/plugins/cloud/models.py:295 +#: xpack/plugins/cloud/models.py:233 xpack/plugins/cloud/models.py:296 msgid "Date sync" msgstr "" -#: xpack/plugins/cloud/models.py:236 +#: xpack/plugins/cloud/models.py:237 msgid "Sync instance snapshot" msgstr "" -#: xpack/plugins/cloud/models.py:244 +#: xpack/plugins/cloud/models.py:245 msgid "Sync instance task execution" msgstr "" -#: xpack/plugins/cloud/models.py:275 +#: xpack/plugins/cloud/models.py:276 msgid "Sync task" msgstr "" -#: xpack/plugins/cloud/models.py:279 +#: xpack/plugins/cloud/models.py:280 msgid "Sync instance task history" msgstr "" -#: xpack/plugins/cloud/models.py:282 +#: xpack/plugins/cloud/models.py:283 msgid "Instance" msgstr "" -#: xpack/plugins/cloud/models.py:299 +#: xpack/plugins/cloud/models.py:300 msgid "Sync instance detail" msgstr "" -#: xpack/plugins/cloud/models.py:311 xpack/plugins/cloud/serializers/task.py:77 +#: xpack/plugins/cloud/models.py:312 xpack/plugins/cloud/serializers/task.py:77 msgid "Rule relation" msgstr "" -#: xpack/plugins/cloud/models.py:321 +#: xpack/plugins/cloud/models.py:322 msgid "Task strategy" msgstr "" -#: xpack/plugins/cloud/models.py:348 +#: xpack/plugins/cloud/models.py:349 msgid "Equal" msgstr "" -#: xpack/plugins/cloud/models.py:349 +#: xpack/plugins/cloud/models.py:350 msgid "Not Equal" msgstr "" -#: xpack/plugins/cloud/models.py:350 +#: xpack/plugins/cloud/models.py:351 msgid "In" msgstr "" -#: xpack/plugins/cloud/models.py:351 +#: xpack/plugins/cloud/models.py:352 msgid "Contains" msgstr "" -#: xpack/plugins/cloud/models.py:352 +#: xpack/plugins/cloud/models.py:353 msgid "Exclude" msgstr "" -#: xpack/plugins/cloud/models.py:353 +#: xpack/plugins/cloud/models.py:354 msgid "Startswith" msgstr "" -#: xpack/plugins/cloud/models.py:354 +#: xpack/plugins/cloud/models.py:355 msgid "Endswith" msgstr "" -#: xpack/plugins/cloud/models.py:360 +#: xpack/plugins/cloud/models.py:361 msgid "Instance platform" msgstr "" -#: xpack/plugins/cloud/models.py:361 +#: xpack/plugins/cloud/models.py:362 msgid "Instance address" msgstr "" -#: xpack/plugins/cloud/models.py:368 +#: xpack/plugins/cloud/models.py:369 msgid "Rule attr" msgstr "" -#: xpack/plugins/cloud/models.py:372 +#: xpack/plugins/cloud/models.py:373 msgid "Rule match" msgstr "" -#: xpack/plugins/cloud/models.py:374 +#: xpack/plugins/cloud/models.py:375 msgid "Rule value" msgstr "" -#: xpack/plugins/cloud/models.py:381 xpack/plugins/cloud/serializers/task.py:80 +#: xpack/plugins/cloud/models.py:382 xpack/plugins/cloud/serializers/task.py:80 msgid "Strategy rule" msgstr "" -#: xpack/plugins/cloud/models.py:391 +#: xpack/plugins/cloud/models.py:392 msgid "Name strategy" msgstr "" -#: xpack/plugins/cloud/models.py:398 +#: xpack/plugins/cloud/models.py:399 msgid "Action attr" msgstr "" -#: xpack/plugins/cloud/models.py:400 +#: xpack/plugins/cloud/models.py:401 msgid "Action value" msgstr "" -#: xpack/plugins/cloud/models.py:407 xpack/plugins/cloud/serializers/task.py:83 +#: xpack/plugins/cloud/models.py:408 xpack/plugins/cloud/serializers/task.py:83 msgid "Strategy action" msgstr "" diff --git a/apps/i18n/core/ja/LC_MESSAGES/django.po b/apps/i18n/core/ja/LC_MESSAGES/django.po index 62e9455d2..7cd0d8bf5 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-10-14 15:58+0800\n" +"POT-Creation-Date: 2024-10-17 11:45+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -64,7 +64,7 @@ msgstr "仕上げ" #: accounts/automations/backup_account/handlers.py:219 #: accounts/const/automation.py:110 -#: accounts/serializers/automations/change_secret.py:166 +#: accounts/serializers/automations/change_secret.py:153 #: assets/serializers/automations/base.py:52 audits/const.py:64 #: audits/models.py:64 audits/signal_handlers/activity_log.py:33 #: common/const/choices.py:65 ops/const.py:74 ops/serializers/celery.py:48 @@ -75,7 +75,7 @@ msgstr "成功" #: accounts/automations/backup_account/handlers.py:221 #: accounts/const/account.py:34 accounts/const/automation.py:109 -#: accounts/serializers/automations/change_secret.py:167 audits/const.py:65 +#: accounts/serializers/automations/change_secret.py:154 audits/const.py:65 #: audits/signal_handlers/activity_log.py:33 common/const/choices.py:66 #: ops/const.py:76 terminal/const.py:79 xpack/plugins/cloud/const.py:47 msgid "Failed" @@ -192,8 +192,7 @@ 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 "スキップ" @@ -348,8 +347,8 @@ msgstr "ユーザー %s がパスワードを閲覧/導き出しました" #: accounts/serializers/account/account.py:226 #: accounts/serializers/account/account.py:272 #: accounts/serializers/account/gathered_account.py:10 -#: accounts/serializers/automations/change_secret.py:111 -#: accounts/serializers/automations/change_secret.py:143 +#: accounts/serializers/automations/change_secret.py:98 +#: accounts/serializers/automations/change_secret.py:130 #: 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 @@ -360,7 +359,7 @@ msgstr "ユーザー %s がパスワードを閲覧/導き出しました" #: terminal/serializers/command.py:17 terminal/serializers/session.py:30 #: terminal/templates/terminal/_msg_command_warning.html:4 #: terminal/templates/terminal/_msg_session_sharing.html:4 -#: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:288 +#: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:289 msgid "Asset" msgstr "資産" @@ -392,16 +391,16 @@ msgid "Source ID" msgstr "ソース ID" #: accounts/models/account.py:62 -#: accounts/serializers/automations/change_secret.py:113 -#: accounts/serializers/automations/change_secret.py:144 +#: accounts/serializers/automations/change_secret.py:100 +#: accounts/serializers/automations/change_secret.py:131 #: accounts/templates/accounts/change_secret_failed_info.html:12 #: acls/serializers/base.py:124 #: acls/templates/acls/asset_login_reminder.html:10 #: assets/serializers/gateway.py:33 audits/models.py:59 #: authentication/api/connection_token.py:411 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:34 terminal/serializers/command.py:72 +#: terminal/backends/command/models.py:18 terminal/models/session/session.py:34 +#: 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 @@ -494,20 +493,20 @@ msgstr "アカウントのバックアップスナップショット" #: accounts/serializers/account/backup.py:48 #: accounts/serializers/automations/base.py:56 #: assets/models/automations/base.py:122 -#: assets/serializers/automations/base.py:40 xpack/plugins/cloud/models.py:240 -#: xpack/plugins/cloud/serializers/task.py:243 +#: assets/serializers/automations/base.py:40 xpack/plugins/cloud/models.py:241 +#: xpack/plugins/cloud/serializers/task.py:247 msgid "Trigger mode" msgstr "トリガーモード" #: accounts/models/automations/backup_account.py:134 audits/models.py:203 #: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:158 -#: xpack/plugins/cloud/models.py:229 +#: xpack/plugins/cloud/models.py:230 msgid "Reason" msgstr "理由" #: accounts/models/automations/backup_account.py:136 -#: accounts/serializers/automations/change_secret.py:110 -#: accounts/serializers/automations/change_secret.py:145 +#: accounts/serializers/automations/change_secret.py:97 +#: accounts/serializers/automations/change_secret.py:132 #: ops/serializers/job.py:74 terminal/serializers/session.py:54 msgid "Is success" msgstr "成功は" @@ -598,8 +597,8 @@ msgstr "終了日" #: terminal/serializers/applet.py:18 terminal/serializers/applet_host.py:148 #: terminal/serializers/virtualapp.py:35 tickets/models/ticket/general.py:284 #: tickets/serializers/super_ticket.py:13 -#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:225 -#: xpack/plugins/cloud/models.py:292 +#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:226 +#: xpack/plugins/cloud/models.py:293 msgid "Status" msgstr "ステータス" @@ -725,17 +724,15 @@ 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:111 -#: 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 #: users/forms/profile.py:32 users/models/group.py:13 #: users/models/preference.py:11 users/models/user/__init__.py:57 -#: xpack/plugins/cloud/models.py:34 xpack/plugins/cloud/models.py:308 +#: xpack/plugins/cloud/models.py:34 xpack/plugins/cloud/models.py:309 #: xpack/plugins/cloud/serializers/task.py:75 msgid "Name" msgstr "名前" @@ -764,7 +761,7 @@ msgstr "プラットフォーム" msgid "Push params" msgstr "パラメータをプッシュする" -#: accounts/models/template.py:26 xpack/plugins/cloud/models.py:389 +#: accounts/models/template.py:26 xpack/plugins/cloud/models.py:390 msgid "Account template" msgstr "アカウント テンプレート" @@ -790,7 +787,8 @@ 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" @@ -800,7 +798,9 @@ 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" @@ -810,7 +810,9 @@ msgstr "アカウントバックアップルートタスクの結果の通知" msgid "" "{} - The account backup passage task has been completed. See the attachment " "for details" -msgstr "{} -アカウントバックアップの通過タスクが完了しました。詳細は添付ファイルをご覧ください" +msgstr "" +"{} -アカウントバックアップの通過タスクが完了しました。詳細は添付ファイルをご" +"覧ください" #: accounts/notifications.py:25 msgid "" @@ -818,8 +820,9 @@ 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" @@ -837,7 +840,8 @@ 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" @@ -880,9 +884,9 @@ msgstr "カテゴリ" #: assets/serializers/asset/common.py:146 assets/serializers/platform.py:159 #: assets/serializers/platform.py:171 audits/serializers.py:53 #: audits/serializers.py:170 -#: authentication/serializers/connect_token_secret.py:126 -#: ops/models/job.py:150 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:150 +#: 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 @@ -950,10 +954,9 @@ msgstr "ID" #: accounts/serializers/account/account.py:475 acls/serializers/base.py:116 #: 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:171 -#: 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:171 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 @@ -1003,7 +1006,8 @@ 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" @@ -1036,17 +1040,21 @@ 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" @@ -1063,16 +1071,16 @@ 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:158 ops/models/playbook.py:33 -#: 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:26 +#: assets/models/cmd_filter.py:88 common/db/models.py:36 ops/models/adhoc.py:25 +#: ops/models/job.py:158 ops/models/playbook.py:33 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:26 #: terminal/models/component/endpoint.py:121 #: terminal/models/session/session.py:47 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 #: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91 -#: xpack/plugins/cloud/models.py:41 xpack/plugins/cloud/models.py:122 +#: xpack/plugins/cloud/models.py:41 xpack/plugins/cloud/models.py:123 msgid "Comment" msgstr "コメント" @@ -1082,13 +1090,14 @@ msgid "" "asset secret > Login secret > Manual input. <br/ >For security, please set " "config CACHE_LOGIN_PASSWORD_ENABLED to true" msgstr "" -"現在、AD/LDAPからのログインのみをサポートしています。シークレットの優先順位: 資産シークレット内の同じアカウント > ログインシークレット > " -"手動入力. <br/> セキュリティのために、「config CACHE_LOGIN_PASSWORD_ENABLED」をtrueに設定してください。 " +"現在、AD/LDAPからのログインのみをサポートしています。シークレットの優先順位: " +"資産シークレット内の同じアカウント > ログインシークレット > 手動入力. <br/> " +"セキュリティのために、「config CACHE_LOGIN_PASSWORD_ENABLED」をtrueに設定して" +"ください。 " #: accounts/serializers/automations/base.py:23 #: assets/models/asset/common.py:176 assets/serializers/asset/common.py:172 -#: assets/serializers/automations/base.py:21 -#: perms/serializers/permission.py:47 +#: assets/serializers/automations/base.py:21 perms/serializers/permission.py:47 msgid "Nodes" msgstr "ノード" @@ -1118,17 +1127,10 @@ 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:84 -msgid "* Please enter the correct password length" -msgstr "* 正しいパスワードの長さを入力してください" - -#: accounts/serializers/automations/change_secret.py:88 -msgid "* Password length range 6-30 bits" -msgstr "* パスワードの長さの範囲6-30ビット" - -#: accounts/serializers/automations/change_secret.py:117 +#: accounts/serializers/automations/change_secret.py:104 #: assets/models/automations/base.py:127 msgid "Automation task execution" msgstr "自動タスク実行履歴" @@ -1154,11 +1156,16 @@ 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" @@ -1174,18 +1181,30 @@ 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" @@ -1193,7 +1212,9 @@ 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 @@ -1212,13 +1233,18 @@ 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" @@ -1226,13 +1252,18 @@ 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." @@ -1244,9 +1275,12 @@ 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:32 msgid "Sync secret to vault" @@ -1256,7 +1290,9 @@ 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" @@ -1266,7 +1302,9 @@ 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" @@ -1297,13 +1335,16 @@ 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" @@ -1339,12 +1380,12 @@ msgid "Notify and warn" msgstr "プロンプトと警告" #: acls/models/base.py:37 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:114 xpack/plugins/cloud/models.py:314 +#: terminal/models/component/endpoint.py:114 xpack/plugins/cloud/models.py:315 msgid "Priority" msgstr "優先順位" #: acls/models/base.py:38 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:115 xpack/plugins/cloud/models.py:315 +#: terminal/models/component/endpoint.py:115 xpack/plugins/cloud/models.py:316 msgid "1-100, the lower the value will be match first" msgstr "1-100、低い値は最初に一致します" @@ -1358,8 +1399,7 @@ msgstr "レビュー担当者" #: authentication/models/connection_token.py:53 #: 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:27 +#: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:27 #: terminal/models/component/endpoint.py:122 #: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44 #: tickets/const.py:36 @@ -1389,7 +1429,7 @@ msgid "Command" msgstr "コマンド" #: acls/models/command_acl.py:17 assets/models/cmd_filter.py:59 -#: xpack/plugins/cloud/models.py:355 +#: xpack/plugins/cloud/models.py:356 msgid "Regex" msgstr "正規情報" @@ -1474,9 +1514,9 @@ 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" @@ -1504,14 +1544,14 @@ 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 #: authentication/templates/authentication/_msg_rest_password_success.html:8 #: authentication/templates/authentication/_msg_rest_public_key_success.html:8 -#: common/drf/renders/base.py:150 xpack/plugins/cloud/models.py:390 +#: common/drf/renders/base.py:150 xpack/plugins/cloud/models.py:391 msgid "IP" msgstr "IP" @@ -1545,7 +1585,9 @@ 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 @@ -1574,7 +1616,9 @@ msgstr "ユーザーエージェント" #: assets/api/asset/asset.py:190 msgid "Cannot create asset directly, you should create a host or other" -msgstr "資産を直接作成することはできません。ホストまたはその他を作成する必要があります" +msgstr "" +"資産を直接作成することはできません。ホストまたはその他を作成する必要がありま" +"す" #: assets/api/asset/asset.py:194 msgid "The number of assets exceeds the limit of 5000" @@ -1776,8 +1820,9 @@ 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" @@ -1790,7 +1835,9 @@ msgid "" "account username <br>- ${HOME} The home directory of the connected account " "<br>- ${USER} The username of the user" msgstr "" -"SFTPルートディレクトリ、サポート変数:<br>-${ACCOUNT}接続されたアカウントのユーザー名<br>-${HOME}接続されたアカウントのホームディレクトリ<br>-${USER}ユーザーのユーザー名" +"SFTPルートディレクトリ、サポート変数:<br>-${ACCOUNT}接続されたアカウントの" +"ユーザー名<br>-${HOME}接続されたアカウントのホームディレクトリ<br>-${USER}" +"ユーザーのユーザー名" #: assets/const/protocol.py:81 msgid "Console" @@ -1811,17 +1858,20 @@ msgstr "セキュリティ" #: assets/const/protocol.py:89 msgid "" -"Security layer to use for the connection:<br>Any<br>Automatically select the" -" security mode based on the security protocols supported by both the client " +"Security layer to use for the connection:<br>Any<br>Automatically select the " +"security mode based on the security protocols supported by both the client " "and the server<br>RDP<br>Legacy RDP encryption. This mode is generally only " "used for older Windows servers or in cases where a standard Windows login " "screen is desired<br>TLS<br>RDP authentication and encryption implemented " "via TLS.<br>NLA<br>This mode uses TLS encryption and requires the username " "and password to be given in advance" msgstr "" -"接続のセキュリティ層:<br>Any<br>クライアントとサーバーの両方でサポートされているセキュリティプロトコルに基づいて、セキュリティモードを自動的に選択します<br>RDP<br>レガシーRDP暗号化。このモードは、通常、古い" -" " -"Windowsサーバーや標準のWindowsログイン画面が必要な場合に使用されます<br>TLS<br>TLSによって実装されたRDP認証と暗号化<br>NLA<br>このモードはTLS暗号化を使用し、事前にユーザー名とパスワードを提供する必要があります<br>" +"接続のセキュリティ層:<br>Any<br>クライアントとサーバーの両方でサポートされて" +"いるセキュリティプロトコルに基づいて、セキュリティモードを自動的に選択します" +"<br>RDP<br>レガシーRDP暗号化。このモードは、通常、古い Windowsサーバーや標準" +"のWindowsログイン画面が必要な場合に使用されます<br>TLS<br>TLSによって実装され" +"たRDP認証と暗号化<br>NLA<br>このモードはTLS暗号化を使用し、事前にユーザー名と" +"パスワードを提供する必要があります<br>" #: assets/const/protocol.py:106 msgid "AD domain" @@ -1897,7 +1947,9 @@ 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 @@ -1951,7 +2003,7 @@ msgstr "アドレス" #: assets/models/asset/common.py:169 assets/models/platform.py:149 #: authentication/backends/passkey/models.py:12 #: authentication/serializers/connect_token_secret.py:118 -#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:385 +#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:386 msgid "Platform" msgstr "プラットフォーム" @@ -2014,7 +2066,7 @@ msgstr "プロキシー" #: assets/models/automations/base.py:18 assets/models/cmd_filter.py:32 #: assets/models/node.py:553 perms/models/asset_permission.py:72 -#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:386 +#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:387 msgid "Node" msgstr "ノード" @@ -2305,7 +2357,9 @@ 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\"]" @@ -2319,19 +2373,23 @@ 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 #: authentication/serializers/connect_token_secret.py:75 #: perms/models/asset_permission.py:76 perms/serializers/permission.py:56 -#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:388 +#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:389 #: xpack/plugins/cloud/serializers/task.py:35 msgid "Protocols" msgstr "プロトコル" @@ -2369,23 +2427,31 @@ 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" @@ -2457,7 +2523,9 @@ 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 @@ -2528,7 +2596,9 @@ 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." @@ -2538,11 +2608,14 @@ 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" @@ -2562,8 +2635,9 @@ 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" @@ -2599,9 +2673,12 @@ 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: " @@ -2617,16 +2694,21 @@ 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" @@ -2634,9 +2716,12 @@ 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" @@ -2646,7 +2731,9 @@ 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 " @@ -2659,9 +2746,11 @@ 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: {}" @@ -2684,8 +2773,7 @@ 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 @@ -2786,8 +2874,8 @@ msgstr "終了" #: audits/const.py:46 settings/serializers/terminal.py:6 #: terminal/models/applet/host.py:26 terminal/models/component/terminal.py:174 -#: 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 "ターミナル" @@ -2826,8 +2914,7 @@ msgid "Job audit log" msgstr "ジョブ監査ログ" #: audits/models.py:56 audits/models.py:100 audits/models.py:175 -#: terminal/models/session/session.py:39 -#: terminal/models/session/sharing.py:113 +#: terminal/models/session/session.py:39 terminal/models/session/sharing.py:113 msgid "Remote addr" msgstr "リモートaddr" @@ -3040,13 +3127,18 @@ 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" @@ -3054,10 +3146,12 @@ 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" @@ -3074,7 +3168,9 @@ msgstr "この操作には、MFAを検証する必要があります" #: authentication/api/connection_token.py:265 msgid "Reusable connection token is not allowed, global setting not enabled" -msgstr "再使用可能な接続トークンの使用は許可されていません。グローバル設定は有効になっていません" +msgstr "" +"再使用可能な接続トークンの使用は許可されていません。グローバル設定は有効に" +"なっていません" #: authentication/api/connection_token.py:379 msgid "Anonymous account is not supported for this asset" @@ -3113,7 +3209,9 @@ msgstr "ユーザーにマッチしなかった" msgid "" "The user is from {}, please go to the corresponding system to change the " "password" -msgstr "ユーザーは {}からです。対応するシステムにアクセスしてパスワードを変更してください。" +msgstr "" +"ユーザーは {}からです。対応するシステムにアクセスしてパスワードを変更してくだ" +"さい。" #: authentication/api/password.py:65 #: authentication/templates/authentication/login.html:393 @@ -3144,7 +3242,8 @@ 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." @@ -3157,7 +3256,9 @@ msgstr "OpenID エラー" #: authentication/backends/oidc/views.py:175 #: authentication/backends/saml2/views.py:282 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" @@ -3177,8 +3278,7 @@ 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 "最後に使用した日付" @@ -3257,27 +3357,34 @@ 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" @@ -3364,7 +3471,8 @@ msgstr "ログインする前にパスワードを変更する必要がありま #: authentication/errors/redirect.py:101 authentication/mixins.py:344 msgid "Your password has expired, please reset before logging in" -msgstr "パスワードの有効期限が切れました。ログインする前にリセットしてください。" +msgstr "" +"パスワードの有効期限が切れました。ログインする前にリセットしてください。" #: authentication/forms.py:34 msgid "Auto-login" @@ -3405,7 +3513,8 @@ msgstr "カスタム MFA 検証コード" #: authentication/mfa/custom.py:56 msgid "MFA custom global enabled, cannot disable" -msgstr "カスタム MFA はグローバルに有効になっており、無効にすることはできません" +msgstr "" +"カスタム MFA はグローバルに有効になっており、無効にすることはできません" #: authentication/mfa/otp.py:7 msgid "OTP code invalid, or server time error" @@ -3472,7 +3581,9 @@ 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" @@ -3618,7 +3729,7 @@ msgid "Component" msgstr "コンポーネント" #: authentication/serializers/connect_token_secret.py:136 -#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:387 +#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:388 msgid "Domain" msgstr "ドメイン" @@ -3686,9 +3797,11 @@ 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:161 #: users/serializers/profile.py:133 users/serializers/profile.py:160 @@ -3711,9 +3824,11 @@ 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" @@ -3791,7 +3906,9 @@ 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" @@ -3805,7 +3922,9 @@ 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" @@ -3850,7 +3969,9 @@ 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 @@ -3865,7 +3986,9 @@ 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 @@ -3876,7 +3999,9 @@ 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" @@ -3922,7 +4047,9 @@ 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 ?" @@ -4051,9 +4178,11 @@ 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:118 msgid "Slack Error" @@ -4159,12 +4288,13 @@ 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\"" @@ -4251,7 +4381,9 @@ 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 {}" @@ -4268,7 +4400,9 @@ 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" @@ -4278,11 +4412,15 @@ 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\", ...]" @@ -4292,7 +4430,9 @@ 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 @@ -4335,7 +4475,9 @@ 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" @@ -4459,10 +4601,14 @@ 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" @@ -4472,7 +4618,9 @@ 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" @@ -4493,9 +4641,12 @@ 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" @@ -4536,13 +4687,16 @@ msgid "" "configure nginx for url distribution,</div> </div>If you see this page, " "prove that you are not accessing the nginx listening port. Good luck.</div>" msgstr "" -"<div> " -"Lunaは個別にデプロイされたプログラムです。Luna、kokoをデプロイする必要があります。urlディストリビューションにnginxを設定します。</div>" -" </div> このページが表示されている場合は、nginxリスニングポートにアクセスしていないことを証明してください。頑張ってください。</div>" +"<div> Lunaは個別にデプロイされたプログラムです。Luna、kokoをデプロイする必要" +"があります。urlディストリビューションにnginxを設定します。</div> </div> この" +"ページが表示されている場合は、nginxリスニングポートにアクセスしていないことを" +"証明してください。頑張ってください。</div>" #: 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 "" @@ -4550,8 +4704,10 @@ msgid "" "configure nginx for url distribution,</div> </div>If you see this page, " "prove that you are not accessing the nginx listening port. Good luck.</div>" msgstr "" -"<div> Kokoは個別にデプロイされているプログラムです。Kokoをデプロイする必要があります。URL配布用にnginxを設定します。</div> " -"</div> このページが表示されている場合は、nginxリスニングポートにアクセスしていないことを証明してください。頑張ってください。</div>" +"<div> Kokoは個別にデプロイされているプログラムです。Kokoをデプロイする必要が" +"あります。URL配布用にnginxを設定します。</div> </div> このページが表示されて" +"いる場合は、nginxリスニングポートにアクセスしていないことを証明してください。" +"頑張ってください。</div>" #: labels/apps.py:8 msgid "App Labels" @@ -4615,7 +4771,8 @@ 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 "システムの警告やチケットなどを送信するためには、このタスクを実行します" @@ -4648,12 +4805,15 @@ 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:84 #, 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:85 #, python-brace-format @@ -4668,7 +4828,9 @@ 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:244 msgid "" @@ -4826,14 +4988,12 @@ 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 "含む" @@ -4866,10 +5026,9 @@ msgstr "モジュール" msgid "Args" msgstr "アルグ" -#: ops/models/adhoc.py:26 ops/models/playbook.py:36 -#: 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:36 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 "スコープ" @@ -4886,7 +5045,7 @@ msgid "Date last run" msgstr "最終実行日" #: ops/models/base.py:51 ops/models/job.py:238 -#: xpack/plugins/cloud/models.py:223 +#: xpack/plugins/cloud/models.py:224 msgid "Result" msgstr "結果" @@ -5036,7 +5195,9 @@ msgstr "Ansible タスクを実行する" msgid "" "Execute scheduled adhoc and playbooks, periodically invoking the task for " "execution" -msgstr "タイムスケジュールのショートカットコマンドやplaybookを実行するときは、このタスクを呼び出します" +msgstr "" +"タイムスケジュールのショートカットコマンドやplaybookを実行するときは、このタ" +"スクを呼び出します" #: ops/tasks.py:82 msgid "Run ansible task execution" @@ -5044,7 +5205,9 @@ msgstr "Ansible タスクの実行を開始する" #: ops/tasks.py:85 msgid "Execute the task when manually adhoc or playbooks" -msgstr "手動でショートカットコマンドやplaybookを実行するときは、このタスクを実行します" +msgstr "" +"手動でショートカットコマンドやplaybookを実行するときは、このタスクを実行しま" +"す" #: ops/tasks.py:99 msgid "Clear celery periodic tasks" @@ -5060,11 +5223,15 @@ msgstr "定期的なタスクの作成または更新" #: ops/tasks.py:127 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:140 msgid "Periodic check service performance" @@ -5072,10 +5239,13 @@ msgstr "サービスのパフォーマンスを定期的に確認する" #: ops/tasks.py:142 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:152 msgid "Clean up unexpected jobs" @@ -5083,12 +5253,17 @@ msgstr "例外ジョブのクリーンアップ" #: ops/tasks.py:154 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:167 msgid "Clean job_execution db record" @@ -5096,13 +5271,18 @@ msgstr "ジョブセンター実行履歴のクリーンアップ" #: ops/tasks.py:169 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" @@ -5152,7 +5332,8 @@ 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" @@ -5171,8 +5352,7 @@ 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 "組織" @@ -5336,8 +5516,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\"]" @@ -5357,12 +5537,19 @@ 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" @@ -5370,12 +5557,16 @@ 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 @@ -5494,7 +5685,8 @@ 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" @@ -5625,7 +5817,9 @@ 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" @@ -5782,7 +5976,9 @@ msgid "" "information, the system will automatically create the user using this email " "suffix" msgstr "" -"第三者ユーザーの認証が成功した後、第三者認証サービスプラットフォームがユーザーのメール情報を返さなかった場合、システムは自動的にこのメールのサフィックスでユーザーを作成します" +"第三者ユーザーの認証が成功した後、第三者認証サービスプラットフォームがユー" +"ザーのメール情報を返さなかった場合、システムは自動的にこのメールのサフィック" +"スでユーザーを作成します" #: settings/serializers/auth/base.py:37 msgid "Forgot Password URL" @@ -5801,21 +5997,24 @@ 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サーバー" @@ -5840,11 +6039,9 @@ 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 @@ -5856,7 +6053,8 @@ 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" @@ -5866,7 +6064,9 @@ 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" @@ -5877,15 +6077,16 @@ 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" @@ -5896,7 +6097,8 @@ 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" @@ -5906,59 +6108,51 @@ 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 キャッシュの有効期限 (秒)" @@ -5969,11 +6163,11 @@ msgid "" "cache<br>If the user OU structure has been adjusted, click Submit to clear " "the user DN cache" msgstr "" -"ユーザーがログイン認証時にクエリした User DN をキャッシュすると、ユーザー認証の速度を効果的に改善できます。<br>ユーザーの OU " -"構造が調整された場合は、提出をクリックしてユーザーの DN キャッシュをクリアできます。" +"ユーザーがログイン認証時にクエリした User DN をキャッシュすると、ユーザー認証" +"の速度を効果的に改善できます。<br>ユーザーの 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 "ページサイズを検索 (じょう)" @@ -5989,12 +6183,13 @@ 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<br>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<br>If " +"the user OU structure has been adjusted, click Submit to clear the user DN " "cache" msgstr "" -"ユーザーがログイン認証時にクエリされた User DN をキャッシュすることで、ユーザー認証の速度を効果的に向上させることができます<br>ユーザーの " -"OU 構造が調整された場合は、送信をクリックして User DN のキャッシュをクリアできます" +"ユーザーがログイン認証時にクエリされた User DN をキャッシュすることで、ユー" +"ザー認証の速度を効果的に向上させることができます<br>ユーザーの OU 構造が調整" +"された場合は、送信をクリックして User DN のキャッシュをクリアできます" #: settings/serializers/auth/oauth2.py:19 #: settings/serializers/auth/oauth2.py:22 @@ -6041,8 +6236,7 @@ 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 @@ -6050,11 +6244,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 "常にユーザーを更新" @@ -6087,7 +6281,8 @@ 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" @@ -6105,7 +6300,9 @@ 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" @@ -6164,7 +6361,9 @@ 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" @@ -6180,9 +6379,10 @@ 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" @@ -6212,7 +6412,9 @@ 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" @@ -6223,7 +6425,8 @@ 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)" @@ -6288,11 +6491,13 @@ 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 @@ -6313,7 +6518,8 @@ 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" @@ -6329,8 +6535,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" @@ -6338,9 +6544,11 @@ 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" @@ -6365,7 +6573,9 @@ 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" @@ -6374,7 +6584,8 @@ 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" @@ -6425,7 +6636,8 @@ 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)" @@ -6469,8 +6681,9 @@ 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:76 settings/serializers/feature.py:82 msgid "Chat AI" @@ -6481,8 +6694,7 @@ msgid "GPT Base URL" msgstr "GPTアドレス" #: settings/serializers/feature.py:86 -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:89 templates/_header_bar.html:96 @@ -6530,7 +6742,9 @@ msgstr "ユーザーの実行" #: settings/serializers/feature.py:124 msgid "" "Allow users to execute batch commands in the Workbench - Job Center - Adhoc" -msgstr "ユーザーがワークベンチ - ジョブセンター - Adhocでバッチコマンドを実行することを許可します" +msgstr "" +"ユーザーがワークベンチ - ジョブセンター - Adhocでバッチコマンドを実行すること" +"を許可します" #: settings/serializers/feature.py:128 msgid "Command blacklist" @@ -6556,7 +6770,9 @@ 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" @@ -6568,7 +6784,9 @@ msgstr "" #: settings/serializers/msg.py:34 msgid "The user to be used for email server authentication" -msgstr "メールサーバーにログインするためのユーザー名。通常、これはあなたのメールアドレスです" +msgstr "" +"メールサーバーにログインするためのユーザー名。通常、これはあなたのメールアド" +"レスです" #: settings/serializers/msg.py:38 msgid "" @@ -6594,7 +6812,9 @@ 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" @@ -6604,7 +6824,9 @@ 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" @@ -6612,9 +6834,11 @@ 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" @@ -6622,14 +6846,17 @@ 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)" @@ -6646,7 +6873,9 @@ msgstr "グループ化されていないノードを表示" #: settings/serializers/other.py:12 msgid "Perm single to ungroup node" msgstr "" -"グループ化されていないノードに個別に許可された資産を配置し、資産が存在するノードが表示されないようにしますが、そのノードが許可されていないという質問に質問" +"グループ化されていないノードに個別に許可された資産を配置し、資産が存在する" +"ノードが表示されないようにしますが、そのノードが許可されていないという質問に" +"質問" #: settings/serializers/security.py:17 msgid "User password expiration (day)" @@ -6658,8 +6887,10 @@ 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" @@ -6669,7 +6900,9 @@ 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)" @@ -6691,7 +6924,9 @@ 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" @@ -6717,7 +6952,9 @@ 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" @@ -6730,8 +6967,9 @@ 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" @@ -6739,13 +6977,14 @@ 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 @@ -6796,7 +7035,8 @@ 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)" @@ -6814,7 +7054,9 @@ 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" @@ -6830,11 +7072,13 @@ 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)" @@ -6844,7 +7088,9 @@ 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" @@ -6889,7 +7135,8 @@ msgstr "セッション共有" #: settings/serializers/security.py:213 msgid "Enabled, Allows user active session to be shared with other users" -msgstr "ユーザーのアクティブなセッションを他のユーザーと共有できるようにします。" +msgstr "" +"ユーザーのアクティブなセッションを他のユーザーと共有できるようにします。" #: settings/serializers/security.py:219 msgid "Insecure command alert" @@ -6918,24 +7165,30 @@ 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<br/>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コンポーネントにログインできるように許可する<br/>第三者認証サービス(例:AD/LDAP)が有効化されている場合、ユーザがAD/LDAPサーバから削除された後に再度ログインするのを防ぐためにこのオプションを無効化するべきです。" +"* 公開鍵認証でユーザがKoKoコンポーネントにログインできるように許可する<br/>第" +"三者認証サービス(例:AD/LDAP)が有効化されている場合、ユーザがAD/LDAPサーバ" +"から削除された後に再度ログインするのを防ぐためにこのオプションを無効化するべ" +"きです。" #: settings/serializers/terminal.py:43 msgid "Asset sorting" @@ -6947,21 +7200,23 @@ msgstr "ページサイズを一覧表示" #: settings/serializers/terminal.py:51 msgid "" -"* You can individually configure the service address and port in the service" -" endpoint<br/>If enabled, the Luna page will display the DB client launch " +"* You can individually configure the service address and port in the service " +"endpoint<br/>If enabled, the Luna page will display the DB client launch " "method when connecting to assets" msgstr "" -"* サーバエンドポイントでは、サービスアドレスとポートを個別に設定できます。<br/>有効化した場合、Luna " -"ページでは資産への接続時にDBクライアントの起動方法を表示します。" +"* サーバエンドポイントでは、サービスアドレスとポートを個別に設定できます。" +"<br/>有効化した場合、Luna ページでは資産への接続時にDBクライアントの起動方法" +"を表示します。" #: settings/serializers/terminal.py:59 msgid "" -"* You can individually configure the service address and port in the service" -" endpoint<br/>If enabled, the Luna page will display the download rdp file " +"* You can individually configure the service address and port in the service " +"endpoint<br/>If enabled, the Luna page will display the download rdp file " "button and RDP Client launch method when connecting to assets" msgstr "" -"* サーバエンドポイントでは、サービスアドレスとポートを個別に設定できます。<br/>有効化した場合、Luna ページでは資産への接続時にrdp " -"ファイルのダウンロードボタンとRDPクライアントの起動方法を表示します。" +"* サーバエンドポイントでは、サービスアドレスとポートを個別に設定できます。" +"<br/>有効化した場合、Luna ページでは資産への接続時にrdp ファイルのダウンロー" +"ドボタンとRDPクライアントの起動方法を表示します。" #: settings/serializers/terminal.py:66 msgid "Client connection" @@ -6970,11 +7225,11 @@ msgstr "クライアント接続" #: settings/serializers/terminal.py:68 msgid "" "* Allow connecting to the KoKo component via SSH client<br/>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 コンポーネントに接続できるように許可する<br/>有効化した場合、Luna " -"ページでは資産への接続時にSSHクライアントの起動方法を表示します。" +"* SSHクライアント経由でKoKo コンポーネントに接続できるように許可する<br/>有効" +"化した場合、Luna ページでは資産への接続時にSSHクライアントの起動方法を表示し" +"ます。" #: settings/serializers/tool.py:10 msgid "Tool" @@ -6986,9 +7241,11 @@ 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" @@ -6998,7 +7255,9 @@ 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" @@ -7010,10 +7269,13 @@ 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" @@ -7021,11 +7283,12 @@ 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" @@ -7159,7 +7422,9 @@ 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" @@ -7175,7 +7440,9 @@ 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" @@ -7216,7 +7483,8 @@ msgid "" " " msgstr "" "\n" -" アカウントが期限切れになったので、管理者に連絡してください。 " +" アカウントが期限切れになったので、管理者に連絡してくださ" +"い。 " #: templates/_message.html:13 msgid "Your account will at" @@ -7230,11 +7498,13 @@ msgstr "期限切れです。" #, python-format msgid "" "\n" -" Your password has expired, please click <a href=\"%(user_password_update_url)s\"> this link </a> update password.\n" +" Your password has expired, please click <a " +"href=\"%(user_password_update_url)s\"> this link </a> update password.\n" " " msgstr "" "\n" -" パスワードが期限切れになりましたので、クリックしてください <a href=\"%(user_password_update_url)s\"> リンク </a> パスワードの更新\n" +" パスワードが期限切れになりましたので、クリックしてください " +"<a href=\"%(user_password_update_url)s\"> リンク </a> パスワードの更新\n" " " #: templates/_message.html:30 @@ -7245,33 +7515,39 @@ msgstr "あなたのパスワードは" #, python-format msgid "" "\n" -" please click <a href=\"%(user_password_update_url)s\"> this link </a> to update your password.\n" +" please click <a href=\"%(user_password_update_url)s\"> this " +"link </a> to update your password.\n" " " msgstr "" "\n" -" クリックしてください <a href=\"%(user_password_update_url)s\"> リンク </a> パスワードの更新\n" +" クリックしてください <a " +"href=\"%(user_password_update_url)s\"> リンク </a> パスワードの更新\n" " " #: templates/_message.html:43 #, python-format msgid "" "\n" -" Your information was incomplete. Please click <a href=\"%(first_login_url)s\"> this link </a>to complete your information.\n" +" Your information was incomplete. Please click <a " +"href=\"%(first_login_url)s\"> this link </a>to complete your information.\n" " " msgstr "" "\n" -" あなたの情報が不完全なので、クリックしてください。 <a href=\"%(first_login_url)s\"> リンク </a> 補完\n" +" あなたの情報が不完全なので、クリックしてください。 <a " +"href=\"%(first_login_url)s\"> リンク </a> 補完\n" " " #: templates/_message.html:56 #, python-format msgid "" "\n" -" Your ssh public key not set or expired. Please click <a href=\"%(user_pubkey_update)s\"> this link </a>to update\n" +" Your ssh public key not set or expired. Please click <a " +"href=\"%(user_pubkey_update)s\"> this link </a>to update\n" " " msgstr "" "\n" -" SSHキーが設定されていないか無効になっている場合は、 <a href=\"%(user_pubkey_update)s\"> リンク </a> 更新\n" +" SSHキーが設定されていないか無効になっている場合は、 <a " +"href=\"%(user_pubkey_update)s\"> リンク </a> 更新\n" " " #: templates/_mfa_login_field.html:28 @@ -7303,8 +7579,9 @@ 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" @@ -7318,7 +7595,9 @@ 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" @@ -7328,7 +7607,9 @@ 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" @@ -7750,8 +8031,7 @@ msgstr "セッション再生をダウンロードできます" msgid "Account ID" msgstr "アカウント ID" -#: terminal/models/session/session.py:37 -#: terminal/models/session/sharing.py:118 +#: terminal/models/session/session.py:37 terminal/models/session/sharing.py:118 msgid "Login from" msgstr "ログイン元" @@ -7800,8 +8080,8 @@ msgstr "アクションパーミッション" msgid "Origin" msgstr "ソース" -#: terminal/models/session/sharing.py:42 -#: terminal/models/session/sharing.py:100 terminal/notifications.py:261 +#: terminal/models/session/sharing.py:42 terminal/models/session/sharing.py:100 +#: terminal/notifications.py:261 msgid "Session sharing" msgstr "セッション共有" @@ -7914,16 +8194,21 @@ 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" " <br> \n" " eg: https://172.16.10.110 or https://dev.jumpserver.com\n" " " msgstr "" -"ヒント: アプリケーション リリース マシンは、コア サービスと通信します。リリース マシンとコア サービスが同じネットワーク " -"セグメント上にある場合は、イントラネット アドレスを入力することをお勧めします。それ以外の場合は、現在のサイト URL を入力します。<br>例: " -"https://172.16.10.110 または https://dev.jumpserver.com" +"ヒント: アプリケーション リリース マシンは、コア サービスと通信します。リリー" +"ス マシンとコア サービスが同じネットワーク セグメント上にある場合は、イントラ" +"ネット アドレスを入力することをお勧めします。それ以外の場合は、現在のサイト " +"URL を入力します。<br>例: https://172.16.10.110 または https://dev." +"jumpserver.com" #: terminal/serializers/applet_host.py:46 terminal/serializers/storage.py:207 msgid "Ignore Certificate Verification" @@ -7936,12 +8221,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. <a href=\"https://learn.microsoft.com/en-us/windows-" -"server/remote/remote-desktop-services/rds-client-access-license\">Detail</a>" +"days. <a href=\"https://learn.microsoft.com/en-us/windows-server/remote/" +"remote-desktop-services/rds-client-access-license\">Detail</a>" msgstr "" -"存在しない場合、RDSは試用モードで、試用期間は120日間です。<a href='https://learn.microsoft.com/en-" -"us/windows-server/remote/remote-desktop-services/rds-client-access-" -"license'>詳細</a>" +"存在しない場合、RDSは試用モードで、試用期間は120日間です。<a href='https://" +"learn.microsoft.com/en-us/windows-server/remote/remote-desktop-services/rds-" +"client-access-license'>詳細</a>" #: terminal/serializers/applet_host.py:55 msgid "RDS License Server" @@ -7959,7 +8244,9 @@ 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)" @@ -7969,7 +8256,9 @@ 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)" @@ -7977,10 +8266,11 @@ 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 @@ -7989,13 +8279,17 @@ 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" @@ -8007,8 +8301,9 @@ 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" @@ -8058,7 +8353,9 @@ 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 "" @@ -8066,19 +8363,22 @@ 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" @@ -8134,7 +8434,7 @@ msgid "Access key secret" msgstr "アクセスキーシークレット" #: terminal/serializers/storage.py:68 xpack/plugins/cloud/manager.py:100 -#: xpack/plugins/cloud/models.py:285 +#: xpack/plugins/cloud/models.py:286 msgid "Region" msgstr "リージョン" @@ -8179,8 +8479,8 @@ msgid "" "If there are multiple hosts, use a comma (,) to separate them. <br>(For " "example: http://www.jumpserver.a.com:9100, http://www.jumpserver.b.com:9100)" msgstr "" -"ホストが複数ある場合は、カンマ (,) で区切ってください。<br>(例: http://www.jumpserver.a.com:9100, " -"http://www.jumpserver.b.com:9100)" +"ホストが複数ある場合は、カンマ (,) で区切ってください。<br>(例: http://www." +"jumpserver.a.com:9100, http://www.jumpserver.b.com:9100)" #: terminal/serializers/storage.py:199 msgid "Index by date" @@ -8211,7 +8511,9 @@ 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" @@ -8356,9 +8658,12 @@ 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" @@ -8366,9 +8671,12 @@ 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" @@ -8380,7 +8688,8 @@ 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が実行されます" @@ -8390,9 +8699,12 @@ 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" @@ -8400,9 +8712,12 @@ 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" @@ -8410,9 +8725,12 @@ 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" @@ -8420,12 +8738,16 @@ 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" @@ -8438,13 +8760,16 @@ 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: {}" @@ -8506,7 +8831,9 @@ 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" @@ -8740,7 +9067,9 @@ 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" @@ -8856,7 +9185,8 @@ msgid "" "in. you can also directly bind in \"personal information -> quick " "modification -> change MFA Settings\"!" msgstr "" -"有効にすると、次回のログイン時にマルチファクタ認証バインドプロセスに入ります。(個人情報->クイック修正->MFAマルチファクタ認証の設定)で直接バインド!" +"有効にすると、次回のログイン時にマルチファクタ認証バインドプロセスに入りま" +"す。(個人情報->クイック修正->MFAマルチファクタ認証の設定)で直接バインド!" #: users/forms/profile.py:59 msgid "* Enable MFA to make the account more secure." @@ -8864,11 +9194,12 @@ msgstr "* アカウントをより安全にするためにMFAを有効にしま #: users/forms/profile.py:68 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:82 users/serializers/preference/lina.py:21 msgid "New password" @@ -9021,10 +9352,12 @@ msgstr "ターミナルテーマ名" #: users/serializers/preference/lina.py:12 msgid "" "*! The password for file encryption, used for decryption when the system " -"sends emails containing file attachments. <br>Such as: account backup files," -" account password change results files" +"sends emails containing file attachments. <br>Such as: account backup files, " +"account password change results files" msgstr "" -"ファイル暗号化パスワードは、システムから送信されるメールにファイルの添付が含まれている場合、このパスワードで解読します。<br>例:アカウントのバックアップファイル、アカウントのパスワード変更結果ファイル" +"ファイル暗号化パスワードは、システムから送信されるメールにファイルの添付が含" +"まれている場合、このパスワードで解読します。<br>例:アカウントのバックアップ" +"ファイル、アカウントのパスワード変更結果ファイル" #: users/serializers/preference/lina.py:39 users/serializers/profile.py:48 msgid "The newly set password is inconsistent" @@ -9072,7 +9405,9 @@ 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 " @@ -9124,9 +9459,10 @@ 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" @@ -9196,7 +9532,9 @@ 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:266 msgid "Superuser" @@ -9220,9 +9558,10 @@ msgstr "認証" #: users/serializers/user.py:426 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:461 msgid "name not unique" @@ -9231,18 +9570,24 @@ 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:196 +#: users/signal_handlers.py:197 msgid "Clean up expired user sessions" msgstr "期限切れのユーザー・セッションのパージ" -#: users/signal_handlers.py:198 +#: 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" @@ -9250,9 +9595,12 @@ 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" @@ -9260,11 +9608,15 @@ 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" @@ -9272,9 +9624,12 @@ 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" @@ -9282,11 +9637,15 @@ 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" @@ -9294,12 +9653,15 @@ 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." @@ -9313,7 +9675,8 @@ 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" @@ -9323,7 +9686,9 @@ 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" @@ -9331,7 +9696,8 @@ 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" @@ -9431,9 +9797,11 @@ 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 @@ -9448,7 +9816,9 @@ 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" @@ -9462,7 +9832,9 @@ 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 @@ -9477,7 +9849,8 @@ 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" @@ -9489,7 +9862,8 @@ 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" @@ -9517,9 +9891,11 @@ 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" @@ -9663,7 +10039,7 @@ msgstr "プライベートIP" msgid "Public IP" msgstr "パブリックIP" -#: xpack/plugins/cloud/const.py:42 xpack/plugins/cloud/models.py:359 +#: xpack/plugins/cloud/const.py:42 xpack/plugins/cloud/models.py:360 msgid "Instance name" msgstr "インスタンス名" @@ -9751,7 +10127,9 @@ 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:392 #, python-format @@ -9828,136 +10206,133 @@ msgstr "ホスト名戦略" msgid "IP network segment group" msgstr "IPネットワークセグメントグループ" -#: xpack/plugins/cloud/models.py:115 +#: xpack/plugins/cloud/models.py:116 #: xpack/plugins/cloud/serializers/task.py:161 -msgid "Sync IP type" -msgstr "同期IPタイプ" +msgid "Preferred IP type" +msgstr "優先 IP タイプ" -#: xpack/plugins/cloud/models.py:118 +#: xpack/plugins/cloud/models.py:119 msgid "Always update" msgstr "常に更新" -#: xpack/plugins/cloud/models.py:120 +#: xpack/plugins/cloud/models.py:121 msgid "Fully synchronous" msgstr "完全同期" -#: xpack/plugins/cloud/models.py:125 +#: xpack/plugins/cloud/models.py:126 msgid "Date last sync" msgstr "最終同期日" -#: xpack/plugins/cloud/models.py:128 xpack/plugins/cloud/models.py:377 -#: xpack/plugins/cloud/models.py:403 +#: xpack/plugins/cloud/models.py:129 xpack/plugins/cloud/models.py:378 +#: xpack/plugins/cloud/models.py:404 msgid "Strategy" msgstr "戦略" -#: xpack/plugins/cloud/models.py:133 xpack/plugins/cloud/models.py:221 +#: xpack/plugins/cloud/models.py:134 xpack/plugins/cloud/models.py:222 msgid "Sync instance task" msgstr "インスタンスの同期タスク" -#: xpack/plugins/cloud/models.py:232 xpack/plugins/cloud/models.py:295 +#: xpack/plugins/cloud/models.py:233 xpack/plugins/cloud/models.py:296 msgid "Date sync" msgstr "日付の同期" -#: xpack/plugins/cloud/models.py:236 +#: xpack/plugins/cloud/models.py:237 msgid "Sync instance snapshot" msgstr "インスタンススナップショットの同期" -#: xpack/plugins/cloud/models.py:244 +#: xpack/plugins/cloud/models.py:245 msgid "Sync instance task execution" msgstr "インスタンスタスクの同期実行" -#: xpack/plugins/cloud/models.py:275 +#: xpack/plugins/cloud/models.py:276 msgid "Sync task" msgstr "同期タスク" -#: xpack/plugins/cloud/models.py:279 +#: xpack/plugins/cloud/models.py:280 msgid "Sync instance task history" msgstr "インスタンスタスク履歴の同期" -#: xpack/plugins/cloud/models.py:282 +#: xpack/plugins/cloud/models.py:283 msgid "Instance" msgstr "インスタンス" -#: xpack/plugins/cloud/models.py:299 +#: xpack/plugins/cloud/models.py:300 msgid "Sync instance detail" msgstr "同期インスタンスの詳細" -#: xpack/plugins/cloud/models.py:311 -#: xpack/plugins/cloud/serializers/task.py:77 +#: xpack/plugins/cloud/models.py:312 xpack/plugins/cloud/serializers/task.py:77 msgid "Rule relation" msgstr "条件関係" -#: xpack/plugins/cloud/models.py:321 +#: xpack/plugins/cloud/models.py:322 msgid "Task strategy" msgstr "ミッション戦略です" -#: xpack/plugins/cloud/models.py:348 +#: xpack/plugins/cloud/models.py:349 msgid "Equal" msgstr "等しい" -#: xpack/plugins/cloud/models.py:349 +#: xpack/plugins/cloud/models.py:350 msgid "Not Equal" msgstr "不等于" -#: xpack/plugins/cloud/models.py:350 +#: xpack/plugins/cloud/models.py:351 msgid "In" msgstr "で..." -#: xpack/plugins/cloud/models.py:351 +#: xpack/plugins/cloud/models.py:352 msgid "Contains" msgstr "含む" -#: xpack/plugins/cloud/models.py:352 +#: xpack/plugins/cloud/models.py:353 msgid "Exclude" msgstr "除外" -#: xpack/plugins/cloud/models.py:353 +#: xpack/plugins/cloud/models.py:354 msgid "Startswith" msgstr "始まる..." -#: xpack/plugins/cloud/models.py:354 +#: xpack/plugins/cloud/models.py:355 msgid "Endswith" msgstr "終わる..." -#: xpack/plugins/cloud/models.py:360 +#: xpack/plugins/cloud/models.py:361 msgid "Instance platform" msgstr "インスタンス名" -#: xpack/plugins/cloud/models.py:361 +#: xpack/plugins/cloud/models.py:362 msgid "Instance address" msgstr "インスタンスアドレス" -#: xpack/plugins/cloud/models.py:368 +#: xpack/plugins/cloud/models.py:369 msgid "Rule attr" msgstr "ルール属性" -#: xpack/plugins/cloud/models.py:372 +#: xpack/plugins/cloud/models.py:373 msgid "Rule match" msgstr "ルール一致" -#: xpack/plugins/cloud/models.py:374 +#: xpack/plugins/cloud/models.py:375 msgid "Rule value" msgstr "ルール値" -#: xpack/plugins/cloud/models.py:381 -#: xpack/plugins/cloud/serializers/task.py:80 +#: xpack/plugins/cloud/models.py:382 xpack/plugins/cloud/serializers/task.py:80 msgid "Strategy rule" msgstr "戦略ルール" -#: xpack/plugins/cloud/models.py:391 +#: xpack/plugins/cloud/models.py:392 msgid "Name strategy" msgstr "ホスト名戦略" -#: xpack/plugins/cloud/models.py:398 +#: xpack/plugins/cloud/models.py:399 msgid "Action attr" msgstr "アクション属性" -#: xpack/plugins/cloud/models.py:400 +#: xpack/plugins/cloud/models.py:401 msgid "Action value" msgstr "アクション値" -#: xpack/plugins/cloud/models.py:407 -#: xpack/plugins/cloud/serializers/task.py:83 +#: xpack/plugins/cloud/models.py:408 xpack/plugins/cloud/serializers/task.py:83 msgid "Strategy action" msgstr "戦略アクション" @@ -10235,8 +10610,9 @@ msgid "" "synchronization task is executed, only the valid IP address will be " "synchronized. <br>If the port is 0, all IP addresses are valid." msgstr "" -"このポートは、 IP アドレスの有効性を検出するために使用されます。同期タスクが実行されると、有効な IP アドレスのみが同期されます。 " -"<br>ポートが0の場合、すべてのIPアドレスが有効です。" +"このポートは、 IP アドレスの有効性を検出するために使用されます。同期タスクが" +"実行されると、有効な IP アドレスのみが同期されます。 <br>ポートが0の場合、す" +"べてのIPアドレスが有効です。" #: xpack/plugins/cloud/serializers/account_attrs.py:190 msgid "Hostname prefix" @@ -10269,7 +10645,8 @@ 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" @@ -10282,13 +10659,16 @@ 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." @@ -10360,5 +10740,11 @@ msgstr "エンタープライズプロフェッショナル版" msgid "Ultimate edition" msgstr "エンタープライズ・フラッグシップ・エディション" -#~ msgid "Preferred IP type" -#~ msgstr "優先 IP タイプ" +#~ msgid "* Please enter the correct password length" +#~ msgstr "* 正しいパスワードの長さを入力してください" + +#~ msgid "* Password length range 6-30 bits" +#~ msgstr "* パスワードの長さの範囲6-30ビット" + +#~ msgid "Sync IP type" +#~ msgstr "同期IPタイプ" diff --git a/apps/i18n/core/zh/LC_MESSAGES/django.po b/apps/i18n/core/zh/LC_MESSAGES/django.po index 4582d6875..a9d87865a 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-10-14 15:06+0800\n" +"POT-Creation-Date: 2024-10-17 11:45+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n" "Last-Translator: ibuler <ibuler@qq.com>\n" "Language-Team: JumpServer team<ibuler@qq.com>\n" @@ -63,7 +63,7 @@ msgstr "完成" #: accounts/automations/backup_account/handlers.py:219 #: accounts/const/automation.py:110 -#: accounts/serializers/automations/change_secret.py:166 +#: accounts/serializers/automations/change_secret.py:153 #: assets/serializers/automations/base.py:52 audits/const.py:64 #: audits/models.py:64 audits/signal_handlers/activity_log.py:33 #: common/const/choices.py:65 ops/const.py:74 ops/serializers/celery.py:48 @@ -74,7 +74,7 @@ msgstr "成功" #: accounts/automations/backup_account/handlers.py:221 #: accounts/const/account.py:34 accounts/const/automation.py:109 -#: accounts/serializers/automations/change_secret.py:167 audits/const.py:65 +#: accounts/serializers/automations/change_secret.py:154 audits/const.py:65 #: audits/signal_handlers/activity_log.py:33 common/const/choices.py:66 #: ops/const.py:76 terminal/const.py:79 xpack/plugins/cloud/const.py:47 msgid "Failed" @@ -346,8 +346,8 @@ msgstr "用户 %s 查看/导出 了密码" #: accounts/serializers/account/account.py:226 #: accounts/serializers/account/account.py:272 #: accounts/serializers/account/gathered_account.py:10 -#: accounts/serializers/automations/change_secret.py:111 -#: accounts/serializers/automations/change_secret.py:143 +#: accounts/serializers/automations/change_secret.py:98 +#: accounts/serializers/automations/change_secret.py:130 #: 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 @@ -358,7 +358,7 @@ msgstr "用户 %s 查看/导出 了密码" #: terminal/serializers/command.py:17 terminal/serializers/session.py:30 #: terminal/templates/terminal/_msg_command_warning.html:4 #: terminal/templates/terminal/_msg_session_sharing.html:4 -#: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:288 +#: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:289 msgid "Asset" msgstr "资产" @@ -390,8 +390,8 @@ msgid "Source ID" msgstr "来源 ID" #: accounts/models/account.py:62 -#: accounts/serializers/automations/change_secret.py:113 -#: accounts/serializers/automations/change_secret.py:144 +#: accounts/serializers/automations/change_secret.py:100 +#: accounts/serializers/automations/change_secret.py:131 #: accounts/templates/accounts/change_secret_failed_info.html:12 #: acls/serializers/base.py:124 #: acls/templates/acls/asset_login_reminder.html:10 @@ -492,20 +492,20 @@ msgstr "账号备份快照" #: accounts/serializers/account/backup.py:48 #: accounts/serializers/automations/base.py:56 #: assets/models/automations/base.py:122 -#: assets/serializers/automations/base.py:40 xpack/plugins/cloud/models.py:240 -#: xpack/plugins/cloud/serializers/task.py:243 +#: assets/serializers/automations/base.py:40 xpack/plugins/cloud/models.py:241 +#: xpack/plugins/cloud/serializers/task.py:247 msgid "Trigger mode" msgstr "触发模式" #: accounts/models/automations/backup_account.py:134 audits/models.py:203 #: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:158 -#: xpack/plugins/cloud/models.py:229 +#: xpack/plugins/cloud/models.py:230 msgid "Reason" msgstr "原因" #: accounts/models/automations/backup_account.py:136 -#: accounts/serializers/automations/change_secret.py:110 -#: accounts/serializers/automations/change_secret.py:145 +#: accounts/serializers/automations/change_secret.py:97 +#: accounts/serializers/automations/change_secret.py:132 #: ops/serializers/job.py:74 terminal/serializers/session.py:54 msgid "Is success" msgstr "是否成功" @@ -596,8 +596,8 @@ msgstr "结束日期" #: terminal/serializers/applet.py:18 terminal/serializers/applet_host.py:148 #: terminal/serializers/virtualapp.py:35 tickets/models/ticket/general.py:284 #: tickets/serializers/super_ticket.py:13 -#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:225 -#: xpack/plugins/cloud/models.py:292 +#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:226 +#: xpack/plugins/cloud/models.py:293 msgid "Status" msgstr "状态" @@ -731,7 +731,7 @@ msgstr "密码规则" #: terminal/models/virtualapp/virtualapp.py:19 tickets/api/ticket.py:87 #: users/forms/profile.py:32 users/models/group.py:13 #: users/models/preference.py:11 users/models/user/__init__.py:57 -#: xpack/plugins/cloud/models.py:34 xpack/plugins/cloud/models.py:308 +#: xpack/plugins/cloud/models.py:34 xpack/plugins/cloud/models.py:309 #: xpack/plugins/cloud/serializers/task.py:75 msgid "Name" msgstr "名称" @@ -760,7 +760,7 @@ msgstr "平台" msgid "Push params" msgstr "账号推送参数" -#: accounts/models/template.py:26 xpack/plugins/cloud/models.py:389 +#: accounts/models/template.py:26 xpack/plugins/cloud/models.py:390 msgid "Account template" msgstr "账号模板" @@ -1077,7 +1077,7 @@ msgstr "关联平台,可配置推送参数,如果不关联,将使用默认 #: terminal/models/session/session.py:47 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 #: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91 -#: xpack/plugins/cloud/models.py:41 xpack/plugins/cloud/models.py:122 +#: xpack/plugins/cloud/models.py:41 xpack/plugins/cloud/models.py:123 msgid "Comment" msgstr "备注" @@ -1125,15 +1125,7 @@ msgid "" "type." msgstr "参数设置,目前只对 AIX LINUX UNIX 类型的资产有效。" -#: accounts/serializers/automations/change_secret.py:84 -msgid "* Please enter the correct password length" -msgstr "* 请输入正确的密码长度" - -#: accounts/serializers/automations/change_secret.py:88 -msgid "* Password length range 6-30 bits" -msgstr "* 密码长度范围 6-30 位" - -#: accounts/serializers/automations/change_secret.py:117 +#: accounts/serializers/automations/change_secret.py:104 #: assets/models/automations/base.py:127 msgid "Automation task execution" msgstr "自动化任务执行历史" @@ -1362,12 +1354,12 @@ msgid "Notify and warn" msgstr "提示并告警" #: acls/models/base.py:37 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:114 xpack/plugins/cloud/models.py:314 +#: terminal/models/component/endpoint.py:114 xpack/plugins/cloud/models.py:315 msgid "Priority" msgstr "优先级" #: acls/models/base.py:38 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:115 xpack/plugins/cloud/models.py:315 +#: terminal/models/component/endpoint.py:115 xpack/plugins/cloud/models.py:316 msgid "1-100, the lower the value will be match first" msgstr "优先级可选范围为 1-100 (数值越小越优先)" @@ -1411,7 +1403,7 @@ msgid "Command" msgstr "命令" #: acls/models/command_acl.py:17 assets/models/cmd_filter.py:59 -#: xpack/plugins/cloud/models.py:355 +#: xpack/plugins/cloud/models.py:356 msgid "Regex" msgstr "正则表达式" @@ -1532,7 +1524,7 @@ msgstr "" #: authentication/templates/authentication/_msg_oauth_bind.html:12 #: authentication/templates/authentication/_msg_rest_password_success.html:8 #: authentication/templates/authentication/_msg_rest_public_key_success.html:8 -#: common/drf/renders/base.py:150 xpack/plugins/cloud/models.py:390 +#: common/drf/renders/base.py:150 xpack/plugins/cloud/models.py:391 msgid "IP" msgstr "IP" @@ -1976,7 +1968,7 @@ msgstr "地址" #: assets/models/asset/common.py:169 assets/models/platform.py:149 #: authentication/backends/passkey/models.py:12 #: authentication/serializers/connect_token_secret.py:118 -#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:385 +#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:386 msgid "Platform" msgstr "平台" @@ -2039,7 +2031,7 @@ msgstr "代理" #: assets/models/automations/base.py:18 assets/models/cmd_filter.py:32 #: assets/models/node.py:553 perms/models/asset_permission.py:72 -#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:386 +#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:387 msgid "Node" msgstr "节点" @@ -2360,7 +2352,7 @@ msgstr "节点路径,格式为 [\"/组织/节点名\"], 如果节点不存在 #: authentication/serializers/connect_token_secret.py:30 #: authentication/serializers/connect_token_secret.py:75 #: perms/models/asset_permission.py:76 perms/serializers/permission.py:56 -#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:388 +#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:389 #: xpack/plugins/cloud/serializers/task.py:35 msgid "Protocols" msgstr "协议组" @@ -3660,7 +3652,7 @@ msgid "Component" msgstr "组件" #: authentication/serializers/connect_token_secret.py:136 -#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:387 +#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:388 msgid "Domain" msgstr "网域" @@ -4934,7 +4926,7 @@ msgid "Date last run" msgstr "最后运行日期" #: ops/models/base.py:51 ops/models/job.py:238 -#: xpack/plugins/cloud/models.py:223 +#: xpack/plugins/cloud/models.py:224 msgid "Result" msgstr "结果" @@ -8233,7 +8225,7 @@ msgid "Access key secret" msgstr "Access key secret(SK)" #: terminal/serializers/storage.py:68 xpack/plugins/cloud/manager.py:100 -#: xpack/plugins/cloud/models.py:285 +#: xpack/plugins/cloud/models.py:286 msgid "Region" msgstr "地域" @@ -9343,11 +9335,11 @@ msgid "" msgstr "" "管理员已开启'仅允许已存在用户登录',当前用户不在用户列表中,请联系管理员。" -#: users/signal_handlers.py:196 +#: users/signal_handlers.py:197 msgid "Clean up expired user sessions" msgstr "清除过期的用户会话" -#: users/signal_handlers.py:198 +#: 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" @@ -9786,7 +9778,7 @@ msgstr "私有IP" msgid "Public IP" msgstr "公网IP" -#: xpack/plugins/cloud/const.py:42 xpack/plugins/cloud/models.py:359 +#: xpack/plugins/cloud/const.py:42 xpack/plugins/cloud/models.py:360 msgid "Instance name" msgstr "实例名称" @@ -9951,133 +9943,133 @@ msgstr "主机名策略" msgid "IP network segment group" msgstr "IP网段组" -#: xpack/plugins/cloud/models.py:115 +#: xpack/plugins/cloud/models.py:116 #: xpack/plugins/cloud/serializers/task.py:161 -msgid "Sync IP type" -msgstr "同步 IP 类型" +msgid "Preferred IP type" +msgstr "" -#: xpack/plugins/cloud/models.py:118 +#: xpack/plugins/cloud/models.py:119 msgid "Always update" msgstr "总是更新" -#: xpack/plugins/cloud/models.py:120 +#: xpack/plugins/cloud/models.py:121 msgid "Fully synchronous" msgstr "完全同步" -#: xpack/plugins/cloud/models.py:125 +#: xpack/plugins/cloud/models.py:126 msgid "Date last sync" msgstr "最后同步日期" -#: xpack/plugins/cloud/models.py:128 xpack/plugins/cloud/models.py:377 -#: xpack/plugins/cloud/models.py:403 +#: xpack/plugins/cloud/models.py:129 xpack/plugins/cloud/models.py:378 +#: xpack/plugins/cloud/models.py:404 msgid "Strategy" msgstr "策略" -#: xpack/plugins/cloud/models.py:133 xpack/plugins/cloud/models.py:221 +#: xpack/plugins/cloud/models.py:134 xpack/plugins/cloud/models.py:222 msgid "Sync instance task" msgstr "同步实例任务" -#: xpack/plugins/cloud/models.py:232 xpack/plugins/cloud/models.py:295 +#: xpack/plugins/cloud/models.py:233 xpack/plugins/cloud/models.py:296 msgid "Date sync" msgstr "同步日期" -#: xpack/plugins/cloud/models.py:236 +#: xpack/plugins/cloud/models.py:237 msgid "Sync instance snapshot" msgstr "同步实例快照" -#: xpack/plugins/cloud/models.py:244 +#: xpack/plugins/cloud/models.py:245 msgid "Sync instance task execution" msgstr "同步实例任务执行" -#: xpack/plugins/cloud/models.py:275 +#: xpack/plugins/cloud/models.py:276 msgid "Sync task" msgstr "同步任务" -#: xpack/plugins/cloud/models.py:279 +#: xpack/plugins/cloud/models.py:280 msgid "Sync instance task history" msgstr "同步实例任务历史" -#: xpack/plugins/cloud/models.py:282 +#: xpack/plugins/cloud/models.py:283 msgid "Instance" msgstr "实例" -#: xpack/plugins/cloud/models.py:299 +#: xpack/plugins/cloud/models.py:300 msgid "Sync instance detail" msgstr "同步实例详情" -#: xpack/plugins/cloud/models.py:311 xpack/plugins/cloud/serializers/task.py:77 +#: xpack/plugins/cloud/models.py:312 xpack/plugins/cloud/serializers/task.py:77 msgid "Rule relation" msgstr "条件关系" -#: xpack/plugins/cloud/models.py:321 +#: xpack/plugins/cloud/models.py:322 msgid "Task strategy" msgstr "任务策略" -#: xpack/plugins/cloud/models.py:348 +#: xpack/plugins/cloud/models.py:349 msgid "Equal" msgstr "等于" -#: xpack/plugins/cloud/models.py:349 +#: xpack/plugins/cloud/models.py:350 msgid "Not Equal" msgstr "不等于" -#: xpack/plugins/cloud/models.py:350 +#: xpack/plugins/cloud/models.py:351 msgid "In" msgstr "在...中" -#: xpack/plugins/cloud/models.py:351 +#: xpack/plugins/cloud/models.py:352 msgid "Contains" msgstr "包含" -#: xpack/plugins/cloud/models.py:352 +#: xpack/plugins/cloud/models.py:353 msgid "Exclude" msgstr "排除" -#: xpack/plugins/cloud/models.py:353 +#: xpack/plugins/cloud/models.py:354 msgid "Startswith" msgstr "以...开头" -#: xpack/plugins/cloud/models.py:354 +#: xpack/plugins/cloud/models.py:355 msgid "Endswith" msgstr "以...结尾" -#: xpack/plugins/cloud/models.py:360 +#: xpack/plugins/cloud/models.py:361 msgid "Instance platform" msgstr "实例平台" -#: xpack/plugins/cloud/models.py:361 +#: xpack/plugins/cloud/models.py:362 msgid "Instance address" msgstr "实例地址" -#: xpack/plugins/cloud/models.py:368 +#: xpack/plugins/cloud/models.py:369 msgid "Rule attr" msgstr "规则属性" -#: xpack/plugins/cloud/models.py:372 +#: xpack/plugins/cloud/models.py:373 msgid "Rule match" msgstr "规则匹配" -#: xpack/plugins/cloud/models.py:374 +#: xpack/plugins/cloud/models.py:375 msgid "Rule value" msgstr "规则值" -#: xpack/plugins/cloud/models.py:381 xpack/plugins/cloud/serializers/task.py:80 +#: xpack/plugins/cloud/models.py:382 xpack/plugins/cloud/serializers/task.py:80 msgid "Strategy rule" msgstr "条件" -#: xpack/plugins/cloud/models.py:391 +#: xpack/plugins/cloud/models.py:392 msgid "Name strategy" msgstr "主机名策略" -#: xpack/plugins/cloud/models.py:398 +#: xpack/plugins/cloud/models.py:399 msgid "Action attr" msgstr "动作属性" -#: xpack/plugins/cloud/models.py:400 +#: xpack/plugins/cloud/models.py:401 msgid "Action value" msgstr "动作值" -#: xpack/plugins/cloud/models.py:407 xpack/plugins/cloud/serializers/task.py:83 +#: xpack/plugins/cloud/models.py:408 xpack/plugins/cloud/serializers/task.py:83 msgid "Strategy action" msgstr "动作" @@ -10483,3 +10475,12 @@ msgstr "企业专业版" #: xpack/plugins/license/models.py:86 msgid "Ultimate edition" msgstr "企业旗舰版" + +#~ msgid "* Please enter the correct password length" +#~ msgstr "* 请输入正确的密码长度" + +#~ msgid "* Password length range 6-30 bits" +#~ msgstr "* 密码长度范围 6-30 位" + +#~ msgid "Sync IP type" +#~ msgstr "同步 IP 类型" diff --git a/apps/i18n/core/zh_Hant/LC_MESSAGES/django.po b/apps/i18n/core/zh_Hant/LC_MESSAGES/django.po index dcea0003b..4d06113f1 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-10-14 15:58+0800\n" +"POT-Creation-Date: 2024-10-17 11:45+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n" "Last-Translator: ibuler <ibuler@qq.com>\n" "Language-Team: JumpServer team<ibuler@qq.com>\n" @@ -16,7 +16,8 @@ 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 [{}]" @@ -64,7 +65,7 @@ msgstr "完成" #: accounts/automations/backup_account/handlers.py:219 #: accounts/const/automation.py:110 -#: accounts/serializers/automations/change_secret.py:166 +#: accounts/serializers/automations/change_secret.py:153 #: assets/serializers/automations/base.py:52 audits/const.py:64 #: audits/models.py:64 audits/signal_handlers/activity_log.py:33 #: common/const/choices.py:65 ops/const.py:74 ops/serializers/celery.py:48 @@ -75,7 +76,7 @@ msgstr "成功" #: accounts/automations/backup_account/handlers.py:221 #: accounts/const/account.py:34 accounts/const/automation.py:109 -#: accounts/serializers/automations/change_secret.py:167 audits/const.py:65 +#: accounts/serializers/automations/change_secret.py:154 audits/const.py:65 #: audits/signal_handlers/activity_log.py:33 common/const/choices.py:66 #: ops/const.py:76 terminal/const.py:79 xpack/plugins/cloud/const.py:47 msgid "Failed" @@ -192,8 +193,7 @@ 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 "跳過" @@ -348,8 +348,8 @@ msgstr "用戶 %s 查看/匯出 了密碼" #: accounts/serializers/account/account.py:226 #: accounts/serializers/account/account.py:272 #: accounts/serializers/account/gathered_account.py:10 -#: accounts/serializers/automations/change_secret.py:111 -#: accounts/serializers/automations/change_secret.py:143 +#: accounts/serializers/automations/change_secret.py:98 +#: accounts/serializers/automations/change_secret.py:130 #: 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 @@ -360,7 +360,7 @@ msgstr "用戶 %s 查看/匯出 了密碼" #: terminal/serializers/command.py:17 terminal/serializers/session.py:30 #: terminal/templates/terminal/_msg_command_warning.html:4 #: terminal/templates/terminal/_msg_session_sharing.html:4 -#: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:288 +#: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:289 msgid "Asset" msgstr "資產" @@ -392,16 +392,16 @@ msgid "Source ID" msgstr "來源 ID" #: accounts/models/account.py:62 -#: accounts/serializers/automations/change_secret.py:113 -#: accounts/serializers/automations/change_secret.py:144 +#: accounts/serializers/automations/change_secret.py:100 +#: accounts/serializers/automations/change_secret.py:131 #: accounts/templates/accounts/change_secret_failed_info.html:12 #: acls/serializers/base.py:124 #: acls/templates/acls/asset_login_reminder.html:10 #: assets/serializers/gateway.py:33 audits/models.py:59 #: authentication/api/connection_token.py:411 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:34 terminal/serializers/command.py:72 +#: terminal/backends/command/models.py:18 terminal/models/session/session.py:34 +#: 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 @@ -494,20 +494,20 @@ msgstr "帳號備份快照" #: accounts/serializers/account/backup.py:48 #: accounts/serializers/automations/base.py:56 #: assets/models/automations/base.py:122 -#: assets/serializers/automations/base.py:40 xpack/plugins/cloud/models.py:240 -#: xpack/plugins/cloud/serializers/task.py:243 +#: assets/serializers/automations/base.py:40 xpack/plugins/cloud/models.py:241 +#: xpack/plugins/cloud/serializers/task.py:247 msgid "Trigger mode" msgstr "觸發模式" #: accounts/models/automations/backup_account.py:134 audits/models.py:203 #: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:158 -#: xpack/plugins/cloud/models.py:229 +#: xpack/plugins/cloud/models.py:230 msgid "Reason" msgstr "原因" #: accounts/models/automations/backup_account.py:136 -#: accounts/serializers/automations/change_secret.py:110 -#: accounts/serializers/automations/change_secret.py:145 +#: accounts/serializers/automations/change_secret.py:97 +#: accounts/serializers/automations/change_secret.py:132 #: ops/serializers/job.py:74 terminal/serializers/session.py:54 msgid "Is success" msgstr "是否成功" @@ -598,8 +598,8 @@ msgstr "結束日期" #: terminal/serializers/applet.py:18 terminal/serializers/applet_host.py:148 #: terminal/serializers/virtualapp.py:35 tickets/models/ticket/general.py:284 #: tickets/serializers/super_ticket.py:13 -#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:225 -#: xpack/plugins/cloud/models.py:292 +#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:226 +#: xpack/plugins/cloud/models.py:293 msgid "Status" msgstr "狀態" @@ -725,17 +725,15 @@ 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:111 -#: 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 #: users/forms/profile.py:32 users/models/group.py:13 #: users/models/preference.py:11 users/models/user/__init__.py:57 -#: xpack/plugins/cloud/models.py:34 xpack/plugins/cloud/models.py:308 +#: xpack/plugins/cloud/models.py:34 xpack/plugins/cloud/models.py:309 #: xpack/plugins/cloud/serializers/task.py:75 msgid "Name" msgstr "名稱" @@ -764,7 +762,7 @@ msgstr "系統平台" msgid "Push params" msgstr "帳號推送參數" -#: accounts/models/template.py:26 xpack/plugins/cloud/models.py:389 +#: accounts/models/template.py:26 xpack/plugins/cloud/models.py:390 msgid "Account template" msgstr "帳號模板" @@ -804,7 +802,8 @@ 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" @@ -821,7 +820,9 @@ 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" @@ -838,7 +839,9 @@ 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" @@ -881,9 +884,9 @@ msgstr "類別" #: assets/serializers/asset/common.py:146 assets/serializers/platform.py:159 #: assets/serializers/platform.py:171 audits/serializers.py:53 #: audits/serializers.py:170 -#: authentication/serializers/connect_token_secret.py:126 -#: ops/models/job.py:150 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:150 +#: 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 @@ -951,10 +954,9 @@ msgstr "ID" #: accounts/serializers/account/account.py:475 acls/serializers/base.py:116 #: 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:171 -#: 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:171 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 @@ -1003,7 +1005,9 @@ 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" @@ -1036,16 +1040,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 是密碼的長度,填入範圍為 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" @@ -1062,16 +1070,16 @@ 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:158 ops/models/playbook.py:33 -#: 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:26 +#: assets/models/cmd_filter.py:88 common/db/models.py:36 ops/models/adhoc.py:25 +#: ops/models/job.py:158 ops/models/playbook.py:33 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:26 #: terminal/models/component/endpoint.py:121 #: terminal/models/session/session.py:47 #: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 #: tickets/models/ticket/general.py:298 users/models/user/__init__.py:91 -#: xpack/plugins/cloud/models.py:41 xpack/plugins/cloud/models.py:122 +#: xpack/plugins/cloud/models.py:41 xpack/plugins/cloud/models.py:123 msgid "Comment" msgstr "備註" @@ -1081,13 +1089,13 @@ msgid "" "asset secret > Login secret > Manual input. <br/ >For security, please set " "config CACHE_LOGIN_PASSWORD_ENABLED to true" msgstr "" -"當前僅支持 AD/LDAP 登錄方式用戶。 同名帳號密碼生效順序: 資產上存在的同名帳號密碼 > 登錄密碼 > 手動輸入 <br/> " -"為了安全起見,請設置配置項 CACHE_LOGIN_PASSWORD_ENABLED=true,重啟服務才能開啟" +"當前僅支持 AD/LDAP 登錄方式用戶。 同名帳號密碼生效順序: 資產上存在的同名帳號" +"密碼 > 登錄密碼 > 手動輸入 <br/> 為了安全起見,請設置配置項 " +"CACHE_LOGIN_PASSWORD_ENABLED=true,重啟服務才能開啟" #: accounts/serializers/automations/base.py:23 #: assets/models/asset/common.py:176 assets/serializers/asset/common.py:172 -#: assets/serializers/automations/base.py:21 -#: perms/serializers/permission.py:47 +#: assets/serializers/automations/base.py:21 perms/serializers/permission.py:47 msgid "Nodes" msgstr "節點" @@ -1119,15 +1127,7 @@ msgid "" "type." msgstr "參數設置,目前只對 AIX LINUX UNIX 類型的資產有效。" -#: accounts/serializers/automations/change_secret.py:84 -msgid "* Please enter the correct password length" -msgstr "* 請輸入正確的密碼長度" - -#: accounts/serializers/automations/change_secret.py:88 -msgid "* Password length range 6-30 bits" -msgstr "* 密碼長度範圍 6-30 位" - -#: accounts/serializers/automations/change_secret.py:117 +#: accounts/serializers/automations/change_secret.py:104 #: assets/models/automations/base.py:127 msgid "Automation task execution" msgstr "自動化任務執行歷史" @@ -1153,10 +1153,15 @@ 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" @@ -1172,18 +1177,27 @@ 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" @@ -1214,7 +1228,8 @@ 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 "當在控制台-自動化-帳號收集-收集的帳號-點擊同步刪除會執行該任務" @@ -1224,12 +1239,16 @@ 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." @@ -1241,7 +1260,8 @@ 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 "當在控制台-帳號模板-帳號-同步更新帳號信息點擊同步時,執行該任務" @@ -1298,8 +1318,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 @@ -1336,12 +1356,12 @@ msgid "Notify and warn" msgstr "提示並警告" #: acls/models/base.py:37 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:114 xpack/plugins/cloud/models.py:314 +#: terminal/models/component/endpoint.py:114 xpack/plugins/cloud/models.py:315 msgid "Priority" msgstr "優先度" #: acls/models/base.py:38 assets/models/cmd_filter.py:76 -#: terminal/models/component/endpoint.py:115 xpack/plugins/cloud/models.py:315 +#: terminal/models/component/endpoint.py:115 xpack/plugins/cloud/models.py:316 msgid "1-100, the lower the value will be match first" msgstr "優先度可選範圍為 1-100 (數值越小越優先)" @@ -1355,8 +1375,7 @@ msgstr "審批人" #: authentication/models/connection_token.py:53 #: 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:27 +#: perms/models/asset_permission.py:82 terminal/models/component/endpoint.py:27 #: terminal/models/component/endpoint.py:122 #: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44 #: tickets/const.py:36 @@ -1386,7 +1405,7 @@ msgid "Command" msgstr "命令" #: acls/models/command_acl.py:17 assets/models/cmd_filter.py:59 -#: xpack/plugins/cloud/models.py:355 +#: xpack/plugins/cloud/models.py:356 msgid "Regex" msgstr "正則表達式" @@ -1471,8 +1490,8 @@ 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" @@ -1500,14 +1519,14 @@ 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 #: authentication/templates/authentication/_msg_rest_password_success.html:8 #: authentication/templates/authentication/_msg_rest_public_key_success.html:8 -#: common/drf/renders/base.py:150 xpack/plugins/cloud/models.py:390 +#: common/drf/renders/base.py:150 xpack/plugins/cloud/models.py:391 msgid "IP" msgstr "IP" @@ -1540,7 +1559,9 @@ 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 @@ -1771,8 +1792,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" @@ -1785,7 +1806,8 @@ msgid "" "account username <br>- ${HOME} The home directory of the connected account " "<br>- ${USER} The username of the user" msgstr "" -"SFTP根目錄,支持變數:<br>-${ACCOUNT}已連接帳戶使用者名稱<br>-${HOME}連接帳戶的主目錄<br>-${USER}用戶的使用者名稱" +"SFTP根目錄,支持變數:<br>-${ACCOUNT}已連接帳戶使用者名稱<br>-${HOME}連接帳戶" +"的主目錄<br>-${USER}用戶的使用者名稱" #: assets/const/protocol.py:81 msgid "Console" @@ -1806,17 +1828,18 @@ msgstr "安全" #: assets/const/protocol.py:89 msgid "" -"Security layer to use for the connection:<br>Any<br>Automatically select the" -" security mode based on the security protocols supported by both the client " +"Security layer to use for the connection:<br>Any<br>Automatically select the " +"security mode based on the security protocols supported by both the client " "and the server<br>RDP<br>Legacy RDP encryption. This mode is generally only " "used for older Windows servers or in cases where a standard Windows login " "screen is desired<br>TLS<br>RDP authentication and encryption implemented " "via TLS.<br>NLA<br>This mode uses TLS encryption and requires the username " "and password to be given in advance" msgstr "" -"連接的安全層:<br>Any<br>根據客戶端和伺服器支援的安全協議自動選擇安全模式<br>RDP<br>傳統的 RDP 加密模式。通常僅用於較舊的 " -"Windows 伺服器或需要標準 Windows 登入螢幕的情況<br>TLS<br>通過 TLS 實現的 RDP " -"認證和加密<br>NLA<br>此模式使用 TLS 加密,並要求提前提供用戶名和密碼<br>" +"連接的安全層:<br>Any<br>根據客戶端和伺服器支援的安全協議自動選擇安全模式" +"<br>RDP<br>傳統的 RDP 加密模式。通常僅用於較舊的 Windows 伺服器或需要標準 " +"Windows 登入螢幕的情況<br>TLS<br>通過 TLS 實現的 RDP 認證和加密<br>NLA<br>此" +"模式使用 TLS 加密,並要求提前提供用戶名和密碼<br>" #: assets/const/protocol.py:106 msgid "AD domain" @@ -1892,7 +1915,8 @@ 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 @@ -1946,7 +1970,7 @@ msgstr "地址" #: assets/models/asset/common.py:169 assets/models/platform.py:149 #: authentication/backends/passkey/models.py:12 #: authentication/serializers/connect_token_secret.py:118 -#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:385 +#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:386 msgid "Platform" msgstr "系統平台" @@ -2009,7 +2033,7 @@ msgstr "代理" #: assets/models/automations/base.py:18 assets/models/cmd_filter.py:32 #: assets/models/node.py:553 perms/models/asset_permission.py:72 -#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:386 +#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:387 msgid "Node" msgstr "節點" @@ -2316,7 +2340,9 @@ 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 "" @@ -2328,7 +2354,7 @@ msgstr "節點路徑,格式為 [\"/組織/節點名稱\"], 如果節點不存 #: authentication/serializers/connect_token_secret.py:30 #: authentication/serializers/connect_token_secret.py:75 #: perms/models/asset_permission.py:76 perms/serializers/permission.py:56 -#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:388 +#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:389 #: xpack/plugins/cloud/serializers/task.py:35 msgid "Protocols" msgstr "協議組" @@ -2366,22 +2392,27 @@ 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" @@ -2557,7 +2588,9 @@ 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" @@ -2593,7 +2626,8 @@ 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 "當在控制台資產詳情-基本設定點擊更新硬體資訊執行該任務" @@ -2611,15 +2645,18 @@ 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 @@ -2628,9 +2665,11 @@ 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" @@ -2653,8 +2692,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 @@ -2678,8 +2717,7 @@ 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 @@ -2780,8 +2818,8 @@ msgstr "結束" #: audits/const.py:46 settings/serializers/terminal.py:6 #: terminal/models/applet/host.py:26 terminal/models/component/terminal.py:174 -#: 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 "終端" @@ -2820,8 +2858,7 @@ msgid "Job audit log" msgstr "作業審計日誌" #: audits/models.py:56 audits/models.py:100 audits/models.py:175 -#: terminal/models/session/session.py:39 -#: terminal/models/session/sharing.py:113 +#: terminal/models/session/session.py:39 terminal/models/session/sharing.py:113 msgid "Remote addr" msgstr "遠端地址" @@ -3034,13 +3071,17 @@ 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" @@ -3048,9 +3089,11 @@ 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" @@ -3170,8 +3213,7 @@ 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 "最後使用日期" @@ -3250,7 +3292,8 @@ 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 "" @@ -3267,9 +3310,10 @@ 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" @@ -3610,7 +3654,7 @@ msgid "Component" msgstr "組件" #: authentication/serializers/connect_token_secret.py:136 -#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:387 +#: perms/serializers/user_permission.py:28 xpack/plugins/cloud/models.py:388 msgid "Domain" msgstr "網域" @@ -3678,8 +3722,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:161 @@ -3703,8 +3747,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 @@ -4043,9 +4087,10 @@ 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:118 msgid "Slack Error" @@ -4151,12 +4196,13 @@ 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\"" @@ -4270,10 +4316,12 @@ 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 @@ -4453,8 +4501,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 @@ -4486,7 +4536,8 @@ 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時,需要發送短信時執行該任務" @@ -4529,8 +4580,8 @@ msgid "" "configure nginx for url distribution,</div> </div>If you see this page, " "prove that you are not accessing the nginx listening port. Good luck.</div>" msgstr "" -"<div>Luna是單獨部署的一個程序,你需要部署luna,koko, " -"</div><div>如果你看到了這個頁面,證明你訪問的不是nginx監聽的埠,祝你好運</div>" +"<div>Luna是單獨部署的一個程序,你需要部署luna,koko, </div><div>如果你看到了" +"這個頁面,證明你訪問的不是nginx監聽的埠,祝你好運</div>" #: jumpserver/views/other.py:76 msgid "Websocket server run on port: {}, you should proxy it on nginx" @@ -4542,8 +4593,8 @@ msgid "" "configure nginx for url distribution,</div> </div>If you see this page, " "prove that you are not accessing the nginx listening port. Good luck.</div>" msgstr "" -"<div>Koko是單獨部署的一個程序,你需要部署Koko, 並確保nginx配置轉發, " -"</div><div>如果你看到了這個頁面,證明你訪問的不是nginx監聽的埠,祝你好運</div>" +"<div>Koko是單獨部署的一個程序,你需要部署Koko, 並確保nginx配置轉發, </" +"div><div>如果你看到了這個頁面,證明你訪問的不是nginx監聽的埠,祝你好運</div>" #: labels/apps.py:8 msgid "App Labels" @@ -4607,7 +4658,8 @@ 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 "系統一些告警,工單等需要發送站內信時執行該任務" @@ -4818,14 +4870,12 @@ 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" @@ -4858,10 +4908,9 @@ msgstr "模組" msgid "Args" msgstr "參數" -#: ops/models/adhoc.py:26 ops/models/playbook.py:36 -#: 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:36 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 "範圍" @@ -4880,7 +4929,7 @@ msgid "Date last run" msgstr "最後運行日期" #: ops/models/base.py:51 ops/models/job.py:238 -#: xpack/plugins/cloud/models.py:223 +#: xpack/plugins/cloud/models.py:224 msgid "Result" msgstr "結果" @@ -5054,10 +5103,14 @@ msgstr "創建或更新週期任務" #: ops/tasks.py:127 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:140 msgid "Periodic check service performance" @@ -5065,9 +5118,13 @@ msgstr "週期檢測服務性能" #: ops/tasks.py:142 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:152 msgid "Clean up unexpected jobs" @@ -5075,11 +5132,16 @@ msgstr "清理異常作業" #: ops/tasks.py:154 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:167 msgid "Clean job_execution db record" @@ -5087,13 +5149,16 @@ msgstr "清理作業中心執行歷史" #: ops/tasks.py:169 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" @@ -5162,8 +5227,7 @@ 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 "組織" @@ -5326,7 +5390,9 @@ 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\"]" @@ -5346,13 +5412,18 @@ 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" @@ -5360,11 +5431,16 @@ 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 @@ -5770,7 +5846,9 @@ 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" @@ -5789,21 +5867,23 @@ 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 "服務端地址" @@ -5828,11 +5908,9 @@ 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 @@ -5843,7 +5921,9 @@ 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" @@ -5863,13 +5943,17 @@ 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" @@ -5879,7 +5963,9 @@ 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" @@ -5889,58 +5975,50 @@ 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 "快取逾時時間 (秒)" @@ -5951,10 +6029,10 @@ msgid "" "cache<br>If the user OU structure has been adjusted, click Submit to clear " "the user DN cache" msgstr "" -"對用戶登入驗證時查詢出的 User DN 進行緩存,可以有效提升用戶認證的速度<br>如果用戶 OU 架構有调整,點擊提交即可清除用戶 DN 緩存" +"對用戶登入驗證時查詢出的 User DN 進行緩存,可以有效提升用戶認證的速度<br>如果" +"用戶 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 "搜索分頁數量 (條)" @@ -5970,12 +6048,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<br>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<br>If " +"the user OU structure has been adjusted, click Submit to clear the user DN " "cache" msgstr "" -"對使用者登入驗證時查詢出的 User DN 進行快取,可以有效提升使用者驗證的速度<br>如果使用者 OU 架構有調整,點擊提交即可清除使用者 DN " -"快取" +"對使用者登入驗證時查詢出的 User DN 進行快取,可以有效提升使用者驗證的速度<br>" +"如果使用者 OU 架構有調整,點擊提交即可清除使用者 DN 快取" #: settings/serializers/auth/oauth2.py:19 #: settings/serializers/auth/oauth2.py:22 @@ -6022,18 +6100,19 @@ 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 "總是更新用戶資訊" @@ -6065,7 +6144,9 @@ 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" @@ -6083,7 +6164,8 @@ 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" @@ -6142,7 +6224,8 @@ 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" @@ -6158,8 +6241,7 @@ 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 @@ -6190,7 +6272,9 @@ 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" @@ -6200,7 +6284,9 @@ 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)" @@ -6265,10 +6351,12 @@ 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 @@ -6304,7 +6392,9 @@ 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" @@ -6312,8 +6402,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 @@ -6398,7 +6488,8 @@ 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)" @@ -6442,7 +6533,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:76 settings/serializers/feature.py:82 msgid "Chat AI" @@ -6453,8 +6545,7 @@ msgid "GPT Base URL" msgstr "GPT 地址" #: settings/serializers/feature.py:86 -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:89 templates/_header_bar.html:96 @@ -6566,7 +6657,8 @@ 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" @@ -6576,7 +6668,9 @@ 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" @@ -6584,8 +6678,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 @@ -6601,7 +6695,8 @@ 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)" @@ -6617,7 +6712,9 @@ msgstr "顯示未分組節點" #: settings/serializers/other.py:12 msgid "Perm single to ungroup node" -msgstr "放置單獨授權的資產到未分組節點, 避免能看到資產所在節點,但該節點未被授權的問題" +msgstr "" +"放置單獨授權的資產到未分組節點, 避免能看到資產所在節點,但該節點未被授權的問" +"題" #: settings/serializers/security.py:17 msgid "User password expiration (day)" @@ -6628,7 +6725,9 @@ 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" @@ -6698,7 +6797,9 @@ 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" @@ -6706,12 +6807,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 @@ -6780,7 +6882,9 @@ 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" @@ -6796,10 +6900,12 @@ 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)" @@ -6883,8 +6989,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 @@ -6896,11 +7002,11 @@ msgstr "* 允許用戶透過密碼驗證登入KoKo元件" msgid "" "* Allow users to log in to the KoKo component via Public key " "authentication<br/>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 元件<br/>如果第三方認證服務(如 AD/LDAP)已啟用,則應禁用此選項,以防止用戶從 AD/LDAP " -"伺服器中刪除後再次登入" +"* 允許用戶透過公鑰驗證方式登入 KoKo 元件<br/>如果第三方認證服務(如 AD/LDAP)" +"已啟用,則應禁用此選項,以防止用戶從 AD/LDAP 伺服器中刪除後再次登入" #: settings/serializers/terminal.py:43 msgid "Asset sorting" @@ -6912,18 +7018,21 @@ msgstr "資產列表每頁數量" #: settings/serializers/terminal.py:51 msgid "" -"* You can individually configure the service address and port in the service" -" endpoint<br/>If enabled, the Luna page will display the DB client launch " +"* You can individually configure the service address and port in the service " +"endpoint<br/>If enabled, the Luna page will display the DB client launch " "method when connecting to assets" -msgstr "* 您可以在服務端點中單獨配置服務地址和端口<br/>如果啟用,Luna 界面將在連接資產時顯示 DB 客戶端啟動方法" +msgstr "" +"* 您可以在服務端點中單獨配置服務地址和端口<br/>如果啟用,Luna 界面將在連接資" +"產時顯示 DB 客戶端啟動方法" #: settings/serializers/terminal.py:59 msgid "" -"* You can individually configure the service address and port in the service" -" endpoint<br/>If enabled, the Luna page will display the download rdp file " +"* You can individually configure the service address and port in the service " +"endpoint<br/>If enabled, the Luna page will display the download rdp file " "button and RDP Client launch method when connecting to assets" msgstr "" -"* 您可以在服務端點中單獨配置服務地址和端口<br/>如果啟用,Luna 界面將在連接資產時顯示下載 rdp 文件按鈕和 RDP 客戶端啟動方法" +"* 您可以在服務端點中單獨配置服務地址和端口<br/>如果啟用,Luna 界面將在連接資" +"產時顯示下載 rdp 文件按鈕和 RDP 客戶端啟動方法" #: settings/serializers/terminal.py:66 msgid "Client connection" @@ -6932,9 +7041,10 @@ msgstr "客戶端連接" #: settings/serializers/terminal.py:68 msgid "" "* Allow connecting to the KoKo component via SSH client<br/>If enabled, the " -"Luna page will display the SSH client launch method when connecting to " -"assets" -msgstr "* 允許透過 SSH 客戶端連接到 KoKo 元件<br/>如果啟用,則在連接到資產時,Luna 界面將顯示 SSH 客戶端啟動方法" +"Luna page will display the SSH client launch method when connecting to assets" +msgstr "" +"* 允許透過 SSH 客戶端連接到 KoKo 元件<br/>如果啟用,則在連接到資產時,Luna 界" +"面將顯示 SSH 客戶端啟動方法" #: settings/serializers/tool.py:10 msgid "Tool" @@ -6946,8 +7056,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 @@ -6970,9 +7080,12 @@ 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" @@ -6980,9 +7093,12 @@ 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" @@ -7187,11 +7303,13 @@ msgstr "過期。" #, python-format msgid "" "\n" -" Your password has expired, please click <a href=\"%(user_password_update_url)s\"> this link </a> update password.\n" +" Your password has expired, please click <a " +"href=\"%(user_password_update_url)s\"> this link </a> update password.\n" " " msgstr "" "\n" -" 您的密碼已經過期,請點擊 <a href=\"%(user_password_update_url)s\"> 連結 </a> 更新密碼\n" +" 您的密碼已經過期,請點擊 <a " +"href=\"%(user_password_update_url)s\"> 連結 </a> 更新密碼\n" " " #: templates/_message.html:30 @@ -7202,33 +7320,39 @@ msgstr "您的密碼將於" #, python-format msgid "" "\n" -" please click <a href=\"%(user_password_update_url)s\"> this link </a> to update your password.\n" +" please click <a href=\"%(user_password_update_url)s\"> this " +"link </a> to update your password.\n" " " msgstr "" "\n" -" 請點擊 <a href=\"%(user_password_update_url)s\"> 連結 </a> 更新密碼\n" +" 請點擊 <a href=\"%(user_password_update_url)s\"> 連結 </a> 更" +"新密碼\n" " " #: templates/_message.html:43 #, python-format msgid "" "\n" -" Your information was incomplete. Please click <a href=\"%(first_login_url)s\"> this link </a>to complete your information.\n" +" Your information was incomplete. Please click <a " +"href=\"%(first_login_url)s\"> this link </a>to complete your information.\n" " " msgstr "" "\n" -" 你的資訊不完整,請點擊 <a href=\"%(first_login_url)s\"> 連結 </a> 補充完整\n" +" 你的資訊不完整,請點擊 <a href=\"%(first_login_url)s\"> 連結 " +"</a> 補充完整\n" " " #: templates/_message.html:56 #, python-format msgid "" "\n" -" Your ssh public key not set or expired. Please click <a href=\"%(user_pubkey_update)s\"> this link </a>to update\n" +" Your ssh public key not set or expired. Please click <a " +"href=\"%(user_pubkey_update)s\"> this link </a>to update\n" " " msgstr "" "\n" -" 您的SSH金鑰沒有設置或已失效,請點擊 <a href=\"%(user_pubkey_update)s\"> 連結 </a> 更新\n" +" 您的SSH金鑰沒有設置或已失效,請點擊 <a " +"href=\"%(user_pubkey_update)s\"> 連結 </a> 更新\n" " " #: templates/_mfa_login_field.html:28 @@ -7259,7 +7383,9 @@ 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" @@ -7705,8 +7831,7 @@ msgstr "可以下載會話錄影" msgid "Account ID" msgstr "帳號" -#: terminal/models/session/session.py:37 -#: terminal/models/session/sharing.py:118 +#: terminal/models/session/session.py:37 terminal/models/session/sharing.py:118 msgid "Login from" msgstr "登錄來源" @@ -7755,8 +7880,8 @@ msgstr "操作權限" msgid "Origin" msgstr "來源" -#: terminal/models/session/sharing.py:42 -#: terminal/models/session/sharing.py:100 terminal/notifications.py:261 +#: terminal/models/session/sharing.py:42 terminal/models/session/sharing.py:100 +#: terminal/notifications.py:261 msgid "Session sharing" msgstr "會話分享" @@ -7869,15 +7994,19 @@ 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" " <br> \n" " eg: https://172.16.10.110 or https://dev.jumpserver.com\n" " " msgstr "" -"提示:應用發布機和 Core 服務進行通信使用,如果發布機和 Core 服務在同一網段,建議填寫內網地址,否則填寫當前站點 " -"URL<br>例如:https://172.16.10.110 or https://dev.jumpserver.com" +"提示:應用發布機和 Core 服務進行通信使用,如果發布機和 Core 服務在同一網段," +"建議填寫內網地址,否則填寫當前站點 URL<br>例如: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" @@ -7890,12 +8019,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. <a href=\"https://learn.microsoft.com/en-us/windows-" -"server/remote/remote-desktop-services/rds-client-access-license\">Detail</a>" +"days. <a href=\"https://learn.microsoft.com/en-us/windows-server/remote/" +"remote-desktop-services/rds-client-access-license\">Detail</a>" msgstr "" -"如果不存在,RDS將處於試用模式,試用期為 120 天。<a href='https://learn.microsoft.com/en-" -"us/windows-server/remote/remote-desktop-services/rds-client-access-" -"license'>詳情</a>" +"如果不存在,RDS將處於試用模式,試用期為 120 天。<a href='https://learn." +"microsoft.com/en-us/windows-server/remote/remote-desktop-services/rds-client-" +"access-license'>詳情</a>" #: terminal/serializers/applet_host.py:55 msgid "RDS License Server" @@ -7913,7 +8042,9 @@ 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)" @@ -7923,7 +8054,9 @@ 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)" @@ -7931,9 +8064,11 @@ 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 @@ -7942,15 +8077,16 @@ 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 "" -"這些帳號用於連接髮布的應用,帳號現在分為兩種類型: <br/ >一種是專用的,每個用戶都有一個專用帳號。 " -"另一種是公共的,當應用不支持多開且專用的已經被使用時,會使用公共帳號連接; <br />注意: 如果不開啟自動創建帳號, " -"當前發布機僅能被指定標簽的資產調度到,默認不會放到調度池中,且需要手動維護帳號" +"這些帳號用於連接髮布的應用,帳號現在分為兩種類型: <br/ >一種是專用的,每個用" +"戶都有一個專用帳號。 另一種是公共的,當應用不支持多開且專用的已經被使用時,會" +"使用公共帳號連接; <br />注意: 如果不開啟自動創建帳號, 當前發布機僅能被指定標" +"簽的資產調度到,默認不會放到調度池中,且需要手動維護帳號" #: terminal/serializers/applet_host.py:104 msgid "The number of public accounts created automatically" @@ -7962,7 +8098,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" @@ -8012,19 +8149,23 @@ 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 @@ -8086,7 +8227,7 @@ msgid "Access key secret" msgstr "Access key secret(SK)" #: terminal/serializers/storage.py:68 xpack/plugins/cloud/manager.py:100 -#: xpack/plugins/cloud/models.py:285 +#: xpack/plugins/cloud/models.py:286 msgid "Region" msgstr "地域" @@ -8131,8 +8272,8 @@ msgid "" "If there are multiple hosts, use a comma (,) to separate them. <br>(For " "example: http://www.jumpserver.a.com:9100, http://www.jumpserver.b.com:9100)" msgstr "" -"如果有多個主機,請用逗號 (,) " -"分隔它們。<br>(例如:http://www.jumpserver.a.com:9100,http://www.jumpserver.b.com:9100)" +"如果有多個主機,請用逗號 (,) 分隔它們。<br>(例如:http://www.jumpserver.a." +"com:9100,http://www.jumpserver.b.com:9100)" #: terminal/serializers/storage.py:199 msgid "Index by date" @@ -8307,7 +8448,8 @@ 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分鐘未活躍的資產連結會話,將這些會話標記未已完成" @@ -8317,9 +8459,11 @@ 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" @@ -8331,7 +8475,8 @@ 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" @@ -8341,7 +8486,8 @@ 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" @@ -8351,7 +8497,8 @@ 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" @@ -8361,7 +8508,8 @@ 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" @@ -8371,10 +8519,15 @@ 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" @@ -8385,12 +8538,14 @@ 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 @@ -8453,7 +8608,8 @@ 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" @@ -8802,7 +8958,9 @@ 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:59 msgid "* Enable MFA to make the account more secure." @@ -8810,10 +8968,12 @@ msgstr "* 啟用 MFA 多因子認證,使帳號更加安全。" #: users/forms/profile.py:68 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:82 users/serializers/preference/lina.py:21 msgid "New password" @@ -8966,8 +9126,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. <br>Such as: account backup files," -" account password change results files" +"sends emails containing file attachments. <br>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.<br>For example: Account " @@ -9020,7 +9180,9 @@ 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" @@ -9064,11 +9226,10 @@ 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" @@ -9079,8 +9240,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" @@ -9140,8 +9301,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:266 @@ -9166,8 +9327,7 @@ msgstr "認證" #: users/serializers/user.py:426 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" @@ -9179,18 +9339,22 @@ 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:196 +#: users/signal_handlers.py:197 msgid "Clean up expired user sessions" msgstr "清除過期的用戶會話" -#: users/signal_handlers.py:198 +#: 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" @@ -9198,7 +9362,8 @@ 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天發送通知" @@ -9208,10 +9373,14 @@ 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" @@ -9219,7 +9388,8 @@ 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天發送通知" @@ -9229,10 +9399,14 @@ 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" @@ -9240,10 +9414,14 @@ 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." @@ -9377,8 +9555,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 @@ -9463,8 +9641,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 @@ -9612,7 +9790,7 @@ msgstr "私有IP" msgid "Public IP" msgstr "公網IP" -#: xpack/plugins/cloud/const.py:42 xpack/plugins/cloud/models.py:359 +#: xpack/plugins/cloud/const.py:42 xpack/plugins/cloud/models.py:360 msgid "Instance name" msgstr "實例名稱" @@ -9688,7 +9866,8 @@ msgstr "同步地區" #: xpack/plugins/cloud/manager.py:115 #, 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:157 #, python-format @@ -9779,136 +9958,133 @@ msgstr "主機名策略" msgid "IP network segment group" msgstr "IP網段組" -#: xpack/plugins/cloud/models.py:115 +#: xpack/plugins/cloud/models.py:116 #: xpack/plugins/cloud/serializers/task.py:161 -msgid "Sync IP type" -msgstr "同步 IP 類型" +msgid "Preferred IP type" +msgstr "首選 IP 類型" -#: xpack/plugins/cloud/models.py:118 +#: xpack/plugins/cloud/models.py:119 msgid "Always update" msgstr "總是更新" -#: xpack/plugins/cloud/models.py:120 +#: xpack/plugins/cloud/models.py:121 msgid "Fully synchronous" msgstr "完全同步" -#: xpack/plugins/cloud/models.py:125 +#: xpack/plugins/cloud/models.py:126 msgid "Date last sync" msgstr "最後同步日期" -#: xpack/plugins/cloud/models.py:128 xpack/plugins/cloud/models.py:377 -#: xpack/plugins/cloud/models.py:403 +#: xpack/plugins/cloud/models.py:129 xpack/plugins/cloud/models.py:378 +#: xpack/plugins/cloud/models.py:404 msgid "Strategy" msgstr "策略" -#: xpack/plugins/cloud/models.py:133 xpack/plugins/cloud/models.py:221 +#: xpack/plugins/cloud/models.py:134 xpack/plugins/cloud/models.py:222 msgid "Sync instance task" msgstr "同步實例任務" -#: xpack/plugins/cloud/models.py:232 xpack/plugins/cloud/models.py:295 +#: xpack/plugins/cloud/models.py:233 xpack/plugins/cloud/models.py:296 msgid "Date sync" msgstr "同步日期" -#: xpack/plugins/cloud/models.py:236 +#: xpack/plugins/cloud/models.py:237 msgid "Sync instance snapshot" msgstr "同步實例快照" -#: xpack/plugins/cloud/models.py:244 +#: xpack/plugins/cloud/models.py:245 msgid "Sync instance task execution" msgstr "同步實例任務執行" -#: xpack/plugins/cloud/models.py:275 +#: xpack/plugins/cloud/models.py:276 msgid "Sync task" msgstr "同步任務" -#: xpack/plugins/cloud/models.py:279 +#: xpack/plugins/cloud/models.py:280 msgid "Sync instance task history" msgstr "同步實例任務歷史" -#: xpack/plugins/cloud/models.py:282 +#: xpack/plugins/cloud/models.py:283 msgid "Instance" msgstr "實例" -#: xpack/plugins/cloud/models.py:299 +#: xpack/plugins/cloud/models.py:300 msgid "Sync instance detail" msgstr "同步實例詳情" -#: xpack/plugins/cloud/models.py:311 -#: xpack/plugins/cloud/serializers/task.py:77 +#: xpack/plugins/cloud/models.py:312 xpack/plugins/cloud/serializers/task.py:77 msgid "Rule relation" msgstr "條件關係" -#: xpack/plugins/cloud/models.py:321 +#: xpack/plugins/cloud/models.py:322 msgid "Task strategy" msgstr "任務策略" -#: xpack/plugins/cloud/models.py:348 +#: xpack/plugins/cloud/models.py:349 msgid "Equal" msgstr "等於" -#: xpack/plugins/cloud/models.py:349 +#: xpack/plugins/cloud/models.py:350 msgid "Not Equal" msgstr "不等於" -#: xpack/plugins/cloud/models.py:350 +#: xpack/plugins/cloud/models.py:351 msgid "In" msgstr "在...中" -#: xpack/plugins/cloud/models.py:351 +#: xpack/plugins/cloud/models.py:352 msgid "Contains" msgstr "包含" -#: xpack/plugins/cloud/models.py:352 +#: xpack/plugins/cloud/models.py:353 msgid "Exclude" msgstr "排除" -#: xpack/plugins/cloud/models.py:353 +#: xpack/plugins/cloud/models.py:354 msgid "Startswith" msgstr "以...開頭" -#: xpack/plugins/cloud/models.py:354 +#: xpack/plugins/cloud/models.py:355 msgid "Endswith" msgstr "以...結尾" -#: xpack/plugins/cloud/models.py:360 +#: xpack/plugins/cloud/models.py:361 msgid "Instance platform" msgstr "實例平台" -#: xpack/plugins/cloud/models.py:361 +#: xpack/plugins/cloud/models.py:362 msgid "Instance address" msgstr "實例地址" -#: xpack/plugins/cloud/models.py:368 +#: xpack/plugins/cloud/models.py:369 msgid "Rule attr" msgstr "規則屬性" -#: xpack/plugins/cloud/models.py:372 +#: xpack/plugins/cloud/models.py:373 msgid "Rule match" msgstr "規則匹配" -#: xpack/plugins/cloud/models.py:374 +#: xpack/plugins/cloud/models.py:375 msgid "Rule value" msgstr "規則值" -#: xpack/plugins/cloud/models.py:381 -#: xpack/plugins/cloud/serializers/task.py:80 +#: xpack/plugins/cloud/models.py:382 xpack/plugins/cloud/serializers/task.py:80 msgid "Strategy rule" msgstr "條件" -#: xpack/plugins/cloud/models.py:391 +#: xpack/plugins/cloud/models.py:392 msgid "Name strategy" msgstr "主機名稱策略" -#: xpack/plugins/cloud/models.py:398 +#: xpack/plugins/cloud/models.py:399 msgid "Action attr" msgstr "動作屬性" -#: xpack/plugins/cloud/models.py:400 +#: xpack/plugins/cloud/models.py:401 msgid "Action value" msgstr "動作值" -#: xpack/plugins/cloud/models.py:407 -#: xpack/plugins/cloud/serializers/task.py:83 +#: xpack/plugins/cloud/models.py:408 xpack/plugins/cloud/serializers/task.py:83 msgid "Strategy action" msgstr "動作" @@ -10185,7 +10361,9 @@ 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. <br>If the port is 0, all IP addresses are valid." -msgstr "埠用來檢測 IP 地址的有效性,在同步任務執行時,只會同步有效的 IP 地址。 <br>如果埠為 0,則表示所有 IP 地址均有效。" +msgstr "" +"埠用來檢測 IP 地址的有效性,在同步任務執行時,只會同步有效的 IP 地址。 <br>如" +"果埠為 0,則表示所有 IP 地址均有效。" #: xpack/plugins/cloud/serializers/account_attrs.py:190 msgid "Hostname prefix" @@ -10218,7 +10396,8 @@ 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" @@ -10231,13 +10410,16 @@ 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." @@ -10309,5 +10491,11 @@ msgstr "企業專業版" msgid "Ultimate edition" msgstr "企業旗艦版" -#~ msgid "Preferred IP type" -#~ msgstr "首選 IP 類型" +#~ msgid "* Please enter the correct password length" +#~ msgstr "* 請輸入正確的密碼長度" + +#~ msgid "* Password length range 6-30 bits" +#~ msgstr "* 密碼長度範圍 6-30 位" + +#~ msgid "Sync IP type" +#~ msgstr "同步 IP 類型" diff --git a/apps/i18n/koko/en.json b/apps/i18n/koko/en.json index e37fd7065..cc13ae014 100644 --- a/apps/i18n/koko/en.json +++ b/apps/i18n/koko/en.json @@ -70,4 +70,4 @@ "WaitFileTransfer": "Wait file transfer to finish", "WebSocketClosed": "WebSocket closed", "Writable": "Writable" -} +} \ No newline at end of file diff --git a/apps/i18n/koko/ja.json b/apps/i18n/koko/ja.json index 47f426463..6c10c68c0 100644 --- a/apps/i18n/koko/ja.json +++ b/apps/i18n/koko/ja.json @@ -36,6 +36,8 @@ "OnlineUsers": "オンラインスタッフ", "Paste": "貼り付け", "PauseSession": "セッションを一時停止", + "PermissionExpired": "許可が期限切れになりました", + "PermissionValid": "権限は有効です", "ReadOnly": "読み取り専用", "Reconnect": "再接続", "Refresh": "リフレッシュ", diff --git a/apps/i18n/koko/zh.json b/apps/i18n/koko/zh.json index ddebc4d65..bbd125e48 100644 --- a/apps/i18n/koko/zh.json +++ b/apps/i18n/koko/zh.json @@ -70,4 +70,4 @@ "WaitFileTransfer": "等待文件传输结束", "WebSocketClosed": "WebSocket 已关闭", "Writable": "可写" -} +} \ No newline at end of file diff --git a/apps/i18n/koko/zh_hant.json b/apps/i18n/koko/zh_hant.json index 8fe8cfee0..a54c418c8 100644 --- a/apps/i18n/koko/zh_hant.json +++ b/apps/i18n/koko/zh_hant.json @@ -36,6 +36,8 @@ "OnlineUsers": "在線人員", "Paste": "貼上", "PauseSession": "暫停此會話", + "PermissionExpired": "權限已過期", + "PermissionValid": "權限有效", "ReadOnly": "只讀", "Reconnect": "重新連線", "Refresh": "刷新", diff --git a/apps/i18n/lina/en.json b/apps/i18n/lina/en.json index cc3220118..81439dcf0 100644 --- a/apps/i18n/lina/en.json +++ b/apps/i18n/lina/en.json @@ -624,6 +624,7 @@ "InputPhone": "Phone number", "InstanceAddress": "Instance address", "InstanceName": "Instance name", + "InstanceNamePartIp": "Instance name and Partial IP", "InstancePlatformName": "Instance platform name", "Interface": "Appearance", "InterfaceSettings": "Appearance", @@ -1400,6 +1401,5 @@ "ZoneUpdate": "Update the zone", "disallowSelfUpdateFields": "Not allowed to modify the current fields yourself", "forceEnableMFAHelpText": "If force enable, user can not disable by themselves", - "removeWarningMsg": "Are you sure you want to remove", - "InstanceNamePartIp": "Instance name and Partial IP" + "removeWarningMsg": "Are you sure you want to remove" } \ No newline at end of file diff --git a/apps/i18n/lina/ja.json b/apps/i18n/lina/ja.json index dba2752fb..bc6202901 100644 --- a/apps/i18n/lina/ja.json +++ b/apps/i18n/lina/ja.json @@ -640,6 +640,7 @@ "InputPhone": "携帯電話番号を入力してください", "InstanceAddress": "インスタンスのアドレス", "InstanceName": "インスタンス名", + "InstanceNamePartIp": "インスタンス名と部分IP", "InstancePlatformName": "インスタンスプラットフォーム名", "Interface": "ネットワークインターフェース", "InterfaceSettings": "インターフェースの設定", @@ -1442,6 +1443,5 @@ "ZoneUpdate": "更新エリア", "disallowSelfUpdateFields": "現在のフィールドを自分で変更することは許可されていません", "forceEnableMFAHelpText": "強制的に有効化すると、ユーザーは自分で無効化することができません。", - "removeWarningMsg": "削除してもよろしいですか", - "InstanceNamePartIp": "インスタンス名と部分IP" + "removeWarningMsg": "削除してもよろしいですか" } \ No newline at end of file diff --git a/apps/i18n/lina/zh.json b/apps/i18n/lina/zh.json index 58535ec97..12b037704 100644 --- a/apps/i18n/lina/zh.json +++ b/apps/i18n/lina/zh.json @@ -622,6 +622,7 @@ "InputPhone": "请输入手机号码", "InstanceAddress": "实例地址", "InstanceName": "实例名称", + "InstanceNamePartIp": "实例名称和部分IP", "InstancePlatformName": "实例平台名称", "Interface": "网络接口", "InterfaceSettings": "界面设置", @@ -1404,6 +1405,5 @@ "ZoneUpdate": "更新网域", "disallowSelfUpdateFields": "不允许自己修改当前字段", "forceEnableMFAHelpText": "如果强制启用,用户无法自行禁用", - "removeWarningMsg": "你确定要移除", - "InstanceNamePartIp": "实例名称和部分IP" + "removeWarningMsg": "你确定要移除" } \ No newline at end of file diff --git a/apps/i18n/lina/zh_hant.json b/apps/i18n/lina/zh_hant.json index c3e21c4f4..a74b6e975 100644 --- a/apps/i18n/lina/zh_hant.json +++ b/apps/i18n/lina/zh_hant.json @@ -812,6 +812,7 @@ "InsecureCommandNotifyToSubscription": "危險命令通知已升級到消息訂閱中,支持更多通知方式", "InstanceAddress": "實例地址", "InstanceName": "實例名稱", + "InstanceNamePartIp": "實例名稱和部分IP", "InstancePlatformName": "實例平台名稱", "Interface": "網路介面", "InterfaceSettings": "界面設置", @@ -2283,6 +2284,5 @@ "weComTest": "測試", "week": "周", "weekOf": "周的星期", - "wildcardsAllowed": "允許的通配符", - "InstanceNamePartIp": "實例名稱和部分IP" + "wildcardsAllowed": "允許的通配符" } \ No newline at end of file