perf: merge with remote

pull/13244/head
ibuler 2024-05-17 09:59:12 +08:00
commit 49d2bd93b7
23 changed files with 964 additions and 343 deletions

View File

@ -41,7 +41,10 @@ ENV VERSION=$VERSION
WORKDIR /opt/jumpserver WORKDIR /opt/jumpserver
ADD . . ADD . .
RUN echo > /opt/jumpserver/config.yml \ RUN echo > /opt/jumpserver/config.yml \
&& cd utils && bash -ixeu build.sh && \
if [ -n "${VERSION}" ]; then \
sed -i "s@VERSION = .*@VERSION = '${VERSION}'@g" apps/jumpserver/const.py; \
fi
FROM python:3.11-slim-bullseye as stage-2 FROM python:3.11-slim-bullseye as stage-2
ARG TARGETARCH ARG TARGETARCH
@ -53,6 +56,7 @@ ARG BUILD_DEPENDENCIES=" \
ARG DEPENDENCIES=" \ ARG DEPENDENCIES=" \
freetds-dev \ freetds-dev \
gettext \
libffi-dev \ libffi-dev \
libjpeg-dev \ libjpeg-dev \
libkrb5-dev \ libkrb5-dev \
@ -104,6 +108,14 @@ RUN --mount=type=cache,target=/root/.cache,sharing=locked \
&& . /opt/py3/bin/activate \ && . /opt/py3/bin/activate \
&& poetry install --only=main && poetry install --only=main
COPY --from=stage-1 /opt/jumpserver /opt/jumpserver
RUN set -ex \
&& export SECRET_KEY=$(head -c100 < /dev/urandom | base64 | tr -dc A-Za-z0-9 | head -c 48) \
&& . /opt/py3/bin/activate \
&& cd apps \
&& python manage.py compilemessages
FROM python:3.11-slim-bullseye FROM python:3.11-slim-bullseye
ARG TARGETARCH ARG TARGETARCH
ENV LANG=en_US.UTF-8 \ ENV LANG=en_US.UTF-8 \
@ -138,10 +150,9 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
&& sed -i "s@# export @export @g" ~/.bashrc \ && sed -i "s@# export @export @g" ~/.bashrc \
&& sed -i "s@# alias @alias @g" ~/.bashrc && sed -i "s@# alias @alias @g" ~/.bashrc
COPY --from=stage-2 /opt/py3 /opt/py3 COPY --from=stage-2 /opt /opt
COPY --from=stage-1 /usr/local/bin /usr/local/bin COPY --from=stage-1 /usr/local/bin /usr/local/bin
COPY --from=stage-1 /opt/jumpserver/release/jumpserver /opt/jumpserver COPY --from=stage-1 /opt/jumpserver/apps/libs/ansible/ansible.cfg /etc/ansible/
COPY --from=stage-1 /opt/jumpserver/release/jumpserver/apps/libs/ansible/ansible.cfg /etc/ansible/
WORKDIR /opt/jumpserver WORKDIR /opt/jumpserver

View File

