mirror of https://github.com/jumpserver/jumpserver
perf: merge with remote
commit
49d2bd93b7
19
Dockerfile
19
Dockerfile
|
@ -41,7 +41,10 @@ ENV VERSION=$VERSION
|
|||
WORKDIR /opt/jumpserver
|
||||
ADD . .
|
||||
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
|
||||
ARG TARGETARCH
|
||||
|
@ -53,6 +56,7 @@ ARG BUILD_DEPENDENCIES=" \
|
|||
|
||||
ARG DEPENDENCIES=" \
|
||||
freetds-dev \
|
||||
gettext \
|
||||
libffi-dev \
|
||||
libjpeg-dev \
|
||||
libkrb5-dev \
|
||||
|
@ -104,6 +108,14 @@ RUN --mount=type=cache,target=/root/.cache,sharing=locked \
|
|||
&& . /opt/py3/bin/activate \
|
||||
&& 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
|
||||
ARG TARGETARCH
|
||||
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@# 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 /opt/jumpserver/release/jumpserver /opt/jumpserver
|
||||
COPY --from=stage-1 /opt/jumpserver/release/jumpserver/apps/libs/ansible/ansible.cfg /etc/ansible/
|
||||
COPY --from=stage-1 /opt/jumpserver/apps/libs/ansible/ansible.cfg /etc/ansible/
|
||||
|
||||
WORKDIR /opt/jumpserver
|
||||
|
||||
|
|
|
@ -46,7 +46,10 @@ ADD . .
|
|||
COPY --from=build-xpack /opt/xpack /opt/jumpserver/apps/xpack
|
||||
|
||||
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
|
||||
ARG TARGETARCH
|
||||
|
@ -58,6 +61,7 @@ ARG BUILD_DEPENDENCIES=" \
|
|||
|
||||
ARG DEPENDENCIES=" \
|
||||
freetds-dev \
|
||||
gettext \
|
||||
libffi-dev \
|
||||
libjpeg-dev \
|
||||
libkrb5-dev \
|
||||
|
@ -109,6 +113,14 @@ RUN --mount=type=cache,target=/root/.cache,sharing=locked \
|
|||
&& . /opt/py3/bin/activate \
|
||||
&& 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
|
||||
ARG TARGETARCH
|
||||
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@# 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 /opt/jumpserver/release/jumpserver /opt/jumpserver
|
||||
COPY --from=stage-1 /opt/jumpserver/release/jumpserver/apps/libs/ansible/ansible.cfg /etc/ansible/
|
||||
COPY --from=stage-1 /opt/jumpserver/apps/libs/ansible/ansible.cfg /etc/ansible/
|
||||
|
||||
WORKDIR /opt/jumpserver
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\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"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -384,7 +384,7 @@ msgstr ""
|
|||
#: accounts/models/automations/backup_account.py:120
|
||||
#: 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/templates/ops/celery_task_log.html:75
|
||||
#: ops/templates/ops/celery_task_log.html:95
|
||||
#: perms/models/asset_permission.py:78
|
||||
#: settings/templates/ldap/_msg_import_ldap_user.html:5
|
||||
#: terminal/models/applet/host.py:141 terminal/models/session/session.py:45
|
||||
|
@ -413,7 +413,8 @@ msgid "Trigger mode"
|
|||
msgstr ""
|
||||
|
||||
#: 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"
|
||||
msgstr ""
|
||||
|
||||
|
@ -642,7 +643,7 @@ msgstr ""
|
|||
#: users/forms/profile.py:32 users/models/group.py:13
|
||||
#: 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/serializers/task.py:70
|
||||
#: xpack/plugins/cloud/serializers/task.py:71
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
|
@ -820,6 +821,7 @@ msgstr ""
|
|||
#: ops/models/job.py:152 ops/serializers/job.py:19
|
||||
#: perms/serializers/permission.py:36
|
||||
#: terminal/templates/terminal/_msg_command_execute_alert.html:16
|
||||
#: xpack/plugins/cloud/manager.py:73
|
||||
msgid "Assets"
|
||||
msgstr ""
|
||||
|
||||
|
@ -833,6 +835,7 @@ msgid "Asset does not support this secret type: %s"
|
|||
msgstr ""
|
||||
|
||||
#: accounts/serializers/account/account.py:410
|
||||
#: xpack/plugins/cloud/serializers/account.py:111
|
||||
msgid "Account has exist"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1073,7 +1076,7 @@ msgid "Deleted account"
|
|||
msgstr ""
|
||||
|
||||
#: 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"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1277,7 +1280,7 @@ msgid "None of the reviewers belong to Organization `{}`"
|
|||
msgstr ""
|
||||
|
||||
#: acls/serializers/rules/rules.py:20
|
||||
#: xpack/plugins/cloud/serializers/task.py:145
|
||||
#: xpack/plugins/cloud/serializers/task.py:146
|
||||
msgid "IP address invalid: `{}`"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1433,6 +1436,7 @@ msgstr ""
|
|||
#: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:71
|
||||
#: settings/serializers/feature.py:49 settings/serializers/msg.py:31
|
||||
#: 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
|
||||
msgid "Host"
|
||||
msgstr ""
|
||||
|
@ -1996,7 +2000,7 @@ msgstr ""
|
|||
#: authentication/serializers/connect_token_secret.py:75
|
||||
#: perms/models/asset_permission.py:76 perms/serializers/permission.py:46
|
||||
#: 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"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2325,6 +2329,7 @@ msgstr ""
|
|||
#: 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_session_sharing.html:10
|
||||
#: xpack/plugins/cloud/manager.py:74
|
||||
msgid "View"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2384,6 +2389,7 @@ msgstr ""
|
|||
|
||||
#: audits/const.py:51 terminal/models/applet/host.py:144
|
||||
#: terminal/models/component/task.py:22
|
||||
#: xpack/plugins/cloud/serializers/account.py:55
|
||||
msgid "Task"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3611,7 +3617,7 @@ msgstr ""
|
|||
msgid "Canceled"
|
||||
msgstr ""
|
||||
|
||||
#: common/const/common.py:5
|
||||
#: common/const/common.py:5 xpack/plugins/cloud/manager.py:380
|
||||
#, python-format
|
||||
msgid "%(name)s was created successfully"
|
||||
msgstr ""
|
||||
|
@ -4239,6 +4245,7 @@ msgid "Result"
|
|||
msgstr ""
|
||||
|
||||
#: ops/models/base.py:52 ops/models/job.py:238
|
||||
#: xpack/plugins/cloud/manager.py:77
|
||||
msgid "Summary"
|
||||
msgstr ""
|
||||
|
||||
|
@ -4812,7 +4819,7 @@ msgstr ""
|
|||
msgid "Session audits"
|
||||
msgstr ""
|
||||
|
||||
#: rbac/tree.py:49
|
||||
#: rbac/tree.py:49 xpack/plugins/cloud/manager.py:74
|
||||
msgid "Cloud import"
|
||||
msgstr ""
|
||||
|
||||
|
@ -7044,7 +7051,8 @@ msgstr ""
|
|||
msgid "Access key secret"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
|
@ -8351,9 +8359,10 @@ msgstr ""
|
|||
msgid "XPACK"
|
||||
msgstr ""
|
||||
|
||||
#: xpack/exceptions.py:7
|
||||
#: xpack/exceptions.py:8
|
||||
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 ""
|
||||
|
||||
#: xpack/plugins/cloud/api.py:60
|
||||
|
@ -8476,19 +8485,19 @@ msgstr ""
|
|||
msgid "Succeed"
|
||||
msgstr ""
|
||||
|
||||
#: xpack/plugins/cloud/const.py:52
|
||||
#: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:80
|
||||
msgid "Unsync"
|
||||
msgstr ""
|
||||
|
||||
#: xpack/plugins/cloud/const.py:53
|
||||
#: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:79
|
||||
msgid "New Sync"
|
||||
msgstr ""
|
||||
|
||||
#: xpack/plugins/cloud/const.py:54
|
||||
#: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:79
|
||||
msgid "Synced"
|
||||
msgstr ""
|
||||
|
||||
#: xpack/plugins/cloud/const.py:55
|
||||
#: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:80
|
||||
msgid "Released"
|
||||
msgstr ""
|
||||
|
||||
|
@ -8500,11 +8509,98 @@ msgstr ""
|
|||
msgid "Or"
|
||||
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
|
||||
msgid "Account unavailable"
|
||||
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
|
||||
msgid "Cloud center"
|
||||
msgstr ""
|
||||
|
@ -8514,7 +8610,7 @@ msgid "Provider"
|
|||
msgstr ""
|
||||
|
||||
#: xpack/plugins/cloud/models.py:37
|
||||
#: xpack/plugins/cloud/serializers/account.py:68
|
||||
#: xpack/plugins/cloud/serializers/account.py:69
|
||||
msgid "Attrs"
|
||||
msgstr ""
|
||||
|
||||
|
@ -8530,7 +8626,7 @@ msgstr ""
|
|||
msgid "Test cloud account"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
|
@ -8538,16 +8634,16 @@ msgstr ""
|
|||
msgid "Hostname strategy"
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: xpack/plugins/cloud/models.py:102
|
||||
#: xpack/plugins/cloud/serializers/task.py:185
|
||||
#: xpack/plugins/cloud/serializers/task.py:186
|
||||
msgid "Always update"
|
||||
msgstr ""
|
||||
|
||||
|
@ -8596,7 +8692,7 @@ msgstr ""
|
|||
msgid "Sync instance detail"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
|
@ -8652,7 +8748,7 @@ msgstr ""
|
|||
msgid "Rule value"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
|
@ -8664,7 +8760,7 @@ msgstr ""
|
|||
msgid "Action value"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
|
@ -8858,11 +8954,16 @@ msgstr ""
|
|||
msgid "CN East-Suqian"
|
||||
msgstr ""
|
||||
|
||||
#: xpack/plugins/cloud/serializers/account.py:69
|
||||
msgid "Validity display"
|
||||
#: xpack/plugins/cloud/providers/lan.py:79
|
||||
#, python-format
|
||||
msgid "Port \"%(port)s\" of instance IP \"%(ip)s\" is not reachable"
|
||||
msgstr ""
|
||||
|
||||
#: xpack/plugins/cloud/serializers/account.py:70
|
||||
msgid "Validity display"
|
||||
msgstr ""
|
||||
|
||||
#: xpack/plugins/cloud/serializers/account.py:71
|
||||
msgid "Provider display"
|
||||
msgstr ""
|
||||
|
||||
|
@ -8953,7 +9054,7 @@ msgstr ""
|
|||
msgid "Project"
|
||||
msgstr ""
|
||||
|
||||
#: xpack/plugins/cloud/serializers/task.py:151
|
||||
#: xpack/plugins/cloud/serializers/task.py:152
|
||||
msgid ""
|
||||
"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 "
|
||||
|
@ -8962,11 +9063,11 @@ msgid ""
|
|||
"10.1.1.1-10.1.1.20"
|
||||
msgstr ""
|
||||
|
||||
#: xpack/plugins/cloud/serializers/task.py:157
|
||||
#: xpack/plugins/cloud/serializers/task.py:158
|
||||
msgid "History count"
|
||||
msgstr ""
|
||||
|
||||
#: xpack/plugins/cloud/serializers/task.py:158
|
||||
#: xpack/plugins/cloud/serializers/task.py:159
|
||||
msgid "Instance count"
|
||||
msgstr ""
|
||||
|
||||
|
@ -8982,7 +9083,8 @@ msgstr ""
|
|||
msgid "Restore default successfully."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
|
@ -9015,10 +9117,6 @@ msgstr ""
|
|||
msgid "Footer content"
|
||||
msgstr ""
|
||||
|
||||
#: xpack/plugins/interface/models.py:45 xpack/plugins/interface/models.py:86
|
||||
msgid "Interface setting"
|
||||
msgstr ""
|
||||
|
||||
#: xpack/plugins/interface/serializers/interface.py:37
|
||||
msgid "Wide logo on top"
|
||||
msgstr ""
|
||||
|
@ -9032,7 +9130,7 @@ msgid "License import successfully"
|
|||
msgstr ""
|
||||
|
||||
#: xpack/plugins/license/api.py:53
|
||||
msgid "License is invalid"
|
||||
msgid "Invalid license"
|
||||
msgstr ""
|
||||
|
||||
#: xpack/plugins/license/meta.py:10 xpack/plugins/license/models.py:144
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\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"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -390,7 +390,7 @@ msgstr "アカウントバックアップ計画"
|
|||
#: accounts/models/automations/backup_account.py:120
|
||||
#: 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/templates/ops/celery_task_log.html:75
|
||||
#: ops/templates/ops/celery_task_log.html:95
|
||||
#: perms/models/asset_permission.py:78
|
||||
#: settings/templates/ldap/_msg_import_ldap_user.html:5
|
||||
#: terminal/models/applet/host.py:141 terminal/models/session/session.py:45
|
||||
|
@ -419,7 +419,8 @@ msgid "Trigger mode"
|
|||
msgstr "トリガーモード"
|
||||
|
||||
#: 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"
|
||||
msgstr "理由"
|
||||
|
||||
|
@ -652,7 +653,7 @@ msgstr "パスワードルール"
|
|||
#: users/forms/profile.py:32 users/models/group.py:13
|
||||
#: 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/serializers/task.py:70
|
||||
#: xpack/plugins/cloud/serializers/task.py:71
|
||||
msgid "Name"
|
||||
msgstr "名前"
|
||||
|
||||
|
@ -842,6 +843,7 @@ msgstr "編集済み"
|
|||
#: ops/models/job.py:152 ops/serializers/job.py:19
|
||||
#: perms/serializers/permission.py:36
|
||||
#: terminal/templates/terminal/_msg_command_execute_alert.html:16
|
||||
#: xpack/plugins/cloud/manager.py:73
|
||||
msgid "Assets"
|
||||
msgstr "資産"
|
||||
|
||||
|
@ -855,6 +857,7 @@ msgid "Asset does not support this secret type: %s"
|
|||
msgstr "アセットはアカウント タイプをサポートしていません: %s"
|
||||
|
||||
#: accounts/serializers/account/account.py:410
|
||||
#: xpack/plugins/cloud/serializers/account.py:111
|
||||
msgid "Account has exist"
|
||||
msgstr "アカウントはすでに存在しています"
|
||||
|
||||
|
@ -1101,7 +1104,7 @@ msgid "Deleted account"
|
|||
msgstr "アカウントの削除"
|
||||
|
||||
#: 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"
|
||||
msgstr "タスク名"
|
||||
|
||||
|
@ -1315,7 +1318,7 @@ msgid "None of the reviewers belong to Organization `{}`"
|
|||
msgstr "いずれのレビューアも組織 '{}' に属していません"
|
||||
|
||||
#: acls/serializers/rules/rules.py:20
|
||||
#: xpack/plugins/cloud/serializers/task.py:145
|
||||
#: xpack/plugins/cloud/serializers/task.py:146
|
||||
msgid "IP address invalid: `{}`"
|
||||
msgstr "IPアドレスが無効: '{}'"
|
||||
|
||||
|
@ -1482,6 +1485,7 @@ msgstr "脚本"
|
|||
#: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:71
|
||||
#: settings/serializers/feature.py:49 settings/serializers/msg.py:31
|
||||
#: 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
|
||||
msgid "Host"
|
||||
msgstr "ホスト"
|
||||
|
@ -2052,7 +2056,7 @@ msgstr ""
|
|||
#: authentication/serializers/connect_token_secret.py:75
|
||||
#: perms/models/asset_permission.py:76 perms/serializers/permission.py:46
|
||||
#: 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"
|
||||
msgstr "プロトコル"
|
||||
|
||||
|
@ -2400,6 +2404,7 @@ msgstr "マップディレクトリ"
|
|||
#: 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_session_sharing.html:10
|
||||
#: xpack/plugins/cloud/manager.py:74
|
||||
msgid "View"
|
||||
msgstr "表示"
|
||||
|
||||
|
@ -2459,6 +2464,7 @@ msgstr "ログインログ"
|
|||
|
||||
#: audits/const.py:51 terminal/models/applet/host.py:144
|
||||
#: terminal/models/component/task.py:22
|
||||
#: xpack/plugins/cloud/serializers/account.py:55
|
||||
msgid "Task"
|
||||
msgstr "タスク"
|
||||
|
||||
|
@ -3723,7 +3729,7 @@ msgstr "ランニング"
|
|||
msgid "Canceled"
|
||||
msgstr "キャンセル"
|
||||
|
||||
#: common/const/common.py:5
|
||||
#: common/const/common.py:5 xpack/plugins/cloud/manager.py:380
|
||||
#, python-format
|
||||
msgid "%(name)s was created successfully"
|
||||
msgstr "%(name)s が正常に作成されました"
|
||||
|
@ -4389,6 +4395,7 @@ msgid "Result"
|
|||
msgstr "結果"
|
||||
|
||||
#: ops/models/base.py:52 ops/models/job.py:238
|
||||
#: xpack/plugins/cloud/manager.py:77
|
||||
msgid "Summary"
|
||||
msgstr "概要"
|
||||
|
||||
|
@ -4989,7 +4996,7 @@ msgstr "システム設定"
|
|||
msgid "Session audits"
|
||||
msgstr "セッション監査"
|
||||
|
||||
#: rbac/tree.py:49
|
||||
#: rbac/tree.py:49 xpack/plugins/cloud/manager.py:74
|
||||
msgid "Cloud import"
|
||||
msgstr "クラウドインポート"
|
||||
|
||||
|
@ -7370,7 +7377,8 @@ msgstr "アクセスキー"
|
|||
msgid "Access key secret"
|
||||
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"
|
||||
msgstr "リージョン"
|
||||
|
||||
|
@ -8737,10 +8745,11 @@ msgstr "パスワードの成功をリセットし、ログインページに戻
|
|||
msgid "XPACK"
|
||||
msgstr "XPack"
|
||||
|
||||
#: xpack/exceptions.py:7
|
||||
#: xpack/exceptions.py:8
|
||||
msgid ""
|
||||
"The current task is not synchronized with unmatched policy assets, skipping"
|
||||
msgstr ""
|
||||
"Based on the current task configuration, assets that do not match the "
|
||||
"strategy will skipped."
|
||||
msgstr "現在のタスク構成に基づいて、未一致ポリシーの資産はスキップされます"
|
||||
|
||||
#: xpack/plugins/cloud/api.py:60
|
||||
msgid "Test connection successful"
|
||||
|
@ -8862,19 +8871,19 @@ msgstr "インスタンス名と部分IP"
|
|||
msgid "Succeed"
|
||||
msgstr "成功"
|
||||
|
||||
#: xpack/plugins/cloud/const.py:52
|
||||
#: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:80
|
||||
msgid "Unsync"
|
||||
msgstr "同期していません"
|
||||
|
||||
#: xpack/plugins/cloud/const.py:53
|
||||
#: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:79
|
||||
msgid "New Sync"
|
||||
msgstr "新しい同期"
|
||||
|
||||
#: xpack/plugins/cloud/const.py:54
|
||||
#: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:79
|
||||
msgid "Synced"
|
||||
msgstr "同期済み"
|
||||
|
||||
#: xpack/plugins/cloud/const.py:55
|
||||
#: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:80
|
||||
msgid "Released"
|
||||
msgstr "リリース済み"
|
||||
|
||||
|
@ -8886,11 +8895,98 @@ msgstr "そして"
|
|||
msgid "Or"
|
||||
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
|
||||
msgid "Account unavailable"
|
||||
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
|
||||
msgid "Cloud center"
|
||||
msgstr "クラウドセンター"
|
||||
|
@ -8900,7 +8996,7 @@ msgid "Provider"
|
|||
msgstr "プロバイダー"
|
||||
|
||||
#: xpack/plugins/cloud/models.py:37
|
||||
#: xpack/plugins/cloud/serializers/account.py:68
|
||||
#: xpack/plugins/cloud/serializers/account.py:69
|
||||
msgid "Attrs"
|
||||
msgstr "ツールバーの"
|
||||
|
||||
|
@ -8916,7 +9012,7 @@ msgstr "クラウドアカウント"
|
|||
msgid "Test cloud account"
|
||||
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"
|
||||
msgstr "リージョン"
|
||||
|
||||
|
@ -8924,16 +9020,16 @@ msgstr "リージョン"
|
|||
msgid "Hostname strategy"
|
||||
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"
|
||||
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"
|
||||
msgstr "同期IPタイプ"
|
||||
|
||||
#: xpack/plugins/cloud/models.py:102
|
||||
#: xpack/plugins/cloud/serializers/task.py:185
|
||||
#: xpack/plugins/cloud/serializers/task.py:186
|
||||
msgid "Always update"
|
||||
msgstr "常に更新"
|
||||
|
||||
|
@ -8982,7 +9078,7 @@ msgstr "インスタンス"
|
|||
msgid "Sync instance detail"
|
||||
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"
|
||||
msgstr "条件関係"
|
||||
|
||||
|
@ -9038,7 +9134,7 @@ msgstr "ルール一致"
|
|||
msgid "Rule value"
|
||||
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"
|
||||
msgstr "戦略ルール"
|
||||
|
||||
|
@ -9050,7 +9146,7 @@ msgstr "アクション属性"
|
|||
msgid "Action value"
|
||||
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"
|
||||
msgstr "戦略アクション"
|
||||
|
||||
|
@ -9244,11 +9340,16 @@ msgstr "TR-Istanbul"
|
|||
msgid "CN East-Suqian"
|
||||
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"
|
||||
msgstr "有効表示"
|
||||
|
||||
#: xpack/plugins/cloud/serializers/account.py:70
|
||||
#: xpack/plugins/cloud/serializers/account.py:71
|
||||
msgid "Provider display"
|
||||
msgstr "プロバイダ表示"
|
||||
|
||||
|
@ -9344,7 +9445,7 @@ msgstr "テストタイムアウト"
|
|||
msgid "Project"
|
||||
msgstr "project"
|
||||
|
||||
#: xpack/plugins/cloud/serializers/task.py:151
|
||||
#: xpack/plugins/cloud/serializers/task.py:152
|
||||
msgid ""
|
||||
"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 "
|
||||
|
@ -9358,11 +9459,11 @@ msgstr ""
|
|||
"ドレスをランダムに一致させることを意味します。 <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"
|
||||
msgstr "実行回数"
|
||||
|
||||
#: xpack/plugins/cloud/serializers/task.py:158
|
||||
#: xpack/plugins/cloud/serializers/task.py:159
|
||||
msgid "Instance count"
|
||||
msgstr "インスタンス数"
|
||||
|
||||
|
@ -9378,7 +9479,8 @@ msgstr "同期インスタンス タスクの実行記録を定期的にクリ
|
|||
msgid "Restore default successfully."
|
||||
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"
|
||||
msgstr "インターフェイスの設定"
|
||||
|
||||
|
@ -9413,10 +9515,6 @@ msgstr "テーマ"
|
|||
msgid "Footer content"
|
||||
msgstr "フッターの内容"
|
||||
|
||||
#: xpack/plugins/interface/models.py:45 xpack/plugins/interface/models.py:86
|
||||
msgid "Interface setting"
|
||||
msgstr "インターフェイスの設定"
|
||||
|
||||
#: xpack/plugins/interface/serializers/interface.py:37
|
||||
msgid "Wide logo on top"
|
||||
msgstr ""
|
||||
|
@ -9430,8 +9528,8 @@ msgid "License import successfully"
|
|||
msgstr "ライセンスのインポートに成功"
|
||||
|
||||
#: xpack/plugins/license/api.py:53
|
||||
msgid "License is invalid"
|
||||
msgstr "ライセンスが無効です"
|
||||
msgid "Invalid license"
|
||||
msgstr "無効なライセンス"
|
||||
|
||||
#: xpack/plugins/license/meta.py:10 xpack/plugins/license/models.py:144
|
||||
msgid "License"
|
||||
|
@ -9453,6 +9551,32 @@ msgstr "エンタープライズプロフェッショナル版"
|
|||
msgid "Ultimate edition"
|
||||
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
|
||||
#~| msgid "Apply applications"
|
||||
#~ msgid "App Applications"
|
||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: JumpServer 0.3.3\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"
|
||||
"Last-Translator: ibuler <ibuler@qq.com>\n"
|
||||
"Language-Team: JumpServer team<ibuler@qq.com>\n"
|
||||
|
@ -389,7 +389,7 @@ msgstr "账号备份计划"
|
|||
#: accounts/models/automations/backup_account.py:120
|
||||
#: 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/templates/ops/celery_task_log.html:75
|
||||
#: ops/templates/ops/celery_task_log.html:95
|
||||
#: perms/models/asset_permission.py:78
|
||||
#: settings/templates/ldap/_msg_import_ldap_user.html:5
|
||||
#: terminal/models/applet/host.py:141 terminal/models/session/session.py:45
|
||||
|
@ -418,7 +418,8 @@ msgid "Trigger mode"
|
|||
msgstr "触发模式"
|
||||
|
||||
#: 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"
|
||||
msgstr "原因"
|
||||
|
||||
|
@ -651,7 +652,7 @@ msgstr "密码规则"
|
|||
#: users/forms/profile.py:32 users/models/group.py:13
|
||||
#: 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/serializers/task.py:70
|
||||
#: xpack/plugins/cloud/serializers/task.py:71
|
||||
msgid "Name"
|
||||
msgstr "名称"
|
||||
|
||||
|
@ -838,6 +839,7 @@ msgstr "已修改"
|
|||
#: ops/models/job.py:152 ops/serializers/job.py:19
|
||||
#: perms/serializers/permission.py:36
|
||||
#: terminal/templates/terminal/_msg_command_execute_alert.html:16
|
||||
#: xpack/plugins/cloud/manager.py:73
|
||||
msgid "Assets"
|
||||
msgstr "资产"
|
||||
|
||||
|
@ -851,6 +853,7 @@ msgid "Asset does not support this secret type: %s"
|
|||
msgstr "资产不支持账号类型: %s"
|
||||
|
||||
#: accounts/serializers/account/account.py:410
|
||||
#: xpack/plugins/cloud/serializers/account.py:111
|
||||
msgid "Account has exist"
|
||||
msgstr "账号已存在"
|
||||
|
||||
|
@ -1094,7 +1097,7 @@ msgid "Deleted account"
|
|||
msgstr "删除账号"
|
||||
|
||||
#: 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"
|
||||
msgstr "任务名称"
|
||||
|
||||
|
@ -1142,8 +1145,6 @@ msgid "Review"
|
|||
msgstr "审批"
|
||||
|
||||
#: acls/const.py:9
|
||||
#, fuzzy
|
||||
#| msgid "Warning"
|
||||
msgid "Warn"
|
||||
msgstr "告警"
|
||||
|
||||
|
@ -1302,7 +1303,7 @@ msgid "None of the reviewers belong to Organization `{}`"
|
|||
msgstr "所有复核人都不属于组织 `{}`"
|
||||
|
||||
#: acls/serializers/rules/rules.py:20
|
||||
#: xpack/plugins/cloud/serializers/task.py:145
|
||||
#: xpack/plugins/cloud/serializers/task.py:146
|
||||
msgid "IP address invalid: `{}`"
|
||||
msgstr "IP 地址无效: `{}`"
|
||||
|
||||
|
@ -1464,6 +1465,7 @@ msgstr "脚本"
|
|||
#: settings/serializers/auth/radius.py:16 settings/serializers/auth/sms.py:71
|
||||
#: settings/serializers/feature.py:49 settings/serializers/msg.py:31
|
||||
#: 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
|
||||
msgid "Host"
|
||||
msgstr "主机"
|
||||
|
@ -2032,7 +2034,7 @@ msgstr "资产中批量更新平台,不符合平台类型跳过的资产"
|
|||
#: authentication/serializers/connect_token_secret.py:75
|
||||
#: perms/models/asset_permission.py:76 perms/serializers/permission.py:46
|
||||
#: 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"
|
||||
msgstr "协议组"
|
||||
|
||||
|
@ -2371,6 +2373,7 @@ msgstr "映射目录"
|
|||
#: 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_session_sharing.html:10
|
||||
#: xpack/plugins/cloud/manager.py:74
|
||||
msgid "View"
|
||||
msgstr "查看"
|
||||
|
||||
|
@ -2430,6 +2433,7 @@ msgstr "登录日志"
|
|||
|
||||
#: audits/const.py:51 terminal/models/applet/host.py:144
|
||||
#: terminal/models/component/task.py:22
|
||||
#: xpack/plugins/cloud/serializers/account.py:55
|
||||
msgid "Task"
|
||||
msgstr "任务"
|
||||
|
||||
|
@ -3666,7 +3670,7 @@ msgstr "运行中"
|
|||
msgid "Canceled"
|
||||
msgstr "取消"
|
||||
|
||||
#: common/const/common.py:5
|
||||
#: common/const/common.py:5 xpack/plugins/cloud/manager.py:380
|
||||
#, python-format
|
||||
msgid "%(name)s was created successfully"
|
||||
msgstr "%(name)s 创建成功"
|
||||
|
@ -4306,6 +4310,7 @@ msgid "Result"
|
|||
msgstr "结果"
|
||||
|
||||
#: ops/models/base.py:52 ops/models/job.py:238
|
||||
#: xpack/plugins/cloud/manager.py:77
|
||||
msgid "Summary"
|
||||
msgstr "汇总"
|
||||
|
||||
|
@ -4884,7 +4889,7 @@ msgstr "系统设置"
|
|||
msgid "Session audits"
|
||||
msgstr "会话审计"
|
||||
|
||||
#: rbac/tree.py:49
|
||||
#: rbac/tree.py:49 xpack/plugins/cloud/manager.py:74
|
||||
msgid "Cloud import"
|
||||
msgstr "云同步"
|
||||
|
||||
|
@ -7191,7 +7196,8 @@ msgstr "Access key ID(AK)"
|
|||
msgid "Access key secret"
|
||||
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"
|
||||
msgstr "地域"
|
||||
|
||||
|
@ -8522,9 +8528,10 @@ msgstr "重置密码成功,返回到登录页面"
|
|||
msgid "XPACK"
|
||||
msgstr "XPack"
|
||||
|
||||
#: xpack/exceptions.py:7
|
||||
#: xpack/exceptions.py:8
|
||||
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 ""
|
||||
|
||||
#: xpack/plugins/cloud/api.py:60
|
||||
|
@ -8647,19 +8654,19 @@ msgstr "实例名称和部分IP"
|
|||
msgid "Succeed"
|
||||
msgstr "成功"
|
||||
|
||||
#: xpack/plugins/cloud/const.py:52
|
||||
#: xpack/plugins/cloud/const.py:52 xpack/plugins/cloud/manager.py:80
|
||||
msgid "Unsync"
|
||||
msgstr "未同步"
|
||||
|
||||
#: xpack/plugins/cloud/const.py:53
|
||||
#: xpack/plugins/cloud/const.py:53 xpack/plugins/cloud/manager.py:79
|
||||
msgid "New Sync"
|
||||
msgstr "新同步"
|
||||
|
||||
#: xpack/plugins/cloud/const.py:54
|
||||
#: xpack/plugins/cloud/const.py:54 xpack/plugins/cloud/manager.py:79
|
||||
msgid "Synced"
|
||||
msgstr "已同步"
|
||||
|
||||
#: xpack/plugins/cloud/const.py:55
|
||||
#: xpack/plugins/cloud/const.py:55 xpack/plugins/cloud/manager.py:80
|
||||
msgid "Released"
|
||||
msgstr "已释放"
|
||||
|
||||
|
@ -8671,11 +8678,98 @@ msgstr "与"
|
|||
msgid "Or"
|
||||
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
|
||||
msgid "Account unavailable"
|
||||
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
|
||||
msgid "Cloud center"
|
||||
msgstr "云管中心"
|
||||
|
@ -8685,7 +8779,7 @@ msgid "Provider"
|
|||
msgstr "云服务商"
|
||||
|
||||
#: xpack/plugins/cloud/models.py:37
|
||||
#: xpack/plugins/cloud/serializers/account.py:68
|
||||
#: xpack/plugins/cloud/serializers/account.py:69
|
||||
msgid "Attrs"
|
||||
msgstr "属性"
|
||||
|
||||
|
@ -8701,7 +8795,7 @@ msgstr "云账号"
|
|||
msgid "Test cloud account"
|
||||
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"
|
||||
msgstr "地域"
|
||||
|
||||
|
@ -8709,16 +8803,16 @@ msgstr "地域"
|
|||
msgid "Hostname strategy"
|
||||
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"
|
||||
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"
|
||||
msgstr "同步IP类型"
|
||||
|
||||
#: xpack/plugins/cloud/models.py:102
|
||||
#: xpack/plugins/cloud/serializers/task.py:185
|
||||
#: xpack/plugins/cloud/serializers/task.py:186
|
||||
msgid "Always update"
|
||||
msgstr "总是更新"
|
||||
|
||||
|
@ -8767,7 +8861,7 @@ msgstr "实例"
|
|||
msgid "Sync instance detail"
|
||||
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"
|
||||
msgstr "条件关系"
|
||||
|
||||
|
@ -8823,7 +8917,7 @@ msgstr "规则匹配"
|
|||
msgid "Rule value"
|
||||
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"
|
||||
msgstr "条件"
|
||||
|
||||
|
@ -8835,7 +8929,7 @@ msgstr "动作属性"
|
|||
msgid "Action value"
|
||||
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"
|
||||
msgstr "动作"
|
||||
|
||||
|
@ -9029,11 +9123,16 @@ msgstr "TR-Istanbul"
|
|||
msgid "CN East-Suqian"
|
||||
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"
|
||||
msgstr "有效性显示"
|
||||
|
||||
#: xpack/plugins/cloud/serializers/account.py:70
|
||||
#: xpack/plugins/cloud/serializers/account.py:71
|
||||
msgid "Provider display"
|
||||
msgstr "服务商显示"
|
||||
|
||||
|
@ -9126,7 +9225,7 @@ msgstr "测试超时时间"
|
|||
msgid "Project"
|
||||
msgstr "project"
|
||||
|
||||
#: xpack/plugins/cloud/serializers/task.py:151
|
||||
#: xpack/plugins/cloud/serializers/task.py:152
|
||||
msgid ""
|
||||
"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 "
|
||||
|
@ -9138,11 +9237,11 @@ msgstr ""
|
|||
"到的 IP 地址将被用作创建的资产的 IP。<br>默认值 * 表示同步所有实例和随机匹配 "
|
||||
"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"
|
||||
msgstr "执行次数"
|
||||
|
||||
#: xpack/plugins/cloud/serializers/task.py:158
|
||||
#: xpack/plugins/cloud/serializers/task.py:159
|
||||
msgid "Instance count"
|
||||
msgstr "实例个数"
|
||||
|
||||
|
@ -9158,7 +9257,8 @@ msgstr "定期清除同步实例任务执行记录"
|
|||
msgid "Restore default successfully."
|
||||
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"
|
||||
msgstr "界面设置"
|
||||
|
||||
|
@ -9193,10 +9293,6 @@ msgstr "主题"
|
|||
msgid "Footer content"
|
||||
msgstr "页脚内容"
|
||||
|
||||
#: xpack/plugins/interface/models.py:45 xpack/plugins/interface/models.py:86
|
||||
msgid "Interface setting"
|
||||
msgstr "界面设置"
|
||||
|
||||
#: xpack/plugins/interface/serializers/interface.py:37
|
||||
msgid "Wide logo on top"
|
||||
msgstr "顶部宽 Logo"
|
||||
|
@ -9210,7 +9306,7 @@ msgid "License import successfully"
|
|||
msgstr "许可证导入成功"
|
||||
|
||||
#: xpack/plugins/license/api.py:53
|
||||
msgid "License is invalid"
|
||||
msgid "Invalid license"
|
||||
msgstr "无效的许可证"
|
||||
|
||||
#: xpack/plugins/license/meta.py:10 xpack/plugins/license/models.py:144
|
||||
|
@ -9233,6 +9329,29 @@ msgstr "企业专业版"
|
|||
msgid "Ultimate edition"
|
||||
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"
|
||||
#~ msgstr "应用管理"
|
||||
|
||||
|
@ -9305,18 +9424,6 @@ msgstr "企业旗舰版"
|
|||
#~ msgid "Key password"
|
||||
#~ 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"
|
||||
#~ msgstr "组织 ID"
|
||||
|
||||
|
|
|
@ -1,43 +1,44 @@
|
|||
{
|
||||
"ACLs": "ACLs",
|
||||
"APIKey": "Api key",
|
||||
"AWS_China": "AWS(China)",
|
||||
"AWS_Int": "AWS(International)",
|
||||
"About": "About",
|
||||
"Accept": "Accept",
|
||||
"AccessIP": "Ip whitelist",
|
||||
"AccessKey": "Access key",
|
||||
"Account": "Account",
|
||||
"AccountTemplateList": "Account templates",
|
||||
"AccountBackup": "Backup accounts",
|
||||
"AccountBackupCreate": "Create account backup",
|
||||
"AccountBackupPlanCreate": "Create account backup",
|
||||
"AccountBackupPlanDetail": "Backup account detail",
|
||||
"AccountBackupPlanList": "Backup account list",
|
||||
"AccountBackupPlanUpdate": "Update the account backup plan",
|
||||
"AccountBackupDetail": "Backup account detail",
|
||||
"AccountChangeSecretDetail": "Change secret account detail",
|
||||
"AccountBackupList": "Backup account",
|
||||
"AccountBackupUpdate": "Update account backup",
|
||||
"AccountBatchUpdate": "Updated selected",
|
||||
"AccountChangeSecret": "Change account credential tasks",
|
||||
"AccountCreate": "Create account",
|
||||
"AccountChangeSecret": "Change account secret change",
|
||||
"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).",
|
||||
"AccountGatherList": "Gather tasks",
|
||||
"AccountGatherTaskCreate": "Create gather accounts task",
|
||||
"GatheredAccountList": "Gathered accounts",
|
||||
"AccountGatherList": "Gather accounts",
|
||||
"AccountGatherDetail": "Gather account detail",
|
||||
"AccountPushDetail": "Push account detail",
|
||||
"AccountGatherTaskList": "Gather account tasks",
|
||||
"AccountGatherTaskCreate": "Create gather accounts task",
|
||||
"AccountGatherTaskUpdate": "Update the gather accounts task",
|
||||
"AccountList": "Accounts",
|
||||
"AccountPolicy": "Account policy",
|
||||
"AccountPolicyHelpText": "For accounts that do not meet the requirements when creating, such as: non-compliant key types and unique key constraints, you can choose the above strategy.",
|
||||
"AccountPushCreate": "Create push account task",
|
||||
"AccountPushExecutionList": "Execute history",
|
||||
"AccountPushList": "Push account tasks",
|
||||
"AccountPushUpdate": "Update the push account task",
|
||||
"AccountStorage": "Account",
|
||||
"AccountTemplate": "Template",
|
||||
"AccountTemplateList": "Account templates",
|
||||
"AccountPushCreate": "Create push account",
|
||||
"AccountPushList": "Push accounts",
|
||||
"AccountPushUpdate": "Update push account",
|
||||
"AccountStorage": "Account storage",
|
||||
"AccountTemplate": "Account templates",
|
||||
"AccountTemplateUpdateSecretHelpText": "The account list shows the accounts created through the template. when the secret is updated, the ciphertext of the accounts created through the template will be updated.",
|
||||
"AccountTemplates": "Templates",
|
||||
"Accounts": "Accounts",
|
||||
"Action": "Action",
|
||||
"ActionCount": "Action count",
|
||||
"PermAction": "Permission Action",
|
||||
"ActionCount": "Actions",
|
||||
"ActionSetting": "Action settings",
|
||||
"ActionSetting": "Action setting",
|
||||
"Actions": "Action",
|
||||
"ActionsTips": "The effects of each authority's agreement are different, click on the icon behind the authority to view",
|
||||
"Activate": "Activate",
|
||||
|
@ -50,9 +51,8 @@
|
|||
"Activity": "Activities",
|
||||
"Add": "Add",
|
||||
"AddAccount": "Add account",
|
||||
"AddAccountResult": "Account batch adding results",
|
||||
"AddAccountByTemplate": "Add account from template",
|
||||
"AddAccountResult": "Second-level approver",
|
||||
"AddAll": "Add all",
|
||||
"AddAllMembersWarningMsg": "Are you sure add all user to this group ?",
|
||||
"AddAsset": "Add assets",
|
||||
"AddAssetToNode": "Add assets to node",
|
||||
|
@ -66,7 +66,6 @@
|
|||
"AddUserGroupToThisPermission": "Add user groups",
|
||||
"AddUserToThisPermission": "Add users",
|
||||
"Address": "Address",
|
||||
"Addressee": "Recipient",
|
||||
"AdhocDetail": "Command details",
|
||||
"AdhocManage": "Command",
|
||||
"AdhocUpdate": "Update the command",
|
||||
|
@ -78,10 +77,8 @@
|
|||
"All": "All",
|
||||
"AllAccountTip": "All accounts already added on the asset",
|
||||
"AllAccounts": "All accounts",
|
||||
"AllAsset": "All assets",
|
||||
"AllClickRead": "All marked as read",
|
||||
"AllMembers": "All members",
|
||||
"AllUser": "All users",
|
||||
"AllowInvalidCert": "Ignore certificate check",
|
||||
"Announcement": "Announcement",
|
||||
"AnonymousAccount": "Anonymous accounts",
|
||||
|
@ -129,8 +126,8 @@
|
|||
"AssetAmount": "Asset amount",
|
||||
"AssetAndNode": "Assets/nodes",
|
||||
"AssetBulkUpdateTips": "Network devices, cloud services, web, batch updating of zones not supported",
|
||||
"AssetChangeSecretCreate": "Create change account credentials task",
|
||||
"AssetChangeSecretUpdate": "Update the change account credentials task",
|
||||
"AssetChangeSecretCreate": "Create account secret change",
|
||||
"AssetChangeSecretUpdate": "Update account secret change",
|
||||
"AssetData": "Asset",
|
||||
"AssetDetail": "Asset detail",
|
||||
"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.",
|
||||
"AssetPermissionRules": "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",
|
||||
"AssetTree": "Asset tree",
|
||||
"Assets": "Assets",
|
||||
|
@ -162,10 +159,8 @@
|
|||
"AuthSAMLKeyHelpText": "Sp certificates and keys are used for encrypted communication with idp",
|
||||
"AuthSaml2UserAttrMapHelpText": "The keys on the left are saml2 user attributes, the values on the right are authentication platform user attributes",
|
||||
"AuthSecurity": "Auth security",
|
||||
"AuthSetting": "Authentication",
|
||||
"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",
|
||||
"PasswordAndSSHKey": "Password & SSH Key",
|
||||
"Authentication": "Authentication",
|
||||
"AutoPush": "Auto push",
|
||||
"Automations": "Automations",
|
||||
|
@ -173,7 +168,6 @@
|
|||
"AwaitingMyApproval": "Assigned",
|
||||
"Azure": "Azure (china)",
|
||||
"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.",
|
||||
"BadConflictErrorMsg": "Refreshing, please try again later",
|
||||
"BadRequestErrorMsg": "Request error, please check the filled content",
|
||||
|
@ -183,14 +177,12 @@
|
|||
"Basic": "Basic",
|
||||
"BasicInfo": "Basic information",
|
||||
"BasicSetting": "Basic",
|
||||
"BatchConsent": "Batch approval",
|
||||
"BatchConsent": "Batch Approval",
|
||||
"BatchDeployment": "Batch deployment",
|
||||
"BatchProcessing": "{number} items selected",
|
||||
"BatchReject": "Batch reject",
|
||||
"BatchTest": "Batch test",
|
||||
"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",
|
||||
"Beian": "Record",
|
||||
"BelongAll": "Including at the same time",
|
||||
|
@ -201,7 +193,6 @@
|
|||
"BindSuccess": "Binding successful",
|
||||
"BlockedIPS": "Locked ips",
|
||||
"BuiltinVariable": "Built-in variables",
|
||||
"BulkUnblock": "Batch unlock",
|
||||
"CACertificate": "Ca certificate",
|
||||
"CAS": "Cas",
|
||||
"CMPP2": "Cmpp v2.0",
|
||||
|
@ -240,15 +231,19 @@
|
|||
"ClickCopy": "Click to copy",
|
||||
"ClientCertificate": "Client certificate",
|
||||
"ClipboardCopyPaste": "Clipboard copy and paste",
|
||||
"Clone": "Duplicate",
|
||||
"CloneFrom": "Duplicate",
|
||||
"Clone": "Clone",
|
||||
"Duplicate": "Duplicate",
|
||||
"Close": "Close",
|
||||
"CloseConfirm": "Confirm close",
|
||||
"CloseConfirmMessage": "File has changed, save?",
|
||||
"CloseStatus": "Completed",
|
||||
"Closed": "Completed",
|
||||
"CloudAccountCreate": "Create a cloud account",
|
||||
"CloudAccountDetail": "Details of cloud account",
|
||||
"CloudAccountList": "Cloud accounts",
|
||||
"CloudAccountUpdate": "Update the cloud account",
|
||||
"CloudCreate": "Create asset - cloud",
|
||||
"CloudRegionTip": "The region was not obtained, please check the account",
|
||||
"CloudSource": "Sync source",
|
||||
"CloudSync": "Cloud provider",
|
||||
"CloudUpdate": "Update the asset - cloud",
|
||||
|
@ -270,7 +265,6 @@
|
|||
"CommandGroupDetail": "Command set details",
|
||||
"CommandGroupList": "Command group",
|
||||
"CommandGroupUpdate": "Update the command group",
|
||||
"CommandJob": "Command",
|
||||
"CommandStorage": "Command storage",
|
||||
"CommandStorageUpdate": "Update the cmd storage",
|
||||
"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.",
|
||||
"ConceptTitle": "🤔 python interpreter",
|
||||
"Config": "Settings",
|
||||
"Configured": "Configured",
|
||||
"Confirm": "Confirm",
|
||||
"ConfirmPassword": "Confirm password",
|
||||
"ConnectAssets": "Connect assets",
|
||||
|
@ -295,8 +290,8 @@
|
|||
"ConnectMethodAclUpdate": "Update the connect method control",
|
||||
"ConnectWebSocketError": "Connection to websocket failed",
|
||||
"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",
|
||||
"ConnectionTokenList": "The connection token is a type of authentication information that combines identity verification with connecting assets. it supports one-click user login to assets. currently supported components include: koko, lion, magnus, razor, etc.",
|
||||
"Console": "Console",
|
||||
"Consult": "Consult",
|
||||
"ContainAttachment": "With attachment",
|
||||
|
@ -320,6 +315,8 @@
|
|||
"CreateSuccessMsg": "Successfully created !",
|
||||
"CreateUserSetting": "User creation",
|
||||
"Created": "Created",
|
||||
"Crontab": "Crontab",
|
||||
"Interval": "Interval",
|
||||
"CreatedBy": "Creator",
|
||||
"CriticalLoad": "Serious",
|
||||
"CronExpression": "Complete crontab expression",
|
||||
|
@ -340,6 +337,7 @@
|
|||
"CustomUser": "Customized user",
|
||||
"CycleFromWeek": "Week cycle from",
|
||||
"CyclePerform": "Execute periodically",
|
||||
"Danger": "Danger",
|
||||
"DangerCommand": "Dangerous command",
|
||||
"DangerousCommandNum": "Total dangerous commands",
|
||||
"Dashboard": "Dashboard",
|
||||
|
@ -390,6 +388,7 @@
|
|||
"DeviceUpdate": "Update the asset - device",
|
||||
"Digit": "Number",
|
||||
"DingTalk": "Dingtalk",
|
||||
"DingTalkOAuth": "DingTalk OAuth",
|
||||
"DingTalkTest": "Test",
|
||||
"Disable": "Disable",
|
||||
"DisableSelected": "Disable selected",
|
||||
|
@ -436,11 +435,11 @@
|
|||
"Exclude": "Does not include",
|
||||
"ExcludeAsset": "Skipped assets",
|
||||
"ExcludeSymbol": "Exclude char",
|
||||
"ExecCloudSyncErrorMsg": "The cloud account configuration is incomplete, please update and try again.",
|
||||
"Execute": "Execute",
|
||||
"ExecuteOnce": "Execute once",
|
||||
"ExecutionDetail": "Execution history details",
|
||||
"ExecutionHistory": "History",
|
||||
"ExecutionList": "Execute history",
|
||||
"ExecutionList": "Executions",
|
||||
"ExistError": "This element already exists",
|
||||
"Existing": "Already exists",
|
||||
"ExpirationTimeout": "Expiration timeout (seconds)",
|
||||
|
@ -457,6 +456,7 @@
|
|||
"FaviconTip": "Note: website icon (suggested image size: 16px*16px)",
|
||||
"Features": "Features",
|
||||
"FeiShu": "FeiShu",
|
||||
"FeiShuOAuth": "Feishu OAuth",
|
||||
"FeiShuTest": "Test",
|
||||
"FieldRequiredError": "This field is required",
|
||||
"FileExplorer": "File explorer",
|
||||
|
@ -464,6 +464,9 @@
|
|||
"FileNameTooLong": "File name too long",
|
||||
"FileSizeExceedsLimit": "File size exceeds limit",
|
||||
"FileTransfer": "File transfer",
|
||||
"FileTransferBootStepHelpTips1": "Select one asset or node",
|
||||
"FileTransferBootStepHelpTips2": "Select running account and input command",
|
||||
"FileTransferBootStepHelpTips3": "Transfer,display output results",
|
||||
"FileTransferNum": "Number of file transfers",
|
||||
"FileType": "File type",
|
||||
"Filename": "File name",
|
||||
|
@ -472,6 +475,7 @@
|
|||
"FinishedTicket": "Complete ticket",
|
||||
"FirstLogin": "First login",
|
||||
"FlowSetUp": "Flow setup",
|
||||
"Footer": "Footer",
|
||||
"FormatError": "Format error",
|
||||
"Friday": "Fri",
|
||||
"From": "From",
|
||||
|
@ -487,11 +491,11 @@
|
|||
"GatewayUpdate": "Update the gateway",
|
||||
"GatherAccounts": "Gather accounts",
|
||||
"GatherAccountsHelpText": "Collect account information on assets. the collected account information can be imported into the system for centralized management.",
|
||||
"GatheredAccounts": "Gathered accounts",
|
||||
"GeneralAccounts": "General accounts",
|
||||
"Generate": "Generate",
|
||||
"GenerateAccounts": "Regenerate account",
|
||||
"GenerateSuccessMsg": "Account creation successful",
|
||||
"GenericSetting": "Generic",
|
||||
"GoHomePage": "Go to homepage",
|
||||
"Goto": "Go to",
|
||||
"GrantedAssets": "Authorized assets",
|
||||
|
@ -513,7 +517,7 @@
|
|||
"Host": "Asset",
|
||||
"HostCreate": "Create asset - host",
|
||||
"HostDeployment": "Deploy publishing machine",
|
||||
"HostList": "Host list",
|
||||
"HostList": "Host",
|
||||
"HostUpdate": "Update the asset - host",
|
||||
"HostnameStrategy": "Used to generate hostnames for assets. for example: 1. instance name (instancedemo); 2. instance name and part of ip (last two letters) (instancedemo-250.1)",
|
||||
"Hour": "Hour",
|
||||
|
@ -536,7 +540,7 @@
|
|||
"ImportAll": "Import all",
|
||||
"ImportFail": "Import failed",
|
||||
"ImportLdapUserTip": "Please submit ldap configuration before import",
|
||||
"ImportLdapUserTitle": "Ldap user list",
|
||||
"ImportLdapUserTitle": "Ldap user",
|
||||
"ImportLicense": "Import license",
|
||||
"ImportLicenseTip": "Please import license",
|
||||
"ImportMessage": "Please go to the corresponding type of page to import data",
|
||||
|
@ -547,6 +551,7 @@
|
|||
"Inactive": "Disabled",
|
||||
"Index": "Index",
|
||||
"Info": "Information",
|
||||
"InformationModification": "Information Modification",
|
||||
"InheritPlatformConfig": "Inherited from platform configuration, to change, please modify the configuration in the platform",
|
||||
"InitialDeploy": "Initialization deployment",
|
||||
"Input": "Input",
|
||||
|
@ -588,18 +593,17 @@
|
|||
"JobExecutionLog": "Job logs",
|
||||
"JobManagement": "Jobs",
|
||||
"JobUpdate": "Update the job",
|
||||
"KokoSettingUpdate": "Koko",
|
||||
"LAN": "Bulk account add results",
|
||||
"KingSoftCloud": "KingSoft Cloud",
|
||||
"KokoSetting": "KoKo",
|
||||
"GenericSetting": "Generic",
|
||||
"LDAPUser": "LDAP Users",
|
||||
"Label": "Label",
|
||||
"LAN": "LAN",
|
||||
"LabelCreate": "Create label",
|
||||
"LabelInputFormatValidation": "Label format error, the correct format is: name:value",
|
||||
"LabelList": "Labels",
|
||||
"LabelUpdate": "Update the label",
|
||||
"Language": "Language",
|
||||
"LarkOAuth": "Lark OAuth",
|
||||
"Last30": "Recent 30 items",
|
||||
"Last30Days": "Monthly",
|
||||
"Last7Days": "Weekly",
|
||||
|
@ -621,7 +625,7 @@
|
|||
"LockedIP": "Locked ip {count}",
|
||||
"Log": "Log",
|
||||
"LogData": "Log data",
|
||||
"LogOfLoginSuccessNum": "The successful login logs",
|
||||
"LogOfLoginSuccessNum": "The successful login logs number",
|
||||
"Logging": "Log record",
|
||||
"LoginAssetConfirm": "Asset connect review",
|
||||
"LoginAssetToday": "Active assets today",
|
||||
|
@ -638,6 +642,7 @@
|
|||
"LoginNum": "Total login logs",
|
||||
"LoginPasswordSetting": "Login password",
|
||||
"LoginRequiredMsg": "The account has logged out, please log in again.",
|
||||
"LoginSSHKeySetting": "Login SSH Key",
|
||||
"LoginSucceeded": "Login successful",
|
||||
"LoginTitleTip": "Note: it will be displayed on the enterprise edition user ssh login koko login page (e.g.: welcome to use jumpserver open source bastion)",
|
||||
"LoginUserRanking": "Login account ranking",
|
||||
|
@ -645,19 +650,17 @@
|
|||
"LoginUsers": "Active account",
|
||||
"LogoIndexTip": "Tip: it will be displayed in the upper left corner of the page (recommended image size: 185px*55px)",
|
||||
"LogoLogoutTip": "Tip: it will be displayed on the web terminal page of enterprise edition users (recommended image size: 82px*82px)",
|
||||
"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",
|
||||
"LogsAudit": "Activities",
|
||||
"Lowercase": "Lowercase",
|
||||
"LunaSetting": "Luna",
|
||||
"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",
|
||||
"ManualAccount": "Manual accounts",
|
||||
"ManualAccountTip": "Manual input of username/password upon login",
|
||||
"ManualExecute": "Manual execution",
|
||||
"ManyChoose": "Select multiple",
|
||||
"MarkAsRead": "Mark as read",
|
||||
"Marketplace": "App market",
|
||||
|
@ -673,9 +676,7 @@
|
|||
"MenuPermissions": "Policies",
|
||||
"MenuUsers": "Users",
|
||||
"Message": "Message",
|
||||
"MessageSubscription": "Message subscription",
|
||||
"MessageType": "Message type",
|
||||
"NotificationConfiguration": "Notification Configuration",
|
||||
"MfaLevel": "MFA",
|
||||
"Min": "Min",
|
||||
"Modify": "Edit",
|
||||
|
@ -699,7 +700,10 @@
|
|||
"NewDirectory": "Create new directory",
|
||||
"NewFile": "Create new file",
|
||||
"NewPassword": "New password",
|
||||
"NewPublicKey": "New Public Key",
|
||||
"NewSSHKey": "New SSH Key",
|
||||
"NewSyncCount": "New sync",
|
||||
"Next": "Next",
|
||||
"No": "No",
|
||||
"NoContent": "No content",
|
||||
"NoData": "No data available",
|
||||
|
@ -717,6 +721,7 @@
|
|||
"NotSet": "Not set",
|
||||
"NotSpecialEmoji": "Special emoji input not allowed",
|
||||
"Nothing": "None",
|
||||
"NotificationConfiguration": "Notification Configuration",
|
||||
"Notifications": "Notifications",
|
||||
"Now": "Now",
|
||||
"Number": "No.",
|
||||
|
@ -730,11 +735,9 @@
|
|||
"OfflineSuccessMsg": "Successfully offline",
|
||||
"OfflineUpload": "Offline upload",
|
||||
"OldPassword": "Old password",
|
||||
"OldSSHKey": "Old ssh public key",
|
||||
"OldPublicKey": "Old Public Key",
|
||||
"OneAssignee": "First-level approver",
|
||||
"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?",
|
||||
"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.",
|
||||
|
@ -748,16 +751,17 @@
|
|||
"OpenTicket": "Create ticket",
|
||||
"OperateLog": "Operate logs",
|
||||
"OperationLogNum": "Operation logs",
|
||||
"Options": "Options",
|
||||
"OrgAdmin": "Organization admin",
|
||||
"OrgAuditor": "Organizational auditors",
|
||||
"OrgName": "Authorized organization name",
|
||||
"OrgRole": "Organizational roles",
|
||||
"OrgRoleHelpMsg": "Organization roles are roles tailored to individual organizations within the platform. these roles are assigned when inviting users to join a particular organization and dictate their permissions and access levels within that organization. unlike system roles, organization roles are customizable and apply only within the scope of the organization they are assigned to.",
|
||||
"OrgRoleHelpText": "The org role is the user's role within the current organization",
|
||||
"OrgRoles": "Organizational roles",
|
||||
"OrgUser": "Organize users",
|
||||
"OrganizationCreate": "Create organization",
|
||||
"OrganizationDetail": "Organization details",
|
||||
"OrgAuditor": "Organizational auditors",
|
||||
"OrgRole": "Organizational roles",
|
||||
"OrgRoles": "Organizational roles",
|
||||
"OrganizationList": "Organizations",
|
||||
"OrganizationManage": "Manage orgs",
|
||||
"OrganizationUpdate": "Update the organization",
|
||||
|
@ -774,6 +778,7 @@
|
|||
"PasskeyAddDisableInfo": "Your authentication source is {source}, and adding a passkey is not supported",
|
||||
"Passphrase": "Key password",
|
||||
"Password": "Password",
|
||||
"PasswordAndSSHKey": "Password & SSH Key",
|
||||
"PasswordChangeLog": "Password change",
|
||||
"PasswordExpired": "Password expired",
|
||||
"PasswordPlaceholder": "Please enter password",
|
||||
|
@ -793,6 +798,8 @@
|
|||
"PermissionName": "Authorization rule name",
|
||||
"Permissions": "Permission",
|
||||
"PersonalInformationImprovement": "Complete personal information",
|
||||
"PersonalSettings": "Personal Settings",
|
||||
"Phone": "Phone",
|
||||
"Plan": "Plan",
|
||||
"Platform": "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.",
|
||||
"PlatformProtocolConfig": "Platform protocol configuration",
|
||||
"PlatformUpdate": "Update the platform",
|
||||
"PlayBookJob": "Playbook",
|
||||
"PlaybookDetail": "Playbook details",
|
||||
"PlaybookManage": "Playbook",
|
||||
"PlaybookUpdate": "Update the playbook",
|
||||
"PleaseAgreeToTheTerms": "Please agree to the terms",
|
||||
"PleaseSelect": "Please select",
|
||||
"PolicyName": "Policy name",
|
||||
"Port": "Port",
|
||||
"Ports": "Port",
|
||||
"Preferences": "Preferences",
|
||||
"Primary": "Primary",
|
||||
"Priority": "Priority",
|
||||
"PrivateCloud": "Private cloud",
|
||||
"PrivateKey": "Private key",
|
||||
|
@ -818,7 +825,6 @@
|
|||
"PrivilegedOnly": "Privileged accounts only",
|
||||
"PrivilegedTemplate": "Privileged",
|
||||
"Product": "Product",
|
||||
"Profile": "Profile",
|
||||
"ProfileSetting": "Profile info",
|
||||
"Project": "Project name",
|
||||
"Prompt": "Prompt",
|
||||
|
@ -833,8 +839,7 @@
|
|||
"PublishAllApplets": "Publish all applications",
|
||||
"PublishStatus": "Release status",
|
||||
"Push": "Push",
|
||||
"PushAccount": "Push account",
|
||||
"PushAccounts": "Push accounts",
|
||||
"PushAccount": "Push accounts",
|
||||
"PushAccountsHelpText": "Pushing the account to the target asset allows for configuring different push methods for assets on different platforms.",
|
||||
"PushParams": "Push parameters",
|
||||
"Qcloud": "Tencent cloud",
|
||||
|
@ -950,15 +955,13 @@
|
|||
"SMS": "Message",
|
||||
"SMSProvider": "SMS service provider",
|
||||
"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",
|
||||
"SameAccount": "Same accounts",
|
||||
"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",
|
||||
"Saturday": "Sat",
|
||||
"Save": "Save",
|
||||
|
@ -975,6 +978,7 @@
|
|||
"SearchAncestorNodePerm": "Search for authorizations simultaneously on the current node and ancestor nodes",
|
||||
"Secret": "Password",
|
||||
"SecretKey": "Key",
|
||||
"SubscriptionID": "Subscription authorization ID",
|
||||
"SecretKeyStrategy": "Password policy",
|
||||
"Secure": "Security",
|
||||
"Security": "Security",
|
||||
|
@ -1023,19 +1027,10 @@
|
|||
"SetDingTalk": "Dingtalk oauth",
|
||||
"SetFailed": "Setting failed",
|
||||
"SetFeiShu": "Set feishu authentication",
|
||||
"SetSlack": "Slack oauth",
|
||||
"SetStatus": "Status setting",
|
||||
"SetMFA": "Multi-factor authentication",
|
||||
"SetSuccess": "Successfully set",
|
||||
"SetToDefault": "Set as default",
|
||||
"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",
|
||||
"SettingInEndpointHelpText": "Configure service address and port in system settings / component settings / server endpoints",
|
||||
"Settings": "System settings",
|
||||
|
@ -1049,6 +1044,7 @@
|
|||
"Skip": "Skip this asset",
|
||||
"Skipped": "Skipped",
|
||||
"Slack": "Slack",
|
||||
"SlackOAuth": "Slack OAuth",
|
||||
"Source": "Source",
|
||||
"SourceIP": "Source address",
|
||||
"SourcePort": "Source port",
|
||||
|
@ -1056,9 +1052,7 @@
|
|||
"SpecAccount": "Specified accounts",
|
||||
"SpecAccountTip": "Specify username to choose authorized account",
|
||||
"SpecialSymbol": "Special char",
|
||||
"SpecificAsset": "Specific asset",
|
||||
"SpecificInfo": "Special information",
|
||||
"SpecificUser": "Specific user",
|
||||
"SshKeyFingerprint": "Ssh fingerprint",
|
||||
"Startswith": "Starts with...",
|
||||
"State": "Status",
|
||||
|
@ -1067,6 +1061,7 @@
|
|||
"StatusGreen": "Recently in good condition",
|
||||
"StatusRed": "Last task execution failed",
|
||||
"StatusYellow": "There have been recent failures",
|
||||
"Step": "Step",
|
||||
"Stop": "Stop",
|
||||
"Storage": "Storage",
|
||||
"StorageSetting": "Storage",
|
||||
|
@ -1074,7 +1069,7 @@
|
|||
"StrategyCreate": "Create policy",
|
||||
"StrategyDetail": "Policy details",
|
||||
"StrategyHelpTip": "Identify the unique attributes of assets (such as platforms) based on priority of strategies; when an asset's attribute (like nodes) can be configured to multiple, all actions of the strategies will be executed.",
|
||||
"StrategyList": "Policy list",
|
||||
"StrategyList": "Policy",
|
||||
"StrategyUpdate": "Update the policy",
|
||||
"SuEnabled": "Enable switch",
|
||||
"SuFrom": "Switch from",
|
||||
|
@ -1095,11 +1090,11 @@
|
|||
"SyncErrorMsg": "Sync failed",
|
||||
"SyncInstanceTaskCreate": "Create sync task",
|
||||
"SyncInstanceTaskDetail": "Sync task details",
|
||||
"SyncInstanceTaskHistoryAssetList": "Synchronize instance list",
|
||||
"SyncInstanceTaskHistoryList": "Synchronization history list",
|
||||
"SyncInstanceTaskList": "Synchronization task list",
|
||||
"SyncInstanceTaskHistoryAssetList": "Synchronize instance",
|
||||
"SyncInstanceTaskHistoryList": "Synchronization history",
|
||||
"SyncInstanceTaskList": "Synchronization task",
|
||||
"SyncInstanceTaskUpdate": "Update the sync task",
|
||||
"SyncProtocolToAsset": "Protocols to assets",
|
||||
"SyncProtocolToAsset": "Sync protocols to assets",
|
||||
"SyncSelected": "Sync selected",
|
||||
"SyncSetting": "Sync settings",
|
||||
"SyncStrategy": "Sync policy",
|
||||
|
@ -1119,13 +1114,13 @@
|
|||
"Target": "Target",
|
||||
"TargetResources": "Target resource",
|
||||
"Task": "Task",
|
||||
"TestSelected": "Test selected",
|
||||
"TaskDetail": "Task details",
|
||||
"TaskDone": "Task finished",
|
||||
"TaskID": "Task id",
|
||||
"TaskList": "System tasks",
|
||||
"TaskMonitor": "Monitoring",
|
||||
"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",
|
||||
"TempToken": "Temporary tokens",
|
||||
"TemplateAdd": "Add from template",
|
||||
|
@ -1203,7 +1198,6 @@
|
|||
"UpdateNodeAssetHardwareInfo": "Update node assets hardware information",
|
||||
"UpdatePlatformHelpText": "The asset will be updated only if the original platform type is the same as the selected platform type. if the platform types before and after the update are different, it will not be updated.",
|
||||
"UpdateSSHKey": "Change ssh public key",
|
||||
"NewSSHKey": "New SSH Key",
|
||||
"UpdateSelected": "Update selected",
|
||||
"UpdateSuccessMsg": "Successfully updated !",
|
||||
"Updated": "Updated",
|
||||
|
@ -1228,7 +1222,7 @@
|
|||
"UserGroupDetail": "User group details",
|
||||
"UserGroupList": "Groups",
|
||||
"UserGroupUpdate": "Update the user group",
|
||||
"UserInformation": "User info",
|
||||
"UserGroups": "Groups",
|
||||
"UserList": "Users",
|
||||
"UserLoginACLHelpMsg": "When logging into the system, the user's login ip and time range can be audited to determine whether they are allowed to log into the system (effective globally)",
|
||||
"UserLoginACLHelpText": "When logging in, it can be audited based on the user's login ip and time segment to determine whether the user can log in",
|
||||
|
@ -1239,12 +1233,7 @@
|
|||
"UserLoginLimit": "User restriction",
|
||||
"UserLoginTrend": "Account login trend",
|
||||
"UserPasswordChangeLog": "User password change log",
|
||||
"UserProfile": "Profile",
|
||||
"UserSession": "Asset sessions",
|
||||
"UserSetting": "Preference",
|
||||
"UserGroups": "Groups",
|
||||
"PersonalSettings": "Personal Settings",
|
||||
"Preferences": "Preferences",
|
||||
"UserSwitchFrom": "Switch from",
|
||||
"UserUpdate": "Update the user",
|
||||
"Username": "Username",
|
||||
|
@ -1265,14 +1254,17 @@
|
|||
"ViewMore": "View more",
|
||||
"ViewPerm": "View",
|
||||
"ViewSecret": "View ciphertext",
|
||||
"VirtualAccountDetail": "Details of virtual account",
|
||||
"VirtualAccountDetail": "Virtual account detail",
|
||||
"VirtualAccountHelpMsg": "Virtual accounts are specialized accounts with specific purposes when connecting assets.",
|
||||
"VirtualAccountUpdate": "Virtual account update",
|
||||
"VirtualAccounts": "Virtual accounts",
|
||||
"VirtualApp": "Virtual app",
|
||||
"VirtualAppDetail": "Virtual app details",
|
||||
"VirtualApps": "Virtual app",
|
||||
"Volcengine": "Volcengine",
|
||||
"Warning": "Warning",
|
||||
"WeCom": "Wecom",
|
||||
"WeComOAuth": "WeCom OAuth",
|
||||
"WeComTest": "Test",
|
||||
"WebCreate": "Create asset - web",
|
||||
"WebHelpMessage": "Web type assets depend on remote applications, please go to system settings and configure in remote applications",
|
||||
|
@ -1289,6 +1281,7 @@
|
|||
"Workbench": "Workbench",
|
||||
"Workspace": "Workspace",
|
||||
"Yes": "Yes",
|
||||
"YourProfile": "Your profile",
|
||||
"ZStack": "ZStack",
|
||||
"Zone": "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.",
|
||||
"ZoneList": "Zones",
|
||||
"ZoneUpdate": "Update the zone",
|
||||
"YourProfile": "Your profile",
|
||||
"AccessKeys": "Access keys",
|
||||
"InformationModification": "Information Modification",
|
||||
"Phone": "Phone"
|
||||
"TailLog": "Tail Log"
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
{
|
||||
"": "",
|
||||
"ACLs": "アクセス制御",
|
||||
"APIKey": "APIキー",
|
||||
"AWS_China": "AWS(中国)",
|
||||
"AWS_Int": "AWS (国際)",
|
||||
"AWS_Int": "AWS (インターナショナル)",
|
||||
"About": "について",
|
||||
"Accept": "同意する",
|
||||
"AccessIP": "Access IP",
|
||||
|
@ -14,26 +14,23 @@
|
|||
"AccountBackupList": "アカウントのバックアップリスト",
|
||||
"AccountBackupUpdate": "アカウントのバックアップを更新する",
|
||||
"AccountChangeSecret": "アカウントのパスワード変更",
|
||||
"AccountCreate": "アカウントの作成",
|
||||
"AccountDeleteConfirmMsg": "アカウントを削除します,続行しますか?",
|
||||
"AccountDetail": "アカウントの詳細",
|
||||
"AccountEnabled": "アカウントを有効にする",
|
||||
"AccountExportTips": "エクスポート情報には機密情報を含むアカウント暗号文が含まれており、エクスポートされたフォーマットは暗号化されたzipファイルです(暗号化パスワードが設定されていない場合は、個人情報にファイル暗号化パスワードを設定してください)。",
|
||||
"AccountGather": "アカウントのコレクション",
|
||||
"AccountGatherList": "収集タスク",
|
||||
"AccountGatherTaskCreate": "タスクを作成",
|
||||
"AccountGatherList": "アカウントの収集",
|
||||
"AccountGatherTaskList": "アカウント収集タスク",
|
||||
"AccountGatherTaskCreate": "アカウント収集タスクを作成します",
|
||||
"AccountGatherTaskUpdate": "アカウント収集タスクを更新",
|
||||
"AccountList": "アカウントリスト",
|
||||
"AccountPolicy": "アカウントポリシー",
|
||||
"AccountPolicyHelpText": "非準拠のキー タイプや一意のキー制約など、作成時に要件を満たさないアカウントの場合は、上記の戦略を選択できます。",
|
||||
"AccountPushExecutionList": "アカウントプッシュ実行リスト",
|
||||
"AccountPushCreate": "アカウントプッシュの作成",
|
||||
"AccountPushList": "アカウントプッシュ",
|
||||
"AccountPushUpdate": "アカウントのプッシュを更新",
|
||||
"AccountGatherTaskExecutionList": "タスク実行リスト",
|
||||
"AccountGatherTaskList": "アカウントのコレクション",
|
||||
"AccountGatherTaskUpdate": "更新タスク",
|
||||
"AccountHelpText": "クラウドアカウントはクラウドサービスプロバイダーに接続し、プロバイダーのリソース情報にアクセスするためのアカウントです",
|
||||
"AccountHistoryHelpMessage": "現在のアカウントの履歴バージョンを記録する",
|
||||
"AccountList": "アカウントリスト",
|
||||
"AccountName": "Account name",
|
||||
"AccountPolicy": "アカウントポリシー",
|
||||
"AccountPushCreate": "アカウントのプッシュ作成",
|
||||
"AccountPushExecutionList": "実行リスト",
|
||||
"AccountPushList": "アカウントプッシュ",
|
||||
"AccountPushUpdate": "アカウントプッシュ更新",
|
||||
"AccountStorage": "アカウントストレージ",
|
||||
"AccountTemplate": "アカウントテンプレート",
|
||||
"AccountTemplateUpdateSecretHelpText": "アカウントリストには、テンプレートで作成されたアカウントが表示されます。暗号文を更新すると、テンプレートで作成されたアカウントの暗号文が更新されます。",
|
||||
|
@ -262,7 +259,7 @@
|
|||
"CMPP2": "CMPP v2.0",
|
||||
"CTYunPrivate": "天翼プライベート・クラウド",
|
||||
"CanDragSelect": "マウスをドラッグして時間帯を選択",
|
||||
"Cancel": "確認",
|
||||
"Cancel": "キャンセル",
|
||||
"CancelCollection": "収集の取消し",
|
||||
"CannotAccess": "現在のページにアクセスできません",
|
||||
"Cas": "Cas設定",
|
||||
|
@ -302,6 +299,10 @@
|
|||
"CloseStatus": "閉じる",
|
||||
"Closed": "完了しました",
|
||||
"Cloud": "クラウド管理センター",
|
||||
"CloudAccountCreate": "クラウドアカウントの作成",
|
||||
"CloudAccountDetail": "クラウドアカウントの詳細",
|
||||
"CloudAccountList": "クラウドアカウント",
|
||||
"CloudAccountUpdate": "クラウドアカウントの更新",
|
||||
"CloudCenter": "クラウド管理センター",
|
||||
"CloudCreate": "アセット作成 - クラウドプラットフォーム",
|
||||
"CloudPlatform": "クラウドプラットフォーム",
|
||||
|
@ -342,6 +343,7 @@
|
|||
"CommandStorageUpdate": "コマンドストアの更新",
|
||||
"Commands": "コマンド記録",
|
||||
"Comment": "備考",
|
||||
"CommandsTotal": "コマンド記録総数",
|
||||
"CommentHelpText": "注意:コメント情報はLunaページのユーザー認可資産ツリーに表示されます。一般ユーザーは表示できますので、機密情報を記入しないでください。",
|
||||
"CommonUser": "一般ユーザー",
|
||||
"CommunityEdition": "社区版",
|
||||
|
@ -410,6 +412,7 @@
|
|||
"CustomUser": "カスタムユーザー",
|
||||
"CyclePerform": "サイクル実行",
|
||||
"DBInfo": "データベース情報",
|
||||
"Danger": "危険",
|
||||
"DangerCommand": "危険命令",
|
||||
"DangerousCommandNum": "危険命令数",
|
||||
"Dashboard": "ダッシュボード",
|
||||
|
@ -550,6 +553,7 @@
|
|||
"Failed": "失敗",
|
||||
"FailedAsset": "失敗したアセット",
|
||||
"False": "いいえ",
|
||||
"FaviconTip": "ヒント:Webサイトアイコン(推奨画像サイズ:16px*16px)",
|
||||
"Feature": "機能",
|
||||
"Features": "機能有効",
|
||||
"FeiShu": "本を飛ばす",
|
||||
|
@ -558,6 +562,9 @@
|
|||
"FileNameTooLong": "ファイル名が長すぎます",
|
||||
"FileSizeExceedsLimit": "ファイルサイズが制限を超えています",
|
||||
"FileTransfer": "ファイル転送",
|
||||
"FileTransferBootStepHelpTips1": "アセットまたはノードを1つ選択してください",
|
||||
"FileTransferBootStepHelpTips2": "実行アカウントを選択し、コマンドを入力してください",
|
||||
"FileTransferBootStepHelpTips3": "転送し、出力結果を表示します",
|
||||
"FileTransferNum": "ファイル転送数",
|
||||
"Filename": "ファイル名",
|
||||
"FingerPrint": "指紋",
|
||||
|
@ -736,7 +743,7 @@
|
|||
"LockedIP": "ロックされた IP {count} 個",
|
||||
"Log": "ログ",
|
||||
"LogData": "ログデータ",
|
||||
"LogOfLoginSuccessNum": "ログイン成功ログ数",
|
||||
"LoginLogTotal": "ログイン成功ログ数",
|
||||
"Logging": "ログ記録",
|
||||
"Login": "ユーザー登録",
|
||||
"LoginAssetConfirm": "資産ログインの確認",
|
||||
|
@ -749,6 +756,7 @@
|
|||
"LoginDate": "ログイン日",
|
||||
"LoginFailed": "ログインに失敗",
|
||||
"LoginIP": "ログインIP",
|
||||
"LoginImageTip": "ヒント:エンタープライズ版ユーザーログインページに表示されます(推奨画像サイズ:492*472px)",
|
||||
"LoginLog": "ログインログ",
|
||||
"LoginModeHelpMessage": "手動ログインモードを選択した場合、ユーザー名とパスワードは入力しないことができます",
|
||||
"LoginModel": "ログインモード",
|
||||
|
@ -758,9 +766,12 @@
|
|||
"LoginPasswordSetting": "ログインパスワード設定",
|
||||
"LoginRequiredMsg": "アカウントが終了しました。ログインし直してください",
|
||||
"LoginSucceeded": "ログイン成功",
|
||||
"LoginTitleTip": "ヒント: エンタープライズ版ユーザーの SSH ログイン KoKo ログイン ページに表示されます (例: JumpServer オープン ソースマシンの使用へようこそ)",
|
||||
"LoginTo": "ログインしました",
|
||||
"LoginUserRanking": "セッションユーザーランキング",
|
||||
"LoginUserToday": "今日のログインユーザー数",
|
||||
"LogoIndexTip": "ヒント:管理ページの左上に表示されます(推奨画像サイズ:185px*55px)",
|
||||
"LogoLogoutTip": "ヒント:エンタープライズ版ユーザーのWeb端末ページに表示されます(推奨画像サイズ:82px*82px)",
|
||||
"Logout": "ログインを終了する",
|
||||
"LogsAudit": "ログ監査",
|
||||
"Lowercase": "小文字",
|
||||
|
@ -777,7 +788,6 @@
|
|||
"MailSend": "メール送信",
|
||||
"ManualAccount": "手动账号",
|
||||
"ManualAccountTip": "ログイン時にユーザー名とパスワードを手動で入力する",
|
||||
"ManualExecutePlan": "計画を手動で実行する",
|
||||
"ManualInput": "手動入力",
|
||||
"MarkAsRead": "マークはすでに読みました。",
|
||||
"Marketplace": "マーケットプレイス",
|
||||
|
@ -825,6 +835,7 @@
|
|||
"NewPassword": "新しいパスワード",
|
||||
"NewSecret": "新しい秘密",
|
||||
"NewSyncCount": "新しい同期",
|
||||
"Next": "次のステップ",
|
||||
"No": "いいえ",
|
||||
"NoContent": "まだ内容がない",
|
||||
"NoData": "データなし",
|
||||
|
@ -887,6 +898,7 @@
|
|||
"OperateRecord": "操作記録です",
|
||||
"OperationLogNum": "操作ログ数",
|
||||
"Ops": "タスク",
|
||||
"Options": "オプション",
|
||||
"OracleDBNameHelpText": "Oracle データベースの SID またはサービス名を入力してください",
|
||||
"OrgAdmin": "組織管理者",
|
||||
"OrgAuditor": "組織監査人",
|
||||
|
@ -1239,6 +1251,7 @@
|
|||
"StatusGreen": "最近調子がいい",
|
||||
"StatusRed": "最後のタスクの実行に失敗しました",
|
||||
"StatusYellow": "最近の存在の実行に失敗しました",
|
||||
"Step": "步骤",
|
||||
"Stop": "停止",
|
||||
"StopJob": "ジョブを停止",
|
||||
"StopLogOutput": "Task Canceled:現在のタスク(currentTaskId)は手動で停止されました。各タスクの進行状況が異なるため、以下はタスクの最終実行結果です。実行が失敗した場合は、タスクが正常に停止されました。",
|
||||
|
@ -1481,6 +1494,7 @@
|
|||
"VirtualAppDetail": "仮想アプリの詳細",
|
||||
"VirtualApps": "仮想アプリ",
|
||||
"Volcengine": "Volcengine",
|
||||
"Warning": "に警告",
|
||||
"WeCom": "企業wechat",
|
||||
"WebCreate": "アセット作成 - ウェブ",
|
||||
"WebFTP": "ファイル管理",
|
||||
|
|
|
@ -1,35 +1,63 @@
|
|||
{
|
||||
"ACLs": "访问控制",
|
||||
"APIKey": "API Key",
|
||||
"AWS_China": "AWS(中国)",
|
||||
"AWS_Int": "AWS(国际)",
|
||||
"About": "关于",
|
||||
"Accept": "同意",
|
||||
"AccessIP": "IP 白名单",
|
||||
"SuEnabled": "启用开关",
|
||||
"AccessKey": "访问密钥",
|
||||
"AccountTemplateList": "账号模版列表",
|
||||
"HistoryRecord": "历史记录",
|
||||
"UserPasswordChangeLog": "用户密码修改日志",
|
||||
"Account": "账号信息",
|
||||
"ActivateSelected": "激活所选",
|
||||
"VirtualAccountHelpMsg": "虚拟账户是连接资产时具有特定用途的专用账户。",
|
||||
"AccountBackup": "账号备份",
|
||||
"AccountBackupCreate": "创建账号备份",
|
||||
"AccountBackupDetail": "账号备份详情",
|
||||
"AccountChangeSecretDetail": "账号改密详情",
|
||||
"AccountGatherDetail": "账号收集详情",
|
||||
"AccountPushDetail": "账号推送详情",
|
||||
"AccountBackupList": "账号备份列表",
|
||||
"AccountBackupUpdate": "更新账号备份",
|
||||
"AccountChangeSecret": "账号改密",
|
||||
"AccountDeleteConfirmMsg": "删除账号,是否继续?",
|
||||
"AccountExportTips": "导出信息中包含账号密文涉及敏感信息,导出的格式为一个加密的zip文件(若没有设置加密密码,请前往个人信息中设置文件加密密码)。",
|
||||
"AccountGatherList": "收集任务",
|
||||
"AccountGatherTaskList": "账号收集",
|
||||
"GatheredAccountList": "收集的账号",
|
||||
"AccountGatherList": "账号收集",
|
||||
"OrgRoleHelpMsg": "组织角色是为平台内的各个组织量身定制的角色。 这些角色是在邀请用户加入特定组织时分配的,并规定他们在该组织内的权限和访问级别。 与系统角色不同,组织角色是可自定义的,并且仅适用于它们所分配到的组织范围内。",
|
||||
"TableSetting": "表格偏好",
|
||||
"SystemRoleHelpMsg": "系统角色是平台内所有组织普遍适用的角色。 这些角色允许您为整个系统的用户定义特定的权限和访问级别。 对系统角色的更改将影响使用该平台的所有组织。",
|
||||
"StrategyHelpTip": "根据策略优先级识别资产(例如平台)的独特属性; 当资产的属性(如节点)可以配置为多个时,策略的所有动作都会被执行。",
|
||||
"AccountGatherTaskList": "账号收集任务",
|
||||
"AccountGatherTaskCreate": "创建账号收集任务",
|
||||
"AccountGatherTaskUpdate": "更新账号收集任务",
|
||||
"AccountList": "云账号",
|
||||
"ChangeCredentials": "改密",
|
||||
"CrontabHelpText": "如果同时设置了 interval 和 crontab,则优先考虑 crontab",
|
||||
"LoginConfirmUser": "确认方式",
|
||||
"TypeTree": "类型树",
|
||||
"IsAlwaysUpdateHelpTip": "每次执行同步任务时是否同步更新资产信息,包括主机名、ip、平台、域、节点等",
|
||||
"OrgsAndRoles": "组织和角色",
|
||||
"ActiveUsers": "活跃用户",
|
||||
"IpDomain": "IP 域",
|
||||
"Primary": "主要的",
|
||||
"GatherAccounts": "账号收集",
|
||||
"DeleteSelected": "删除所选",
|
||||
"AccountPolicy": "账号策略",
|
||||
"AccountPolicyHelpText": "创建时对于不符合要求的账号,如:密钥类型不合规,唯一键约束,可选择以上策略。",
|
||||
"AccountPushExecutionList": "执行列表",
|
||||
"AccountPushCreate": "创建账号推送",
|
||||
"AccountPushList": "账号推送",
|
||||
"AccountPushUpdate": "更新账号推送",
|
||||
"AccountStorage": "账号存储",
|
||||
"AccountTemplate": "账号模版",
|
||||
"AccountTemplateList": "模版列表",
|
||||
"AccountTemplateUpdateSecretHelpText": "账号列表展示通过模版创建的账号。更新密文时,会更新通过模版所创建账号的密文。",
|
||||
"AccountTemplates": "账号模版",
|
||||
"Accounts": "账号管理",
|
||||
"Accounts": "账号",
|
||||
"Action": "动作",
|
||||
"PermAction": "授权动作",
|
||||
"ActionCount": "动作数量",
|
||||
"PermAction": "授权动作",
|
||||
"ActionSetting": "动作设置",
|
||||
"Actions": "动作",
|
||||
"ActionsTips": "各个权限作用协议不尽相同,点击权限后面的图标查看",
|
||||
|
@ -40,7 +68,9 @@
|
|||
"ActiveUser": "近期登录过",
|
||||
"Activity": "活动",
|
||||
"Add": "新增",
|
||||
"AddAccount": "新增账号",
|
||||
"AddAccountResult": "账号批量添加结果",
|
||||
"AddAccountByTemplate": "从模板添加账号",
|
||||
"AddAllMembersWarningMsg": "你确定要添加全部成员?",
|
||||
"AddAsset": "添加资产",
|
||||
"AddAssetToNode": "添加资产到节点",
|
||||
|
@ -53,7 +83,6 @@
|
|||
"AddUserGroupToThisPermission": "添加用户组",
|
||||
"AddUserToThisPermission": "添加用户",
|
||||
"Address": "地址",
|
||||
"Addressee": "收件人",
|
||||
"AdhocDetail": "命令详情",
|
||||
"AdhocManage": "命令管理",
|
||||
"AdhocUpdate": "更新命令",
|
||||
|
@ -148,6 +177,7 @@
|
|||
"AuthSecurity": "认证安全",
|
||||
"PasswordAndSSHKey": "认证设置",
|
||||
"AuthSettings": "认证配置",
|
||||
"AddInDetailText": "创建或更新成功后,添加详细信息",
|
||||
"AuthUserAttrMapHelpText": "左侧的键为 JumpServer 用户属性,右侧的值为认证平台用户属性",
|
||||
"Authentication": "认证",
|
||||
"AutoPush": "自动推送",
|
||||
|
@ -219,13 +249,17 @@
|
|||
"ClientCertificate": "客户端证书",
|
||||
"ClipboardCopyPaste": "剪贴板复制粘贴",
|
||||
"Clone": "克隆",
|
||||
"CloneFrom": "副本",
|
||||
"Close": "关闭",
|
||||
"CloseConfirm": "确认关闭",
|
||||
"CloseConfirmMessage": "文件发生变化,是否保存?",
|
||||
"CloseStatus": "已完成",
|
||||
"Closed": "已完成",
|
||||
"CloudAccountCreate": "创建云平台账号",
|
||||
"CloudAccountDetail": "云平台账号详情",
|
||||
"CloudAccountList": "云平台账号",
|
||||
"CloudAccountUpdate": "更新云平台账号",
|
||||
"CloudCreate": "创建资产-云平台",
|
||||
"CloudRegionTip": "未获取到地域,请检查账号",
|
||||
"CloudSource": "同步源",
|
||||
"CloudSync": "云同步",
|
||||
"CloudUpdate": "更新资产-云平台",
|
||||
|
@ -250,6 +284,7 @@
|
|||
"CommandStorage": "命令存储",
|
||||
"CommandStorageUpdate": "更新命令存储",
|
||||
"Commands": "命令记录",
|
||||
"CommandsTotal": "命令记录总数",
|
||||
"Comment": "备注",
|
||||
"CommentHelpText": "注意:备注信息会在 Luna 页面的用户授权资产树中进行悬停显示,普通用户可以查看,请不要填写敏感信息。",
|
||||
"CommunityEdition": "社区版",
|
||||
|
@ -292,14 +327,17 @@
|
|||
"CreateNode": "创建节点",
|
||||
"CreatePlaybook": "创建 Playbook",
|
||||
"CreateReplayStorage": "创建对象存储",
|
||||
"CreateSuccessMsg": "导入创建成功,总共:{count}",
|
||||
"CreateSuccessMsg": "创建成功",
|
||||
"CreateUserSetting": "创建用户内容",
|
||||
"Created": "已创建",
|
||||
"CreatedBy": "创建者",
|
||||
"Crontab": "定时任务",
|
||||
"Interval": "间隔",
|
||||
"CriticalLoad": "严重",
|
||||
"CronExpression": "crontab完整表达式",
|
||||
"CrontabOfCreateUpdatePage": "例如:每周日 03:05 执行 <5 3 * * 0> <br/> 使用5位 Linux crontab 表达式 <分 时 日 月 星期> (<a href=\"https://tool.lu/crontab/\" target=\"_blank\">在线工具</a>) <br/> 如果同时设置了定期执行和周期执行,优先使用定期执行",
|
||||
"CurrentConnections": "当前连接数",
|
||||
"CurrentConnectionUsers": "当前会话用户数",
|
||||
"CurrentUserVerify": "验证当前用户",
|
||||
"Custom": "自定义",
|
||||
"CustomCol": "自定义列表字段",
|
||||
|
@ -312,6 +350,7 @@
|
|||
"CustomUser": "自定义用户",
|
||||
"CycleFromWeek": "周期从星期",
|
||||
"CyclePerform": "周期执行",
|
||||
"Danger": "危险",
|
||||
"DangerCommand": "危险命令",
|
||||
"DangerousCommandNum": "危险命令数",
|
||||
"Dashboard": "仪表盘",
|
||||
|
@ -407,10 +446,10 @@
|
|||
"Exclude": "不包含",
|
||||
"ExcludeAsset": "跳过的资产",
|
||||
"ExcludeSymbol": "排除字符",
|
||||
"ExecCloudSyncErrorMsg": "云账号配置不完整,请更新后重试",
|
||||
"Execute": "执行",
|
||||
"ExecuteOnce": "执行一次",
|
||||
"ExecutionDetail": "执行历史详情",
|
||||
"ExecutionHistory": "执行历史",
|
||||
"ExecutionList": "执行列表",
|
||||
"ExistError": "这个元素已经存在",
|
||||
"Existing": "已存在",
|
||||
|
@ -435,6 +474,9 @@
|
|||
"FileNameTooLong": "文件名太长",
|
||||
"FileSizeExceedsLimit": "文件大小超出限制",
|
||||
"FileTransfer": "文件传输",
|
||||
"FileTransferBootStepHelpTips1": "选择一个资产或节点",
|
||||
"FileTransferBootStepHelpTips2": "选择运行帐户并输入命令",
|
||||
"FileTransferBootStepHelpTips3": "传输,显示输出结果",
|
||||
"FileTransferNum": "文件传输数",
|
||||
"FileType": "文件类型",
|
||||
"Filename": "文件名",
|
||||
|
@ -443,13 +485,13 @@
|
|||
"FinishedTicket": "完成工单",
|
||||
"FirstLogin": "首次登录",
|
||||
"FlowSetUp": "流程设置",
|
||||
"Footer": "页脚",
|
||||
"FormatError": "格式错误",
|
||||
"Friday": "周五",
|
||||
"From": "从",
|
||||
"FromTicket": "来自工单",
|
||||
"FullName": "全称",
|
||||
"FullySynchronous": "资产完全同步",
|
||||
"FullySynchronousHelpTips": "当资产条件不满足匹配策略规则时,是否继续同步此类资产",
|
||||
"GCP": "谷歌云",
|
||||
"GPTCreate": "创建资产-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",
|
||||
"IsActive": "激活",
|
||||
"IsAlwaysUpdate": "资产保持最新",
|
||||
"IsAlwaysUpdateHelpTips": "每次执行同步任务时,是否同步更新资产的信息,包括主机名、IP、平台、网域、节点等信息",
|
||||
"IsFinished": "是否完成",
|
||||
"IsLocked": "是否暂停",
|
||||
"IsSuccess": "成功",
|
||||
|
@ -582,7 +623,7 @@
|
|||
"LockedIP": "已锁定 IP {count} 个",
|
||||
"Log": "日志",
|
||||
"LogData": "日志数据",
|
||||
"LogOfLoginSuccessNum": "登录成功日志数",
|
||||
"LoginLogTotal": "登录成功日志数",
|
||||
"Logging": "日志记录",
|
||||
"LoginAssetConfirm": "资产登录复核",
|
||||
"LoginAssetToday": "今日活跃资产数",
|
||||
|
@ -615,7 +656,6 @@
|
|||
"MailSend": "邮件发送",
|
||||
"ManualAccount": "手动账号",
|
||||
"ManualAccountTip": "登录时手动输入 用户名/密码",
|
||||
"ManualExecutePlan": "手动执行",
|
||||
"ManyChoose": "可多选",
|
||||
"MarkAsRead": "标记已读",
|
||||
"Marketplace": "应用市场",
|
||||
|
@ -657,6 +697,7 @@
|
|||
"NewFile": "新建文件",
|
||||
"NewPassword": "新密码",
|
||||
"NewSyncCount": "新同步",
|
||||
"Next": "下一步",
|
||||
"No": "否",
|
||||
"NoContent": "暂无内容",
|
||||
"NoData": "暂无数据",
|
||||
|
@ -687,7 +728,7 @@
|
|||
"OfflineSuccessMsg": "下线成功",
|
||||
"OfflineUpload": "离线上传",
|
||||
"OldPassword": "原密码",
|
||||
"OldPublicKey": "久 SSH 公钥",
|
||||
"OldPublicKey": "旧 SSH 公钥",
|
||||
"NewPublicKey": "新 SSH 公钥",
|
||||
"OneAssignee": "一级受理人",
|
||||
"OneAssigneeType": "一级受理人类型",
|
||||
|
@ -704,6 +745,7 @@
|
|||
"OpenTicket": "创建工单",
|
||||
"OperateLog": "操作日志",
|
||||
"OperationLogNum": "操作日志数",
|
||||
"Options": "选项",
|
||||
"OrgAdmin": "组织管理员",
|
||||
"OrgAuditor": "组织审计员",
|
||||
"OrgName": "授权组织名称",
|
||||
|
@ -714,7 +756,6 @@
|
|||
"OrganizationCreate": "创建组织",
|
||||
"OrganizationDetail": "组织详情",
|
||||
"OrganizationList": "组织管理",
|
||||
"OrganizationLists": "组织列表",
|
||||
"OrganizationUpdate": "更新组织",
|
||||
"Other": "其它设置",
|
||||
"Output": "输出",
|
||||
|
@ -879,7 +920,6 @@
|
|||
"RuleCount": "条件数量",
|
||||
"RuleDetail": "规则详情",
|
||||
"RuleRelation": "条件关系",
|
||||
"RuleRelationHelpTips": "且:当所有条件都满足时,才会执行动作;或:有一个条件满足,就会执行动作",
|
||||
"RuleSetting": "条件设置",
|
||||
"Rules": "规则",
|
||||
"Run": "执行",
|
||||
|
@ -951,6 +991,7 @@
|
|||
"ServerTime": "服务器时间",
|
||||
"Session": "会话",
|
||||
"SessionCommands": "会话命令",
|
||||
"SessionConnectTrend": "会话连接趋势",
|
||||
"SessionData": "会话数据",
|
||||
"SessionDetail": "会话详情",
|
||||
"SessionID": "会话ID",
|
||||
|
@ -1006,17 +1047,32 @@
|
|||
"StatusGreen": "近期状态良好",
|
||||
"StatusRed": "上一次任务执行失败",
|
||||
"StatusYellow": "近期存在在执行失败",
|
||||
"Step": "步骤",
|
||||
"Stop": "停止",
|
||||
"StorageSetting": "存储设置",
|
||||
"Strategy": "策略",
|
||||
"StrategyCreate": "创建策略",
|
||||
"StrategyDetail": "策略详情",
|
||||
"StrategyHelpTips": "根据策略优先级确定资产的唯一属性(如平台),当资产属性(如节点)可配置多个的时候,所有策略的动作都会被执行",
|
||||
"StrategyList": "策略列表",
|
||||
"StrategyUpdate": "更新策略",
|
||||
"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": "提交",
|
||||
"SubscriptionID": "订阅授权ID",
|
||||
"RuleRelationHelpTip": "并且:只有当所有条件都满足时才会执行该动作; or:只要满足一个条件就会执行该动作",
|
||||
"UserSwitchFrom": "切换自",
|
||||
"AssetPermsAmount": "资产授权数量",
|
||||
"SetFeiShu": "设置飞书认证",
|
||||
"DisableSelected": "禁用所选",
|
||||
"LogOfLoginSuccessNum": "成功登录日志数",
|
||||
"Server": "服务",
|
||||
"OrganizationManage": "组织管理",
|
||||
"Storage": "存储",
|
||||
"RemoveSelected": "删除所选",
|
||||
"SyncProtocolToAsset": "同步协议到资产",
|
||||
"SubscriptionID": "订阅授权 ID",
|
||||
"Success": "成功",
|
||||
"SuccessAsset": "成功的资产",
|
||||
"SuccessfulOperation": "操作成功",
|
||||
|
@ -1050,7 +1106,6 @@
|
|||
"SystemRoles": "系统角色",
|
||||
"SystemSetting": "系统设置",
|
||||
"SystemTools": "系统工具",
|
||||
"TableColSettingInfo": "请选择您想显示的列表详细信息。",
|
||||
"Target": "目标",
|
||||
"TargetResources": "目标资源",
|
||||
"Task": "任务",
|
||||
|
@ -1113,7 +1168,7 @@
|
|||
"TwoAssigneeType": "二级受理人类型",
|
||||
"Type": "类型",
|
||||
"Types": "类型",
|
||||
"UCloud": "UCloud优刻得",
|
||||
"UCloud": "优刻得(UCloud)",
|
||||
"UnSyncCount": "未同步",
|
||||
"Unbind": "解绑",
|
||||
"UnbindHelpText": "本地用户为此认证来源用户,无法解绑",
|
||||
|
@ -1163,7 +1218,6 @@
|
|||
"UserGroupList": "用户组",
|
||||
"UserGroupUpdate": "更新用户组",
|
||||
"UserGroups": "用户组",
|
||||
"Profile": "个人信息",
|
||||
"UserList": "用户列表",
|
||||
"UserLoginACLHelpMsg": "登录系统时,可以根据用户的登录 IP 和时间段进行审核,判断是否可以登录系统(全局生效)",
|
||||
"UserLoginACLHelpText": "登录系统时,可以根据用户的登录 IP 和时间段进行审核,判断是否可以登录",
|
||||
|
@ -1201,6 +1255,8 @@
|
|||
"VirtualApp": "虚拟应用",
|
||||
"VirtualAppDetail": "虚拟应用详情",
|
||||
"VirtualApps": "虚拟应用",
|
||||
"Volcengine": "火山引擎",
|
||||
"Warning": "警告",
|
||||
"WeCom": "企业微信",
|
||||
"WeComTest": "测试",
|
||||
"WebCreate": "创建资产-Web",
|
||||
|
@ -1226,7 +1282,7 @@
|
|||
"ZoneList": "区域列表",
|
||||
"ZoneUpdate": "更新区域",
|
||||
"YourProfile": "个人信息",
|
||||
"AccessKeys": "访问密钥",
|
||||
"InformationModification": "信息更改",
|
||||
"Phone": "手机"
|
||||
"Phone": "手机",
|
||||
"TailLog": "追踪日志"
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"": "",
|
||||
"ACLs": "訪問控制",
|
||||
"APIKey": "API Key",
|
||||
"AWS_China": "AWS(中國)",
|
||||
"AWS_Int": "AWS(國際)",
|
||||
|
@ -14,26 +14,23 @@
|
|||
"AccountBackupList": "賬號備份列表",
|
||||
"AccountBackupUpdate": "更新帳號備份",
|
||||
"AccountChangeSecret": "帳號改密",
|
||||
"AccountCreate": "創建帳戶",
|
||||
"AccountDeleteConfirmMsg": "刪除帳號,是否繼續?",
|
||||
"AccountDetail": "帳戶詳情",
|
||||
"AccountEnabled": "啟用切換帳號",
|
||||
"AccountExportTips": "匯出資訊中包含帳號密文涉及敏感資訊,匯出的格式為一個加密的zip文件(若沒有設置加密密碼,請前往個人資訊中設置文件加密密碼)。",
|
||||
"AccountGather": "帳號收集",
|
||||
"AccountGatherList": "收集任務",
|
||||
"AccountGatherTaskCreate": "創建任務",
|
||||
"AccountExportTips": "導出信息中包含賬號密文涉及敏感信息,導出的格式為一個加密的zip文件(若沒有設置加密密碼,請前往個人信息中設置文件加密密碼)。",
|
||||
"AccountGatherList": "帳號收集",
|
||||
"AccountGatherTaskList": "賬號收集任務",
|
||||
"AccountGatherTaskCreate": "創建賬號收集任務",
|
||||
"AccountGatherTaskUpdate": "更新賬號收集任務",
|
||||
"AccountList": "雲帳號",
|
||||
"AccountPolicy": "帳號策略",
|
||||
"AccountPolicyHelpText": "創建時對於不符合要求的賬號,如:密鑰類型不合規,唯一鍵約束,可選擇以上策略。",
|
||||
"AccountPushExecutionList": "賬號推送執行列表",
|
||||
"AccountPushCreate": "創建帳號推送",
|
||||
"AccountPushList": "帳號推送",
|
||||
"AccountPushUpdate": "更新帳號推送",
|
||||
"AccountGatherTaskExecutionList": "任務執行列表",
|
||||
"AccountGatherTaskList": "帳號收集",
|
||||
"AccountGatherTaskUpdate": "更新任務",
|
||||
"AccountHelpText": "雲帳號是用來連接雲服務商的帳號,用於獲取雲服務商的資源資訊",
|
||||
"AccountHistoryHelpMessage": "記錄當前帳號的歷史版本",
|
||||
"AccountList": "雲帳號",
|
||||
"AccountName": "帳號名稱",
|
||||
"AccountPolicy": "帳號策略",
|
||||
"AccountPushCreate": "帳號推送創建",
|
||||
"AccountPushExecutionList": "執行列表",
|
||||
"AccountPushList": "帳號推送",
|
||||
"AccountPushUpdate": "帳號推送更新",
|
||||
"AccountStorage": "帳號儲存",
|
||||
"AccountTemplate": "帳號模板",
|
||||
"AccountTemplateUpdateSecretHelpText": "帳號列表展示通過模板創建的帳號。更新密文時,會更新通過模板所創建帳號的密文。",
|
||||
|
@ -295,6 +292,10 @@
|
|||
"CloseStatus": "已完成",
|
||||
"Closed": "已完成",
|
||||
"Cloud": "雲管中心",
|
||||
"CloudAccountCreate": "建立雲平台帳號",
|
||||
"CloudAccountDetail": "雲平台帳號詳情",
|
||||
"CloudAccountList": "雲平台帳號",
|
||||
"CloudAccountUpdate": "更新雲平台帳號",
|
||||
"CloudCenter": "雲管中心",
|
||||
"CloudCreate": "創建資產-雲平台",
|
||||
"CloudPlatform": "雲平台",
|
||||
|
@ -334,6 +335,7 @@
|
|||
"CommandGroupUpdate": "更新命令組",
|
||||
"CommandStorageUpdate": "更新命令儲存",
|
||||
"Commands": "命令記錄",
|
||||
"CommandsTotal": "命令記錄總數",
|
||||
"Comment": "備註",
|
||||
"CommentHelpText": "注意:備註資訊會在 Luna 頁面的用戶授權資產樹中進行懸停顯示,普通用戶可以查看,請不要填寫敏感資訊。",
|
||||
"CommonUser": "普通用戶",
|
||||
|
@ -358,6 +360,7 @@
|
|||
"ConnectionTokenList": "連接令牌是將身份驗證和連接資產結合起來使用的一種認證資訊,支持用戶一鍵登入到資產,目前支持的組件包括:KoKo、Lion、Magnus、Razor 等",
|
||||
"Connectivity": "可連接",
|
||||
"Console": "控制台",
|
||||
"Consult": "諮詢",
|
||||
"ContainAttachment": "含附件",
|
||||
"Containers": "容器",
|
||||
"Contains": "包含",
|
||||
|
@ -370,7 +373,7 @@
|
|||
"Corporation": "公司",
|
||||
"Correlation": "關聯",
|
||||
"Cpu": "CPU",
|
||||
"Create": "創建密碼",
|
||||
"Create": "創建",
|
||||
"CreateAccessKey": "創建訪問金鑰",
|
||||
"CreateAccountTemplate": "創建帳號模板",
|
||||
"CreateCommandStorage": "創建命令儲存",
|
||||
|
@ -402,6 +405,7 @@
|
|||
"CustomUser": "自訂用戶",
|
||||
"CyclePerform": "週期執行",
|
||||
"DBInfo": "資料庫資訊",
|
||||
"Danger": "危險",
|
||||
"DangerCommand": "危險命令",
|
||||
"DangerousCommandNum": "危險命令數",
|
||||
"Dashboard": "儀錶盤",
|
||||
|
@ -454,6 +458,7 @@
|
|||
"DeleteOrgTitle": "請確保組織內的以下資訊已刪除",
|
||||
"DeleteReleasedAssets": "刪除已釋放資產",
|
||||
"DeleteSuccess": "刪除成功",
|
||||
"DeleteWarningMsg": "你確定要刪除",
|
||||
"DeliveryTime": "發送時間",
|
||||
"Deploy": "部署",
|
||||
"DescribeOfGuide": "歡迎使用JumpServer堡壘機系統,獲取更多資訊請點擊",
|
||||
|
@ -542,6 +547,7 @@
|
|||
"Failed": "失敗",
|
||||
"FailedAsset": "失敗的資產",
|
||||
"False": "否",
|
||||
"FaviconTip": "提示:網站圖示(建議圖片大小為: 16px*16px)",
|
||||
"Feature": "功能",
|
||||
"Features": "功能設定",
|
||||
"FeiShu": "飛書",
|
||||
|
@ -550,6 +556,9 @@
|
|||
"FileNameTooLong": "檔案名太長",
|
||||
"FileSizeExceedsLimit": "檔案大小超出限制",
|
||||
"FileTransfer": "文件傳輸",
|
||||
"FileTransferBootStepHelpTips1": "選擇一個資產或節點",
|
||||
"FileTransferBootStepHelpTips2": "選擇執行帳戶並輸入命令",
|
||||
"FileTransferBootStepHelpTips3": "傳輸,顯示輸出結果",
|
||||
"FileTransferNum": "文件傳輸數",
|
||||
"Filename": "檔案名",
|
||||
"FingerPrint": "指紋",
|
||||
|
@ -720,7 +729,7 @@
|
|||
"LockedIP": "已鎖定 IP {count} 個",
|
||||
"Log": "日誌",
|
||||
"LogData": "日誌數據",
|
||||
"LogOfLoginSuccessNum": "登入成功日誌數",
|
||||
"LoginLogTotal": "登入成功日誌數",
|
||||
"Logging": "日誌記錄",
|
||||
"Login": "用戶登入",
|
||||
"LoginAssetConfirm": "資產登入覆核",
|
||||
|
@ -733,6 +742,7 @@
|
|||
"LoginDate": "登入日期",
|
||||
"LoginFailed": "登入失敗",
|
||||
"LoginIP": "登入IP",
|
||||
"LoginImageTip": "提示:將會顯示在企業版使用者登入頁面(建議圖片大小為: 492*472px)",
|
||||
"LoginLog": "登入日誌",
|
||||
"LoginModeHelpMessage": "如果選擇手動登入模式,使用者名稱和密碼可以不填寫",
|
||||
"LoginModel": "登入模式",
|
||||
|
@ -742,9 +752,12 @@
|
|||
"LoginPasswordSetting": "登入密碼設定",
|
||||
"LoginRequiredMsg": "帳號已退出,請重新登入",
|
||||
"LoginSucceeded": "登入成功",
|
||||
"LoginTitleTip": "提示:將會顯示在企業版使用者 SSH 登入 KoKo 登入頁面(eg: 歡迎使用JumpServer開源堡壘機)",
|
||||
"LoginTo": "登入了",
|
||||
"LoginUserRanking": "會話用戶排名",
|
||||
"LoginUserToday": "今日登入用戶數",
|
||||
"LogoIndexTip": "提示:將會顯示在管理頁面左上方(建議圖片大小為: 185px*55px)",
|
||||
"LogoLogoutTip": "提示:將會顯示在企業版使用者的 Web 終端頁面(建議圖片大小為:82px*82px)",
|
||||
"Logout": "退出登入",
|
||||
"LogsAudit": "日誌審計",
|
||||
"Lowercase": "小寫字母",
|
||||
|
@ -761,7 +774,6 @@
|
|||
"MailSend": "郵件發送",
|
||||
"ManualAccount": "手動帳號",
|
||||
"ManualAccountTip": "登入時手動輸入 使用者名稱/密碼",
|
||||
"ManualExecutePlan": "手動執行計劃",
|
||||
"ManualInput": "手動輸入",
|
||||
"MarkAsRead": "標記已讀",
|
||||
"Marketplace": "應用市場",
|
||||
|
@ -809,6 +821,7 @@
|
|||
"NewPassword": "新密碼",
|
||||
"NewSecret": "新金鑰",
|
||||
"NewSyncCount": "新同步",
|
||||
"Next": "下一步",
|
||||
"No": "否",
|
||||
"NoContent": "暫無內容",
|
||||
"NoData": "暫無數據",
|
||||
|
@ -871,6 +884,7 @@
|
|||
"OperateRecord": "操作記錄",
|
||||
"OperationLogNum": "操作日誌數",
|
||||
"Ops": "任務",
|
||||
"Options": "選項",
|
||||
"OracleDBNameHelpText": "提示:填寫 Oracle 資料庫的SID或服務名稱(Service Name)",
|
||||
"OrgAdmin": "組織管理員",
|
||||
"OrgAuditor": "組織審計員",
|
||||
|
@ -949,7 +963,7 @@
|
|||
"PleaseSelect": "請選擇",
|
||||
"PolicyName": "策略名稱",
|
||||
"Ports": "埠",
|
||||
"Primary": "主要的",
|
||||
"Primary": "主要",
|
||||
"PrimaryProtocol": "主要協議, 資產最基本最常用的協議,只能且必須設置一個",
|
||||
"PriorityHelpMessage": "1-100, 1最低優先度,100最高優先度。授權多個用戶時,高優先度的系統用戶將會作為默認登入用戶",
|
||||
"PrivateCloud": "私有雲",
|
||||
|
@ -1219,6 +1233,7 @@
|
|||
"StatusGreen": "近期狀態良好",
|
||||
"StatusRed": "上一次任務執行失敗",
|
||||
"StatusYellow": "近期存在在執行失敗",
|
||||
"Step": "步驟",
|
||||
"Stop": "停止",
|
||||
"StopJob": "停止作業",
|
||||
"StopLogOutput": "任務已取消:當前任務(currentTaskId)已被手動停止。由於每個任務的執行進度不同,以下是任務的最終執行結果。執行失敗表示任務已成功停止。",
|
||||
|
@ -1295,6 +1310,7 @@
|
|||
"TaskID": "任務 ID",
|
||||
"TaskList": "任務列表",
|
||||
"TaskMonitor": "任務監控",
|
||||
"TechnologyConsult": "技術諮詢",
|
||||
"TempPassword": "臨時密碼有效期為 300 秒,使用後立刻失效",
|
||||
"Template": "模板管理",
|
||||
"TemplateAdd": "模板添加",
|
||||
|
@ -1460,6 +1476,7 @@
|
|||
"VirtualAppDetail": "虛擬應用詳情",
|
||||
"VirtualApps": "虛擬應用",
|
||||
"Volcengine": "火山引擎",
|
||||
"Warning": "警告",
|
||||
"WeCom": "企業微信",
|
||||
"WebCreate": "創建資產-Web",
|
||||
"WebFTP": "文件管理",
|
||||
|
|
|
@ -619,7 +619,10 @@ class Config(dict):
|
|||
# Ansible Receptor
|
||||
'RECEPTOR_ENABLED': False,
|
||||
'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',
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -235,3 +235,6 @@ TICKET_APPLY_ASSET_SCOPE = CONFIG.TICKET_APPLY_ASSET_SCOPE
|
|||
RECEPTOR_ENABLED = CONFIG.RECEPTOR_ENABLED
|
||||
ANSIBLE_RECEPTOR_GATEWAY_PROXY_HOST = CONFIG.ANSIBLE_RECEPTOR_GATEWAY_PROXY_HOST
|
||||
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
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
from .celery_flower import *
|
||||
from .error_views import *
|
||||
from .index import *
|
||||
from .other import *
|
||||
from .celery_flower import *
|
||||
from .swagger import *
|
||||
from .error_views import *
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
<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/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">
|
||||
<script src="{% url 'javascript-catalog' %}"></script>
|
||||
<script src="{% static "js/jumpserver.js" %}?_=9"></script>
|
||||
<style>
|
||||
body {
|
||||
background-color: black;
|
||||
overflow: hidden;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
|
@ -20,65 +20,86 @@
|
|||
font-size: 13px;
|
||||
}
|
||||
|
||||
.container {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.terminal .xterm-viewport {
|
||||
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 {
|
||||
flex-grow: 1;
|
||||
background-color: black;
|
||||
margin: 12px;
|
||||
padding: 0 8px;
|
||||
border-radius: 4px 0 0 0;
|
||||
}
|
||||
|
||||
.info {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
width: 100%;
|
||||
padding: 6px 8px 6px 24px;
|
||||
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 {
|
||||
flex: auto;
|
||||
list-style-type: square;
|
||||
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 {
|
||||
color: black;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
line-height: 22px;
|
||||
text-align: left;
|
||||
color: #1F2329;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<ul class="info">
|
||||
<li class="item">
|
||||
<span>ID:</span>
|
||||
<span class="value task-id"></span>
|
||||
</li>
|
||||
<li class="item">
|
||||
<span>{% trans 'Task name' %}:</span>
|
||||
<span class="value task-type"></span>
|
||||
</li>
|
||||
<li class="item">
|
||||
<span>{% trans 'Date start' %}:</span>
|
||||
<span class="value date-start"></span>
|
||||
</li>
|
||||
</ul>
|
||||
<div id="term" style="height: 100%;width: 100%">
|
||||
<div class="container">
|
||||
<div class="header">
|
||||
<ul class="info">
|
||||
<li class="item">
|
||||
<span class="task-type"></span>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="info">
|
||||
<li class="item">
|
||||
<span class="label">ID:</span>
|
||||
<span class="value task-id"></span>
|
||||
</li>
|
||||
<li class="item">
|
||||
<span class="label">{% trans 'Date start' %}:</span>
|
||||
<span class="value date-start"></span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="term">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var scheme = document.location.protocol === "https:" ? "wss" : "ws";
|
||||
var port = document.location.port ? ":" + document.location.port : "";
|
||||
|
@ -105,17 +126,17 @@
|
|||
window.fit.fit(term);
|
||||
|
||||
ws = new WebSocket(wsURL);
|
||||
ws.onmessage = function(e) {
|
||||
ws.onmessage = function (e) {
|
||||
var data = JSON.parse(e.data);
|
||||
term.write(data.message);
|
||||
};
|
||||
ws.onopen = function() {
|
||||
ws.onopen = function () {
|
||||
var msg = {"task": taskId};
|
||||
ws.send(JSON.stringify(msg))
|
||||
};
|
||||
ws.onerror = function (e) {
|
||||
ws = new WebSocket(failOverWsURL);
|
||||
ws.onmessage = function(e) {
|
||||
ws.onmessage = function (e) {
|
||||
var data = JSON.parse(e.data);
|
||||
term.write(data.message);
|
||||
};
|
||||
|
@ -127,8 +148,9 @@
|
|||
}).on('resize', window, function () {
|
||||
window.fit.fit(term);
|
||||
});
|
||||
|
||||
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({
|
||||
url: url,
|
||||
|
|
|
@ -62,6 +62,7 @@ class PrivateSettingSerializer(PublicSettingSerializer):
|
|||
CHAT_AI_ENABLED = serializers.BooleanField()
|
||||
GPT_MODEL = serializers.CharField()
|
||||
FILE_UPLOAD_SIZE_LIMIT_MB = serializers.IntegerField()
|
||||
LOKI_LOG_ENABLED = serializers.BooleanField()
|
||||
|
||||
|
||||
class ServerInfoSerializer(serializers.Serializer):
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from .connect_methods import *
|
||||
from .endpoint import *
|
||||
from .loki_log import *
|
||||
from .status import *
|
||||
from .storage import *
|
||||
from .terminal import *
|
||||
|
|
|
@ -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']
|
|
@ -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
|
|
@ -11,3 +11,4 @@ from .task import *
|
|||
from .terminal import *
|
||||
from .virtualapp import *
|
||||
from .virtualapp_provider import *
|
||||
from .loki import *
|
||||
|
|
|
@ -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='')
|
|
@ -54,6 +54,7 @@ urlpatterns = [
|
|||
# components
|
||||
path('components/metrics/', api.ComponentsMetricsAPIView.as_view(), name='components-metrics'),
|
||||
path('components/connect-methods/', api.ConnectMethodListApi.as_view(), name='connect-methods'),
|
||||
path('loki/logs/', api.LokiLogAPI.as_view(), name='loki-logs'),
|
||||
]
|
||||
|
||||
urlpatterns += router.urls
|
||||
|
|
|
@ -6,4 +6,5 @@ app_name = 'terminal'
|
|||
|
||||
urlpatterns = [
|
||||
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'),
|
||||
]
|
||||
|
|
|
@ -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()
|
|
@ -1,4 +1,5 @@
|
|||
import datetime
|
||||
from threading import Thread
|
||||
|
||||
from channels.generic.websocket import JsonWebsocketConsumer
|
||||
from django.utils import timezone
|
||||
|
@ -10,6 +11,7 @@ from common.utils.connection import Subscription
|
|||
from terminal.const import TaskNameType
|
||||
from terminal.models import Session, Terminal
|
||||
from terminal.serializers import TaskSerializer, StatSerializer
|
||||
from .mixin import LokiMixin
|
||||
from .signal_handlers import component_event_chan
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
@ -77,3 +79,40 @@ class TerminalTaskWebsocket(JsonWebsocketConsumer):
|
|||
if self.sub is None:
|
||||
return
|
||||
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')
|
||||
|
|
Loading…
Reference in New Issue