From c63c000b101edcb6d4c2d3e5b1ef42bfe4bf1673 Mon Sep 17 00:00:00 2001 From: Aaron3S Date: Tue, 15 Nov 2022 16:29:40 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E5=BC=82=E6=AD=A5?= =?UTF-8?q?=E8=AE=A4=E8=AF=86=E6=98=BE=E7=A4=BA=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/tasks/automation.py | 3 +- apps/assets/tasks/backup.py | 3 +- apps/assets/tasks/gather_accounts.py | 3 +- apps/assets/tasks/gather_facts.py | 5 +- apps/assets/tasks/nodes_amount.py | 5 +- apps/assets/tasks/ping.py | 5 +- apps/assets/tasks/push_account.py | 3 +- apps/assets/tasks/verify_account.py | 3 +- apps/common/tasks.py | 5 +- apps/locale/ja/LC_MESSAGES/django.mo | 4 +- apps/locale/ja/LC_MESSAGES/django.po | 1455 +++++++++++++++----------- apps/locale/zh/LC_MESSAGES/django.mo | 4 +- apps/locale/zh/LC_MESSAGES/django.po | 1451 +++++++++++++------------ apps/notifications/notifications.py | 3 +- apps/ops/api/celery.py | 4 +- apps/ops/models/celery.py | 3 + apps/ops/models/playbook.py | 2 +- apps/ops/tasks.py | 114 +- apps/orgs/tasks.py | 3 +- 19 files changed, 1674 insertions(+), 1404 deletions(-) diff --git a/apps/assets/tasks/automation.py b/apps/assets/tasks/automation.py index e288de464..60f01836f 100644 --- a/apps/assets/tasks/automation.py +++ b/apps/assets/tasks/automation.py @@ -1,4 +1,5 @@ from celery import shared_task +from django.utils.translation import gettext_lazy as _ from orgs.utils import tmp_to_root_org, tmp_to_org from common.utils import get_logger, get_object_or_none @@ -7,7 +8,7 @@ from assets.const import AutomationTypes logger = get_logger(__file__) -@shared_task(queue='ansible') +@shared_task(queue='ansible', verbose_name=_('Execute automation')) def execute_automation(pid, trigger, tp): model = AutomationTypes.get_type_model(tp) with tmp_to_root_org(): diff --git a/apps/assets/tasks/backup.py b/apps/assets/tasks/backup.py index 5d4e91011..a82a6abd1 100644 --- a/apps/assets/tasks/backup.py +++ b/apps/assets/tasks/backup.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- # from celery import shared_task +from django.utils.translation import gettext_lazy as _ from common.utils import get_object_or_none, get_logger from orgs.utils import tmp_to_org, tmp_to_root_org @@ -9,7 +10,7 @@ from assets.models import AccountBackupPlan logger = get_logger(__file__) -@shared_task +@shared_task(verbose_name=_('Execute account backup plan')) def execute_account_backup_plan(pid, trigger): with tmp_to_root_org(): plan = get_object_or_none(AccountBackupPlan, pk=pid) diff --git a/apps/assets/tasks/gather_accounts.py b/apps/assets/tasks/gather_accounts.py index 4e372aca7..5e20bfe73 100644 --- a/apps/assets/tasks/gather_accounts.py +++ b/apps/assets/tasks/gather_accounts.py @@ -1,6 +1,7 @@ # ~*~ coding: utf-8 ~*~ from celery import shared_task from django.utils.translation import gettext_noop +from django.utils.translation import gettext_lazy as _ from orgs.utils import tmp_to_root_org, org_aware_func from common.utils import get_logger @@ -24,7 +25,7 @@ def gather_asset_accounts_util(nodes, task_name): instance.execute() -@shared_task(queue="ansible") +@shared_task(queue="ansible", verbose_name=_('Gather asset accounts')) def gather_asset_accounts(node_ids, task_name=None): if task_name is None: task_name = gettext_noop("Gather assets accounts") diff --git a/apps/assets/tasks/gather_facts.py b/apps/assets/tasks/gather_facts.py index 805f8b336..b3196abf5 100644 --- a/apps/assets/tasks/gather_facts.py +++ b/apps/assets/tasks/gather_facts.py @@ -2,6 +2,7 @@ # from celery import shared_task from django.utils.translation import gettext_noop +from django.utils.translation import gettext_lazy as _ from common.utils import get_logger from orgs.utils import org_aware_func, tmp_to_root_org @@ -40,7 +41,7 @@ def update_assets_hardware_info_util(assets=None, nodes=None, task_name=None): instance.execute() -@shared_task(queue="ansible") +@shared_task(queue="ansible", verbose_name=_('Manually update the hardware information of assets')) def update_assets_hardware_info_manual(asset_ids): from assets.models import Asset with tmp_to_root_org(): @@ -49,7 +50,7 @@ def update_assets_hardware_info_manual(asset_ids): update_assets_hardware_info_util(assets=assets, task_name=task_name) -@shared_task(queue="ansible") +@shared_task(queue="ansible", verbose_name=_('Manually update the hardware information of assets under a node')) def update_node_assets_hardware_info_manual(node_id): from assets.models import Node with tmp_to_root_org(): diff --git a/apps/assets/tasks/nodes_amount.py b/apps/assets/tasks/nodes_amount.py index c6ad2e8ba..f8d8d38a4 100644 --- a/apps/assets/tasks/nodes_amount.py +++ b/apps/assets/tasks/nodes_amount.py @@ -10,11 +10,10 @@ from common.utils.lock import AcquireFailed from common.utils import get_logger from common.const.crontab import CRONTAB_AT_AM_TWO - logger = get_logger(__file__) -@shared_task +@shared_task(verbose_name=_('Check the amount of assets under the node')) def check_node_assets_amount_task(org_id=None): if org_id is None: orgs = Organization.objects.all() @@ -32,6 +31,6 @@ def check_node_assets_amount_task(org_id=None): @register_as_period_task(crontab=CRONTAB_AT_AM_TWO) -@shared_task +@shared_task(verbose_name=_('Periodic check the amount of assets under the node')) def check_node_assets_amount_period_task(): check_node_assets_amount_task() diff --git a/apps/assets/tasks/ping.py b/apps/assets/tasks/ping.py index f1bfc93d9..817f64b64 100644 --- a/apps/assets/tasks/ping.py +++ b/apps/assets/tasks/ping.py @@ -1,6 +1,7 @@ # ~*~ coding: utf-8 ~*~ from celery import shared_task from django.utils.translation import gettext_noop +from django.utils.translation import gettext_lazy as _ from common.utils import get_logger from orgs.utils import org_aware_func, tmp_to_root_org @@ -29,7 +30,7 @@ def test_asset_connectivity_util(assets, task_name=None): instance.execute() -@shared_task(queue="ansible") +@shared_task(queue="ansible", verbose_name=_('Manually test the connectivity of a asset')) def test_assets_connectivity_manual(asset_ids): from assets.models import Asset with tmp_to_root_org(): @@ -39,7 +40,7 @@ def test_assets_connectivity_manual(asset_ids): test_asset_connectivity_util(assets, task_name=task_name) -@shared_task(queue="ansible") +@shared_task(queue="ansible", verbose_name=_('Manually test the connectivity of assets under a node')) def test_node_assets_connectivity_manual(node_id): from assets.models import Node with tmp_to_root_org(): diff --git a/apps/assets/tasks/push_account.py b/apps/assets/tasks/push_account.py index cd5de975a..c2c7156e8 100644 --- a/apps/assets/tasks/push_account.py +++ b/apps/assets/tasks/push_account.py @@ -3,6 +3,7 @@ from django.utils.translation import gettext_noop from common.utils import get_logger from orgs.utils import org_aware_func, tmp_to_root_org +from django.utils.translation import ugettext_lazy as _ logger = get_logger(__file__) __all__ = [ @@ -27,7 +28,7 @@ def push_accounts_to_assets_util(accounts, assets): instance.execute() -@shared_task(queue="ansible") +@shared_task(queue="ansible", verbose_name=_('Push accounts to assets')) def push_accounts_to_assets(account_ids, asset_ids): from assets.models import Asset, Account with tmp_to_root_org(): diff --git a/apps/assets/tasks/verify_account.py b/apps/assets/tasks/verify_account.py index 2874113d8..4538f2b2d 100644 --- a/apps/assets/tasks/verify_account.py +++ b/apps/assets/tasks/verify_account.py @@ -1,5 +1,6 @@ from celery import shared_task from django.utils.translation import gettext_noop +from django.utils.translation import ugettext as _ from common.utils import get_logger from orgs.utils import org_aware_func, tmp_to_root_org @@ -26,7 +27,7 @@ def verify_accounts_connectivity_util(accounts, assets, task_name): instance.execute() -@shared_task(queue="ansible") +@shared_task(queue="ansible", verbose_name=_('Verify asset account availability')) def verify_accounts_connectivity(account_ids, asset_ids): from assets.models import Asset, Account with tmp_to_root_org(): diff --git a/apps/common/tasks.py b/apps/common/tasks.py index b9c7caf07..45828492b 100644 --- a/apps/common/tasks.py +++ b/apps/common/tasks.py @@ -1,5 +1,6 @@ import os +from django.utils.translation import ugettext_lazy as _ from django.core.mail import send_mail, EmailMultiAlternatives from django.conf import settings from celery import shared_task @@ -9,7 +10,7 @@ from .utils import get_logger logger = get_logger(__file__) -@shared_task +@shared_task(verbose_name=_("Send email")) def send_mail_async(*args, **kwargs): """ Using celery to send email async @@ -36,7 +37,7 @@ def send_mail_async(*args, **kwargs): logger.error("Sending mail error: {}".format(e)) -@shared_task +@shared_task(verbose_name=_("Send email attachment")) def send_mail_attachment_async(subject, message, recipient_list, attachment_list=None): if attachment_list is None: attachment_list = [] diff --git a/apps/locale/ja/LC_MESSAGES/django.mo b/apps/locale/ja/LC_MESSAGES/django.mo index 093842b71..bb9486afd 100644 --- a/apps/locale/ja/LC_MESSAGES/django.mo +++ b/apps/locale/ja/LC_MESSAGES/django.mo @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:07f1cfd07039142f4847b4139586bf815467f266119eae57476c073130f0ac92 -size 118098 +oid sha256:0b54b29587fa79fd51a8e1836eba016c2a64419dc0981bac65daa356f6e180f2 +size 117154 diff --git a/apps/locale/ja/LC_MESSAGES/django.po b/apps/locale/ja/LC_MESSAGES/django.po index 59f5db0eb..1ef36810d 100644 --- a/apps/locale/ja/LC_MESSAGES/django.po +++ b/apps/locale/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: 2022-11-03 16:00+0800\n" +"POT-Creation-Date: 2022-11-15 15:52+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,20 +22,21 @@ msgstr "" msgid "Acls" msgstr "Acls" -#: acls/models/base.py:25 acls/serializers/login_asset_acl.py:48 +#: acls/models/base.py:25 acls/serializers/login_asset_acl.py:58 #: applications/models.py:10 assets/models/_user.py:33 #: assets/models/asset/common.py:81 assets/models/asset/common.py:91 -#: assets/models/base.py:57 assets/models/cmd_filter.py:25 +#: assets/models/base.py:50 assets/models/cmd_filter.py:25 #: assets/models/domain.py:24 assets/models/group.py:20 -#: assets/models/label.py:17 assets/models/platform.py:22 -#: assets/models/platform.py:68 assets/serializers/asset/common.py:86 -#: assets/serializers/platform.py:104 ops/mixin.py:20 ops/models/playbook.py:9 -#: orgs/models.py:70 perms/models/asset_permission.py:56 rbac/models/role.py:29 +#: assets/models/label.py:17 assets/models/platform.py:21 +#: assets/models/platform.py:72 assets/serializers/asset/common.py:86 +#: assets/serializers/platform.py:138 ops/mixin.py:20 ops/models/adhoc.py:24 +#: ops/models/job.py:33 ops/models/playbook.py:13 orgs/models.py:70 +#: perms/models/asset_permission.py:51 rbac/models/role.py:29 #: settings/models.py:33 settings/serializers/sms.py:6 #: terminal/models/applet/applet.py:20 terminal/models/component/endpoint.py:11 #: terminal/models/component/endpoint.py:87 #: terminal/models/component/storage.py:25 terminal/models/component/task.py:16 -#: terminal/models/component/terminal.py:100 users/forms/profile.py:33 +#: terminal/models/component/terminal.py:82 users/forms/profile.py:33 #: users/models/group.py:15 users/models/user.py:665 #: xpack/plugins/cloud/models.py:30 msgid "Name" @@ -53,26 +54,25 @@ msgstr "1-100、低い値は最初に一致します" #: acls/models/base.py:31 authentication/models/access_key.py:15 #: authentication/templates/authentication/_access_key_modal.html:32 -#: perms/models/asset_permission.py:74 terminal/models/session/sharing.py:28 +#: perms/models/asset_permission.py:67 terminal/models/session/sharing.py:28 #: tickets/const.py:38 msgid "Active" msgstr "アクティブ" #: acls/models/base.py:32 applications/models.py:19 assets/models/_user.py:40 -#: assets/models/asset/common.py:100 assets/models/automations/base.py:26 -#: assets/models/backup.py:30 assets/models/base.py:65 +#: assets/models/asset/common.py:100 assets/models/automations/base.py:22 +#: assets/models/backup.py:29 assets/models/base.py:58 #: assets/models/cmd_filter.py:40 assets/models/cmd_filter.py:88 #: assets/models/domain.py:25 assets/models/domain.py:69 #: assets/models/group.py:23 assets/models/label.py:22 -#: assets/models/platform.py:73 ops/models/playbook.py:11 -#: ops/models/playbook.py:25 orgs/models.py:74 -#: perms/models/asset_permission.py:84 rbac/models/role.py:37 +#: assets/models/platform.py:77 orgs/models.py:74 +#: perms/models/asset_permission.py:77 rbac/models/role.py:37 #: settings/models.py:38 terminal/models/applet/applet.py:28 -#: terminal/models/applet/applet.py:61 terminal/models/applet/host.py:104 +#: terminal/models/applet/applet.py:61 terminal/models/applet/host.py:107 #: terminal/models/component/endpoint.py:24 #: terminal/models/component/endpoint.py:97 #: terminal/models/component/storage.py:28 -#: terminal/models/component/terminal.py:114 tickets/models/comment.py:32 +#: terminal/models/component/terminal.py:93 tickets/models/comment.py:32 #: tickets/models/ticket/general.py:288 users/models/group.py:16 #: users/models/user.py:702 xpack/plugins/change_auth_plan/models/base.py:44 #: xpack/plugins/cloud/models.py:37 xpack/plugins/cloud/models.py:118 @@ -95,12 +95,12 @@ msgid "Login confirm" msgstr "ログイン確認" #: acls/models/login_acl.py:24 acls/models/login_asset_acl.py:20 -#: assets/models/cmd_filter.py:28 assets/models/label.py:15 audits/models.py:37 -#: audits/models.py:62 audits/models.py:87 -#: authentication/models/connection_token.py:22 -#: authentication/models/sso_token.py:15 perms/models/asset_permission.py:58 -#: rbac/builtin.py:120 rbac/models/rolebinding.py:41 -#: terminal/backends/command/models.py:20 +#: acls/serializers/login_acl.py:21 assets/models/cmd_filter.py:28 +#: assets/models/label.py:15 audits/models.py:29 audits/models.py:48 +#: audits/models.py:79 authentication/models/connection_token.py:22 +#: authentication/models/sso_token.py:15 perms/models/asset_permission.py:53 +#: perms/models/perm_token.py:12 rbac/builtin.py:120 +#: rbac/models/rolebinding.py:41 terminal/backends/command/models.py:20 #: terminal/backends/command/serializers.py:13 #: terminal/models/session/session.py:30 terminal/models/session/sharing.py:33 #: terminal/notifications.py:91 terminal/notifications.py:139 @@ -114,14 +114,14 @@ msgid "Rule" msgstr "ルール" #: acls/models/login_acl.py:31 acls/models/login_asset_acl.py:26 -#: acls/serializers/login_acl.py:17 acls/serializers/login_asset_acl.py:62 -#: assets/models/cmd_filter.py:81 audits/models.py:63 audits/serializers.py:49 +#: acls/serializers/login_acl.py:26 acls/serializers/login_asset_acl.py:77 +#: assets/models/cmd_filter.py:81 audits/models.py:50 audits/serializers.py:69 #: authentication/templates/authentication/_access_key_modal.html:34 msgid "Action" msgstr "アクション" #: acls/models/login_acl.py:35 acls/models/login_asset_acl.py:32 -#: acls/serializers/login_acl.py:16 assets/models/cmd_filter.py:86 +#: acls/serializers/login_acl.py:23 assets/models/cmd_filter.py:86 msgid "Reviewers" msgstr "レビュー担当者" @@ -129,19 +129,25 @@ msgstr "レビュー担当者" msgid "Login acl" msgstr "ログインacl" -#: acls/models/login_asset_acl.py:21 assets/models/account.py:59 +#: acls/models/login_asset_acl.py:21 assets/models/account.py:61 +#: assets/serializers/automations/change_secret.py:88 +#: assets/serializers/automations/change_secret.py:110 #: authentication/models/connection_token.py:33 ops/models/base.py:18 -#: terminal/models/session/session.py:34 xpack/plugins/cloud/models.py:87 -#: xpack/plugins/cloud/serializers/task.py:65 +#: perms/models/perm_token.py:14 terminal/models/session/session.py:34 +#: xpack/plugins/cloud/models.py:87 xpack/plugins/cloud/serializers/task.py:65 msgid "Account" msgstr "アカウント" -#: acls/models/login_asset_acl.py:22 assets/models/account.py:49 +#: acls/models/login_asset_acl.py:22 assets/models/account.py:51 #: assets/models/asset/common.py:83 assets/models/asset/common.py:227 #: assets/models/cmd_filter.py:36 assets/models/gathered_user.py:14 -#: assets/serializers/account/account.py:58 assets/serializers/label.py:30 -#: audits/models.py:39 authentication/models/connection_token.py:26 -#: perms/models/asset_permission.py:64 terminal/backends/command/models.py:21 +#: assets/serializers/account/account.py:59 +#: assets/serializers/automations/change_secret.py:87 +#: assets/serializers/automations/change_secret.py:109 +#: assets/serializers/gathered_user.py:11 assets/serializers/label.py:30 +#: audits/models.py:33 authentication/models/connection_token.py:26 +#: perms/models/asset_permission.py:59 perms/models/perm_token.py:13 +#: terminal/backends/command/models.py:21 #: terminal/backends/command/serializers.py:14 #: terminal/models/session/session.py:32 terminal/notifications.py:90 #: xpack/plugins/change_auth_plan/models/asset.py:200 @@ -158,14 +164,14 @@ msgstr "ログインasset acl" msgid "Login asset confirm" msgstr "ログイン資産の確認" -#: acls/serializers/login_acl.py:11 acls/serializers/login_asset_acl.py:13 +#: acls/serializers/login_acl.py:16 acls/serializers/login_asset_acl.py:14 msgid "Format for comma-delimited string, with * indicating a match all. " msgstr "コンマ区切り文字列の形式。* はすべて一致することを示します。" -#: acls/serializers/login_acl.py:15 acls/serializers/login_asset_acl.py:18 -#: acls/serializers/login_asset_acl.py:52 assets/models/_user.py:34 -#: assets/models/base.py:58 assets/models/gathered_user.py:15 -#: audits/models.py:121 authentication/forms.py:25 authentication/forms.py:27 +#: acls/serializers/login_asset_acl.py:22 +#: acls/serializers/login_asset_acl.py:64 assets/models/_user.py:34 +#: assets/models/base.py:51 assets/models/gathered_user.py:15 +#: audits/models.py:95 authentication/forms.py:25 authentication/forms.py:27 #: authentication/models/temp_token.py:9 #: authentication/templates/authentication/_msg_different_city.html:9 #: authentication/templates/authentication/_msg_oauth_bind.html:9 @@ -177,7 +183,7 @@ msgstr "コンマ区切り文字列の形式。* はすべて一致すること msgid "Username" msgstr "ユーザー名" -#: acls/serializers/login_asset_acl.py:25 +#: acls/serializers/login_asset_acl.py:29 msgid "" "Format for comma-delimited string, 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:" @@ -187,7 +193,7 @@ 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 (ドメイン名サポート)" -#: acls/serializers/login_asset_acl.py:32 acls/serializers/rules/rules.py:33 +#: acls/serializers/login_asset_acl.py:38 acls/serializers/rules/rules.py:33 #: assets/models/asset/common.py:92 assets/models/domain.py:65 #: authentication/templates/authentication/_msg_oauth_bind.html:12 #: authentication/templates/authentication/_msg_rest_password_success.html:8 @@ -196,12 +202,12 @@ msgstr "" msgid "IP" msgstr "IP" -#: acls/serializers/login_asset_acl.py:36 -#: assets/serializers/gathered_user.py:22 settings/serializers/terminal.py:7 +#: acls/serializers/login_asset_acl.py:44 +#: assets/serializers/gathered_user.py:24 settings/serializers/terminal.py:7 msgid "Hostname" msgstr "ホスト名" -#: acls/serializers/login_asset_acl.py:43 +#: acls/serializers/login_asset_acl.py:51 msgid "" "Format for comma-delimited string, with * indicating a match all. Protocol " "options: {}" @@ -209,12 +215,12 @@ msgstr "" "コンマ区切り文字列の形式。* はすべて一致することを示します。プロトコルオプ" "ション: {}" -#: acls/serializers/login_asset_acl.py:84 +#: acls/serializers/login_asset_acl.py:108 #: tickets/serializers/ticket/ticket.py:86 msgid "The organization `{}` does not exist" msgstr "組織 '{}'は存在しません" -#: acls/serializers/login_asset_acl.py:89 +#: acls/serializers/login_asset_acl.py:114 msgid "None of the reviewers belong to Organization `{}`" msgstr "いずれのレビューアも組織 '{}' に属していません" @@ -242,23 +248,25 @@ msgid "Applications" msgstr "アプリケーション" #: applications/models.py:12 assets/models/label.py:20 -#: assets/models/platform.py:69 assets/serializers/asset/common.py:62 -#: assets/serializers/cagegory.py:8 assets/serializers/platform.py:76 -#: assets/serializers/platform.py:105 +#: assets/models/platform.py:73 assets/serializers/asset/common.py:62 +#: assets/serializers/cagegory.py:8 assets/serializers/platform.py:99 +#: assets/serializers/platform.py:139 perms/serializers/user_permission.py:24 #: tickets/models/ticket/apply_application.py:14 #: xpack/plugins/change_auth_plan/models/app.py:24 msgid "Category" msgstr "カテゴリ" #: applications/models.py:15 assets/models/_user.py:46 -#: assets/models/automations/base.py:24 assets/models/cmd_filter.py:74 -#: assets/models/platform.py:70 assets/serializers/asset/common.py:63 -#: assets/serializers/platform.py:75 terminal/models/applet/applet.py:24 +#: assets/models/automations/base.py:20 assets/models/cmd_filter.py:74 +#: assets/models/platform.py:74 assets/serializers/asset/common.py:63 +#: assets/serializers/automations/base.py:40 assets/serializers/platform.py:98 +#: audits/serializers.py:40 ops/models/job.py:39 +#: perms/serializers/user_permission.py:25 terminal/models/applet/applet.py:24 #: terminal/models/component/storage.py:57 #: terminal/models/component/storage.py:142 terminal/serializers/applet.py:33 #: tickets/models/comment.py:26 tickets/models/flow.py:57 #: tickets/models/ticket/apply_application.py:17 -#: tickets/models/ticket/general.py:273 +#: tickets/models/ticket/general.py:273 tickets/serializers/flow.py:53 #: xpack/plugins/change_auth_plan/models/app.py:27 #: xpack/plugins/change_auth_plan/models/app.py:152 msgid "Type" @@ -277,6 +285,11 @@ msgstr "アプリケーション" msgid "Can match application" msgstr "アプリケーションを一致させることができます" +#: assets/api/automations/base.py:76 +#: xpack/plugins/change_auth_plan/api/asset.py:94 +msgid "The parameter 'action' must be [{}]" +msgstr "パラメータ 'action' は [{}] でなければなりません。" + #: assets/api/domain.py:52 msgid "Number required" msgstr "必要な数" @@ -297,13 +310,13 @@ msgstr "削除に失敗し、ノードにアセットが含まれています。 msgid "App assets" msgstr "アプリ資産" -#: assets/automations/base/manager.py:122 +#: assets/automations/base/manager.py:123 #, fuzzy #| msgid "Disabled" msgid "{} disabled" msgstr "無効" -#: assets/const/account.py:6 audits/const.py:5 +#: assets/const/account.py:6 audits/const.py:6 audits/const.py:63 #: common/utils/ip/geoip/utils.py:31 common/utils/ip/geoip/utils.py:37 #: common/utils/ip/utils.py:84 msgid "Unknown" @@ -313,19 +326,21 @@ msgstr "不明" msgid "Ok" msgstr "OK" -#: assets/const/account.py:8 audits/models.py:118 common/const/choices.py:19 +#: assets/const/account.py:8 +#: assets/serializers/automations/change_secret.py:105 +#: assets/serializers/automations/change_secret.py:133 audits/const.py:74 +#: common/const/choices.py:19 #: xpack/plugins/change_auth_plan/serializers/asset.py:190 #: xpack/plugins/cloud/const.py:33 msgid "Failed" msgstr "失敗しました" #: assets/const/account.py:12 assets/models/_user.py:35 -#: assets/models/base.py:52 assets/models/domain.py:71 -#: assets/serializers/base.py:15 audits/signal_handlers.py:50 +#: assets/models/domain.py:71 audits/signal_handlers.py:46 #: authentication/confirm/password.py:9 authentication/forms.py:32 #: authentication/templates/authentication/login.html:228 #: settings/serializers/auth/ldap.py:25 settings/serializers/auth/ldap.py:46 -#: users/forms/profile.py:22 users/serializers/user.py:94 +#: users/forms/profile.py:22 users/serializers/user.py:105 #: users/templates/users/_msg_user_created.html:13 #: users/templates/users/user_password_verify.html:18 #: xpack/plugins/change_auth_plan/models/base.py:42 @@ -337,19 +352,18 @@ msgstr "失敗しました" msgid "Password" msgstr "パスワード" -#: assets/const/account.py:13 assets/models/base.py:53 +#: assets/const/account.py:13 #, fuzzy #| msgid "SSH Key" msgid "SSH key" msgstr "SSHキー" -#: assets/const/account.py:14 assets/models/base.py:54 -#: authentication/models/access_key.py:31 +#: assets/const/account.py:14 authentication/models/access_key.py:31 msgid "Access key" msgstr "アクセスキー" #: assets/const/account.py:15 assets/models/_user.py:38 -#: assets/models/base.py:55 authentication/models/sso_token.py:13 +#: authentication/models/sso_token.py:13 msgid "Token" msgstr "トークン" @@ -387,31 +401,31 @@ msgstr "パスワード/キーの確認" msgid "Gather accounts" msgstr "アカウントを集める" -#: assets/const/automation.py:22 +#: assets/const/automation.py:38 assets/serializers/account/base.py:26 msgid "Specific" msgstr "" -#: assets/const/automation.py:23 ops/const.py:20 +#: assets/const/automation.py:39 ops/const.py:20 #: xpack/plugins/change_auth_plan/models/base.py:28 msgid "All assets use the same random password" msgstr "すべての資産は同じランダムパスワードを使用します" -#: assets/const/automation.py:24 ops/const.py:21 +#: assets/const/automation.py:40 ops/const.py:21 #: xpack/plugins/change_auth_plan/models/base.py:29 msgid "All assets use different random password" msgstr "すべての資産は異なるランダムパスワードを使用します" -#: assets/const/automation.py:28 ops/const.py:13 +#: assets/const/automation.py:44 ops/const.py:13 #: xpack/plugins/change_auth_plan/models/asset.py:30 msgid "Append SSH KEY" msgstr "追加" -#: assets/const/automation.py:29 ops/const.py:14 +#: assets/const/automation.py:45 ops/const.py:14 #: xpack/plugins/change_auth_plan/models/asset.py:31 msgid "Empty and append SSH KEY" msgstr "すべてクリアして追加" -#: assets/const/automation.py:30 ops/const.py:15 +#: assets/const/automation.py:46 ops/const.py:15 #: xpack/plugins/change_auth_plan/models/asset.py:32 msgid "Replace (The key generated by JumpServer) " msgstr "置換(JumpServerによって生成された鍵)" @@ -439,7 +453,8 @@ msgstr "データベース" msgid "Cloud service" msgstr "クラウドセンター" -#: assets/const/category.py:15 terminal/models/applet/applet.py:18 +#: assets/const/category.py:15 audits/const.py:61 +#: terminal/models/applet/applet.py:18 msgid "Web" msgstr "" @@ -485,7 +500,6 @@ msgid "Admin user" msgstr "管理ユーザー" #: assets/models/_user.py:36 assets/models/domain.py:72 -#: assets/serializers/base.py:19 #: xpack/plugins/change_auth_plan/models/asset.py:54 #: xpack/plugins/change_auth_plan/models/asset.py:131 #: xpack/plugins/change_auth_plan/models/asset.py:207 @@ -499,11 +513,12 @@ msgstr "SSH秘密鍵" msgid "SSH public key" msgstr "SSHパブリックキー" -#: assets/models/_user.py:41 assets/models/automations/base.py:96 +#: assets/models/_user.py:41 assets/models/automations/base.py:92 #: assets/models/domain.py:26 assets/models/gathered_user.py:19 #: assets/models/group.py:22 common/db/models.py:76 common/mixins/models.py:50 -#: ops/models/base.py:53 orgs/models.py:73 perms/models/asset_permission.py:82 -#: users/models/group.py:18 users/models/user.py:927 +#: ops/models/base.py:54 ops/models/job.py:62 orgs/models.py:73 +#: perms/models/asset_permission.py:75 users/models/group.py:18 +#: users/models/user.py:927 msgid "Date created" msgstr "作成された日付" @@ -512,10 +527,10 @@ msgstr "作成された日付" msgid "Date updated" msgstr "更新日" -#: assets/models/_user.py:43 assets/models/base.py:66 +#: assets/models/_user.py:43 assets/models/base.py:59 #: assets/models/cmd_filter.py:44 assets/models/cmd_filter.py:91 #: assets/models/group.py:21 common/db/models.py:74 common/mixins/models.py:49 -#: orgs/models.py:71 perms/models/asset_permission.py:81 +#: orgs/models.py:71 perms/models/asset_permission.py:74 #: users/models/user.py:710 users/serializers/group.py:33 #: xpack/plugins/change_auth_plan/models/base.py:48 msgid "Created by" @@ -526,7 +541,7 @@ msgid "Username same with user" msgstr "ユーザーと同じユーザー名" #: assets/models/_user.py:48 assets/models/domain.py:67 -#: authentication/models/connection_token.py:29 +#: authentication/models/connection_token.py:29 perms/models/perm_token.py:16 #: terminal/models/applet/applet.py:26 terminal/serializers/session.py:18 #: terminal/serializers/session.py:32 terminal/serializers/storage.py:68 msgid "Protocol" @@ -540,7 +555,7 @@ msgstr "オートプッシュ" msgid "Sudo" msgstr "すど" -#: assets/models/_user.py:51 +#: assets/models/_user.py:51 ops/models/adhoc.py:20 ops/models/job.py:29 msgid "Shell" msgstr "シェル" @@ -568,7 +583,7 @@ msgstr "ユーザースイッチ" msgid "Switch from" msgstr "から切り替え" -#: assets/models/_user.py:65 audits/models.py:40 +#: assets/models/_user.py:65 audits/models.py:34 #: terminal/backends/command/models.py:22 #: terminal/backends/command/serializers.py:36 #: xpack/plugins/change_auth_plan/models/app.py:35 @@ -580,47 +595,64 @@ msgstr "システムユーザー" msgid "Can match system user" msgstr "システムユーザーに一致できます" -#: assets/models/account.py:53 +#: assets/models/account.py:45 common/db/fields.py:222 +#: settings/serializers/terminal.py:12 +msgid "All" +msgstr "すべて" + +#: assets/models/account.py:46 +#, fuzzy +#| msgid "Manually input" +msgid "Manual input" +msgstr "手動入力" + +#: assets/models/account.py:47 +#, fuzzy +#| msgid "Dynamic code" +msgid "Dynamic user" +msgstr "動的コード" + +#: assets/models/account.py:55 #, fuzzy #| msgid "Switch from" msgid "Su from" msgstr "から切り替え" -#: assets/models/account.py:55 settings/serializers/auth/cas.py:18 +#: assets/models/account.py:57 settings/serializers/auth/cas.py:18 #: terminal/models/applet/applet.py:22 msgid "Version" msgstr "バージョン" -#: assets/models/account.py:65 +#: assets/models/account.py:67 msgid "Can view asset account secret" msgstr "資産アカウントの秘密を表示できます" -#: assets/models/account.py:66 +#: assets/models/account.py:68 msgid "Can change asset account secret" msgstr "資産口座の秘密を変更できます" -#: assets/models/account.py:67 +#: assets/models/account.py:69 msgid "Can view asset history account" msgstr "資産履歴アカウントを表示できます" -#: assets/models/account.py:68 +#: assets/models/account.py:70 msgid "Can view asset history account secret" msgstr "資産履歴アカウントパスワードを表示できます" -#: assets/models/account.py:91 assets/serializers/account/account.py:13 +#: assets/models/account.py:93 assets/serializers/account/account.py:15 #, fuzzy #| msgid "Account name" msgid "Account template" msgstr "アカウント名" #: assets/models/asset/common.py:82 assets/models/domain.py:66 -#: assets/models/platform.py:23 settings/serializers/auth/radius.py:15 +#: assets/models/platform.py:22 settings/serializers/auth/radius.py:15 #: settings/serializers/auth/sms.py:57 #: xpack/plugins/cloud/serializers/account_attrs.py:73 msgid "Port" msgstr "ポート" -#: assets/models/asset/common.py:93 assets/models/platform.py:104 +#: assets/models/asset/common.py:93 assets/models/platform.py:110 #: assets/serializers/asset/common.py:65 #: perms/serializers/user_permission.py:21 #: xpack/plugins/cloud/serializers/account_attrs.py:172 @@ -632,17 +664,19 @@ msgstr "プラットフォーム" msgid "Domain" msgstr "ドメイン" -#: assets/models/asset/common.py:97 assets/models/automations/base.py:19 -#: assets/serializers/asset/common.py:66 perms/models/asset_permission.py:67 +#: assets/models/asset/common.py:97 assets/models/automations/base.py:18 +#: assets/serializers/asset/common.py:66 +#: assets/serializers/automations/base.py:21 +#: perms/models/asset_permission.py:62 #: xpack/plugins/change_auth_plan/models/asset.py:44 #: xpack/plugins/gathered_user/models.py:24 msgid "Nodes" msgstr "ノード" -#: assets/models/asset/common.py:98 assets/models/automations/base.py:25 -#: assets/models/base.py:64 assets/models/cmd_filter.py:39 +#: assets/models/asset/common.py:98 assets/models/automations/base.py:21 +#: assets/models/base.py:57 assets/models/cmd_filter.py:39 #: assets/models/domain.py:70 assets/models/label.py:21 -#: terminal/models/applet/applet.py:25 users/serializers/user.py:147 +#: terminal/models/applet/applet.py:25 users/serializers/user.py:202 msgid "Is active" msgstr "アクティブです。" @@ -676,8 +710,8 @@ msgstr "ノードにアセットを追加する" msgid "Move asset to node" msgstr "アセットをノードに移動する" -#: assets/models/asset/web.py:9 audits/models.py:111 -#: terminal/serializers/applet_host.py:24 +#: assets/models/asset/web.py:9 audits/const.py:67 +#: terminal/serializers/applet_host.py:26 msgid "Disabled" msgstr "無効" @@ -695,97 +729,111 @@ msgstr "" msgid "Autofill" msgstr "自動" -#: assets/models/asset/web.py:14 assets/serializers/platform.py:29 +#: assets/models/asset/web.py:14 assets/serializers/platform.py:30 #, fuzzy #| msgid "Username attr" msgid "Username selector" msgstr "ユーザー名のプロパティ" -#: assets/models/asset/web.py:15 assets/serializers/platform.py:30 +#: assets/models/asset/web.py:15 assets/serializers/platform.py:33 #, fuzzy #| msgid "Password rules" msgid "Password selector" msgstr "パスワードルール" -#: assets/models/asset/web.py:16 assets/serializers/platform.py:31 +#: assets/models/asset/web.py:16 assets/serializers/platform.py:36 msgid "Submit selector" msgstr "" #: assets/models/automations/base.py:17 assets/models/cmd_filter.py:38 -#: assets/serializers/asset/common.py:68 perms/models/asset_permission.py:70 -#: rbac/tree.py:37 +#: assets/serializers/asset/common.py:69 perms/models/asset_permission.py:65 +#: perms/serializers/permission.py:32 rbac/tree.py:37 msgid "Accounts" msgstr "アカウント" -#: assets/models/automations/base.py:22 assets/serializers/domain.py:29 -#: ops/models/base.py:17 +#: assets/models/automations/base.py:19 +#: assets/serializers/automations/base.py:20 assets/serializers/domain.py:29 +#: ops/models/base.py:17 ops/models/job.py:41 #: terminal/templates/terminal/_msg_command_execute_alert.html:16 #: xpack/plugins/change_auth_plan/models/asset.py:40 msgid "Assets" msgstr "資産" -#: assets/models/automations/base.py:86 assets/models/automations/base.py:93 +#: assets/models/automations/base.py:82 assets/models/automations/base.py:89 #, fuzzy #| msgid "Automatic managed" msgid "Automation task" msgstr "自動管理" -#: assets/models/automations/base.py:97 assets/models/backup.py:77 -#: audits/models.py:44 ops/models/base.py:54 -#: perms/models/asset_permission.py:76 terminal/models/applet/host.py:102 +#: assets/models/automations/base.py:91 audits/models.py:115 +#: audits/serializers.py:41 ops/models/base.py:49 ops/models/job.py:57 +#: terminal/models/applet/applet.py:60 terminal/models/applet/host.py:104 +#: terminal/models/component/status.py:27 terminal/serializers/applet.py:22 +#: tickets/models/ticket/general.py:281 xpack/plugins/cloud/models.py:171 +#: xpack/plugins/cloud/models.py:223 +msgid "Status" +msgstr "ステータス" + +#: assets/models/automations/base.py:93 assets/models/backup.py:76 +#: audits/models.py:40 ops/models/base.py:55 ops/models/job.py:63 +#: perms/models/asset_permission.py:69 terminal/models/applet/host.py:105 #: terminal/models/session/session.py:43 #: tickets/models/ticket/apply_application.py:28 -#: tickets/models/ticket/apply_asset.py:21 +#: tickets/models/ticket/apply_asset.py:18 #: xpack/plugins/change_auth_plan/models/base.py:108 #: xpack/plugins/change_auth_plan/models/base.py:199 #: xpack/plugins/gathered_user/models.py:71 msgid "Date start" msgstr "開始日" -#: assets/models/automations/base.py:98 -#: assets/models/automations/change_secret.py:58 ops/models/base.py:55 -#: terminal/models/applet/host.py:103 +#: assets/models/automations/base.py:94 +#: assets/models/automations/change_secret.py:59 ops/models/base.py:56 +#: ops/models/job.py:64 terminal/models/applet/host.py:106 msgid "Date finished" msgstr "終了日" -#: assets/models/automations/base.py:100 +#: assets/models/automations/base.py:96 +#: assets/serializers/automations/base.py:39 #, fuzzy #| msgid "Relation snapshot" msgid "Automation snapshot" msgstr "製造オーダスナップショット" -#: assets/models/automations/base.py:104 assets/models/backup.py:88 -#: assets/serializers/account/backup.py:36 +#: assets/models/automations/base.py:100 assets/models/backup.py:87 +#: assets/serializers/account/backup.py:37 +#: assets/serializers/automations/base.py:41 #: xpack/plugins/change_auth_plan/models/base.py:121 #: xpack/plugins/change_auth_plan/serializers/base.py:78 msgid "Trigger mode" msgstr "トリガーモード" -#: assets/models/automations/base.py:108 +#: assets/models/automations/base.py:104 +#: assets/serializers/automations/change_secret.py:90 #, fuzzy #| msgid "Command execution" msgid "Automation task execution" msgstr "コマンド実行" -#: assets/models/automations/change_secret.py:15 assets/models/base.py:60 +#: assets/models/automations/change_secret.py:15 assets/models/base.py:53 +#: assets/serializers/account/account.py:95 assets/serializers/base.py:13 #, fuzzy #| msgid "Secret key" msgid "Secret type" msgstr "秘密キー" #: assets/models/automations/change_secret.py:19 +#: assets/serializers/automations/change_secret.py:25 #, fuzzy #| msgid "SSH Key strategy" msgid "Secret strategy" msgstr "SSHキー戦略" #: assets/models/automations/change_secret.py:21 -#: assets/models/automations/change_secret.py:56 assets/models/base.py:62 -#: assets/serializers/account/base.py:17 -#: authentication/models/connection_token.py:34 +#: assets/models/automations/change_secret.py:57 assets/models/base.py:55 +#: assets/serializers/base.py:16 authentication/models/connection_token.py:34 #: authentication/models/temp_token.py:10 #: authentication/templates/authentication/_access_key_modal.html:31 -#: settings/serializers/auth/radius.py:17 +#: perms/models/perm_token.py:15 settings/serializers/auth/radius.py:17 msgid "Secret" msgstr "ひみつ" @@ -800,8 +848,9 @@ msgstr "パスワードルール" msgid "SSH key change strategy" msgstr "SSHキー戦略" -#: assets/models/automations/change_secret.py:27 assets/models/backup.py:28 -#: assets/serializers/account/backup.py:28 +#: assets/models/automations/change_secret.py:27 assets/models/backup.py:27 +#: assets/serializers/account/backup.py:30 +#: assets/serializers/automations/change_secret.py:40 #: xpack/plugins/change_auth_plan/models/app.py:40 #: xpack/plugins/change_auth_plan/models/asset.py:63 #: xpack/plugins/change_auth_plan/serializers/base.py:45 @@ -814,25 +863,25 @@ msgstr "受信者" msgid "Change secret automation" msgstr "秘密を改める" -#: assets/models/automations/change_secret.py:55 +#: assets/models/automations/change_secret.py:56 #, fuzzy #| msgid "Secret" msgid "Old secret" msgstr "ひみつ" -#: assets/models/automations/change_secret.py:57 +#: assets/models/automations/change_secret.py:58 #, fuzzy #| msgid "Date start" msgid "Date started" msgstr "開始日" -#: assets/models/automations/change_secret.py:60 common/const/choices.py:20 +#: assets/models/automations/change_secret.py:61 common/const/choices.py:20 #, fuzzy #| msgid "WeCom Error" msgid "Error" msgstr "企業微信エラー" -#: assets/models/automations/change_secret.py:63 +#: assets/models/automations/change_secret.py:64 #, fuzzy #| msgid "Change auth" msgid "Change secret record" @@ -845,6 +894,7 @@ msgid "Discovery account automation" msgstr "パスワード/キーの確認" #: assets/models/automations/gather_accounts.py:15 +#: assets/tasks/gather_accounts.py:28 #, fuzzy #| msgid "Gather assets users" msgid "Gather asset accounts" @@ -874,24 +924,24 @@ msgstr "サービスアカウントです" msgid "Verify asset account" msgstr "パスワード/キーの確認" -#: assets/models/backup.py:38 assets/models/backup.py:96 +#: assets/models/backup.py:37 assets/models/backup.py:95 msgid "Account backup plan" msgstr "アカウントバックアップ計画" -#: assets/models/backup.py:80 +#: assets/models/backup.py:79 #: authentication/templates/authentication/_msg_oauth_bind.html:11 -#: notifications/notifications.py:187 +#: notifications/notifications.py:186 #: xpack/plugins/change_auth_plan/models/base.py:111 #: xpack/plugins/change_auth_plan/models/base.py:200 #: xpack/plugins/gathered_user/models.py:74 msgid "Time" msgstr "時間" -#: assets/models/backup.py:84 +#: assets/models/backup.py:83 msgid "Account backup snapshot" msgstr "アカウントのバックアップスナップショット" -#: assets/models/backup.py:91 audits/models.py:127 +#: assets/models/backup.py:90 audits/models.py:110 #: terminal/models/session/sharing.py:108 #: xpack/plugins/change_auth_plan/models/base.py:197 #: xpack/plugins/change_auth_plan/serializers/asset.py:171 @@ -899,29 +949,32 @@ msgstr "アカウントのバックアップスナップショット" msgid "Reason" msgstr "理由" -#: assets/models/backup.py:93 terminal/serializers/session.py:36 +#: assets/models/backup.py:92 +#: assets/serializers/automations/change_secret.py:86 +#: assets/serializers/automations/change_secret.py:111 +#: terminal/serializers/session.py:36 #: xpack/plugins/change_auth_plan/models/base.py:198 #: xpack/plugins/change_auth_plan/serializers/asset.py:173 msgid "Is success" msgstr "成功は" -#: assets/models/backup.py:100 +#: assets/models/backup.py:99 msgid "Account backup execution" msgstr "アカウントバックアップの実行" -#: assets/models/base.py:29 assets/serializers/domain.py:42 +#: assets/models/base.py:28 assets/serializers/domain.py:42 msgid "Connectivity" msgstr "接続性" -#: assets/models/base.py:31 authentication/models/temp_token.py:12 +#: assets/models/base.py:30 authentication/models/temp_token.py:12 msgid "Date verified" msgstr "確認済みの日付" -#: assets/models/base.py:63 +#: assets/models/base.py:56 msgid "Privileged" msgstr "" -#: assets/models/cmd_filter.py:32 perms/models/asset_permission.py:61 +#: assets/models/cmd_filter.py:32 perms/models/asset_permission.py:56 #: users/models/group.py:31 users/models/user.py:671 msgid "User group" msgstr "ユーザーグループ" @@ -992,7 +1045,7 @@ msgstr "テストゲートウェイ" msgid "Unable to connect to port {port} on {address}" msgstr "{ip} でポート {port} に接続できません" -#: assets/models/domain.py:145 authentication/middleware.py:75 +#: assets/models/domain.py:145 authentication/middleware.py:76 #: xpack/plugins/cloud/providers/fc.py:48 msgid "Authentication failed" msgstr "認証に失敗しました" @@ -1021,7 +1074,7 @@ msgstr "収集ユーザー" msgid "Asset group" msgstr "資産グループ" -#: assets/models/group.py:34 assets/models/platform.py:20 +#: assets/models/group.py:34 assets/models/platform.py:19 #: xpack/plugins/cloud/providers/nutanix.py:30 msgid "Default" msgstr "デフォルト" @@ -1054,7 +1107,7 @@ msgstr "新しいノード" msgid "empty" msgstr "空" -#: assets/models/node.py:552 perms/models/asset_permission.py:190 +#: assets/models/node.py:552 perms/models/perm_node.py:21 msgid "Key" msgstr "キー" @@ -1062,7 +1115,7 @@ msgstr "キー" msgid "Full value" msgstr "フルバリュー" -#: assets/models/node.py:557 perms/models/asset_permission.py:191 +#: assets/models/node.py:557 perms/models/perm_node.py:22 msgid "Parent key" msgstr "親キー" @@ -1075,60 +1128,60 @@ msgstr "ノード" msgid "Can match node" msgstr "ノードを一致させることができます" -#: assets/models/platform.py:21 +#: assets/models/platform.py:20 #, fuzzy #| msgid "MFA required" msgid "Required" msgstr "MFAが必要" -#: assets/models/platform.py:24 users/templates/users/reset_password.html:29 +#: assets/models/platform.py:23 users/templates/users/reset_password.html:29 msgid "Setting" msgstr "設定" -#: assets/models/platform.py:43 audits/models.py:112 settings/models.py:37 -#: terminal/serializers/applet_host.py:25 +#: assets/models/platform.py:42 audits/const.py:68 settings/models.py:37 +#: terminal/serializers/applet_host.py:27 msgid "Enabled" msgstr "有効化" -#: assets/models/platform.py:44 +#: assets/models/platform.py:43 msgid "Ansible config" msgstr "" -#: assets/models/platform.py:45 +#: assets/models/platform.py:44 #, fuzzy #| msgid "MFA enabled" msgid "Ping enabled" msgstr "MFA有効化" -#: assets/models/platform.py:46 +#: assets/models/platform.py:45 msgid "Ping method" msgstr "" -#: assets/models/platform.py:47 assets/models/platform.py:55 +#: assets/models/platform.py:46 assets/models/platform.py:56 #, fuzzy #| msgid "Gather assets users" msgid "Gather facts enabled" msgstr "資産ユーザーの収集" -#: assets/models/platform.py:48 assets/models/platform.py:56 +#: assets/models/platform.py:47 assets/models/platform.py:58 #, fuzzy #| msgid "Gather assets users" msgid "Gather facts method" msgstr "資産ユーザーの収集" -#: assets/models/platform.py:49 +#: assets/models/platform.py:48 #, fuzzy #| msgid "Create account successfully" msgid "Push account enabled" msgstr "アカウントを正常に作成" -#: assets/models/platform.py:50 +#: assets/models/platform.py:49 #, fuzzy #| msgid "Create account successfully" msgid "Push account method" msgstr "アカウントを正常に作成" -#: assets/models/platform.py:51 +#: assets/models/platform.py:50 #, fuzzy #| msgid "Change Password" msgid "Change password enabled" @@ -1146,47 +1199,47 @@ msgstr "パスワードの変更" msgid "Verify account enabled" msgstr "サービスアカウントキー" -#: assets/models/platform.py:54 +#: assets/models/platform.py:55 #, fuzzy #| msgid "Verify auth" msgid "Verify account method" msgstr "パスワード/キーの確認" -#: assets/models/platform.py:71 tickets/models/ticket/general.py:298 +#: assets/models/platform.py:75 tickets/models/ticket/general.py:298 msgid "Meta" msgstr "メタ" -#: assets/models/platform.py:72 +#: assets/models/platform.py:76 msgid "Internal" msgstr "内部" -#: assets/models/platform.py:75 +#: assets/models/platform.py:80 assets/serializers/platform.py:96 msgid "Charset" msgstr "シャーセット" -#: assets/models/platform.py:76 +#: assets/models/platform.py:82 #, fuzzy #| msgid "Domain name" msgid "Domain enabled" msgstr "ドメイン名" -#: assets/models/platform.py:77 +#: assets/models/platform.py:83 #, fuzzy #| msgid "Protocols" msgid "Protocols enabled" msgstr "プロトコル" -#: assets/models/platform.py:79 +#: assets/models/platform.py:85 #, fuzzy #| msgid "MFA enabled" msgid "Su enabled" msgstr "MFA有効化" -#: assets/models/platform.py:80 +#: assets/models/platform.py:86 msgid "SU method" msgstr "" -#: assets/models/platform.py:82 assets/serializers/platform.py:78 +#: assets/models/platform.py:88 assets/serializers/platform.py:103 #, fuzzy #| msgid "Automatic managed" msgid "Automation" @@ -1209,7 +1262,7 @@ msgstr "" "{} -アカウントバックアップの通過タスクが完了しました。詳細は添付ファイルをご" "覧ください" -#: assets/notifications.py:19 +#: assets/notifications.py:20 msgid "" "{} - The account backup passage task has been completed: the encryption " "password has not been set - please go to personal information -> file " @@ -1219,46 +1272,55 @@ msgstr "" "されていません-個人情報にアクセスしてください-> ファイル暗号化パスワードを設" "定してください暗号化パスワード" -#: assets/serializers/account/account.py:16 +#: assets/notifications.py:31 xpack/plugins/change_auth_plan/notifications.py:8 +msgid "Notification of implementation result of encryption change plan" +msgstr "暗号化変更プランの実装結果の通知" + +#: assets/notifications.py:41 +#: xpack/plugins/change_auth_plan/notifications.py:18 +msgid "" +"{} - The encryption change task has been completed. See the attachment for " +"details" +msgstr "{} -暗号化変更タスクが完了しました。詳細は添付ファイルをご覧ください" + +#: assets/notifications.py:42 +#: xpack/plugins/change_auth_plan/notifications.py:19 +msgid "" +"{} - The encryption change task has been completed: the encryption password " +"has not been set - please go to personal information -> file encryption " +"password to set the encryption password" +msgstr "" +"{} -暗号化変更タスクが完了しました: 暗号化パスワードが設定されていません-個人" +"情報にアクセスしてください-> ファイル暗号化パスワードを設定してください" + +#: assets/serializers/account/account.py:18 msgid "Push now" msgstr "" -#: assets/serializers/account/account.py:18 +#: assets/serializers/account/account.py:20 #, fuzzy #| msgid "Secret" msgid "Has secret" msgstr "ひみつ" -#: assets/serializers/account/account.py:25 +#: assets/serializers/account/account.py:27 msgid "Account template not found" msgstr "" -#: assets/serializers/account/backup.py:27 ops/mixin.py:102 +#: assets/serializers/account/backup.py:29 +#: assets/serializers/automations/base.py:34 ops/mixin.py:102 #: settings/serializers/auth/ldap.py:65 #: xpack/plugins/change_auth_plan/serializers/base.py:43 msgid "Periodic perform" msgstr "定期的なパフォーマンス" -#: assets/serializers/account/backup.py:29 +#: assets/serializers/account/backup.py:31 +#: assets/serializers/automations/change_secret.py:41 #: xpack/plugins/change_auth_plan/serializers/base.py:46 msgid "Currently only mail sending is supported" msgstr "現在、メール送信のみがサポートされています" -#: assets/serializers/account/base.py:39 assets/serializers/base.py:34 -msgid "private key invalid or passphrase error" -msgstr "秘密鍵が無効またはpassphraseエラー" - -#: assets/serializers/account/template.py:16 common/drf/fields.py:69 -#: tickets/serializers/ticket/common.py:58 -#: xpack/plugins/change_auth_plan/serializers/asset.py:64 -#: xpack/plugins/change_auth_plan/serializers/asset.py:67 -#: xpack/plugins/change_auth_plan/serializers/asset.py:70 -#: xpack/plugins/change_auth_plan/serializers/asset.py:101 -#: xpack/plugins/cloud/serializers/account_attrs.py:56 -msgid "This field is required." -msgstr "このフィールドは必須です。" - -#: assets/serializers/asset/common.py:69 assets/serializers/platform.py:77 +#: assets/serializers/asset/common.py:68 assets/serializers/platform.py:101 #: xpack/plugins/cloud/models.py:109 msgid "Protocols" msgstr "プロトコル" @@ -1345,7 +1407,37 @@ msgstr "資産番号" msgid "IP/Host" msgstr "ホスト" -#: assets/serializers/base.py:24 +#: assets/serializers/automations/change_secret.py:28 +#: xpack/plugins/change_auth_plan/models/asset.py:50 +#: xpack/plugins/change_auth_plan/serializers/asset.py:33 +msgid "SSH Key strategy" +msgstr "SSHキー戦略" + +#: assets/serializers/automations/change_secret.py:57 +#: xpack/plugins/change_auth_plan/serializers/base.py:58 +msgid "* Please enter the correct password length" +msgstr "* 正しいパスワードの長さを入力してください" + +#: assets/serializers/automations/change_secret.py:60 +#: xpack/plugins/change_auth_plan/serializers/base.py:61 +msgid "* Password length range 6-30 bits" +msgstr "* パスワードの長さの範囲6-30ビット" + +#: assets/serializers/automations/change_secret.py:104 +#: assets/serializers/automations/change_secret.py:132 audits/const.py:73 +#: audits/models.py:39 common/const/choices.py:18 +#: terminal/models/session/sharing.py:104 tickets/views/approve.py:114 +#: xpack/plugins/change_auth_plan/serializers/asset.py:189 +msgid "Success" +msgstr "成功" + +#: assets/serializers/automations/gather_accounts.py:23 +#, fuzzy +#| msgid "Executed times" +msgid "Executed amount" +msgstr "実行時間" + +#: assets/serializers/base.py:21 msgid "Key password" msgstr "キーパスワード" @@ -1360,7 +1452,6 @@ msgid "Types" msgstr "タイプ" #: assets/serializers/domain.py:14 assets/serializers/label.py:12 -#: perms/serializers/permission.py:83 msgid "Assets amount" msgstr "資産額" @@ -1368,15 +1459,10 @@ msgstr "資産額" msgid "Gateways count" msgstr "ゲートウェイ数" -#: assets/serializers/label.py:13 assets/serializers/mixin.py:7 +#: assets/serializers/label.py:13 msgid "Category display" msgstr "カテゴリ表示" -#: assets/serializers/mixin.py:10 audits/serializers.py:27 -#: tickets/serializers/flow.py:49 tickets/serializers/ticket/ticket.py:17 -msgid "Type display" -msgstr "タイプ表示" - #: assets/serializers/node.py:17 msgid "value" msgstr "値" @@ -1407,54 +1493,104 @@ msgstr "SFTPルート" msgid "Auto fill" msgstr "自動" -#: assets/serializers/platform.py:64 +#: assets/serializers/platform.py:78 msgid "Primary" msgstr "" -#: assets/serializers/utils.py:11 +#: assets/serializers/utils.py:15 msgid "Password can not contains `{{` " msgstr "パスワードには '{{' を含まない" -#: assets/serializers/utils.py:14 +#: assets/serializers/utils.py:18 msgid "Password can not contains `'` " msgstr "パスワードには `'` を含まない" -#: assets/serializers/utils.py:16 +#: assets/serializers/utils.py:20 msgid "Password can not contains `\"` " msgstr "パスワードには `\"` を含まない" -#: assets/tasks/gather_facts.py:25 +#: assets/serializers/utils.py:26 +msgid "private key invalid or passphrase error" +msgstr "秘密鍵が無効またはpassphraseエラー" + +#: assets/tasks/automation.py:11 +#, fuzzy +#| msgid "Verify auth" +msgid "Execute automation" +msgstr "パスワード/キーの確認" + +#: assets/tasks/backup.py:13 +#, fuzzy +#| msgid "Account backup plan" +msgid "Execute account backup plan" +msgstr "アカウントバックアップ計画" + +#: assets/tasks/gather_accounts.py:31 +#, fuzzy +#| msgid "Gather assets users" +msgid "Gather assets accounts" +msgstr "資産ユーザーの収集" + +#: assets/tasks/gather_facts.py:26 msgid "Update some assets hardware info. " msgstr "一部の資産ハードウェア情報を更新します。" -#: assets/tasks/gather_facts.py:48 +#: assets/tasks/gather_facts.py:44 +#, fuzzy +#| msgid "Update node asset hardware information: " +msgid "Manually update the hardware information of assets" +msgstr "ノード資産のハードウェア情報を更新します。" + +#: assets/tasks/gather_facts.py:49 msgid "Update assets hardware info: " msgstr "資産のハードウェア情報を更新する:" -#: assets/tasks/gather_facts.py:58 +#: assets/tasks/gather_facts.py:53 +msgid "Manually update the hardware information of assets under a node" +msgstr "" + +#: assets/tasks/gather_facts.py:59 msgid "Update node asset hardware information: " msgstr "ノード資産のハードウェア情報を更新します。" -#: assets/tasks/nodes_amount.py:29 +#: assets/tasks/nodes_amount.py:16 +msgid "Check the amount of assets under the node" +msgstr "" + +#: assets/tasks/nodes_amount.py:28 msgid "" "The task of self-checking is already running and cannot be started repeatedly" msgstr "" "セルフチェックのタスクはすでに実行されており、繰り返し開始することはできませ" "ん" -#: assets/tasks/ping.py:20 assets/tasks/ping.py:38 +#: assets/tasks/nodes_amount.py:34 +msgid "Periodic check the amount of assets under the node" +msgstr "" + +#: assets/tasks/ping.py:21 assets/tasks/ping.py:39 #, fuzzy #| msgid "Test assets connectivity. " msgid "Test assets connectivity " msgstr "資産の接続性をテストします。" -#: assets/tasks/ping.py:48 +#: assets/tasks/ping.py:33 +#, fuzzy +#| msgid "Can test asset connectivity" +msgid "Manually test the connectivity of a asset" +msgstr "資産接続をテストできます" + +#: assets/tasks/ping.py:43 +msgid "Manually test the connectivity of assets under a node" +msgstr "" + +#: assets/tasks/ping.py:49 #, fuzzy #| msgid "Test if the assets under the node are connectable: " msgid "Test if the assets under the node are connectable " msgstr "ノードの下のアセットが接続可能かどうかをテストします。" -#: assets/tasks/push_account.py:36 +#: assets/tasks/push_account.py:17 assets/tasks/push_account.py:31 #, fuzzy #| msgid "Create account successfully" msgid "Push accounts to assets" @@ -1476,7 +1612,13 @@ msgstr "セキュリティのために、ユーザー {} をプッシュしな msgid "No assets matched, stop task" msgstr "一致する資産がない、タスクを停止" -#: assets/tasks/verify_account.py:36 +#: assets/tasks/verify_account.py:30 +#, fuzzy +#| msgid "Verify auth" +msgid "Verify asset account availability" +msgstr "パスワード/キーの確認" + +#: assets/tasks/verify_account.py:37 #, fuzzy #| msgid "Test account connectivity: " msgid "Verify accounts connectivity" @@ -1486,278 +1628,257 @@ msgstr "テストアカウント接続:" msgid "Audits" msgstr "監査" -#: audits/models.py:27 audits/models.py:59 +#: audits/const.py:44 +msgid "Mkdir" +msgstr "Mkdir" + +#: audits/const.py:45 +msgid "Rmdir" +msgstr "Rmdir" + +#: audits/const.py:46 audits/const.py:56 #: authentication/templates/authentication/_access_key_modal.html:65 #: rbac/tree.py:226 msgid "Delete" msgstr "削除" -#: audits/models.py:28 +#: audits/const.py:47 perms/const.py:14 msgid "Upload" msgstr "アップロード" -#: audits/models.py:29 -msgid "Download" -msgstr "ダウンロード" - -#: audits/models.py:30 -msgid "Rmdir" -msgstr "Rmdir" - -#: audits/models.py:31 +#: audits/const.py:48 msgid "Rename" msgstr "名前の変更" -#: audits/models.py:32 -msgid "Mkdir" -msgstr "Mkdir" - -#: audits/models.py:33 +#: audits/const.py:49 msgid "Symlink" msgstr "Symlink" -#: audits/models.py:38 audits/models.py:66 audits/models.py:89 -#: terminal/models/session/session.py:37 terminal/models/session/sharing.py:96 -msgid "Remote addr" -msgstr "リモートaddr" +#: audits/const.py:50 perms/const.py:15 +msgid "Download" +msgstr "ダウンロード" -#: audits/models.py:41 -msgid "Operate" -msgstr "操作" +#: audits/const.py:54 rbac/tree.py:224 +msgid "View" +msgstr "表示" -#: audits/models.py:42 -msgid "Filename" -msgstr "ファイル名" +#: audits/const.py:55 rbac/tree.py:225 templates/_csv_import_export.html:18 +#: templates/_csv_update_modal.html:6 +msgid "Update" +msgstr "更新" -#: audits/models.py:43 audits/models.py:117 common/const/choices.py:18 -#: terminal/models/session/sharing.py:104 tickets/views/approve.py:114 -#: xpack/plugins/change_auth_plan/serializers/asset.py:189 -msgid "Success" -msgstr "成功" - -#: audits/models.py:47 -msgid "File transfer log" -msgstr "ファイル転送ログ" - -#: audits/models.py:56 +#: audits/const.py:57 #: authentication/templates/authentication/_access_key_modal.html:22 #: rbac/tree.py:223 msgid "Create" msgstr "作成" -#: audits/models.py:57 rbac/tree.py:224 -msgid "View" -msgstr "表示" +#: audits/const.py:62 terminal/models/applet/host.py:24 +#: terminal/models/component/terminal.py:159 +msgid "Terminal" +msgstr "ターミナル" -#: audits/models.py:58 rbac/tree.py:225 templates/_csv_import_export.html:18 -#: templates/_csv_update_modal.html:6 -msgid "Update" -msgstr "更新" +#: audits/const.py:69 +msgid "-" +msgstr "-" -#: audits/models.py:64 audits/serializers.py:61 +#: audits/models.py:31 audits/models.py:55 audits/models.py:82 +#: terminal/models/session/session.py:37 terminal/models/session/sharing.py:96 +msgid "Remote addr" +msgstr "リモートaddr" + +#: audits/models.py:36 audits/serializers.py:19 +msgid "Operate" +msgstr "操作" + +#: audits/models.py:38 +msgid "Filename" +msgstr "ファイル名" + +#: audits/models.py:43 +msgid "File transfer log" +msgstr "ファイル転送ログ" + +#: audits/models.py:52 audits/serializers.py:85 msgid "Resource Type" msgstr "リソースタイプ" -#: audits/models.py:65 +#: audits/models.py:53 msgid "Resource" msgstr "リソース" -#: audits/models.py:67 audits/models.py:90 +#: audits/models.py:58 audits/models.py:84 #: terminal/backends/command/serializers.py:40 msgid "Datetime" msgstr "時間" -#: audits/models.py:82 +#: audits/models.py:74 msgid "Operate log" msgstr "ログの操作" -#: audits/models.py:88 +#: audits/models.py:80 msgid "Change by" msgstr "による変更" -#: audits/models.py:96 +#: audits/models.py:90 msgid "Password change log" msgstr "パスワード変更ログ" -#: audits/models.py:113 -msgid "-" -msgstr "-" - -#: audits/models.py:122 +#: audits/models.py:97 msgid "Login type" msgstr "ログインタイプ" -#: audits/models.py:123 tickets/models/ticket/login_confirm.py:10 +#: audits/models.py:99 tickets/models/ticket/login_confirm.py:10 msgid "Login ip" msgstr "ログインIP" -#: audits/models.py:124 +#: audits/models.py:101 #: authentication/templates/authentication/_msg_different_city.html:11 #: tickets/models/ticket/login_confirm.py:11 msgid "Login city" msgstr "ログイン都市" -#: audits/models.py:125 audits/serializers.py:42 +#: audits/models.py:104 audits/serializers.py:62 msgid "User agent" msgstr "ユーザーエージェント" -#: audits/models.py:126 +#: audits/models.py:107 audits/serializers.py:39 #: authentication/templates/authentication/_mfa_confirm_modal.html:14 #: users/forms/profile.py:65 users/models/user.py:688 #: users/serializers/profile.py:126 msgid "MFA" msgstr "MFA" -#: audits/models.py:128 ops/models/base.py:48 -#: terminal/models/applet/applet.py:60 terminal/models/applet/host.py:101 -#: terminal/models/component/status.py:33 terminal/serializers/applet.py:22 -#: tickets/models/ticket/general.py:281 xpack/plugins/cloud/models.py:171 -#: xpack/plugins/cloud/models.py:223 -msgid "Status" -msgstr "ステータス" - -#: audits/models.py:129 +#: audits/models.py:117 msgid "Date login" msgstr "日付ログイン" -#: audits/models.py:130 audits/serializers.py:44 +#: audits/models.py:119 audits/serializers.py:64 msgid "Authentication backend" msgstr "認証バックエンド" -#: audits/models.py:169 +#: audits/models.py:160 msgid "User login log" msgstr "ユーザーログインログ" -#: audits/serializers.py:12 -msgid "Operate display" -msgstr "ディスプレイを操作する" - -#: audits/serializers.py:28 tickets/serializers/ticket/ticket.py:18 -msgid "Status display" -msgstr "ステータス表示" - -#: audits/serializers.py:29 -msgid "MFA display" -msgstr "MFAディスプレイ" - -#: audits/serializers.py:43 +#: audits/serializers.py:63 msgid "Reason display" msgstr "理由表示" -#: audits/signal_handlers.py:49 +#: audits/signal_handlers.py:45 msgid "SSH Key" msgstr "SSHキー" -#: audits/signal_handlers.py:51 +#: audits/signal_handlers.py:47 msgid "SSO" msgstr "SSO" -#: audits/signal_handlers.py:52 +#: audits/signal_handlers.py:48 msgid "Auth Token" msgstr "認証トークン" -#: audits/signal_handlers.py:53 authentication/notifications.py:73 +#: audits/signal_handlers.py:49 authentication/notifications.py:73 #: authentication/views/login.py:73 authentication/views/wecom.py:178 #: notifications/backends/__init__.py:11 users/models/user.py:724 msgid "WeCom" msgstr "企業微信" -#: audits/signal_handlers.py:54 authentication/views/feishu.py:144 +#: audits/signal_handlers.py:50 authentication/views/feishu.py:145 #: authentication/views/login.py:85 notifications/backends/__init__.py:14 #: users/models/user.py:726 msgid "FeiShu" msgstr "本を飛ばす" -#: audits/signal_handlers.py:55 authentication/views/dingtalk.py:179 +#: audits/signal_handlers.py:51 authentication/views/dingtalk.py:180 #: authentication/views/login.py:79 notifications/backends/__init__.py:12 #: users/models/user.py:725 msgid "DingTalk" msgstr "DingTalk" -#: audits/signal_handlers.py:56 authentication/models/temp_token.py:16 +#: audits/signal_handlers.py:52 authentication/models/temp_token.py:16 msgid "Temporary token" msgstr "仮パスワード" -#: audits/signal_handlers.py:68 +#: audits/signal_handlers.py:64 msgid "User and Group" msgstr "ユーザーとグループ" -#: audits/signal_handlers.py:69 +#: audits/signal_handlers.py:65 #, python-brace-format msgid "{User} JOINED {UserGroup}" msgstr "{User} に参加 {UserGroup}" -#: audits/signal_handlers.py:70 +#: audits/signal_handlers.py:66 #, python-brace-format msgid "{User} LEFT {UserGroup}" msgstr "{User} のそばを通る {UserGroup}" -#: audits/signal_handlers.py:73 +#: audits/signal_handlers.py:69 msgid "Node and Asset" msgstr "ノードと資産" -#: audits/signal_handlers.py:74 +#: audits/signal_handlers.py:70 #, python-brace-format msgid "{Node} ADD {Asset}" msgstr "{Node} 追加 {Asset}" -#: audits/signal_handlers.py:75 +#: audits/signal_handlers.py:71 #, python-brace-format msgid "{Node} REMOVE {Asset}" msgstr "{Node} 削除 {Asset}" -#: audits/signal_handlers.py:78 +#: audits/signal_handlers.py:74 msgid "User asset permissions" msgstr "ユーザー資産の権限" -#: audits/signal_handlers.py:79 +#: audits/signal_handlers.py:75 #, python-brace-format msgid "{AssetPermission} ADD {User}" msgstr "{AssetPermission} 追加 {User}" -#: audits/signal_handlers.py:80 +#: audits/signal_handlers.py:76 #, python-brace-format msgid "{AssetPermission} REMOVE {User}" msgstr "{AssetPermission} 削除 {User}" -#: audits/signal_handlers.py:83 +#: audits/signal_handlers.py:79 msgid "User group asset permissions" msgstr "ユーザーグループの資産権限" -#: audits/signal_handlers.py:84 +#: audits/signal_handlers.py:80 #, python-brace-format msgid "{AssetPermission} ADD {UserGroup}" msgstr "{AssetPermission} 追加 {UserGroup}" -#: audits/signal_handlers.py:85 +#: audits/signal_handlers.py:81 #, python-brace-format msgid "{AssetPermission} REMOVE {UserGroup}" msgstr "{AssetPermission} 削除 {UserGroup}" -#: audits/signal_handlers.py:88 perms/models/asset_permission.py:90 +#: audits/signal_handlers.py:84 perms/models/asset_permission.py:83 msgid "Asset permission" msgstr "資産権限" -#: audits/signal_handlers.py:89 +#: audits/signal_handlers.py:85 #, python-brace-format msgid "{AssetPermission} ADD {Asset}" msgstr "{AssetPermission} 追加 {Asset}" -#: audits/signal_handlers.py:90 +#: audits/signal_handlers.py:86 #, python-brace-format msgid "{AssetPermission} REMOVE {Asset}" msgstr "{AssetPermission} 削除 {Asset}" -#: audits/signal_handlers.py:93 +#: audits/signal_handlers.py:89 msgid "Node permission" msgstr "ノード権限" -#: audits/signal_handlers.py:94 +#: audits/signal_handlers.py:90 #, python-brace-format msgid "{AssetPermission} ADD {Node}" msgstr "{AssetPermission} 追加 {Node}" -#: audits/signal_handlers.py:95 +#: audits/signal_handlers.py:91 #, python-brace-format msgid "{AssetPermission} REMOVE {Node}" msgstr "{AssetPermission} 削除 {Node}" @@ -1980,12 +2101,12 @@ msgstr "企業の微信はすでにバインドされています" msgid "WeCom is not bound" msgstr "企業の微信をバインドしていません" -#: authentication/errors/mfa.py:28 authentication/views/dingtalk.py:242 -#: authentication/views/dingtalk.py:296 +#: authentication/errors/mfa.py:28 authentication/views/dingtalk.py:243 +#: authentication/views/dingtalk.py:297 msgid "DingTalk is not bound" msgstr "DingTalkはバインドされていません" -#: authentication/errors/mfa.py:33 authentication/views/feishu.py:203 +#: authentication/errors/mfa.py:33 authentication/views/feishu.py:204 msgid "FeiShu is not bound" msgstr "本を飛ばすは拘束されていません" @@ -2078,7 +2199,7 @@ msgstr "電話番号を設定して有効にする" msgid "Clear phone number to disable" msgstr "無効にする電話番号をクリアする" -#: authentication/middleware.py:76 settings/utils/ldap.py:652 +#: authentication/middleware.py:77 settings/utils/ldap.py:652 msgid "Authentication failed (before login check failed): {}" msgstr "認証に失敗しました (ログインチェックが失敗する前): {}" @@ -2100,9 +2221,9 @@ msgid "Asset display" msgstr "アセット名" #: authentication/models/connection_token.py:36 -#: authentication/models/temp_token.py:13 perms/models/asset_permission.py:79 +#: authentication/models/temp_token.py:13 perms/models/asset_permission.py:72 #: tickets/models/ticket/apply_application.py:29 -#: tickets/models/ticket/apply_asset.py:22 users/models/user.py:707 +#: tickets/models/ticket/apply_asset.py:19 users/models/user.py:707 msgid "Date expired" msgstr "期限切れの日付" @@ -2168,17 +2289,17 @@ msgstr "異なる都市ログインのリマインダー" msgid "binding reminder" msgstr "バインディングリマインダー" -#: authentication/serializers/connection_token.py:20 +#: authentication/serializers/connection_token.py:19 #: xpack/plugins/cloud/models.py:36 msgid "Validity" msgstr "有効性" -#: authentication/serializers/connection_token.py:21 +#: authentication/serializers/connection_token.py:20 msgid "Expired time" msgstr "期限切れ時間" -#: authentication/serializers/token.py:79 perms/serializers/permission.py:60 -#: perms/serializers/permission.py:87 users/serializers/user.py:148 +#: authentication/serializers/token.py:79 perms/serializers/permission.py:30 +#: perms/serializers/permission.py:61 users/serializers/user.py:203 msgid "Is valid" msgstr "有効です" @@ -2265,7 +2386,7 @@ msgstr "コードエラー" #: authentication/templates/authentication/_msg_reset_password.html:3 #: authentication/templates/authentication/_msg_rest_password_success.html:2 #: authentication/templates/authentication/_msg_rest_public_key_success.html:2 -#: jumpserver/conf.py:390 ops/tasks.py:147 ops/tasks.py:153 ops/tasks.py:156 +#: jumpserver/conf.py:390 #: perms/templates/perms/_msg_item_permissions_expire.html:3 #: perms/templates/perms/_msg_permed_items_expire.html:3 #: tickets/templates/tickets/approve_check_password.html:33 @@ -2418,73 +2539,73 @@ msgstr "コピー成功" msgid "LAN" msgstr "ローカルエリアネットワーク" -#: authentication/views/dingtalk.py:41 +#: authentication/views/dingtalk.py:42 msgid "DingTalk Error, Please contact your system administrator" msgstr "DingTalkエラー、システム管理者に連絡してください" -#: authentication/views/dingtalk.py:44 +#: authentication/views/dingtalk.py:45 msgid "DingTalk Error" msgstr "DingTalkエラー" -#: authentication/views/dingtalk.py:56 authentication/views/feishu.py:51 +#: authentication/views/dingtalk.py:57 authentication/views/feishu.py:52 #: authentication/views/wecom.py:56 msgid "" "The system configuration is incorrect. Please contact your administrator" msgstr "システム設定が正しくありません。管理者に連絡してください" -#: authentication/views/dingtalk.py:80 +#: authentication/views/dingtalk.py:81 msgid "DingTalk is already bound" msgstr "DingTalkはすでにバインドされています" -#: authentication/views/dingtalk.py:148 authentication/views/wecom.py:148 +#: authentication/views/dingtalk.py:149 authentication/views/wecom.py:148 msgid "Invalid user_id" msgstr "無効なuser_id" -#: authentication/views/dingtalk.py:164 +#: authentication/views/dingtalk.py:165 msgid "DingTalk query user failed" msgstr "DingTalkクエリユーザーが失敗しました" -#: authentication/views/dingtalk.py:173 +#: authentication/views/dingtalk.py:174 msgid "The DingTalk is already bound to another user" msgstr "DingTalkはすでに別のユーザーにバインドされています" -#: authentication/views/dingtalk.py:180 +#: authentication/views/dingtalk.py:181 msgid "Binding DingTalk successfully" msgstr "DingTalkのバインドに成功" -#: authentication/views/dingtalk.py:236 authentication/views/dingtalk.py:290 +#: authentication/views/dingtalk.py:237 authentication/views/dingtalk.py:291 msgid "Failed to get user from DingTalk" msgstr "DingTalkからユーザーを取得できませんでした" -#: authentication/views/dingtalk.py:243 authentication/views/dingtalk.py:297 +#: authentication/views/dingtalk.py:244 authentication/views/dingtalk.py:298 msgid "Please login with a password and then bind the DingTalk" msgstr "パスワードでログインし、DingTalkをバインドしてください" -#: authentication/views/feishu.py:39 +#: authentication/views/feishu.py:40 msgid "FeiShu Error" msgstr "FeiShuエラー" -#: authentication/views/feishu.py:87 +#: authentication/views/feishu.py:88 msgid "FeiShu is already bound" msgstr "FeiShuはすでにバインドされています" -#: authentication/views/feishu.py:129 +#: authentication/views/feishu.py:130 msgid "FeiShu query user failed" msgstr "FeiShuクエリユーザーが失敗しました" -#: authentication/views/feishu.py:138 +#: authentication/views/feishu.py:139 msgid "The FeiShu is already bound to another user" msgstr "FeiShuはすでに別のユーザーにバインドされています" -#: authentication/views/feishu.py:145 +#: authentication/views/feishu.py:146 msgid "Binding FeiShu successfully" msgstr "本を飛ばすのバインドに成功" -#: authentication/views/feishu.py:197 +#: authentication/views/feishu.py:198 msgid "Failed to get user from FeiShu" msgstr "本を飛ばすからユーザーを取得できませんでした" -#: authentication/views/feishu.py:204 +#: authentication/views/feishu.py:205 msgid "Please login with a password and then bind the FeiShu" msgstr "パスワードでログインしてから本を飛ばすをバインドしてください" @@ -2588,31 +2709,31 @@ msgstr "キャンセル" msgid "ugettext_lazy" msgstr "ugettext_lazy" -#: common/db/fields.py:80 +#: common/db/fields.py:93 msgid "Marshal dict data to char field" msgstr "チャーフィールドへのマーシャルディクトデータ" -#: common/db/fields.py:84 +#: common/db/fields.py:97 msgid "Marshal dict data to text field" msgstr "テキストフィールドへのマーシャルディクトデータ" -#: common/db/fields.py:96 +#: common/db/fields.py:109 msgid "Marshal list data to char field" msgstr "元帥リストデータをチャーフィールドに" -#: common/db/fields.py:100 +#: common/db/fields.py:113 msgid "Marshal list data to text field" msgstr "マーシャルリストデータをテキストフィールドに" -#: common/db/fields.py:104 +#: common/db/fields.py:117 msgid "Marshal data to char field" msgstr "チャーフィールドへのマーシャルデータ" -#: common/db/fields.py:108 +#: common/db/fields.py:121 msgid "Marshal data to text field" msgstr "テキストフィールドへのマーシャルデータ" -#: common/db/fields.py:150 +#: common/db/fields.py:163 msgid "Encrypt field using Secret Key" msgstr "Secret Keyを使用したフィールドの暗号化" @@ -2624,17 +2745,36 @@ msgstr "によって更新" msgid "Object" msgstr "オブジェクト" -#: common/drf/fields.py:70 +#: common/drf/fields.py:74 tickets/serializers/ticket/common.py:58 +#: xpack/plugins/change_auth_plan/serializers/asset.py:64 +#: xpack/plugins/change_auth_plan/serializers/asset.py:67 +#: xpack/plugins/change_auth_plan/serializers/asset.py:70 +#: xpack/plugins/change_auth_plan/serializers/asset.py:101 +#: xpack/plugins/cloud/serializers/account_attrs.py:56 +msgid "This field is required." +msgstr "このフィールドは必須です。" + +#: common/drf/fields.py:75 #, fuzzy, python-brace-format #| msgid "%s object does not exist." msgid "Invalid pk \"{pk_value}\" - object does not exist." msgstr "%s オブジェクトは存在しません。" -#: common/drf/fields.py:71 +#: common/drf/fields.py:76 #, python-brace-format msgid "Incorrect type. Expected pk value, received {data_type}." msgstr "" +#: common/drf/fields.py:131 +msgid "Invalid data type, should be list" +msgstr "" + +#: common/drf/fields.py:146 +#, fuzzy +#| msgid "Invalid ip" +msgid "Invalid choice: {}" +msgstr "無効なIP" + #: common/drf/parsers/base.py:17 msgid "The file content overflowed (The maximum length `{}` bytes)" msgstr "ファイルの内容がオーバーフローしました (最大長 '{}' バイト)" @@ -2694,15 +2834,15 @@ msgstr "は破棄されます" msgid "discard time" msgstr "時間を捨てる" -#: common/mixins/views.py:52 +#: common/mixins/views.py:58 msgid "Export all" msgstr "すべてエクスポート" -#: common/mixins/views.py:54 +#: common/mixins/views.py:60 msgid "Export only selected items" msgstr "選択項目のみエクスポート" -#: common/mixins/views.py:59 +#: common/mixins/views.py:65 #, python-format msgid "Export filtered: %s" msgstr "検索のエクスポート: %s" @@ -2759,6 +2899,16 @@ msgstr "確認コードが正しくありません" msgid "Please wait {} seconds before sending" msgstr "{} 秒待ってから送信してください" +#: common/tasks.py:13 +#, fuzzy +#| msgid "Send user" +msgid "Send email" +msgstr "ユーザーを送信" + +#: common/tasks.py:40 +msgid "Send email attachment" +msgstr "" + #: common/utils/ip/geoip/utils.py:26 msgid "Invalid ip" msgstr "無効なIP" @@ -2842,6 +2992,10 @@ msgstr "メール" msgid "Site message" msgstr "サイトメッセージ" +#: notifications/notifications.py:46 +msgid "Publish the station message" +msgstr "" + #: ops/ansible/inventory.py:75 #, fuzzy #| msgid "Account unavailable" @@ -2915,103 +3069,108 @@ msgstr "{} から {} までの範囲" msgid "Require periodic or regularly perform setting" msgstr "定期的または定期的に設定を行う必要があります" -#: ops/models/adhoc.py:18 +#: ops/models/adhoc.py:21 ops/models/job.py:30 +#, fuzzy +#| msgid "PowerShell" +msgid "Powershell" +msgstr "PowerShell" + +#: ops/models/adhoc.py:25 msgid "Pattern" msgstr "パターン" -#: ops/models/adhoc.py:19 +#: ops/models/adhoc.py:27 ops/models/job.py:37 msgid "Module" msgstr "" -#: ops/models/adhoc.py:20 ops/models/celery.py:45 +#: ops/models/adhoc.py:28 ops/models/celery.py:48 ops/models/job.py:35 #: terminal/models/component/task.py:17 msgid "Args" msgstr "アルグ" -#: ops/models/adhoc.py:21 ops/models/base.py:20 ops/models/playbook.py:27 -#, fuzzy -#| msgid "Command execution" -msgid "Last execution" -msgstr "コマンド実行" - -#: ops/models/adhoc.py:36 -msgid "Adhoc" -msgstr "" - -#: ops/models/adhoc.py:54 -msgid "AdHoc execution" -msgstr "アドホックエキューション" - -#: ops/models/base.py:16 ops/models/base.py:52 +#: ops/models/adhoc.py:29 ops/models/base.py:16 ops/models/base.py:53 +#: ops/models/job.py:40 ops/models/job.py:61 #: terminal/models/session/sharing.py:24 msgid "Creator" msgstr "作成者" +#: ops/models/adhoc.py:50 ops/models/job.py:20 +msgid "Adhoc" +msgstr "" + +#: ops/models/adhoc.py:68 +msgid "AdHoc execution" +msgstr "アドホックエキューション" + #: ops/models/base.py:19 #, fuzzy #| msgid "Account key" msgid "Account policy" msgstr "アカウントキー" -#: ops/models/base.py:21 +#: ops/models/base.py:20 +#, fuzzy +#| msgid "Command execution" +msgid "Last execution" +msgstr "コマンド実行" + +#: ops/models/base.py:22 #, fuzzy #| msgid "Date last sync" msgid "Date last run" msgstr "最終同期日" -#: ops/models/base.py:50 xpack/plugins/cloud/models.py:169 +#: ops/models/base.py:51 ops/models/job.py:59 xpack/plugins/cloud/models.py:169 msgid "Result" msgstr "結果" -#: ops/models/base.py:51 +#: ops/models/base.py:52 ops/models/job.py:60 msgid "Summary" msgstr "" -#: ops/models/celery.py:46 terminal/models/component/task.py:18 +#: ops/models/celery.py:49 terminal/models/component/task.py:18 msgid "Kwargs" msgstr "クワーグ" -#: ops/models/celery.py:47 tickets/models/comment.py:13 +#: ops/models/celery.py:50 tickets/models/comment.py:13 #: tickets/models/ticket/general.py:41 tickets/models/ticket/general.py:277 msgid "State" msgstr "状態" -#: ops/models/celery.py:48 terminal/models/session/sharing.py:111 +#: ops/models/celery.py:51 terminal/models/session/sharing.py:111 #: tickets/const.py:25 xpack/plugins/change_auth_plan/models/base.py:188 msgid "Finished" msgstr "終了" -#: ops/models/playbook.py:10 -msgid "Path" -msgstr "" - -#: ops/models/playbook.py:18 -msgid "Playbook template" -msgstr "" - -#: ops/models/playbook.py:23 +#: ops/models/job.py:21 ops/models/job.py:38 msgid "Playbook" msgstr "" -#: ops/models/playbook.py:24 -msgid "Owner" +#: ops/models/job.py:24 +msgid "Privileged Only" msgstr "" -#: ops/models/playbook.py:26 settings/serializers/auth/sms.py:64 -msgid "Template" -msgstr "テンプレート" +#: ops/models/job.py:25 +msgid "Privileged First" +msgstr "" -#: ops/models/playbook.py:38 ops/signal_handlers.py:63 -#: terminal/models/component/task.py:26 -#: xpack/plugins/gathered_user/models.py:68 -msgid "Task" -msgstr "タスク" +#: ops/models/job.py:26 +msgid "Skip" +msgstr "" -#: ops/models/playbook.py:39 +#: ops/models/job.py:42 +msgid "Runas" +msgstr "" + +#: ops/models/job.py:44 #, fuzzy -#| msgid "Run user" -msgid "Run dir" -msgstr "ユーザーの実行" +#| msgid "Account key" +msgid "Runas policy" +msgstr "アカウントキー" + +#: ops/models/playbook.py:15 +msgid "Owner" +msgstr "" #: ops/notifications.py:17 msgid "Server performance" @@ -3041,26 +3200,47 @@ msgstr "{max_threshold}%: => {value} を超える使用メモリ" msgid "CPU load more than {max_threshold}: => {value}" msgstr "{max_threshold} を超えるCPUロード: => {value}" -#: ops/tasks.py:34 +#: ops/signal_handlers.py:63 terminal/models/component/task.py:26 +#: xpack/plugins/gathered_user/models.py:68 +msgid "Task" +msgstr "タスク" + +#: ops/tasks.py:27 #, fuzzy #| msgid "Run asset" msgid "Run ansible task" msgstr "アセットの実行" -#: ops/tasks.py:58 +#: ops/tasks.py:41 #, fuzzy -#| msgid "Run command" -msgid "Run ansible command" -msgstr "実行コマンド" +#| msgid "Run asset" +msgid "Run ansible task execution" +msgstr "アセットの実行" -#: ops/tasks.py:80 -msgid "Clean task history period" -msgstr "クリーンなタスク履歴期間" +#: ops/tasks.py:54 +msgid "Periodic clear celery tasks" +msgstr "" -#: ops/tasks.py:93 +#: ops/tasks.py:56 msgid "Clean celery log period" msgstr "きれいなセロリログ期間" +#: ops/tasks.py:73 +#, fuzzy +#| msgid "Clean celery log period" +msgid "Clear celery periodic tasks" +msgstr "きれいなセロリログ期間" + +#: ops/tasks.py:96 +msgid "Create or update periodic tasks" +msgstr "" + +#: ops/tasks.py:104 +#, fuzzy +#| msgid "Periodic perform" +msgid "Periodic check service performance" +msgstr "定期的なパフォーマンス" + #: ops/templates/ops/celery_task_log.html:4 msgid "Task log" msgstr "タスクログ" @@ -3125,76 +3305,86 @@ msgstr "グローバル組織を表示できます" msgid "Can view all joined org" msgstr "参加しているすべての組織を表示できます" +#: orgs/tasks.py:9 +#, fuzzy +#| msgid "Global organization name" +msgid "Refresh organization cache" +msgstr "グローバル組織名" + #: perms/apps.py:9 msgid "App permissions" msgstr "アプリの権限" -#: perms/models/asset_permission.py:72 perms/serializers/permission.py:59 -#: perms/serializers/permission.py:85 -#: tickets/models/ticket/apply_application.py:26 -#: tickets/models/ticket/apply_asset.py:19 -msgid "Actions" -msgstr "アクション" - -#: perms/models/asset_permission.py:83 -msgid "From ticket" -msgstr "チケットから" - -#: perms/models/asset_permission.py:224 -msgid "Ungrouped" -msgstr "グループ化されていません" - -#: perms/models/asset_permission.py:226 -msgid "Favorite" -msgstr "お気に入り" - -#: perms/models/asset_permission.py:273 -msgid "Permed asset" -msgstr "許可された資産" - -#: perms/models/asset_permission.py:275 -msgid "Can view my assets" -msgstr "私の資産を見ることができます" - -#: perms/models/asset_permission.py:276 -msgid "Can view user assets" -msgstr "ユーザー資産を表示できます" - -#: perms/models/asset_permission.py:277 -msgid "Can view usergroup assets" -msgstr "ユーザーグループの資産を表示できます" - -#: perms/models/const.py:20 settings/serializers/terminal.py:12 -msgid "All" -msgstr "すべて" - -#: perms/models/const.py:21 +#: perms/const.py:13 msgid "Connect" msgstr "接続" -#: perms/models/const.py:22 -msgid "Upload file" -msgstr "ファイルのアップロード" +#: perms/const.py:16 +#, fuzzy +#| msgid "Copy link" +msgid "Copy" +msgstr "リンクのコピー" -#: perms/models/const.py:23 -msgid "Download file" -msgstr "ファイルのダウンロード" +#: perms/const.py:17 +msgid "Paste" +msgstr "" -#: perms/models/const.py:24 -msgid "Upload download" -msgstr "ダウンロードのアップロード" +#: perms/const.py:26 +msgid "Transfer" +msgstr "" -#: perms/models/const.py:25 -msgid "Clipboard copy" +#: perms/const.py:27 +#, fuzzy +#| msgid "Clipboard copy" +msgid "Clipboard" msgstr "クリップボードのコピー" -#: perms/models/const.py:26 -msgid "Clipboard paste" -msgstr "クリップボードペースト" +#: perms/models/asset_permission.py:66 perms/models/perm_token.py:18 +#: perms/serializers/permission.py:29 perms/serializers/permission.py:59 +#: tickets/models/ticket/apply_application.py:26 +#: tickets/models/ticket/apply_asset.py:17 +msgid "Actions" +msgstr "アクション" -#: perms/models/const.py:27 -msgid "Clipboard copy paste" -msgstr "クリップボードコピーペースト" +#: perms/models/asset_permission.py:76 +msgid "From ticket" +msgstr "チケットから" + +#: perms/models/perm_node.py:55 +msgid "Ungrouped" +msgstr "グループ化されていません" + +#: perms/models/perm_node.py:57 +msgid "Favorite" +msgstr "お気に入り" + +#: perms/models/perm_node.py:104 +msgid "Permed asset" +msgstr "許可された資産" + +#: perms/models/perm_node.py:106 +msgid "Can view my assets" +msgstr "私の資産を見ることができます" + +#: perms/models/perm_node.py:107 +msgid "Can view user assets" +msgstr "ユーザー資産を表示できます" + +#: perms/models/perm_node.py:108 +msgid "Can view usergroup assets" +msgstr "ユーザーグループの資産を表示できます" + +#: perms/models/perm_node.py:119 +#, fuzzy +#| msgid "Gather account" +msgid "Permed account" +msgstr "アカウントを集める" + +#: perms/models/perm_token.py:17 +#, fuzzy +#| msgid "Connect timeout" +msgid "Connect method" +msgstr "接続タイムアウト" #: perms/notifications.py:12 perms/notifications.py:44 msgid "today" @@ -3216,40 +3406,11 @@ msgstr "資産権限の有効期限が近づいています" msgid "asset permissions of organization {}" msgstr "組織 {} の資産権限" -#: perms/serializers/permission.py:48 -msgid "Users display" -msgstr "ユーザー表示" - -#: perms/serializers/permission.py:51 -msgid "User groups display" -msgstr "ユーザーグループの表示" - -#: perms/serializers/permission.py:54 -msgid "Assets display" -msgstr "資産表示" - -#: perms/serializers/permission.py:57 -msgid "Nodes display" -msgstr "ノード表示" - -#: perms/serializers/permission.py:61 perms/serializers/permission.py:86 -#: users/serializers/user.py:89 users/serializers/user.py:150 +#: perms/serializers/permission.py:31 perms/serializers/permission.py:60 +#: users/serializers/user.py:100 users/serializers/user.py:205 msgid "Is expired" msgstr "期限切れです" -#: perms/serializers/permission.py:81 rbac/serializers/role.py:26 -#: users/serializers/group.py:34 -msgid "Users amount" -msgstr "ユーザー数" - -#: perms/serializers/permission.py:82 -msgid "User groups amount" -msgstr "ユーザーグループの量" - -#: perms/serializers/permission.py:84 -msgid "Nodes amount" -msgstr "ノード量" - #: perms/templates/perms/_msg_item_permissions_expire.html:7 #: perms/templates/perms/_msg_permed_items_expire.html:7 #, python-format @@ -3266,7 +3427,7 @@ msgstr "" msgid "If you have any question, please contact the administrator" msgstr "質問があったら、管理者に連絡して下さい" -#: perms/utils/user_permission.py:623 rbac/tree.py:57 +#: perms/utils/user_permission.py:622 rbac/tree.py:57 msgid "My assets" msgstr "私の資産" @@ -3399,6 +3560,10 @@ msgstr "パーマ" msgid "Scope display" msgstr "スコープ表示" +#: rbac/serializers/role.py:26 users/serializers/group.py:34 +msgid "Users amount" +msgstr "ユーザー数" + #: rbac/serializers/role.py:27 terminal/models/applet/applet.py:21 msgid "Display name" msgstr "表示名" @@ -3887,6 +4052,10 @@ msgstr "元の番号(Src id)" msgid "Business type(Service id)" msgstr "ビジネス・タイプ(Service id)" +#: settings/serializers/auth/sms.py:64 +msgid "Template" +msgstr "テンプレート" + #: settings/serializers/auth/sms.py:65 #, python-brace-format msgid "" @@ -4667,8 +4836,8 @@ msgstr "期限切れです。" #, python-format msgid "" "\n" -" Your password has expired, please click this link update password.\n" +" Your password has expired, please click this link update password.\n" " " msgstr "" "\n" @@ -4689,34 +4858,34 @@ msgid "" " " msgstr "" "\n" -" クリックしてください リンク パスワードの更新\n" +" クリックしてください リンク パスワードの更新\n" " " #: templates/_message.html:43 #, python-format msgid "" "\n" -" Your information was incomplete. Please click this link to complete your information.\n" +" Your information was incomplete. Please click this link to complete your information.\n" " " msgstr "" "\n" -" あなたの情報が不完全なので、クリックしてください。 リンク 補完\n" +" あなたの情報が不完全なので、クリックしてください。 リンク 補完\n" " " #: templates/_message.html:56 #, python-format msgid "" "\n" -" Your ssh public key not set or expired. Please click this link to update\n" +" Your ssh public key not set or expired. Please click this link to update\n" " " msgstr "" "\n" -" SSHキーが設定されていないか無効になっている場合は、 リンク 更新\n" +" SSHキーが設定されていないか無効になっている場合は、 リンク 更新\n" " " #: templates/_mfa_login_field.html:28 @@ -4890,7 +5059,7 @@ msgid "Timestamp" msgstr "タイムスタンプ" #: terminal/backends/command/serializers.py:41 -#: terminal/models/component/terminal.py:105 +#: terminal/models/component/terminal.py:87 msgid "Remote Address" msgstr "リモートアドレス" @@ -4932,45 +5101,41 @@ msgstr "" msgid "Hosts" msgstr "ホスト" -#: terminal/models/applet/applet.py:58 terminal/models/applet/host.py:28 +#: terminal/models/applet/applet.py:58 terminal/models/applet/host.py:27 #, fuzzy #| msgid "Apply assets" msgid "Applet" msgstr "資産の適用" -#: terminal/models/applet/host.py:19 terminal/serializers/applet_host.py:36 +#: terminal/models/applet/host.py:18 terminal/serializers/applet_host.py:38 #, fuzzy #| msgid "More login options" msgid "Deploy options" msgstr "その他のログインオプション" -#: terminal/models/applet/host.py:20 +#: terminal/models/applet/host.py:19 msgid "Inited" msgstr "" -#: terminal/models/applet/host.py:21 +#: terminal/models/applet/host.py:20 #, fuzzy #| msgid "Date finished" msgid "Date inited" msgstr "終了日" -#: terminal/models/applet/host.py:22 +#: terminal/models/applet/host.py:21 #, fuzzy #| msgid "Date sync" msgid "Date synced" msgstr "日付の同期" -#: terminal/models/applet/host.py:25 terminal/models/component/terminal.py:183 -msgid "Terminal" -msgstr "ターミナル" - -#: terminal/models/applet/host.py:99 +#: terminal/models/applet/host.py:102 #, fuzzy #| msgid "Host" msgid "Hosting" msgstr "ホスト" -#: terminal/models/applet/host.py:100 +#: terminal/models/applet/host.py:103 msgid "Initial" msgstr "" @@ -4979,12 +5144,10 @@ msgid "HTTPS Port" msgstr "HTTPS ポート" #: terminal/models/component/endpoint.py:15 -#: terminal/models/component/terminal.py:107 msgid "HTTP Port" msgstr "HTTP ポート" #: terminal/models/component/endpoint.py:16 -#: terminal/models/component/terminal.py:106 msgid "SSH Port" msgstr "SSH ポート" @@ -5032,31 +5195,31 @@ msgstr "IP グループ" msgid "Endpoint rule" msgstr "エンドポイントルール" -#: terminal/models/component/status.py:18 +#: terminal/models/component/status.py:14 msgid "Session Online" msgstr "セッションオンライン" -#: terminal/models/component/status.py:19 +#: terminal/models/component/status.py:15 msgid "CPU Load" msgstr "CPUロード" -#: terminal/models/component/status.py:20 +#: terminal/models/component/status.py:16 msgid "Memory Used" msgstr "使用メモリ" -#: terminal/models/component/status.py:21 +#: terminal/models/component/status.py:17 msgid "Disk Used" msgstr "使用済みディスク" -#: terminal/models/component/status.py:22 +#: terminal/models/component/status.py:18 msgid "Connections" msgstr "接続" -#: terminal/models/component/status.py:23 +#: terminal/models/component/status.py:19 msgid "Threads" msgstr "スレッド" -#: terminal/models/component/status.py:24 +#: terminal/models/component/status.py:20 msgid "Boot Time" msgstr "ブート時間" @@ -5065,20 +5228,20 @@ msgid "Default storage" msgstr "デフォルトのストレージ" #: terminal/models/component/storage.py:136 -#: terminal/models/component/terminal.py:108 +#: terminal/models/component/terminal.py:88 msgid "Command storage" msgstr "コマンドストレージ" #: terminal/models/component/storage.py:196 -#: terminal/models/component/terminal.py:109 +#: terminal/models/component/terminal.py:89 msgid "Replay storage" msgstr "再生ストレージ" -#: terminal/models/component/terminal.py:103 +#: terminal/models/component/terminal.py:85 msgid "type" msgstr "タイプ" -#: terminal/models/component/terminal.py:185 +#: terminal/models/component/terminal.py:161 msgid "Can view terminal config" msgstr "ターミナル構成を表示できます" @@ -5216,42 +5379,46 @@ msgstr "電話が設定されていない" msgid "Icon" msgstr "" -#: terminal/serializers/applet_host.py:20 +#: terminal/serializers/applet_host.py:22 #, fuzzy #| msgid "Session" msgid "Per Session" msgstr "セッション" -#: terminal/serializers/applet_host.py:21 +#: terminal/serializers/applet_host.py:23 msgid "Per Device" msgstr "" -#: terminal/serializers/applet_host.py:27 +#: terminal/serializers/applet_host.py:29 #, fuzzy #| msgid "License" msgid "RDS Licensing" msgstr "ライセンス" -#: terminal/serializers/applet_host.py:28 +#: terminal/serializers/applet_host.py:30 msgid "RDS License Server" msgstr "" -#: terminal/serializers/applet_host.py:29 +#: terminal/serializers/applet_host.py:31 msgid "RDS Licensing Mode" msgstr "" -#: terminal/serializers/applet_host.py:30 +#: terminal/serializers/applet_host.py:32 msgid "RDS fSingleSessionPerUser" msgstr "" -#: terminal/serializers/applet_host.py:31 +#: terminal/serializers/applet_host.py:33 msgid "RDS Max Disconnection Time" msgstr "" -#: terminal/serializers/applet_host.py:32 +#: terminal/serializers/applet_host.py:34 msgid "RDS Remote App Logoff Time Limit" msgstr "" +#: terminal/serializers/applet_host.py:40 terminal/serializers/terminal.py:41 +msgid "Load status" +msgstr "ロードステータス" + #: terminal/serializers/endpoint.py:12 msgid "Oracle port" msgstr "" @@ -5373,11 +5540,7 @@ msgstr "Docタイプ" msgid "Ignore Certificate Verification" msgstr "証明書の検証を無視する" -#: terminal/serializers/terminal.py:44 -msgid "Load status" -msgstr "ロードステータス" - -#: terminal/serializers/terminal.py:81 terminal/serializers/terminal.py:89 +#: terminal/serializers/terminal.py:77 terminal/serializers/terminal.py:85 msgid "Not found" msgstr "見つかりません" @@ -5498,11 +5661,11 @@ msgstr "ボディ" msgid "Approve level" msgstr "レベルを承認する" -#: tickets/models/flow.py:25 tickets/serializers/flow.py:15 +#: tickets/models/flow.py:25 tickets/serializers/flow.py:17 msgid "Approve strategy" msgstr "戦略を承認する" -#: tickets/models/flow.py:30 tickets/serializers/flow.py:16 +#: tickets/models/flow.py:30 tickets/serializers/flow.py:19 msgid "Assignees" msgstr "アシニーズ" @@ -5519,7 +5682,7 @@ msgid "Ticket session relation" msgstr "チケットセッションの関係" #: tickets/models/ticket/apply_application.py:11 -#: tickets/models/ticket/apply_asset.py:13 +#: tickets/models/ticket/apply_asset.py:12 msgid "Permission name" msgstr "認可ルール名" @@ -5531,20 +5694,20 @@ msgstr "アプリケーションの適用" msgid "Apply system users" msgstr "システムユーザーの適用" -#: tickets/models/ticket/apply_asset.py:9 +#: tickets/models/ticket/apply_asset.py:8 #: tickets/serializers/ticket/apply_asset.py:15 msgid "Select at least one asset or node" msgstr "少なくとも1つのアセットまたはノードを選択します。" -#: tickets/models/ticket/apply_asset.py:14 +#: tickets/models/ticket/apply_asset.py:13 msgid "Apply nodes" msgstr "ノードの適用" -#: tickets/models/ticket/apply_asset.py:16 +#: tickets/models/ticket/apply_asset.py:15 msgid "Apply assets" msgstr "資産の適用" -#: tickets/models/ticket/apply_asset.py:17 +#: tickets/models/ticket/apply_asset.py:16 #, fuzzy #| msgid "Application account" msgid "Apply accounts" @@ -5654,15 +5817,15 @@ msgstr "チケットが処理されました。プロセッサー- {}" msgid "Ticket has processed - {} ({})" msgstr "チケットが処理済み- {} ({})" -#: tickets/serializers/flow.py:17 +#: tickets/serializers/flow.py:20 msgid "Assignees display" msgstr "受付者名" -#: tickets/serializers/flow.py:43 +#: tickets/serializers/flow.py:46 msgid "Please select the Assignees" msgstr "受付をお選びください" -#: tickets/serializers/flow.py:69 +#: tickets/serializers/flow.py:74 msgid "The current organization type already exists" msgstr "現在の組織タイプは既に存在します。" @@ -5683,6 +5846,14 @@ msgstr "有効期限は開始日より大きくする必要があります" msgid "Permission named `{}` already exists" msgstr "'{}'という名前の権限は既に存在します" +#: tickets/serializers/ticket/ticket.py:17 +msgid "Type display" +msgstr "タイプ表示" + +#: tickets/serializers/ticket/ticket.py:18 +msgid "Status display" +msgstr "ステータス表示" + #: tickets/serializers/ticket/ticket.py:101 msgid "The ticket flow `{}` does not exist" msgstr "チケットフロー '{}'が存在しない" @@ -5858,7 +6029,7 @@ msgstr "強制有効" msgid "Local" msgstr "ローカル" -#: users/models/user.py:677 users/serializers/user.py:149 +#: users/models/user.py:677 users/serializers/user.py:204 msgid "Is service account" msgstr "サービスアカウントです" @@ -5965,105 +6136,105 @@ msgstr "新しいパスワードを最後の {} 個のパスワードにする msgid "The newly set password is inconsistent" msgstr "新しく設定されたパスワードが一致しない" -#: users/serializers/profile.py:149 users/serializers/user.py:146 +#: users/serializers/profile.py:149 users/serializers/user.py:201 msgid "Is first login" msgstr "最初のログインです" -#: users/serializers/user.py:28 +#: users/serializers/user.py:30 msgid "System roles" msgstr "システムの役割" -#: users/serializers/user.py:33 +#: users/serializers/user.py:35 msgid "Org roles" msgstr "組織ロール" -#: users/serializers/user.py:35 +#: users/serializers/user.py:38 msgid "System roles display" msgstr "システムロール表示" -#: users/serializers/user.py:36 +#: users/serializers/user.py:40 msgid "Org roles display" msgstr "組織ロール表示" -#: users/serializers/user.py:81 +#: users/serializers/user.py:90 #: xpack/plugins/change_auth_plan/models/base.py:35 #: xpack/plugins/change_auth_plan/serializers/base.py:27 msgid "Password strategy" msgstr "パスワード戦略" -#: users/serializers/user.py:83 +#: users/serializers/user.py:92 msgid "MFA enabled" msgstr "MFA有効化" -#: users/serializers/user.py:84 +#: users/serializers/user.py:94 msgid "MFA force enabled" msgstr "MFAフォース有効化" -#: users/serializers/user.py:86 +#: users/serializers/user.py:97 msgid "MFA level display" msgstr "MFAレベル表示" -#: users/serializers/user.py:88 +#: users/serializers/user.py:99 msgid "Login blocked" msgstr "ログインブロック" -#: users/serializers/user.py:91 +#: users/serializers/user.py:102 msgid "Can public key authentication" msgstr "公開鍵認証が可能" -#: users/serializers/user.py:151 +#: users/serializers/user.py:206 msgid "Avatar url" msgstr "アバターURL" -#: users/serializers/user.py:153 +#: users/serializers/user.py:208 msgid "Groups name" msgstr "グループ名" -#: users/serializers/user.py:154 +#: users/serializers/user.py:209 msgid "Source name" msgstr "ソース名" -#: users/serializers/user.py:155 +#: users/serializers/user.py:210 msgid "Organization role name" msgstr "組織の役割名" -#: users/serializers/user.py:156 +#: users/serializers/user.py:211 msgid "Super role name" msgstr "スーパーロール名" -#: users/serializers/user.py:157 +#: users/serializers/user.py:212 msgid "Total role name" msgstr "合計ロール名" -#: users/serializers/user.py:159 +#: users/serializers/user.py:214 msgid "Is wecom bound" msgstr "企業の微信をバインドしているかどうか" -#: users/serializers/user.py:160 +#: users/serializers/user.py:215 msgid "Is dingtalk bound" msgstr "ピンをバインドしているかどうか" -#: users/serializers/user.py:161 +#: users/serializers/user.py:216 msgid "Is feishu bound" msgstr "飛本を縛ったかどうか" -#: users/serializers/user.py:162 +#: users/serializers/user.py:217 msgid "Is OTP bound" msgstr "仮想MFAがバインドされているか" -#: users/serializers/user.py:164 +#: users/serializers/user.py:219 msgid "System role name" msgstr "システムロール名" -#: users/serializers/user.py:263 +#: users/serializers/user.py:325 msgid "Select users" msgstr "ユーザーの選択" -#: users/serializers/user.py:264 +#: users/serializers/user.py:326 msgid "For security, only list several users" msgstr "セキュリティのために、複数のユーザーのみをリストします" -#: users/serializers/user.py:299 +#: users/serializers/user.py:362 msgid "name not unique" msgstr "名前が一意ではない" @@ -6317,10 +6488,6 @@ msgstr "パスワードの成功をリセットし、ログインページに戻 msgid "XPACK" msgstr "XPack" -#: xpack/plugins/change_auth_plan/api/asset.py:94 -msgid "The parameter 'action' must be [{}]" -msgstr "パラメータ 'action' は [{}] でなければなりません。" - #: xpack/plugins/change_auth_plan/meta.py:9 #: xpack/plugins/change_auth_plan/models/asset.py:124 msgid "Change auth plan" @@ -6349,11 +6516,6 @@ msgstr "改密計画タスクの適用" msgid "Password cannot be set to blank, exit. " msgstr "パスワードを空白に設定することはできません。" -#: xpack/plugins/change_auth_plan/models/asset.py:50 -#: xpack/plugins/change_auth_plan/serializers/asset.py:33 -msgid "SSH Key strategy" -msgstr "SSHキー戦略" - #: xpack/plugins/change_auth_plan/models/asset.py:68 msgid "Asset change auth plan" msgstr "資産変更のオースプラン" @@ -6407,25 +6569,6 @@ msgstr "パスワード/キーの保存" msgid "Step" msgstr "ステップ" -#: xpack/plugins/change_auth_plan/notifications.py:8 -msgid "Notification of implementation result of encryption change plan" -msgstr "暗号化変更プランの実装結果の通知" - -#: xpack/plugins/change_auth_plan/notifications.py:18 -msgid "" -"{} - The encryption change task has been completed. See the attachment for " -"details" -msgstr "{} -暗号化変更タスクが完了しました。詳細は添付ファイルをご覧ください" - -#: xpack/plugins/change_auth_plan/notifications.py:19 -msgid "" -"{} - The encryption change task has been completed: the encryption password " -"has not been set - please go to personal information -> file encryption " -"password to set the encryption password" -msgstr "" -"{} -暗号化変更タスクが完了しました: 暗号化パスワードが設定されていません-個人" -"情報にアクセスしてください-> ファイル暗号化パスワードを設定してください" - #: xpack/plugins/change_auth_plan/serializers/asset.py:30 msgid "Change Password" msgstr "パスワードの変更" @@ -6438,14 +6581,6 @@ msgstr "SSHキーの変更" msgid "Run times" msgstr "実行時間" -#: xpack/plugins/change_auth_plan/serializers/base.py:58 -msgid "* Please enter the correct password length" -msgstr "* 正しいパスワードの長さを入力してください" - -#: xpack/plugins/change_auth_plan/serializers/base.py:61 -msgid "* Password length range 6-30 bits" -msgstr "* パスワードの長さの範囲6-30ビット" - #: xpack/plugins/change_auth_plan/task_handlers/base/handler.py:236 msgid "After many attempts to change the secret, it still failed" msgstr "秘密を変更しようとする多くの試みの後、それはまだ失敗しました" @@ -6462,6 +6597,22 @@ msgstr "ホストへの接続に失敗しました" msgid "Data could not be sent to remote" msgstr "データをリモートに送信できませんでした" +#: xpack/plugins/change_auth_plan/tasks.py:13 +#, fuzzy +#| msgid "Asset change auth plan task" +msgid "Execute change authentication task" +msgstr "資産改密計画タスク" + +#: xpack/plugins/change_auth_plan/tasks.py:24 +#, fuzzy +#| msgid "Asset change auth plan task" +msgid "Start change authentication task" +msgstr "資産改密計画タスク" + +#: xpack/plugins/change_auth_plan/tasks.py:36 +msgid "Test the validity of the change authentication plan " +msgstr "" + #: xpack/plugins/cloud/api.py:40 msgid "Test connection successful" msgstr "テスト接続成功" @@ -6997,11 +7148,11 @@ msgstr "テーマ" msgid "Interface setting" msgstr "インターフェイスの設定" -#: xpack/plugins/license/api.py:53 +#: xpack/plugins/license/api.py:50 msgid "License import successfully" msgstr "ライセンスのインポートに成功" -#: xpack/plugins/license/api.py:54 +#: xpack/plugins/license/api.py:51 msgid "License is invalid" msgstr "ライセンスが無効です" @@ -7026,9 +7177,61 @@ msgid "Community edition" msgstr "コミュニティ版" #, fuzzy -#~| msgid "Verify auth" -#~ msgid "Account automation" -#~ msgstr "パスワード/キーの確認" +#~| msgid "Run command" +#~ msgid "Run ansible command" +#~ msgstr "実行コマンド" + +#~ msgid "Clean task history period" +#~ msgstr "クリーンなタスク履歴期間" + +#, fuzzy +#~| msgid "WeCom Error" +#~ msgid "Hello Error" +#~ msgstr "企業微信エラー" + +#~ msgid "Operate display" +#~ msgstr "ディスプレイを操作する" + +#~ msgid "MFA display" +#~ msgstr "MFAディスプレイ" + +#, fuzzy +#~| msgid "Run user" +#~ msgid "Run dir" +#~ msgstr "ユーザーの実行" + +#~ msgid "Upload file" +#~ msgstr "ファイルのアップロード" + +#~ msgid "Download file" +#~ msgstr "ファイルのダウンロード" + +#~ msgid "Upload download" +#~ msgstr "ダウンロードのアップロード" + +#~ msgid "Clipboard paste" +#~ msgstr "クリップボードペースト" + +#~ msgid "Clipboard copy paste" +#~ msgstr "クリップボードコピーペースト" + +#~ msgid "Users display" +#~ msgstr "ユーザー表示" + +#~ msgid "User groups display" +#~ msgstr "ユーザーグループの表示" + +#~ msgid "Assets display" +#~ msgstr "資産表示" + +#~ msgid "Nodes display" +#~ msgstr "ノード表示" + +#~ msgid "User groups amount" +#~ msgstr "ユーザーグループの量" + +#~ msgid "Nodes amount" +#~ msgstr "ノード量" #~ msgid "The asset {} system platform {} does not support run Ansible tasks" #~ msgstr "" @@ -7333,66 +7536,54 @@ msgstr "コミュニティ版" #~ msgid "Asset and SystemUser" #~ msgstr "資産およびシステム・ユーザー" -#, python-brace-format #~ msgid "{Asset} ADD {SystemUser}" #~ msgstr "{Asset} 追加 {SystemUser}" -#, python-brace-format #~ msgid "{Asset} REMOVE {SystemUser}" #~ msgstr "{Asset} 削除 {SystemUser}" #~ msgid "Asset permission and SystemUser" #~ msgstr "資産権限とSystemUser" -#, python-brace-format #~ msgid "{AssetPermission} ADD {SystemUser}" #~ msgstr "{AssetPermission} 追加 {SystemUser}" -#, python-brace-format #~ msgid "{AssetPermission} REMOVE {SystemUser}" #~ msgstr "{AssetPermission} 削除 {SystemUser}" #~ msgid "User application permissions" #~ msgstr "ユーザーアプリケーションの権限" -#, python-brace-format #~ msgid "{ApplicationPermission} ADD {User}" #~ msgstr "{ApplicationPermission} 追加 {User}" -#, python-brace-format #~ msgid "{ApplicationPermission} REMOVE {User}" #~ msgstr "{ApplicationPermission} 削除 {User}" #~ msgid "User group application permissions" #~ msgstr "ユーザーグループアプリケーションの権限" -#, python-brace-format #~ msgid "{ApplicationPermission} ADD {UserGroup}" #~ msgstr "{ApplicationPermission} 追加 {UserGroup}" -#, python-brace-format #~ msgid "{ApplicationPermission} REMOVE {UserGroup}" #~ msgstr "{ApplicationPermission} 削除 {UserGroup}" #~ msgid "Application permission" #~ msgstr "申請許可" -#, python-brace-format #~ msgid "{ApplicationPermission} ADD {Application}" #~ msgstr "{ApplicationPermission} 追加 {Application}" -#, python-brace-format #~ msgid "{ApplicationPermission} REMOVE {Application}" #~ msgstr "{ApplicationPermission} 削除 {Application}" #~ msgid "Application permission and SystemUser" #~ msgstr "アプリケーション権限とSystemUser" -#, python-brace-format #~ msgid "{ApplicationPermission} ADD {SystemUser}" #~ msgstr "{ApplicationPermission} 追加 {SystemUser}" -#, python-brace-format #~ msgid "{ApplicationPermission} REMOVE {SystemUser}" #~ msgstr "{ApplicationPermission} 削除 {SystemUser}" diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index bb0411aa6..c1becdb02 100644 --- a/apps/locale/zh/LC_MESSAGES/django.mo +++ b/apps/locale/zh/LC_MESSAGES/django.mo @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:314c29cb8b10aaddbb030bf49af293be23f0153ff1f1c7562946879574ce6de8 -size 102801 +oid sha256:bf423289503715e2a574bce56bf6b1b323e0355ef18dbd1c8de37c66c0fb5b25 +size 104080 diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po index 6ab6fa2be..596c39c50 100644 --- a/apps/locale/zh/LC_MESSAGES/django.po +++ b/apps/locale/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: 2022-11-03 16:00+0800\n" +"POT-Creation-Date: 2022-11-15 15:52+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n" "Last-Translator: ibuler \n" "Language-Team: JumpServer team\n" @@ -21,20 +21,21 @@ msgstr "" msgid "Acls" msgstr "访问控制" -#: acls/models/base.py:25 acls/serializers/login_asset_acl.py:48 +#: acls/models/base.py:25 acls/serializers/login_asset_acl.py:58 #: applications/models.py:10 assets/models/_user.py:33 #: assets/models/asset/common.py:81 assets/models/asset/common.py:91 -#: assets/models/base.py:57 assets/models/cmd_filter.py:25 +#: assets/models/base.py:50 assets/models/cmd_filter.py:25 #: assets/models/domain.py:24 assets/models/group.py:20 -#: assets/models/label.py:17 assets/models/platform.py:22 -#: assets/models/platform.py:68 assets/serializers/asset/common.py:86 -#: assets/serializers/platform.py:104 ops/mixin.py:20 ops/models/playbook.py:9 -#: orgs/models.py:70 perms/models/asset_permission.py:56 rbac/models/role.py:29 +#: assets/models/label.py:17 assets/models/platform.py:21 +#: assets/models/platform.py:72 assets/serializers/asset/common.py:86 +#: assets/serializers/platform.py:138 ops/mixin.py:20 ops/models/adhoc.py:24 +#: ops/models/job.py:33 ops/models/playbook.py:13 orgs/models.py:70 +#: perms/models/asset_permission.py:51 rbac/models/role.py:29 #: settings/models.py:33 settings/serializers/sms.py:6 #: terminal/models/applet/applet.py:20 terminal/models/component/endpoint.py:11 #: terminal/models/component/endpoint.py:87 #: terminal/models/component/storage.py:25 terminal/models/component/task.py:16 -#: terminal/models/component/terminal.py:100 users/forms/profile.py:33 +#: terminal/models/component/terminal.py:82 users/forms/profile.py:33 #: users/models/group.py:15 users/models/user.py:665 #: xpack/plugins/cloud/models.py:30 msgid "Name" @@ -52,26 +53,25 @@ msgstr "优先级可选范围为 1-100 (数值越小越优先)" #: acls/models/base.py:31 authentication/models/access_key.py:15 #: authentication/templates/authentication/_access_key_modal.html:32 -#: perms/models/asset_permission.py:74 terminal/models/session/sharing.py:28 +#: perms/models/asset_permission.py:67 terminal/models/session/sharing.py:28 #: tickets/const.py:38 msgid "Active" msgstr "激活中" #: acls/models/base.py:32 applications/models.py:19 assets/models/_user.py:40 -#: assets/models/asset/common.py:100 assets/models/automations/base.py:26 -#: assets/models/backup.py:30 assets/models/base.py:65 +#: assets/models/asset/common.py:100 assets/models/automations/base.py:22 +#: assets/models/backup.py:29 assets/models/base.py:58 #: assets/models/cmd_filter.py:40 assets/models/cmd_filter.py:88 #: assets/models/domain.py:25 assets/models/domain.py:69 #: assets/models/group.py:23 assets/models/label.py:22 -#: assets/models/platform.py:73 ops/models/playbook.py:11 -#: ops/models/playbook.py:25 orgs/models.py:74 -#: perms/models/asset_permission.py:84 rbac/models/role.py:37 +#: assets/models/platform.py:77 orgs/models.py:74 +#: perms/models/asset_permission.py:77 rbac/models/role.py:37 #: settings/models.py:38 terminal/models/applet/applet.py:28 -#: terminal/models/applet/applet.py:61 terminal/models/applet/host.py:104 +#: terminal/models/applet/applet.py:61 terminal/models/applet/host.py:107 #: terminal/models/component/endpoint.py:24 #: terminal/models/component/endpoint.py:97 #: terminal/models/component/storage.py:28 -#: terminal/models/component/terminal.py:114 tickets/models/comment.py:32 +#: terminal/models/component/terminal.py:93 tickets/models/comment.py:32 #: tickets/models/ticket/general.py:288 users/models/group.py:16 #: users/models/user.py:702 xpack/plugins/change_auth_plan/models/base.py:44 #: xpack/plugins/cloud/models.py:37 xpack/plugins/cloud/models.py:118 @@ -94,12 +94,12 @@ msgid "Login confirm" msgstr "登录复核" #: acls/models/login_acl.py:24 acls/models/login_asset_acl.py:20 -#: assets/models/cmd_filter.py:28 assets/models/label.py:15 audits/models.py:37 -#: audits/models.py:62 audits/models.py:87 -#: authentication/models/connection_token.py:22 -#: authentication/models/sso_token.py:15 perms/models/asset_permission.py:58 -#: rbac/builtin.py:120 rbac/models/rolebinding.py:41 -#: terminal/backends/command/models.py:20 +#: acls/serializers/login_acl.py:21 assets/models/cmd_filter.py:28 +#: assets/models/label.py:15 audits/models.py:29 audits/models.py:48 +#: audits/models.py:79 authentication/models/connection_token.py:22 +#: authentication/models/sso_token.py:15 perms/models/asset_permission.py:53 +#: perms/models/perm_token.py:12 rbac/builtin.py:120 +#: rbac/models/rolebinding.py:41 terminal/backends/command/models.py:20 #: terminal/backends/command/serializers.py:13 #: terminal/models/session/session.py:30 terminal/models/session/sharing.py:33 #: terminal/notifications.py:91 terminal/notifications.py:139 @@ -113,14 +113,14 @@ msgid "Rule" msgstr "规则" #: acls/models/login_acl.py:31 acls/models/login_asset_acl.py:26 -#: acls/serializers/login_acl.py:17 acls/serializers/login_asset_acl.py:62 -#: assets/models/cmd_filter.py:81 audits/models.py:63 audits/serializers.py:49 +#: acls/serializers/login_acl.py:26 acls/serializers/login_asset_acl.py:77 +#: assets/models/cmd_filter.py:81 audits/models.py:50 audits/serializers.py:69 #: authentication/templates/authentication/_access_key_modal.html:34 msgid "Action" msgstr "动作" #: acls/models/login_acl.py:35 acls/models/login_asset_acl.py:32 -#: acls/serializers/login_acl.py:16 assets/models/cmd_filter.py:86 +#: acls/serializers/login_acl.py:23 assets/models/cmd_filter.py:86 msgid "Reviewers" msgstr "审批人" @@ -128,19 +128,25 @@ msgstr "审批人" msgid "Login acl" msgstr "登录访问控制" -#: acls/models/login_asset_acl.py:21 assets/models/account.py:59 +#: acls/models/login_asset_acl.py:21 assets/models/account.py:61 +#: assets/serializers/automations/change_secret.py:88 +#: assets/serializers/automations/change_secret.py:110 #: authentication/models/connection_token.py:33 ops/models/base.py:18 -#: terminal/models/session/session.py:34 xpack/plugins/cloud/models.py:87 -#: xpack/plugins/cloud/serializers/task.py:65 +#: perms/models/perm_token.py:14 terminal/models/session/session.py:34 +#: xpack/plugins/cloud/models.py:87 xpack/plugins/cloud/serializers/task.py:65 msgid "Account" msgstr "账号" -#: acls/models/login_asset_acl.py:22 assets/models/account.py:49 +#: acls/models/login_asset_acl.py:22 assets/models/account.py:51 #: assets/models/asset/common.py:83 assets/models/asset/common.py:227 #: assets/models/cmd_filter.py:36 assets/models/gathered_user.py:14 -#: assets/serializers/account/account.py:58 assets/serializers/label.py:30 -#: audits/models.py:39 authentication/models/connection_token.py:26 -#: perms/models/asset_permission.py:64 terminal/backends/command/models.py:21 +#: assets/serializers/account/account.py:59 +#: assets/serializers/automations/change_secret.py:87 +#: assets/serializers/automations/change_secret.py:109 +#: assets/serializers/gathered_user.py:11 assets/serializers/label.py:30 +#: audits/models.py:33 authentication/models/connection_token.py:26 +#: perms/models/asset_permission.py:59 perms/models/perm_token.py:13 +#: terminal/backends/command/models.py:21 #: terminal/backends/command/serializers.py:14 #: terminal/models/session/session.py:32 terminal/notifications.py:90 #: xpack/plugins/change_auth_plan/models/asset.py:200 @@ -157,14 +163,14 @@ msgstr "登录资产访问控制" msgid "Login asset confirm" msgstr "登录资产复核" -#: acls/serializers/login_acl.py:11 acls/serializers/login_asset_acl.py:13 +#: acls/serializers/login_acl.py:16 acls/serializers/login_asset_acl.py:14 msgid "Format for comma-delimited string, with * indicating a match all. " msgstr "格式为逗号分隔的字符串, * 表示匹配所有. " -#: acls/serializers/login_acl.py:15 acls/serializers/login_asset_acl.py:18 -#: acls/serializers/login_asset_acl.py:52 assets/models/_user.py:34 -#: assets/models/base.py:58 assets/models/gathered_user.py:15 -#: audits/models.py:121 authentication/forms.py:25 authentication/forms.py:27 +#: acls/serializers/login_asset_acl.py:22 +#: acls/serializers/login_asset_acl.py:64 assets/models/_user.py:34 +#: assets/models/base.py:51 assets/models/gathered_user.py:15 +#: audits/models.py:95 authentication/forms.py:25 authentication/forms.py:27 #: authentication/models/temp_token.py:9 #: authentication/templates/authentication/_msg_different_city.html:9 #: authentication/templates/authentication/_msg_oauth_bind.html:9 @@ -176,7 +182,7 @@ msgstr "格式为逗号分隔的字符串, * 表示匹配所有. " msgid "Username" msgstr "用户名" -#: acls/serializers/login_asset_acl.py:25 +#: acls/serializers/login_asset_acl.py:29 msgid "" "Format for comma-delimited string, 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:" @@ -185,7 +191,7 @@ 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 (支持网域)" -#: acls/serializers/login_asset_acl.py:32 acls/serializers/rules/rules.py:33 +#: acls/serializers/login_asset_acl.py:38 acls/serializers/rules/rules.py:33 #: assets/models/asset/common.py:92 assets/models/domain.py:65 #: authentication/templates/authentication/_msg_oauth_bind.html:12 #: authentication/templates/authentication/_msg_rest_password_success.html:8 @@ -194,23 +200,23 @@ msgstr "" msgid "IP" msgstr "IP" -#: acls/serializers/login_asset_acl.py:36 -#: assets/serializers/gathered_user.py:22 settings/serializers/terminal.py:7 +#: acls/serializers/login_asset_acl.py:44 +#: assets/serializers/gathered_user.py:24 settings/serializers/terminal.py:7 msgid "Hostname" msgstr "主机名" -#: acls/serializers/login_asset_acl.py:43 +#: acls/serializers/login_asset_acl.py:51 msgid "" "Format for comma-delimited string, with * indicating a match all. Protocol " "options: {}" msgstr "格式为逗号分隔的字符串, * 表示匹配所有. 可选的协议有: {}" -#: acls/serializers/login_asset_acl.py:84 +#: acls/serializers/login_asset_acl.py:108 #: tickets/serializers/ticket/ticket.py:86 msgid "The organization `{}` does not exist" msgstr "组织 `{}` 不存在" -#: acls/serializers/login_asset_acl.py:89 +#: acls/serializers/login_asset_acl.py:114 msgid "None of the reviewers belong to Organization `{}`" msgstr "所有复核人都不属于组织 `{}`" @@ -237,23 +243,25 @@ msgid "Applications" msgstr "应用管理" #: applications/models.py:12 assets/models/label.py:20 -#: assets/models/platform.py:69 assets/serializers/asset/common.py:62 -#: assets/serializers/cagegory.py:8 assets/serializers/platform.py:76 -#: assets/serializers/platform.py:105 +#: assets/models/platform.py:73 assets/serializers/asset/common.py:62 +#: assets/serializers/cagegory.py:8 assets/serializers/platform.py:99 +#: assets/serializers/platform.py:139 perms/serializers/user_permission.py:24 #: tickets/models/ticket/apply_application.py:14 #: xpack/plugins/change_auth_plan/models/app.py:24 msgid "Category" msgstr "类别" #: applications/models.py:15 assets/models/_user.py:46 -#: assets/models/automations/base.py:24 assets/models/cmd_filter.py:74 -#: assets/models/platform.py:70 assets/serializers/asset/common.py:63 -#: assets/serializers/platform.py:75 terminal/models/applet/applet.py:24 +#: assets/models/automations/base.py:20 assets/models/cmd_filter.py:74 +#: assets/models/platform.py:74 assets/serializers/asset/common.py:63 +#: assets/serializers/automations/base.py:40 assets/serializers/platform.py:98 +#: audits/serializers.py:40 ops/models/job.py:39 +#: perms/serializers/user_permission.py:25 terminal/models/applet/applet.py:24 #: terminal/models/component/storage.py:57 #: terminal/models/component/storage.py:142 terminal/serializers/applet.py:33 #: tickets/models/comment.py:26 tickets/models/flow.py:57 #: tickets/models/ticket/apply_application.py:17 -#: tickets/models/ticket/general.py:273 +#: tickets/models/ticket/general.py:273 tickets/serializers/flow.py:53 #: xpack/plugins/change_auth_plan/models/app.py:27 #: xpack/plugins/change_auth_plan/models/app.py:152 msgid "Type" @@ -272,6 +280,11 @@ msgstr "应用程序" msgid "Can match application" msgstr "匹配应用" +#: assets/api/automations/base.py:76 +#: xpack/plugins/change_auth_plan/api/asset.py:94 +msgid "The parameter 'action' must be [{}]" +msgstr "参数 'action' 必须是 [{}]" + #: assets/api/domain.py:52 msgid "Number required" msgstr "需要为数字" @@ -292,11 +305,11 @@ msgstr "删除失败,节点包含资产" msgid "App assets" msgstr "资产管理" -#: assets/automations/base/manager.py:122 +#: assets/automations/base/manager.py:123 msgid "{} disabled" msgstr "{} 已禁用" -#: assets/const/account.py:6 audits/const.py:5 +#: assets/const/account.py:6 audits/const.py:6 audits/const.py:63 #: common/utils/ip/geoip/utils.py:31 common/utils/ip/geoip/utils.py:37 #: common/utils/ip/utils.py:84 msgid "Unknown" @@ -306,19 +319,21 @@ msgstr "未知" msgid "Ok" msgstr "成功" -#: assets/const/account.py:8 audits/models.py:118 common/const/choices.py:19 +#: assets/const/account.py:8 +#: assets/serializers/automations/change_secret.py:105 +#: assets/serializers/automations/change_secret.py:133 audits/const.py:74 +#: common/const/choices.py:19 #: xpack/plugins/change_auth_plan/serializers/asset.py:190 #: xpack/plugins/cloud/const.py:33 msgid "Failed" msgstr "失败" #: assets/const/account.py:12 assets/models/_user.py:35 -#: assets/models/base.py:52 assets/models/domain.py:71 -#: assets/serializers/base.py:15 audits/signal_handlers.py:50 +#: assets/models/domain.py:71 audits/signal_handlers.py:46 #: authentication/confirm/password.py:9 authentication/forms.py:32 #: authentication/templates/authentication/login.html:228 #: settings/serializers/auth/ldap.py:25 settings/serializers/auth/ldap.py:46 -#: users/forms/profile.py:22 users/serializers/user.py:94 +#: users/forms/profile.py:22 users/serializers/user.py:105 #: users/templates/users/_msg_user_created.html:13 #: users/templates/users/user_password_verify.html:18 #: xpack/plugins/change_auth_plan/models/base.py:42 @@ -330,17 +345,16 @@ msgstr "失败" msgid "Password" msgstr "密码" -#: assets/const/account.py:13 assets/models/base.py:53 +#: assets/const/account.py:13 msgid "SSH key" msgstr "SSH 密钥" -#: assets/const/account.py:14 assets/models/base.py:54 -#: authentication/models/access_key.py:31 +#: assets/const/account.py:14 authentication/models/access_key.py:31 msgid "Access key" msgstr "Access key" #: assets/const/account.py:15 assets/models/_user.py:38 -#: assets/models/base.py:55 authentication/models/sso_token.py:13 +#: authentication/models/sso_token.py:13 msgid "Token" msgstr "Token" @@ -368,31 +382,31 @@ msgstr "验证密钥" msgid "Gather accounts" msgstr "收集账号" -#: assets/const/automation.py:22 +#: assets/const/automation.py:38 assets/serializers/account/base.py:26 msgid "Specific" msgstr "指定" -#: assets/const/automation.py:23 ops/const.py:20 +#: assets/const/automation.py:39 ops/const.py:20 #: xpack/plugins/change_auth_plan/models/base.py:28 msgid "All assets use the same random password" msgstr "使用相同的随机密码" -#: assets/const/automation.py:24 ops/const.py:21 +#: assets/const/automation.py:40 ops/const.py:21 #: xpack/plugins/change_auth_plan/models/base.py:29 msgid "All assets use different random password" msgstr "使用不同的随机密码" -#: assets/const/automation.py:28 ops/const.py:13 +#: assets/const/automation.py:44 ops/const.py:13 #: xpack/plugins/change_auth_plan/models/asset.py:30 msgid "Append SSH KEY" msgstr "追加" -#: assets/const/automation.py:29 ops/const.py:14 +#: assets/const/automation.py:45 ops/const.py:14 #: xpack/plugins/change_auth_plan/models/asset.py:31 msgid "Empty and append SSH KEY" msgstr "清空所有并添加" -#: assets/const/automation.py:30 ops/const.py:15 +#: assets/const/automation.py:46 ops/const.py:15 #: xpack/plugins/change_auth_plan/models/asset.py:32 msgid "Replace (The key generated by JumpServer) " msgstr "替换 (由 JumpServer 生成的密钥)" @@ -418,7 +432,8 @@ msgstr "数据库" msgid "Cloud service" msgstr "云服务" -#: assets/const/category.py:15 terminal/models/applet/applet.py:18 +#: assets/const/category.py:15 audits/const.py:61 +#: terminal/models/applet/applet.py:18 msgid "Web" msgstr "Web" @@ -460,7 +475,6 @@ msgid "Admin user" msgstr "特权用户" #: assets/models/_user.py:36 assets/models/domain.py:72 -#: assets/serializers/base.py:19 #: xpack/plugins/change_auth_plan/models/asset.py:54 #: xpack/plugins/change_auth_plan/models/asset.py:131 #: xpack/plugins/change_auth_plan/models/asset.py:207 @@ -474,11 +488,12 @@ msgstr "SSH 密钥" msgid "SSH public key" msgstr "SSH 公钥" -#: assets/models/_user.py:41 assets/models/automations/base.py:96 +#: assets/models/_user.py:41 assets/models/automations/base.py:92 #: assets/models/domain.py:26 assets/models/gathered_user.py:19 #: assets/models/group.py:22 common/db/models.py:76 common/mixins/models.py:50 -#: ops/models/base.py:53 orgs/models.py:73 perms/models/asset_permission.py:82 -#: users/models/group.py:18 users/models/user.py:927 +#: ops/models/base.py:54 ops/models/job.py:62 orgs/models.py:73 +#: perms/models/asset_permission.py:75 users/models/group.py:18 +#: users/models/user.py:927 msgid "Date created" msgstr "创建日期" @@ -487,10 +502,10 @@ msgstr "创建日期" msgid "Date updated" msgstr "更新日期" -#: assets/models/_user.py:43 assets/models/base.py:66 +#: assets/models/_user.py:43 assets/models/base.py:59 #: assets/models/cmd_filter.py:44 assets/models/cmd_filter.py:91 #: assets/models/group.py:21 common/db/models.py:74 common/mixins/models.py:49 -#: orgs/models.py:71 perms/models/asset_permission.py:81 +#: orgs/models.py:71 perms/models/asset_permission.py:74 #: users/models/user.py:710 users/serializers/group.py:33 #: xpack/plugins/change_auth_plan/models/base.py:48 msgid "Created by" @@ -501,7 +516,7 @@ msgid "Username same with user" msgstr "用户名与用户相同" #: assets/models/_user.py:48 assets/models/domain.py:67 -#: authentication/models/connection_token.py:29 +#: authentication/models/connection_token.py:29 perms/models/perm_token.py:16 #: terminal/models/applet/applet.py:26 terminal/serializers/session.py:18 #: terminal/serializers/session.py:32 terminal/serializers/storage.py:68 msgid "Protocol" @@ -515,7 +530,7 @@ msgstr "自动推送" msgid "Sudo" msgstr "Sudo" -#: assets/models/_user.py:51 +#: assets/models/_user.py:51 ops/models/adhoc.py:20 ops/models/job.py:29 msgid "Shell" msgstr "Shell" @@ -543,7 +558,7 @@ msgstr "用户切换" msgid "Switch from" msgstr "切换自" -#: assets/models/_user.py:65 audits/models.py:40 +#: assets/models/_user.py:65 audits/models.py:34 #: terminal/backends/command/models.py:22 #: terminal/backends/command/serializers.py:36 #: xpack/plugins/change_auth_plan/models/app.py:35 @@ -555,43 +570,60 @@ msgstr "系统用户" msgid "Can match system user" msgstr "可以匹配系统用户" -#: assets/models/account.py:53 +#: assets/models/account.py:45 common/db/fields.py:222 +#: settings/serializers/terminal.py:12 +msgid "All" +msgstr "全部" + +#: assets/models/account.py:46 +#, fuzzy +#| msgid "Manually input" +msgid "Manual input" +msgstr "手动输入" + +#: assets/models/account.py:47 +#, fuzzy +#| msgid "Dynamic code" +msgid "Dynamic user" +msgstr "动态码" + +#: assets/models/account.py:55 msgid "Su from" msgstr "切换自" -#: assets/models/account.py:55 settings/serializers/auth/cas.py:18 +#: assets/models/account.py:57 settings/serializers/auth/cas.py:18 #: terminal/models/applet/applet.py:22 msgid "Version" msgstr "版本" -#: assets/models/account.py:65 +#: assets/models/account.py:67 msgid "Can view asset account secret" msgstr "可以查看资产账号密码" -#: assets/models/account.py:66 +#: assets/models/account.py:68 msgid "Can change asset account secret" msgstr "可以更改资产账号密码" -#: assets/models/account.py:67 +#: assets/models/account.py:69 msgid "Can view asset history account" msgstr "可以查看资产历史账号" -#: assets/models/account.py:68 +#: assets/models/account.py:70 msgid "Can view asset history account secret" msgstr "可以查看资产历史账号密码" -#: assets/models/account.py:91 assets/serializers/account/account.py:13 +#: assets/models/account.py:93 assets/serializers/account/account.py:15 msgid "Account template" msgstr "账号模版" #: assets/models/asset/common.py:82 assets/models/domain.py:66 -#: assets/models/platform.py:23 settings/serializers/auth/radius.py:15 +#: assets/models/platform.py:22 settings/serializers/auth/radius.py:15 #: settings/serializers/auth/sms.py:57 #: xpack/plugins/cloud/serializers/account_attrs.py:73 msgid "Port" msgstr "端口" -#: assets/models/asset/common.py:93 assets/models/platform.py:104 +#: assets/models/asset/common.py:93 assets/models/platform.py:110 #: assets/serializers/asset/common.py:65 #: perms/serializers/user_permission.py:21 #: xpack/plugins/cloud/serializers/account_attrs.py:172 @@ -603,17 +635,19 @@ msgstr "资产平台" msgid "Domain" msgstr "网域" -#: assets/models/asset/common.py:97 assets/models/automations/base.py:19 -#: assets/serializers/asset/common.py:66 perms/models/asset_permission.py:67 +#: assets/models/asset/common.py:97 assets/models/automations/base.py:18 +#: assets/serializers/asset/common.py:66 +#: assets/serializers/automations/base.py:21 +#: perms/models/asset_permission.py:62 #: xpack/plugins/change_auth_plan/models/asset.py:44 #: xpack/plugins/gathered_user/models.py:24 msgid "Nodes" msgstr "节点" -#: assets/models/asset/common.py:98 assets/models/automations/base.py:25 -#: assets/models/base.py:64 assets/models/cmd_filter.py:39 +#: assets/models/asset/common.py:98 assets/models/automations/base.py:21 +#: assets/models/base.py:57 assets/models/cmd_filter.py:39 #: assets/models/domain.py:70 assets/models/label.py:21 -#: terminal/models/applet/applet.py:25 users/serializers/user.py:147 +#: terminal/models/applet/applet.py:25 users/serializers/user.py:202 msgid "Is active" msgstr "激活" @@ -647,8 +681,8 @@ msgstr "添加资产到节点" msgid "Move asset to node" msgstr "移动资产到节点" -#: assets/models/asset/web.py:9 audits/models.py:111 -#: terminal/serializers/applet_host.py:24 +#: assets/models/asset/web.py:9 audits/const.py:67 +#: terminal/serializers/applet_host.py:26 msgid "Disabled" msgstr "禁用" @@ -664,83 +698,97 @@ msgstr "" msgid "Autofill" msgstr "自动填充" -#: assets/models/asset/web.py:14 assets/serializers/platform.py:29 +#: assets/models/asset/web.py:14 assets/serializers/platform.py:30 msgid "Username selector" msgstr "用户名选择器" -#: assets/models/asset/web.py:15 assets/serializers/platform.py:30 +#: assets/models/asset/web.py:15 assets/serializers/platform.py:33 msgid "Password selector" msgstr "密码选择器" -#: assets/models/asset/web.py:16 assets/serializers/platform.py:31 +#: assets/models/asset/web.py:16 assets/serializers/platform.py:36 msgid "Submit selector" msgstr "提交按钮选择器" #: assets/models/automations/base.py:17 assets/models/cmd_filter.py:38 -#: assets/serializers/asset/common.py:68 perms/models/asset_permission.py:70 -#: rbac/tree.py:37 +#: assets/serializers/asset/common.py:69 perms/models/asset_permission.py:65 +#: perms/serializers/permission.py:32 rbac/tree.py:37 msgid "Accounts" msgstr "账号管理" -#: assets/models/automations/base.py:22 assets/serializers/domain.py:29 -#: ops/models/base.py:17 +#: assets/models/automations/base.py:19 +#: assets/serializers/automations/base.py:20 assets/serializers/domain.py:29 +#: ops/models/base.py:17 ops/models/job.py:41 #: terminal/templates/terminal/_msg_command_execute_alert.html:16 #: xpack/plugins/change_auth_plan/models/asset.py:40 msgid "Assets" msgstr "资产" -#: assets/models/automations/base.py:86 assets/models/automations/base.py:93 +#: assets/models/automations/base.py:82 assets/models/automations/base.py:89 msgid "Automation task" msgstr "自动化任务" -#: assets/models/automations/base.py:97 assets/models/backup.py:77 -#: audits/models.py:44 ops/models/base.py:54 -#: perms/models/asset_permission.py:76 terminal/models/applet/host.py:102 +#: assets/models/automations/base.py:91 audits/models.py:115 +#: audits/serializers.py:41 ops/models/base.py:49 ops/models/job.py:57 +#: terminal/models/applet/applet.py:60 terminal/models/applet/host.py:104 +#: terminal/models/component/status.py:27 terminal/serializers/applet.py:22 +#: tickets/models/ticket/general.py:281 xpack/plugins/cloud/models.py:171 +#: xpack/plugins/cloud/models.py:223 +msgid "Status" +msgstr "状态" + +#: assets/models/automations/base.py:93 assets/models/backup.py:76 +#: audits/models.py:40 ops/models/base.py:55 ops/models/job.py:63 +#: perms/models/asset_permission.py:69 terminal/models/applet/host.py:105 #: terminal/models/session/session.py:43 #: tickets/models/ticket/apply_application.py:28 -#: tickets/models/ticket/apply_asset.py:21 +#: tickets/models/ticket/apply_asset.py:18 #: xpack/plugins/change_auth_plan/models/base.py:108 #: xpack/plugins/change_auth_plan/models/base.py:199 #: xpack/plugins/gathered_user/models.py:71 msgid "Date start" msgstr "开始日期" -#: assets/models/automations/base.py:98 -#: assets/models/automations/change_secret.py:58 ops/models/base.py:55 -#: terminal/models/applet/host.py:103 +#: assets/models/automations/base.py:94 +#: assets/models/automations/change_secret.py:59 ops/models/base.py:56 +#: ops/models/job.py:64 terminal/models/applet/host.py:106 msgid "Date finished" msgstr "结束日期" -#: assets/models/automations/base.py:100 +#: assets/models/automations/base.py:96 +#: assets/serializers/automations/base.py:39 msgid "Automation snapshot" msgstr "自动化快照" -#: assets/models/automations/base.py:104 assets/models/backup.py:88 -#: assets/serializers/account/backup.py:36 +#: assets/models/automations/base.py:100 assets/models/backup.py:87 +#: assets/serializers/account/backup.py:37 +#: assets/serializers/automations/base.py:41 #: xpack/plugins/change_auth_plan/models/base.py:121 #: xpack/plugins/change_auth_plan/serializers/base.py:78 msgid "Trigger mode" msgstr "触发模式" -#: assets/models/automations/base.py:108 +#: assets/models/automations/base.py:104 +#: assets/serializers/automations/change_secret.py:90 msgid "Automation task execution" msgstr "自动化任务执行" -#: assets/models/automations/change_secret.py:15 assets/models/base.py:60 +#: assets/models/automations/change_secret.py:15 assets/models/base.py:53 +#: assets/serializers/account/account.py:95 assets/serializers/base.py:13 msgid "Secret type" msgstr "密文类型" #: assets/models/automations/change_secret.py:19 +#: assets/serializers/automations/change_secret.py:25 msgid "Secret strategy" msgstr "密钥策略" #: assets/models/automations/change_secret.py:21 -#: assets/models/automations/change_secret.py:56 assets/models/base.py:62 -#: assets/serializers/account/base.py:17 -#: authentication/models/connection_token.py:34 +#: assets/models/automations/change_secret.py:57 assets/models/base.py:55 +#: assets/serializers/base.py:16 authentication/models/connection_token.py:34 #: authentication/models/temp_token.py:10 #: authentication/templates/authentication/_access_key_modal.html:31 -#: settings/serializers/auth/radius.py:17 +#: perms/models/perm_token.py:15 settings/serializers/auth/radius.py:17 msgid "Secret" msgstr "密钥" @@ -753,8 +801,9 @@ msgstr "密码规则" msgid "SSH key change strategy" msgstr "SSH 密钥策略" -#: assets/models/automations/change_secret.py:27 assets/models/backup.py:28 -#: assets/serializers/account/backup.py:28 +#: assets/models/automations/change_secret.py:27 assets/models/backup.py:27 +#: assets/serializers/account/backup.py:30 +#: assets/serializers/automations/change_secret.py:40 #: xpack/plugins/change_auth_plan/models/app.py:40 #: xpack/plugins/change_auth_plan/models/asset.py:63 #: xpack/plugins/change_auth_plan/serializers/base.py:45 @@ -765,19 +814,19 @@ msgstr "收件人" msgid "Change secret automation" msgstr "自动化改密" -#: assets/models/automations/change_secret.py:55 +#: assets/models/automations/change_secret.py:56 msgid "Old secret" msgstr "原来密码" -#: assets/models/automations/change_secret.py:57 +#: assets/models/automations/change_secret.py:58 msgid "Date started" msgstr "开始日期" -#: assets/models/automations/change_secret.py:60 common/const/choices.py:20 +#: assets/models/automations/change_secret.py:61 common/const/choices.py:20 msgid "Error" msgstr "错误" -#: assets/models/automations/change_secret.py:63 +#: assets/models/automations/change_secret.py:64 msgid "Change secret record" msgstr "改密记录" @@ -786,10 +835,9 @@ msgid "Discovery account automation" msgstr "自动化账号发现" #: assets/models/automations/gather_accounts.py:15 -#, fuzzy -#| msgid "Gather asset facts" +#: assets/tasks/gather_accounts.py:28 msgid "Gather asset accounts" -msgstr "收集资产信息" +msgstr "收集资产账号" #: assets/models/automations/gather_facts.py:15 msgid "Gather asset facts" @@ -813,24 +861,24 @@ msgstr "服务账号" msgid "Verify asset account" msgstr "验证密钥" -#: assets/models/backup.py:38 assets/models/backup.py:96 +#: assets/models/backup.py:37 assets/models/backup.py:95 msgid "Account backup plan" msgstr "账号备份计划" -#: assets/models/backup.py:80 +#: assets/models/backup.py:79 #: authentication/templates/authentication/_msg_oauth_bind.html:11 -#: notifications/notifications.py:187 +#: notifications/notifications.py:186 #: xpack/plugins/change_auth_plan/models/base.py:111 #: xpack/plugins/change_auth_plan/models/base.py:200 #: xpack/plugins/gathered_user/models.py:74 msgid "Time" msgstr "时间" -#: assets/models/backup.py:84 +#: assets/models/backup.py:83 msgid "Account backup snapshot" msgstr "账号备份快照" -#: assets/models/backup.py:91 audits/models.py:127 +#: assets/models/backup.py:90 audits/models.py:110 #: terminal/models/session/sharing.py:108 #: xpack/plugins/change_auth_plan/models/base.py:197 #: xpack/plugins/change_auth_plan/serializers/asset.py:171 @@ -838,29 +886,32 @@ msgstr "账号备份快照" msgid "Reason" msgstr "原因" -#: assets/models/backup.py:93 terminal/serializers/session.py:36 +#: assets/models/backup.py:92 +#: assets/serializers/automations/change_secret.py:86 +#: assets/serializers/automations/change_secret.py:111 +#: terminal/serializers/session.py:36 #: xpack/plugins/change_auth_plan/models/base.py:198 #: xpack/plugins/change_auth_plan/serializers/asset.py:173 msgid "Is success" msgstr "是否成功" -#: assets/models/backup.py:100 +#: assets/models/backup.py:99 msgid "Account backup execution" msgstr "账号备份执行" -#: assets/models/base.py:29 assets/serializers/domain.py:42 +#: assets/models/base.py:28 assets/serializers/domain.py:42 msgid "Connectivity" msgstr "可连接性" -#: assets/models/base.py:31 authentication/models/temp_token.py:12 +#: assets/models/base.py:30 authentication/models/temp_token.py:12 msgid "Date verified" msgstr "校验日期" -#: assets/models/base.py:63 +#: assets/models/base.py:56 msgid "Privileged" msgstr "特权账号" -#: assets/models/cmd_filter.py:32 perms/models/asset_permission.py:61 +#: assets/models/cmd_filter.py:32 perms/models/asset_permission.py:56 #: users/models/group.py:31 users/models/user.py:671 msgid "User group" msgstr "用户组" @@ -930,7 +981,7 @@ msgstr "测试网关" msgid "Unable to connect to port {port} on {address}" msgstr "无法连接到 {address} 上的端口 {port}" -#: assets/models/domain.py:145 authentication/middleware.py:75 +#: assets/models/domain.py:145 authentication/middleware.py:76 #: xpack/plugins/cloud/providers/fc.py:48 msgid "Authentication failed" msgstr "认证失败" @@ -959,7 +1010,7 @@ msgstr "收集用户" msgid "Asset group" msgstr "资产组" -#: assets/models/group.py:34 assets/models/platform.py:20 +#: assets/models/group.py:34 assets/models/platform.py:19 #: xpack/plugins/cloud/providers/nutanix.py:30 msgid "Default" msgstr "默认" @@ -992,7 +1043,7 @@ msgstr "新节点" msgid "empty" msgstr "空" -#: assets/models/node.py:552 perms/models/asset_permission.py:190 +#: assets/models/node.py:552 perms/models/perm_node.py:21 msgid "Key" msgstr "键" @@ -1000,7 +1051,7 @@ msgstr "键" msgid "Full value" msgstr "全称" -#: assets/models/node.py:557 perms/models/asset_permission.py:191 +#: assets/models/node.py:557 perms/models/perm_node.py:22 msgid "Parent key" msgstr "ssh私钥" @@ -1013,48 +1064,48 @@ msgstr "节点" msgid "Can match node" msgstr "可以匹配节点" -#: assets/models/platform.py:21 +#: assets/models/platform.py:20 msgid "Required" msgstr "必需的" -#: assets/models/platform.py:24 users/templates/users/reset_password.html:29 +#: assets/models/platform.py:23 users/templates/users/reset_password.html:29 msgid "Setting" msgstr "设置" -#: assets/models/platform.py:43 audits/models.py:112 settings/models.py:37 -#: terminal/serializers/applet_host.py:25 +#: assets/models/platform.py:42 audits/const.py:68 settings/models.py:37 +#: terminal/serializers/applet_host.py:27 msgid "Enabled" msgstr "启用" -#: assets/models/platform.py:44 +#: assets/models/platform.py:43 msgid "Ansible config" msgstr "Ansible 配置" -#: assets/models/platform.py:45 +#: assets/models/platform.py:44 msgid "Ping enabled" msgstr "探测资产" -#: assets/models/platform.py:46 +#: assets/models/platform.py:45 msgid "Ping method" msgstr "探测方式" -#: assets/models/platform.py:47 assets/models/platform.py:55 +#: assets/models/platform.py:46 assets/models/platform.py:56 msgid "Gather facts enabled" msgstr "收集资产信息" -#: assets/models/platform.py:48 assets/models/platform.py:56 +#: assets/models/platform.py:47 assets/models/platform.py:58 msgid "Gather facts method" msgstr "收集资产信息方式" -#: assets/models/platform.py:49 +#: assets/models/platform.py:48 msgid "Push account enabled" msgstr "推送账号" -#: assets/models/platform.py:50 +#: assets/models/platform.py:49 msgid "Push account method" msgstr "推送方式" -#: assets/models/platform.py:51 +#: assets/models/platform.py:50 msgid "Change password enabled" msgstr "更改密码" @@ -1066,39 +1117,39 @@ msgstr "改密方式" msgid "Verify account enabled" msgstr "校验账号" -#: assets/models/platform.py:54 +#: assets/models/platform.py:55 msgid "Verify account method" msgstr "验证z" -#: assets/models/platform.py:71 tickets/models/ticket/general.py:298 +#: assets/models/platform.py:75 tickets/models/ticket/general.py:298 msgid "Meta" msgstr "元数据" -#: assets/models/platform.py:72 +#: assets/models/platform.py:76 msgid "Internal" msgstr "内部的" -#: assets/models/platform.py:75 +#: assets/models/platform.py:80 assets/serializers/platform.py:96 msgid "Charset" msgstr "编码" -#: assets/models/platform.py:76 +#: assets/models/platform.py:82 msgid "Domain enabled" msgstr "支持网域" -#: assets/models/platform.py:77 +#: assets/models/platform.py:83 msgid "Protocols enabled" msgstr "协议支持" -#: assets/models/platform.py:79 +#: assets/models/platform.py:85 msgid "Su enabled" msgstr "账号切换" -#: assets/models/platform.py:80 +#: assets/models/platform.py:86 msgid "SU method" msgstr "切换方式" -#: assets/models/platform.py:82 assets/serializers/platform.py:78 +#: assets/models/platform.py:88 assets/serializers/platform.py:103 msgid "Automation" msgstr "自动化" @@ -1117,7 +1168,7 @@ msgid "" "for details" msgstr "{} - 账号备份任务已完成, 详情见附件" -#: assets/notifications.py:19 +#: assets/notifications.py:20 msgid "" "{} - The account backup passage task has been completed: the encryption " "password has not been set - please go to personal information -> file " @@ -1126,44 +1177,53 @@ msgstr "" "{} - 账号备份任务已完成: 未设置加密密码 - 请前往个人信息 -> 文件加密密码中设" "置加密密码" -#: assets/serializers/account/account.py:16 +#: assets/notifications.py:31 xpack/plugins/change_auth_plan/notifications.py:8 +msgid "Notification of implementation result of encryption change plan" +msgstr "改密计划任务结果通知" + +#: assets/notifications.py:41 +#: xpack/plugins/change_auth_plan/notifications.py:18 +msgid "" +"{} - The encryption change task has been completed. See the attachment for " +"details" +msgstr "{} - 改密任务已完成, 详情见附件" + +#: assets/notifications.py:42 +#: xpack/plugins/change_auth_plan/notifications.py:19 +msgid "" +"{} - The encryption change task has been completed: the encryption password " +"has not been set - please go to personal information -> file encryption " +"password to set the encryption password" +msgstr "" +"{} - 改密任务已完成: 未设置加密密码 - 请前往个人信息 -> 文件加密密码中设置加" +"密密码" + +#: assets/serializers/account/account.py:18 msgid "Push now" msgstr "立刻推送" -#: assets/serializers/account/account.py:18 +#: assets/serializers/account/account.py:20 msgid "Has secret" msgstr "存在密码" -#: assets/serializers/account/account.py:25 +#: assets/serializers/account/account.py:27 msgid "Account template not found" msgstr "账号模版没有发现" -#: assets/serializers/account/backup.py:27 ops/mixin.py:102 +#: assets/serializers/account/backup.py:29 +#: assets/serializers/automations/base.py:34 ops/mixin.py:102 #: settings/serializers/auth/ldap.py:65 #: xpack/plugins/change_auth_plan/serializers/base.py:43 msgid "Periodic perform" msgstr "定时执行" -#: assets/serializers/account/backup.py:29 +#: assets/serializers/account/backup.py:31 +#: assets/serializers/automations/change_secret.py:41 #: xpack/plugins/change_auth_plan/serializers/base.py:46 msgid "Currently only mail sending is supported" msgstr "当前只支持邮件发送" -#: assets/serializers/account/base.py:39 assets/serializers/base.py:34 -msgid "private key invalid or passphrase error" -msgstr "密钥不合法或密钥密码错误" - -#: assets/serializers/account/template.py:16 common/drf/fields.py:69 -#: tickets/serializers/ticket/common.py:58 -#: xpack/plugins/change_auth_plan/serializers/asset.py:64 -#: xpack/plugins/change_auth_plan/serializers/asset.py:67 -#: xpack/plugins/change_auth_plan/serializers/asset.py:70 -#: xpack/plugins/change_auth_plan/serializers/asset.py:101 -#: xpack/plugins/cloud/serializers/account_attrs.py:56 -msgid "This field is required." -msgstr "该字段是必填项。" - -#: assets/serializers/asset/common.py:69 assets/serializers/platform.py:77 +#: assets/serializers/asset/common.py:68 assets/serializers/platform.py:101 #: xpack/plugins/cloud/models.py:109 msgid "Protocols" msgstr "协议组" @@ -1244,7 +1304,37 @@ msgstr "资产编号" msgid "IP/Host" msgstr "IP/主机名" -#: assets/serializers/base.py:24 +#: assets/serializers/automations/change_secret.py:28 +#: xpack/plugins/change_auth_plan/models/asset.py:50 +#: xpack/plugins/change_auth_plan/serializers/asset.py:33 +msgid "SSH Key strategy" +msgstr "SSH 密钥策略" + +#: assets/serializers/automations/change_secret.py:57 +#: xpack/plugins/change_auth_plan/serializers/base.py:58 +msgid "* Please enter the correct password length" +msgstr "* 请输入正确的密码长度" + +#: assets/serializers/automations/change_secret.py:60 +#: xpack/plugins/change_auth_plan/serializers/base.py:61 +msgid "* Password length range 6-30 bits" +msgstr "* 密码长度范围 6-30 位" + +#: assets/serializers/automations/change_secret.py:104 +#: assets/serializers/automations/change_secret.py:132 audits/const.py:73 +#: audits/models.py:39 common/const/choices.py:18 +#: terminal/models/session/sharing.py:104 tickets/views/approve.py:114 +#: xpack/plugins/change_auth_plan/serializers/asset.py:189 +msgid "Success" +msgstr "成功" + +#: assets/serializers/automations/gather_accounts.py:23 +#, fuzzy +#| msgid "Executed times" +msgid "Executed amount" +msgstr "执行次数" + +#: assets/serializers/base.py:21 msgid "Key password" msgstr "密钥密码" @@ -1257,7 +1347,6 @@ msgid "Types" msgstr "类型" #: assets/serializers/domain.py:14 assets/serializers/label.py:12 -#: perms/serializers/permission.py:83 msgid "Assets amount" msgstr "资产数量" @@ -1265,15 +1354,10 @@ msgstr "资产数量" msgid "Gateways count" msgstr "网关数量" -#: assets/serializers/label.py:13 assets/serializers/mixin.py:7 +#: assets/serializers/label.py:13 msgid "Category display" msgstr "类别名称" -#: assets/serializers/mixin.py:10 audits/serializers.py:27 -#: tickets/serializers/flow.py:49 tickets/serializers/ticket/ticket.py:17 -msgid "Type display" -msgstr "类型名称" - #: assets/serializers/node.py:17 msgid "value" msgstr "值" @@ -1298,56 +1382,90 @@ msgstr "SFTP 根路径" msgid "Auto fill" msgstr "自动填充" -#: assets/serializers/platform.py:64 +#: assets/serializers/platform.py:78 msgid "Primary" msgstr "主要的" -#: assets/serializers/utils.py:11 +#: assets/serializers/utils.py:15 msgid "Password can not contains `{{` " msgstr "密码不能包含 `{{` 字符" -#: assets/serializers/utils.py:14 +#: assets/serializers/utils.py:18 msgid "Password can not contains `'` " msgstr "密码不能包含 `'` 字符" -#: assets/serializers/utils.py:16 +#: assets/serializers/utils.py:20 msgid "Password can not contains `\"` " msgstr "密码不能包含 `\"` 字符" -#: assets/tasks/gather_facts.py:25 +#: assets/serializers/utils.py:26 +msgid "private key invalid or passphrase error" +msgstr "密钥不合法或密钥密码错误" + +#: assets/tasks/automation.py:11 +msgid "Execute automation" +msgstr "执行自动化" + +#: assets/tasks/backup.py:13 +msgid "Execute account backup plan" +msgstr "执行账号备份计划" + +#: assets/tasks/gather_accounts.py:31 +msgid "Gather assets accounts" +msgstr "收集资产账号" + +#: assets/tasks/gather_facts.py:26 msgid "Update some assets hardware info. " msgstr "更新资产硬件信息. " -#: assets/tasks/gather_facts.py:48 +#: assets/tasks/gather_facts.py:44 +msgid "Manually update the hardware information of assets" +msgstr "手动更新节点资产硬件信息: " + +#: assets/tasks/gather_facts.py:49 msgid "Update assets hardware info: " msgstr "更新资产硬件信息: " -#: assets/tasks/gather_facts.py:58 -msgid "Update node asset hardware information: " -msgstr "更新节点资产硬件信息: " +#: assets/tasks/gather_facts.py:53 +msgid "Manually update the hardware information of assets under a node" +msgstr "手动更新节点下的资产硬件信息" -#: assets/tasks/nodes_amount.py:29 +#: assets/tasks/gather_facts.py:59 +msgid "Update node asset hardware information" +msgstr "更新节点资产硬件信息" + +#: assets/tasks/nodes_amount.py:16 +msgid "Check the amount of assets under the node" +msgstr "校准节点下的资产数量" + +#: assets/tasks/nodes_amount.py:28 msgid "" "The task of self-checking is already running and cannot be started repeatedly" msgstr "自检程序已经在运行,不能重复启动" -#: assets/tasks/ping.py:20 assets/tasks/ping.py:38 -#, fuzzy -#| msgid "Test assets connectivity. " +#: assets/tasks/nodes_amount.py:34 +msgid "Periodic check the amount of assets under the node" +msgstr "定时校准节点下的资产数量" + +#: assets/tasks/ping.py:21 assets/tasks/ping.py:39 msgid "Test assets connectivity " msgstr "测试资产可连接性. " -#: assets/tasks/ping.py:48 -#, fuzzy -#| msgid "Test if the assets under the node are connectable: " +#: assets/tasks/ping.py:33 +msgid "Manually test the connectivity of a asset" +msgstr "手动测试资产连接性" + +#: assets/tasks/ping.py:43 +msgid "Manually test the connectivity of assets under a node" +msgstr "手动测试节点下的资产可连接性" + +#: assets/tasks/ping.py:49 msgid "Test if the assets under the node are connectable " msgstr "测试节点下资产是否可连接: " -#: assets/tasks/push_account.py:36 -#, fuzzy -#| msgid "Push account method" +#: assets/tasks/push_account.py:17 assets/tasks/push_account.py:31 msgid "Push accounts to assets" -msgstr "推送方式" +msgstr "推送账号到资产" #: assets/tasks/utils.py:17 msgid "Asset has been disabled, skipped: {}" @@ -1365,9 +1483,11 @@ msgstr "为了安全,禁止推送用户 {}" msgid "No assets matched, stop task" msgstr "没有匹配到资产,结束任务" -#: assets/tasks/verify_account.py:36 -#, fuzzy -#| msgid "Test account connectivity: " +#: assets/tasks/verify_account.py:30 +msgid "Verify asset account availability" +msgstr "验证资产账号的有效性" + +#: assets/tasks/verify_account.py:37 msgid "Verify accounts connectivity" msgstr "测试账号可连接性: " @@ -1375,278 +1495,257 @@ msgstr "测试账号可连接性: " msgid "Audits" msgstr "日志审计" -#: audits/models.py:27 audits/models.py:59 +#: audits/const.py:44 +msgid "Mkdir" +msgstr "创建目录" + +#: audits/const.py:45 +msgid "Rmdir" +msgstr "删除目录" + +#: audits/const.py:46 audits/const.py:56 #: authentication/templates/authentication/_access_key_modal.html:65 #: rbac/tree.py:226 msgid "Delete" msgstr "删除" -#: audits/models.py:28 +#: audits/const.py:47 perms/const.py:14 msgid "Upload" msgstr "上传文件" -#: audits/models.py:29 -msgid "Download" -msgstr "下载文件" - -#: audits/models.py:30 -msgid "Rmdir" -msgstr "删除目录" - -#: audits/models.py:31 +#: audits/const.py:48 msgid "Rename" msgstr "重命名" -#: audits/models.py:32 -msgid "Mkdir" -msgstr "创建目录" - -#: audits/models.py:33 +#: audits/const.py:49 msgid "Symlink" msgstr "建立软链接" -#: audits/models.py:38 audits/models.py:66 audits/models.py:89 -#: terminal/models/session/session.py:37 terminal/models/session/sharing.py:96 -msgid "Remote addr" -msgstr "远端地址" +#: audits/const.py:50 perms/const.py:15 +msgid "Download" +msgstr "下载文件" -#: audits/models.py:41 -msgid "Operate" -msgstr "操作" +#: audits/const.py:54 rbac/tree.py:224 +msgid "View" +msgstr "查看" -#: audits/models.py:42 -msgid "Filename" -msgstr "文件名" +#: audits/const.py:55 rbac/tree.py:225 templates/_csv_import_export.html:18 +#: templates/_csv_update_modal.html:6 +msgid "Update" +msgstr "更新" -#: audits/models.py:43 audits/models.py:117 common/const/choices.py:18 -#: terminal/models/session/sharing.py:104 tickets/views/approve.py:114 -#: xpack/plugins/change_auth_plan/serializers/asset.py:189 -msgid "Success" -msgstr "成功" - -#: audits/models.py:47 -msgid "File transfer log" -msgstr "文件管理" - -#: audits/models.py:56 +#: audits/const.py:57 #: authentication/templates/authentication/_access_key_modal.html:22 #: rbac/tree.py:223 msgid "Create" msgstr "创建" -#: audits/models.py:57 rbac/tree.py:224 -msgid "View" -msgstr "查看" +#: audits/const.py:62 terminal/models/applet/host.py:24 +#: terminal/models/component/terminal.py:159 +msgid "Terminal" +msgstr "终端" -#: audits/models.py:58 rbac/tree.py:225 templates/_csv_import_export.html:18 -#: templates/_csv_update_modal.html:6 -msgid "Update" -msgstr "更新" +#: audits/const.py:69 +msgid "-" +msgstr "-" -#: audits/models.py:64 audits/serializers.py:61 +#: audits/models.py:31 audits/models.py:55 audits/models.py:82 +#: terminal/models/session/session.py:37 terminal/models/session/sharing.py:96 +msgid "Remote addr" +msgstr "远端地址" + +#: audits/models.py:36 audits/serializers.py:19 +msgid "Operate" +msgstr "操作" + +#: audits/models.py:38 +msgid "Filename" +msgstr "文件名" + +#: audits/models.py:43 +msgid "File transfer log" +msgstr "文件管理" + +#: audits/models.py:52 audits/serializers.py:85 msgid "Resource Type" msgstr "资源类型" -#: audits/models.py:65 +#: audits/models.py:53 msgid "Resource" msgstr "资源" -#: audits/models.py:67 audits/models.py:90 +#: audits/models.py:58 audits/models.py:84 #: terminal/backends/command/serializers.py:40 msgid "Datetime" msgstr "日期" -#: audits/models.py:82 +#: audits/models.py:74 msgid "Operate log" msgstr "操作日志" -#: audits/models.py:88 +#: audits/models.py:80 msgid "Change by" msgstr "修改者" -#: audits/models.py:96 +#: audits/models.py:90 msgid "Password change log" msgstr "改密日志" -#: audits/models.py:113 -msgid "-" -msgstr "-" - -#: audits/models.py:122 +#: audits/models.py:97 msgid "Login type" msgstr "登录方式" -#: audits/models.py:123 tickets/models/ticket/login_confirm.py:10 +#: audits/models.py:99 tickets/models/ticket/login_confirm.py:10 msgid "Login ip" msgstr "登录IP" -#: audits/models.py:124 +#: audits/models.py:101 #: authentication/templates/authentication/_msg_different_city.html:11 #: tickets/models/ticket/login_confirm.py:11 msgid "Login city" msgstr "登录城市" -#: audits/models.py:125 audits/serializers.py:42 +#: audits/models.py:104 audits/serializers.py:62 msgid "User agent" msgstr "用户代理" -#: audits/models.py:126 +#: audits/models.py:107 audits/serializers.py:39 #: authentication/templates/authentication/_mfa_confirm_modal.html:14 #: users/forms/profile.py:65 users/models/user.py:688 #: users/serializers/profile.py:126 msgid "MFA" msgstr "MFA" -#: audits/models.py:128 ops/models/base.py:48 -#: terminal/models/applet/applet.py:60 terminal/models/applet/host.py:101 -#: terminal/models/component/status.py:33 terminal/serializers/applet.py:22 -#: tickets/models/ticket/general.py:281 xpack/plugins/cloud/models.py:171 -#: xpack/plugins/cloud/models.py:223 -msgid "Status" -msgstr "状态" - -#: audits/models.py:129 +#: audits/models.py:117 msgid "Date login" msgstr "登录日期" -#: audits/models.py:130 audits/serializers.py:44 +#: audits/models.py:119 audits/serializers.py:64 msgid "Authentication backend" msgstr "认证方式" -#: audits/models.py:169 +#: audits/models.py:160 msgid "User login log" msgstr "用户登录日志" -#: audits/serializers.py:12 -msgid "Operate display" -msgstr "操作名称" - -#: audits/serializers.py:28 tickets/serializers/ticket/ticket.py:18 -msgid "Status display" -msgstr "状态名称" - -#: audits/serializers.py:29 -msgid "MFA display" -msgstr "MFA名称" - -#: audits/serializers.py:43 +#: audits/serializers.py:63 msgid "Reason display" msgstr "原因描述" -#: audits/signal_handlers.py:49 +#: audits/signal_handlers.py:45 msgid "SSH Key" msgstr "SSH 密钥" -#: audits/signal_handlers.py:51 +#: audits/signal_handlers.py:47 msgid "SSO" msgstr "SSO" -#: audits/signal_handlers.py:52 +#: audits/signal_handlers.py:48 msgid "Auth Token" msgstr "认证令牌" -#: audits/signal_handlers.py:53 authentication/notifications.py:73 +#: audits/signal_handlers.py:49 authentication/notifications.py:73 #: authentication/views/login.py:73 authentication/views/wecom.py:178 #: notifications/backends/__init__.py:11 users/models/user.py:724 msgid "WeCom" msgstr "企业微信" -#: audits/signal_handlers.py:54 authentication/views/feishu.py:144 +#: audits/signal_handlers.py:50 authentication/views/feishu.py:145 #: authentication/views/login.py:85 notifications/backends/__init__.py:14 #: users/models/user.py:726 msgid "FeiShu" msgstr "飞书" -#: audits/signal_handlers.py:55 authentication/views/dingtalk.py:179 +#: audits/signal_handlers.py:51 authentication/views/dingtalk.py:180 #: authentication/views/login.py:79 notifications/backends/__init__.py:12 #: users/models/user.py:725 msgid "DingTalk" msgstr "钉钉" -#: audits/signal_handlers.py:56 authentication/models/temp_token.py:16 +#: audits/signal_handlers.py:52 authentication/models/temp_token.py:16 msgid "Temporary token" msgstr "临时密码" -#: audits/signal_handlers.py:68 +#: audits/signal_handlers.py:64 msgid "User and Group" msgstr "用户与用户组" -#: audits/signal_handlers.py:69 +#: audits/signal_handlers.py:65 #, python-brace-format msgid "{User} JOINED {UserGroup}" msgstr "{User} 加入 {UserGroup}" -#: audits/signal_handlers.py:70 +#: audits/signal_handlers.py:66 #, python-brace-format msgid "{User} LEFT {UserGroup}" msgstr "{User} 离开 {UserGroup}" -#: audits/signal_handlers.py:73 +#: audits/signal_handlers.py:69 msgid "Node and Asset" msgstr "节点与资产" -#: audits/signal_handlers.py:74 +#: audits/signal_handlers.py:70 #, python-brace-format msgid "{Node} ADD {Asset}" msgstr "{Node} 添加 {Asset}" -#: audits/signal_handlers.py:75 +#: audits/signal_handlers.py:71 #, python-brace-format msgid "{Node} REMOVE {Asset}" msgstr "{Node} 移除 {Asset}" -#: audits/signal_handlers.py:78 +#: audits/signal_handlers.py:74 msgid "User asset permissions" msgstr "用户资产授权" -#: audits/signal_handlers.py:79 +#: audits/signal_handlers.py:75 #, python-brace-format msgid "{AssetPermission} ADD {User}" msgstr "{AssetPermission} 添加 {User}" -#: audits/signal_handlers.py:80 +#: audits/signal_handlers.py:76 #, python-brace-format msgid "{AssetPermission} REMOVE {User}" msgstr "{AssetPermission} 移除 {User}" -#: audits/signal_handlers.py:83 +#: audits/signal_handlers.py:79 msgid "User group asset permissions" msgstr "用户组资产授权" -#: audits/signal_handlers.py:84 +#: audits/signal_handlers.py:80 #, python-brace-format msgid "{AssetPermission} ADD {UserGroup}" msgstr "{AssetPermission} 添加 {UserGroup}" -#: audits/signal_handlers.py:85 +#: audits/signal_handlers.py:81 #, python-brace-format msgid "{AssetPermission} REMOVE {UserGroup}" msgstr "{AssetPermission} 移除 {UserGroup}" -#: audits/signal_handlers.py:88 perms/models/asset_permission.py:90 +#: audits/signal_handlers.py:84 perms/models/asset_permission.py:83 msgid "Asset permission" msgstr "资产授权" -#: audits/signal_handlers.py:89 +#: audits/signal_handlers.py:85 #, python-brace-format msgid "{AssetPermission} ADD {Asset}" msgstr "{AssetPermission} 添加 {Asset}" -#: audits/signal_handlers.py:90 +#: audits/signal_handlers.py:86 #, python-brace-format msgid "{AssetPermission} REMOVE {Asset}" msgstr "{AssetPermission} 移除 {Asset}" -#: audits/signal_handlers.py:93 +#: audits/signal_handlers.py:89 msgid "Node permission" msgstr "节点授权" -#: audits/signal_handlers.py:94 +#: audits/signal_handlers.py:90 #, python-brace-format msgid "{AssetPermission} ADD {Node}" msgstr "{AssetPermission} 添加 {Node}" -#: audits/signal_handlers.py:95 +#: audits/signal_handlers.py:91 #, python-brace-format msgid "{AssetPermission} REMOVE {Node}" msgstr "{AssetPermission} 移除 {Node}" @@ -1857,12 +1956,12 @@ msgstr "企业微信已经绑定" msgid "WeCom is not bound" msgstr "没有绑定企业微信" -#: authentication/errors/mfa.py:28 authentication/views/dingtalk.py:242 -#: authentication/views/dingtalk.py:296 +#: authentication/errors/mfa.py:28 authentication/views/dingtalk.py:243 +#: authentication/views/dingtalk.py:297 msgid "DingTalk is not bound" msgstr "钉钉没有绑定" -#: authentication/errors/mfa.py:33 authentication/views/feishu.py:203 +#: authentication/errors/mfa.py:33 authentication/views/feishu.py:204 msgid "FeiShu is not bound" msgstr "没有绑定飞书" @@ -1954,7 +2053,7 @@ msgstr "设置手机号码启用" msgid "Clear phone number to disable" msgstr "清空手机号码禁用" -#: authentication/middleware.py:76 settings/utils/ldap.py:652 +#: authentication/middleware.py:77 settings/utils/ldap.py:652 msgid "Authentication failed (before login check failed): {}" msgstr "认证失败(登录前检查失败): {}" @@ -1976,9 +2075,9 @@ msgid "Asset display" msgstr "资产名称" #: authentication/models/connection_token.py:36 -#: authentication/models/temp_token.py:13 perms/models/asset_permission.py:79 +#: authentication/models/temp_token.py:13 perms/models/asset_permission.py:72 #: tickets/models/ticket/apply_application.py:29 -#: tickets/models/ticket/apply_asset.py:22 users/models/user.py:707 +#: tickets/models/ticket/apply_asset.py:19 users/models/user.py:707 msgid "Date expired" msgstr "失效日期" @@ -2042,17 +2141,17 @@ msgstr "异地登录提醒" msgid "binding reminder" msgstr "绑定提醒" -#: authentication/serializers/connection_token.py:20 +#: authentication/serializers/connection_token.py:19 #: xpack/plugins/cloud/models.py:36 msgid "Validity" msgstr "有效" -#: authentication/serializers/connection_token.py:21 +#: authentication/serializers/connection_token.py:20 msgid "Expired time" msgstr "过期时间" -#: authentication/serializers/token.py:79 perms/serializers/permission.py:60 -#: perms/serializers/permission.py:87 users/serializers/user.py:148 +#: authentication/serializers/token.py:79 perms/serializers/permission.py:30 +#: perms/serializers/permission.py:61 users/serializers/user.py:203 msgid "Is valid" msgstr "账号是否有效" @@ -2139,7 +2238,7 @@ msgstr "代码错误" #: authentication/templates/authentication/_msg_reset_password.html:3 #: authentication/templates/authentication/_msg_rest_password_success.html:2 #: authentication/templates/authentication/_msg_rest_public_key_success.html:2 -#: jumpserver/conf.py:390 ops/tasks.py:147 ops/tasks.py:153 ops/tasks.py:156 +#: jumpserver/conf.py:390 #: perms/templates/perms/_msg_item_permissions_expire.html:3 #: perms/templates/perms/_msg_permed_items_expire.html:3 #: tickets/templates/tickets/approve_check_password.html:33 @@ -2283,73 +2382,73 @@ msgstr "复制成功" msgid "LAN" msgstr "局域网" -#: authentication/views/dingtalk.py:41 +#: authentication/views/dingtalk.py:42 msgid "DingTalk Error, Please contact your system administrator" msgstr "钉钉错误,请联系系统管理员" -#: authentication/views/dingtalk.py:44 +#: authentication/views/dingtalk.py:45 msgid "DingTalk Error" msgstr "钉钉错误" -#: authentication/views/dingtalk.py:56 authentication/views/feishu.py:51 +#: authentication/views/dingtalk.py:57 authentication/views/feishu.py:52 #: authentication/views/wecom.py:56 msgid "" "The system configuration is incorrect. Please contact your administrator" msgstr "企业配置错误,请联系系统管理员" -#: authentication/views/dingtalk.py:80 +#: authentication/views/dingtalk.py:81 msgid "DingTalk is already bound" msgstr "钉钉已经绑定" -#: authentication/views/dingtalk.py:148 authentication/views/wecom.py:148 +#: authentication/views/dingtalk.py:149 authentication/views/wecom.py:148 msgid "Invalid user_id" msgstr "无效的 user_id" -#: authentication/views/dingtalk.py:164 +#: authentication/views/dingtalk.py:165 msgid "DingTalk query user failed" msgstr "钉钉查询用户失败" -#: authentication/views/dingtalk.py:173 +#: authentication/views/dingtalk.py:174 msgid "The DingTalk is already bound to another user" msgstr "该钉钉已经绑定其他用户" -#: authentication/views/dingtalk.py:180 +#: authentication/views/dingtalk.py:181 msgid "Binding DingTalk successfully" msgstr "绑定 钉钉 成功" -#: authentication/views/dingtalk.py:236 authentication/views/dingtalk.py:290 +#: authentication/views/dingtalk.py:237 authentication/views/dingtalk.py:291 msgid "Failed to get user from DingTalk" msgstr "从钉钉获取用户失败" -#: authentication/views/dingtalk.py:243 authentication/views/dingtalk.py:297 +#: authentication/views/dingtalk.py:244 authentication/views/dingtalk.py:298 msgid "Please login with a password and then bind the DingTalk" msgstr "请使用密码登录,然后绑定钉钉" -#: authentication/views/feishu.py:39 +#: authentication/views/feishu.py:40 msgid "FeiShu Error" msgstr "飞书错误" -#: authentication/views/feishu.py:87 +#: authentication/views/feishu.py:88 msgid "FeiShu is already bound" msgstr "飞书已经绑定" -#: authentication/views/feishu.py:129 +#: authentication/views/feishu.py:130 msgid "FeiShu query user failed" msgstr "飞书查询用户失败" -#: authentication/views/feishu.py:138 +#: authentication/views/feishu.py:139 msgid "The FeiShu is already bound to another user" msgstr "该飞书已经绑定其他用户" -#: authentication/views/feishu.py:145 +#: authentication/views/feishu.py:146 msgid "Binding FeiShu successfully" msgstr "绑定 飞书 成功" -#: authentication/views/feishu.py:197 +#: authentication/views/feishu.py:198 msgid "Failed to get user from FeiShu" msgstr "从飞书获取用户失败" -#: authentication/views/feishu.py:204 +#: authentication/views/feishu.py:205 msgid "Please login with a password and then bind the FeiShu" msgstr "请使用密码登录,然后绑定飞书" @@ -2453,31 +2552,31 @@ msgstr "取消" msgid "ugettext_lazy" msgstr "ugettext_lazy" -#: common/db/fields.py:80 +#: common/db/fields.py:93 msgid "Marshal dict data to char field" msgstr "编码 dict 为 char" -#: common/db/fields.py:84 +#: common/db/fields.py:97 msgid "Marshal dict data to text field" msgstr "编码 dict 为 text" -#: common/db/fields.py:96 +#: common/db/fields.py:109 msgid "Marshal list data to char field" msgstr "编码 list 为 char" -#: common/db/fields.py:100 +#: common/db/fields.py:113 msgid "Marshal list data to text field" msgstr "编码 list 为 text" -#: common/db/fields.py:104 +#: common/db/fields.py:117 msgid "Marshal data to char field" msgstr "编码数据为 char" -#: common/db/fields.py:108 +#: common/db/fields.py:121 msgid "Marshal data to text field" msgstr "编码数据为 text" -#: common/db/fields.py:150 +#: common/db/fields.py:163 msgid "Encrypt field using Secret Key" msgstr "加密的字段" @@ -2489,16 +2588,35 @@ msgstr "更新人" msgid "Object" msgstr "对象" -#: common/drf/fields.py:70 +#: common/drf/fields.py:74 tickets/serializers/ticket/common.py:58 +#: xpack/plugins/change_auth_plan/serializers/asset.py:64 +#: xpack/plugins/change_auth_plan/serializers/asset.py:67 +#: xpack/plugins/change_auth_plan/serializers/asset.py:70 +#: xpack/plugins/change_auth_plan/serializers/asset.py:101 +#: xpack/plugins/cloud/serializers/account_attrs.py:56 +msgid "This field is required." +msgstr "该字段是必填项。" + +#: common/drf/fields.py:75 #, python-brace-format msgid "Invalid pk \"{pk_value}\" - object does not exist." msgstr "{pk_value} 对象不存在" -#: common/drf/fields.py:71 +#: common/drf/fields.py:76 #, python-brace-format msgid "Incorrect type. Expected pk value, received {data_type}." msgstr "不正确的类型。期望 pk 值,收到 {data_type} 类型。" +#: common/drf/fields.py:131 +msgid "Invalid data type, should be list" +msgstr "" + +#: common/drf/fields.py:146 +#, fuzzy +#| msgid "Invalid ip" +msgid "Invalid choice: {}" +msgstr "无效IP" + #: common/drf/parsers/base.py:17 msgid "The file content overflowed (The maximum length `{}` bytes)" msgstr "文件内容太大 (最大长度 `{}` 字节)" @@ -2558,15 +2676,15 @@ msgstr "忽略的" msgid "discard time" msgstr "忽略时间" -#: common/mixins/views.py:52 +#: common/mixins/views.py:58 msgid "Export all" msgstr "导出所有" -#: common/mixins/views.py:54 +#: common/mixins/views.py:60 msgid "Export only selected items" msgstr "仅导出选择项" -#: common/mixins/views.py:59 +#: common/mixins/views.py:65 #, python-format msgid "Export filtered: %s" msgstr "导出搜素: %s" @@ -2623,6 +2741,14 @@ msgstr "验证码错误" msgid "Please wait {} seconds before sending" msgstr "请在 {} 秒后发送" +#: common/tasks.py:13 +msgid "Send email" +msgstr "发送邮件" + +#: common/tasks.py:40 +msgid "Send email attachment" +msgstr "发送邮件附件" + #: common/utils/ip/geoip/utils.py:26 msgid "Invalid ip" msgstr "无效IP" @@ -2699,6 +2825,10 @@ msgstr "邮件" msgid "Site message" msgstr "站内信" +#: notifications/notifications.py:46 +msgid "Publish the station message" +msgstr "发布站内信" + #: ops/ansible/inventory.py:75 msgid "No account available" msgstr "没有账号可以使用" @@ -2764,96 +2894,107 @@ msgstr "输入在 {} - {} 范围之间" msgid "Require periodic or regularly perform setting" msgstr "需要周期或定期设置" -#: ops/models/adhoc.py:18 +#: ops/models/adhoc.py:21 ops/models/job.py:30 +#, fuzzy +#| msgid "PowerShell" +msgid "Powershell" +msgstr "PowerShell" + +#: ops/models/adhoc.py:25 msgid "Pattern" msgstr "模式" -#: ops/models/adhoc.py:19 +#: ops/models/adhoc.py:27 ops/models/job.py:37 msgid "Module" msgstr "" -#: ops/models/adhoc.py:20 ops/models/celery.py:45 +#: ops/models/adhoc.py:28 ops/models/celery.py:48 ops/models/job.py:35 #: terminal/models/component/task.py:17 msgid "Args" msgstr "参数" -#: ops/models/adhoc.py:21 ops/models/base.py:20 ops/models/playbook.py:27 -msgid "Last execution" -msgstr "最后执行" - -#: ops/models/adhoc.py:36 -msgid "Adhoc" -msgstr "" - -#: ops/models/adhoc.py:54 -msgid "AdHoc execution" -msgstr "任务执行" - -#: ops/models/base.py:16 ops/models/base.py:52 +#: ops/models/adhoc.py:29 ops/models/base.py:16 ops/models/base.py:53 +#: ops/models/job.py:40 ops/models/job.py:61 #: terminal/models/session/sharing.py:24 msgid "Creator" msgstr "创建者" +#: ops/models/adhoc.py:50 ops/models/job.py:20 +msgid "Adhoc" +msgstr "" + +#: ops/models/adhoc.py:68 +msgid "AdHoc execution" +msgstr "任务执行" + #: ops/models/base.py:19 msgid "Account policy" msgstr "账号策略" -#: ops/models/base.py:21 +#: ops/models/base.py:20 +msgid "Last execution" +msgstr "最后执行" + +#: ops/models/base.py:22 msgid "Date last run" msgstr "最后执行日期" -#: ops/models/base.py:50 xpack/plugins/cloud/models.py:169 +#: ops/models/base.py:51 ops/models/job.py:59 xpack/plugins/cloud/models.py:169 msgid "Result" msgstr "结果" -#: ops/models/base.py:51 +#: ops/models/base.py:52 ops/models/job.py:60 msgid "Summary" msgstr "汇总" -#: ops/models/celery.py:46 terminal/models/component/task.py:18 +#: ops/models/celery.py:49 terminal/models/component/task.py:18 msgid "Kwargs" msgstr "其它参数" -#: ops/models/celery.py:47 tickets/models/comment.py:13 +#: ops/models/celery.py:50 tickets/models/comment.py:13 #: tickets/models/ticket/general.py:41 tickets/models/ticket/general.py:277 msgid "State" msgstr "状态" -#: ops/models/celery.py:48 terminal/models/session/sharing.py:111 +#: ops/models/celery.py:51 terminal/models/session/sharing.py:111 #: tickets/const.py:25 xpack/plugins/change_auth_plan/models/base.py:188 msgid "Finished" msgstr "结束" -#: ops/models/playbook.py:10 -msgid "Path" -msgstr "路径" - -#: ops/models/playbook.py:18 -msgid "Playbook template" -msgstr "Playbook 模版" - -#: ops/models/playbook.py:23 +#: ops/models/job.py:21 ops/models/job.py:38 msgid "Playbook" msgstr "Playbook" -#: ops/models/playbook.py:24 +#: ops/models/job.py:24 +#, fuzzy +#| msgid "Privileged" +msgid "Privileged Only" +msgstr "特权账号" + +#: ops/models/job.py:25 +#, fuzzy +#| msgid "Privileged" +msgid "Privileged First" +msgstr "特权账号" + +#: ops/models/job.py:26 +msgid "Skip" +msgstr "" + +#: ops/models/job.py:42 +msgid "Runas" +msgstr "" + +#: ops/models/job.py:44 +#, fuzzy +#| msgid "Account policy" +msgid "Runas policy" +msgstr "账号策略" + +#: ops/models/playbook.py:15 msgid "Owner" msgstr "Owner" -#: ops/models/playbook.py:26 settings/serializers/auth/sms.py:64 -msgid "Template" -msgstr "模板" - -#: ops/models/playbook.py:38 ops/signal_handlers.py:63 -#: terminal/models/component/task.py:26 -#: xpack/plugins/gathered_user/models.py:68 -msgid "Task" -msgstr "任务" - -#: ops/models/playbook.py:39 -msgid "Run dir" -msgstr "运行目录" - #: ops/notifications.py:17 msgid "Server performance" msgstr "监控告警" @@ -2882,21 +3023,38 @@ msgstr "内存使用率超过 {max_threshold}%: => {value}" msgid "CPU load more than {max_threshold}: => {value}" msgstr "CPU 使用率超过 {max_threshold}: => {value}" -#: ops/tasks.py:34 +#: ops/signal_handlers.py:63 terminal/models/component/task.py:26 +#: xpack/plugins/gathered_user/models.py:68 +msgid "Task" +msgstr "任务" + +#: ops/tasks.py:27 msgid "Run ansible task" msgstr "运行 ansible 任务" -#: ops/tasks.py:58 -msgid "Run ansible command" -msgstr "运行 ansible 命令" +#: ops/tasks.py:41 +msgid "Run ansible task execution" +msgstr "运行 ansible 任务" -#: ops/tasks.py:80 -msgid "Clean task history period" -msgstr "定期清除任务历史" +#: ops/tasks.py:54 +msgid "Periodic clear celery tasks" +msgstr "定时清理 Celery 任务" -#: ops/tasks.py:93 +#: ops/tasks.py:56 msgid "Clean celery log period" -msgstr "定期清除Celery日志" +msgstr "定期清理 Celery 日志" + +#: ops/tasks.py:73 +msgid "Clear celery periodic tasks" +msgstr "清理 Celery 定时任务" + +#: ops/tasks.py:96 +msgid "Create or update periodic tasks" +msgstr "创建或更新定时任务" + +#: ops/tasks.py:104 +msgid "Periodic check service performance" +msgstr "定时检查服务性能" #: ops/templates/ops/celery_task_log.html:4 msgid "Task log" @@ -2961,76 +3119,84 @@ msgstr "可以查看全局组织" msgid "Can view all joined org" msgstr "可以查看所有加入的组织" +#: orgs/tasks.py:9 +msgid "Refresh organization cache" +msgstr "刷新组织缓存" + #: perms/apps.py:9 msgid "App permissions" msgstr "授权管理" -#: perms/models/asset_permission.py:72 perms/serializers/permission.py:59 -#: perms/serializers/permission.py:85 -#: tickets/models/ticket/apply_application.py:26 -#: tickets/models/ticket/apply_asset.py:19 -msgid "Actions" -msgstr "动作" - -#: perms/models/asset_permission.py:83 -msgid "From ticket" -msgstr "来自工单" - -#: perms/models/asset_permission.py:224 -msgid "Ungrouped" -msgstr "未分组" - -#: perms/models/asset_permission.py:226 -msgid "Favorite" -msgstr "收藏夹" - -#: perms/models/asset_permission.py:273 -msgid "Permed asset" -msgstr "授权的资产" - -#: perms/models/asset_permission.py:275 -msgid "Can view my assets" -msgstr "可以查看我的资产" - -#: perms/models/asset_permission.py:276 -msgid "Can view user assets" -msgstr "可以查看用户授权的资产" - -#: perms/models/asset_permission.py:277 -msgid "Can view usergroup assets" -msgstr "可以查看用户组授权的资产" - -#: perms/models/const.py:20 settings/serializers/terminal.py:12 -msgid "All" -msgstr "全部" - -#: perms/models/const.py:21 +#: perms/const.py:13 msgid "Connect" msgstr "连接" -#: perms/models/const.py:22 -msgid "Upload file" -msgstr "上传文件" +#: perms/const.py:16 +#, fuzzy +#| msgid "Copy link" +msgid "Copy" +msgstr "复制链接" -#: perms/models/const.py:23 -msgid "Download file" -msgstr "下载文件" +#: perms/const.py:17 +msgid "Paste" +msgstr "" -#: perms/models/const.py:24 -msgid "Upload download" -msgstr "上传下载" +#: perms/const.py:26 +msgid "Transfer" +msgstr "" -#: perms/models/const.py:25 -msgid "Clipboard copy" +#: perms/const.py:27 +#, fuzzy +#| msgid "Clipboard copy" +msgid "Clipboard" msgstr "剪贴板复制" -#: perms/models/const.py:26 -msgid "Clipboard paste" -msgstr "剪贴板粘贴" +#: perms/models/asset_permission.py:66 perms/models/perm_token.py:18 +#: perms/serializers/permission.py:29 perms/serializers/permission.py:59 +#: tickets/models/ticket/apply_application.py:26 +#: tickets/models/ticket/apply_asset.py:17 +msgid "Actions" +msgstr "动作" -#: perms/models/const.py:27 -msgid "Clipboard copy paste" -msgstr "剪贴板复制粘贴" +#: perms/models/asset_permission.py:76 +msgid "From ticket" +msgstr "来自工单" + +#: perms/models/perm_node.py:55 +msgid "Ungrouped" +msgstr "未分组" + +#: perms/models/perm_node.py:57 +msgid "Favorite" +msgstr "收藏夹" + +#: perms/models/perm_node.py:104 +msgid "Permed asset" +msgstr "授权的资产" + +#: perms/models/perm_node.py:106 +msgid "Can view my assets" +msgstr "可以查看我的资产" + +#: perms/models/perm_node.py:107 +msgid "Can view user assets" +msgstr "可以查看用户授权的资产" + +#: perms/models/perm_node.py:108 +msgid "Can view usergroup assets" +msgstr "可以查看用户组授权的资产" + +#: perms/models/perm_node.py:119 +#, fuzzy +#| msgid "Create account" +msgid "Permed account" +msgstr "收集账号" + +#: perms/models/perm_token.py:17 +#, fuzzy +#| msgid "Connect timeout" +msgid "Connect method" +msgstr "连接超时时间" #: perms/notifications.py:12 perms/notifications.py:44 msgid "today" @@ -3052,40 +3218,11 @@ msgstr "资产授权规则将要过期" msgid "asset permissions of organization {}" msgstr "组织 ({}) 的资产授权" -#: perms/serializers/permission.py:48 -msgid "Users display" -msgstr "用户名称" - -#: perms/serializers/permission.py:51 -msgid "User groups display" -msgstr "用户组名称" - -#: perms/serializers/permission.py:54 -msgid "Assets display" -msgstr "资产名称" - -#: perms/serializers/permission.py:57 -msgid "Nodes display" -msgstr "节点名称" - -#: perms/serializers/permission.py:61 perms/serializers/permission.py:86 -#: users/serializers/user.py:89 users/serializers/user.py:150 +#: perms/serializers/permission.py:31 perms/serializers/permission.py:60 +#: users/serializers/user.py:100 users/serializers/user.py:205 msgid "Is expired" msgstr "已过期" -#: perms/serializers/permission.py:81 rbac/serializers/role.py:26 -#: users/serializers/group.py:34 -msgid "Users amount" -msgstr "用户数量" - -#: perms/serializers/permission.py:82 -msgid "User groups amount" -msgstr "用户组数量" - -#: perms/serializers/permission.py:84 -msgid "Nodes amount" -msgstr "节点数量" - #: perms/templates/perms/_msg_item_permissions_expire.html:7 #: perms/templates/perms/_msg_permed_items_expire.html:7 #, python-format @@ -3102,7 +3239,7 @@ msgstr "" msgid "If you have any question, please contact the administrator" msgstr "如果有疑问或需求,请联系系统管理员" -#: perms/utils/user_permission.py:623 rbac/tree.py:57 +#: perms/utils/user_permission.py:622 rbac/tree.py:57 msgid "My assets" msgstr "我的资产" @@ -3234,6 +3371,10 @@ msgstr "权限" msgid "Scope display" msgstr "范围名称" +#: rbac/serializers/role.py:26 users/serializers/group.py:34 +msgid "Users amount" +msgstr "用户数量" + #: rbac/serializers/role.py:27 terminal/models/applet/applet.py:21 msgid "Display name" msgstr "显示名称" @@ -3722,6 +3863,10 @@ msgstr "原始号码(Src id)" msgid "Business type(Service id)" msgstr "业务类型(Service id)" +#: settings/serializers/auth/sms.py:64 +msgid "Template" +msgstr "模板" + #: settings/serializers/auth/sms.py:65 #, python-brace-format msgid "" @@ -4473,13 +4618,13 @@ msgstr "过期。" #, python-format msgid "" "\n" -" Your password has expired, please click this link update password.\n" +" Your password has expired, please click this link update password.\n" " " msgstr "" "\n" -" 您的密码已经过期,请点击 链接 更新密码\n" +" 您的密码已经过期,请点击 链接 更新密码\n" " " #: templates/_message.html:30 @@ -4503,8 +4648,8 @@ msgstr "" #, python-format msgid "" "\n" -" Your information was incomplete. Please click this link to complete your information.\n" +" Your information was incomplete. Please click this link to complete your information.\n" " " msgstr "" "\n" @@ -4516,13 +4661,13 @@ msgstr "" #, python-format msgid "" "\n" -" Your ssh public key not set or expired. Please click this link to update\n" +" Your ssh public key not set or expired. Please click this link to update\n" " " msgstr "" "\n" -" 您的SSH密钥没有设置或已失效,请点击 链接 更新\n" +" 您的SSH密钥没有设置或已失效,请点击 链接 更新\n" " " #: templates/_mfa_login_field.html:28 @@ -4691,7 +4836,7 @@ msgid "Timestamp" msgstr "时间戳" #: terminal/backends/command/serializers.py:41 -#: terminal/models/component/terminal.py:105 +#: terminal/models/component/terminal.py:87 msgid "Remote Address" msgstr "远端地址" @@ -4731,39 +4876,35 @@ msgstr "标签" msgid "Hosts" msgstr "主机" -#: terminal/models/applet/applet.py:58 terminal/models/applet/host.py:28 +#: terminal/models/applet/applet.py:58 terminal/models/applet/host.py:27 msgid "Applet" msgstr "远程应用" -#: terminal/models/applet/host.py:19 terminal/serializers/applet_host.py:36 +#: terminal/models/applet/host.py:18 terminal/serializers/applet_host.py:38 #, fuzzy #| msgid "More login options" msgid "Deploy options" msgstr "其他方式登录" -#: terminal/models/applet/host.py:20 +#: terminal/models/applet/host.py:19 msgid "Inited" msgstr "" -#: terminal/models/applet/host.py:21 +#: terminal/models/applet/host.py:20 #, fuzzy #| msgid "Date finished" msgid "Date inited" msgstr "结束日期" -#: terminal/models/applet/host.py:22 +#: terminal/models/applet/host.py:21 msgid "Date synced" msgstr "最后同步日期" -#: terminal/models/applet/host.py:25 terminal/models/component/terminal.py:183 -msgid "Terminal" -msgstr "终端" - -#: terminal/models/applet/host.py:99 +#: terminal/models/applet/host.py:102 msgid "Hosting" msgstr "主机" -#: terminal/models/applet/host.py:100 +#: terminal/models/applet/host.py:103 msgid "Initial" msgstr "" @@ -4772,12 +4913,10 @@ msgid "HTTPS Port" msgstr "HTTPS 端口" #: terminal/models/component/endpoint.py:15 -#: terminal/models/component/terminal.py:107 msgid "HTTP Port" msgstr "HTTP 端口" #: terminal/models/component/endpoint.py:16 -#: terminal/models/component/terminal.py:106 msgid "SSH Port" msgstr "SSH 端口" @@ -4825,31 +4964,31 @@ msgstr "IP 组" msgid "Endpoint rule" msgstr "端点规则" -#: terminal/models/component/status.py:18 +#: terminal/models/component/status.py:14 msgid "Session Online" msgstr "在线会话" -#: terminal/models/component/status.py:19 +#: terminal/models/component/status.py:15 msgid "CPU Load" msgstr "CPU负载" -#: terminal/models/component/status.py:20 +#: terminal/models/component/status.py:16 msgid "Memory Used" msgstr "内存使用" -#: terminal/models/component/status.py:21 +#: terminal/models/component/status.py:17 msgid "Disk Used" msgstr "磁盘使用" -#: terminal/models/component/status.py:22 +#: terminal/models/component/status.py:18 msgid "Connections" msgstr "连接数" -#: terminal/models/component/status.py:23 +#: terminal/models/component/status.py:19 msgid "Threads" msgstr "线程数" -#: terminal/models/component/status.py:24 +#: terminal/models/component/status.py:20 msgid "Boot Time" msgstr "运行时间" @@ -4858,20 +4997,20 @@ msgid "Default storage" msgstr "默认存储" #: terminal/models/component/storage.py:136 -#: terminal/models/component/terminal.py:108 +#: terminal/models/component/terminal.py:88 msgid "Command storage" msgstr "命令存储" #: terminal/models/component/storage.py:196 -#: terminal/models/component/terminal.py:109 +#: terminal/models/component/terminal.py:89 msgid "Replay storage" msgstr "录像存储" -#: terminal/models/component/terminal.py:103 +#: terminal/models/component/terminal.py:85 msgid "type" msgstr "类型" -#: terminal/models/component/terminal.py:185 +#: terminal/models/component/terminal.py:161 msgid "Can view terminal config" msgstr "可以查看终端配置" @@ -5003,38 +5142,42 @@ msgstr "不匹配" msgid "Icon" msgstr "图标" -#: terminal/serializers/applet_host.py:20 +#: terminal/serializers/applet_host.py:22 msgid "Per Session" msgstr "按会话" -#: terminal/serializers/applet_host.py:21 +#: terminal/serializers/applet_host.py:23 msgid "Per Device" msgstr "按设备" -#: terminal/serializers/applet_host.py:27 +#: terminal/serializers/applet_host.py:29 msgid "RDS Licensing" msgstr "部署 RDS 许可服务" -#: terminal/serializers/applet_host.py:28 +#: terminal/serializers/applet_host.py:30 msgid "RDS License Server" msgstr "RDS 许可服务主机" -#: terminal/serializers/applet_host.py:29 +#: terminal/serializers/applet_host.py:31 msgid "RDS Licensing Mode" msgstr "RDS 许可模式" -#: terminal/serializers/applet_host.py:30 +#: terminal/serializers/applet_host.py:32 msgid "RDS fSingleSessionPerUser" msgstr "RDS 会话用户数" -#: terminal/serializers/applet_host.py:31 +#: terminal/serializers/applet_host.py:33 msgid "RDS Max Disconnection Time" msgstr "RDS 会话断开时间" -#: terminal/serializers/applet_host.py:32 +#: terminal/serializers/applet_host.py:34 msgid "RDS Remote App Logoff Time Limit" msgstr "RDS 远程应用注销时间" +#: terminal/serializers/applet_host.py:40 terminal/serializers/terminal.py:41 +msgid "Load status" +msgstr "负载状态" + #: terminal/serializers/endpoint.py:12 msgid "Oracle port" msgstr "" @@ -5154,11 +5297,7 @@ msgstr "文档类型" msgid "Ignore Certificate Verification" msgstr "忽略证书认证" -#: terminal/serializers/terminal.py:44 -msgid "Load status" -msgstr "负载状态" - -#: terminal/serializers/terminal.py:81 terminal/serializers/terminal.py:89 +#: terminal/serializers/terminal.py:77 terminal/serializers/terminal.py:85 msgid "Not found" msgstr "没有发现" @@ -5278,11 +5417,11 @@ msgstr "内容" msgid "Approve level" msgstr "审批级别" -#: tickets/models/flow.py:25 tickets/serializers/flow.py:15 +#: tickets/models/flow.py:25 tickets/serializers/flow.py:17 msgid "Approve strategy" msgstr "审批策略" -#: tickets/models/flow.py:30 tickets/serializers/flow.py:16 +#: tickets/models/flow.py:30 tickets/serializers/flow.py:19 msgid "Assignees" msgstr "受理人" @@ -5299,7 +5438,7 @@ msgid "Ticket session relation" msgstr "工单会话" #: tickets/models/ticket/apply_application.py:11 -#: tickets/models/ticket/apply_asset.py:13 +#: tickets/models/ticket/apply_asset.py:12 msgid "Permission name" msgstr "授权规则名称" @@ -5311,20 +5450,20 @@ msgstr "申请应用" msgid "Apply system users" msgstr "申请的系统用户" -#: tickets/models/ticket/apply_asset.py:9 +#: tickets/models/ticket/apply_asset.py:8 #: tickets/serializers/ticket/apply_asset.py:15 msgid "Select at least one asset or node" msgstr "资产或者节点至少选择一项" -#: tickets/models/ticket/apply_asset.py:14 +#: tickets/models/ticket/apply_asset.py:13 msgid "Apply nodes" msgstr "申请节点" -#: tickets/models/ticket/apply_asset.py:16 +#: tickets/models/ticket/apply_asset.py:15 msgid "Apply assets" msgstr "申请资产" -#: tickets/models/ticket/apply_asset.py:17 +#: tickets/models/ticket/apply_asset.py:16 msgid "Apply accounts" msgstr "申请账号" @@ -5428,15 +5567,15 @@ msgstr "你的工单已被处理, 处理人 - {}" msgid "Ticket has processed - {} ({})" msgstr "你的工单已被处理, 处理人 - {} ({})" -#: tickets/serializers/flow.py:17 +#: tickets/serializers/flow.py:20 msgid "Assignees display" msgstr "受理人名称" -#: tickets/serializers/flow.py:43 +#: tickets/serializers/flow.py:46 msgid "Please select the Assignees" msgstr "请选择受理人" -#: tickets/serializers/flow.py:69 +#: tickets/serializers/flow.py:74 msgid "The current organization type already exists" msgstr "当前组织已存在该类型" @@ -5457,6 +5596,14 @@ msgstr "过期时间要大于开始时间" msgid "Permission named `{}` already exists" msgstr "授权名称 `{}` 已存在" +#: tickets/serializers/ticket/ticket.py:17 +msgid "Type display" +msgstr "类型名称" + +#: tickets/serializers/ticket/ticket.py:18 +msgid "Status display" +msgstr "状态名称" + #: tickets/serializers/ticket/ticket.py:101 msgid "The ticket flow `{}` does not exist" msgstr "工单流程 `{}` 不存在" @@ -5630,7 +5777,7 @@ msgstr "强制启用" msgid "Local" msgstr "数据库" -#: users/models/user.py:677 users/serializers/user.py:149 +#: users/models/user.py:677 users/serializers/user.py:204 msgid "Is service account" msgstr "服务账号" @@ -5737,105 +5884,105 @@ msgstr "新密码不能是最近 {} 次的密码" msgid "The newly set password is inconsistent" msgstr "两次密码不一致" -#: users/serializers/profile.py:149 users/serializers/user.py:146 +#: users/serializers/profile.py:149 users/serializers/user.py:201 msgid "Is first login" msgstr "首次登录" -#: users/serializers/user.py:28 +#: users/serializers/user.py:30 msgid "System roles" msgstr "系统角色" -#: users/serializers/user.py:33 +#: users/serializers/user.py:35 msgid "Org roles" msgstr "组织角色" -#: users/serializers/user.py:35 +#: users/serializers/user.py:38 msgid "System roles display" msgstr "系统角色显示" -#: users/serializers/user.py:36 +#: users/serializers/user.py:40 msgid "Org roles display" msgstr "组织角色显示" -#: users/serializers/user.py:81 +#: users/serializers/user.py:90 #: xpack/plugins/change_auth_plan/models/base.py:35 #: xpack/plugins/change_auth_plan/serializers/base.py:27 msgid "Password strategy" msgstr "密码策略" -#: users/serializers/user.py:83 +#: users/serializers/user.py:92 msgid "MFA enabled" msgstr "MFA 已启用" -#: users/serializers/user.py:84 +#: users/serializers/user.py:94 msgid "MFA force enabled" msgstr "强制 MFA" -#: users/serializers/user.py:86 +#: users/serializers/user.py:97 msgid "MFA level display" msgstr "MFA 等级名称" -#: users/serializers/user.py:88 +#: users/serializers/user.py:99 msgid "Login blocked" msgstr "登录被阻塞" -#: users/serializers/user.py:91 +#: users/serializers/user.py:102 msgid "Can public key authentication" msgstr "能否公钥认证" -#: users/serializers/user.py:151 +#: users/serializers/user.py:206 msgid "Avatar url" msgstr "头像路径" -#: users/serializers/user.py:153 +#: users/serializers/user.py:208 msgid "Groups name" msgstr "用户组名" -#: users/serializers/user.py:154 +#: users/serializers/user.py:209 msgid "Source name" msgstr "用户来源名" -#: users/serializers/user.py:155 +#: users/serializers/user.py:210 msgid "Organization role name" msgstr "组织角色名称" -#: users/serializers/user.py:156 +#: users/serializers/user.py:211 msgid "Super role name" msgstr "超级角色名称" -#: users/serializers/user.py:157 +#: users/serializers/user.py:212 msgid "Total role name" msgstr "汇总角色名称" -#: users/serializers/user.py:159 +#: users/serializers/user.py:214 msgid "Is wecom bound" msgstr "是否绑定了企业微信" -#: users/serializers/user.py:160 +#: users/serializers/user.py:215 msgid "Is dingtalk bound" msgstr "是否绑定了钉钉" -#: users/serializers/user.py:161 +#: users/serializers/user.py:216 msgid "Is feishu bound" msgstr "是否绑定了飞书" -#: users/serializers/user.py:162 +#: users/serializers/user.py:217 msgid "Is OTP bound" msgstr "是否绑定了虚拟 MFA" -#: users/serializers/user.py:164 +#: users/serializers/user.py:219 msgid "System role name" msgstr "系统角色名称" -#: users/serializers/user.py:263 +#: users/serializers/user.py:325 msgid "Select users" msgstr "选择用户" -#: users/serializers/user.py:264 +#: users/serializers/user.py:326 msgid "For security, only list several users" msgstr "为了安全,仅列出几个用户" -#: users/serializers/user.py:299 +#: users/serializers/user.py:362 msgid "name not unique" msgstr "名称重复" @@ -6076,10 +6223,6 @@ msgstr "重置密码成功,返回到登录页面" msgid "XPACK" msgstr "XPack" -#: xpack/plugins/change_auth_plan/api/asset.py:94 -msgid "The parameter 'action' must be [{}]" -msgstr "参数 'action' 必须是 [{}]" - #: xpack/plugins/change_auth_plan/meta.py:9 #: xpack/plugins/change_auth_plan/models/asset.py:124 msgid "Change auth plan" @@ -6108,11 +6251,6 @@ msgstr "应用改密计划任务" msgid "Password cannot be set to blank, exit. " msgstr "密码不能设置为空, 退出. " -#: xpack/plugins/change_auth_plan/models/asset.py:50 -#: xpack/plugins/change_auth_plan/serializers/asset.py:33 -msgid "SSH Key strategy" -msgstr "SSH 密钥策略" - #: xpack/plugins/change_auth_plan/models/asset.py:68 msgid "Asset change auth plan" msgstr "资产改密计划" @@ -6166,25 +6304,6 @@ msgstr "保存密码/密钥" msgid "Step" msgstr "步骤" -#: xpack/plugins/change_auth_plan/notifications.py:8 -msgid "Notification of implementation result of encryption change plan" -msgstr "改密计划任务结果通知" - -#: xpack/plugins/change_auth_plan/notifications.py:18 -msgid "" -"{} - The encryption change task has been completed. See the attachment for " -"details" -msgstr "{} - 改密任务已完成, 详情见附件" - -#: xpack/plugins/change_auth_plan/notifications.py:19 -msgid "" -"{} - The encryption change task has been completed: the encryption password " -"has not been set - please go to personal information -> file encryption " -"password to set the encryption password" -msgstr "" -"{} - 改密任务已完成: 未设置加密密码 - 请前往个人信息 -> 文件加密密码中设置加" -"密密码" - #: xpack/plugins/change_auth_plan/serializers/asset.py:30 msgid "Change Password" msgstr "更改密码" @@ -6197,14 +6316,6 @@ msgstr "修改 SSH Key" msgid "Run times" msgstr "执行次数" -#: xpack/plugins/change_auth_plan/serializers/base.py:58 -msgid "* Please enter the correct password length" -msgstr "* 请输入正确的密码长度" - -#: xpack/plugins/change_auth_plan/serializers/base.py:61 -msgid "* Password length range 6-30 bits" -msgstr "* 密码长度范围 6-30 位" - #: xpack/plugins/change_auth_plan/task_handlers/base/handler.py:236 msgid "After many attempts to change the secret, it still failed" msgstr "多次尝试改密后, 依然失败" @@ -6221,6 +6332,18 @@ msgstr "连接主机失败" msgid "Data could not be sent to remote" msgstr "无法将数据发送到远程" +#: xpack/plugins/change_auth_plan/tasks.py:13 +msgid "Execute change authentication task" +msgstr "执行资产改密计划任务" + +#: xpack/plugins/change_auth_plan/tasks.py:24 +msgid "Start change authentication task" +msgstr "开始资产改密计划任务" + +#: xpack/plugins/change_auth_plan/tasks.py:36 +msgid "Test the validity of the change authentication plan " +msgstr "测试资产改密结果" + #: xpack/plugins/cloud/api.py:40 msgid "Test connection successful" msgstr "测试成功" @@ -6753,11 +6876,11 @@ msgstr "主题" msgid "Interface setting" msgstr "界面设置" -#: xpack/plugins/license/api.py:53 +#: xpack/plugins/license/api.py:50 msgid "License import successfully" msgstr "许可证导入成功" -#: xpack/plugins/license/api.py:54 +#: xpack/plugins/license/api.py:51 msgid "License is invalid" msgstr "无效的许可证" @@ -6781,8 +6904,64 @@ msgstr "旗舰版" msgid "Community edition" msgstr "社区版" -#~ msgid "Account automation" -#~ msgstr "账号自动化" +#~ msgid "Run ansible command" +#~ msgstr "运行 ansible 命令" + +#~ msgid "Clean task history period" +#~ msgstr "定期清除任务历史" + +#, fuzzy +#~| msgid "WeCom Error" +#~ msgid "Hello Error" +#~ msgstr "企业微信错误" + +#~ msgid "Operate display" +#~ msgstr "操作名称" + +#~ msgid "MFA display" +#~ msgstr "MFA名称" + +#~ msgid "Path" +#~ msgstr "路径" + +#~ msgid "Playbook template" +#~ msgstr "Playbook 模版" + +#~ msgid "Run dir" +#~ msgstr "运行目录" + +#~ msgid "Upload file" +#~ msgstr "上传文件" + +#~ msgid "Download file" +#~ msgstr "下载文件" + +#~ msgid "Upload download" +#~ msgstr "上传下载" + +#~ msgid "Clipboard paste" +#~ msgstr "剪贴板粘贴" + +#~ msgid "Clipboard copy paste" +#~ msgstr "剪贴板复制粘贴" + +#~ msgid "Users display" +#~ msgstr "用户名称" + +#~ msgid "User groups display" +#~ msgstr "用户组名称" + +#~ msgid "Assets display" +#~ msgstr "资产名称" + +#~ msgid "Nodes display" +#~ msgstr "节点名称" + +#~ msgid "User groups amount" +#~ msgstr "用户组数量" + +#~ msgid "Nodes amount" +#~ msgstr "节点数量" #~ msgid "The asset {} system platform {} does not support run Ansible tasks" #~ msgstr "资产 {} 系统平台 {} 不支持运行 Ansible 任务" @@ -7069,66 +7248,54 @@ msgstr "社区版" #~ msgid "Asset and SystemUser" #~ msgstr "资产与系统用户" -#, python-brace-format #~ msgid "{Asset} ADD {SystemUser}" #~ msgstr "{Asset} 添加 {SystemUser}" -#, python-brace-format #~ msgid "{Asset} REMOVE {SystemUser}" #~ msgstr "{Asset} 移除 {SystemUser}" #~ msgid "Asset permission and SystemUser" #~ msgstr "资产授权与系统用户" -#, python-brace-format #~ msgid "{AssetPermission} ADD {SystemUser}" #~ msgstr "{AssetPermission} 添加 {SystemUser}" -#, python-brace-format #~ msgid "{AssetPermission} REMOVE {SystemUser}" #~ msgstr "{AssetPermission} 移除 {SystemUser}" #~ msgid "User application permissions" #~ msgstr "用户应用授权" -#, python-brace-format #~ msgid "{ApplicationPermission} ADD {User}" #~ msgstr "{ApplicationPermission} 添加 {User}" -#, python-brace-format #~ msgid "{ApplicationPermission} REMOVE {User}" #~ msgstr "{ApplicationPermission} 移除 {User}" #~ msgid "User group application permissions" #~ msgstr "用户组应用授权" -#, python-brace-format #~ msgid "{ApplicationPermission} ADD {UserGroup}" #~ msgstr "{ApplicationPermission} 添加 {UserGroup}" -#, python-brace-format #~ msgid "{ApplicationPermission} REMOVE {UserGroup}" #~ msgstr "{ApplicationPermission} 移除 {UserGroup}" #~ msgid "Application permission" #~ msgstr "应用授权" -#, python-brace-format #~ msgid "{ApplicationPermission} ADD {Application}" #~ msgstr "{ApplicationPermission} 添加 {Application}" -#, python-brace-format #~ msgid "{ApplicationPermission} REMOVE {Application}" #~ msgstr "{ApplicationPermission} 移除 {Application}" #~ msgid "Application permission and SystemUser" #~ msgstr "应用授权与系统用户" -#, python-brace-format #~ msgid "{ApplicationPermission} ADD {SystemUser}" #~ msgstr "{ApplicationPermission} 添加 {SystemUser}" -#, python-brace-format #~ msgid "{ApplicationPermission} REMOVE {SystemUser}" #~ msgstr "{ApplicationPermission} 移除 {SystemUser}" diff --git a/apps/notifications/notifications.py b/apps/notifications/notifications.py index 481a4bc08..55f1cdbad 100644 --- a/apps/notifications/notifications.py +++ b/apps/notifications/notifications.py @@ -16,7 +16,6 @@ from .models import SystemMsgSubscription, UserMsgSubscription __all__ = ('SystemMessage', 'UserMessage', 'system_msgs', 'Message') - system_msgs = [] user_msgs = [] @@ -44,7 +43,7 @@ class MessageType(type): return clz -@shared_task +@shared_task(verbose_name=_('Publish the station message')) def publish_task(msg): msg.publish() diff --git a/apps/ops/api/celery.py b/apps/ops/api/celery.py index 4376a9232..8d58c1981 100644 --- a/apps/ops/api/celery.py +++ b/apps/ops/api/celery.py @@ -104,10 +104,12 @@ class CelerySummaryAPIView(generics.RetrieveAPIView): class CeleryTaskViewSet(CommonApiMixin, viewsets.ReadOnlyModelViewSet): - queryset = CeleryTask.objects.all() serializer_class = CeleryTaskSerializer http_method_names = ('get', 'head', 'options',) + def get_queryset(self): + return CeleryTask.objects.exclude(name__startswith='celery') + class CeleryTaskExecutionViewSet(CommonApiMixin, viewsets.ReadOnlyModelViewSet): serializer_class = CeleryTaskExecutionSerializer diff --git a/apps/ops/models/celery.py b/apps/ops/models/celery.py index 01251f8b2..1b444ded1 100644 --- a/apps/ops/models/celery.py +++ b/apps/ops/models/celery.py @@ -37,6 +37,9 @@ class CeleryTask(models.Model): return "yellow" return "green" + class Meta: + ordering = ('name',) + class CeleryTaskExecution(models.Model): LOG_DIR = os.path.join(settings.PROJECT_DIR, 'data', 'celery') diff --git a/apps/ops/models/playbook.py b/apps/ops/models/playbook.py index 6e0155288..10be7bd06 100644 --- a/apps/ops/models/playbook.py +++ b/apps/ops/models/playbook.py @@ -16,4 +16,4 @@ class Playbook(BaseCreateUpdateModel): @property def work_path(self): - return os.path.join(settings.DATA_DIR, "ops", "playbook", self.id.__str__()) + return os.path.join(settings.DATA_DIR, "ops", "playbook", self.id.__str__(), "main.yaml") diff --git a/apps/ops/tasks.py b/apps/ops/tasks.py index e802970c7..c350cdb6b 100644 --- a/apps/ops/tasks.py +++ b/apps/ops/tasks.py @@ -1,19 +1,15 @@ # coding: utf-8 import os -import random import subprocess -import time from django.conf import settings -from celery import shared_task, subtask -from celery import signals +from celery import shared_task from celery.exceptions import SoftTimeLimitExceeded from django.utils import timezone -from django.utils.translation import ugettext_lazy as _, gettext +from django.utils.translation import ugettext_lazy as _ from common.utils import get_logger, get_object_or_none, get_log_keep_day -from orgs.utils import tmp_to_root_org, tmp_to_org from .celery.decorator import ( register_as_period_task, after_app_shutdown_clean_periodic, after_app_ready_start @@ -22,16 +18,12 @@ from .celery.utils import ( create_or_update_celery_periodic_tasks, get_celery_periodic_task, disable_celery_periodic_task, delete_celery_periodic_task ) -from .models import CeleryTaskExecution, Playbook, Job, JobExecution +from .models import CeleryTaskExecution, Job, JobExecution from .notifications import ServerPerformanceCheckUtil logger = get_logger(__file__) -def rerun_task(): - pass - - @shared_task(soft_time_limit=60, queue="ansible", verbose_name=_("Run ansible task")) def run_ops_job(job_id, **kwargs): job = get_object_or_none(Job, id=job_id) @@ -59,64 +51,7 @@ def run_ops_job_executions(execution_id, **kwargs): logger.error("Start adhoc execution error: {}".format(e)) -@shared_task(soft_time_limit=60, queue="ansible", verbose_name=_("Run ansible task")) -def run_adhoc(tid, **kwargs): - """ - :param tid: is the tasks serialized data - :param callback: callback function name - :return: - """ - with tmp_to_root_org(): - task = get_object_or_none(AdHoc, id=tid) - if not task: - logger.error("No task found") - return - with tmp_to_org(task.org): - execution = task.create_execution() - try: - execution.start(**kwargs) - except SoftTimeLimitExceeded: - execution.set_error('Run timeout') - logger.error("Run adhoc timeout") - except Exception as e: - execution.set_error(e) - logger.error("Start adhoc execution error: {}".format(e)) - - -@shared_task(soft_time_limit=60, queue="ansible", verbose_name=_("Run ansible command")) -def run_playbook(pid, **kwargs): - with tmp_to_root_org(): - task = get_object_or_none(Playbook, id=pid) - if not task: - logger.error("No task found") - return - - with tmp_to_org(task.org): - execution = task.create_execution() - try: - execution.start(**kwargs) - except SoftTimeLimitExceeded: - execution.set_error('Run timeout') - logger.error("Run playbook timeout") - except Exception as e: - execution.set_error(e) - logger.error("Run playbook execution error: {}".format(e)) - - -@shared_task -@after_app_shutdown_clean_periodic -@register_as_period_task(interval=3600 * 24, description=_("Clean task history period")) -def clean_tasks_adhoc_period(): - logger.debug("Start clean task adhoc and run history") - tasks = Task.objects.all() - for task in tasks: - adhoc = task.adhoc.all().order_by('-date_created')[5:] - for ad in adhoc: - ad.execution.all().delete() - ad.delete() - - -@shared_task +@shared_task(verbose_name=_('Periodic clear celery tasks')) @after_app_shutdown_clean_periodic @register_as_period_task(interval=3600 * 24, description=_("Clean celery log period")) def clean_celery_tasks_period(): @@ -135,7 +70,7 @@ def clean_celery_tasks_period(): subprocess.call(command, shell=True) -@shared_task +@shared_task(verbose_name=_('Clear celery periodic tasks')) @after_app_ready_start def clean_celery_periodic_tasks(): """清除celery定时任务""" @@ -158,7 +93,7 @@ def clean_celery_periodic_tasks(): logger.info('Clean task failure: {}'.format(task)) -@shared_task +@shared_task(verbose_name=_('Create or update periodic tasks')) @after_app_ready_start def create_or_update_registered_periodic_tasks(): from .celery.decorator import get_register_period_tasks @@ -166,42 +101,7 @@ def create_or_update_registered_periodic_tasks(): create_or_update_celery_periodic_tasks(task) -@shared_task +@shared_task(verbose_name=_("Periodic check service performance")) @register_as_period_task(interval=3600) def check_server_performance_period(): ServerPerformanceCheckUtil().check_and_publish() - - -@shared_task(verbose_name=_("Hello"), comment="an test shared task") -def hello(name, callback=None): - from users.models import User - import time - - count = User.objects.count() - print(gettext("Hello") + ': ' + name) - print("Count: ", count) - time.sleep(1) - return gettext("Hello") - - -@shared_task(verbose_name=_("Hello Error"), comment="an test shared task error") -def hello_error(): - raise Exception("must be error") - - -@shared_task(verbose_name=_("Hello Random"), comment="some time error and some time success") -def hello_random(): - i = random.randint(0, 1) - if i == 1: - raise Exception("must be error") - - -@shared_task(verbose_name="Hello Running", comment="an task running 1m") -def hello_running(sec=60): - time.sleep(sec) - - -@shared_task -def hello_callback(result): - print(result) - print("Hello callback") diff --git a/apps/orgs/tasks.py b/apps/orgs/tasks.py index 6b6ec9e0d..04992f52a 100644 --- a/apps/orgs/tasks.py +++ b/apps/orgs/tasks.py @@ -1,11 +1,12 @@ from celery import shared_task +from django.utils.translation import ugettext_lazy as _ from common.utils import get_logger logger = get_logger(__file__) -@shared_task +@shared_task(verbose_name=_("Refresh organization cache")) def refresh_org_cache_task(*fields): from .caches import OrgResourceStatisticsCache OrgResourceStatisticsCache.refresh(*fields)