@ -46,7 +46,10 @@ ADD . .
COPY --from=build-xpack /opt/xpack /opt/jumpserver/apps/xpack COPY --from=build-xpack /opt/xpack /opt/jumpserver/apps/xpack
RUN echo > /opt/jumpserver/config.yml \ RUN echo > /opt/jumpserver/config.yml \
&& cd utils && bash -ixeu build.sh && \
if [ -n "${VERSION}" ]; then \
sed -i "s@VERSION = .*@VERSION = '${VERSION}'@g" apps/jumpserver/const.py; \
fi
FROM python:3.11-slim-bullseye as stage-2 FROM python:3.11-slim-bullseye as stage-2
ARG TARGETARCH ARG TARGETARCH
@ -58,6 +61,7 @@ ARG BUILD_DEPENDENCIES=" \
ARG DEPENDENCIES=" \ ARG DEPENDENCIES=" \
freetds-dev \ freetds-dev \
gettext \
libffi-dev \ libffi-dev \
libjpeg-dev \ libjpeg-dev \
libkrb5-dev \ libkrb5-dev \
@ -109,6 +113,14 @@ RUN --mount=type=cache,target=/root/.cache,sharing=locked \
&& . /opt/py3/bin/activate \ && . /opt/py3/bin/activate \
&& poetry install && poetry install
COPY --from=stage-1 /opt/jumpserver /opt/jumpserver
RUN set -ex \
&& export SECRET_KEY=$(head -c100 < /dev/urandom | base64 | tr -dc A-Za-z0-9 | head -c 48) \
&& . /opt/py3/bin/activate \
&& cd apps \
&& python manage.py compilemessages
FROM python:3.11-slim-bullseye FROM python:3.11-slim-bullseye
ARG TARGETARCH ARG TARGETARCH
ENV LANG=zh_CN.UTF-8 \ ENV LANG=zh_CN.UTF-8 \
@ -154,10 +166,9 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
&& sed -i "s@# export @export @g" ~/.bashrc \ && sed -i "s@# export @export @g" ~/.bashrc \
&& sed -i "s@# alias @alias @g" ~/.bashrc && sed -i "s@# alias @alias @g" ~/.bashrc
COPY --from=stage-2 /opt/py3 /opt/py3 COPY --from=stage-2 /opt /opt
COPY --from=stage-1 /usr/local/bin /usr/local/bin COPY --from=stage-1 /usr/local/bin /usr/local/bin
COPY --from=stage-1 /opt/jumpserver/release/jumpserver /opt/jumpserver COPY --from=stage-1 /opt/jumpserver/apps/libs/ansible/ansible.cfg /etc/ansible/
COPY --from=stage-1 /opt/jumpserver/release/jumpserver/apps/libs/ansible/ansible.cfg /etc/ansible/
WORKDIR /opt/jumpserver WORKDIR /opt/jumpserver

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-13 17:25+0800\n" "POT-Creation-Date: 2024-05-13 18:52+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -384,7 +384,7 @@ msgstr ""
#: accounts/models/automations/backup_account.py:120 #: accounts/models/automations/backup_account.py:120
#: assets/models/automations/base.py:115 audits/models.py:65 #: assets/models/automations/base.py:115 audits/models.py:65
#: ops/models/base.py:55 ops/models/celery.py:88 ops/models/job.py:241 #: ops/models/base.py:55 ops/models/celery.py:88 ops/models/job.py:241
#: ops/templates/ops/celery_task_log.html:75 #: ops/templates/ops/celery_task_log.html:95
#: perms/models/asset_permission.py:78 #: perms/models/asset_permission.py:78
#: settings/templates/ldap/_msg_import_ldap_user.html:5 #: settings/templates/ldap/_msg_import_ldap_user.html:5
#: terminal/models/applet/host.py:141 terminal/models/session/session.py:45 #: terminal/models/applet/host.py:141 terminal/models/session/session.py:45
@ -413,7 +413,8 @@ msgid "Trigger mode"
msgstr "" msgstr ""
#: accounts/models/automations/backup_account.py:134 audits/models.py:203 #: accounts/models/automations/backup_account.py:134 audits/models.py:203
#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/models.py:204 #: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:165
#: xpack/plugins/cloud/models.py:204
msgid "Reason" msgid "Reason"
msgstr "" msgstr ""
@ -642,7 +643,7 @@ msgstr ""
#: users/forms/profile.py:32 users/models/group.py:13 #: users/forms/profile.py:32 users/models/group.py:13
#: users/models/preference.py:11 users/models/user.py:874 #: users/models/preference.py:11 users/models/user.py:874
#: xpack/plugins/cloud/models.py:32 xpack/plugins/cloud/models.py:272 #: xpack/plugins/cloud/models.py:32 xpack/plugins/cloud/models.py:272
#: xpack/plugins/cloud/serializers/task.py:70 #: xpack/plugins/cloud/serializers/task.py:71
msgid "Name" msgid "Name"
msgstr "" msgstr ""
@ -820,6 +821,7 @@ msgstr ""
#: ops/models/job.py:152 ops/serializers/job.py:19 #: ops/models/job.py:152 ops/serializers/job.py:19
#: perms/serializers/permission.py:36 #: perms/serializers/permission.py:36
#: terminal/templates/terminal/_msg_command_execute_alert.html:16 #: terminal/templates/terminal/_msg_command_execute_alert.html:16
#: xpack/plugins/cloud/manager.py:73
msgid "Assets" msgid "Assets"
msgstr "" msgstr ""
@ -833,6 +835,7 @@ msgid "Asset does not support this secret type: %s"
msgstr "" msgstr ""
#: accounts/serializers/account/account.py:410 #: accounts/serializers/account/account.py:410
#: xpack/plugins/cloud/serializers/account.py:111
msgid "Account has exist" msgid "Account has exist"
msgstr "" msgstr ""
@ -1073,7 +1076,7 @@ msgid "Deleted account"
msgstr "" msgstr ""
#: accounts/templates/accounts/change_secret_failed_info.html:3 #: accounts/templates/accounts/change_secret_failed_info.html:3
#: ops/templates/ops/celery_task_log.html:71 terminal/serializers/task.py:10 #: terminal/serializers/task.py:10
msgid "Task name" msgid "Task name"
msgstr "" msgstr ""
@ -1277,7 +1280,7 @@ msgid "None of the reviewers belong to Organization `{}`"
msgstr "" msgstr ""
#: acls/serializers/rules/rules.py:20 #: acls/serializers/rules/rules.py:20
#: xpack/plugins/cloud/serializers/task.py:145 #: xpack/plugins/cloud/serializers/task.py:146
msgid "IP address invalid: `{}`" msgid "IP address invalid: `{}`"
msgstr "" msgstr ""
@ -1433,6 +1436,7 @@ msgstr ""
#: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:71 #: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:71
#: settings/serializers/feature.py:49 settings/serializers/msg.py:31 #: settings/serializers/feature.py:49 settings/serializers/msg.py:31
#: terminal/models/component/endpoint.py:13 terminal/serializers/applet.py:17 #: terminal/models/component/endpoint.py:13 terminal/serializers/applet.py:17
#: xpack/plugins/cloud/manager.py:73
#: xpack/plugins/cloud/serializers/account_attrs.py:72 #: xpack/plugins/cloud/serializers/account_attrs.py:72
msgid "Host" msgid "Host"
msgstr "" msgstr ""
@ -1996,7 +2000,7 @@ msgstr ""
#: authentication/serializers/connect_token_secret.py:75 #: authentication/serializers/connect_token_secret.py:75
#: perms/models/asset_permission.py:76 perms/serializers/permission.py:46 #: perms/models/asset_permission.py:76 perms/serializers/permission.py:46
#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:328 #: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:328
#: xpack/plugins/cloud/serializers/task.py:33 #: xpack/plugins/cloud/serializers/task.py:34
msgid "Protocols" msgid "Protocols"
msgstr "" msgstr ""
@ -2325,6 +2329,7 @@ msgstr ""
#: audits/const.py:23 rbac/tree.py:238 terminal/api/session/session.py:277 #: audits/const.py:23 rbac/tree.py:238 terminal/api/session/session.py:277
#: terminal/templates/terminal/_msg_command_warning.html:18 #: terminal/templates/terminal/_msg_command_warning.html:18
#: terminal/templates/terminal/_msg_session_sharing.html:10 #: terminal/templates/terminal/_msg_session_sharing.html:10
#: xpack/plugins/cloud/manager.py:74
msgid "View" msgid "View"
msgstr "" msgstr ""
@ -2384,6 +2389,7 @@ msgstr ""
#: audits/const.py:51 terminal/models/applet/host.py:144 #: audits/const.py:51 terminal/models/applet/host.py:144
#: terminal/models/component/task.py:22 #: terminal/models/component/task.py:22
#: xpack/plugins/cloud/serializers/account.py:55
msgid "Task" msgid "Task"
msgstr "" msgstr ""
@ -3611,7 +3617,7 @@ msgstr ""
msgid "Canceled" msgid "Canceled"
msgstr "" msgstr ""
#: common/const/common.py:5 #: common/const/common.py:5 xpack/plugins/cloud/manager.py:380
#, python-format #, python-format
msgid "%(name)s was created successfully" msgid "%(name)s was created successfully"
msgstr "" msgstr ""
@ -4239,6 +4245,7 @@ msgid "Result"
msgstr "" msgstr ""
#: ops/models/base.py:52 ops/models/job.py:238 #: ops/models/base.py:52 ops/models/job.py:238
#: xpack/plugins/cloud/manager.py:77
msgid "Summary" msgid "Summary"
msgstr "" msgstr ""
@ -4812,7 +4819,7 @@ msgstr ""
msgid "Session audits" msgid "Session audits"
msgstr "" msgstr ""
#: rbac/tree.py:49 #: rbac/tree.py:49 xpack/plugins/cloud/manager.py:74
msgid "Cloud import" msgid "Cloud import"
msgstr "" msgstr ""
@ -7044,7 +7051,8 @@ msgstr ""
msgid "Access key secret" msgid "Access key secret"
msgstr "" msgstr ""
#: terminal/serializers/storage.py:68 xpack/plugins/cloud/models.py:249 #: terminal/serializers/storage.py:68 xpack/plugins/cloud/manager.py:90
#: xpack/plugins/cloud/models.py:249
msgid "Region" msgid "Region"
msgstr "" msgstr ""
@ -8351,9 +8359,10 @@ msgstr ""
msgid "XPACK" msgid "XPACK"
msgstr "" msgstr ""
#: xpack/exceptions.py:7 #: xpack/exceptions.py:8
msgid "" msgid ""
"The current task is not synchronized with unmatched policy assets, skipping" "Based on the current task configuration, assets that do not match the "
"strategy will skipped."
msgstr "" msgstr ""
#: xpack/plugins/cloud/api.py:60 #: xpack/plugins/cloud/api.py:60
@ -8476,19 +8485,19 @@ msgstr ""
msgid "Succeed" msgid "Succeed"
msgstr "" msgstr ""
#: xpack/plugins/cloud/const.py:52 #: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:80
msgid "Unsync" msgid "Unsync"
msgstr "" msgstr ""
#: xpack/plugins/cloud/const.py:53 #: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:79
msgid "New Sync" msgid "New Sync"
msgstr "" msgstr ""
#: xpack/plugins/cloud/const.py:54 #: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:79
msgid "Synced" msgid "Synced"
msgstr "" msgstr ""
#: xpack/plugins/cloud/const.py:55 #: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:80
msgid "Released" msgid "Released"
msgstr "" msgstr ""
@ -8500,11 +8509,98 @@ msgstr ""
msgid "Or" msgid "Or"
msgstr "" msgstr ""
#: xpack/plugins/cloud/manager.py:55 xpack/plugins/cloud/providers/gcp.py:64 #: xpack/plugins/cloud/manager.py:41
#, python-format
msgid "Task \"%s\" starts executing"
msgstr ""
#: xpack/plugins/cloud/manager.py:45 xpack/plugins/cloud/manager.py:55
#: xpack/plugins/cloud/manager.py:57 xpack/plugins/cloud/providers/gcp.py:64
#: xpack/plugins/cloud/providers/huaweicloud.py:34 #: xpack/plugins/cloud/providers/huaweicloud.py:34
msgid "Account unavailable" msgid "Account unavailable"
msgstr "" msgstr ""
#: xpack/plugins/cloud/manager.py:71
msgid "View the task details path: "
msgstr ""
#: xpack/plugins/cloud/manager.py:74
msgid "Account Details"
msgstr ""
#: xpack/plugins/cloud/manager.py:75
msgid "Synchronization History List"
msgstr ""
#: xpack/plugins/cloud/manager.py:75
msgid "Synchronization Instance List"
msgstr ""
#: xpack/plugins/cloud/manager.py:83
msgid "Task execution completed"
msgstr ""
#: xpack/plugins/cloud/manager.py:87
msgid "Synchronization regions"
msgstr ""
#: xpack/plugins/cloud/manager.py:110
#, python-format
msgid "Get instances of region \"%s\" error, error: %s"
msgstr ""
#: xpack/plugins/cloud/manager.py:128
#, python-format
msgid "The instance IP \"%s\" is not in network segment \"%s\""
msgstr ""
#: xpack/plugins/cloud/manager.py:164
#, python-format
msgid "Failed to synchronize the instance \"%s\""
msgstr ""
#: xpack/plugins/cloud/manager.py:316
#, python-format
msgid ""
"The updated platform of asset \"%s\" is inconsistent with the original "
"platform type. Skip platform and protocol updates"
msgstr ""
#: xpack/plugins/cloud/manager.py:358
#, python-format
msgid "The asset \"%s\" already exists"
msgstr ""
#: xpack/plugins/cloud/manager.py:362
#, python-format
msgid "Update asset \"%s\""
msgstr ""
#: xpack/plugins/cloud/manager.py:365
#, python-format
msgid "Asset \"%s\" has been updated"
msgstr ""
#: xpack/plugins/cloud/manager.py:376
#, python-format
msgid "Prepare to create asset \"%s\""
msgstr ""
#: xpack/plugins/cloud/manager.py:388
#, python-format
msgid "Set nodes \"%s\""
msgstr ""
#: xpack/plugins/cloud/manager.py:414
#, python-format
msgid "Set accounts \"%s\""
msgstr ""
#: xpack/plugins/cloud/manager.py:430
#, python-format
msgid "Set protocols \"%s\""
msgstr ""
#: xpack/plugins/cloud/meta.py:9 #: xpack/plugins/cloud/meta.py:9
msgid "Cloud center" msgid "Cloud center"
msgstr "" msgstr ""
@ -8514,7 +8610,7 @@ msgid "Provider"
msgstr "" msgstr ""
#: xpack/plugins/cloud/models.py:37 #: xpack/plugins/cloud/models.py:37
#: xpack/plugins/cloud/serializers/account.py:68 #: xpack/plugins/cloud/serializers/account.py:69
msgid "Attrs" msgid "Attrs"
msgstr "" msgstr ""
@ -8530,7 +8626,7 @@ msgstr ""
msgid "Test cloud account" msgid "Test cloud account"
msgstr "" msgstr ""
#: xpack/plugins/cloud/models.py:88 xpack/plugins/cloud/serializers/task.py:159 #: xpack/plugins/cloud/models.py:88 xpack/plugins/cloud/serializers/task.py:160
msgid "Regions" msgid "Regions"
msgstr "" msgstr ""
@ -8538,16 +8634,16 @@ msgstr ""
msgid "Hostname strategy" msgid "Hostname strategy"
msgstr "" msgstr ""
#: xpack/plugins/cloud/models.py:96 xpack/plugins/cloud/serializers/task.py:162 #: xpack/plugins/cloud/models.py:96 xpack/plugins/cloud/serializers/task.py:163
msgid "IP network segment group" msgid "IP network segment group"
msgstr "" msgstr ""
#: xpack/plugins/cloud/models.py:99 xpack/plugins/cloud/serializers/task.py:167 #: xpack/plugins/cloud/models.py:99 xpack/plugins/cloud/serializers/task.py:168
msgid "Sync IP type" msgid "Sync IP type"
msgstr "" msgstr ""
#: xpack/plugins/cloud/models.py:102 #: xpack/plugins/cloud/models.py:102
#: xpack/plugins/cloud/serializers/task.py:185 #: xpack/plugins/cloud/serializers/task.py:186
msgid "Always update" msgid "Always update"
msgstr "" msgstr ""
@ -8596,7 +8692,7 @@ msgstr ""
msgid "Sync instance detail" msgid "Sync instance detail"
msgstr "" msgstr ""
#: xpack/plugins/cloud/models.py:275 xpack/plugins/cloud/serializers/task.py:72 #: xpack/plugins/cloud/models.py:275 xpack/plugins/cloud/serializers/task.py:73
msgid "Rule relation" msgid "Rule relation"
msgstr "" msgstr ""
@ -8652,7 +8748,7 @@ msgstr ""
msgid "Rule value" msgid "Rule value"
msgstr "" msgstr ""
#: xpack/plugins/cloud/models.py:321 xpack/plugins/cloud/serializers/task.py:75 #: xpack/plugins/cloud/models.py:321 xpack/plugins/cloud/serializers/task.py:76
msgid "Strategy rule" msgid "Strategy rule"
msgstr "" msgstr ""
@ -8664,7 +8760,7 @@ msgstr ""
msgid "Action value" msgid "Action value"
msgstr "" msgstr ""
#: xpack/plugins/cloud/models.py:345 xpack/plugins/cloud/serializers/task.py:78 #: xpack/plugins/cloud/models.py:345 xpack/plugins/cloud/serializers/task.py:79
msgid "Strategy action" msgid "Strategy action"
msgstr "" msgstr ""
@ -8858,11 +8954,16 @@ msgstr ""
msgid "CN East-Suqian" msgid "CN East-Suqian"
msgstr "" msgstr ""
#: xpack/plugins/cloud/serializers/account.py:69 #: xpack/plugins/cloud/providers/lan.py:79
msgid "Validity display" #, python-format
msgid "Port \"%(port)s\" of instance IP \"%(ip)s\" is not reachable"
msgstr "" msgstr ""
#: xpack/plugins/cloud/serializers/account.py:70 #: xpack/plugins/cloud/serializers/account.py:70
msgid "Validity display"
msgstr ""
#: xpack/plugins/cloud/serializers/account.py:71
msgid "Provider display" msgid "Provider display"
msgstr "" msgstr ""
@ -8953,7 +9054,7 @@ msgstr ""
msgid "Project" msgid "Project"
msgstr "" msgstr ""
#: xpack/plugins/cloud/serializers/task.py:151 #: xpack/plugins/cloud/serializers/task.py:152
msgid "" msgid ""
"Only instances matching the IP range will be synced. <br>If the instance " "Only instances matching the IP range will be synced. <br>If the instance "
"contains multiple IP addresses, the first IP address that matches will be " "contains multiple IP addresses, the first IP address that matches will be "
@ -8962,11 +9063,11 @@ msgid ""
"10.1.1.1-10.1.1.20" "10.1.1.1-10.1.1.20"
msgstr "" msgstr ""
#: xpack/plugins/cloud/serializers/task.py:157 #: xpack/plugins/cloud/serializers/task.py:158
msgid "History count" msgid "History count"
msgstr "" msgstr ""
#: xpack/plugins/cloud/serializers/task.py:158 #: xpack/plugins/cloud/serializers/task.py:159
msgid "Instance count" msgid "Instance count"
msgstr "" msgstr ""
@ -8982,7 +9083,8 @@ msgstr ""
msgid "Restore default successfully." msgid "Restore default successfully."
msgstr "" msgstr ""
#: xpack/plugins/interface/meta.py:9 #: xpack/plugins/interface/meta.py:9 xpack/plugins/interface/models.py:45
#: xpack/plugins/interface/models.py:86
msgid "Interface settings" msgid "Interface settings"
msgstr "" msgstr ""
@ -9015,10 +9117,6 @@ msgstr ""
msgid "Footer content" msgid "Footer content"
msgstr "" msgstr ""
#: xpack/plugins/interface/models.py:45 xpack/plugins/interface/models.py:86
msgid "Interface setting"
msgstr ""
#: xpack/plugins/interface/serializers/interface.py:37 #: xpack/plugins/interface/serializers/interface.py:37
msgid "Wide logo on top" msgid "Wide logo on top"
msgstr "" msgstr ""
@ -9032,7 +9130,7 @@ msgid "License import successfully"
msgstr "" msgstr ""
#: xpack/plugins/license/api.py:53 #: xpack/plugins/license/api.py:53
msgid "License is invalid" msgid "Invalid license"
msgstr "" msgstr ""
#: xpack/plugins/license/meta.py:10 xpack/plugins/license/models.py:144 #: xpack/plugins/license/meta.py:10 xpack/plugins/license/models.py:144

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-13 17:25+0800\n" "POT-Creation-Date: 2024-05-13 18:52+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -390,7 +390,7 @@ msgstr "アカウントバックアップ計画"
#: accounts/models/automations/backup_account.py:120 #: accounts/models/automations/backup_account.py:120
#: assets/models/automations/base.py:115 audits/models.py:65 #: assets/models/automations/base.py:115 audits/models.py:65
#: ops/models/base.py:55 ops/models/celery.py:88 ops/models/job.py:241 #: ops/models/base.py:55 ops/models/celery.py:88 ops/models/job.py:241
#: ops/templates/ops/celery_task_log.html:75 #: ops/templates/ops/celery_task_log.html:95
#: perms/models/asset_permission.py:78 #: perms/models/asset_permission.py:78
#: settings/templates/ldap/_msg_import_ldap_user.html:5 #: settings/templates/ldap/_msg_import_ldap_user.html:5
#: terminal/models/applet/host.py:141 terminal/models/session/session.py:45 #: terminal/models/applet/host.py:141 terminal/models/session/session.py:45
@ -419,7 +419,8 @@ msgid "Trigger mode"
msgstr "トリガーモード" msgstr "トリガーモード"
#: accounts/models/automations/backup_account.py:134 audits/models.py:203 #: accounts/models/automations/backup_account.py:134 audits/models.py:203
#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/models.py:204 #: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:165
#: xpack/plugins/cloud/models.py:204
msgid "Reason" msgid "Reason"
msgstr "理由" msgstr "理由"
@ -652,7 +653,7 @@ msgstr "パスワードルール"
#: users/forms/profile.py:32 users/models/group.py:13 #: users/forms/profile.py:32 users/models/group.py:13
#: users/models/preference.py:11 users/models/user.py:874 #: users/models/preference.py:11 users/models/user.py:874
#: xpack/plugins/cloud/models.py:32 xpack/plugins/cloud/models.py:272 #: xpack/plugins/cloud/models.py:32 xpack/plugins/cloud/models.py:272
#: xpack/plugins/cloud/serializers/task.py:70 #: xpack/plugins/cloud/serializers/task.py:71
msgid "Name" msgid "Name"
msgstr "名前" msgstr "名前"
@ -842,6 +843,7 @@ msgstr "編集済み"
#: ops/models/job.py:152 ops/serializers/job.py:19 #: ops/models/job.py:152 ops/serializers/job.py:19
#: perms/serializers/permission.py:36 #: perms/serializers/permission.py:36
#: terminal/templates/terminal/_msg_command_execute_alert.html:16 #: terminal/templates/terminal/_msg_command_execute_alert.html:16
#: xpack/plugins/cloud/manager.py:73
msgid "Assets" msgid "Assets"
msgstr "資産" msgstr "資産"
@ -855,6 +857,7 @@ msgid "Asset does not support this secret type: %s"
msgstr "アセットはアカウント タイプをサポートしていません: %s" msgstr "アセットはアカウント タイプをサポートしていません: %s"
#: accounts/serializers/account/account.py:410 #: accounts/serializers/account/account.py:410
#: xpack/plugins/cloud/serializers/account.py:111
msgid "Account has exist" msgid "Account has exist"
msgstr "アカウントはすでに存在しています" msgstr "アカウントはすでに存在しています"
@ -1101,7 +1104,7 @@ msgid "Deleted account"
msgstr "アカウントの削除" msgstr "アカウントの削除"
#: accounts/templates/accounts/change_secret_failed_info.html:3 #: accounts/templates/accounts/change_secret_failed_info.html:3
#: ops/templates/ops/celery_task_log.html:71 terminal/serializers/task.py:10 #: terminal/serializers/task.py:10
msgid "Task name" msgid "Task name"
msgstr "タスク名" msgstr "タスク名"
@ -1315,7 +1318,7 @@ msgid "None of the reviewers belong to Organization `{}`"
msgstr "いずれのレビューアも組織 '{}' に属していません" msgstr "いずれのレビューアも組織 '{}' に属していません"
#: acls/serializers/rules/rules.py:20 #: acls/serializers/rules/rules.py:20
#: xpack/plugins/cloud/serializers/task.py:145 #: xpack/plugins/cloud/serializers/task.py:146
msgid "IP address invalid: `{}`" msgid "IP address invalid: `{}`"
msgstr "IPアドレスが無効: '{}'" msgstr "IPアドレスが無効: '{}'"
@ -1482,6 +1485,7 @@ msgstr "脚本"
#: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:71 #: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:71
#: settings/serializers/feature.py:49 settings/serializers/msg.py:31 #: settings/serializers/feature.py:49 settings/serializers/msg.py:31
#: terminal/models/component/endpoint.py:13 terminal/serializers/applet.py:17 #: terminal/models/component/endpoint.py:13 terminal/serializers/applet.py:17
#: xpack/plugins/cloud/manager.py:73
#: xpack/plugins/cloud/serializers/account_attrs.py:72 #: xpack/plugins/cloud/serializers/account_attrs.py:72
msgid "Host" msgid "Host"
msgstr "ホスト" msgstr "ホスト"
@ -2052,7 +2056,7 @@ msgstr ""
#: authentication/serializers/connect_token_secret.py:75 #: authentication/serializers/connect_token_secret.py:75
#: perms/models/asset_permission.py:76 perms/serializers/permission.py:46 #: perms/models/asset_permission.py:76 perms/serializers/permission.py:46
#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:328 #: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:328
#: xpack/plugins/cloud/serializers/task.py:33 #: xpack/plugins/cloud/serializers/task.py:34
msgid "Protocols" msgid "Protocols"
msgstr "プロトコル" msgstr "プロトコル"
@ -2400,6 +2404,7 @@ msgstr "マップディレクトリ"
#: audits/const.py:23 rbac/tree.py:238 terminal/api/session/session.py:277 #: audits/const.py:23 rbac/tree.py:238 terminal/api/session/session.py:277
#: terminal/templates/terminal/_msg_command_warning.html:18 #: terminal/templates/terminal/_msg_command_warning.html:18
#: terminal/templates/terminal/_msg_session_sharing.html:10 #: terminal/templates/terminal/_msg_session_sharing.html:10
#: xpack/plugins/cloud/manager.py:74
msgid "View" msgid "View"
msgstr "表示" msgstr "表示"
@ -2459,6 +2464,7 @@ msgstr "ログインログ"
#: audits/const.py:51 terminal/models/applet/host.py:144 #: audits/const.py:51 terminal/models/applet/host.py:144
#: terminal/models/component/task.py:22 #: terminal/models/component/task.py:22
#: xpack/plugins/cloud/serializers/account.py:55
msgid "Task" msgid "Task"
msgstr "タスク" msgstr "タスク"
@ -3723,7 +3729,7 @@ msgstr "ランニング"
msgid "Canceled" msgid "Canceled"
msgstr "キャンセル" msgstr "キャンセル"
#: common/const/common.py:5 #: common/const/common.py:5 xpack/plugins/cloud/manager.py:380
#, python-format #, python-format
msgid "%(name)s was created successfully" msgid "%(name)s was created successfully"
msgstr "%(name)s が正常に作成されました" msgstr "%(name)s が正常に作成されました"
@ -4389,6 +4395,7 @@ msgid "Result"
msgstr "結果" msgstr "結果"
#: ops/models/base.py:52 ops/models/job.py:238 #: ops/models/base.py:52 ops/models/job.py:238
#: xpack/plugins/cloud/manager.py:77
msgid "Summary" msgid "Summary"
msgstr "概要" msgstr "概要"
@ -4989,7 +4996,7 @@ msgstr "システム設定"
msgid "Session audits" msgid "Session audits"
msgstr "セッション監査" msgstr "セッション監査"
#: rbac/tree.py:49 #: rbac/tree.py:49 xpack/plugins/cloud/manager.py:74
msgid "Cloud import" msgid "Cloud import"
msgstr "クラウドインポート" msgstr "クラウドインポート"
@ -7370,7 +7377,8 @@ msgstr "アクセスキー"
msgid "Access key secret" msgid "Access key secret"
msgstr "アクセスキーシークレット" msgstr "アクセスキーシークレット"
#: terminal/serializers/storage.py:68 xpack/plugins/cloud/models.py:249 #: terminal/serializers/storage.py:68 xpack/plugins/cloud/manager.py:90
#: xpack/plugins/cloud/models.py:249
msgid "Region" msgid "Region"
msgstr "リージョン" msgstr "リージョン"
@ -8737,10 +8745,11 @@ msgstr "パスワードの成功をリセットし、ログインページに戻
msgid "XPACK" msgid "XPACK"
msgstr "XPack" msgstr "XPack"
#: xpack/exceptions.py:7 #: xpack/exceptions.py:8
msgid "" msgid ""
"The current task is not synchronized with unmatched policy assets, skipping" "Based on the current task configuration, assets that do not match the "
msgstr "" "strategy will skipped."
msgstr "現在のタスク構成に基づいて、未一致ポリシーの資産はスキップされます"
#: xpack/plugins/cloud/api.py:60 #: xpack/plugins/cloud/api.py:60
msgid "Test connection successful" msgid "Test connection successful"
@ -8862,19 +8871,19 @@ msgstr "インスタンス名と部分IP"
msgid "Succeed" msgid "Succeed"
msgstr "成功" msgstr "成功"
#: xpack/plugins/cloud/const.py:52 #: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:80
msgid "Unsync" msgid "Unsync"
msgstr "同期していません" msgstr "同期していません"
#: xpack/plugins/cloud/const.py:53 #: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:79
msgid "New Sync" msgid "New Sync"
msgstr "新しい同期" msgstr "新しい同期"
#: xpack/plugins/cloud/const.py:54 #: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:79
msgid "Synced" msgid "Synced"
msgstr "同期済み" msgstr "同期済み"
#: xpack/plugins/cloud/const.py:55 #: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:80
msgid "Released" msgid "Released"
msgstr "リリース済み" msgstr "リリース済み"
@ -8886,11 +8895,98 @@ msgstr "そして"
msgid "Or" msgid "Or"
msgstr "または" msgstr "または"
#: xpack/plugins/cloud/manager.py:55 xpack/plugins/cloud/providers/gcp.py:64 #: xpack/plugins/cloud/manager.py:41
#, python-format
msgid "Task \"%s\" starts executing"
msgstr "タスク \"%s\" の実行開始"
#: xpack/plugins/cloud/manager.py:45 xpack/plugins/cloud/manager.py:55
#: xpack/plugins/cloud/manager.py:57 xpack/plugins/cloud/providers/gcp.py:64
#: xpack/plugins/cloud/providers/huaweicloud.py:34 #: xpack/plugins/cloud/providers/huaweicloud.py:34
msgid "Account unavailable" msgid "Account unavailable"
msgstr "利用できないアカウント" msgstr "利用できないアカウント"
#: xpack/plugins/cloud/manager.py:71
msgid "View the task details path: "
msgstr "タスク詳細パスの表示: "
#: xpack/plugins/cloud/manager.py:74
msgid "Account Details"
msgstr "アカウントの詳細"
#: xpack/plugins/cloud/manager.py:75
msgid "Synchronization History List"
msgstr "履歴リストの同期"
#: xpack/plugins/cloud/manager.py:75
msgid "Synchronization Instance List"
msgstr "インスタンスリストの同期"
#: xpack/plugins/cloud/manager.py:83
msgid "Task execution completed"
msgstr "タスク実行完了"
#: xpack/plugins/cloud/manager.py:87
msgid "Synchronization regions"
msgstr "同期地域"
#: xpack/plugins/cloud/manager.py:110
#, python-format
msgid "Get instances of region \"%s\" error, error: %s"
msgstr "地域 \"%s\" のインスタンスを取得できませんでした、エラー:%s"
#: xpack/plugins/cloud/manager.py:128
#, python-format
msgid "The instance IP \"%s\" is not in network segment \"%s\""
msgstr "インスタンスのIP \"%s\" はネットワークセグメント \"%s\" にありません"
#: xpack/plugins/cloud/manager.py:164
#, python-format
msgid "Failed to synchronize the instance \"%s\""
msgstr "インスタンス \"%s\" の同期に失敗しました"
#: xpack/plugins/cloud/manager.py:316
#, python-format
msgid ""
"The updated platform of asset \"%s\" is inconsistent with the original "
"platform type. Skip platform and protocol updates"
msgstr "更新された資産 \"%s\" のプラットフォームタイプと元のタイプは一致しません。プラットフォームとプロトコルの更新をスキップ"
#: xpack/plugins/cloud/manager.py:358
#, python-format
msgid "The asset \"%s\" already exists"
msgstr "資産 \"%s\" はすでに存在します"
#: xpack/plugins/cloud/manager.py:362
#, python-format
msgid "Update asset \"%s\""
msgstr "資産の更新 \"%s\""
#: xpack/plugins/cloud/manager.py:365
#, python-format
msgid "Asset \"%s\" has been updated"
msgstr "資産 \"%s\" が更新されました"
#: xpack/plugins/cloud/manager.py:376
#, python-format
msgid "Prepare to create asset \"%s\""
msgstr "資産 \"%s\" の作成準備"
#: xpack/plugins/cloud/manager.py:388
#, python-format
msgid "Set nodes \"%s\""
msgstr "ノード \"%s\" の設定"
#: xpack/plugins/cloud/manager.py:414
#, python-format
msgid "Set accounts \"%s\""
msgstr "アカウント \"%s\" の設定"
#: xpack/plugins/cloud/manager.py:430
#, python-format
msgid "Set protocols \"%s\""
msgstr "プロトコル \"%s\" の設定"
#: xpack/plugins/cloud/meta.py:9 #: xpack/plugins/cloud/meta.py:9
msgid "Cloud center" msgid "Cloud center"
msgstr "クラウドセンター" msgstr "クラウドセンター"
@ -8900,7 +8996,7 @@ msgid "Provider"
msgstr "プロバイダー" msgstr "プロバイダー"
#: xpack/plugins/cloud/models.py:37 #: xpack/plugins/cloud/models.py:37
#: xpack/plugins/cloud/serializers/account.py:68 #: xpack/plugins/cloud/serializers/account.py:69
msgid "Attrs" msgid "Attrs"
msgstr "ツールバーの" msgstr "ツールバーの"
@ -8916,7 +9012,7 @@ msgstr "クラウドアカウント"
msgid "Test cloud account" msgid "Test cloud account"
msgstr "クラウドアカウントのテスト" msgstr "クラウドアカウントのテスト"
#: xpack/plugins/cloud/models.py:88 xpack/plugins/cloud/serializers/task.py:159 #: xpack/plugins/cloud/models.py:88 xpack/plugins/cloud/serializers/task.py:160
msgid "Regions" msgid "Regions"
msgstr "リージョン" msgstr "リージョン"
@ -8924,16 +9020,16 @@ msgstr "リージョン"
msgid "Hostname strategy" msgid "Hostname strategy"
msgstr "ホスト名戦略" msgstr "ホスト名戦略"
#: xpack/plugins/cloud/models.py:96 xpack/plugins/cloud/serializers/task.py:162 #: xpack/plugins/cloud/models.py:96 xpack/plugins/cloud/serializers/task.py:163
msgid "IP network segment group" msgid "IP network segment group"
msgstr "IPネットワークセグメントグループ" msgstr "IPネットワークセグメントグループ"
#: xpack/plugins/cloud/models.py:99 xpack/plugins/cloud/serializers/task.py:167 #: xpack/plugins/cloud/models.py:99 xpack/plugins/cloud/serializers/task.py:168
msgid "Sync IP type" msgid "Sync IP type"
msgstr "同期IPタイプ" msgstr "同期IPタイプ"
#: xpack/plugins/cloud/models.py:102 #: xpack/plugins/cloud/models.py:102
#: xpack/plugins/cloud/serializers/task.py:185 #: xpack/plugins/cloud/serializers/task.py:186
msgid "Always update" msgid "Always update"
msgstr "常に更新" msgstr "常に更新"
@ -8982,7 +9078,7 @@ msgstr "インスタンス"
msgid "Sync instance detail" msgid "Sync instance detail"
msgstr "同期インスタンスの詳細" msgstr "同期インスタンスの詳細"
#: xpack/plugins/cloud/models.py:275 xpack/plugins/cloud/serializers/task.py:72 #: xpack/plugins/cloud/models.py:275 xpack/plugins/cloud/serializers/task.py:73
msgid "Rule relation" msgid "Rule relation"
msgstr "条件関係" msgstr "条件関係"
@ -9038,7 +9134,7 @@ msgstr "ルール一致"
msgid "Rule value" msgid "Rule value"
msgstr "ルール値" msgstr "ルール値"
#: xpack/plugins/cloud/models.py:321 xpack/plugins/cloud/serializers/task.py:75 #: xpack/plugins/cloud/models.py:321 xpack/plugins/cloud/serializers/task.py:76
msgid "Strategy rule" msgid "Strategy rule"
msgstr "戦略ルール" msgstr "戦略ルール"
@ -9050,7 +9146,7 @@ msgstr "アクション属性"
msgid "Action value" msgid "Action value"
msgstr "アクション値" msgstr "アクション値"
#: xpack/plugins/cloud/models.py:345 xpack/plugins/cloud/serializers/task.py:78 #: xpack/plugins/cloud/models.py:345 xpack/plugins/cloud/serializers/task.py:79
msgid "Strategy action" msgid "Strategy action"
msgstr "戦略アクション" msgstr "戦略アクション"
@ -9244,11 +9340,16 @@ msgstr "TR-Istanbul"
msgid "CN East-Suqian" msgid "CN East-Suqian"
msgstr "華東-宿遷" msgstr "華東-宿遷"
#: xpack/plugins/cloud/serializers/account.py:69 #: xpack/plugins/cloud/providers/lan.py:79
#, python-format
msgid "Port \"%(port)s\" of instance IP \"%(ip)s\" is not reachable"
msgstr "インスタンスIP \"%(ip)s\" のポート \"%(port)s\" は接続できません"
#: xpack/plugins/cloud/serializers/account.py:70
msgid "Validity display" msgid "Validity display"
msgstr "有効表示" msgstr "有効表示"
#: xpack/plugins/cloud/serializers/account.py:70 #: xpack/plugins/cloud/serializers/account.py:71
msgid "Provider display" msgid "Provider display"
msgstr "プロバイダ表示" msgstr "プロバイダ表示"
@ -9344,7 +9445,7 @@ msgstr "テストタイムアウト"
msgid "Project" msgid "Project"
msgstr "project" msgstr "project"
#: xpack/plugins/cloud/serializers/task.py:151 #: xpack/plugins/cloud/serializers/task.py:152
msgid "" msgid ""
"Only instances matching the IP range will be synced. <br>If the instance " "Only instances matching the IP range will be synced. <br>If the instance "
"contains multiple IP addresses, the first IP address that matches will be " "contains multiple IP addresses, the first IP address that matches will be "
@ -9358,11 +9459,11 @@ msgstr ""
"ドレスをランダムに一致させることを意味します。 <br> 例: " "ドレスをランダムに一致させることを意味します。 <br> 例: "
"192.168.1.0/24,10.1.1.1-10.1.1.20。" "192.168.1.0/24,10.1.1.1-10.1.1.20。"
#: xpack/plugins/cloud/serializers/task.py:157 #: xpack/plugins/cloud/serializers/task.py:158
msgid "History count" msgid "History count"
msgstr "実行回数" msgstr "実行回数"
#: xpack/plugins/cloud/serializers/task.py:158 #: xpack/plugins/cloud/serializers/task.py:159
msgid "Instance count" msgid "Instance count"
msgstr "インスタンス数" msgstr "インスタンス数"
@ -9378,7 +9479,8 @@ msgstr "同期インスタンス タスクの実行記録を定期的にクリ
msgid "Restore default successfully." msgid "Restore default successfully."
msgstr "デフォルトの復元に成功しました。" msgstr "デフォルトの復元に成功しました。"
#: xpack/plugins/interface/meta.py:9 #: xpack/plugins/interface/meta.py:9 xpack/plugins/interface/models.py:45
#: xpack/plugins/interface/models.py:86
msgid "Interface settings" msgid "Interface settings"
msgstr "インターフェイスの設定" msgstr "インターフェイスの設定"
@ -9413,10 +9515,6 @@ msgstr "テーマ"
msgid "Footer content" msgid "Footer content"
msgstr "フッターの内容" msgstr "フッターの内容"
#: xpack/plugins/interface/models.py:45 xpack/plugins/interface/models.py:86
msgid "Interface setting"
msgstr "インターフェイスの設定"
#: xpack/plugins/interface/serializers/interface.py:37 #: xpack/plugins/interface/serializers/interface.py:37
msgid "Wide logo on top" msgid "Wide logo on top"
msgstr "" msgstr ""
@ -9430,8 +9528,8 @@ msgid "License import successfully"
msgstr "ライセンスのインポートに成功" msgstr "ライセンスのインポートに成功"
#: xpack/plugins/license/api.py:53 #: xpack/plugins/license/api.py:53
msgid "License is invalid" msgid "Invalid license"
msgstr "ライセンスが無効です" msgstr "無効なライセンス"
#: xpack/plugins/license/meta.py:10 xpack/plugins/license/models.py:144 #: xpack/plugins/license/meta.py:10 xpack/plugins/license/models.py:144
msgid "License" msgid "License"
@ -9453,6 +9551,32 @@ msgstr "エンタープライズプロフェッショナル版"
msgid "Ultimate edition" msgid "Ultimate edition"
msgstr "エンタープライズ・フラッグシップ・エディション" msgstr "エンタープライズ・フラッグシップ・エディション"
#, fuzzy
#~| msgid "permed assets"
#~ msgid "Release assets"
#~ msgstr "パーマ資産"
#, fuzzy
#~| msgid "MFA in login page"
#~ msgid "Title of login page"
#~ msgstr "ログインページのMFA"
#, fuzzy
#~| msgid "MFA in login page"
#~ msgid "Image of login page"
#~ msgstr "ログインページのMFA"
#, fuzzy
#~| msgid "Logout"
#~ msgid "Logo of logout page"
#~ msgstr "ログアウト"
#~ msgid "Interface setting"
#~ msgstr "インターフェイスの設定"
#~ msgid "License is invalid"
#~ msgstr "ライセンスが無効です"
#, fuzzy #, fuzzy
#~| msgid "Apply applications" #~| msgid "Apply applications"
#~ msgid "App Applications" #~ msgid "App Applications"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: JumpServer 0.3.3\n" "Project-Id-Version: JumpServer 0.3.3\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-13 17:25+0800\n" "POT-Creation-Date: 2024-05-13 18:52+0800\n"
"PO-Revision-Date: 2021-05-20 10:54+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n"
"Last-Translator: ibuler <ibuler@qq.com>\n" "Last-Translator: ibuler <ibuler@qq.com>\n"
"Language-Team: JumpServer team<ibuler@qq.com>\n" "Language-Team: JumpServer team<ibuler@qq.com>\n"
@ -389,7 +389,7 @@ msgstr "账号备份计划"
#: accounts/models/automations/backup_account.py:120 #: accounts/models/automations/backup_account.py:120
#: assets/models/automations/base.py:115 audits/models.py:65 #: assets/models/automations/base.py:115 audits/models.py:65
#: ops/models/base.py:55 ops/models/celery.py:88 ops/models/job.py:241 #: ops/models/base.py:55 ops/models/celery.py:88 ops/models/job.py:241
#: ops/templates/ops/celery_task_log.html:75 #: ops/templates/ops/celery_task_log.html:95
#: perms/models/asset_permission.py:78 #: perms/models/asset_permission.py:78
#: settings/templates/ldap/_msg_import_ldap_user.html:5 #: settings/templates/ldap/_msg_import_ldap_user.html:5
#: terminal/models/applet/host.py:141 terminal/models/session/session.py:45 #: terminal/models/applet/host.py:141 terminal/models/session/session.py:45
@ -418,7 +418,8 @@ msgid "Trigger mode"
msgstr "触发模式" msgstr "触发模式"
#: accounts/models/automations/backup_account.py:134 audits/models.py:203 #: accounts/models/automations/backup_account.py:134 audits/models.py:203
#: terminal/models/session/sharing.py:125 xpack/plugins/cloud/models.py:204 #: terminal/models/session/sharing.py:125 xpack/plugins/cloud/manager.py:165
#: xpack/plugins/cloud/models.py:204
msgid "Reason" msgid "Reason"
msgstr "原因" msgstr "原因"
@ -651,7 +652,7 @@ msgstr "密码规则"
#: users/forms/profile.py:32 users/models/group.py:13 #: users/forms/profile.py:32 users/models/group.py:13
#: users/models/preference.py:11 users/models/user.py:874 #: users/models/preference.py:11 users/models/user.py:874
#: xpack/plugins/cloud/models.py:32 xpack/plugins/cloud/models.py:272 #: xpack/plugins/cloud/models.py:32 xpack/plugins/cloud/models.py:272
#: xpack/plugins/cloud/serializers/task.py:70 #: xpack/plugins/cloud/serializers/task.py:71
msgid "Name" msgid "Name"
msgstr "名称" msgstr "名称"
@ -838,6 +839,7 @@ msgstr "已修改"
#: ops/models/job.py:152 ops/serializers/job.py:19 #: ops/models/job.py:152 ops/serializers/job.py:19
#: perms/serializers/permission.py:36 #: perms/serializers/permission.py:36
#: terminal/templates/terminal/_msg_command_execute_alert.html:16 #: terminal/templates/terminal/_msg_command_execute_alert.html:16
#: xpack/plugins/cloud/manager.py:73
msgid "Assets" msgid "Assets"
msgstr "资产" msgstr "资产"
@ -851,6 +853,7 @@ msgid "Asset does not support this secret type: %s"
msgstr "资产不支持账号类型: %s" msgstr "资产不支持账号类型: %s"
#: accounts/serializers/account/account.py:410 #: accounts/serializers/account/account.py:410
#: xpack/plugins/cloud/serializers/account.py:111
msgid "Account has exist" msgid "Account has exist"
msgstr "账号已存在" msgstr "账号已存在"
@ -1094,7 +1097,7 @@ msgid "Deleted account"
msgstr "删除账号" msgstr "删除账号"
#: accounts/templates/accounts/change_secret_failed_info.html:3 #: accounts/templates/accounts/change_secret_failed_info.html:3
#: ops/templates/ops/celery_task_log.html:71 terminal/serializers/task.py:10 #: terminal/serializers/task.py:10
msgid "Task name" msgid "Task name"
msgstr "任务名称" msgstr "任务名称"
@ -1142,8 +1145,6 @@ msgid "Review"
msgstr "审批" msgstr "审批"
#: acls/const.py:9 #: acls/const.py:9
#, fuzzy
#| msgid "Warning"
msgid "Warn" msgid "Warn"
msgstr "告警" msgstr "告警"
@ -1302,7 +1303,7 @@ msgid "None of the reviewers belong to Organization `{}`"
msgstr "所有复核人都不属于组织 `{}`" msgstr "所有复核人都不属于组织 `{}`"
#: acls/serializers/rules/rules.py:20 #: acls/serializers/rules/rules.py:20
#: xpack/plugins/cloud/serializers/task.py:145 #: xpack/plugins/cloud/serializers/task.py:146
msgid "IP address invalid: `{}`" msgid "IP address invalid: `{}`"
msgstr "IP 地址无效: `{}`" msgstr "IP 地址无效: `{}`"
@ -1464,6 +1465,7 @@ msgstr "脚本"
#: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:71 #: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:71
#: settings/serializers/feature.py:49 settings/serializers/msg.py:31 #: settings/serializers/feature.py:49 settings/serializers/msg.py:31
#: terminal/models/component/endpoint.py:13 terminal/serializers/applet.py:17 #: terminal/models/component/endpoint.py:13 terminal/serializers/applet.py:17
#: xpack/plugins/cloud/manager.py:73
#: xpack/plugins/cloud/serializers/account_attrs.py:72 #: xpack/plugins/cloud/serializers/account_attrs.py:72
msgid "Host" msgid "Host"
msgstr "主机" msgstr "主机"
@ -2032,7 +2034,7 @@ msgstr "资产中批量更新平台,不符合平台类型跳过的资产"
#: authentication/serializers/connect_token_secret.py:75 #: authentication/serializers/connect_token_secret.py:75
#: perms/models/asset_permission.py:76 perms/serializers/permission.py:46 #: perms/models/asset_permission.py:76 perms/serializers/permission.py:46
#: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:328 #: perms/serializers/user_permission.py:74 xpack/plugins/cloud/models.py:328
#: xpack/plugins/cloud/serializers/task.py:33 #: xpack/plugins/cloud/serializers/task.py:34
msgid "Protocols" msgid "Protocols"
msgstr "协议组" msgstr "协议组"
@ -2371,6 +2373,7 @@ msgstr "映射目录"
#: audits/const.py:23 rbac/tree.py:238 terminal/api/session/session.py:277 #: audits/const.py:23 rbac/tree.py:238 terminal/api/session/session.py:277
#: terminal/templates/terminal/_msg_command_warning.html:18 #: terminal/templates/terminal/_msg_command_warning.html:18
#: terminal/templates/terminal/_msg_session_sharing.html:10 #: terminal/templates/terminal/_msg_session_sharing.html:10
#: xpack/plugins/cloud/manager.py:74
msgid "View" msgid "View"
msgstr "查看" msgstr "查看"
@ -2430,6 +2433,7 @@ msgstr "登录日志"
#: audits/const.py:51 terminal/models/applet/host.py:144 #: audits/const.py:51 terminal/models/applet/host.py:144
#: terminal/models/component/task.py:22 #: terminal/models/component/task.py:22
#: xpack/plugins/cloud/serializers/account.py:55
msgid "Task" msgid "Task"
msgstr "任务" msgstr "任务"
@ -3666,7 +3670,7 @@ msgstr "运行中"
msgid "Canceled" msgid "Canceled"
msgstr "取消" msgstr "取消"
#: common/const/common.py:5 #: common/const/common.py:5 xpack/plugins/cloud/manager.py:380
#, python-format #, python-format
msgid "%(name)s was created successfully" msgid "%(name)s was created successfully"
msgstr "%(name)s 创建成功" msgstr "%(name)s 创建成功"
@ -4306,6 +4310,7 @@ msgid "Result"
msgstr "结果" msgstr "结果"
#: ops/models/base.py:52 ops/models/job.py:238 #: ops/models/base.py:52 ops/models/job.py:238
#: xpack/plugins/cloud/manager.py:77
msgid "Summary" msgid "Summary"
msgstr "汇总" msgstr "汇总"
@ -4884,7 +4889,7 @@ msgstr "系统设置"
msgid "Session audits" msgid "Session audits"
msgstr "会话审计" msgstr "会话审计"
#: rbac/tree.py:49 #: rbac/tree.py:49 xpack/plugins/cloud/manager.py:74
msgid "Cloud import" msgid "Cloud import"
msgstr "云同步" msgstr "云同步"
@ -7191,7 +7196,8 @@ msgstr "Access key ID(AK)"
msgid "Access key secret" msgid "Access key secret"
msgstr "Access key secret(SK)" msgstr "Access key secret(SK)"
#: terminal/serializers/storage.py:68 xpack/plugins/cloud/models.py:249 #: terminal/serializers/storage.py:68 xpack/plugins/cloud/manager.py:90
#: xpack/plugins/cloud/models.py:249
msgid "Region" msgid "Region"
msgstr "地域" msgstr "地域"
@ -8522,9 +8528,10 @@ msgstr "重置密码成功,返回到登录页面"
msgid "XPACK" msgid "XPACK"
msgstr "XPack" msgstr "XPack"
#: xpack/exceptions.py:7 #: xpack/exceptions.py:8
msgid "" msgid ""
"The current task is not synchronized with unmatched policy assets, skipping" "Based on the current task configuration, assets that do not match the "
"strategy will skipped."
msgstr "" msgstr ""
#: xpack/plugins/cloud/api.py:60 #: xpack/plugins/cloud/api.py:60
@ -8647,19 +8654,19 @@ msgstr "实例名称和部分IP"
msgid "Succeed" msgid "Succeed"
msgstr "成功" msgstr "成功"
#: xpack/plugins/cloud/const.py:52 #: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:80
msgid "Unsync" msgid "Unsync"
msgstr "未同步" msgstr "未同步"
#: xpack/plugins/cloud/const.py:53 #: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:79
msgid "New Sync" msgid "New Sync"
msgstr "新同步" msgstr "新同步"
#: xpack/plugins/cloud/const.py:54 #: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:79
msgid "Synced" msgid "Synced"
msgstr "已同步" msgstr "已同步"
#: xpack/plugins/cloud/const.py:55 #: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:80
msgid "Released" msgid "Released"
msgstr "已释放" msgstr "已释放"
@ -8671,11 +8678,98 @@ msgstr "与"
msgid "Or" msgid "Or"
msgstr "或" msgstr "或"
#: xpack/plugins/cloud/manager.py:55 xpack/plugins/cloud/providers/gcp.py:64 #: xpack/plugins/cloud/manager.py:41
#, python-format
msgid "Task \"%s\" starts executing"
msgstr "任务 \"%s\" 开始执行"
#: xpack/plugins/cloud/manager.py:45 xpack/plugins/cloud/manager.py:55
#: xpack/plugins/cloud/manager.py:57 xpack/plugins/cloud/providers/gcp.py:64
#: xpack/plugins/cloud/providers/huaweicloud.py:34 #: xpack/plugins/cloud/providers/huaweicloud.py:34
msgid "Account unavailable" msgid "Account unavailable"
msgstr "账号无效" msgstr "账号无效"
#: xpack/plugins/cloud/manager.py:71
msgid "View the task details path: "
msgstr "查看任务详情路径:"
#: xpack/plugins/cloud/manager.py:74
msgid "Account Details"
msgstr "账号详情"
#: xpack/plugins/cloud/manager.py:75
msgid "Synchronization History List"
msgstr "同步历史列表"
#: xpack/plugins/cloud/manager.py:75
msgid "Synchronization Instance List"
msgstr "同步实例列表"
#: xpack/plugins/cloud/manager.py:83
msgid "Task execution completed"
msgstr "任务执行完成"
#: xpack/plugins/cloud/manager.py:87
msgid "Synchronization regions"
msgstr "同步地域"
#: xpack/plugins/cloud/manager.py:110
#, python-format
msgid "Get instances of region \"%s\" error, error: %s"
msgstr "获取地域 \"%s\" 下的实例失败,错误:%s"
#: xpack/plugins/cloud/manager.py:128
#, python-format
msgid "The instance IP \"%s\" is not in network segment \"%s\""
msgstr "实例的IP \"%s\" 不在网段 \"%s\" 中"
#: xpack/plugins/cloud/manager.py:164
#, python-format
msgid "Failed to synchronize the instance \"%s\""
msgstr "同步实例 \"%s\" 失败"
#: xpack/plugins/cloud/manager.py:316
#, python-format
msgid ""
"The updated platform of asset \"%s\" is inconsistent with the original "
"platform type. Skip platform and protocol updates"
msgstr "更新的资产 \"%s\" 的平台类型和原类型不一致。跳过平台和协议更新"
#: xpack/plugins/cloud/manager.py:358
#, python-format
msgid "The asset \"%s\" already exists"
msgstr "资产 \"%s\" 已存在"
#: xpack/plugins/cloud/manager.py:362
#, python-format
msgid "Update asset \"%s\""
msgstr "更新资产 \"%s\""
#: xpack/plugins/cloud/manager.py:365
#, python-format
msgid "Asset \"%s\" has been updated"
msgstr "资产 \"%s\" 已更新"
#: xpack/plugins/cloud/manager.py:376
#, python-format
msgid "Prepare to create asset \"%s\""
msgstr "准备创建资产 \"%s\""
#: xpack/plugins/cloud/manager.py:388
#, python-format
msgid "Set nodes \"%s\""
msgstr "设置节点 \"%s\""
#: xpack/plugins/cloud/manager.py:414
#, python-format
msgid "Set accounts \"%s\""
msgstr "设置账号 \"%s\""
#: xpack/plugins/cloud/manager.py:430
#, python-format
msgid "Set protocols \"%s\""
msgstr "设置协议 \"%s\""
#: xpack/plugins/cloud/meta.py:9 #: xpack/plugins/cloud/meta.py:9
msgid "Cloud center" msgid "Cloud center"
msgstr "云管中心" msgstr "云管中心"
@ -8685,7 +8779,7 @@ msgid "Provider"
msgstr "云服务商" msgstr "云服务商"
#: xpack/plugins/cloud/models.py:37 #: xpack/plugins/cloud/models.py:37
#: xpack/plugins/cloud/serializers/account.py:68 #: xpack/plugins/cloud/serializers/account.py:69
msgid "Attrs" msgid "Attrs"
msgstr "属性" msgstr "属性"
@ -8701,7 +8795,7 @@ msgstr "云账号"
msgid "Test cloud account" msgid "Test cloud account"
msgstr "测试云账号" msgstr "测试云账号"
#: xpack/plugins/cloud/models.py:88 xpack/plugins/cloud/serializers/task.py:159 #: xpack/plugins/cloud/models.py:88 xpack/plugins/cloud/serializers/task.py:160
msgid "Regions" msgid "Regions"
msgstr "地域" msgstr "地域"
@ -8709,16 +8803,16 @@ msgstr "地域"
msgid "Hostname strategy" msgid "Hostname strategy"
msgstr "主机名策略" msgstr "主机名策略"
#: xpack/plugins/cloud/models.py:96 xpack/plugins/cloud/serializers/task.py:162 #: xpack/plugins/cloud/models.py:96 xpack/plugins/cloud/serializers/task.py:163
msgid "IP network segment group" msgid "IP network segment group"
msgstr "IP网段组" msgstr "IP网段组"
#: xpack/plugins/cloud/models.py:99 xpack/plugins/cloud/serializers/task.py:167 #: xpack/plugins/cloud/models.py:99 xpack/plugins/cloud/serializers/task.py:168
msgid "Sync IP type" msgid "Sync IP type"
msgstr "同步IP类型" msgstr "同步IP类型"
#: xpack/plugins/cloud/models.py:102 #: xpack/plugins/cloud/models.py:102
#: xpack/plugins/cloud/serializers/task.py:185 #: xpack/plugins/cloud/serializers/task.py:186
msgid "Always update" msgid "Always update"
msgstr "总是更新" msgstr "总是更新"
@ -8767,7 +8861,7 @@ msgstr "实例"
msgid "Sync instance detail" msgid "Sync instance detail"
msgstr "同步实例详情" msgstr "同步实例详情"
#: xpack/plugins/cloud/models.py:275 xpack/plugins/cloud/serializers/task.py:72 #: xpack/plugins/cloud/models.py:275 xpack/plugins/cloud/serializers/task.py:73
msgid "Rule relation" msgid "Rule relation"
msgstr "条件关系" msgstr "条件关系"
@ -8823,7 +8917,7 @@ msgstr "规则匹配"
msgid "Rule value" msgid "Rule value"
msgstr "规则值" msgstr "规则值"
#: xpack/plugins/cloud/models.py:321 xpack/plugins/cloud/serializers/task.py:75 #: xpack/plugins/cloud/models.py:321 xpack/plugins/cloud/serializers/task.py:76
msgid "Strategy rule" msgid "Strategy rule"
msgstr "条件" msgstr "条件"
@ -8835,7 +8929,7 @@ msgstr "动作属性"
msgid "Action value" msgid "Action value"
msgstr "动作值" msgstr "动作值"
#: xpack/plugins/cloud/models.py:345 xpack/plugins/cloud/serializers/task.py:78 #: xpack/plugins/cloud/models.py:345 xpack/plugins/cloud/serializers/task.py:79
msgid "Strategy action" msgid "Strategy action"
msgstr "动作" msgstr "动作"
@ -9029,11 +9123,16 @@ msgstr "TR-Istanbul"
msgid "CN East-Suqian" msgid "CN East-Suqian"
msgstr "华东-宿迁" msgstr "华东-宿迁"
#: xpack/plugins/cloud/serializers/account.py:69 #: xpack/plugins/cloud/providers/lan.py:79
#, python-format
msgid "Port \"%(port)s\" of instance IP \"%(ip)s\" is not reachable"
msgstr "实例 IP \"%(ip)s\" 的端口 \"%(port)s\" 不可连接"
#: xpack/plugins/cloud/serializers/account.py:70
msgid "Validity display" msgid "Validity display"
msgstr "有效性显示" msgstr "有效性显示"
#: xpack/plugins/cloud/serializers/account.py:70 #: xpack/plugins/cloud/serializers/account.py:71
msgid "Provider display" msgid "Provider display"
msgstr "服务商显示" msgstr "服务商显示"
@ -9126,7 +9225,7 @@ msgstr "测试超时时间"
msgid "Project" msgid "Project"
msgstr "project" msgstr "project"
#: xpack/plugins/cloud/serializers/task.py:151 #: xpack/plugins/cloud/serializers/task.py:152
msgid "" msgid ""
"Only instances matching the IP range will be synced. <br>If the instance " "Only instances matching the IP range will be synced. <br>If the instance "
"contains multiple IP addresses, the first IP address that matches will be " "contains multiple IP addresses, the first IP address that matches will be "
@ -9138,11 +9237,11 @@ msgstr ""
"到的 IP 地址将被用作创建的资产的 IP。<br>默认值 * 表示同步所有实例和随机匹配 " "到的 IP 地址将被用作创建的资产的 IP。<br>默认值 * 表示同步所有实例和随机匹配 "
"IP 地址。<br> 例如: 192.168.1.0/24,10.1.1.1-10.1.1.20。" "IP 地址。<br> 例如: 192.168.1.0/24,10.1.1.1-10.1.1.20。"
#: xpack/plugins/cloud/serializers/task.py:157 #: xpack/plugins/cloud/serializers/task.py:158
msgid "History count" msgid "History count"
msgstr "执行次数" msgstr "执行次数"
#: xpack/plugins/cloud/serializers/task.py:158 #: xpack/plugins/cloud/serializers/task.py:159
msgid "Instance count" msgid "Instance count"
msgstr "实例个数" msgstr "实例个数"
@ -9158,7 +9257,8 @@ msgstr "定期清除同步实例任务执行记录"
msgid "Restore default successfully." msgid "Restore default successfully."
msgstr "恢复默认成功!" msgstr "恢复默认成功!"
#: xpack/plugins/interface/meta.py:9 #: xpack/plugins/interface/meta.py:9 xpack/plugins/interface/models.py:45
#: xpack/plugins/interface/models.py:86
msgid "Interface settings" msgid "Interface settings"
msgstr "界面设置" msgstr "界面设置"
@ -9193,10 +9293,6 @@ msgstr "主题"
msgid "Footer content" msgid "Footer content"
msgstr "页脚内容" msgstr "页脚内容"
#: xpack/plugins/interface/models.py:45 xpack/plugins/interface/models.py:86
msgid "Interface setting"
msgstr "界面设置"
#: xpack/plugins/interface/serializers/interface.py:37 #: xpack/plugins/interface/serializers/interface.py:37
msgid "Wide logo on top" msgid "Wide logo on top"
msgstr "顶部宽 Logo" msgstr "顶部宽 Logo"
@ -9210,7 +9306,7 @@ msgid "License import successfully"
msgstr "许可证导入成功" msgstr "许可证导入成功"
#: xpack/plugins/license/api.py:53 #: xpack/plugins/license/api.py:53
msgid "License is invalid" msgid "Invalid license"
msgstr "无效的许可证" msgstr "无效的许可证"
#: xpack/plugins/license/meta.py:10 xpack/plugins/license/models.py:144 #: xpack/plugins/license/meta.py:10 xpack/plugins/license/models.py:144
@ -9233,6 +9329,29 @@ msgstr "企业专业版"
msgid "Ultimate edition" msgid "Ultimate edition"
msgstr "企业旗舰版" msgstr "企业旗舰版"
#, fuzzy
#~| msgid "permed assets"
#~ msgid "Release assets"
#~ msgstr "授权的资产"
#~ msgid "Title of login page"
#~ msgstr "登录页标题"
#~ msgid "Image of login page"
#~ msgstr "登录页图片"
#~ msgid "Logo of management page"
#~ msgstr "管理页面 Logo"
#~ msgid "Logo of logout page"
#~ msgstr "退出页面小 Logo"
#~ msgid "Interface setting"
#~ msgstr "界面设置"
#~ msgid "License is invalid"
#~ msgstr "无效的许可证"
#~ msgid "App Applications" #~ msgid "App Applications"
#~ msgstr "应用管理" #~ msgstr "应用管理"
@ -9305,18 +9424,6 @@ msgstr "企业旗舰版"
#~ msgid "Key password" #~ msgid "Key password"
#~ msgstr "密钥密码" #~ msgstr "密钥密码"
#~ msgid "Title of login page"
#~ msgstr "登录页标题"
#~ msgid "Image of login page"
#~ msgstr "登录页图片"
#~ msgid "Logo of management page"
#~ msgstr "管理页面 Logo"
#~ msgid "Logo of logout page"
#~ msgstr "退出页面小 Logo"
#~ msgid "Organization ID" #~ msgid "Organization ID"
#~ msgstr "组织 ID" #~ msgstr "组织 ID"

View File

@ -1,43 +1,44 @@
{ {
"ACLs": "ACLs",
"APIKey": "Api key", "APIKey": "Api key",
"AWS_China": "AWS(China)",
"AWS_Int": "AWS(International)",
"About": "About", "About": "About",
"Accept": "Accept", "Accept": "Accept",
"AccessIP": "Ip whitelist", "AccessIP": "Ip whitelist",
"AccessKey": "Access key", "AccessKey": "Access key",
"Account": "Account", "Account": "Account",
"AccountTemplateList": "Account templates",
"AccountBackup": "Backup accounts", "AccountBackup": "Backup accounts",
"AccountBackupCreate": "Create account backup", "AccountBackupCreate": "Create account backup",
"AccountBackupPlanCreate": "Create account backup", "AccountBackupDetail": "Backup account detail",
"AccountBackupPlanDetail": "Backup account detail", "AccountChangeSecretDetail": "Change secret account detail",
"AccountBackupPlanList": "Backup account list", "AccountBackupList": "Backup account",
"AccountBackupPlanUpdate": "Update the account backup plan",
"AccountBackupUpdate": "Update account backup", "AccountBackupUpdate": "Update account backup",
"AccountBatchUpdate": "Updated selected", "AccountChangeSecret": "Change account secret change",
"AccountChangeSecret": "Change account credential tasks",
"AccountCreate": "Create account",
"AccountDeleteConfirmMsg": "Delete account, continue?", "AccountDeleteConfirmMsg": "Delete account, continue?",
"AccountExportTips": "The exported information contains sensitive information such as encrypted account numbers. the exported format is an encrypted zip file (if you have not set the encryption password, please go to personal info to set the file encryption password).", "AccountExportTips": "The exported information contains sensitive information such as encrypted account numbers. the exported format is an encrypted zip file (if you have not set the encryption password, please go to personal info to set the file encryption password).",
"AccountGatherList": "Gather tasks", "GatheredAccountList": "Gathered accounts",
"AccountGatherTaskCreate": "Create gather accounts task", "AccountGatherList": "Gather accounts",
"AccountGatherDetail": "Gather account detail",
"AccountPushDetail": "Push account detail",
"AccountGatherTaskList": "Gather account tasks", "AccountGatherTaskList": "Gather account tasks",
"AccountGatherTaskCreate": "Create gather accounts task",
"AccountGatherTaskUpdate": "Update the gather accounts task", "AccountGatherTaskUpdate": "Update the gather accounts task",
"AccountList": "Accounts", "AccountList": "Accounts",
"AccountPolicy": "Account policy", "AccountPolicy": "Account policy",
"AccountPolicyHelpText": "For accounts that do not meet the requirements when creating, such as: non-compliant key types and unique key constraints, you can choose the above strategy.", "AccountPolicyHelpText": "For accounts that do not meet the requirements when creating, such as: non-compliant key types and unique key constraints, you can choose the above strategy.",
"AccountPushCreate": "Create push account task", "AccountPushCreate": "Create push account",
"AccountPushExecutionList": "Execute history", "AccountPushList": "Push accounts",
"AccountPushList": "Push account tasks", "AccountPushUpdate": "Update push account",
"AccountPushUpdate": "Update the push account task", "AccountStorage": "Account storage",
"AccountStorage": "Account", "AccountTemplate": "Account templates",
"AccountTemplate": "Template",
"AccountTemplateList": "Account templates",
"AccountTemplateUpdateSecretHelpText": "The account list shows the accounts created through the template. when the secret is updated, the ciphertext of the accounts created through the template will be updated.", "AccountTemplateUpdateSecretHelpText": "The account list shows the accounts created through the template. when the secret is updated, the ciphertext of the accounts created through the template will be updated.",
"AccountTemplates": "Templates",
"Accounts": "Accounts", "Accounts": "Accounts",
"Action": "Action", "Action": "Action",
"ActionCount": "Action count",
"PermAction": "Permission Action", "PermAction": "Permission Action",
"ActionCount": "Actions", "ActionSetting": "Action setting",
"ActionSetting": "Action settings",
"Actions": "Action", "Actions": "Action",
"ActionsTips": "The effects of each authority's agreement are different, click on the icon behind the authority to view", "ActionsTips": "The effects of each authority's agreement are different, click on the icon behind the authority to view",
"Activate": "Activate", "Activate": "Activate",
@ -50,9 +51,8 @@
"Activity": "Activities", "Activity": "Activities",
"Add": "Add", "Add": "Add",
"AddAccount": "Add account", "AddAccount": "Add account",
"AddAccountResult": "Account batch adding results",
"AddAccountByTemplate": "Add account from template", "AddAccountByTemplate": "Add account from template",
"AddAccountResult": "Second-level approver",
"AddAll": "Add all",
"AddAllMembersWarningMsg": "Are you sure add all user to this group ?", "AddAllMembersWarningMsg": "Are you sure add all user to this group ?",
"AddAsset": "Add assets", "AddAsset": "Add assets",
"AddAssetToNode": "Add assets to node", "AddAssetToNode": "Add assets to node",
@ -66,7 +66,6 @@
"AddUserGroupToThisPermission": "Add user groups", "AddUserGroupToThisPermission": "Add user groups",
"AddUserToThisPermission": "Add users", "AddUserToThisPermission": "Add users",
"Address": "Address", "Address": "Address",
"Addressee": "Recipient",
"AdhocDetail": "Command details", "AdhocDetail": "Command details",
"AdhocManage": "Command", "AdhocManage": "Command",
"AdhocUpdate": "Update the command", "AdhocUpdate": "Update the command",
@ -78,10 +77,8 @@
"All": "All", "All": "All",
"AllAccountTip": "All accounts already added on the asset", "AllAccountTip": "All accounts already added on the asset",
"AllAccounts": "All accounts", "AllAccounts": "All accounts",
"AllAsset": "All assets",
"AllClickRead": "All marked as read", "AllClickRead": "All marked as read",
"AllMembers": "All members", "AllMembers": "All members",
"AllUser": "All users",
"AllowInvalidCert": "Ignore certificate check", "AllowInvalidCert": "Ignore certificate check",
"Announcement": "Announcement", "Announcement": "Announcement",
"AnonymousAccount": "Anonymous accounts", "AnonymousAccount": "Anonymous accounts",
@ -129,8 +126,8 @@
"AssetAmount": "Asset amount", "AssetAmount": "Asset amount",
"AssetAndNode": "Assets/nodes", "AssetAndNode": "Assets/nodes",
"AssetBulkUpdateTips": "Network devices, cloud services, web, batch updating of zones not supported", "AssetBulkUpdateTips": "Network devices, cloud services, web, batch updating of zones not supported",
"AssetChangeSecretCreate": "Create change account credentials task", "AssetChangeSecretCreate": "Create account secret change",
"AssetChangeSecretUpdate": "Update the change account credentials task", "AssetChangeSecretUpdate": "Update account secret change",
"AssetData": "Asset", "AssetData": "Asset",
"AssetDetail": "Asset detail", "AssetDetail": "Asset detail",
"AssetList": "Assets", "AssetList": "Assets",
@ -144,7 +141,7 @@
"AssetPermissionHelpMsg": "Asset authorization allows you to select users and assets, grant the assets to users for access. once completed, users can conveniently view these assets. additionally, you can set specific permissions to further define the users' rights to the assets.", "AssetPermissionHelpMsg": "Asset authorization allows you to select users and assets, grant the assets to users for access. once completed, users can conveniently view these assets. additionally, you can set specific permissions to further define the users' rights to the assets.",
"AssetPermissionRules": "Authorization rules", "AssetPermissionRules": "Authorization rules",
"AssetPermissionUpdate": "Update the asset authorization rules", "AssetPermissionUpdate": "Update the asset authorization rules",
"AssetPermsAmount": "Asset authorization", "AssetPermsAmount": "Asset authorization number",
"AssetProtocolHelpText": "The protocols supported by the assets are restricted by the platform, click the settings button to view the protocol settings. if updates are required, please update the platform", "AssetProtocolHelpText": "The protocols supported by the assets are restricted by the platform, click the settings button to view the protocol settings. if updates are required, please update the platform",
"AssetTree": "Asset tree", "AssetTree": "Asset tree",
"Assets": "Assets", "Assets": "Assets",
@ -162,10 +159,8 @@
"AuthSAMLKeyHelpText": "Sp certificates and keys are used for encrypted communication with idp", "AuthSAMLKeyHelpText": "Sp certificates and keys are used for encrypted communication with idp",
"AuthSaml2UserAttrMapHelpText": "The keys on the left are saml2 user attributes, the values on the right are authentication platform user attributes", "AuthSaml2UserAttrMapHelpText": "The keys on the left are saml2 user attributes, the values on the right are authentication platform user attributes",
"AuthSecurity": "Auth security", "AuthSecurity": "Auth security",
"AuthSetting": "Authentication",
"AuthSettings": "Authentication configuration", "AuthSettings": "Authentication configuration",
"AuthUserAttrMapHelpText": "The key on the left belongs to the jumpserver user properties, and the value on the right belongs to the authentication platform user properties", "AuthUserAttrMapHelpText": "The key on the left belongs to the jumpserver user properties, and the value on the right belongs to the authentication platform user properties",
"PasswordAndSSHKey": "Password & SSH Key",
"Authentication": "Authentication", "Authentication": "Authentication",
"AutoPush": "Auto push", "AutoPush": "Auto push",
"Automations": "Automations", "Automations": "Automations",
@ -173,7 +168,6 @@
"AwaitingMyApproval": "Assigned", "AwaitingMyApproval": "Assigned",
"Azure": "Azure (china)", "Azure": "Azure (china)",
"Backup": "Backup", "Backup": "Backup",
"BackupAccounts": "Backup accounts",
"BackupAccountsHelpText": "Backup account information externally. it can be stored in an external system or sent via email, supporting segmented delivery.", "BackupAccountsHelpText": "Backup account information externally. it can be stored in an external system or sent via email, supporting segmented delivery.",
"BadConflictErrorMsg": "Refreshing, please try again later", "BadConflictErrorMsg": "Refreshing, please try again later",
"BadRequestErrorMsg": "Request error, please check the filled content", "BadRequestErrorMsg": "Request error, please check the filled content",
@ -183,14 +177,12 @@
"Basic": "Basic", "Basic": "Basic",
"BasicInfo": "Basic information", "BasicInfo": "Basic information",
"BasicSetting": "Basic", "BasicSetting": "Basic",
"BatchConsent": "Batch approval", "BatchConsent": "Batch Approval",
"BatchDeployment": "Batch deployment", "BatchDeployment": "Batch deployment",
"BatchProcessing": "{number} items selected", "BatchProcessing": "{number} items selected",
"BatchReject": "Batch reject", "BatchReject": "Batch reject",
"BatchTest": "Batch test", "BatchTest": "Batch test",
"BatchTransfer": "File transfer", "BatchTransfer": "File transfer",
"BatchUpdate": "Batch edit",
"BatchUpdatePlatformHelpTxt": "The asset will be updated only if the original platform type is the same as the selected platform type. if the platform types before and after the update are different, it will not be updated.",
"BeforeChange": "Before change", "BeforeChange": "Before change",
"Beian": "Record", "Beian": "Record",
"BelongAll": "Including at the same time", "BelongAll": "Including at the same time",
@ -201,7 +193,6 @@
"BindSuccess": "Binding successful", "BindSuccess": "Binding successful",
"BlockedIPS": "Locked ips", "BlockedIPS": "Locked ips",
"BuiltinVariable": "Built-in variables", "BuiltinVariable": "Built-in variables",
"BulkUnblock": "Batch unlock",
"CACertificate": "Ca certificate", "CACertificate": "Ca certificate",
"CAS": "Cas", "CAS": "Cas",
"CMPP2": "Cmpp v2.0", "CMPP2": "Cmpp v2.0",
@ -240,15 +231,19 @@
"ClickCopy": "Click to copy", "ClickCopy": "Click to copy",
"ClientCertificate": "Client certificate", "ClientCertificate": "Client certificate",
"ClipboardCopyPaste": "Clipboard copy and paste", "ClipboardCopyPaste": "Clipboard copy and paste",
"Clone": "Duplicate", "Clone": "Clone",
"CloneFrom": "Duplicate", "Duplicate": "Duplicate",
"Close": "Close", "Close": "Close",
"CloseConfirm": "Confirm close", "CloseConfirm": "Confirm close",
"CloseConfirmMessage": "File has changed, save?", "CloseConfirmMessage": "File has changed, save?",
"CloseStatus": "Completed", "CloseStatus": "Completed",
"Closed": "Completed", "Closed": "Completed",
"CloudAccountCreate": "Create a cloud account",
"CloudAccountDetail": "Details of cloud account",
"CloudAccountList": "Cloud accounts", "CloudAccountList": "Cloud accounts",
"CloudAccountUpdate": "Update the cloud account",
"CloudCreate": "Create asset - cloud", "CloudCreate": "Create asset - cloud",
"CloudRegionTip": "The region was not obtained, please check the account",
"CloudSource": "Sync source", "CloudSource": "Sync source",
"CloudSync": "Cloud provider", "CloudSync": "Cloud provider",
"CloudUpdate": "Update the asset - cloud", "CloudUpdate": "Update the asset - cloud",
@ -270,7 +265,6 @@
"CommandGroupDetail": "Command set details", "CommandGroupDetail": "Command set details",
"CommandGroupList": "Command group", "CommandGroupList": "Command group",
"CommandGroupUpdate": "Update the command group", "CommandGroupUpdate": "Update the command group",
"CommandJob": "Command",
"CommandStorage": "Command storage", "CommandStorage": "Command storage",
"CommandStorageUpdate": "Update the cmd storage", "CommandStorageUpdate": "Update the cmd storage",
"Commands": "Commands", "Commands": "Commands",
@ -283,6 +277,7 @@
"ConceptContent": "I want you to act like a python interpreter. i will give you python code, and you will execute it. do not provide any explanations. respond with nothing except the output of the code.", "ConceptContent": "I want you to act like a python interpreter. i will give you python code, and you will execute it. do not provide any explanations. respond with nothing except the output of the code.",
"ConceptTitle": "🤔 python interpreter", "ConceptTitle": "🤔 python interpreter",
"Config": "Settings", "Config": "Settings",
"Configured": "Configured",
"Confirm": "Confirm", "Confirm": "Confirm",
"ConfirmPassword": "Confirm password", "ConfirmPassword": "Confirm password",
"ConnectAssets": "Connect assets", "ConnectAssets": "Connect assets",
@ -295,8 +290,8 @@
"ConnectMethodAclUpdate": "Update the connect method control", "ConnectMethodAclUpdate": "Update the connect method control",
"ConnectWebSocketError": "Connection to websocket failed", "ConnectWebSocketError": "Connection to websocket failed",
"ConnectionDropped": "Connection disconnected", "ConnectionDropped": "Connection disconnected",
"ConnectionTokenList": "The connection token is a type of authentication information that combines identity verification with connecting assets. it supports one-click user login to assets. currently supported components include: koko, lion, magnus, razor, etc.",
"ConnectionToken": "Connection tokens", "ConnectionToken": "Connection tokens",
"ConnectionTokenList": "The connection token is a type of authentication information that combines identity verification with connecting assets. it supports one-click user login to assets. currently supported components include: koko, lion, magnus, razor, etc.",
"Console": "Console", "Console": "Console",
"Consult": "Consult", "Consult": "Consult",
"ContainAttachment": "With attachment", "ContainAttachment": "With attachment",
@ -320,6 +315,8 @@
"CreateSuccessMsg": "Successfully created !", "CreateSuccessMsg": "Successfully created !",
"CreateUserSetting": "User creation", "CreateUserSetting": "User creation",
"Created": "Created", "Created": "Created",
"Crontab": "Crontab",
"Interval": "Interval",
"CreatedBy": "Creator", "CreatedBy": "Creator",
"CriticalLoad": "Serious", "CriticalLoad": "Serious",
"CronExpression": "Complete crontab expression", "CronExpression": "Complete crontab expression",
@ -340,6 +337,7 @@
"CustomUser": "Customized user", "CustomUser": "Customized user",
"CycleFromWeek": "Week cycle from", "CycleFromWeek": "Week cycle from",
"CyclePerform": "Execute periodically", "CyclePerform": "Execute periodically",
"Danger": "Danger",
"DangerCommand": "Dangerous command", "DangerCommand": "Dangerous command",
"DangerousCommandNum": "Total dangerous commands", "DangerousCommandNum": "Total dangerous commands",
"Dashboard": "Dashboard", "Dashboard": "Dashboard",
@ -390,6 +388,7 @@
"DeviceUpdate": "Update the asset - device", "DeviceUpdate": "Update the asset - device",
"Digit": "Number", "Digit": "Number",
"DingTalk": "Dingtalk", "DingTalk": "Dingtalk",
"DingTalkOAuth": "DingTalk OAuth",
"DingTalkTest": "Test", "DingTalkTest": "Test",
"Disable": "Disable", "Disable": "Disable",
"DisableSelected": "Disable selected", "DisableSelected": "Disable selected",
@ -436,11 +435,11 @@
"Exclude": "Does not include", "Exclude": "Does not include",
"ExcludeAsset": "Skipped assets", "ExcludeAsset": "Skipped assets",
"ExcludeSymbol": "Exclude char", "ExcludeSymbol": "Exclude char",
"ExecCloudSyncErrorMsg": "The cloud account configuration is incomplete, please update and try again.",
"Execute": "Execute", "Execute": "Execute",
"ExecuteOnce": "Execute once", "ExecuteOnce": "Execute once",
"ExecutionDetail": "Execution history details", "ExecutionDetail": "Execution history details",
"ExecutionHistory": "History", "ExecutionList": "Executions",
"ExecutionList": "Execute history",
"ExistError": "This element already exists", "ExistError": "This element already exists",
"Existing": "Already exists", "Existing": "Already exists",
"ExpirationTimeout": "Expiration timeout (seconds)", "ExpirationTimeout": "Expiration timeout (seconds)",
@ -457,6 +456,7 @@
"FaviconTip": "Note: website icon (suggested image size: 16px*16px)", "FaviconTip": "Note: website icon (suggested image size: 16px*16px)",
"Features": "Features", "Features": "Features",
"FeiShu": "FeiShu", "FeiShu": "FeiShu",
"FeiShuOAuth": "Feishu OAuth",
"FeiShuTest": "Test", "FeiShuTest": "Test",
"FieldRequiredError": "This field is required", "FieldRequiredError": "This field is required",
"FileExplorer": "File explorer", "FileExplorer": "File explorer",
@ -464,6 +464,9 @@
"FileNameTooLong": "File name too long", "FileNameTooLong": "File name too long",
"FileSizeExceedsLimit": "File size exceeds limit", "FileSizeExceedsLimit": "File size exceeds limit",
"FileTransfer": "File transfer", "FileTransfer": "File transfer",
"FileTransferBootStepHelpTips1": "Select one asset or node",
"FileTransferBootStepHelpTips2": "Select running account and input command",
"FileTransferBootStepHelpTips3": "Transfer,display output results",
"FileTransferNum": "Number of file transfers", "FileTransferNum": "Number of file transfers",
"FileType": "File type", "FileType": "File type",
"Filename": "File name", "Filename": "File name",
@ -472,6 +475,7 @@
"FinishedTicket": "Complete ticket", "FinishedTicket": "Complete ticket",
"FirstLogin": "First login", "FirstLogin": "First login",
"FlowSetUp": "Flow setup", "FlowSetUp": "Flow setup",
"Footer": "Footer",
"FormatError": "Format error", "FormatError": "Format error",
"Friday": "Fri", "Friday": "Fri",
"From": "From", "From": "From",
@ -487,11 +491,11 @@
"GatewayUpdate": "Update the gateway", "GatewayUpdate": "Update the gateway",
"GatherAccounts": "Gather accounts", "GatherAccounts": "Gather accounts",
"GatherAccountsHelpText": "Collect account information on assets. the collected account information can be imported into the system for centralized management.", "GatherAccountsHelpText": "Collect account information on assets. the collected account information can be imported into the system for centralized management.",
"GatheredAccounts": "Gathered accounts",
"GeneralAccounts": "General accounts", "GeneralAccounts": "General accounts",
"Generate": "Generate", "Generate": "Generate",
"GenerateAccounts": "Regenerate account", "GenerateAccounts": "Regenerate account",
"GenerateSuccessMsg": "Account creation successful", "GenerateSuccessMsg": "Account creation successful",
"GenericSetting": "Generic",
"GoHomePage": "Go to homepage", "GoHomePage": "Go to homepage",
"Goto": "Go to", "Goto": "Go to",
"GrantedAssets": "Authorized assets", "GrantedAssets": "Authorized assets",
@ -513,7 +517,7 @@
"Host": "Asset", "Host": "Asset",
"HostCreate": "Create asset - host", "HostCreate": "Create asset - host",
"HostDeployment": "Deploy publishing machine", "HostDeployment": "Deploy publishing machine",
"HostList": "Host list", "HostList": "Host",
"HostUpdate": "Update the asset - host", "HostUpdate": "Update the asset - host",
"HostnameStrategy": "Used to generate hostnames for assets. for example: 1. instance name (instancedemo); 2. instance name and part of ip (last two letters) (instancedemo-250.1)", "HostnameStrategy": "Used to generate hostnames for assets. for example: 1. instance name (instancedemo); 2. instance name and part of ip (last two letters) (instancedemo-250.1)",
"Hour": "Hour", "Hour": "Hour",
@ -536,7 +540,7 @@
"ImportAll": "Import all", "ImportAll": "Import all",
"ImportFail": "Import failed", "ImportFail": "Import failed",
"ImportLdapUserTip": "Please submit ldap configuration before import", "ImportLdapUserTip": "Please submit ldap configuration before import",
"ImportLdapUserTitle": "Ldap user list", "ImportLdapUserTitle": "Ldap user",
"ImportLicense": "Import license", "ImportLicense": "Import license",
"ImportLicenseTip": "Please import license", "ImportLicenseTip": "Please import license",
"ImportMessage": "Please go to the corresponding type of page to import data", "ImportMessage": "Please go to the corresponding type of page to import data",
@ -547,6 +551,7 @@
"Inactive": "Disabled", "Inactive": "Disabled",
"Index": "Index", "Index": "Index",
"Info": "Information", "Info": "Information",
"InformationModification": "Information Modification",
"InheritPlatformConfig": "Inherited from platform configuration, to change, please modify the configuration in the platform", "InheritPlatformConfig": "Inherited from platform configuration, to change, please modify the configuration in the platform",
"InitialDeploy": "Initialization deployment", "InitialDeploy": "Initialization deployment",
"Input": "Input", "Input": "Input",
@ -588,18 +593,17 @@
"JobExecutionLog": "Job logs", "JobExecutionLog": "Job logs",
"JobManagement": "Jobs", "JobManagement": "Jobs",
"JobUpdate": "Update the job", "JobUpdate": "Update the job",
"KokoSettingUpdate": "Koko",
"LAN": "Bulk account add results",
"KingSoftCloud": "KingSoft Cloud", "KingSoftCloud": "KingSoft Cloud",
"KokoSetting": "KoKo", "KokoSetting": "KoKo",
"GenericSetting": "Generic",
"LDAPUser": "LDAP Users", "LDAPUser": "LDAP Users",
"Label": "Label", "Label": "Label",
"LAN": "LAN",
"LabelCreate": "Create label", "LabelCreate": "Create label",
"LabelInputFormatValidation": "Label format error, the correct format is: name:value", "LabelInputFormatValidation": "Label format error, the correct format is: name:value",
"LabelList": "Labels", "LabelList": "Labels",
"LabelUpdate": "Update the label", "LabelUpdate": "Update the label",
"Language": "Language", "Language": "Language",
"LarkOAuth": "Lark OAuth",
"Last30": "Recent 30 items", "Last30": "Recent 30 items",
"Last30Days": "Monthly", "Last30Days": "Monthly",
"Last7Days": "Weekly", "Last7Days": "Weekly",
@ -621,7 +625,7 @@
"LockedIP": "Locked ip {count}", "LockedIP": "Locked ip {count}",
"Log": "Log", "Log": "Log",
"LogData": "Log data", "LogData": "Log data",
"LogOfLoginSuccessNum": "The successful login logs", "LogOfLoginSuccessNum": "The successful login logs number",
"Logging": "Log record", "Logging": "Log record",
"LoginAssetConfirm": "Asset connect review", "LoginAssetConfirm": "Asset connect review",
"LoginAssetToday": "Active assets today", "LoginAssetToday": "Active assets today",
@ -638,6 +642,7 @@
"LoginNum": "Total login logs", "LoginNum": "Total login logs",
"LoginPasswordSetting": "Login password", "LoginPasswordSetting": "Login password",
"LoginRequiredMsg": "The account has logged out, please log in again.", "LoginRequiredMsg": "The account has logged out, please log in again.",
"LoginSSHKeySetting": "Login SSH Key",
"LoginSucceeded": "Login successful", "LoginSucceeded": "Login successful",
"LoginTitleTip": "Note: it will be displayed on the enterprise edition user ssh login koko login page (e.g.: welcome to use jumpserver open source bastion)", "LoginTitleTip": "Note: it will be displayed on the enterprise edition user ssh login koko login page (e.g.: welcome to use jumpserver open source bastion)",
"LoginUserRanking": "Login account ranking", "LoginUserRanking": "Login account ranking",
@ -645,19 +650,17 @@
"LoginUsers": "Active account", "LoginUsers": "Active account",
"LogoIndexTip": "Tip: it will be displayed in the upper left corner of the page (recommended image size: 185px*55px)", "LogoIndexTip": "Tip: it will be displayed in the upper left corner of the page (recommended image size: 185px*55px)",
"LogoLogoutTip": "Tip: it will be displayed on the web terminal page of enterprise edition users (recommended image size: 82px*82px)", "LogoLogoutTip": "Tip: it will be displayed on the web terminal page of enterprise edition users (recommended image size: 82px*82px)",
"LunaSettingUpdate": "Luna",
"MFAOfUserFirstLoginPersonalInformationImprovementPage": "Enable multi-factor authentication to make your account more secure. <br/>after enabling, you will enter the multi-factor authentication binding process the next time you log in; you can also directly bind in (personal information->quick modification->change multi-factor settings)!",
"MFAOfUserFirstLoginUserGuidePage": "In order to protect your and the company's security, please carefully safeguard important sensitive information such as your account, password, and key (for example, set a complex password, and enable multi-factor authentication) <br/> personal information such as email, mobile number, and wechat are only used for user authentication and platform internal message notifications.",
"MailRecipient": "Email recipient",
"Logout": "Sign out", "Logout": "Sign out",
"LogsAudit": "Activities", "LogsAudit": "Activities",
"Lowercase": "Lowercase", "Lowercase": "Lowercase",
"LunaSetting": "Luna", "LunaSetting": "Luna",
"MFAErrorMsg": "MFA errors, please check", "MFAErrorMsg": "MFA errors, please check",
"MFAOfUserFirstLoginPersonalInformationImprovementPage": "Enable multi-factor authentication to make your account more secure. <br/>after enabling, you will enter the multi-factor authentication binding process the next time you log in; you can also directly bind in (personal information->quick modification->change multi-factor settings)!",
"MFAOfUserFirstLoginUserGuidePage": "In order to protect your and the company's security, please carefully safeguard important sensitive information such as your account, password, and key (for example, set a complex password, and enable multi-factor authentication) <br/> personal information such as email, mobile number, and wechat are only used for user authentication and platform internal message notifications.",
"MailRecipient": "Email recipient",
"MailSend": "Sending", "MailSend": "Sending",
"ManualAccount": "Manual accounts", "ManualAccount": "Manual accounts",
"ManualAccountTip": "Manual input of username/password upon login", "ManualAccountTip": "Manual input of username/password upon login",
"ManualExecute": "Manual execution",
"ManyChoose": "Select multiple", "ManyChoose": "Select multiple",
"MarkAsRead": "Mark as read", "MarkAsRead": "Mark as read",
"Marketplace": "App market", "Marketplace": "App market",
@ -673,9 +676,7 @@
"MenuPermissions": "Policies", "MenuPermissions": "Policies",
"MenuUsers": "Users", "MenuUsers": "Users",
"Message": "Message", "Message": "Message",
"MessageSubscription": "Message subscription",
"MessageType": "Message type", "MessageType": "Message type",
"NotificationConfiguration": "Notification Configuration",
"MfaLevel": "MFA", "MfaLevel": "MFA",
"Min": "Min", "Min": "Min",
"Modify": "Edit", "Modify": "Edit",
@ -699,7 +700,10 @@
"NewDirectory": "Create new directory", "NewDirectory": "Create new directory",
"NewFile": "Create new file", "NewFile": "Create new file",
"NewPassword": "New password", "NewPassword": "New password",
"NewPublicKey": "New Public Key",
"NewSSHKey": "New SSH Key",
"NewSyncCount": "New sync", "NewSyncCount": "New sync",
"Next": "Next",
"No": "No", "No": "No",
"NoContent": "No content", "NoContent": "No content",
"NoData": "No data available", "NoData": "No data available",
@ -717,6 +721,7 @@
"NotSet": "Not set", "NotSet": "Not set",
"NotSpecialEmoji": "Special emoji input not allowed", "NotSpecialEmoji": "Special emoji input not allowed",
"Nothing": "None", "Nothing": "None",
"NotificationConfiguration": "Notification Configuration",
"Notifications": "Notifications", "Notifications": "Notifications",
"Now": "Now", "Now": "Now",
"Number": "No.", "Number": "No.",
@ -730,11 +735,9 @@
"OfflineSuccessMsg": "Successfully offline", "OfflineSuccessMsg": "Successfully offline",
"OfflineUpload": "Offline upload", "OfflineUpload": "Offline upload",
"OldPassword": "Old password", "OldPassword": "Old password",
"OldSSHKey": "Old ssh public key", "OldPublicKey": "Old Public Key",
"OneAssignee": "First-level approver", "OneAssignee": "First-level approver",
"OneAssigneeType": "First-level handler type", "OneAssigneeType": "First-level handler type",
"OldPublicKey": "Old Public Key",
"NewPublicKey": "New Public Key",
"OneClickReadMsg": "Are you sure you want to mark the current information as read?", "OneClickReadMsg": "Are you sure you want to mark the current information as read?",
"OnlineSession": "Online devices", "OnlineSession": "Online devices",
"OnlineSessionHelpMsg": "Unable to log out of the current session because it is the current user's online session. currently only users logged in via web are being logged.", "OnlineSessionHelpMsg": "Unable to log out of the current session because it is the current user's online session. currently only users logged in via web are being logged.",
@ -748,16 +751,17 @@
"OpenTicket": "Create ticket", "OpenTicket": "Create ticket",
"OperateLog": "Operate logs", "OperateLog": "Operate logs",
"OperationLogNum": "Operation logs", "OperationLogNum": "Operation logs",
"Options": "Options",
"OrgAdmin": "Organization admin", "OrgAdmin": "Organization admin",
"OrgAuditor": "Organizational auditors",
"OrgName": "Authorized organization name", "OrgName": "Authorized organization name",
"OrgRole": "Organizational roles",
"OrgRoleHelpMsg": "Organization roles are roles tailored to individual organizations within the platform. these roles are assigned when inviting users to join a particular organization and dictate their permissions and access levels within that organization. unlike system roles, organization roles are customizable and apply only within the scope of the organization they are assigned to.", "OrgRoleHelpMsg": "Organization roles are roles tailored to individual organizations within the platform. these roles are assigned when inviting users to join a particular organization and dictate their permissions and access levels within that organization. unlike system roles, organization roles are customizable and apply only within the scope of the organization they are assigned to.",
"OrgRoleHelpText": "The org role is the user's role within the current organization", "OrgRoleHelpText": "The org role is the user's role within the current organization",
"OrgRoles": "Organizational roles",
"OrgUser": "Organize users", "OrgUser": "Organize users",
"OrganizationCreate": "Create organization", "OrganizationCreate": "Create organization",
"OrganizationDetail": "Organization details", "OrganizationDetail": "Organization details",
"OrgAuditor": "Organizational auditors",
"OrgRole": "Organizational roles",
"OrgRoles": "Organizational roles",
"OrganizationList": "Organizations", "OrganizationList": "Organizations",
"OrganizationManage": "Manage orgs", "OrganizationManage": "Manage orgs",
"OrganizationUpdate": "Update the organization", "OrganizationUpdate": "Update the organization",
@ -774,6 +778,7 @@
"PasskeyAddDisableInfo": "Your authentication source is {source}, and adding a passkey is not supported", "PasskeyAddDisableInfo": "Your authentication source is {source}, and adding a passkey is not supported",
"Passphrase": "Key password", "Passphrase": "Key password",
"Password": "Password", "Password": "Password",
"PasswordAndSSHKey": "Password & SSH Key",
"PasswordChangeLog": "Password change", "PasswordChangeLog": "Password change",
"PasswordExpired": "Password expired", "PasswordExpired": "Password expired",
"PasswordPlaceholder": "Please enter password", "PasswordPlaceholder": "Please enter password",
@ -793,6 +798,8 @@
"PermissionName": "Authorization rule name", "PermissionName": "Authorization rule name",
"Permissions": "Permission", "Permissions": "Permission",
"PersonalInformationImprovement": "Complete personal information", "PersonalInformationImprovement": "Complete personal information",
"PersonalSettings": "Personal Settings",
"Phone": "Phone",
"Plan": "Plan", "Plan": "Plan",
"Platform": "Platform", "Platform": "Platform",
"PlatformCreate": "Create platform", "PlatformCreate": "Create platform",
@ -801,15 +808,15 @@
"PlatformPageHelpMsg": "The platform categorizes assets, such as windows, linux, network devices, etc. configuration settings, such as protocols, gateways, etc., can also be specified on the platform to determine whether certain features are enabled on assets.", "PlatformPageHelpMsg": "The platform categorizes assets, such as windows, linux, network devices, etc. configuration settings, such as protocols, gateways, etc., can also be specified on the platform to determine whether certain features are enabled on assets.",
"PlatformProtocolConfig": "Platform protocol configuration", "PlatformProtocolConfig": "Platform protocol configuration",
"PlatformUpdate": "Update the platform", "PlatformUpdate": "Update the platform",
"PlayBookJob": "Playbook",
"PlaybookDetail": "Playbook details", "PlaybookDetail": "Playbook details",
"PlaybookManage": "Playbook", "PlaybookManage": "Playbook",
"PlaybookUpdate": "Update the playbook", "PlaybookUpdate": "Update the playbook",
"PleaseAgreeToTheTerms": "Please agree to the terms", "PleaseAgreeToTheTerms": "Please agree to the terms",
"PleaseSelect": "Please select",
"PolicyName": "Policy name", "PolicyName": "Policy name",
"Port": "Port", "Port": "Port",
"Ports": "Port", "Ports": "Port",
"Preferences": "Preferences",
"Primary": "Primary",
"Priority": "Priority", "Priority": "Priority",
"PrivateCloud": "Private cloud", "PrivateCloud": "Private cloud",
"PrivateKey": "Private key", "PrivateKey": "Private key",
@ -818,7 +825,6 @@
"PrivilegedOnly": "Privileged accounts only", "PrivilegedOnly": "Privileged accounts only",
"PrivilegedTemplate": "Privileged", "PrivilegedTemplate": "Privileged",
"Product": "Product", "Product": "Product",
"Profile": "Profile",
"ProfileSetting": "Profile info", "ProfileSetting": "Profile info",
"Project": "Project name", "Project": "Project name",
"Prompt": "Prompt", "Prompt": "Prompt",
@ -833,8 +839,7 @@
"PublishAllApplets": "Publish all applications", "PublishAllApplets": "Publish all applications",
"PublishStatus": "Release status", "PublishStatus": "Release status",
"Push": "Push", "Push": "Push",
"PushAccount": "Push account", "PushAccount": "Push accounts",
"PushAccounts": "Push accounts",
"PushAccountsHelpText": "Pushing the account to the target asset allows for configuring different push methods for assets on different platforms.", "PushAccountsHelpText": "Pushing the account to the target asset allows for configuring different push methods for assets on different platforms.",
"PushParams": "Push parameters", "PushParams": "Push parameters",
"Qcloud": "Tencent cloud", "Qcloud": "Tencent cloud",
@ -950,15 +955,13 @@
"SMS": "Message", "SMS": "Message",
"SMSProvider": "SMS service provider", "SMSProvider": "SMS service provider",
"SMTP": "Email server", "SMTP": "Email server",
"SSHKeySetting": "Ssh key", "SSHKey": "SSH Key",
"SSHKeyOfProfileSSHUpdatePage": "You can reset and download the SSH public key by clicking the button below, or copy your SSH public key and submit it.",
"SSHPort": "SSH Port",
"SSHSecretKey": "SSH Key",
"SafeCommand": "Secure command", "SafeCommand": "Secure command",
"SameAccount": "Same accounts", "SameAccount": "Same accounts",
"SameAccountTip": "Accounts with the same username as authorized users", "SameAccountTip": "Accounts with the same username as authorized users",
"SSHKey": "SSH Key",
"SSHKeyOfProfileSSHUpdatePage": "You can reset and download the SSH public key by clicking the button below, or copy your SSH public key and submit it.",
"LoginSSHKeySetting": "Login SSH Key",
"SSHPort": "SSH Port",
"SSHSecretKey": "SSH Key",
"SameTypeAccountTip": "An account with the same username and key type already exists", "SameTypeAccountTip": "An account with the same username and key type already exists",
"Saturday": "Sat", "Saturday": "Sat",
"Save": "Save", "Save": "Save",
@ -975,6 +978,7 @@
"SearchAncestorNodePerm": "Search for authorizations simultaneously on the current node and ancestor nodes", "SearchAncestorNodePerm": "Search for authorizations simultaneously on the current node and ancestor nodes",
"Secret": "Password", "Secret": "Password",
"SecretKey": "Key", "SecretKey": "Key",
"SubscriptionID": "Subscription authorization ID",
"SecretKeyStrategy": "Password policy", "SecretKeyStrategy": "Password policy",
"Secure": "Security", "Secure": "Security",
"Security": "Security", "Security": "Security",
@ -1023,19 +1027,10 @@
"SetDingTalk": "Dingtalk oauth", "SetDingTalk": "Dingtalk oauth",
"SetFailed": "Setting failed", "SetFailed": "Setting failed",
"SetFeiShu": "Set feishu authentication", "SetFeiShu": "Set feishu authentication",
"SetSlack": "Slack oauth", "SetMFA": "Multi-factor authentication",
"SetStatus": "Status setting",
"SetSuccess": "Successfully set", "SetSuccess": "Successfully set",
"SetToDefault": "Set as default", "SetToDefault": "Set as default",
"SetToDefaultStorage": "Set as default storage", "SetToDefaultStorage": "Set as default storage",
"SetWeCom": "Wecom oauth",
"DingTalkOAuth": "DingTalk OAuth",
"FeiShuOAuth": "Feishu OAuth",
"LarkOAuth": "Lark OAuth",
"SetMFA": "Multi-factor authentication",
"SlackOAuth": "Slack OAuth",
"Configured": "Configured",
"WeComOAuth": "WeCom OAuth",
"Setting": "Setting", "Setting": "Setting",
"SettingInEndpointHelpText": "Configure service address and port in system settings / component settings / server endpoints", "SettingInEndpointHelpText": "Configure service address and port in system settings / component settings / server endpoints",
"Settings": "System settings", "Settings": "System settings",
@ -1049,6 +1044,7 @@
"Skip": "Skip this asset", "Skip": "Skip this asset",
"Skipped": "Skipped", "Skipped": "Skipped",
"Slack": "Slack", "Slack": "Slack",
"SlackOAuth": "Slack OAuth",
"Source": "Source", "Source": "Source",
"SourceIP": "Source address", "SourceIP": "Source address",
"SourcePort": "Source port", "SourcePort": "Source port",
@ -1056,9 +1052,7 @@
"SpecAccount": "Specified accounts", "SpecAccount": "Specified accounts",
"SpecAccountTip": "Specify username to choose authorized account", "SpecAccountTip": "Specify username to choose authorized account",
"SpecialSymbol": "Special char", "SpecialSymbol": "Special char",
"SpecificAsset": "Specific asset",
"SpecificInfo": "Special information", "SpecificInfo": "Special information",
"SpecificUser": "Specific user",
"SshKeyFingerprint": "Ssh fingerprint", "SshKeyFingerprint": "Ssh fingerprint",
"Startswith": "Starts with...", "Startswith": "Starts with...",
"State": "Status", "State": "Status",
@ -1067,6 +1061,7 @@
"StatusGreen": "Recently in good condition", "StatusGreen": "Recently in good condition",
"StatusRed": "Last task execution failed", "StatusRed": "Last task execution failed",
"StatusYellow": "There have been recent failures", "StatusYellow": "There have been recent failures",
"Step": "Step",
"Stop": "Stop", "Stop": "Stop",
"Storage": "Storage", "Storage": "Storage",
"StorageSetting": "Storage", "StorageSetting": "Storage",
@ -1074,7 +1069,7 @@
"StrategyCreate": "Create policy", "StrategyCreate": "Create policy",
"StrategyDetail": "Policy details", "StrategyDetail": "Policy details",
"StrategyHelpTip": "Identify the unique attributes of assets (such as platforms) based on priority of strategies; when an asset's attribute (like nodes) can be configured to multiple, all actions of the strategies will be executed.", "StrategyHelpTip": "Identify the unique attributes of assets (such as platforms) based on priority of strategies; when an asset's attribute (like nodes) can be configured to multiple, all actions of the strategies will be executed.",
"StrategyList": "Policy list", "StrategyList": "Policy",
"StrategyUpdate": "Update the policy", "StrategyUpdate": "Update the policy",
"SuEnabled": "Enable switch", "SuEnabled": "Enable switch",
"SuFrom": "Switch from", "SuFrom": "Switch from",
@ -1095,11 +1090,11 @@
"SyncErrorMsg": "Sync failed", "SyncErrorMsg": "Sync failed",
"SyncInstanceTaskCreate": "Create sync task", "SyncInstanceTaskCreate": "Create sync task",
"SyncInstanceTaskDetail": "Sync task details", "SyncInstanceTaskDetail": "Sync task details",
"SyncInstanceTaskHistoryAssetList": "Synchronize instance list", "SyncInstanceTaskHistoryAssetList": "Synchronize instance",
"SyncInstanceTaskHistoryList": "Synchronization history list", "SyncInstanceTaskHistoryList": "Synchronization history",
"SyncInstanceTaskList": "Synchronization task list", "SyncInstanceTaskList": "Synchronization task",
"SyncInstanceTaskUpdate": "Update the sync task", "SyncInstanceTaskUpdate": "Update the sync task",
"SyncProtocolToAsset": "Protocols to assets", "SyncProtocolToAsset": "Sync protocols to assets",
"SyncSelected": "Sync selected", "SyncSelected": "Sync selected",
"SyncSetting": "Sync settings", "SyncSetting": "Sync settings",
"SyncStrategy": "Sync policy", "SyncStrategy": "Sync policy",
@ -1119,13 +1114,13 @@
"Target": "Target", "Target": "Target",
"TargetResources": "Target resource", "TargetResources": "Target resource",
"Task": "Task", "Task": "Task",
"TestSelected": "Test selected",
"TaskDetail": "Task details", "TaskDetail": "Task details",
"TaskDone": "Task finished", "TaskDone": "Task finished",
"TaskID": "Task id", "TaskID": "Task id",
"TaskList": "System tasks", "TaskList": "System tasks",
"TaskMonitor": "Monitoring", "TaskMonitor": "Monitoring",
"TechnologyConsult": "Technical consultation", "TechnologyConsult": "Technical consultation",
"TempPassword": "The temporary password is valid for 300 seconds and becomes invalid immediately after use",
"TempPasswordTip": "The temporary password is valid for 300 seconds and becomes invalid immediately after use", "TempPasswordTip": "The temporary password is valid for 300 seconds and becomes invalid immediately after use",
"TempToken": "Temporary tokens", "TempToken": "Temporary tokens",
"TemplateAdd": "Add from template", "TemplateAdd": "Add from template",
@ -1203,7 +1198,6 @@
"UpdateNodeAssetHardwareInfo": "Update node assets hardware information", "UpdateNodeAssetHardwareInfo": "Update node assets hardware information",
"UpdatePlatformHelpText": "The asset will be updated only if the original platform type is the same as the selected platform type. if the platform types before and after the update are different, it will not be updated.", "UpdatePlatformHelpText": "The asset will be updated only if the original platform type is the same as the selected platform type. if the platform types before and after the update are different, it will not be updated.",
"UpdateSSHKey": "Change ssh public key", "UpdateSSHKey": "Change ssh public key",
"NewSSHKey": "New SSH Key",
"UpdateSelected": "Update selected", "UpdateSelected": "Update selected",
"UpdateSuccessMsg": "Successfully updated !", "UpdateSuccessMsg": "Successfully updated !",
"Updated": "Updated", "Updated": "Updated",
@ -1228,7 +1222,7 @@
"UserGroupDetail": "User group details", "UserGroupDetail": "User group details",
"UserGroupList": "Groups", "UserGroupList": "Groups",
"UserGroupUpdate": "Update the user group", "UserGroupUpdate": "Update the user group",
"UserInformation": "User info", "UserGroups": "Groups",
"UserList": "Users", "UserList": "Users",
"UserLoginACLHelpMsg": "When logging into the system, the user's login ip and time range can be audited to determine whether they are allowed to log into the system (effective globally)", "UserLoginACLHelpMsg": "When logging into the system, the user's login ip and time range can be audited to determine whether they are allowed to log into the system (effective globally)",
"UserLoginACLHelpText": "When logging in, it can be audited based on the user's login ip and time segment to determine whether the user can log in", "UserLoginACLHelpText": "When logging in, it can be audited based on the user's login ip and time segment to determine whether the user can log in",
@ -1239,12 +1233,7 @@
"UserLoginLimit": "User restriction", "UserLoginLimit": "User restriction",
"UserLoginTrend": "Account login trend", "UserLoginTrend": "Account login trend",
"UserPasswordChangeLog": "User password change log", "UserPasswordChangeLog": "User password change log",
"UserProfile": "Profile",
"UserSession": "Asset sessions", "UserSession": "Asset sessions",
"UserSetting": "Preference",
"UserGroups": "Groups",
"PersonalSettings": "Personal Settings",
"Preferences": "Preferences",
"UserSwitchFrom": "Switch from", "UserSwitchFrom": "Switch from",
"UserUpdate": "Update the user", "UserUpdate": "Update the user",
"Username": "Username", "Username": "Username",
@ -1265,14 +1254,17 @@
"ViewMore": "View more", "ViewMore": "View more",
"ViewPerm": "View", "ViewPerm": "View",
"ViewSecret": "View ciphertext", "ViewSecret": "View ciphertext",
"VirtualAccountDetail": "Details of virtual account", "VirtualAccountDetail": "Virtual account detail",
"VirtualAccountHelpMsg": "Virtual accounts are specialized accounts with specific purposes when connecting assets.", "VirtualAccountHelpMsg": "Virtual accounts are specialized accounts with specific purposes when connecting assets.",
"VirtualAccountUpdate": "Virtual account update", "VirtualAccountUpdate": "Virtual account update",
"VirtualAccounts": "Virtual accounts", "VirtualAccounts": "Virtual accounts",
"VirtualApp": "Virtual app", "VirtualApp": "Virtual app",
"VirtualAppDetail": "Virtual app details", "VirtualAppDetail": "Virtual app details",
"VirtualApps": "Virtual app", "VirtualApps": "Virtual app",
"Volcengine": "Volcengine",
"Warning": "Warning",
"WeCom": "Wecom", "WeCom": "Wecom",
"WeComOAuth": "WeCom OAuth",
"WeComTest": "Test", "WeComTest": "Test",
"WebCreate": "Create asset - web", "WebCreate": "Create asset - web",
"WebHelpMessage": "Web type assets depend on remote applications, please go to system settings and configure in remote applications", "WebHelpMessage": "Web type assets depend on remote applications, please go to system settings and configure in remote applications",
@ -1289,6 +1281,7 @@
"Workbench": "Workbench", "Workbench": "Workbench",
"Workspace": "Workspace", "Workspace": "Workspace",
"Yes": "Yes", "Yes": "Yes",
"YourProfile": "Your profile",
"ZStack": "ZStack", "ZStack": "ZStack",
"Zone": "Zone", "Zone": "Zone",
"ZoneCreate": "Create zone", "ZoneCreate": "Create zone",
@ -1296,8 +1289,5 @@
"ZoneHelpMessage": "The zone is the location where assets are located, which can be a data center, public cloud, or VPC. Gateways can be set up within the region. When the network cannot be directly accessed, users can utilize gateways to log in to the assets.", "ZoneHelpMessage": "The zone is the location where assets are located, which can be a data center, public cloud, or VPC. Gateways can be set up within the region. When the network cannot be directly accessed, users can utilize gateways to log in to the assets.",
"ZoneList": "Zones", "ZoneList": "Zones",
"ZoneUpdate": "Update the zone", "ZoneUpdate": "Update the zone",
"YourProfile": "Your profile", "TailLog": "Tail Log"
"AccessKeys": "Access keys",
"InformationModification": "Information Modification",
"Phone": "Phone"
} }

View File

@ -1,8 +1,8 @@
{ {
"": "", "ACLs": "アクセス制御",
"APIKey": "APIキー", "APIKey": "APIキー",
"AWS_China": "AWS(中国)", "AWS_China": "AWS(中国)",
"AWS_Int": "AWS (国際)", "AWS_Int": "AWS (インターナショナル)",
"About": "について", "About": "について",
"Accept": "同意する", "Accept": "同意する",
"AccessIP": "Access IP", "AccessIP": "Access IP",
@ -14,26 +14,23 @@
"AccountBackupList": "アカウントのバックアップリスト", "AccountBackupList": "アカウントのバックアップリスト",
"AccountBackupUpdate": "アカウントのバックアップを更新する", "AccountBackupUpdate": "アカウントのバックアップを更新する",
"AccountChangeSecret": "アカウントのパスワード変更", "AccountChangeSecret": "アカウントのパスワード変更",
"AccountCreate": "アカウントの作成",
"AccountDeleteConfirmMsg": "アカウントを削除します,続行しますか?", "AccountDeleteConfirmMsg": "アカウントを削除します,続行しますか?",
"AccountDetail": "アカウントの詳細",
"AccountEnabled": "アカウントを有効にする",
"AccountExportTips": "エクスポート情報には機密情報を含むアカウント暗号文が含まれており、エクスポートされたフォーマットは暗号化されたzipファイルです暗号化パスワードが設定されていない場合は、個人情報にファイル暗号化パスワードを設定してください。", "AccountExportTips": "エクスポート情報には機密情報を含むアカウント暗号文が含まれており、エクスポートされたフォーマットは暗号化されたzipファイルです暗号化パスワードが設定されていない場合は、個人情報にファイル暗号化パスワードを設定してください。",
"AccountGather": "アカウントのコレクション", "AccountGatherList": "アカウントの収集",
"AccountGatherList": "収集タスク", "AccountGatherTaskList": "アカウント収集タスク",
"AccountGatherTaskCreate": "タスクを作成", "AccountGatherTaskCreate": "アカウント収集タスクを作成します",
"AccountGatherTaskUpdate": "アカウント収集タスクを更新",
"AccountList": "アカウントリスト",
"AccountPolicy": "アカウントポリシー",
"AccountPolicyHelpText": "非準拠のキー タイプや一意のキー制約など、作成時に要件を満たさないアカウントの場合は、上記の戦略を選択できます。",
"AccountPushExecutionList": "アカウントプッシュ実行リスト",
"AccountPushCreate": "アカウントプッシュの作成",
"AccountPushList": "アカウントプッシュ",
"AccountPushUpdate": "アカウントのプッシュを更新",
"AccountGatherTaskExecutionList": "タスク実行リスト", "AccountGatherTaskExecutionList": "タスク実行リスト",
"AccountGatherTaskList": "アカウントのコレクション",
"AccountGatherTaskUpdate": "更新タスク",
"AccountHelpText": "クラウドアカウントはクラウドサービスプロバイダーに接続し、プロバイダーのリソース情報にアクセスするためのアカウントです", "AccountHelpText": "クラウドアカウントはクラウドサービスプロバイダーに接続し、プロバイダーのリソース情報にアクセスするためのアカウントです",
"AccountHistoryHelpMessage": "現在のアカウントの履歴バージョンを記録する", "AccountHistoryHelpMessage": "現在のアカウントの履歴バージョンを記録する",
"AccountList": "アカウントリスト",
"AccountName": "Account name", "AccountName": "Account name",
"AccountPolicy": "アカウントポリシー",
"AccountPushCreate": "アカウントのプッシュ作成",
"AccountPushExecutionList": "実行リスト",
"AccountPushList": "アカウントプッシュ",
"AccountPushUpdate": "アカウントプッシュ更新",
"AccountStorage": "アカウントストレージ", "AccountStorage": "アカウントストレージ",
"AccountTemplate": "アカウントテンプレート", "AccountTemplate": "アカウントテンプレート",
"AccountTemplateUpdateSecretHelpText": "アカウントリストには、テンプレートで作成されたアカウントが表示されます。暗号文を更新すると、テンプレートで作成されたアカウントの暗号文が更新されます。", "AccountTemplateUpdateSecretHelpText": "アカウントリストには、テンプレートで作成されたアカウントが表示されます。暗号文を更新すると、テンプレートで作成されたアカウントの暗号文が更新されます。",
@ -262,7 +259,7 @@
"CMPP2": "CMPP v2.0", "CMPP2": "CMPP v2.0",
"CTYunPrivate": "天翼プライベート・クラウド", "CTYunPrivate": "天翼プライベート・クラウド",
"CanDragSelect": "マウスをドラッグして時間帯を選択", "CanDragSelect": "マウスをドラッグして時間帯を選択",
"Cancel": "確認", "Cancel": "キャンセル",
"CancelCollection": "収集の取消し", "CancelCollection": "収集の取消し",
"CannotAccess": "現在のページにアクセスできません", "CannotAccess": "現在のページにアクセスできません",
"Cas": "Cas設定", "Cas": "Cas設定",
@ -302,6 +299,10 @@
"CloseStatus": "閉じる", "CloseStatus": "閉じる",
"Closed": "完了しました", "Closed": "完了しました",
"Cloud": "クラウド管理センター", "Cloud": "クラウド管理センター",
"CloudAccountCreate": "クラウドアカウントの作成",
"CloudAccountDetail": "クラウドアカウントの詳細",
"CloudAccountList": "クラウドアカウント",
"CloudAccountUpdate": "クラウドアカウントの更新",
"CloudCenter": "クラウド管理センター", "CloudCenter": "クラウド管理センター",
"CloudCreate": "アセット作成 - クラウドプラットフォーム", "CloudCreate": "アセット作成 - クラウドプラットフォーム",
"CloudPlatform": "クラウドプラットフォーム", "CloudPlatform": "クラウドプラットフォーム",
@ -342,6 +343,7 @@
"CommandStorageUpdate": "コマンドストアの更新", "CommandStorageUpdate": "コマンドストアの更新",
"Commands": "コマンド記録", "Commands": "コマンド記録",
"Comment": "備考", "Comment": "備考",
"CommandsTotal": "コマンド記録総数",
"CommentHelpText": "注意コメント情報はLunaページのユーザー認可資産ツリーに表示されます。一般ユーザーは表示できますので、機密情報を記入しないでください。", "CommentHelpText": "注意コメント情報はLunaページのユーザー認可資産ツリーに表示されます。一般ユーザーは表示できますので、機密情報を記入しないでください。",
"CommonUser": "一般ユーザー", "CommonUser": "一般ユーザー",
"CommunityEdition": "社区版", "CommunityEdition": "社区版",
@ -410,6 +412,7 @@
"CustomUser": "カスタムユーザー", "CustomUser": "カスタムユーザー",
"CyclePerform": "サイクル実行", "CyclePerform": "サイクル実行",
"DBInfo": "データベース情報", "DBInfo": "データベース情報",
"Danger": "危険",
"DangerCommand": "危険命令", "DangerCommand": "危険命令",
"DangerousCommandNum": "危険命令数", "DangerousCommandNum": "危険命令数",
"Dashboard": "ダッシュボード", "Dashboard": "ダッシュボード",
@ -550,6 +553,7 @@
"Failed": "失敗", "Failed": "失敗",
"FailedAsset": "失敗したアセット", "FailedAsset": "失敗したアセット",
"False": "いいえ", "False": "いいえ",
"FaviconTip": "ヒントWebサイトアイコン推奨画像サイズ16px*16px",
"Feature": "機能", "Feature": "機能",
"Features": "機能有効", "Features": "機能有効",
"FeiShu": "本を飛ばす", "FeiShu": "本を飛ばす",
@ -558,6 +562,9 @@
"FileNameTooLong": "ファイル名が長すぎます", "FileNameTooLong": "ファイル名が長すぎます",
"FileSizeExceedsLimit": "ファイルサイズが制限を超えています", "FileSizeExceedsLimit": "ファイルサイズが制限を超えています",
"FileTransfer": "ファイル転送", "FileTransfer": "ファイル転送",
"FileTransferBootStepHelpTips1": "アセットまたはードを1つ選択してください",
"FileTransferBootStepHelpTips2": "実行アカウントを選択し、コマンドを入力してください",
"FileTransferBootStepHelpTips3": "転送し、出力結果を表示します",
"FileTransferNum": "ファイル転送数", "FileTransferNum": "ファイル転送数",
"Filename": "ファイル名", "Filename": "ファイル名",
"FingerPrint": "指紋", "FingerPrint": "指紋",
@ -736,7 +743,7 @@
"LockedIP": "ロックされた IP {count} 個", "LockedIP": "ロックされた IP {count} 個",
"Log": "ログ", "Log": "ログ",
"LogData": "ログデータ", "LogData": "ログデータ",
"LogOfLoginSuccessNum": "ログイン成功ログ数", "LoginLogTotal": "ログイン成功ログ数",
"Logging": "ログ記録", "Logging": "ログ記録",
"Login": "ユーザー登録", "Login": "ユーザー登録",
"LoginAssetConfirm": "資産ログインの確認", "LoginAssetConfirm": "資産ログインの確認",
@ -749,6 +756,7 @@
"LoginDate": "ログイン日", "LoginDate": "ログイン日",
"LoginFailed": "ログインに失敗", "LoginFailed": "ログインに失敗",
"LoginIP": "ログインIP", "LoginIP": "ログインIP",
"LoginImageTip": "ヒントエンタープライズ版ユーザーログインページに表示されます推奨画像サイズ492*472px",
"LoginLog": "ログインログ", "LoginLog": "ログインログ",
"LoginModeHelpMessage": "手動ログインモードを選択した場合、ユーザー名とパスワードは入力しないことができます", "LoginModeHelpMessage": "手動ログインモードを選択した場合、ユーザー名とパスワードは入力しないことができます",
"LoginModel": "ログインモード", "LoginModel": "ログインモード",
@ -758,9 +766,12 @@
"LoginPasswordSetting": "ログインパスワード設定", "LoginPasswordSetting": "ログインパスワード設定",
"LoginRequiredMsg": "アカウントが終了しました。ログインし直してください", "LoginRequiredMsg": "アカウントが終了しました。ログインし直してください",
"LoginSucceeded": "ログイン成功", "LoginSucceeded": "ログイン成功",
"LoginTitleTip": "ヒント: エンタープライズ版ユーザーの SSH ログイン KoKo ログイン ページに表示されます (例: JumpServer オープン ソースマシンの使用へようこそ)",
"LoginTo": "ログインしました", "LoginTo": "ログインしました",
"LoginUserRanking": "セッションユーザーランキング", "LoginUserRanking": "セッションユーザーランキング",
"LoginUserToday": "今日のログインユーザー数", "LoginUserToday": "今日のログインユーザー数",
"LogoIndexTip": "ヒント管理ページの左上に表示されます推奨画像サイズ185px*55px",
"LogoLogoutTip": "ヒントエンタープライズ版ユーザーのWeb端末ページに表示されます推奨画像サイズ82px*82px",
"Logout": "ログインを終了する", "Logout": "ログインを終了する",
"LogsAudit": "ログ監査", "LogsAudit": "ログ監査",
"Lowercase": "小文字", "Lowercase": "小文字",
@ -777,7 +788,6 @@
"MailSend": "メール送信", "MailSend": "メール送信",
"ManualAccount": "手动账号", "ManualAccount": "手动账号",
"ManualAccountTip": "ログイン時にユーザー名とパスワードを手動で入力する", "ManualAccountTip": "ログイン時にユーザー名とパスワードを手動で入力する",
"ManualExecutePlan": "計画を手動で実行する",
"ManualInput": "手動入力", "ManualInput": "手動入力",
"MarkAsRead": "マークはすでに読みました。", "MarkAsRead": "マークはすでに読みました。",
"Marketplace": "マーケットプレイス", "Marketplace": "マーケットプレイス",
@ -825,6 +835,7 @@
"NewPassword": "新しいパスワード", "NewPassword": "新しいパスワード",
"NewSecret": "新しい秘密", "NewSecret": "新しい秘密",
"NewSyncCount": "新しい同期", "NewSyncCount": "新しい同期",
"Next": "次のステップ",
"No": "いいえ", "No": "いいえ",
"NoContent": "まだ内容がない", "NoContent": "まだ内容がない",
"NoData": "データなし", "NoData": "データなし",
@ -887,6 +898,7 @@
"OperateRecord": "操作記録です", "OperateRecord": "操作記録です",
"OperationLogNum": "操作ログ数", "OperationLogNum": "操作ログ数",
"Ops": "タスク", "Ops": "タスク",
"Options": "オプション",
"OracleDBNameHelpText": "Oracle データベースの SID またはサービス名を入力してください", "OracleDBNameHelpText": "Oracle データベースの SID またはサービス名を入力してください",
"OrgAdmin": "組織管理者", "OrgAdmin": "組織管理者",
"OrgAuditor": "組織監査人", "OrgAuditor": "組織監査人",
@ -1239,6 +1251,7 @@
"StatusGreen": "最近調子がいい", "StatusGreen": "最近調子がいい",
"StatusRed": "最後のタスクの実行に失敗しました", "StatusRed": "最後のタスクの実行に失敗しました",
"StatusYellow": "最近の存在の実行に失敗しました", "StatusYellow": "最近の存在の実行に失敗しました",
"Step": "步骤",
"Stop": "停止", "Stop": "停止",
"StopJob": "ジョブを停止", "StopJob": "ジョブを停止",
"StopLogOutput": "Task Canceled現在のタスクcurrentTaskIdは手動で停止されました。各タスクの進行状況が異なるため、以下はタスクの最終実行結果です。実行が失敗した場合は、タスクが正常に停止されました。", "StopLogOutput": "Task Canceled現在のタスクcurrentTaskIdは手動で停止されました。各タスクの進行状況が異なるため、以下はタスクの最終実行結果です。実行が失敗した場合は、タスクが正常に停止されました。",
@ -1481,6 +1494,7 @@
"VirtualAppDetail": "仮想アプリの詳細", "VirtualAppDetail": "仮想アプリの詳細",
"VirtualApps": "仮想アプリ", "VirtualApps": "仮想アプリ",
"Volcengine": "Volcengine", "Volcengine": "Volcengine",
"Warning": "に警告",
"WeCom": "企業wechat", "WeCom": "企業wechat",
"WebCreate": "アセット作成 - ウェブ", "WebCreate": "アセット作成 - ウェブ",
"WebFTP": "ファイル管理", "WebFTP": "ファイル管理",

View File

@ -1,35 +1,63 @@
{ {
"ACLs": "访问控制", "ACLs": "访问控制",
"APIKey": "API Key", "APIKey": "API Key",
"AWS_China": "AWS(中国)",
"AWS_Int": "AWS(国际)",
"About": "关于", "About": "关于",
"Accept": "同意", "Accept": "同意",
"AccessIP": "IP 白名单", "AccessIP": "IP 白名单",
"SuEnabled": "启用开关",
"AccessKey": "访问密钥", "AccessKey": "访问密钥",
"AccountTemplateList": "账号模版列表",
"HistoryRecord": "历史记录",
"UserPasswordChangeLog": "用户密码修改日志",
"Account": "账号信息", "Account": "账号信息",
"ActivateSelected": "激活所选",
"VirtualAccountHelpMsg": "虚拟账户是连接资产时具有特定用途的专用账户。",
"AccountBackup": "账号备份", "AccountBackup": "账号备份",
"AccountBackupCreate": "创建账号备份", "AccountBackupCreate": "创建账号备份",
"AccountBackupDetail": "账号备份详情", "AccountBackupDetail": "账号备份详情",
"AccountChangeSecretDetail": "账号改密详情",
"AccountGatherDetail": "账号收集详情",
"AccountPushDetail": "账号推送详情",
"AccountBackupList": "账号备份列表", "AccountBackupList": "账号备份列表",
"AccountBackupUpdate": "更新账号备份", "AccountBackupUpdate": "更新账号备份",
"AccountChangeSecret": "账号改密", "AccountChangeSecret": "账号改密",
"AccountDeleteConfirmMsg": "删除账号,是否继续?", "AccountDeleteConfirmMsg": "删除账号,是否继续?",
"AccountExportTips": "导出信息中包含账号密文涉及敏感信息导出的格式为一个加密的zip文件若没有设置加密密码请前往个人信息中设置文件加密密码。", "AccountExportTips": "导出信息中包含账号密文涉及敏感信息导出的格式为一个加密的zip文件若没有设置加密密码请前往个人信息中设置文件加密密码。",
"AccountGatherList": "收集任务", "GatheredAccountList": "收集的账号",
"AccountGatherTaskList": "账号收集", "AccountGatherList": "账号收集",
"OrgRoleHelpMsg": "组织角色是为平台内的各个组织量身定制的角色。 这些角色是在邀请用户加入特定组织时分配的,并规定他们在该组织内的权限和访问级别。 与系统角色不同,组织角色是可自定义的,并且仅适用于它们所分配到的组织范围内。",
"TableSetting": "表格偏好",
"SystemRoleHelpMsg": "系统角色是平台内所有组织普遍适用的角色。 这些角色允许您为整个系统的用户定义特定的权限和访问级别。 对系统角色的更改将影响使用该平台的所有组织。",
"StrategyHelpTip": "根据策略优先级识别资产(例如平台)的独特属性; 当资产的属性(如节点)可以配置为多个时,策略的所有动作都会被执行。",
"AccountGatherTaskList": "账号收集任务",
"AccountGatherTaskCreate": "创建账号收集任务",
"AccountGatherTaskUpdate": "更新账号收集任务",
"AccountList": "云账号", "AccountList": "云账号",
"ChangeCredentials": "改密",
"CrontabHelpText": "如果同时设置了 interval 和 crontab则优先考虑 crontab",
"LoginConfirmUser": "确认方式",
"TypeTree": "类型树",
"IsAlwaysUpdateHelpTip": "每次执行同步任务时是否同步更新资产信息包括主机名、ip、平台、域、节点等",
"OrgsAndRoles": "组织和角色",
"ActiveUsers": "活跃用户",
"IpDomain": "IP 域",
"Primary": "主要的",
"GatherAccounts": "账号收集",
"DeleteSelected": "删除所选",
"AccountPolicy": "账号策略", "AccountPolicy": "账号策略",
"AccountPolicyHelpText": "创建时对于不符合要求的账号,如:密钥类型不合规,唯一键约束,可选择以上策略。", "AccountPolicyHelpText": "创建时对于不符合要求的账号,如:密钥类型不合规,唯一键约束,可选择以上策略。",
"AccountPushExecutionList": "执行列表", "AccountPushCreate": "创建账号推送",
"AccountPushList": "账号推送", "AccountPushList": "账号推送",
"AccountPushUpdate": "更新账号推送",
"AccountStorage": "账号存储", "AccountStorage": "账号存储",
"AccountTemplate": "账号模版", "AccountTemplate": "账号模版",
"AccountTemplateList": "模版列表",
"AccountTemplateUpdateSecretHelpText": "账号列表展示通过模版创建的账号。更新密文时,会更新通过模版所创建账号的密文。", "AccountTemplateUpdateSecretHelpText": "账号列表展示通过模版创建的账号。更新密文时,会更新通过模版所创建账号的密文。",
"AccountTemplates": "账号模版", "Accounts": "账号",
"Accounts": "账号管理",
"Action": "动作", "Action": "动作",
"PermAction": "授权动作",
"ActionCount": "动作数量", "ActionCount": "动作数量",
"PermAction": "授权动作",
"ActionSetting": "动作设置", "ActionSetting": "动作设置",
"Actions": "动作", "Actions": "动作",
"ActionsTips": "各个权限作用协议不尽相同,点击权限后面的图标查看", "ActionsTips": "各个权限作用协议不尽相同,点击权限后面的图标查看",
@ -40,7 +68,9 @@
"ActiveUser": "近期登录过", "ActiveUser": "近期登录过",
"Activity": "活动", "Activity": "活动",
"Add": "新增", "Add": "新增",
"AddAccount": "新增账号",
"AddAccountResult": "账号批量添加结果", "AddAccountResult": "账号批量添加结果",
"AddAccountByTemplate": "从模板添加账号",
"AddAllMembersWarningMsg": "你确定要添加全部成员?", "AddAllMembersWarningMsg": "你确定要添加全部成员?",
"AddAsset": "添加资产", "AddAsset": "添加资产",
"AddAssetToNode": "添加资产到节点", "AddAssetToNode": "添加资产到节点",
@ -53,7 +83,6 @@
"AddUserGroupToThisPermission": "添加用户组", "AddUserGroupToThisPermission": "添加用户组",
"AddUserToThisPermission": "添加用户", "AddUserToThisPermission": "添加用户",
"Address": "地址", "Address": "地址",
"Addressee": "收件人",
"AdhocDetail": "命令详情", "AdhocDetail": "命令详情",
"AdhocManage": "命令管理", "AdhocManage": "命令管理",
"AdhocUpdate": "更新命令", "AdhocUpdate": "更新命令",
@ -148,6 +177,7 @@
"AuthSecurity": "认证安全", "AuthSecurity": "认证安全",
"PasswordAndSSHKey": "认证设置", "PasswordAndSSHKey": "认证设置",
"AuthSettings": "认证配置", "AuthSettings": "认证配置",
"AddInDetailText": "创建或更新成功后,添加详细信息",
"AuthUserAttrMapHelpText": "左侧的键为 JumpServer 用户属性,右侧的值为认证平台用户属性", "AuthUserAttrMapHelpText": "左侧的键为 JumpServer 用户属性,右侧的值为认证平台用户属性",
"Authentication": "认证", "Authentication": "认证",
"AutoPush": "自动推送", "AutoPush": "自动推送",
@ -219,13 +249,17 @@
"ClientCertificate": "客户端证书", "ClientCertificate": "客户端证书",
"ClipboardCopyPaste": "剪贴板复制粘贴", "ClipboardCopyPaste": "剪贴板复制粘贴",
"Clone": "克隆", "Clone": "克隆",
"CloneFrom": "副本",
"Close": "关闭", "Close": "关闭",
"CloseConfirm": "确认关闭", "CloseConfirm": "确认关闭",
"CloseConfirmMessage": "文件发生变化,是否保存?", "CloseConfirmMessage": "文件发生变化,是否保存?",
"CloseStatus": "已完成", "CloseStatus": "已完成",
"Closed": "已完成", "Closed": "已完成",
"CloudAccountCreate": "创建云平台账号",
"CloudAccountDetail": "云平台账号详情",
"CloudAccountList": "云平台账号",
"CloudAccountUpdate": "更新云平台账号",
"CloudCreate": "创建资产-云平台", "CloudCreate": "创建资产-云平台",
"CloudRegionTip": "未获取到地域,请检查账号",
"CloudSource": "同步源", "CloudSource": "同步源",
"CloudSync": "云同步", "CloudSync": "云同步",
"CloudUpdate": "更新资产-云平台", "CloudUpdate": "更新资产-云平台",
@ -250,6 +284,7 @@
"CommandStorage": "命令存储", "CommandStorage": "命令存储",
"CommandStorageUpdate": "更新命令存储", "CommandStorageUpdate": "更新命令存储",
"Commands": "命令记录", "Commands": "命令记录",
"CommandsTotal": "命令记录总数",
"Comment": "备注", "Comment": "备注",
"CommentHelpText": "注意:备注信息会在 Luna 页面的用户授权资产树中进行悬停显示,普通用户可以查看,请不要填写敏感信息。", "CommentHelpText": "注意:备注信息会在 Luna 页面的用户授权资产树中进行悬停显示,普通用户可以查看,请不要填写敏感信息。",
"CommunityEdition": "社区版", "CommunityEdition": "社区版",
@ -292,14 +327,17 @@
"CreateNode": "创建节点", "CreateNode": "创建节点",
"CreatePlaybook": "创建 Playbook", "CreatePlaybook": "创建 Playbook",
"CreateReplayStorage": "创建对象存储", "CreateReplayStorage": "创建对象存储",
"CreateSuccessMsg": "导入创建成功,总共:{count}", "CreateSuccessMsg": "创建成功",
"CreateUserSetting": "创建用户内容", "CreateUserSetting": "创建用户内容",
"Created": "已创建", "Created": "已创建",
"CreatedBy": "创建者", "CreatedBy": "创建者",
"Crontab": "定时任务",
"Interval": "间隔",
"CriticalLoad": "严重", "CriticalLoad": "严重",
"CronExpression": "crontab完整表达式", "CronExpression": "crontab完整表达式",
"CrontabOfCreateUpdatePage": "例如:每周日 03:05 执行 <5 3 * * 0> <br/> 使用5位 Linux crontab 表达式 <分 时 日 月 星期> <a href=\"https://tool.lu/crontab/\" target=\"_blank\">在线工具</a> <br/> 如果同时设置了定期执行和周期执行,优先使用定期执行", "CrontabOfCreateUpdatePage": "例如:每周日 03:05 执行 <5 3 * * 0> <br/> 使用5位 Linux crontab 表达式 <分 时 日 月 星期> <a href=\"https://tool.lu/crontab/\" target=\"_blank\">在线工具</a> <br/> 如果同时设置了定期执行和周期执行,优先使用定期执行",
"CurrentConnections": "当前连接数", "CurrentConnections": "当前连接数",
"CurrentConnectionUsers": "当前会话用户数",
"CurrentUserVerify": "验证当前用户", "CurrentUserVerify": "验证当前用户",
"Custom": "自定义", "Custom": "自定义",
"CustomCol": "自定义列表字段", "CustomCol": "自定义列表字段",
@ -312,6 +350,7 @@
"CustomUser": "自定义用户", "CustomUser": "自定义用户",
"CycleFromWeek": "周期从星期", "CycleFromWeek": "周期从星期",
"CyclePerform": "周期执行", "CyclePerform": "周期执行",
"Danger": "危险",
"DangerCommand": "危险命令", "DangerCommand": "危险命令",
"DangerousCommandNum": "危险命令数", "DangerousCommandNum": "危险命令数",
"Dashboard": "仪表盘", "Dashboard": "仪表盘",
@ -407,10 +446,10 @@
"Exclude": "不包含", "Exclude": "不包含",
"ExcludeAsset": "跳过的资产", "ExcludeAsset": "跳过的资产",
"ExcludeSymbol": "排除字符", "ExcludeSymbol": "排除字符",
"ExecCloudSyncErrorMsg": "云账号配置不完整,请更新后重试",
"Execute": "执行", "Execute": "执行",
"ExecuteOnce": "执行一次", "ExecuteOnce": "执行一次",
"ExecutionDetail": "执行历史详情", "ExecutionDetail": "执行历史详情",
"ExecutionHistory": "执行历史",
"ExecutionList": "执行列表", "ExecutionList": "执行列表",
"ExistError": "这个元素已经存在", "ExistError": "这个元素已经存在",
"Existing": "已存在", "Existing": "已存在",
@ -435,6 +474,9 @@
"FileNameTooLong": "文件名太长", "FileNameTooLong": "文件名太长",
"FileSizeExceedsLimit": "文件大小超出限制", "FileSizeExceedsLimit": "文件大小超出限制",
"FileTransfer": "文件传输", "FileTransfer": "文件传输",
"FileTransferBootStepHelpTips1": "选择一个资产或节点",
"FileTransferBootStepHelpTips2": "选择运行帐户并输入命令",
"FileTransferBootStepHelpTips3": "传输,显示输出结果",
"FileTransferNum": "文件传输数", "FileTransferNum": "文件传输数",
"FileType": "文件类型", "FileType": "文件类型",
"Filename": "文件名", "Filename": "文件名",
@ -443,13 +485,13 @@
"FinishedTicket": "完成工单", "FinishedTicket": "完成工单",
"FirstLogin": "首次登录", "FirstLogin": "首次登录",
"FlowSetUp": "流程设置", "FlowSetUp": "流程设置",
"Footer": "页脚",
"FormatError": "格式错误", "FormatError": "格式错误",
"Friday": "周五", "Friday": "周五",
"From": "从", "From": "从",
"FromTicket": "来自工单", "FromTicket": "来自工单",
"FullName": "全称", "FullName": "全称",
"FullySynchronous": "资产完全同步", "FullySynchronous": "资产完全同步",
"FullySynchronousHelpTips": "当资产条件不满足匹配策略规则时,是否继续同步此类资产",
"GCP": "谷歌云", "GCP": "谷歌云",
"GPTCreate": "创建资产-GPT", "GPTCreate": "创建资产-GPT",
"GPTUpdate": "更新资产-GPT", "GPTUpdate": "更新资产-GPT",
@ -536,7 +578,6 @@
"IpGroupHelpText": "* 表示匹配所有。例如: 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", "IpGroupHelpText": "* 表示匹配所有。例如: 192.168.10.1, 192.168.1.0/24, 10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64",
"IsActive": "激活", "IsActive": "激活",
"IsAlwaysUpdate": "资产保持最新", "IsAlwaysUpdate": "资产保持最新",
"IsAlwaysUpdateHelpTips": "每次执行同步任务时是否同步更新资产的信息包括主机名、IP、平台、网域、节点等信息",
"IsFinished": "是否完成", "IsFinished": "是否完成",
"IsLocked": "是否暂停", "IsLocked": "是否暂停",
"IsSuccess": "成功", "IsSuccess": "成功",
@ -582,7 +623,7 @@
"LockedIP": "已锁定 IP {count} 个", "LockedIP": "已锁定 IP {count} 个",
"Log": "日志", "Log": "日志",
"LogData": "日志数据", "LogData": "日志数据",
"LogOfLoginSuccessNum": "登录成功日志数", "LoginLogTotal": "登录成功日志数",
"Logging": "日志记录", "Logging": "日志记录",
"LoginAssetConfirm": "资产登录复核", "LoginAssetConfirm": "资产登录复核",
"LoginAssetToday": "今日活跃资产数", "LoginAssetToday": "今日活跃资产数",
@ -615,7 +656,6 @@
"MailSend": "邮件发送", "MailSend": "邮件发送",
"ManualAccount": "手动账号", "ManualAccount": "手动账号",
"ManualAccountTip": "登录时手动输入 用户名/密码", "ManualAccountTip": "登录时手动输入 用户名/密码",
"ManualExecutePlan": "手动执行",
"ManyChoose": "可多选", "ManyChoose": "可多选",
"MarkAsRead": "标记已读", "MarkAsRead": "标记已读",
"Marketplace": "应用市场", "Marketplace": "应用市场",
@ -657,6 +697,7 @@
"NewFile": "新建文件", "NewFile": "新建文件",
"NewPassword": "新密码", "NewPassword": "新密码",
"NewSyncCount": "新同步", "NewSyncCount": "新同步",
"Next": "下一步",
"No": "否", "No": "否",
"NoContent": "暂无内容", "NoContent": "暂无内容",
"NoData": "暂无数据", "NoData": "暂无数据",
@ -687,7 +728,7 @@
"OfflineSuccessMsg": "下线成功", "OfflineSuccessMsg": "下线成功",
"OfflineUpload": "离线上传", "OfflineUpload": "离线上传",
"OldPassword": "原密码", "OldPassword": "原密码",
"OldPublicKey": " SSH 公钥", "OldPublicKey": " SSH 公钥",
"NewPublicKey": "新 SSH 公钥", "NewPublicKey": "新 SSH 公钥",
"OneAssignee": "一级受理人", "OneAssignee": "一级受理人",
"OneAssigneeType": "一级受理人类型", "OneAssigneeType": "一级受理人类型",
@ -704,6 +745,7 @@
"OpenTicket": "创建工单", "OpenTicket": "创建工单",
"OperateLog": "操作日志", "OperateLog": "操作日志",
"OperationLogNum": "操作日志数", "OperationLogNum": "操作日志数",
"Options": "选项",
"OrgAdmin": "组织管理员", "OrgAdmin": "组织管理员",
"OrgAuditor": "组织审计员", "OrgAuditor": "组织审计员",
"OrgName": "授权组织名称", "OrgName": "授权组织名称",
@ -714,7 +756,6 @@
"OrganizationCreate": "创建组织", "OrganizationCreate": "创建组织",
"OrganizationDetail": "组织详情", "OrganizationDetail": "组织详情",
"OrganizationList": "组织管理", "OrganizationList": "组织管理",
"OrganizationLists": "组织列表",
"OrganizationUpdate": "更新组织", "OrganizationUpdate": "更新组织",
"Other": "其它设置", "Other": "其它设置",
"Output": "输出", "Output": "输出",
@ -879,7 +920,6 @@
"RuleCount": "条件数量", "RuleCount": "条件数量",
"RuleDetail": "规则详情", "RuleDetail": "规则详情",
"RuleRelation": "条件关系", "RuleRelation": "条件关系",
"RuleRelationHelpTips": "且:当所有条件都满足时,才会执行动作;或:有一个条件满足,就会执行动作",
"RuleSetting": "条件设置", "RuleSetting": "条件设置",
"Rules": "规则", "Rules": "规则",
"Run": "执行", "Run": "执行",
@ -951,6 +991,7 @@
"ServerTime": "服务器时间", "ServerTime": "服务器时间",
"Session": "会话", "Session": "会话",
"SessionCommands": "会话命令", "SessionCommands": "会话命令",
"SessionConnectTrend": "会话连接趋势",
"SessionData": "会话数据", "SessionData": "会话数据",
"SessionDetail": "会话详情", "SessionDetail": "会话详情",
"SessionID": "会话ID", "SessionID": "会话ID",
@ -1006,17 +1047,32 @@
"StatusGreen": "近期状态良好", "StatusGreen": "近期状态良好",
"StatusRed": "上一次任务执行失败", "StatusRed": "上一次任务执行失败",
"StatusYellow": "近期存在在执行失败", "StatusYellow": "近期存在在执行失败",
"Step": "步骤",
"Stop": "停止", "Stop": "停止",
"StorageSetting": "存储设置", "StorageSetting": "存储设置",
"Strategy": "策略", "Strategy": "策略",
"StrategyCreate": "创建策略", "StrategyCreate": "创建策略",
"StrategyDetail": "策略详情", "StrategyDetail": "策略详情",
"StrategyHelpTips": "根据策略优先级确定资产的唯一属性(如平台),当资产属性(如节点)可配置多个的时候,所有策略的动作都会被执行",
"StrategyList": "策略列表", "StrategyList": "策略列表",
"StrategyUpdate": "更新策略", "StrategyUpdate": "更新策略",
"SuFrom": "切换自", "SuFrom": "切换自",
"SetDingTalk": "设置钉钉认证",
"TableColSetting": "选择可见属性列",
"FullySynchronousHelpTip": "当资产条件不满足匹配政策规则时是否继续同步该资产",
"CrontabHelpTip": "例如:每周日 03:05 执行 <5 3 * * 0> <br/> 使用 5 位 linux crontab 表达式 <min hour day Month weekday> (<a href=\\\"https://tool.lu /crontab/\\\" target=\\\"_blank\\\">在线工具</a>) <br/>",
"Submit": "提交", "Submit": "提交",
"SubscriptionID": "订阅授权ID", "RuleRelationHelpTip": "并且:只有当所有条件都满足时才会执行该动作; or只要满足一个条件就会执行该动作",
"UserSwitchFrom": "切换自",
"AssetPermsAmount": "资产授权数量",
"SetFeiShu": "设置飞书认证",
"DisableSelected": "禁用所选",
"LogOfLoginSuccessNum": "成功登录日志数",
"Server": "服务",
"OrganizationManage": "组织管理",
"Storage": "存储",
"RemoveSelected": "删除所选",
"SyncProtocolToAsset": "同步协议到资产",
"SubscriptionID": "订阅授权 ID",
"Success": "成功", "Success": "成功",
"SuccessAsset": "成功的资产", "SuccessAsset": "成功的资产",
"SuccessfulOperation": "操作成功", "SuccessfulOperation": "操作成功",
@ -1050,7 +1106,6 @@
"SystemRoles": "系统角色", "SystemRoles": "系统角色",
"SystemSetting": "系统设置", "SystemSetting": "系统设置",
"SystemTools": "系统工具", "SystemTools": "系统工具",
"TableColSettingInfo": "请选择您想显示的列表详细信息。",
"Target": "目标", "Target": "目标",
"TargetResources": "目标资源", "TargetResources": "目标资源",
"Task": "任务", "Task": "任务",
@ -1113,7 +1168,7 @@
"TwoAssigneeType": "二级受理人类型", "TwoAssigneeType": "二级受理人类型",
"Type": "类型", "Type": "类型",
"Types": "类型", "Types": "类型",
"UCloud": "UCloud优刻得", "UCloud": "优刻得(UCloud)",
"UnSyncCount": "未同步", "UnSyncCount": "未同步",
"Unbind": "解绑", "Unbind": "解绑",
"UnbindHelpText": "本地用户为此认证来源用户,无法解绑", "UnbindHelpText": "本地用户为此认证来源用户,无法解绑",
@ -1163,7 +1218,6 @@
"UserGroupList": "用户组", "UserGroupList": "用户组",
"UserGroupUpdate": "更新用户组", "UserGroupUpdate": "更新用户组",
"UserGroups": "用户组", "UserGroups": "用户组",
"Profile": "个人信息",
"UserList": "用户列表", "UserList": "用户列表",
"UserLoginACLHelpMsg": "登录系统时,可以根据用户的登录 IP 和时间段进行审核,判断是否可以登录系统(全局生效)", "UserLoginACLHelpMsg": "登录系统时,可以根据用户的登录 IP 和时间段进行审核,判断是否可以登录系统(全局生效)",
"UserLoginACLHelpText": "登录系统时,可以根据用户的登录 IP 和时间段进行审核,判断是否可以登录", "UserLoginACLHelpText": "登录系统时,可以根据用户的登录 IP 和时间段进行审核,判断是否可以登录",
@ -1201,6 +1255,8 @@
"VirtualApp": "虚拟应用", "VirtualApp": "虚拟应用",
"VirtualAppDetail": "虚拟应用详情", "VirtualAppDetail": "虚拟应用详情",
"VirtualApps": "虚拟应用", "VirtualApps": "虚拟应用",
"Volcengine": "火山引擎",
"Warning": "警告",
"WeCom": "企业微信", "WeCom": "企业微信",
"WeComTest": "测试", "WeComTest": "测试",
"WebCreate": "创建资产-Web", "WebCreate": "创建资产-Web",
@ -1226,7 +1282,7 @@
"ZoneList": "区域列表", "ZoneList": "区域列表",
"ZoneUpdate": "更新区域", "ZoneUpdate": "更新区域",
"YourProfile": "个人信息", "YourProfile": "个人信息",
"AccessKeys": "访问密钥",
"InformationModification": "信息更改", "InformationModification": "信息更改",
"Phone": "手机" "Phone": "手机",
"TailLog": "追踪日志"
} }

View File

@ -1,5 +1,5 @@
{ {
"": "", "ACLs": "訪問控制",
"APIKey": "API Key", "APIKey": "API Key",
"AWS_China": "AWS(中國)", "AWS_China": "AWS(中國)",
"AWS_Int": "AWS(國際)", "AWS_Int": "AWS(國際)",
@ -14,26 +14,23 @@
"AccountBackupList": "賬號備份列表", "AccountBackupList": "賬號備份列表",
"AccountBackupUpdate": "更新帳號備份", "AccountBackupUpdate": "更新帳號備份",
"AccountChangeSecret": "帳號改密", "AccountChangeSecret": "帳號改密",
"AccountCreate": "創建帳戶",
"AccountDeleteConfirmMsg": "刪除帳號,是否繼續?", "AccountDeleteConfirmMsg": "刪除帳號,是否繼續?",
"AccountDetail": "帳戶詳情", "AccountExportTips": "導出信息中包含賬號密文涉及敏感信息導出的格式為一個加密的zip文件若沒有設置加密密碼請前往個人信息中設置文件加密密碼。",
"AccountEnabled": "啟用切換帳號", "AccountGatherList": "帳號收集",
"AccountExportTips": "匯出資訊中包含帳號密文涉及敏感資訊匯出的格式為一個加密的zip文件若沒有設置加密密碼請前往個人資訊中設置文件加密密碼。", "AccountGatherTaskList": "賬號收集任務",
"AccountGather": "帳號收集", "AccountGatherTaskCreate": "創建賬號收集任務",
"AccountGatherList": "收集任務", "AccountGatherTaskUpdate": "更新賬號收集任務",
"AccountGatherTaskCreate": "創建任務", "AccountList": "雲帳號",
"AccountPolicy": "帳號策略",
"AccountPolicyHelpText": "創建時對於不符合要求的賬號,如:密鑰類型不合規,唯一鍵約束,可選擇以上策略。",
"AccountPushExecutionList": "賬號推送執行列表",
"AccountPushCreate": "創建帳號推送",
"AccountPushList": "帳號推送",
"AccountPushUpdate": "更新帳號推送",
"AccountGatherTaskExecutionList": "任務執行列表", "AccountGatherTaskExecutionList": "任務執行列表",
"AccountGatherTaskList": "帳號收集",
"AccountGatherTaskUpdate": "更新任務",
"AccountHelpText": "雲帳號是用來連接雲服務商的帳號,用於獲取雲服務商的資源資訊", "AccountHelpText": "雲帳號是用來連接雲服務商的帳號,用於獲取雲服務商的資源資訊",
"AccountHistoryHelpMessage": "記錄當前帳號的歷史版本", "AccountHistoryHelpMessage": "記錄當前帳號的歷史版本",
"AccountList": "雲帳號",
"AccountName": "帳號名稱", "AccountName": "帳號名稱",
"AccountPolicy": "帳號策略",
"AccountPushCreate": "帳號推送創建",
"AccountPushExecutionList": "執行列表",
"AccountPushList": "帳號推送",
"AccountPushUpdate": "帳號推送更新",
"AccountStorage": "帳號儲存", "AccountStorage": "帳號儲存",
"AccountTemplate": "帳號模板", "AccountTemplate": "帳號模板",
"AccountTemplateUpdateSecretHelpText": "帳號列表展示通過模板創建的帳號。更新密文時,會更新通過模板所創建帳號的密文。", "AccountTemplateUpdateSecretHelpText": "帳號列表展示通過模板創建的帳號。更新密文時,會更新通過模板所創建帳號的密文。",
@ -295,6 +292,10 @@
"CloseStatus": "已完成", "CloseStatus": "已完成",
"Closed": "已完成", "Closed": "已完成",
"Cloud": "雲管中心", "Cloud": "雲管中心",
"CloudAccountCreate": "建立雲平台帳號",
"CloudAccountDetail": "雲平台帳號詳情",
"CloudAccountList": "雲平台帳號",
"CloudAccountUpdate": "更新雲平台帳號",
"CloudCenter": "雲管中心", "CloudCenter": "雲管中心",
"CloudCreate": "創建資產-雲平台", "CloudCreate": "創建資產-雲平台",
"CloudPlatform": "雲平台", "CloudPlatform": "雲平台",
@ -334,6 +335,7 @@
"CommandGroupUpdate": "更新命令組", "CommandGroupUpdate": "更新命令組",
"CommandStorageUpdate": "更新命令儲存", "CommandStorageUpdate": "更新命令儲存",
"Commands": "命令記錄", "Commands": "命令記錄",
"CommandsTotal": "命令記錄總數",
"Comment": "備註", "Comment": "備註",
"CommentHelpText": "注意:備註資訊會在 Luna 頁面的用戶授權資產樹中進行懸停顯示,普通用戶可以查看,請不要填寫敏感資訊。", "CommentHelpText": "注意:備註資訊會在 Luna 頁面的用戶授權資產樹中進行懸停顯示,普通用戶可以查看,請不要填寫敏感資訊。",
"CommonUser": "普通用戶", "CommonUser": "普通用戶",
@ -358,6 +360,7 @@
"ConnectionTokenList": "連接令牌是將身份驗證和連接資產結合起來使用的一種認證資訊支持用戶一鍵登入到資產目前支持的組件包括KoKo、Lion、Magnus、Razor 等", "ConnectionTokenList": "連接令牌是將身份驗證和連接資產結合起來使用的一種認證資訊支持用戶一鍵登入到資產目前支持的組件包括KoKo、Lion、Magnus、Razor 等",
"Connectivity": "可連接", "Connectivity": "可連接",
"Console": "控制台", "Console": "控制台",
"Consult": "諮詢",
"ContainAttachment": "含附件", "ContainAttachment": "含附件",
"Containers": "容器", "Containers": "容器",
"Contains": "包含", "Contains": "包含",
@ -370,7 +373,7 @@
"Corporation": "公司", "Corporation": "公司",
"Correlation": "關聯", "Correlation": "關聯",
"Cpu": "CPU", "Cpu": "CPU",
"Create": "創建密碼", "Create": "創建",
"CreateAccessKey": "創建訪問金鑰", "CreateAccessKey": "創建訪問金鑰",
"CreateAccountTemplate": "創建帳號模板", "CreateAccountTemplate": "創建帳號模板",
"CreateCommandStorage": "創建命令儲存", "CreateCommandStorage": "創建命令儲存",
@ -402,6 +405,7 @@
"CustomUser": "自訂用戶", "CustomUser": "自訂用戶",
"CyclePerform": "週期執行", "CyclePerform": "週期執行",
"DBInfo": "資料庫資訊", "DBInfo": "資料庫資訊",
"Danger": "危險",
"DangerCommand": "危險命令", "DangerCommand": "危險命令",
"DangerousCommandNum": "危險命令數", "DangerousCommandNum": "危險命令數",
"Dashboard": "儀錶盤", "Dashboard": "儀錶盤",
@ -454,6 +458,7 @@
"DeleteOrgTitle": "請確保組織內的以下資訊已刪除", "DeleteOrgTitle": "請確保組織內的以下資訊已刪除",
"DeleteReleasedAssets": "刪除已釋放資產", "DeleteReleasedAssets": "刪除已釋放資產",
"DeleteSuccess": "刪除成功", "DeleteSuccess": "刪除成功",
"DeleteWarningMsg": "你確定要刪除",
"DeliveryTime": "發送時間", "DeliveryTime": "發送時間",
"Deploy": "部署", "Deploy": "部署",
"DescribeOfGuide": "歡迎使用JumpServer堡壘機系統獲取更多資訊請點擊", "DescribeOfGuide": "歡迎使用JumpServer堡壘機系統獲取更多資訊請點擊",
@ -542,6 +547,7 @@
"Failed": "失敗", "Failed": "失敗",
"FailedAsset": "失敗的資產", "FailedAsset": "失敗的資產",
"False": "否", "False": "否",
"FaviconTip": "提示:網站圖示(建議圖片大小為: 16px*16px",
"Feature": "功能", "Feature": "功能",
"Features": "功能設定", "Features": "功能設定",
"FeiShu": "飛書", "FeiShu": "飛書",
@ -550,6 +556,9 @@
"FileNameTooLong": "檔案名太長", "FileNameTooLong": "檔案名太長",
"FileSizeExceedsLimit": "檔案大小超出限制", "FileSizeExceedsLimit": "檔案大小超出限制",
"FileTransfer": "文件傳輸", "FileTransfer": "文件傳輸",
"FileTransferBootStepHelpTips1": "選擇一個資產或節點",
"FileTransferBootStepHelpTips2": "選擇執行帳戶並輸入命令",
"FileTransferBootStepHelpTips3": "傳輸,顯示輸出結果",
"FileTransferNum": "文件傳輸數", "FileTransferNum": "文件傳輸數",
"Filename": "檔案名", "Filename": "檔案名",
"FingerPrint": "指紋", "FingerPrint": "指紋",
@ -720,7 +729,7 @@
"LockedIP": "已鎖定 IP {count} 個", "LockedIP": "已鎖定 IP {count} 個",
"Log": "日誌", "Log": "日誌",
"LogData": "日誌數據", "LogData": "日誌數據",
"LogOfLoginSuccessNum": "登入成功日誌數", "LoginLogTotal": "登入成功日誌數",
"Logging": "日誌記錄", "Logging": "日誌記錄",
"Login": "用戶登入", "Login": "用戶登入",
"LoginAssetConfirm": "資產登入覆核", "LoginAssetConfirm": "資產登入覆核",
@ -733,6 +742,7 @@
"LoginDate": "登入日期", "LoginDate": "登入日期",
"LoginFailed": "登入失敗", "LoginFailed": "登入失敗",
"LoginIP": "登入IP", "LoginIP": "登入IP",
"LoginImageTip": "提示:將會顯示在企業版使用者登入頁面(建議圖片大小為: 492*472px",
"LoginLog": "登入日誌", "LoginLog": "登入日誌",
"LoginModeHelpMessage": "如果選擇手動登入模式,使用者名稱和密碼可以不填寫", "LoginModeHelpMessage": "如果選擇手動登入模式,使用者名稱和密碼可以不填寫",
"LoginModel": "登入模式", "LoginModel": "登入模式",
@ -742,9 +752,12 @@
"LoginPasswordSetting": "登入密碼設定", "LoginPasswordSetting": "登入密碼設定",
"LoginRequiredMsg": "帳號已退出,請重新登入", "LoginRequiredMsg": "帳號已退出,請重新登入",
"LoginSucceeded": "登入成功", "LoginSucceeded": "登入成功",
"LoginTitleTip": "提示:將會顯示在企業版使用者 SSH 登入 KoKo 登入頁面eg: 歡迎使用JumpServer開源堡壘機",
"LoginTo": "登入了", "LoginTo": "登入了",
"LoginUserRanking": "會話用戶排名", "LoginUserRanking": "會話用戶排名",
"LoginUserToday": "今日登入用戶數", "LoginUserToday": "今日登入用戶數",
"LogoIndexTip": "提示:將會顯示在管理頁面左上方(建議圖片大小為: 185px*55px",
"LogoLogoutTip": "提示:將會顯示在企業版使用者的 Web 終端頁面建議圖片大小為82px*82px",
"Logout": "退出登入", "Logout": "退出登入",
"LogsAudit": "日誌審計", "LogsAudit": "日誌審計",
"Lowercase": "小寫字母", "Lowercase": "小寫字母",
@ -761,7 +774,6 @@
"MailSend": "郵件發送", "MailSend": "郵件發送",
"ManualAccount": "手動帳號", "ManualAccount": "手動帳號",
"ManualAccountTip": "登入時手動輸入 使用者名稱/密碼", "ManualAccountTip": "登入時手動輸入 使用者名稱/密碼",
"ManualExecutePlan": "手動執行計劃",
"ManualInput": "手動輸入", "ManualInput": "手動輸入",
"MarkAsRead": "標記已讀", "MarkAsRead": "標記已讀",
"Marketplace": "應用市場", "Marketplace": "應用市場",
@ -809,6 +821,7 @@
"NewPassword": "新密碼", "NewPassword": "新密碼",
"NewSecret": "新金鑰", "NewSecret": "新金鑰",
"NewSyncCount": "新同步", "NewSyncCount": "新同步",
"Next": "下一步",
"No": "否", "No": "否",
"NoContent": "暫無內容", "NoContent": "暫無內容",
"NoData": "暫無數據", "NoData": "暫無數據",
@ -871,6 +884,7 @@
"OperateRecord": "操作記錄", "OperateRecord": "操作記錄",
"OperationLogNum": "操作日誌數", "OperationLogNum": "操作日誌數",
"Ops": "任務", "Ops": "任務",
"Options": "選項",
"OracleDBNameHelpText": "提示:填寫 Oracle 資料庫的SID或服務名稱Service Name", "OracleDBNameHelpText": "提示:填寫 Oracle 資料庫的SID或服務名稱Service Name",
"OrgAdmin": "組織管理員", "OrgAdmin": "組織管理員",
"OrgAuditor": "組織審計員", "OrgAuditor": "組織審計員",
@ -949,7 +963,7 @@
"PleaseSelect": "請選擇", "PleaseSelect": "請選擇",
"PolicyName": "策略名稱", "PolicyName": "策略名稱",
"Ports": "埠", "Ports": "埠",
"Primary": "主要", "Primary": "主要",
"PrimaryProtocol": "主要協議, 資產最基本最常用的協議,只能且必須設置一個", "PrimaryProtocol": "主要協議, 資產最基本最常用的協議,只能且必須設置一個",
"PriorityHelpMessage": "1-100, 1最低優先度100最高優先度。授權多個用戶時高優先度的系統用戶將會作為默認登入用戶", "PriorityHelpMessage": "1-100, 1最低優先度100最高優先度。授權多個用戶時高優先度的系統用戶將會作為默認登入用戶",
"PrivateCloud": "私有雲", "PrivateCloud": "私有雲",
@ -1219,6 +1233,7 @@
"StatusGreen": "近期狀態良好", "StatusGreen": "近期狀態良好",
"StatusRed": "上一次任務執行失敗", "StatusRed": "上一次任務執行失敗",
"StatusYellow": "近期存在在執行失敗", "StatusYellow": "近期存在在執行失敗",
"Step": "步驟",
"Stop": "停止", "Stop": "停止",
"StopJob": "停止作業", "StopJob": "停止作業",
"StopLogOutput": "任務已取消當前任務currentTaskId已被手動停止。由於每個任務的執行進度不同以下是任務的最終執行結果。執行失敗表示任務已成功停止。", "StopLogOutput": "任務已取消當前任務currentTaskId已被手動停止。由於每個任務的執行進度不同以下是任務的最終執行結果。執行失敗表示任務已成功停止。",
@ -1295,6 +1310,7 @@
"TaskID": "任務 ID", "TaskID": "任務 ID",
"TaskList": "任務列表", "TaskList": "任務列表",
"TaskMonitor": "任務監控", "TaskMonitor": "任務監控",
"TechnologyConsult": "技術諮詢",
"TempPassword": "臨時密碼有效期為 300 秒,使用後立刻失效", "TempPassword": "臨時密碼有效期為 300 秒,使用後立刻失效",
"Template": "模板管理", "Template": "模板管理",
"TemplateAdd": "模板添加", "TemplateAdd": "模板添加",
@ -1460,6 +1476,7 @@
"VirtualAppDetail": "虛擬應用詳情", "VirtualAppDetail": "虛擬應用詳情",
"VirtualApps": "虛擬應用", "VirtualApps": "虛擬應用",
"Volcengine": "火山引擎", "Volcengine": "火山引擎",
"Warning": "警告",
"WeCom": "企業微信", "WeCom": "企業微信",
"WebCreate": "創建資產-Web", "WebCreate": "創建資產-Web",
"WebFTP": "文件管理", "WebFTP": "文件管理",

View File

@ -619,7 +619,10 @@ class Config(dict):
# Ansible Receptor # Ansible Receptor
'RECEPTOR_ENABLED': False, 'RECEPTOR_ENABLED': False,
'ANSIBLE_RECEPTOR_GATEWAY_PROXY_HOST': 'jms_celery', 'ANSIBLE_RECEPTOR_GATEWAY_PROXY_HOST': 'jms_celery',
'ANSIBLE_RECEPTOR_TCP_LISTEN_ADDRESS': 'receptor:7521' 'ANSIBLE_RECEPTOR_TCP_LISTEN_ADDRESS': 'receptor:7521',
'LOKI_LOG_ENABLED': False,
'LOKI_BASE_URL': 'http://loki:3100',
} }

View File

@ -235,3 +235,6 @@ TICKET_APPLY_ASSET_SCOPE = CONFIG.TICKET_APPLY_ASSET_SCOPE
RECEPTOR_ENABLED = CONFIG.RECEPTOR_ENABLED RECEPTOR_ENABLED = CONFIG.RECEPTOR_ENABLED
ANSIBLE_RECEPTOR_GATEWAY_PROXY_HOST = CONFIG.ANSIBLE_RECEPTOR_GATEWAY_PROXY_HOST ANSIBLE_RECEPTOR_GATEWAY_PROXY_HOST = CONFIG.ANSIBLE_RECEPTOR_GATEWAY_PROXY_HOST
ANSIBLE_RECEPTOR_TCP_LISTEN_ADDRESS = CONFIG.ANSIBLE_RECEPTOR_TCP_LISTEN_ADDRESS ANSIBLE_RECEPTOR_TCP_LISTEN_ADDRESS = CONFIG.ANSIBLE_RECEPTOR_TCP_LISTEN_ADDRESS
LOKI_LOG_ENABLED = CONFIG.LOKI_LOG_ENABLED
LOKI_BASE_URL = CONFIG.LOKI_BASE_URL

View File

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
from .celery_flower import *
from .error_views import *
from .index import * from .index import *
from .other import * from .other import *
from .celery_flower import *
from .swagger import * from .swagger import *
from .error_views import *

View File

@ -5,13 +5,13 @@
<script src="{% static 'js/jquery-3.6.1.min.js' %}"></script> <script src="{% static 'js/jquery-3.6.1.min.js' %}"></script>
<script src="{% static 'js/plugins/xterm/xterm.js' %}"></script> <script src="{% static 'js/plugins/xterm/xterm.js' %}"></script>
<script src="{% static 'js/plugins/xterm/addons/fit/fit.js' %}"></script> <script src="{% static 'js/plugins/xterm/addons/fit/fit.js' %}"></script>
<link rel="stylesheet" href="{% static 'js/plugins/xterm/xterm.css' %}" /> <link rel="stylesheet" href="{% static 'js/plugins/xterm/xterm.css' %}"/>
<link rel="shortcut icon" href="{{ INTERFACE.favicon }}" type="image/x-icon"> <link rel="shortcut icon" href="{{ INTERFACE.favicon }}" type="image/x-icon">
<script src="{% url 'javascript-catalog' %}"></script> <script src="{% url 'javascript-catalog' %}"></script>
<script src="{% static "js/jumpserver.js" %}?_=9"></script> <script src="{% static "js/jumpserver.js" %}?_=9"></script>
<style> <style>
body { body {
background-color: black; overflow: hidden;
margin: 0; margin: 0;
} }
@ -20,65 +20,86 @@
font-size: 13px; font-size: 13px;
} }
.container {
height: 100%;
display: flex;
flex-direction: column;
}
.terminal .xterm-viewport { .terminal .xterm-viewport {
background-color: #1f1b1b; background-color: #1f1b1b;
overflow: auto; overflow: hidden;
} }
body ::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.3);
background-color: #272323;
border-radius: 6px;
}
body ::-webkit-scrollbar {
width: 8px;
height: 8px;
}
body ::-webkit-scrollbar-thumb {
background-color: #494141;
border-radius: 6px;
}
#term { #term {
flex-grow: 1;
background-color: black;
margin: 12px;
padding: 0 8px; padding: 0 8px;
border-radius: 4px 0 0 0;
} }
.info { .info {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
width: 100%;
padding: 6px 8px 6px 24px; padding: 6px 8px 6px 24px;
margin: 0; margin: 0;
background-color: #F3F3F5;
} }
.task-type {
font-size: 16px;
font-weight: 500;
line-height: 24px;
text-align: left;
color: #1F2329;
padding-bottom: 8px;
}
.info .item { .info .item {
flex: auto; flex: auto;
list-style-type: square;
font-size: 14px; font-size: 14px;
color: #585757; list-style: none;
} }
.info .item .label {
font-weight: 400;
line-height: 22px;
font-size: 14px;
text-align: left;
color: #646A73;
padding-bottom: 12px;
}
.info .item .value { .info .item .value {
color: black; font-size: 14px;
font-weight: 400;
line-height: 22px;
text-align: left;
color: #1F2329;
} }
</style> </style>
</head> </head>
<ul class="info"> <div class="container">
<li class="item"> <div class="header">
<span>ID:</span> <ul class="info">
<span class="value task-id"></span> <li class="item">
</li> <span class="task-type"></span>
<li class="item"> </li>
<span>{% trans 'Task name' %}:</span> </ul>
<span class="value task-type"></span> <ul class="info">
</li> <li class="item">
<li class="item"> <span class="label">ID:</span>
<span>{% trans 'Date start' %}:</span> <span class="value task-id"></span>
<span class="value date-start"></span> </li>
</li> <li class="item">
</ul> <span class="label">{% trans 'Date start' %}:</span>
<div id="term" style="height: 100%;width: 100%"> <span class="value date-start"></span>
</li>
</ul>
</div>
<div id="term">
</div>
</div> </div>
<script> <script>
var scheme = document.location.protocol === "https:" ? "wss" : "ws"; var scheme = document.location.protocol === "https:" ? "wss" : "ws";
var port = document.location.port ? ":" + document.location.port : ""; var port = document.location.port ? ":" + document.location.port : "";
@ -105,17 +126,17 @@
window.fit.fit(term); window.fit.fit(term);
ws = new WebSocket(wsURL); ws = new WebSocket(wsURL);
ws.onmessage = function(e) { ws.onmessage = function (e) {
var data = JSON.parse(e.data); var data = JSON.parse(e.data);
term.write(data.message); term.write(data.message);
}; };
ws.onopen = function() { ws.onopen = function () {
var msg = {"task": taskId}; var msg = {"task": taskId};
ws.send(JSON.stringify(msg)) ws.send(JSON.stringify(msg))
}; };
ws.onerror = function (e) { ws.onerror = function (e) {
ws = new WebSocket(failOverWsURL); ws = new WebSocket(failOverWsURL);
ws.onmessage = function(e) { ws.onmessage = function (e) {
var data = JSON.parse(e.data); var data = JSON.parse(e.data);
term.write(data.message); term.write(data.message);
}; };
@ -127,8 +148,9 @@
}).on('resize', window, function () { }).on('resize', window, function () {
window.fit.fit(term); window.fit.fit(term);
}); });
function getAutomationExecutionInfo() { function getAutomationExecutionInfo() {
let url = "{% url 'api-ops:task-executions-detail' pk=task_id %}"; let url = "{% url 'api-ops:task-executions-detail' pk=task_id %}";
requestApi({ requestApi({
url: url, url: url,

View File

@ -62,6 +62,7 @@ class PrivateSettingSerializer(PublicSettingSerializer):
CHAT_AI_ENABLED = serializers.BooleanField() CHAT_AI_ENABLED = serializers.BooleanField()
GPT_MODEL = serializers.CharField() GPT_MODEL = serializers.CharField()
FILE_UPLOAD_SIZE_LIMIT_MB = serializers.IntegerField() FILE_UPLOAD_SIZE_LIMIT_MB = serializers.IntegerField()
LOKI_LOG_ENABLED = serializers.BooleanField()
class ServerInfoSerializer(serializers.Serializer): class ServerInfoSerializer(serializers.Serializer):

View File

@ -1,5 +1,6 @@
from .connect_methods import * from .connect_methods import *
from .endpoint import * from .endpoint import *
from .loki_log import *
from .status import * from .status import *
from .storage import * from .storage import *
from .terminal import * from .terminal import *

View File

@ -0,0 +1,35 @@
from rest_framework.response import Response
from rest_framework.views import APIView
from common.permissions import OnlySuperUser
from common.utils import get_logger
from terminal import serializers
from terminal.mixin import LokiMixin
__all__ = ['LokiLogAPI', ]
logger = get_logger(__name__)
class LokiLogAPI(APIView, LokiMixin):
http_method_names = ['get', ]
permission_classes = [OnlySuperUser]
def get(self, request, *args, **kwargs):
serializer = serializers.LokiLogSerializer(data=request.query_params)
serializer.is_valid(raise_exception=True)
components = serializer.validated_data.get('components')
search = serializer.validated_data.get('search', '')
start = serializer.validated_data.get('start', )
end = serializer.validated_data.get('end', )
loki_logs = self.query_components_log(components, search, start, end)
return Response(data=loki_logs)
def query_components_log(self, components, search, start, end):
# 秒转纳秒
start_ns = int(start * 1e9)
end_ns = int(end * 1e9)
query = self.create_loki_query(components, search)
loki_client = self.get_loki_client()
loki_response = loki_client.query_range(query, start_ns, end_ns, limit=100)
return loki_response['data']['result']

15
apps/terminal/mixin.py Normal file
View File

@ -0,0 +1,15 @@
from terminal.utils.loki_client import get_loki_client
__all__ = ['LokiMixin', ]
class LokiMixin:
def get_loki_client(self):
return get_loki_client()
def create_loki_query(self, components, search):
stream_selector = '{component!=""}'
if components:
stream_selector = '{component=~"%s"}' % components
query = f'{stream_selector} |="{search}"'
return query

View File

@ -11,3 +11,4 @@ from .task import *
from .terminal import * from .terminal import *
from .virtualapp import * from .virtualapp import *
from .virtualapp_provider import * from .virtualapp_provider import *
from .loki import *

View File

@ -0,0 +1,14 @@
import time
from rest_framework import serializers
__all__ = [
'LokiLogSerializer',
]
class LokiLogSerializer(serializers.Serializer):
components = serializers.CharField(required=False, )
start = serializers.IntegerField()
end = serializers.IntegerField(default=time.time)
search = serializers.CharField(required=False, default='')

View File

@ -54,6 +54,7 @@ urlpatterns = [
# components # components
path('components/metrics/', api.ComponentsMetricsAPIView.as_view(), name='components-metrics'), path('components/metrics/', api.ComponentsMetricsAPIView.as_view(), name='components-metrics'),
path('components/connect-methods/', api.ConnectMethodListApi.as_view(), name='connect-methods'), path('components/connect-methods/', api.ConnectMethodListApi.as_view(), name='connect-methods'),
path('loki/logs/', api.LokiLogAPI.as_view(), name='loki-logs'),
] ]
urlpatterns += router.urls urlpatterns += router.urls

View File

@ -6,4 +6,5 @@ app_name = 'terminal'
urlpatterns = [ urlpatterns = [
path('ws/terminal-task/', ws.TerminalTaskWebsocket.as_asgi(), name='terminal-task-ws'), path('ws/terminal-task/', ws.TerminalTaskWebsocket.as_asgi(), name='terminal-task-ws'),
path('ws/component-log-tail/', ws.LokiTailWebsocket.as_asgi(), name='component-log-tail-ws'),
] ]

View File

@ -0,0 +1,57 @@
import urllib.parse
import requests
from django.conf import settings
from websockets.sync.client import connect as ws_connect
def get_loki_client():
# TODO: 补充 auth 认证相关
return LokiClient(base_url=settings.LOKI_BASE_URL)
# https://grafana.com/docs/loki/latest/reference/loki-http-api/
class LokiClient(object):
query_range_url = '/loki/api/v1/query_range'
tail_url = '/loki/api/v1/tail'
def __init__(self, base_url: str):
self.base_url = base_url.rstrip('/')
def query_range(self, query, start, end, limit=100):
params = {
'query': query,
'start': start,
'end': end,
'limit': limit,
}
url = f"{self.base_url}{self.query_range_url}"
response = requests.get(url, params=params)
if response.status_code != 200:
raise Exception(response.text)
return response.json()
def create_tail_ws(self, query, limit=100):
data = {'query': query, 'limit': limit}
params = urllib.parse.urlencode(data)
ws_url = f"ws://{self.base_url[7:]}"
if self.base_url.startswith('https://'):
ws_url = f"wss://{self.base_url[8:]}"
url = f"{ws_url}{self.tail_url}?{params}"
ws = ws_connect(url)
return LokiTailWs(ws)
class LokiTailWs(object):
def __init__(self, ws):
self._ws = ws
def messages(self):
for message in self._ws:
yield message
def close(self):
if self._ws:
self._ws.close()

View File

@ -1,4 +1,5 @@
import datetime import datetime
from threading import Thread
from channels.generic.websocket import JsonWebsocketConsumer from channels.generic.websocket import JsonWebsocketConsumer
from django.utils import timezone from django.utils import timezone
@ -10,6 +11,7 @@ from common.utils.connection import Subscription
from terminal.const import TaskNameType from terminal.const import TaskNameType
from terminal.models import Session, Terminal from terminal.models import Session, Terminal
from terminal.serializers import TaskSerializer, StatSerializer from terminal.serializers import TaskSerializer, StatSerializer
from .mixin import LokiMixin
from .signal_handlers import component_event_chan from .signal_handlers import component_event_chan
logger = get_logger(__name__) logger = get_logger(__name__)
@ -77,3 +79,40 @@ class TerminalTaskWebsocket(JsonWebsocketConsumer):
if self.sub is None: if self.sub is None:
return return
self.sub.unsubscribe() self.sub.unsubscribe()
class LokiTailWebsocket(JsonWebsocketConsumer, LokiMixin):
loki_tail_ws = None
def connect(self):
user = self.scope["user"]
if user.is_authenticated and user.is_superuser:
self.accept()
logger.info('Loki tail websocket connected')
else:
self.close()
def receive_json(self, content, **kwargs):
if not content:
return
components = content.get('components')
search = content.get('search', '')
query = self.create_loki_query(components, search)
self.handle_query(query)
def send_tail_msg(self, tail_ws):
for message in tail_ws.messages():
self.send(text_data=message)
logger.info('Loki tail thread finished')
def handle_query(self, query):
loki_client = self.get_loki_client()
self.loki_tail_ws = loki_client.create_tail_ws(query)
threader = Thread(target=self.send_tail_msg, args=(self.loki_tail_ws,))
threader.start()
logger.debug('Start loki tail thread')
def disconnect(self, close_code):
if self.loki_tail_ws:
self.loki_tail_ws.close()
logger.info('Loki tail websocket client closed')