Compare commits

...

46 Commits

Author SHA1 Message Date
老广 e617245b26
merge: to master 2025-10-16 17:30:34 +08:00
feng d309d11a8f perf: Command count 2025-10-16 17:11:42 +08:00
feng 4771693a56 fix: dashboard command count 2025-10-16 16:25:01 +08:00
Chenyang Shen cefc820ac1
Merge pull request #16163 from jumpserver/pr@dev@asset_acl_filter
perf: Asset acl filter action
2025-10-16 15:25:38 +08:00
feng d007afdb43 perf: Asset acl filter action 2025-10-16 15:21:32 +08:00
feng e8921a43be perf: Translate 2025-10-16 14:32:59 +08:00
wangruidong a9b44103d4 fix: Handle email sending failure with appropriate error response 2025-10-16 11:28:41 +08:00
jiangweidong 4abf2bded6 perf: oracle cdb mode, common users need to start username with C## 2025-10-16 09:57:54 +08:00
feng 54693089a0 perf: replace command objects 2025-10-15 19:32:14 +08:00
Aaron3S 0b859dd502 feat: update i18n 2025-10-15 19:17:44 +08:00
feng 3fb27f969a perf: datamaskingrule perm 2025-10-15 17:33:27 +08:00
Aaron3S 45627a1d92 feat: update data masking rule filter 2025-10-15 16:51:58 +08:00
feng 245e2dab66 perf: Filter effective 2025-10-15 16:51:32 +08:00
Aaron3S 8f0a41b1a8 fix: fix data masking org problem 2025-10-15 15:51:14 +08:00
feng 1a9e56c520 perf: Translate 2025-10-15 15:24:19 +08:00
feng 67c2f471b4 perf: oracle sqlserver db2 dameng clickhouse redis db_name allow_blank 2025-10-15 11:30:00 +08:00
github-actions[bot] b04f96f5f2 perf: Update Dockerfile with new base image tag 2025-10-14 18:09:25 +08:00
Eric 30f03b7d89 perf: change python base
perf: update deps
2025-10-14 18:09:25 +08:00
wangruidong 28a97d0b5a fix: Incorrect language display in some email content 2025-10-14 18:08:21 +08:00
Eric 3410686690 perf: fix python base ci 2025-10-14 17:47:31 +08:00
Eric 6860e2327f perf: add python base ci build 2025-10-14 17:41:05 +08:00
feng 20253e760c perf: translate 2025-10-14 17:13:42 +08:00
Aaron3S a63cfde8d2 feat: add translate 2025-10-14 16:03:38 +08:00
feng 92e250e03b perf: user_can_authenticate add logger 2025-10-14 15:48:47 +08:00
wangruidong 098f0950cb fix: Incorrect language display in email content 2025-10-14 15:33:04 +08:00
feng 39b0830a6b perf: web script default [] 2025-10-14 13:59:11 +08:00
wangruidong 2e847bc2bc fix: Error in updating message subscription 500 2025-10-14 10:14:50 +08:00
wangruidong f82f31876a fix: Mysql has set a gateway, and the command execution failed. 2025-10-14 10:14:23 +08:00
github-actions[bot] cde182c015 perf: Update Dockerfile with new base image tag 2025-10-10 17:06:14 +08:00
Eric b990cdf561 perf: update deps 2025-10-10 17:06:14 +08:00
feng c9a062823d perf: Translate 2025-10-10 17:02:30 +08:00
feng 643ba4fc15 fix: Asset web script dont create 2025-10-10 11:43:11 +08:00
feng d16a55bbe2 perf: Ticket details cannot view assets from other organizations. 2025-10-09 18:41:25 +08:00
fit2bot ae31554729
perf: AppletHostOnly label match (#16109)
Co-authored-by: wangruidong <940853815@qq.com>
2025-10-09 18:13:37 +08:00
github-actions[bot] 53b47980a2 perf: Update Dockerfile with new base image tag 2025-10-09 16:55:50 +08:00
Eric d31b5ee570 perf: update Dockerfile-base 2025-10-09 16:55:50 +08:00
feng 65aea1ea36 perf: Push account and change secret support gid 2025-10-09 16:39:32 +08:00
feng 5abb5c5d5a perf: Themes deep blue 2025-10-09 15:36:14 +08:00
feng 93e41a5004 perf: Luna themes default 2025-10-09 15:02:37 +08:00
feng 95f51bbe48 perf: Perference add themes 2025-10-09 14:47:11 +08:00
feng 0184d292ec perf: MFA code 2025-10-09 14:29:08 +08:00
fit2bot 23a6d320c7
feat: update i18n (#16101)
* feat: data masking

* feat: update i18n

---------

Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
Co-authored-by: 老广 <ibuler@qq.com>
2025-10-09 10:03:11 +08:00
Aaron3S b16304c48a feat: data masking 2025-10-09 09:59:23 +08:00
Gerry.tan 7cd1e4d3a0 perf: Dynamically configure the validity period of the email verification code 2025-09-28 11:26:32 +08:00
Eric 64a9987c3f perf: update rdp params 2025-09-28 11:20:52 +08:00
feng 18bfe312fa perf: open web ui 2025-09-25 15:49:10 +08:00
84 changed files with 3950 additions and 2772 deletions

View File

@ -0,0 +1,46 @@
name: Build and Push Python Base Image
on:
workflow_dispatch:
inputs:
tag:
description: 'Tag to build'
required: true
default: '3.11-slim-bullseye-v1'
type: string
jobs:
build-and-push:
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
image: tonistiigi/binfmt:qemu-v7.0.0-28
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Extract repository name
id: repo
run: echo "REPO=$(basename ${{ github.repository }})" >> $GITHUB_ENV
- name: Build and push multi-arch image
uses: docker/build-push-action@v6
with:
platforms: linux/amd64,linux/arm64
push: true
file: Dockerfile-python
tags: jumpserver/core-base:python-${{ inputs.tag }}

View File

@ -1,4 +1,4 @@
FROM jumpserver/core-base:20250827_025554 AS stage-build FROM jumpserver/core-base:20251014_095903 AS stage-build
ARG VERSION ARG VERSION
@ -19,7 +19,7 @@ RUN set -ex \
&& python manage.py compilemessages && python manage.py compilemessages
FROM python:3.11-slim-bullseye FROM jumpserver/core-base:python-3.11-slim-bullseye-v1
ENV LANG=en_US.UTF-8 \ ENV LANG=en_US.UTF-8 \
PATH=/opt/py3/bin:$PATH PATH=/opt/py3/bin:$PATH

View File

@ -1,4 +1,4 @@
FROM python:3.11-slim-bullseye FROM jumpserver/core-base:python-3.11-slim-bullseye-v1
ARG TARGETARCH ARG TARGETARCH
COPY --from=ghcr.io/astral-sh/uv:0.6.14 /uv /uvx /usr/local/bin/ COPY --from=ghcr.io/astral-sh/uv:0.6.14 /uv /uvx /usr/local/bin/
# Install APT dependencies # Install APT dependencies
@ -28,7 +28,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=core \
&& echo "no" | dpkg-reconfigure dash && echo "no" | dpkg-reconfigure dash
# Install bin tools # Install bin tools
ARG CHECK_VERSION=v1.0.4 ARG CHECK_VERSION=v1.0.5
RUN set -ex \ RUN set -ex \
&& wget https://github.com/jumpserver-dev/healthcheck/releases/download/${CHECK_VERSION}/check-${CHECK_VERSION}-linux-${TARGETARCH}.tar.gz \ && wget https://github.com/jumpserver-dev/healthcheck/releases/download/${CHECK_VERSION}/check-${CHECK_VERSION}-linux-${TARGETARCH}.tar.gz \
&& tar -xf check-${CHECK_VERSION}-linux-${TARGETARCH}.tar.gz \ && tar -xf check-${CHECK_VERSION}-linux-${TARGETARCH}.tar.gz \

11
Dockerfile-python Normal file
View File

@ -0,0 +1,11 @@
FROM python:3.11-slim-bullseye
ARG TARGETARCH
# Install APT dependencies
ENV DEBIAN_FRONTEND=noninteractive
RUN set -eux; \
apt-get update; \
apt-get -y --no-install-recommends upgrade; \
rm -rf /var/lib/apt/lists/*
# upgrade pip and setuptools
RUN pip install --no-cache-dir --upgrade pip setuptools wheel

View File

@ -11,6 +11,7 @@ from accounts.const import ChangeSecretRecordStatusChoice
from accounts.filters import AccountFilterSet, NodeFilterBackend from accounts.filters import AccountFilterSet, NodeFilterBackend
from accounts.mixins import AccountRecordViewLogMixin from accounts.mixins import AccountRecordViewLogMixin
from accounts.models import Account, ChangeSecretRecord from accounts.models import Account, ChangeSecretRecord
from assets.const.gpt import create_or_update_chatx_resources
from assets.models import Asset, Node from assets.models import Asset, Node
from authentication.permissions import UserConfirmation, ConfirmType from authentication.permissions import UserConfirmation, ConfirmType
from common.api.mixin import ExtraFilterFieldsMixin from common.api.mixin import ExtraFilterFieldsMixin
@ -18,6 +19,7 @@ from common.drf.filters import AttrRulesFilterBackend
from common.permissions import IsValidUser from common.permissions import IsValidUser
from common.utils import lazyproperty, get_logger from common.utils import lazyproperty, get_logger
from orgs.mixins.api import OrgBulkModelViewSet from orgs.mixins.api import OrgBulkModelViewSet
from orgs.utils import tmp_to_root_org
from rbac.permissions import RBACPermission from rbac.permissions import RBACPermission
logger = get_logger(__file__) logger = get_logger(__file__)
@ -43,6 +45,7 @@ class AccountViewSet(OrgBulkModelViewSet):
'clear_secret': 'accounts.change_account', 'clear_secret': 'accounts.change_account',
'move_to_assets': 'accounts.delete_account', 'move_to_assets': 'accounts.delete_account',
'copy_to_assets': 'accounts.add_account', 'copy_to_assets': 'accounts.add_account',
'chat': 'accounts.view_account',
} }
export_as_zip = True export_as_zip = True
@ -152,6 +155,13 @@ class AccountViewSet(OrgBulkModelViewSet):
def copy_to_assets(self, request, *args, **kwargs): def copy_to_assets(self, request, *args, **kwargs):
return self._copy_or_move_to_assets(request, move=False) return self._copy_or_move_to_assets(request, move=False)
@action(methods=['get'], detail=False, url_path='chat')
def chat(self, request, *args, **kwargs):
with tmp_to_root_org():
__, account = create_or_update_chatx_resources()
serializer = self.get_serializer(account)
return Response(serializer.data)
class AccountSecretsViewSet(AccountRecordViewLogMixin, AccountViewSet): class AccountSecretsViewSet(AccountRecordViewLogMixin, AccountViewSet):
""" """

View File

@ -18,6 +18,7 @@
uid: "{{ params.uid | int if params.uid | length > 0 else omit }}" uid: "{{ params.uid | int if params.uid | length > 0 else omit }}"
shell: "{{ params.shell if params.shell | length > 0 else omit }}" shell: "{{ params.shell if params.shell | length > 0 else omit }}"
home: "{{ params.home if params.home | length > 0 else '/home/' + account.username }}" home: "{{ params.home if params.home | length > 0 else '/home/' + account.username }}"
group: "{{ params.group if params.group | length > 0 else omit }}"
groups: "{{ params.groups if params.groups | length > 0 else omit }}" groups: "{{ params.groups if params.groups | length > 0 else omit }}"
append: "{{ true if params.groups | length > 0 else false }}" append: "{{ true if params.groups | length > 0 else false }}"
expires: -1 expires: -1

View File

@ -28,6 +28,12 @@ params:
default: '' default: ''
help_text: "{{ 'Params home help text' | trans }}" help_text: "{{ 'Params home help text' | trans }}"
- name: group
type: str
label: "{{ 'Params group label' | trans }}"
default: ''
help_text: "{{ 'Params group help text' | trans }}"
- name: groups - name: groups
type: str type: str
label: "{{ 'Params groups label' | trans }}" label: "{{ 'Params groups label' | trans }}"
@ -61,6 +67,11 @@ i18n:
ja: 'デフォルトのホームディレクトリ /home/{アカウントユーザ名}' ja: 'デフォルトのホームディレクトリ /home/{アカウントユーザ名}'
en: 'Default home directory /home/{account username}' en: 'Default home directory /home/{account username}'
Params group help text:
zh: '请输入用户组(名字或数字),只能输入一个(需填写已存在的用户组)'
ja: 'ユーザー グループ (名前または番号) を入力してください。入力できるのは 1 つだけです (既存のユーザー グループを入力する必要があります)'
en: 'Please enter a user group (name or number), only one can be entered (must fill in an existing user group)'
Params groups help text: Params groups help text:
zh: '请输入用户组,多个用户组使用逗号分隔(需填写已存在的用户组)' zh: '请输入用户组,多个用户组使用逗号分隔(需填写已存在的用户组)'
ja: 'グループを入力してください。複数のグループはコンマで区切ってください(既存のグループを入力してください)' ja: 'グループを入力してください。複数のグループはコンマで区切ってください(既存のグループを入力してください)'
@ -86,6 +97,11 @@ i18n:
ja: 'グループ' ja: 'グループ'
en: 'Groups' en: 'Groups'
Params group label:
zh: '主组'
ja: '主组'
en: 'Main group'
Params uid label: Params uid label:
zh: '用户ID' zh: '用户ID'
ja: 'ユーザーID' ja: 'ユーザーID'

View File

@ -18,6 +18,7 @@
uid: "{{ params.uid | int if params.uid | length > 0 else omit }}" uid: "{{ params.uid | int if params.uid | length > 0 else omit }}"
shell: "{{ params.shell if params.shell | length > 0 else omit }}" shell: "{{ params.shell if params.shell | length > 0 else omit }}"
home: "{{ params.home if params.home | length > 0 else '/home/' + account.username }}" home: "{{ params.home if params.home | length > 0 else '/home/' + account.username }}"
group: "{{ params.group if params.group | length > 0 else omit }}"
groups: "{{ params.groups if params.groups | length > 0 else omit }}" groups: "{{ params.groups if params.groups | length > 0 else omit }}"
append: "{{ true if params.groups | length > 0 else false }}" append: "{{ true if params.groups | length > 0 else false }}"
expires: -1 expires: -1

View File

@ -30,6 +30,12 @@ params:
default: '' default: ''
help_text: "{{ 'Params home help text' | trans }}" help_text: "{{ 'Params home help text' | trans }}"
- name: group
type: str
label: "{{ 'Params group label' | trans }}"
default: ''
help_text: "{{ 'Params group help text' | trans }}"
- name: groups - name: groups
type: str type: str
label: "{{ 'Params groups label' | trans }}" label: "{{ 'Params groups label' | trans }}"
@ -63,6 +69,11 @@ i18n:
ja: 'デフォルトのホームディレクトリ /home/{アカウントユーザ名}' ja: 'デフォルトのホームディレクトリ /home/{アカウントユーザ名}'
en: 'Default home directory /home/{account username}' en: 'Default home directory /home/{account username}'
Params group help text:
zh: '请输入用户组(名字或数字),只能输入一个(需填写已存在的用户组)'
ja: 'ユーザー グループ (名前または番号) を入力してください。入力できるのは 1 つだけです (既存のユーザー グループを入力する必要があります)'
en: 'Please enter a user group (name or number), only one can be entered (must fill in an existing user group)'
Params groups help text: Params groups help text:
zh: '请输入用户组,多个用户组使用逗号分隔(需填写已存在的用户组)' zh: '请输入用户组,多个用户组使用逗号分隔(需填写已存在的用户组)'
ja: 'グループを入力してください。複数のグループはコンマで区切ってください(既存のグループを入力してください)' ja: 'グループを入力してください。複数のグループはコンマで区切ってください(既存のグループを入力してください)'
@ -88,6 +99,11 @@ i18n:
ja: 'グループ' ja: 'グループ'
en: 'Groups' en: 'Groups'
Params group label:
zh: '主组'
ja: '主组'
en: 'Main group'
Params uid label: Params uid label:
zh: '用户ID' zh: '用户ID'
ja: 'ユーザーID' ja: 'ユーザーID'

View File

@ -18,6 +18,7 @@
uid: "{{ params.uid | int if params.uid | length > 0 else omit }}" uid: "{{ params.uid | int if params.uid | length > 0 else omit }}"
shell: "{{ params.shell if params.shell | length > 0 else omit }}" shell: "{{ params.shell if params.shell | length > 0 else omit }}"
home: "{{ params.home if params.home | length > 0 else '/home/' + account.username }}" home: "{{ params.home if params.home | length > 0 else '/home/' + account.username }}"
group: "{{ params.group if params.group | length > 0 else omit }}"
groups: "{{ params.groups if params.groups | length > 0 else omit }}" groups: "{{ params.groups if params.groups | length > 0 else omit }}"
append: "{{ true if params.groups | length > 0 else false }}" append: "{{ true if params.groups | length > 0 else false }}"
expires: -1 expires: -1

View File

@ -28,6 +28,12 @@ params:
default: '' default: ''
help_text: "{{ 'Params home help text' | trans }}" help_text: "{{ 'Params home help text' | trans }}"
- name: group
type: str
label: "{{ 'Params group label' | trans }}"
default: ''
help_text: "{{ 'Params group help text' | trans }}"
- name: groups - name: groups
type: str type: str
label: "{{ 'Params groups label' | trans }}" label: "{{ 'Params groups label' | trans }}"
@ -61,6 +67,11 @@ i18n:
ja: 'デフォルトのホームディレクトリ /home/{アカウントユーザ名}' ja: 'デフォルトのホームディレクトリ /home/{アカウントユーザ名}'
en: 'Default home directory /home/{account username}' en: 'Default home directory /home/{account username}'
Params group help text:
zh: '请输入用户组(名字或数字),只能输入一个(需填写已存在的用户组)'
ja: 'ユーザー グループ (名前または番号) を入力してください。入力できるのは 1 つだけです (既存のユーザー グループを入力する必要があります)'
en: 'Please enter a user group (name or number), only one can be entered (must fill in an existing user group)'
Params groups help text: Params groups help text:
zh: '请输入用户组,多个用户组使用逗号分隔(需填写已存在的用户组)' zh: '请输入用户组,多个用户组使用逗号分隔(需填写已存在的用户组)'
ja: 'グループを入力してください。複数のグループはコンマで区切ってください(既存のグループを入力してください)' ja: 'グループを入力してください。複数のグループはコンマで区切ってください(既存のグループを入力してください)'
@ -86,6 +97,11 @@ i18n:
ja: 'グループ' ja: 'グループ'
en: 'Groups' en: 'Groups'
Params group label:
zh: '主组'
ja: '主组'
en: 'Main group'
Params uid label: Params uid label:
zh: '用户ID' zh: '用户ID'
ja: 'ユーザーID' ja: 'ユーザーID'

View File

@ -18,6 +18,7 @@
uid: "{{ params.uid | int if params.uid | length > 0 else omit }}" uid: "{{ params.uid | int if params.uid | length > 0 else omit }}"
shell: "{{ params.shell if params.shell | length > 0 else omit }}" shell: "{{ params.shell if params.shell | length > 0 else omit }}"
home: "{{ params.home if params.home | length > 0 else '/home/' + account.username }}" home: "{{ params.home if params.home | length > 0 else '/home/' + account.username }}"
group: "{{ params.group if params.group | length > 0 else omit }}"
groups: "{{ params.groups if params.groups | length > 0 else omit }}" groups: "{{ params.groups if params.groups | length > 0 else omit }}"
append: "{{ true if params.groups | length > 0 else false }}" append: "{{ true if params.groups | length > 0 else false }}"
expires: -1 expires: -1

View File

@ -30,6 +30,12 @@ params:
default: '' default: ''
help_text: "{{ 'Params home help text' | trans }}" help_text: "{{ 'Params home help text' | trans }}"
- name: group
type: str
label: "{{ 'Params group label' | trans }}"
default: ''
help_text: "{{ 'Params group help text' | trans }}"
- name: groups - name: groups
type: str type: str
label: "{{ 'Params groups label' | trans }}" label: "{{ 'Params groups label' | trans }}"
@ -63,6 +69,11 @@ i18n:
ja: 'デフォルトのホームディレクトリ /home/{アカウントユーザ名}' ja: 'デフォルトのホームディレクトリ /home/{アカウントユーザ名}'
en: 'Default home directory /home/{account username}' en: 'Default home directory /home/{account username}'
Params group help text:
zh: '请输入用户组(名字或数字),只能输入一个(需填写已存在的用户组)'
ja: 'ユーザー グループ (名前または番号) を入力してください。入力できるのは 1 つだけです (既存のユーザー グループを入力する必要があります)'
en: 'Please enter a user group (name or number), only one can be entered (must fill in an existing user group)'
Params groups help text: Params groups help text:
zh: '请输入用户组,多个用户组使用逗号分隔(需填写已存在的用户组)' zh: '请输入用户组,多个用户组使用逗号分隔(需填写已存在的用户组)'
ja: 'グループを入力してください。複数のグループはコンマで区切ってください(既存のグループを入力してください)' ja: 'グループを入力してください。複数のグループはコンマで区切ってください(既存のグループを入力してください)'
@ -84,9 +95,14 @@ i18n:
en: 'Home' en: 'Home'
Params groups label: Params groups label:
zh: '用户组' zh: '附加组'
ja: 'グループ' ja: '追加グループ'
en: 'Groups' en: 'Additional Group'
Params group label:
zh: '主组'
ja: '主组'
en: 'Main group'
Params uid label: Params uid label:
zh: '用户ID' zh: '用户ID'

View File

@ -3,3 +3,4 @@ from .connect_method import *
from .login_acl import * from .login_acl import *
from .login_asset_acl import * from .login_asset_acl import *
from .login_asset_check import * from .login_asset_check import *
from .data_masking import *

View File

@ -0,0 +1,20 @@
from orgs.mixins.api import OrgBulkModelViewSet
from .common import ACLUserFilterMixin
from ..models import DataMaskingRule
from .. import serializers
__all__ = ['DataMaskingRuleViewSet']
class DataMaskingRuleFilter(ACLUserFilterMixin):
class Meta:
model = DataMaskingRule
fields = ('name',)
class DataMaskingRuleViewSet(OrgBulkModelViewSet):
model = DataMaskingRule
filterset_class = DataMaskingRuleFilter
search_fields = ('name',)
serializer_class = serializers.DataMaskingRuleSerializer

View File

@ -8,7 +8,7 @@ __all__ = ['LoginAssetACLViewSet']
class LoginAssetACLFilter(ACLUserAssetFilterMixin): class LoginAssetACLFilter(ACLUserAssetFilterMixin):
class Meta: class Meta:
model = models.LoginAssetACL model = models.LoginAssetACL
fields = ['name', ] fields = ['name', 'action']
class LoginAssetACLViewSet(OrgBulkModelViewSet): class LoginAssetACLViewSet(OrgBulkModelViewSet):

View File

@ -0,0 +1,45 @@
# Generated by Django 4.1.13 on 2025-10-07 16:16
import common.db.fields
from django.conf import settings
import django.core.validators
from django.db import migrations, models
import uuid
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('acls', '0002_auto_20210926_1047'),
]
operations = [
migrations.CreateModel(
name='DataMaskingRule',
fields=[
('created_by', models.CharField(blank=True, max_length=128, null=True, verbose_name='Created by')),
('updated_by', models.CharField(blank=True, max_length=128, null=True, verbose_name='Updated by')),
('date_created', models.DateTimeField(auto_now_add=True, null=True, verbose_name='Date created')),
('date_updated', models.DateTimeField(auto_now=True, verbose_name='Date updated')),
('comment', models.TextField(blank=True, default='', verbose_name='Comment')),
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
('org_id', models.CharField(blank=True, db_index=True, default='', max_length=36, verbose_name='Organization')),
('priority', models.IntegerField(default=50, help_text='1-100, the lower the value will be match first', validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(100)], verbose_name='Priority')),
('action', models.CharField(default='reject', max_length=64, verbose_name='Action')),
('is_active', models.BooleanField(default=True, verbose_name='Active')),
('users', common.db.fields.JSONManyToManyField(default=dict, to='users.User', verbose_name='Users')),
('assets', common.db.fields.JSONManyToManyField(default=dict, to='assets.Asset', verbose_name='Assets')),
('accounts', models.JSONField(default=list, verbose_name='Accounts')),
('name', models.CharField(max_length=128, verbose_name='Name')),
('fields_pattern', models.CharField(default='password', max_length=128, verbose_name='Fields pattern')),
('masking_method', models.CharField(choices=[('fixed_char', 'Fixed Character Replacement'), ('hide_middle', 'Hide Middle Characters'), ('keep_prefix', 'Keep Prefix Only'), ('keep_suffix', 'Keep Suffix Only')], default='fixed_char', max_length=32, verbose_name='Masking Method')),
('mask_pattern', models.CharField(blank=True, default='######', max_length=128, null=True, verbose_name='Mask Pattern')),
('reviewers', models.ManyToManyField(blank=True, to=settings.AUTH_USER_MODEL, verbose_name='Reviewers')),
],
options={
'verbose_name': 'Data Masking Rule',
'unique_together': {('org_id', 'name')},
},
),
]

View File

@ -2,3 +2,4 @@ from .command_acl import *
from .connect_method import * from .connect_method import *
from .login_acl import * from .login_acl import *
from .login_asset_acl import * from .login_asset_acl import *
from .data_masking import *

View File

@ -0,0 +1,42 @@
from django.db import models
from acls.models import UserAssetAccountBaseACL
from common.utils import get_logger
from django.utils.translation import gettext_lazy as _
logger = get_logger(__file__)
__all__ = ['MaskingMethod', 'DataMaskingRule']
class MaskingMethod(models.TextChoices):
fixed_char = "fixed_char", _("Fixed Character Replacement") # 固定字符替换
hide_middle = "hide_middle", _("Hide Middle Characters") # 隐藏中间几位
keep_prefix = "keep_prefix", _("Keep Prefix Only") # 只保留前缀
keep_suffix = "keep_suffix", _("Keep Suffix Only") # 只保留后缀
class DataMaskingRule(UserAssetAccountBaseACL):
name = models.CharField(max_length=128, verbose_name=_("Name"))
fields_pattern = models.CharField(max_length=128, default='password', verbose_name=_("Fields pattern"))
masking_method = models.CharField(
max_length=32,
choices=MaskingMethod.choices,
default=MaskingMethod.fixed_char,
verbose_name=_("Masking Method"),
)
mask_pattern = models.CharField(
max_length=128,
verbose_name=_("Mask Pattern"),
default="######",
blank=True,
null=True,
)
def __str__(self):
return self.name
class Meta:
unique_together = [('org_id', 'name')]
verbose_name = _("Data Masking Rule")

View File

@ -101,7 +101,8 @@ class AssetLoginReminderMsg(UserMessage):
'ip': self.ip, 'ip': self.ip,
'time': self.time, 'time': self.time,
'login_from': self.login_from, 'login_from': self.login_from,
'recipient': self.user, 'recipient_name': self.user.name,
'recipient_username': self.user.username,
'username': self.login_user.username, 'username': self.login_user.username,
'name': self.login_user.name, 'name': self.login_user.name,
'asset': str(self.asset), 'asset': str(self.asset),

View File

@ -3,3 +3,4 @@ from .connect_method import *
from .login_acl import * from .login_acl import *
from .login_asset_acl import * from .login_asset_acl import *
from .login_asset_check import * from .login_asset_check import *
from .data_masking import *

View File

@ -0,0 +1,19 @@
from django.utils.translation import gettext_lazy as _
from acls.models import MaskingMethod, DataMaskingRule
from common.serializers.fields import LabeledChoiceField
from common.serializers.mixin import CommonBulkModelSerializer
from orgs.mixins.serializers import BulkOrgResourceModelSerializer
from .base import BaseUserAssetAccountACLSerializer as BaseSerializer
__all__ = ['DataMaskingRuleSerializer']
class DataMaskingRuleSerializer(BaseSerializer, BulkOrgResourceModelSerializer):
masking_method = LabeledChoiceField(
choices=MaskingMethod.choices, default=MaskingMethod.fixed_char, label=_('Masking Method')
)
class Meta(BaseSerializer.Meta):
model = DataMaskingRule
fields = BaseSerializer.Meta.fields + ['fields_pattern', 'masking_method', 'mask_pattern']

View File

@ -11,6 +11,7 @@ router.register(r'login-asset-acls', api.LoginAssetACLViewSet, 'login-asset-acl'
router.register(r'command-filter-acls', api.CommandFilterACLViewSet, 'command-filter-acl') router.register(r'command-filter-acls', api.CommandFilterACLViewSet, 'command-filter-acl')
router.register(r'command-groups', api.CommandGroupViewSet, 'command-group') router.register(r'command-groups', api.CommandGroupViewSet, 'command-group')
router.register(r'connect-method-acls', api.ConnectMethodACLViewSet, 'connect-method-acl') router.register(r'connect-method-acls', api.ConnectMethodACLViewSet, 'connect-method-acl')
router.register(r'data-masking-rules', api.DataMaskingRuleViewSet, 'data-masking-rule')
urlpatterns = [ urlpatterns = [
path('login-asset/check/', api.LoginAssetCheckAPI.as_view(), name='login-asset-check'), path('login-asset/check/', api.LoginAssetCheckAPI.as_view(), name='login-asset-check'),

View File

@ -1,5 +1,6 @@
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from orgs.models import Organization
from .base import BaseType from .base import BaseType
@ -52,3 +53,41 @@ class GPTTypes(BaseType):
return [ return [
cls.CHATGPT, cls.CHATGPT,
] ]
CHATX_NAME = 'ChatX'
def create_or_update_chatx_resources(chatx_name=CHATX_NAME, org_id=Organization.SYSTEM_ID):
from django.apps import apps
platform_model = apps.get_model('assets', 'Platform')
asset_model = apps.get_model('assets', 'Asset')
account_model = apps.get_model('accounts', 'Account')
platform, __ = platform_model.objects.get_or_create(
name=chatx_name,
defaults={
'internal': True,
'type': chatx_name,
'category': 'ai',
}
)
asset, __ = asset_model.objects.get_or_create(
address=chatx_name,
defaults={
'name': chatx_name,
'platform': platform,
'org_id': org_id
}
)
account, __ = account_model.objects.get_or_create(
username=chatx_name,
defaults={
'name': chatx_name,
'asset': asset,
'org_id': org_id
}
)
return asset, account

View File

@ -59,7 +59,10 @@ class DatabaseSerializer(AssetSerializer):
if not platform: if not platform:
return return
if platform.type in ['mysql', 'mariadb']: if platform.type in [
'mysql', 'mariadb', 'oracle', 'sqlserver',
'db2', 'dameng', 'clickhouse', 'redis'
]:
db_field.required = False db_field.required = False
db_field.allow_blank = True db_field.allow_blank = True
db_field.allow_null = True db_field.allow_null = True

View File

@ -26,4 +26,13 @@ class WebSerializer(AssetSerializer):
'submit_selector': { 'submit_selector': {
'default': 'id=login_button', 'default': 'id=login_button',
}, },
'script': {
'default': [],
}
} }
def to_internal_value(self, data):
data = data.copy()
if data.get('script') in ("", None):
data.pop('script', None)
return super().to_internal_value(data)

View File

@ -69,6 +69,8 @@ class RDPFileClientProtocolURLMixin:
'autoreconnection enabled:i': '1', 'autoreconnection enabled:i': '1',
'bookmarktype:i': '3', 'bookmarktype:i': '3',
'use redirection server name:i': '0', 'use redirection server name:i': '0',
'bitmapcachepersistenable:i': '0',
'bitmapcachesize:i': '1500',
} }
# copy from # copy from
@ -76,7 +78,6 @@ class RDPFileClientProtocolURLMixin:
rdp_low_speed_broadband_option = { rdp_low_speed_broadband_option = {
"connection type:i": 2, "connection type:i": 2,
"disable wallpaper:i": 1, "disable wallpaper:i": 1,
"bitmapcachepersistenable:i": 1,
"disable full window drag:i": 1, "disable full window drag:i": 1,
"disable menu anims:i": 1, "disable menu anims:i": 1,
"allow font smoothing:i": 0, "allow font smoothing:i": 0,
@ -87,7 +88,6 @@ class RDPFileClientProtocolURLMixin:
rdp_high_speed_broadband_option = { rdp_high_speed_broadband_option = {
"connection type:i": 4, "connection type:i": 4,
"disable wallpaper:i": 0, "disable wallpaper:i": 0,
"bitmapcachepersistenable:i": 1,
"disable full window drag:i": 1, "disable full window drag:i": 1,
"disable menu anims:i": 0, "disable menu anims:i": 0,
"allow font smoothing:i": 0, "allow font smoothing:i": 0,
@ -375,7 +375,7 @@ class ConnectionTokenViewSet(AuthFaceMixin, ExtraActionApiMixin, RootOrgViewMixi
for name in default_name_opts.keys(): for name in default_name_opts.keys():
value = preferences.get(name, default_name_opts[name]) value = preferences.get(name, default_name_opts[name])
connect_options[name] = value connect_options[name] = value
connect_options['lang'] = getattr(user, 'lang', settings.LANGUAGE_CODE) connect_options['lang'] = getattr(user, 'lang') or settings.LANGUAGE_CODE
data['connect_options'] = connect_options data['connect_options'] = connect_options
@staticmethod @staticmethod

View File

@ -67,8 +67,9 @@ class UserResetPasswordSendCodeApi(CreateAPIView):
code = random_string(settings.SMS_CODE_LENGTH, lower=False, upper=False) code = random_string(settings.SMS_CODE_LENGTH, lower=False, upper=False)
subject = '%s: %s' % (get_login_title(), _('Forgot password')) subject = '%s: %s' % (get_login_title(), _('Forgot password'))
tip = _('The validity period of the verification code is {} minute').format(settings.VERIFY_CODE_TTL // 60)
context = { context = {
'user': user, 'title': subject, 'code': code, 'user': user, 'title': subject, 'code': code, 'tip': tip,
} }
message = render_to_string('authentication/_msg_reset_password_code.html', context) message = render_to_string('authentication/_msg_reset_password_code.html', context)
content = {'subject': subject, 'message': message} content = {'subject': subject, 'message': message}

View File

@ -25,7 +25,10 @@ class JMSBaseAuthBackend:
""" """
# 三方用户认证完成后,在后续的 get_user 获取逻辑中,也应该需要检查用户是否有效 # 三方用户认证完成后,在后续的 get_user 获取逻辑中,也应该需要检查用户是否有效
is_valid = getattr(user, 'is_valid', None) is_valid = getattr(user, 'is_valid', None)
return is_valid or is_valid is None if not is_valid:
logger.info("User %s is not valid", getattr(user, "username", "<unknown>"))
return False
return True
# allow user to authenticate # allow user to authenticate
def username_allow_authenticate(self, username): def username_allow_authenticate(self, username):

View File

@ -38,7 +38,7 @@ class BaseMFA(abc.ABC):
if not ok: if not ok:
return False, msg return False, msg
cache.set(cache_key, code, 60) cache.set(cache_key, code, settings.VERIFY_CODE_TTL)
return True, msg return True, msg
def is_authenticated(self): def is_authenticated(self):

View File

@ -39,13 +39,14 @@ class MFAEmail(BaseMFA):
def send_challenge(self): def send_challenge(self):
code = random_string(settings.SMS_CODE_LENGTH, lower=False, upper=False) code = random_string(settings.SMS_CODE_LENGTH, lower=False, upper=False)
subject = '%s: %s' % (get_login_title(), _('MFA code')) subject = '%s: %s' % (get_login_title(), _('MFA code'))
tip = _('The validity period of the verification code is {} minute').format(settings.VERIFY_CODE_TTL // 60)
context = { context = {
'user': self.user, 'title': subject, 'code': code, 'user': self.user, 'title': subject, 'code': code, 'tip': tip,
} }
message = render_to_string('authentication/_msg_mfa_email_code.html', context) message = render_to_string('authentication/_msg_mfa_email_code.html', context)
content = {'subject': subject, 'message': message} content = {'subject': subject, 'message': message}
sender_util = SendAndVerifyCodeUtil( sender_util = SendAndVerifyCodeUtil(
self.user.email, code=code, backend=self.name, timeout=60, **content self.user.email, code=code, backend=self.name, **content
) )
sender_util.gen_and_send_async() sender_util.gen_and_send_async()

View File

@ -338,6 +338,18 @@ class ConnectionToken(JMSOrgBaseModel):
acls = CommandFilterACL.filter_queryset(**kwargs).valid() acls = CommandFilterACL.filter_queryset(**kwargs).valid()
return acls return acls
@lazyproperty
def data_masking_rules(self):
from acls.models import DataMaskingRule
kwargs = {
'user': self.user,
'asset': self.asset,
'account': self.account_object,
}
with tmp_to_org(self.asset.org_id):
rules = DataMaskingRule.filter_queryset(**kwargs).valid()
return rules
class SuperConnectionToken(ConnectionToken): class SuperConnectionToken(ConnectionToken):
_type = ConnectionTokenType.SUPER _type = ConnectionTokenType.SUPER

View File

@ -3,7 +3,7 @@ from rest_framework import serializers
from accounts.const import SecretType from accounts.const import SecretType
from accounts.models import Account from accounts.models import Account
from acls.models import CommandGroup, CommandFilterACL from acls.models import CommandGroup, CommandFilterACL, DataMaskingRule
from assets.models import Asset, Platform, Gateway, Zone from assets.models import Asset, Platform, Gateway, Zone
from assets.serializers.asset import AssetProtocolsSerializer from assets.serializers.asset import AssetProtocolsSerializer
from assets.serializers.platform import PlatformSerializer from assets.serializers.platform import PlatformSerializer
@ -83,6 +83,14 @@ class _ConnectionTokenGatewaySerializer(serializers.ModelSerializer):
] ]
class _ConnectionTokenDataMaskingRuleSerializer(serializers.ModelSerializer):
class Meta:
model = DataMaskingRule
fields = ['id', 'name', 'fields_pattern',
'masking_method', 'mask_pattern',
'is_active', 'priority']
class _ConnectionTokenCommandFilterACLSerializer(serializers.ModelSerializer): class _ConnectionTokenCommandFilterACLSerializer(serializers.ModelSerializer):
command_groups = ObjectRelatedField( command_groups = ObjectRelatedField(
many=True, required=False, queryset=CommandGroup.objects, many=True, required=False, queryset=CommandGroup.objects,
@ -105,7 +113,7 @@ class _ConnectionTokenPlatformSerializer(PlatformSerializer):
class Meta(PlatformSerializer.Meta): class Meta(PlatformSerializer.Meta):
model = Platform model = Platform
fields = [field for field in PlatformSerializer.Meta.fields fields = [field for field in PlatformSerializer.Meta.fields
if field not in PlatformSerializer.Meta.fields_m2m] if field not in PlatformSerializer.Meta.fields_m2m]
def get_field_names(self, declared_fields, info): def get_field_names(self, declared_fields, info):
names = super().get_field_names(declared_fields, info) names = super().get_field_names(declared_fields, info)
@ -139,6 +147,7 @@ class ConnectionTokenSecretSerializer(OrgResourceModelSerializerMixin):
platform = _ConnectionTokenPlatformSerializer(read_only=True) platform = _ConnectionTokenPlatformSerializer(read_only=True)
zone = ObjectRelatedField(queryset=Zone.objects, required=False, label=_('Domain')) zone = ObjectRelatedField(queryset=Zone.objects, required=False, label=_('Domain'))
command_filter_acls = _ConnectionTokenCommandFilterACLSerializer(read_only=True, many=True) command_filter_acls = _ConnectionTokenCommandFilterACLSerializer(read_only=True, many=True)
data_masking_rules = _ConnectionTokenDataMaskingRuleSerializer(read_only=True, many=True)
expire_now = serializers.BooleanField(label=_('Expired now'), write_only=True, default=True) expire_now = serializers.BooleanField(label=_('Expired now'), write_only=True, default=True)
connect_method = _ConnectTokenConnectMethodSerializer(read_only=True, source='connect_method_object') connect_method = _ConnectTokenConnectMethodSerializer(read_only=True, source='connect_method_object')
connect_options = serializers.JSONField(read_only=True) connect_options = serializers.JSONField(read_only=True)
@ -149,7 +158,7 @@ class ConnectionTokenSecretSerializer(OrgResourceModelSerializerMixin):
model = ConnectionToken model = ConnectionToken
fields = [ fields = [
'id', 'value', 'user', 'asset', 'account', 'id', 'value', 'user', 'asset', 'account',
'platform', 'command_filter_acls', 'protocol', 'platform', 'command_filter_acls', 'data_masking_rules', 'protocol',
'zone', 'gateway', 'actions', 'expire_at', 'zone', 'gateway', 'actions', 'expire_at',
'from_ticket', 'expire_now', 'connect_method', 'from_ticket', 'expire_now', 'connect_method',
'connect_options', 'face_monitor_token' 'connect_options', 'face_monitor_token'

View File

@ -12,7 +12,7 @@
<td style="height: 50px;">{% trans 'MFA code' %}: <span style="font-weight: bold;">{{ code }}</span></td> <td style="height: 50px;">{% trans 'MFA code' %}: <span style="font-weight: bold;">{{ code }}</span></td>
</tr> </tr>
<tr style="border: 1px solid #eee"> <tr style="border: 1px solid #eee">
<td style="height: 30px;">{% trans 'The validity period of the verification code is one minute' %}</td> <td style="height: 30px;">{{ tip }}</td>
</tr> </tr>
</table> </table>
</div> </div>

View File

@ -15,7 +15,7 @@
<td style="height: 30px;"> {% trans 'Copy the verification code to the Reset Password page to reset the password.' %} </td> <td style="height: 30px;"> {% trans 'Copy the verification code to the Reset Password page to reset the password.' %} </td>
</tr> </tr>
<tr style="border: 1px solid #eee"> <tr style="border: 1px solid #eee">
<td style="height: 30px;">{% trans 'The validity period of the verification code is one minute' %}</td> <td style="height: 30px;">{{ tip }}</td>
</tr> </tr>
</table> </table>
</div> </div>

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-09-17 15:02+0800\n" "POT-Creation-Date: 2025-10-16 14:10+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: accounts/api/account/account.py:138 #: accounts/api/account/account.py:141
#: accounts/serializers/account/account.py:181 #: accounts/serializers/account/account.py:181
#: accounts/serializers/account/account.py:362 #: accounts/serializers/account/account.py:362
msgid "Account already exists" msgid "Account already exists"
@ -207,7 +207,7 @@ msgstr ""
msgid "Skip" msgid "Skip"
msgstr "" msgstr ""
#: accounts/const/account.py:33 audits/const.py:24 rbac/tree.py:291 #: accounts/const/account.py:33 audits/const.py:24 rbac/tree.py:292
#: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6 #: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6
msgid "Update" msgid "Update"
msgstr "" msgstr ""
@ -573,17 +573,18 @@ msgstr ""
#: accounts/serializers/account/service.py:29 #: accounts/serializers/account/service.py:29
#: accounts/serializers/account/virtual.py:20 acls/models/base.py:35 #: accounts/serializers/account/virtual.py:20 acls/models/base.py:35
#: acls/models/base.py:96 acls/models/command_acl.py:21 #: acls/models/base.py:96 acls/models/command_acl.py:21
#: acls/notifications.py:69 acls/serializers/base.py:35 #: acls/models/data_masking.py:20 acls/notifications.py:69
#: assets/models/asset/common.py:100 assets/models/asset/common.py:166 #: acls/serializers/base.py:35 assets/models/asset/common.py:100
#: assets/models/cmd_filter.py:21 assets/models/label.py:18 #: assets/models/asset/common.py:166 assets/models/cmd_filter.py:21
#: assets/models/platform.py:15 assets/models/platform.py:94 #: assets/models/label.py:18 assets/models/platform.py:15
#: assets/models/zone.py:19 assets/serializers/asset/common.py:174 #: assets/models/platform.py:94 assets/models/zone.py:19
#: assets/serializers/platform.py:158 assets/serializers/platform.py:283 #: assets/serializers/asset/common.py:174 assets/serializers/platform.py:158
#: assets/serializers/platform.py:283
#: authentication/backends/passkey/models.py:10 #: authentication/backends/passkey/models.py:10
#: authentication/models/ssh_key.py:12 authentication/notifications.py:17 #: authentication/models/ssh_key.py:12 authentication/notifications.py:17
#: authentication/notifications.py:56 #: authentication/notifications.py:56
#: authentication/serializers/connect_token_secret.py:117 #: authentication/serializers/connect_token_secret.py:125
#: authentication/serializers/connect_token_secret.py:174 labels/models.py:11 #: authentication/serializers/connect_token_secret.py:183 labels/models.py:11
#: ops/mixin.py:32 ops/models/adhoc.py:19 ops/models/celery.py:15 #: ops/mixin.py:32 ops/models/adhoc.py:19 ops/models/celery.py:15
#: ops/models/celery.py:81 ops/models/job.py:147 ops/models/playbook.py:28 #: ops/models/celery.py:81 ops/models/job.py:147 ops/models/playbook.py:28
#: ops/models/variable.py:9 ops/serializers/job.py:20 #: ops/models/variable.py:9 ops/serializers/job.py:20
@ -771,7 +772,7 @@ msgstr ""
#: assets/models/automations/base.py:137 #: assets/models/automations/base.py:137
#: assets/serializers/automations/base.py:47 audits/models.py:224 #: assets/serializers/automations/base.py:47 audits/models.py:224
#: audits/serializers.py:77 ops/models/base.py:49 ops/models/job.py:233 #: audits/serializers.py:77 ops/models/base.py:49 ops/models/job.py:233
#: terminal/models/applet/applet.py:374 terminal/models/applet/host.py:140 #: terminal/models/applet/applet.py:382 terminal/models/applet/host.py:140
#: terminal/models/component/status.py:30 #: terminal/models/component/status.py:30
#: terminal/models/virtualapp/virtualapp.py:99 #: terminal/models/virtualapp/virtualapp.py:99
#: terminal/serializers/applet.py:19 terminal/serializers/applet_host.py:163 #: terminal/serializers/applet.py:19 terminal/serializers/applet_host.py:163
@ -1028,7 +1029,7 @@ msgstr ""
#: accounts/models/base.py:69 assets/models/automations/base.py:28 #: accounts/models/base.py:69 assets/models/automations/base.py:28
#: assets/models/cmd_filter.py:39 assets/models/label.py:22 #: assets/models/cmd_filter.py:39 assets/models/label.py:22
#: authentication/serializers/connect_token_secret.py:121 #: authentication/serializers/connect_token_secret.py:129
#: terminal/models/applet/applet.py:41 #: terminal/models/applet/applet.py:41
#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:257 #: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:257
msgid "Is active" msgid "Is active"
@ -1196,7 +1197,7 @@ msgstr ""
#: assets/serializers/platform.py:160 assets/serializers/platform.py:172 #: assets/serializers/platform.py:160 assets/serializers/platform.py:172
#: audits/serializers.py:76 audits/serializers.py:196 #: audits/serializers.py:76 audits/serializers.py:196
#: authentication/models/connection_token.py:67 #: authentication/models/connection_token.py:67
#: authentication/serializers/connect_token_secret.py:130 ops/models/job.py:155 #: authentication/serializers/connect_token_secret.py:138 ops/models/job.py:155
#: perms/serializers/user_permission.py:28 terminal/models/applet/applet.py:40 #: perms/serializers/user_permission.py:28 terminal/models/applet/applet.py:40
#: terminal/models/component/storage.py:58 #: terminal/models/component/storage.py:58
#: terminal/models/component/storage.py:152 terminal/serializers/applet.py:30 #: terminal/models/component/storage.py:152 terminal/serializers/applet.py:30
@ -1268,7 +1269,7 @@ msgid "Spec info"
msgstr "" msgstr ""
#: accounts/serializers/account/account.py:493 #: accounts/serializers/account/account.py:493
#: authentication/serializers/connect_token_secret.py:164 #: authentication/serializers/connect_token_secret.py:173
#: authentication/templates/authentication/_access_key_modal.html:30 #: authentication/templates/authentication/_access_key_modal.html:30
#: perms/models/perm_node.py:21 users/serializers/group.py:33 #: perms/models/perm_node.py:21 users/serializers/group.py:33
msgid "ID" msgid "ID"
@ -1324,7 +1325,7 @@ msgstr ""
#: assets/models/cmd_filter.py:88 common/db/models.py:36 ops/models/adhoc.py:25 #: assets/models/cmd_filter.py:88 common/db/models.py:36 ops/models/adhoc.py:25
#: ops/models/job.py:165 ops/models/playbook.py:31 rbac/models/role.py:37 #: ops/models/job.py:165 ops/models/playbook.py:31 rbac/models/role.py:37
#: settings/models.py:44 terminal/models/applet/applet.py:46 #: settings/models.py:44 terminal/models/applet/applet.py:46
#: terminal/models/applet/applet.py:375 terminal/models/applet/host.py:143 #: terminal/models/applet/applet.py:383 terminal/models/applet/host.py:143
#: terminal/models/component/endpoint.py:29 #: terminal/models/component/endpoint.py:29
#: terminal/models/component/endpoint.py:117 #: terminal/models/component/endpoint.py:117
#: terminal/models/session/session.py:44 #: terminal/models/session/session.py:44
@ -1819,7 +1820,7 @@ msgstr ""
#: acls/models/base.py:41 acls/serializers/base.py:57 #: acls/models/base.py:41 acls/serializers/base.py:57
#: assets/models/cmd_filter.py:81 audits/models.py:99 audits/serializers.py:107 #: assets/models/cmd_filter.py:81 audits/models.py:99 audits/serializers.py:107
#: authentication/serializers/connect_token_secret.py:123 #: authentication/serializers/connect_token_secret.py:131
#: authentication/templates/authentication/_access_key_modal.html:34 #: authentication/templates/authentication/_access_key_modal.html:34
#: perms/serializers/permission.py:63 perms/serializers/permission.py:85 #: perms/serializers/permission.py:63 perms/serializers/permission.py:85
#: terminal/backends/command/models.py:24 #: terminal/backends/command/models.py:24
@ -1828,7 +1829,7 @@ msgid "Action"
msgstr "" msgstr ""
#: acls/models/base.py:42 assets/models/cmd_filter.py:86 #: acls/models/base.py:42 assets/models/cmd_filter.py:86
#: authentication/serializers/connect_token_secret.py:93 #: authentication/serializers/connect_token_secret.py:101
msgid "Reviewers" msgid "Reviewers"
msgstr "" msgstr ""
@ -1869,7 +1870,7 @@ msgstr ""
#: acls/models/command_acl.py:33 acls/models/command_acl.py:97 #: acls/models/command_acl.py:33 acls/models/command_acl.py:97
#: acls/serializers/command_acl.py:29 #: acls/serializers/command_acl.py:29
#: authentication/serializers/connect_token_secret.py:90 #: authentication/serializers/connect_token_secret.py:98
#: terminal/templates/terminal/_msg_command_warning.html:23 #: terminal/templates/terminal/_msg_command_warning.html:23
msgid "Command group" msgid "Command group"
msgstr "" msgstr ""
@ -1895,6 +1896,38 @@ msgstr ""
msgid "Connect method acl" msgid "Connect method acl"
msgstr "" msgstr ""
#: acls/models/data_masking.py:13
msgid "Fixed Character Replacement"
msgstr ""
#: acls/models/data_masking.py:14
msgid "Hide Middle Characters"
msgstr ""
#: acls/models/data_masking.py:15
msgid "Keep Prefix Only"
msgstr ""
#: acls/models/data_masking.py:16
msgid "Keep Suffix Only"
msgstr ""
#: acls/models/data_masking.py:21
msgid "Fields pattern"
msgstr ""
#: acls/models/data_masking.py:27 acls/serializers/data_masking.py:14
msgid "Masking Method"
msgstr ""
#: acls/models/data_masking.py:31
msgid "Mask Pattern"
msgstr ""
#: acls/models/data_masking.py:42
msgid "Data Masking Rule"
msgstr ""
#: acls/models/login_acl.py:11 acls/models/login_asset_acl.py:9 #: acls/models/login_acl.py:11 acls/models/login_asset_acl.py:9
#: acls/serializers/login_acl.py:16 acls/serializers/login_asset_acl.py:13 #: acls/serializers/login_acl.py:16 acls/serializers/login_asset_acl.py:13
msgid "Rule" msgid "Rule"
@ -1929,6 +1962,14 @@ msgstr ""
msgid "Login city" msgid "Login city"
msgstr "" msgstr ""
#: acls/notifications.py:20 acls/notifications.py:71
msgid "Recipient name"
msgstr ""
#: acls/notifications.py:21 acls/notifications.py:72
msgid "Recipient username"
msgstr ""
#: acls/notifications.py:22 acls/templates/acls/user_login_reminder.html:12 #: acls/notifications.py:22 acls/templates/acls/user_login_reminder.html:12
#: audits/models.py:213 audits/models.py:291 audits/serializers.py:91 #: audits/models.py:213 audits/models.py:291 audits/serializers.py:91
msgid "User agent" msgid "User agent"
@ -2217,7 +2258,7 @@ msgstr ""
#: assets/const/base.py:33 settings/serializers/basic.py:8 #: assets/const/base.py:33 settings/serializers/basic.py:8
#: users/serializers/preference/koko.py:19 #: users/serializers/preference/koko.py:19
#: users/serializers/preference/lina.py:51 #: users/serializers/preference/lina.py:51
#: users/serializers/preference/luna.py:85 #: users/serializers/preference/luna.py:89
msgid "Basic" msgid "Basic"
msgstr "" msgstr ""
@ -2245,7 +2286,7 @@ msgstr "Cloud"
#: assets/const/category.py:14 assets/models/asset/gpt.py:11 #: assets/const/category.py:14 assets/models/asset/gpt.py:11
#: assets/models/asset/web.py:16 audits/const.py:46 #: assets/models/asset/web.py:16 audits/const.py:46
#: terminal/models/applet/applet.py:28 users/const.py:77 #: terminal/models/applet/applet.py:28 users/const.py:83
msgid "Web" msgid "Web"
msgstr "" msgstr ""
@ -2306,7 +2347,7 @@ msgstr ""
msgid "Windows Active Directory" msgid "Windows Active Directory"
msgstr "" msgstr ""
#: assets/const/gpt.py:7 #: assets/const/gpt.py:8
msgid "ChatGPT" msgid "ChatGPT"
msgstr "" msgstr ""
@ -2515,7 +2556,7 @@ msgstr ""
#: assets/models/asset/common.py:169 assets/models/platform.py:155 #: assets/models/asset/common.py:169 assets/models/platform.py:155
#: assets/serializers/asset/common.py:151 #: assets/serializers/asset/common.py:151
#: authentication/backends/passkey/models.py:12 #: authentication/backends/passkey/models.py:12
#: authentication/serializers/connect_token_secret.py:122 #: authentication/serializers/connect_token_secret.py:130
#: perms/serializers/user_permission.py:26 xpack/plugins/cloud/models.py:399 #: perms/serializers/user_permission.py:26 xpack/plugins/cloud/models.py:399
msgid "Platform" msgid "Platform"
msgstr "" msgstr ""
@ -2708,7 +2749,7 @@ msgstr ""
#: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18 #: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18
#: assets/serializers/cagegory.py:24 #: assets/serializers/cagegory.py:24
#: authentication/models/connection_token.py:35 #: authentication/models/connection_token.py:35
#: authentication/serializers/connect_token_secret.py:129 #: authentication/serializers/connect_token_secret.py:137
#: common/serializers/common.py:86 labels/models.py:12 settings/models.py:40 #: common/serializers/common.py:86 labels/models.py:12 settings/models.py:40
#: users/models/preference.py:13 #: users/models/preference.py:13
msgid "Value" msgid "Value"
@ -2717,7 +2758,7 @@ msgstr ""
#: assets/models/label.py:40 assets/serializers/cagegory.py:10 #: assets/models/label.py:40 assets/serializers/cagegory.py:10
#: assets/serializers/cagegory.py:17 assets/serializers/cagegory.py:23 #: assets/serializers/cagegory.py:17 assets/serializers/cagegory.py:23
#: assets/serializers/platform.py:159 #: assets/serializers/platform.py:159
#: authentication/serializers/connect_token_secret.py:128 #: authentication/serializers/connect_token_secret.py:136
#: common/serializers/common.py:85 labels/serializers.py:45 #: common/serializers/common.py:85 labels/serializers.py:45
#: settings/serializers/msg.py:91 xpack/plugins/cloud/models.py:404 #: settings/serializers/msg.py:91 xpack/plugins/cloud/models.py:404
msgid "Label" msgid "Label"
@ -2768,7 +2809,7 @@ msgid "Required"
msgstr "" msgstr ""
#: assets/models/platform.py:19 assets/serializers/platform.py:161 #: assets/models/platform.py:19 assets/serializers/platform.py:161
#: terminal/models/component/storage.py:28 #: terminal/models/component/storage.py:28 users/const.py:42
#: xpack/plugins/cloud/providers/nutanix.py:30 #: xpack/plugins/cloud/providers/nutanix.py:30
msgid "Default" msgid "Default"
msgstr "" msgstr ""
@ -3032,7 +3073,7 @@ msgid "Disk total"
msgstr "" msgstr ""
#: assets/serializers/asset/info/gathered.py:16 #: assets/serializers/asset/info/gathered.py:16
#: authentication/serializers/connect_token_secret.py:119 #: authentication/serializers/connect_token_secret.py:127
msgid "OS" msgid "OS"
msgstr "" msgstr ""
@ -3320,7 +3361,7 @@ msgstr ""
#: audits/const.py:14 audits/const.py:25 #: audits/const.py:14 audits/const.py:25
#: authentication/templates/authentication/_access_key_modal.html:65 #: authentication/templates/authentication/_access_key_modal.html:65
#: rbac/tree.py:292 #: rbac/tree.py:293
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
@ -3346,7 +3387,7 @@ msgstr ""
msgid "Rename dir" msgid "Rename dir"
msgstr "" msgstr ""
#: audits/const.py:23 rbac/tree.py:290 terminal/api/session/session.py:285 #: audits/const.py:23 rbac/tree.py:291 terminal/api/session/session.py:285
#: terminal/templates/terminal/_msg_session_sharing.html:10 #: terminal/templates/terminal/_msg_session_sharing.html:10
#: xpack/plugins/cloud/manager.py:102 #: xpack/plugins/cloud/manager.py:102
msgid "View" msgid "View"
@ -3354,7 +3395,7 @@ msgstr ""
#: audits/const.py:26 #: audits/const.py:26
#: authentication/templates/authentication/_access_key_modal.html:22 #: authentication/templates/authentication/_access_key_modal.html:22
#: rbac/tree.py:289 #: rbac/tree.py:290
msgid "Create" msgid "Create"
msgstr "" msgstr ""
@ -3506,7 +3547,7 @@ msgid "MFA"
msgstr "" msgstr ""
#: audits/models.py:219 terminal/models/session/sharing.py:123 #: audits/models.py:219 terminal/models/session/sharing.py:123
#: xpack/plugins/cloud/manager.py:187 xpack/plugins/cloud/models.py:237 #: xpack/plugins/cloud/manager.py:186 xpack/plugins/cloud/models.py:237
msgid "Reason" msgid "Reason"
msgstr "" msgstr ""
@ -3759,6 +3800,10 @@ msgstr ""
msgid "Forgot password" msgid "Forgot password"
msgstr "" msgstr ""
#: authentication/api/password.py:70 authentication/mfa/email.py:42
msgid "The validity period of the verification code is {} minute"
msgstr ""
#: authentication/apps.py:7 #: authentication/apps.py:7
msgid "App Authentication" msgid "App Authentication"
msgstr "Authentication" msgstr "Authentication"
@ -4165,7 +4210,7 @@ msgid "Input secret"
msgstr "" msgstr ""
#: authentication/models/connection_token.py:47 #: authentication/models/connection_token.py:47
#: authentication/serializers/connect_token_secret.py:118 #: authentication/serializers/connect_token_secret.py:126
#: terminal/models/applet/applet.py:43 #: terminal/models/applet/applet.py:43
#: terminal/models/virtualapp/virtualapp.py:24 #: terminal/models/virtualapp/virtualapp.py:24
#: terminal/serializers/session.py:31 terminal/serializers/session.py:58 #: terminal/serializers/session.py:31 terminal/serializers/session.py:58
@ -4228,15 +4273,15 @@ msgstr ""
msgid "No asset or inactive asset" msgid "No asset or inactive asset"
msgstr "" msgstr ""
#: authentication/models/connection_token.py:348 #: authentication/models/connection_token.py:360
msgid "Can view super connection token secret" msgid "Can view super connection token secret"
msgstr "" msgstr ""
#: authentication/models/connection_token.py:350 #: authentication/models/connection_token.py:362
msgid "Super connection token" msgid "Super connection token"
msgstr "" msgstr ""
#: authentication/models/connection_token.py:367 #: authentication/models/connection_token.py:379
msgid "Admin connection token" msgid "Admin connection token"
msgstr "" msgstr ""
@ -4288,38 +4333,38 @@ msgstr ""
msgid "binding reminder" msgid "binding reminder"
msgstr "" msgstr ""
#: authentication/serializers/connect_token_secret.py:120 #: authentication/serializers/connect_token_secret.py:128
msgid "Is builtin" msgid "Is builtin"
msgstr "Builtin" msgstr "Builtin"
#: authentication/serializers/connect_token_secret.py:124 #: authentication/serializers/connect_token_secret.py:132
msgid "Options" msgid "Options"
msgstr "" msgstr ""
#: authentication/serializers/connect_token_secret.py:131 #: authentication/serializers/connect_token_secret.py:139
#: ops/notifications.py:19 rbac/tree.py:63 #: ops/notifications.py:19 rbac/tree.py:63
msgid "Component" msgid "Component"
msgstr "" msgstr ""
#: authentication/serializers/connect_token_secret.py:140 #: authentication/serializers/connect_token_secret.py:148
msgid "Domain" msgid "Domain"
msgstr "" msgstr ""
#: authentication/serializers/connect_token_secret.py:142 #: authentication/serializers/connect_token_secret.py:151
msgid "Expired now" msgid "Expired now"
msgstr "" msgstr ""
#: authentication/serializers/connect_token_secret.py:175 #: authentication/serializers/connect_token_secret.py:184
#: terminal/models/virtualapp/virtualapp.py:25 #: terminal/models/virtualapp/virtualapp.py:25
msgid "Image name" msgid "Image name"
msgstr "" msgstr ""
#: authentication/serializers/connect_token_secret.py:176 #: authentication/serializers/connect_token_secret.py:185
#: terminal/models/virtualapp/virtualapp.py:27 #: terminal/models/virtualapp/virtualapp.py:27
msgid "Image port" msgid "Image port"
msgstr "" msgstr ""
#: authentication/serializers/connect_token_secret.py:177 #: authentication/serializers/connect_token_secret.py:186
#: terminal/models/virtualapp/virtualapp.py:26 #: terminal/models/virtualapp/virtualapp.py:26
msgid "Image protocol" msgid "Image protocol"
msgstr "" msgstr ""
@ -4425,13 +4470,13 @@ msgid "Show"
msgstr "" msgstr ""
#: authentication/templates/authentication/_access_key_modal.html:66 #: authentication/templates/authentication/_access_key_modal.html:66
#: settings/serializers/terminal.py:24 users/const.py:42 #: settings/serializers/terminal.py:24 users/const.py:48
#: users/templates/users/user_verify_mfa.html:36 #: users/templates/users/user_verify_mfa.html:36
msgid "Disable" msgid "Disable"
msgstr "" msgstr ""
#: authentication/templates/authentication/_access_key_modal.html:67 #: authentication/templates/authentication/_access_key_modal.html:67
#: settings/serializers/terminal.py:24 users/const.py:43 #: settings/serializers/terminal.py:24 users/const.py:49
#: users/templates/users/mfa_setting.html:120 #: users/templates/users/mfa_setting.html:120
#: users/templates/users/mfa_setting.html:158 #: users/templates/users/mfa_setting.html:158
#: users/templates/users/mfa_setting.html:177 #: users/templates/users/mfa_setting.html:177
@ -4490,16 +4535,11 @@ msgid ""
"account password in time." "account password in time."
msgstr "" msgstr ""
#: authentication/templates/authentication/_msg_mfa_email_code.html:15
#: authentication/templates/authentication/_msg_reset_password_code.html:18
msgid "The validity period of the verification code is one minute"
msgstr ""
#: authentication/templates/authentication/_msg_oauth_bind.html:6 #: authentication/templates/authentication/_msg_oauth_bind.html:6
msgid "Your account has just been bound to" msgid "Your account has just been bound to"
msgstr "" msgstr ""
#: authentication/templates/authentication/_msg_oauth_bind.html:17 #: authentication/templates/authentication/_msg_oauth_bind.html:15
msgid "If the operation is not your own, unbind and change the password." msgid "If the operation is not your own, unbind and change the password."
msgstr "" msgstr ""
@ -4838,7 +4878,7 @@ msgstr ""
msgid "Ultimate edition" msgid "Ultimate edition"
msgstr "" msgstr ""
#: common/const/common.py:5 xpack/plugins/cloud/manager.py:452 #: common/const/common.py:5 xpack/plugins/cloud/manager.py:451
#, python-format #, python-format
msgid "%(name)s was created successfully" msgid "%(name)s was created successfully"
msgstr "" msgstr ""
@ -5206,11 +5246,11 @@ msgid ""
"attachments" "attachments"
msgstr "" msgstr ""
#: common/tasks.py:107 #: common/tasks.py:104
msgid "Upload account backup to external storage" msgid "Upload account backup to external storage"
msgstr "" msgstr ""
#: common/tasks.py:109 #: common/tasks.py:106
msgid "" msgid ""
"When performing an account backup, this task needs to be executed to " "When performing an account backup, this task needs to be executed to "
"external storage (SFTP)" "external storage (SFTP)"
@ -6378,7 +6418,7 @@ msgid "Storage"
msgstr "" msgstr ""
#: rbac/tree.py:64 terminal/models/applet/applet.py:53 #: rbac/tree.py:64 terminal/models/applet/applet.py:53
#: terminal/models/applet/applet.py:371 terminal/models/applet/host.py:30 #: terminal/models/applet/applet.py:379 terminal/models/applet/host.py:30
#: terminal/serializers/applet.py:16 #: terminal/serializers/applet.py:16
msgid "Applet" msgid "Applet"
msgstr "" msgstr ""
@ -6400,24 +6440,24 @@ msgstr ""
msgid "Report" msgid "Report"
msgstr "" msgstr ""
#: rbac/tree.py:181 #: rbac/tree.py:182
msgid "App organizations" msgid "App organizations"
msgstr "Organizations" msgstr "Organizations"
#: rbac/tree.py:182 #: rbac/tree.py:183
msgid "Ticket comment" msgid "Ticket comment"
msgstr "" msgstr ""
#: rbac/tree.py:183 settings/serializers/feature.py:174 #: rbac/tree.py:184 settings/serializers/feature.py:174
#: settings/serializers/feature.py:176 tickets/models/ticket/general.py:310 #: settings/serializers/feature.py:176 tickets/models/ticket/general.py:310
msgid "Ticket" msgid "Ticket"
msgstr "" msgstr ""
#: rbac/tree.py:184 #: rbac/tree.py:185
msgid "Common setting" msgid "Common setting"
msgstr "" msgstr ""
#: rbac/tree.py:185 #: rbac/tree.py:186
msgid "View permission tree" msgid "View permission tree"
msgstr "" msgstr ""
@ -6461,6 +6501,14 @@ msgstr ""
msgid "ChangeSecretDashboard" msgid "ChangeSecretDashboard"
msgstr "" msgstr ""
#: reports/views.py:181
msgid "Failed to send email: "
msgstr ""
#: reports/views.py:182
msgid "Email sent successfully to "
msgstr ""
#: settings/api/chat.py:41 #: settings/api/chat.py:41
msgid "Chat AI is not enabled" msgid "Chat AI is not enabled"
msgstr "" msgstr ""
@ -7308,7 +7356,7 @@ msgid "Tenant ID"
msgstr "" msgstr ""
#: settings/serializers/feature.py:112 terminal/serializers/storage.py:68 #: settings/serializers/feature.py:112 terminal/serializers/storage.py:68
#: xpack/plugins/cloud/manager.py:119 xpack/plugins/cloud/manager.py:124 #: xpack/plugins/cloud/manager.py:119 xpack/plugins/cloud/manager.py:123
#: xpack/plugins/cloud/models.py:293 #: xpack/plugins/cloud/models.py:293
msgid "Region" msgid "Region"
msgstr "" msgstr ""
@ -8179,7 +8227,7 @@ msgid ""
msgstr "" msgstr ""
#: templates/resource_download.html:20 templates/resource_download.html:35 #: templates/resource_download.html:20 templates/resource_download.html:35
#: users/const.py:78 #: users/const.py:84
msgid "Client" msgid "Client"
msgstr "" msgstr ""
@ -8463,12 +8511,12 @@ msgstr ""
msgid "Missing type in platform.yml" msgid "Missing type in platform.yml"
msgstr "" msgstr ""
#: terminal/models/applet/applet.py:373 terminal/models/applet/host.py:36 #: terminal/models/applet/applet.py:381 terminal/models/applet/host.py:36
#: terminal/models/applet/host.py:138 #: terminal/models/applet/host.py:138
msgid "Hosting" msgid "Hosting"
msgstr "" msgstr ""
#: terminal/models/applet/applet.py:379 #: terminal/models/applet/applet.py:387
msgid "Applet Publication" msgid "Applet Publication"
msgstr "" msgstr ""
@ -8618,7 +8666,7 @@ msgstr ""
msgid "Can view terminal config" msgid "Can view terminal config"
msgstr "" msgstr ""
#: terminal/models/session/command.py:76 #: terminal/models/session/command.py:77
msgid "Command record" msgid "Command record"
msgstr "" msgstr ""
@ -9520,11 +9568,11 @@ msgstr ""
msgid "{}: New Ticket - {} ({})" msgid "{}: New Ticket - {} ({})"
msgstr "" msgstr ""
#: tickets/notifications.py:160 #: tickets/notifications.py:168
msgid "Your ticket has been processed, processor - {}" msgid "Your ticket has been processed, processor - {}"
msgstr "" msgstr ""
#: tickets/notifications.py:164 #: tickets/notifications.py:172
msgid "Ticket has processed - {} ({})" msgid "Ticket has processed - {} ({})"
msgstr "" msgstr ""
@ -9679,23 +9727,31 @@ msgstr ""
msgid "New window" msgid "New window"
msgstr "" msgstr ""
#: users/const.py:47 #: users/const.py:43
msgid "Dark gray"
msgstr ""
#: users/const.py:44
msgid "Deep blue"
msgstr ""
#: users/const.py:53
msgid "High32 bit" msgid "High32 bit"
msgstr "" msgstr ""
#: users/const.py:48 #: users/const.py:54
msgid "True Color24 bit" msgid "True Color24 bit"
msgstr "" msgstr ""
#: users/const.py:49 #: users/const.py:55
msgid "Medium16 bit" msgid "Medium16 bit"
msgstr "" msgstr ""
#: users/const.py:82 #: users/const.py:88
msgid "Replace" msgid "Replace"
msgstr "" msgstr ""
#: users/const.py:83 #: users/const.py:89
msgid "Suffix" msgid "Suffix"
msgstr "" msgstr ""
@ -9915,12 +9971,12 @@ msgid "Reset MFA url"
msgstr "" msgstr ""
#: users/serializers/preference/koko.py:10 #: users/serializers/preference/koko.py:10
#: users/serializers/preference/luna.py:63 #: users/serializers/preference/luna.py:67
msgid "File name conflict resolution" msgid "File name conflict resolution"
msgstr "" msgstr ""
#: users/serializers/preference/koko.py:14 #: users/serializers/preference/koko.py:14
#: users/serializers/preference/luna.py:80 #: users/serializers/preference/luna.py:84
msgid "Terminal theme name" msgid "Terminal theme name"
msgstr "" msgstr ""
@ -9951,54 +10007,59 @@ msgstr ""
msgid "Connect default open method" msgid "Connect default open method"
msgstr "" msgstr ""
#: users/serializers/preference/luna.py:37 #: users/serializers/preference/luna.py:34 xpack/plugins/interface/models.py:41
msgid "RDP resolution" #: xpack/plugins/interface/serializers/interface.py:26
msgid "Theme"
msgstr "" msgstr ""
#: users/serializers/preference/luna.py:41 #: users/serializers/preference/luna.py:41
msgid "Keyboard layout" msgid "RDP resolution"
msgstr "" msgstr ""
#: users/serializers/preference/luna.py:45 #: users/serializers/preference/luna.py:45
msgid "RDP client option" msgid "Keyboard layout"
msgstr "" msgstr ""
#: users/serializers/preference/luna.py:49 #: users/serializers/preference/luna.py:49
msgid "RDP color quality" msgid "RDP client option"
msgstr "" msgstr ""
#: users/serializers/preference/luna.py:53 #: users/serializers/preference/luna.py:53
msgid "RDP color quality"
msgstr ""
#: users/serializers/preference/luna.py:57
msgid "RDP smart size" msgid "RDP smart size"
msgstr "" msgstr ""
#: users/serializers/preference/luna.py:54 #: users/serializers/preference/luna.py:58
msgid "" msgid ""
"Determines whether the client computer should scale the content on the " "Determines whether the client computer should scale the content on the "
"remote computer to fit the window size of the client computer when the " "remote computer to fit the window size of the client computer when the "
"window is resized." "window is resized."
msgstr "" msgstr ""
#: users/serializers/preference/luna.py:59 #: users/serializers/preference/luna.py:63
msgid "Remote app connect method" msgid "Remote app connect method"
msgstr "" msgstr ""
#: users/serializers/preference/luna.py:70 #: users/serializers/preference/luna.py:74
msgid "Terminal font size" msgid "Terminal font size"
msgstr "" msgstr ""
#: users/serializers/preference/luna.py:73 #: users/serializers/preference/luna.py:77
msgid "Backspace as Ctrl+H" msgid "Backspace as Ctrl+H"
msgstr "" msgstr ""
#: users/serializers/preference/luna.py:76 #: users/serializers/preference/luna.py:80
msgid "Right click quickly paste" msgid "Right click quickly paste"
msgstr "" msgstr ""
#: users/serializers/preference/luna.py:86 #: users/serializers/preference/luna.py:90
msgid "Graphics" msgid "Graphics"
msgstr "" msgstr ""
#: users/serializers/preference/luna.py:87 #: users/serializers/preference/luna.py:91
msgid "Command line" msgid "Command line"
msgstr "" msgstr ""
@ -10665,64 +10726,64 @@ msgstr ""
msgid "Synchronization regions" msgid "Synchronization regions"
msgstr "" msgstr ""
#: xpack/plugins/cloud/manager.py:141 #: xpack/plugins/cloud/manager.py:140
#, python-format #, python-format
msgid "Get instances of region \"%s\" error, error: %s" msgid "Get instances of region \"%s\" error, error: %s"
msgstr "" msgstr ""
#: xpack/plugins/cloud/manager.py:186 #: xpack/plugins/cloud/manager.py:185
#, python-format #, python-format
msgid "Failed to synchronize the instance \"%s\"" msgid "Failed to synchronize the instance \"%s\""
msgstr "" msgstr ""
#: xpack/plugins/cloud/manager.py:377 #: xpack/plugins/cloud/manager.py:376
#, python-format #, python-format
msgid "" msgid ""
"The updated platform of asset \"%s\" is inconsistent with the original " "The updated platform of asset \"%s\" is inconsistent with the original "
"platform type. Skip platform and protocol updates" "platform type. Skip platform and protocol updates"
msgstr "" msgstr ""
#: xpack/plugins/cloud/manager.py:434 #: xpack/plugins/cloud/manager.py:433
#, python-format #, python-format
msgid "The asset \"%s\" already exists" msgid "The asset \"%s\" already exists"
msgstr "" msgstr ""
#: xpack/plugins/cloud/manager.py:436 #: xpack/plugins/cloud/manager.py:435
#, python-format #, python-format
msgid "Update asset \"%s\"" msgid "Update asset \"%s\""
msgstr "" msgstr ""
#: xpack/plugins/cloud/manager.py:439 #: xpack/plugins/cloud/manager.py:438
#, python-format #, python-format
msgid "Asset \"%s\" has been updated" msgid "Asset \"%s\" has been updated"
msgstr "" msgstr ""
#: xpack/plugins/cloud/manager.py:448 #: xpack/plugins/cloud/manager.py:447
#, python-format #, python-format
msgid "Prepare to create asset \"%s\"" msgid "Prepare to create asset \"%s\""
msgstr "" msgstr ""
#: xpack/plugins/cloud/manager.py:469 #: xpack/plugins/cloud/manager.py:468
#, python-format #, python-format
msgid "Set nodes \"%s\"" msgid "Set nodes \"%s\""
msgstr "" msgstr ""
#: xpack/plugins/cloud/manager.py:495 #: xpack/plugins/cloud/manager.py:494
#, python-format #, python-format
msgid "Set accounts \"%s\"" msgid "Set accounts \"%s\""
msgstr "" msgstr ""
#: xpack/plugins/cloud/manager.py:511 #: xpack/plugins/cloud/manager.py:510
#, python-format #, python-format
msgid "Set protocols \"%s\"" msgid "Set protocols \"%s\""
msgstr "" msgstr ""
#: xpack/plugins/cloud/manager.py:519 #: xpack/plugins/cloud/manager.py:518
#, python-format #, python-format
msgid "Set labels \"%s\"" msgid "Set labels \"%s\""
msgstr "" msgstr ""
#: xpack/plugins/cloud/manager.py:533 xpack/plugins/cloud/tasks.py:31 #: xpack/plugins/cloud/manager.py:532 xpack/plugins/cloud/tasks.py:31
msgid "Run sync instance task" msgid "Run sync instance task"
msgstr "" msgstr ""
@ -11251,11 +11312,6 @@ msgstr ""
msgid "Logout logo" msgid "Logout logo"
msgstr "" msgstr ""
#: xpack/plugins/interface/models.py:41
#: xpack/plugins/interface/serializers/interface.py:26
msgid "Theme"
msgstr ""
#: xpack/plugins/interface/models.py:42 #: xpack/plugins/interface/models.py:42
msgid "Footer content" msgid "Footer content"
msgstr "" msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-09-17 15:02+0800\n" "POT-Creation-Date: 2025-10-16 14:10+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: accounts/api/account/account.py:138 #: accounts/api/account/account.py:141
#: accounts/serializers/account/account.py:181 #: accounts/serializers/account/account.py:181
#: accounts/serializers/account/account.py:362 #: accounts/serializers/account/account.py:362
msgid "Account already exists" msgid "Account already exists"
@ -114,7 +114,7 @@ msgstr ""
#: accounts/automations/base/manager.py:119 #: accounts/automations/base/manager.py:119
msgid "Windows does not support SSH key authentication" msgid "Windows does not support SSH key authentication"
msgstr "" msgstr "Windows no soporta la autenticación con claves SSH"
#: accounts/automations/base/manager.py:123 #: accounts/automations/base/manager.py:123
msgid "Windows password cannot contain special characters like > ^" msgid "Windows password cannot contain special characters like > ^"
@ -233,7 +233,7 @@ msgstr "Plantilla"
msgid "Skip" msgid "Skip"
msgstr "Omitir" msgstr "Omitir"
#: accounts/const/account.py:33 audits/const.py:24 rbac/tree.py:291 #: accounts/const/account.py:33 audits/const.py:24 rbac/tree.py:292
#: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6 #: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6
msgid "Update" msgid "Update"
msgstr "Actualizar" msgstr "Actualizar"
@ -601,17 +601,18 @@ msgstr "Actividad de cuenta"
#: accounts/serializers/account/service.py:29 #: accounts/serializers/account/service.py:29
#: accounts/serializers/account/virtual.py:20 acls/models/base.py:35 #: accounts/serializers/account/virtual.py:20 acls/models/base.py:35
#: acls/models/base.py:96 acls/models/command_acl.py:21 #: acls/models/base.py:96 acls/models/command_acl.py:21
#: acls/notifications.py:69 acls/serializers/base.py:35 #: acls/models/data_masking.py:20 acls/notifications.py:69
#: assets/models/asset/common.py:100 assets/models/asset/common.py:166 #: acls/serializers/base.py:35 assets/models/asset/common.py:100
#: assets/models/cmd_filter.py:21 assets/models/label.py:18 #: assets/models/asset/common.py:166 assets/models/cmd_filter.py:21
#: assets/models/platform.py:15 assets/models/platform.py:94 #: assets/models/label.py:18 assets/models/platform.py:15
#: assets/models/zone.py:19 assets/serializers/asset/common.py:174 #: assets/models/platform.py:94 assets/models/zone.py:19
#: assets/serializers/platform.py:158 assets/serializers/platform.py:283 #: assets/serializers/asset/common.py:174 assets/serializers/platform.py:158
#: assets/serializers/platform.py:283
#: authentication/backends/passkey/models.py:10 #: authentication/backends/passkey/models.py:10
#: authentication/models/ssh_key.py:12 authentication/notifications.py:17 #: authentication/models/ssh_key.py:12 authentication/notifications.py:17
#: authentication/notifications.py:56 #: authentication/notifications.py:56
#: authentication/serializers/connect_token_secret.py:117 #: authentication/serializers/connect_token_secret.py:125
#: authentication/serializers/connect_token_secret.py:174 labels/models.py:11 #: authentication/serializers/connect_token_secret.py:183 labels/models.py:11
#: ops/mixin.py:32 ops/models/adhoc.py:19 ops/models/celery.py:15 #: ops/mixin.py:32 ops/models/adhoc.py:19 ops/models/celery.py:15
#: ops/models/celery.py:81 ops/models/job.py:147 ops/models/playbook.py:28 #: ops/models/celery.py:81 ops/models/job.py:147 ops/models/playbook.py:28
#: ops/models/variable.py:9 ops/serializers/job.py:20 #: ops/models/variable.py:9 ops/serializers/job.py:20
@ -805,7 +806,7 @@ msgstr "Fecha de finalización"
#: assets/models/automations/base.py:137 #: assets/models/automations/base.py:137
#: assets/serializers/automations/base.py:47 audits/models.py:224 #: assets/serializers/automations/base.py:47 audits/models.py:224
#: audits/serializers.py:77 ops/models/base.py:49 ops/models/job.py:233 #: audits/serializers.py:77 ops/models/base.py:49 ops/models/job.py:233
#: terminal/models/applet/applet.py:374 terminal/models/applet/host.py:140 #: terminal/models/applet/applet.py:382 terminal/models/applet/host.py:140
#: terminal/models/component/status.py:30 #: terminal/models/component/status.py:30
#: terminal/models/virtualapp/virtualapp.py:99 #: terminal/models/virtualapp/virtualapp.py:99
#: terminal/serializers/applet.py:19 terminal/serializers/applet_host.py:163 #: terminal/serializers/applet.py:19 terminal/serializers/applet_host.py:163
@ -946,7 +947,7 @@ msgstr "Riesgo de cuenta"
#: accounts/models/automations/check_account.py:119 #: accounts/models/automations/check_account.py:119
msgid "Slug" msgid "Slug"
msgstr "" msgstr "Identificador de URL"
#: accounts/models/automations/check_account.py:125 #: accounts/models/automations/check_account.py:125
msgid "Check engine" msgid "Check engine"
@ -1069,7 +1070,7 @@ msgstr "Reglas de contraseña"
#: accounts/models/base.py:69 assets/models/automations/base.py:28 #: accounts/models/base.py:69 assets/models/automations/base.py:28
#: assets/models/cmd_filter.py:39 assets/models/label.py:22 #: assets/models/cmd_filter.py:39 assets/models/label.py:22
#: authentication/serializers/connect_token_secret.py:121 #: authentication/serializers/connect_token_secret.py:129
#: terminal/models/applet/applet.py:41 #: terminal/models/applet/applet.py:41
#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:257 #: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:257
msgid "Is active" msgid "Is active"
@ -1254,7 +1255,7 @@ msgstr "Categoría"
#: assets/serializers/platform.py:160 assets/serializers/platform.py:172 #: assets/serializers/platform.py:160 assets/serializers/platform.py:172
#: audits/serializers.py:76 audits/serializers.py:196 #: audits/serializers.py:76 audits/serializers.py:196
#: authentication/models/connection_token.py:67 #: authentication/models/connection_token.py:67
#: authentication/serializers/connect_token_secret.py:130 #: authentication/serializers/connect_token_secret.py:138
#: ops/models/job.py:155 perms/serializers/user_permission.py:28 #: ops/models/job.py:155 perms/serializers/user_permission.py:28
#: terminal/models/applet/applet.py:40 terminal/models/component/storage.py:58 #: terminal/models/applet/applet.py:40 terminal/models/component/storage.py:58
#: terminal/models/component/storage.py:152 terminal/serializers/applet.py:30 #: terminal/models/component/storage.py:152 terminal/serializers/applet.py:30
@ -1279,7 +1280,7 @@ msgstr "Servicio de directorio"
#: accounts/serializers/account/account.py:278 #: accounts/serializers/account/account.py:278
#, python-brace-format #, python-brace-format
msgid "Account already exists. Field(s): {fields} must be unique." msgid "Account already exists. Field(s): {fields} must be unique."
msgstr "" msgstr "La cuenta ya existe. El campo: {fields} debe ser único."
#: accounts/serializers/account/account.py:285 #: accounts/serializers/account/account.py:285
msgid "Has secret" msgid "Has secret"
@ -1326,7 +1327,7 @@ msgid "Spec info"
msgstr "Información especial" msgstr "Información especial"
#: accounts/serializers/account/account.py:493 #: accounts/serializers/account/account.py:493
#: authentication/serializers/connect_token_secret.py:164 #: authentication/serializers/connect_token_secret.py:173
#: authentication/templates/authentication/_access_key_modal.html:30 #: authentication/templates/authentication/_access_key_modal.html:30
#: perms/models/perm_node.py:21 users/serializers/group.py:33 #: perms/models/perm_node.py:21 users/serializers/group.py:33
msgid "ID" msgid "ID"
@ -1385,7 +1386,7 @@ msgstr "Lista blanca de IP"
#: assets/models/cmd_filter.py:88 common/db/models.py:36 #: assets/models/cmd_filter.py:88 common/db/models.py:36
#: ops/models/adhoc.py:25 ops/models/job.py:165 ops/models/playbook.py:31 #: ops/models/adhoc.py:25 ops/models/job.py:165 ops/models/playbook.py:31
#: rbac/models/role.py:37 settings/models.py:44 #: rbac/models/role.py:37 settings/models.py:44
#: terminal/models/applet/applet.py:46 terminal/models/applet/applet.py:375 #: terminal/models/applet/applet.py:46 terminal/models/applet/applet.py:383
#: terminal/models/applet/host.py:143 terminal/models/component/endpoint.py:29 #: terminal/models/applet/host.py:143 terminal/models/component/endpoint.py:29
#: terminal/models/component/endpoint.py:117 #: terminal/models/component/endpoint.py:117
#: terminal/models/session/session.py:44 #: terminal/models/session/session.py:44
@ -1930,7 +1931,7 @@ msgstr ""
#: acls/models/base.py:41 acls/serializers/base.py:57 #: acls/models/base.py:41 acls/serializers/base.py:57
#: assets/models/cmd_filter.py:81 audits/models.py:99 #: assets/models/cmd_filter.py:81 audits/models.py:99
#: audits/serializers.py:107 #: audits/serializers.py:107
#: authentication/serializers/connect_token_secret.py:123 #: authentication/serializers/connect_token_secret.py:131
#: authentication/templates/authentication/_access_key_modal.html:34 #: authentication/templates/authentication/_access_key_modal.html:34
#: perms/serializers/permission.py:63 perms/serializers/permission.py:85 #: perms/serializers/permission.py:63 perms/serializers/permission.py:85
#: terminal/backends/command/models.py:24 #: terminal/backends/command/models.py:24
@ -1939,7 +1940,7 @@ msgid "Action"
msgstr "Acción" msgstr "Acción"
#: acls/models/base.py:42 assets/models/cmd_filter.py:86 #: acls/models/base.py:42 assets/models/cmd_filter.py:86
#: authentication/serializers/connect_token_secret.py:93 #: authentication/serializers/connect_token_secret.py:101
msgid "Reviewers" msgid "Reviewers"
msgstr "Persona aprobadora" msgstr "Persona aprobadora"
@ -1980,7 +1981,7 @@ msgstr "Ignorar mayúsculas y minúsculas"
#: acls/models/command_acl.py:33 acls/models/command_acl.py:97 #: acls/models/command_acl.py:33 acls/models/command_acl.py:97
#: acls/serializers/command_acl.py:29 #: acls/serializers/command_acl.py:29
#: authentication/serializers/connect_token_secret.py:90 #: authentication/serializers/connect_token_secret.py:98
#: terminal/templates/terminal/_msg_command_warning.html:23 #: terminal/templates/terminal/_msg_command_warning.html:23
msgid "Command group" msgid "Command group"
msgstr "Grupo de comandos" msgstr "Grupo de comandos"
@ -2006,6 +2007,38 @@ msgstr "Modo de conexión"
msgid "Connect method acl" msgid "Connect method acl"
msgstr "Control de modo de conexión" msgstr "Control de modo de conexión"
#: acls/models/data_masking.py:13
msgid "Fixed Character Replacement"
msgstr "Reemplazo de caracteres fijos"
#: acls/models/data_masking.py:14
msgid "Hide Middle Characters"
msgstr "Ocultar caracteres intermedios"
#: acls/models/data_masking.py:15
msgid "Keep Prefix Only"
msgstr "Conservar prefijo"
#: acls/models/data_masking.py:16
msgid "Keep Suffix Only"
msgstr "Conservar sufijo"
#: acls/models/data_masking.py:21
msgid "Fields pattern"
msgstr "Ocultar nombre de columna"
#: acls/models/data_masking.py:27 acls/serializers/data_masking.py:14
msgid "Masking Method"
msgstr "Método de enmascaramiento"
#: acls/models/data_masking.py:31
msgid "Mask Pattern"
msgstr "Caracteres de enmascaramiento"
#: acls/models/data_masking.py:42
msgid "Data Masking Rule"
msgstr "Reglas de enmascaramiento de datos"
#: acls/models/login_acl.py:11 acls/models/login_asset_acl.py:9 #: acls/models/login_acl.py:11 acls/models/login_asset_acl.py:9
#: acls/serializers/login_acl.py:16 acls/serializers/login_asset_acl.py:13 #: acls/serializers/login_acl.py:16 acls/serializers/login_asset_acl.py:13
msgid "Rule" msgid "Rule"
@ -2040,6 +2073,14 @@ msgstr "Notificación de inicio de sesión del usuario"
msgid "Login city" msgid "Login city"
msgstr "Ciudad de inicio de sesión" msgstr "Ciudad de inicio de sesión"
#: acls/notifications.py:20 acls/notifications.py:71
msgid "Recipient name"
msgstr "Nombre del destinatario"
#: acls/notifications.py:21 acls/notifications.py:72
msgid "Recipient username"
msgstr "Nombre de usuario del destinatario."
#: acls/notifications.py:22 acls/templates/acls/user_login_reminder.html:12 #: acls/notifications.py:22 acls/templates/acls/user_login_reminder.html:12
#: audits/models.py:213 audits/models.py:291 audits/serializers.py:91 #: audits/models.py:213 audits/models.py:291 audits/serializers.py:91
msgid "User agent" msgid "User agent"
@ -2346,7 +2387,7 @@ msgstr "Deshabilitar"
#: assets/const/base.py:33 settings/serializers/basic.py:8 #: assets/const/base.py:33 settings/serializers/basic.py:8
#: users/serializers/preference/koko.py:19 #: users/serializers/preference/koko.py:19
#: users/serializers/preference/lina.py:51 #: users/serializers/preference/lina.py:51
#: users/serializers/preference/luna.py:85 #: users/serializers/preference/luna.py:89
msgid "Basic" msgid "Basic"
msgstr "Básico" msgstr "Básico"
@ -2374,7 +2415,7 @@ msgstr "Servicio en la nube"
#: assets/const/category.py:14 assets/models/asset/gpt.py:11 #: assets/const/category.py:14 assets/models/asset/gpt.py:11
#: assets/models/asset/web.py:16 audits/const.py:46 #: assets/models/asset/web.py:16 audits/const.py:46
#: terminal/models/applet/applet.py:28 users/const.py:77 #: terminal/models/applet/applet.py:28 users/const.py:83
msgid "Web" msgid "Web"
msgstr "Web" msgstr "Web"
@ -2404,15 +2445,15 @@ msgstr "Huawei"
#: assets/const/device.py:9 #: assets/const/device.py:9
msgid "H3C" msgid "H3C"
msgstr "" msgstr "H3C"
#: assets/const/device.py:10 #: assets/const/device.py:10
msgid "Juniper" msgid "Juniper"
msgstr "" msgstr "Juniper"
#: assets/const/device.py:11 #: assets/const/device.py:11
msgid "TP-Link" msgid "TP-Link"
msgstr "" msgstr "TP-Link"
#: assets/const/device.py:12 assets/const/ds.py:7 #: assets/const/device.py:12 assets/const/ds.py:7
#: terminal/models/applet/applet.py:27 tickets/const.py:9 #: terminal/models/applet/applet.py:27 tickets/const.py:9
@ -2435,7 +2476,7 @@ msgstr "Firewall"
msgid "Windows Active Directory" msgid "Windows Active Directory"
msgstr "Directorio Activo de Windows" msgstr "Directorio Activo de Windows"
#: assets/const/gpt.py:7 #: assets/const/gpt.py:8
msgid "ChatGPT" msgid "ChatGPT"
msgstr "ChatGPT" msgstr "ChatGPT"
@ -2567,7 +2608,7 @@ msgstr "Los métodos de inicio de sesión de terceros encriptados incluyen:"
#: assets/const/protocol.py:202 #: assets/const/protocol.py:202
msgid "Whether to use TLS encryption." msgid "Whether to use TLS encryption."
msgstr "" msgstr "¿Se utilizará cifrado TLS?<br"
#: assets/const/protocol.py:232 #: assets/const/protocol.py:232
msgid "Auth source" msgid "Auth source"
@ -2664,7 +2705,7 @@ msgstr "Dirección"
#: assets/models/asset/common.py:169 assets/models/platform.py:155 #: assets/models/asset/common.py:169 assets/models/platform.py:155
#: assets/serializers/asset/common.py:151 #: assets/serializers/asset/common.py:151
#: authentication/backends/passkey/models.py:12 #: authentication/backends/passkey/models.py:12
#: authentication/serializers/connect_token_secret.py:122 #: authentication/serializers/connect_token_secret.py:130
#: perms/serializers/user_permission.py:26 xpack/plugins/cloud/models.py:399 #: perms/serializers/user_permission.py:26 xpack/plugins/cloud/models.py:399
msgid "Platform" msgid "Platform"
msgstr "Plataforma" msgstr "Plataforma"
@ -2857,7 +2898,7 @@ msgstr "Sistema"
#: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18 #: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18
#: assets/serializers/cagegory.py:24 #: assets/serializers/cagegory.py:24
#: authentication/models/connection_token.py:35 #: authentication/models/connection_token.py:35
#: authentication/serializers/connect_token_secret.py:129 #: authentication/serializers/connect_token_secret.py:137
#: common/serializers/common.py:86 labels/models.py:12 settings/models.py:40 #: common/serializers/common.py:86 labels/models.py:12 settings/models.py:40
#: users/models/preference.py:13 #: users/models/preference.py:13
msgid "Value" msgid "Value"
@ -2866,7 +2907,7 @@ msgstr "Valor"
#: assets/models/label.py:40 assets/serializers/cagegory.py:10 #: assets/models/label.py:40 assets/serializers/cagegory.py:10
#: assets/serializers/cagegory.py:17 assets/serializers/cagegory.py:23 #: assets/serializers/cagegory.py:17 assets/serializers/cagegory.py:23
#: assets/serializers/platform.py:159 #: assets/serializers/platform.py:159
#: authentication/serializers/connect_token_secret.py:128 #: authentication/serializers/connect_token_secret.py:136
#: common/serializers/common.py:85 labels/serializers.py:45 #: common/serializers/common.py:85 labels/serializers.py:45
#: settings/serializers/msg.py:91 xpack/plugins/cloud/models.py:404 #: settings/serializers/msg.py:91 xpack/plugins/cloud/models.py:404
msgid "Label" msgid "Label"
@ -2917,7 +2958,7 @@ msgid "Required"
msgstr "necesario" msgstr "necesario"
#: assets/models/platform.py:19 assets/serializers/platform.py:161 #: assets/models/platform.py:19 assets/serializers/platform.py:161
#: terminal/models/component/storage.py:28 #: terminal/models/component/storage.py:28 users/const.py:42
#: xpack/plugins/cloud/providers/nutanix.py:30 #: xpack/plugins/cloud/providers/nutanix.py:30
msgid "Default" msgid "Default"
msgstr "predeterminado" msgstr "predeterminado"
@ -3203,7 +3244,7 @@ msgid "Disk total"
msgstr "Tamaño del disco" msgstr "Tamaño del disco"
#: assets/serializers/asset/info/gathered.py:16 #: assets/serializers/asset/info/gathered.py:16
#: authentication/serializers/connect_token_secret.py:119 #: authentication/serializers/connect_token_secret.py:127
msgid "OS" msgid "OS"
msgstr "Sistema operativo" msgstr "Sistema operativo"
@ -3515,7 +3556,7 @@ msgstr "Eliminar directorio"
#: audits/const.py:14 audits/const.py:25 #: audits/const.py:14 audits/const.py:25
#: authentication/templates/authentication/_access_key_modal.html:65 #: authentication/templates/authentication/_access_key_modal.html:65
#: rbac/tree.py:292 #: rbac/tree.py:293
msgid "Delete" msgid "Delete"
msgstr "Eliminar" msgstr "Eliminar"
@ -3541,7 +3582,7 @@ msgstr "Descargar"
msgid "Rename dir" msgid "Rename dir"
msgstr "Mapear directorio" msgstr "Mapear directorio"
#: audits/const.py:23 rbac/tree.py:290 terminal/api/session/session.py:285 #: audits/const.py:23 rbac/tree.py:291 terminal/api/session/session.py:285
#: terminal/templates/terminal/_msg_session_sharing.html:10 #: terminal/templates/terminal/_msg_session_sharing.html:10
#: xpack/plugins/cloud/manager.py:102 #: xpack/plugins/cloud/manager.py:102
msgid "View" msgid "View"
@ -3549,7 +3590,7 @@ msgstr "Ver"
#: audits/const.py:26 #: audits/const.py:26
#: authentication/templates/authentication/_access_key_modal.html:22 #: authentication/templates/authentication/_access_key_modal.html:22
#: rbac/tree.py:289 #: rbac/tree.py:290
msgid "Create" msgid "Create"
msgstr "Crear" msgstr "Crear"
@ -3702,7 +3743,7 @@ msgid "MFA"
msgstr "MFA" msgstr "MFA"
#: audits/models.py:219 terminal/models/session/sharing.py:123 #: audits/models.py:219 terminal/models/session/sharing.py:123
#: xpack/plugins/cloud/manager.py:187 xpack/plugins/cloud/models.py:237 #: xpack/plugins/cloud/manager.py:186 xpack/plugins/cloud/models.py:237
msgid "Reason" msgid "Reason"
msgstr "Razón" msgstr "Razón"
@ -3977,6 +4018,10 @@ msgstr ""
msgid "Forgot password" msgid "Forgot password"
msgstr "Olvidé la contraseña" msgstr "Olvidé la contraseña"
#: authentication/api/password.py:70 authentication/mfa/email.py:42
msgid "The validity period of the verification code is {} minute"
msgstr "El código de verificación tiene una validez de {} minuto."
#: authentication/apps.py:7 #: authentication/apps.py:7
msgid "App Authentication" msgid "App Authentication"
msgstr "Gestión de autenticación" msgstr "Gestión de autenticación"
@ -4416,7 +4461,7 @@ msgid "Input secret"
msgstr "Contraseña personalizada" msgstr "Contraseña personalizada"
#: authentication/models/connection_token.py:47 #: authentication/models/connection_token.py:47
#: authentication/serializers/connect_token_secret.py:118 #: authentication/serializers/connect_token_secret.py:126
#: terminal/models/applet/applet.py:43 #: terminal/models/applet/applet.py:43
#: terminal/models/virtualapp/virtualapp.py:24 #: terminal/models/virtualapp/virtualapp.py:24
#: terminal/serializers/session.py:31 terminal/serializers/session.py:58 #: terminal/serializers/session.py:31 terminal/serializers/session.py:58
@ -4479,15 +4524,15 @@ msgstr "No hay usuario o el usuario ha caducado"
msgid "No asset or inactive asset" msgid "No asset or inactive asset"
msgstr "No hay activos o activos no activados" msgstr "No hay activos o activos no activados"
#: authentication/models/connection_token.py:348 #: authentication/models/connection_token.py:360
msgid "Can view super connection token secret" msgid "Can view super connection token secret"
msgstr "Se puede ver el cifrado del token de super conexión" msgstr "Se puede ver el cifrado del token de super conexión"
#: authentication/models/connection_token.py:350 #: authentication/models/connection_token.py:362
msgid "Super connection token" msgid "Super connection token"
msgstr "Token de super conexión" msgstr "Token de super conexión"
#: authentication/models/connection_token.py:367 #: authentication/models/connection_token.py:379
msgid "Admin connection token" msgid "Admin connection token"
msgstr "Token de conexión del administrador" msgstr "Token de conexión del administrador"
@ -4539,38 +4584,38 @@ msgstr "ID de OAuth"
msgid "binding reminder" msgid "binding reminder"
msgstr "Recordatorio de vinculación" msgstr "Recordatorio de vinculación"
#: authentication/serializers/connect_token_secret.py:120 #: authentication/serializers/connect_token_secret.py:128
msgid "Is builtin" msgid "Is builtin"
msgstr "Incorporado" msgstr "Incorporado"
#: authentication/serializers/connect_token_secret.py:124 #: authentication/serializers/connect_token_secret.py:132
msgid "Options" msgid "Options"
msgstr "Opciones" msgstr "Opciones"
#: authentication/serializers/connect_token_secret.py:131 #: authentication/serializers/connect_token_secret.py:139
#: ops/notifications.py:19 rbac/tree.py:63 #: ops/notifications.py:19 rbac/tree.py:63
msgid "Component" msgid "Component"
msgstr "Componentes" msgstr "Componentes"
#: authentication/serializers/connect_token_secret.py:140 #: authentication/serializers/connect_token_secret.py:148
msgid "Domain" msgid "Domain"
msgstr "Dominio" msgstr "Dominio"
#: authentication/serializers/connect_token_secret.py:142 #: authentication/serializers/connect_token_secret.py:151
msgid "Expired now" msgid "Expired now"
msgstr "Expiración inmediata" msgstr "Expiración inmediata"
#: authentication/serializers/connect_token_secret.py:175 #: authentication/serializers/connect_token_secret.py:184
#: terminal/models/virtualapp/virtualapp.py:25 #: terminal/models/virtualapp/virtualapp.py:25
msgid "Image name" msgid "Image name"
msgstr "Nombre de imagen" msgstr "Nombre de imagen"
#: authentication/serializers/connect_token_secret.py:176 #: authentication/serializers/connect_token_secret.py:185
#: terminal/models/virtualapp/virtualapp.py:27 #: terminal/models/virtualapp/virtualapp.py:27
msgid "Image port" msgid "Image port"
msgstr "Puerto de imagen" msgstr "Puerto de imagen"
#: authentication/serializers/connect_token_secret.py:177 #: authentication/serializers/connect_token_secret.py:186
#: terminal/models/virtualapp/virtualapp.py:26 #: terminal/models/virtualapp/virtualapp.py:26
msgid "Image protocol" msgid "Image protocol"
msgstr "Protocolo de imagen" msgstr "Protocolo de imagen"
@ -4689,13 +4734,13 @@ msgid "Show"
msgstr "Mostrar" msgstr "Mostrar"
#: authentication/templates/authentication/_access_key_modal.html:66 #: authentication/templates/authentication/_access_key_modal.html:66
#: settings/serializers/terminal.py:24 users/const.py:42 #: settings/serializers/terminal.py:24 users/const.py:48
#: users/templates/users/user_verify_mfa.html:36 #: users/templates/users/user_verify_mfa.html:36
msgid "Disable" msgid "Disable"
msgstr "Deshabilitar" msgstr "Deshabilitar"
#: authentication/templates/authentication/_access_key_modal.html:67 #: authentication/templates/authentication/_access_key_modal.html:67
#: settings/serializers/terminal.py:24 users/const.py:43 #: settings/serializers/terminal.py:24 users/const.py:49
#: users/templates/users/mfa_setting.html:120 #: users/templates/users/mfa_setting.html:120
#: users/templates/users/mfa_setting.html:158 #: users/templates/users/mfa_setting.html:158
#: users/templates/users/mfa_setting.html:177 #: users/templates/users/mfa_setting.html:177
@ -4758,16 +4803,11 @@ msgstr ""
"Si sospechas que este acceso es irregular, te recomendamos que cambies la " "Si sospechas que este acceso es irregular, te recomendamos que cambies la "
"contraseña de tu cuenta lo antes posible." "contraseña de tu cuenta lo antes posible."
#: authentication/templates/authentication/_msg_mfa_email_code.html:15
#: authentication/templates/authentication/_msg_reset_password_code.html:18
msgid "The validity period of the verification code is one minute"
msgstr "El código de verificación tiene una validez de 1 minuto."
#: authentication/templates/authentication/_msg_oauth_bind.html:6 #: authentication/templates/authentication/_msg_oauth_bind.html:6
msgid "Your account has just been bound to" msgid "Your account has just been bound to"
msgstr "Tu cuenta ha sido vinculada recientemente a" msgstr "Tu cuenta ha sido vinculada recientemente a"
#: authentication/templates/authentication/_msg_oauth_bind.html:17 #: authentication/templates/authentication/_msg_oauth_bind.html:15
msgid "If the operation is not your own, unbind and change the password." msgid "If the operation is not your own, unbind and change the password."
msgstr "" msgstr ""
"Si este acceso no fue realizado por ti, por favor desvincula la cuenta y " "Si este acceso no fue realizado por ti, por favor desvincula la cuenta y "
@ -5135,7 +5175,7 @@ msgstr "Versión profesional empresarial"
msgid "Ultimate edition" msgid "Ultimate edition"
msgstr "Versión insignia empresarial" msgstr "Versión insignia empresarial"
#: common/const/common.py:5 xpack/plugins/cloud/manager.py:452 #: common/const/common.py:5 xpack/plugins/cloud/manager.py:451
#, python-format #, python-format
msgid "%(name)s was created successfully" msgid "%(name)s was created successfully"
msgstr "%(name)s creado con éxito" msgstr "%(name)s creado con éxito"
@ -5522,11 +5562,11 @@ msgstr ""
"la cuenta necesitan que se ejecute esta tarea para el envío de correos y " "la cuenta necesitan que se ejecute esta tarea para el envío de correos y "
"archivos adjuntos" "archivos adjuntos"
#: common/tasks.py:107 #: common/tasks.py:104
msgid "Upload account backup to external storage" msgid "Upload account backup to external storage"
msgstr "Subir grabaciones de sesiones a almacenamiento externo" msgstr "Subir grabaciones de sesiones a almacenamiento externo"
#: common/tasks.py:109 #: common/tasks.py:106
msgid "" msgid ""
"When performing an account backup, this task needs to be executed to " "When performing an account backup, this task needs to be executed to "
"external storage (SFTP)" "external storage (SFTP)"
@ -5978,7 +6018,7 @@ msgstr "* Por favor, introduzca una expresión crontab válida"
#: ops/mixin.py:194 #: ops/mixin.py:194
msgid "Crontab minute must not contain '*'" msgid "Crontab minute must not contain '*'"
msgstr "" msgstr "Los minutos de Crontab no pueden contener “*”"
#: ops/mixin.py:208 settings/serializers/auth/mixin.py:12 #: ops/mixin.py:208 settings/serializers/auth/mixin.py:12
msgid "Require interval or crontab setting" msgid "Require interval or crontab setting"
@ -6781,7 +6821,7 @@ msgid "Storage"
msgstr "Almacenamiento" msgstr "Almacenamiento"
#: rbac/tree.py:64 terminal/models/applet/applet.py:53 #: rbac/tree.py:64 terminal/models/applet/applet.py:53
#: terminal/models/applet/applet.py:371 terminal/models/applet/host.py:30 #: terminal/models/applet/applet.py:379 terminal/models/applet/host.py:30
#: terminal/serializers/applet.py:16 #: terminal/serializers/applet.py:16
msgid "Applet" msgid "Applet"
msgstr "Aplicación remota" msgstr "Aplicación remota"
@ -6803,24 +6843,24 @@ msgstr "Auditoría de acciones"
msgid "Report" msgid "Report"
msgstr "Informe" msgstr "Informe"
#: rbac/tree.py:181 #: rbac/tree.py:182
msgid "App organizations" msgid "App organizations"
msgstr "Gestión de organizaciones" msgstr "Gestión de organizaciones"
#: rbac/tree.py:182 #: rbac/tree.py:183
msgid "Ticket comment" msgid "Ticket comment"
msgstr "Comentarios de órdenes de trabajo" msgstr "Comentarios de órdenes de trabajo"
#: rbac/tree.py:183 settings/serializers/feature.py:174 #: rbac/tree.py:184 settings/serializers/feature.py:174
#: settings/serializers/feature.py:176 tickets/models/ticket/general.py:310 #: settings/serializers/feature.py:176 tickets/models/ticket/general.py:310
msgid "Ticket" msgid "Ticket"
msgstr "Orden de trabajo" msgstr "Orden de trabajo"
#: rbac/tree.py:184 #: rbac/tree.py:185
msgid "Common setting" msgid "Common setting"
msgstr "Configuración general" msgstr "Configuración general"
#: rbac/tree.py:185 #: rbac/tree.py:186
msgid "View permission tree" msgid "View permission tree"
msgstr "Ver árbol de autorizaciones" msgstr "Ver árbol de autorizaciones"
@ -6864,6 +6904,14 @@ msgstr "Tablero PAM"
msgid "ChangeSecretDashboard" msgid "ChangeSecretDashboard"
msgstr "Tablero de cambio de contraseña de cuenta" msgstr "Tablero de cambio de contraseña de cuenta"
#: reports/views.py:181
msgid "Failed to send email: "
msgstr "Error al enviar el correo electrónico"
#: reports/views.py:182
msgid "Email sent successfully to "
msgstr "Envío de correo electrónico exitoso"
#: settings/api/chat.py:41 #: settings/api/chat.py:41
msgid "Chat AI is not enabled" msgid "Chat AI is not enabled"
msgstr "Chat AI no está habilitado" msgstr "Chat AI no está habilitado"
@ -6903,7 +6951,7 @@ msgstr "Configuración del sistema"
#: settings/const.py:13 #: settings/const.py:13
msgid "Embed" msgid "Embed"
msgstr "" msgstr "Incrustar"
#: settings/models.py:42 users/models/preference.py:14 #: settings/models.py:42 users/models/preference.py:14
msgid "Encrypted" msgid "Encrypted"
@ -7186,7 +7234,7 @@ msgstr ""
#: settings/serializers/auth/lark.py:13 users/models/user/_source.py:24 #: settings/serializers/auth/lark.py:13 users/models/user/_source.py:24
msgid "Lark" msgid "Lark"
msgstr "" msgstr "Lark"
#: settings/serializers/auth/lark.py:19 #: settings/serializers/auth/lark.py:19
msgid "" msgid ""
@ -7395,7 +7443,7 @@ msgstr "Actualizar siempre la información del usuario."
#: settings/serializers/auth/oidc.py:13 settings/serializers/auth/oidc.py:71 #: settings/serializers/auth/oidc.py:13 settings/serializers/auth/oidc.py:71
msgid "OIDC" msgid "OIDC"
msgstr "" msgstr "OIDC"
#: settings/serializers/auth/oidc.py:17 #: settings/serializers/auth/oidc.py:17
msgid "Base site URL" msgid "Base site URL"
@ -7464,6 +7512,9 @@ msgid ""
"The issuer URL of the OpenID Provider, used to discover its configuration " "The issuer URL of the OpenID Provider, used to discover its configuration "
"via the `$PROVIDER_ENDPOINT/.well-known/openid-configuration` endpoint." "via the `$PROVIDER_ENDPOINT/.well-known/openid-configuration` endpoint."
msgstr "" msgstr ""
"URL del emisor del proveedor OpenID, utilizado para descubrir su "
"configuración a través del extremo “$PROVIDER_ENDPOINT/.well-known/openid-"
"configuration”."
#: settings/serializers/auth/oidc.py:87 #: settings/serializers/auth/oidc.py:87
msgid "JWKS endpoint" msgid "JWKS endpoint"
@ -7860,7 +7911,7 @@ msgid "Tenant ID"
msgstr "ID del inquilino" msgstr "ID del inquilino"
#: settings/serializers/feature.py:112 terminal/serializers/storage.py:68 #: settings/serializers/feature.py:112 terminal/serializers/storage.py:68
#: xpack/plugins/cloud/manager.py:119 xpack/plugins/cloud/manager.py:124 #: xpack/plugins/cloud/manager.py:119 xpack/plugins/cloud/manager.py:123
#: xpack/plugins/cloud/models.py:293 #: xpack/plugins/cloud/models.py:293
msgid "Region" msgid "Region"
msgstr "Región" msgstr "Región"
@ -8766,7 +8817,7 @@ msgstr "Descargar plantilla actualizada"
#: templates/_foot_js.html:30 #: templates/_foot_js.html:30
msgid "Page footer" msgid "Page footer"
msgstr "" msgstr "Pie de página"
#: templates/_header_bar.html:12 #: templates/_header_bar.html:12
msgid "Help" msgid "Help"
@ -8881,7 +8932,7 @@ msgstr ""
"que confía en este enlace." "que confía en este enlace."
#: templates/resource_download.html:20 templates/resource_download.html:35 #: templates/resource_download.html:20 templates/resource_download.html:35
#: users/const.py:78 #: users/const.py:84
msgid "Client" msgid "Client"
msgstr "" msgstr ""
"Cliente JumpServer, actualmente se utiliza para invocar programas de cliente" "Cliente JumpServer, actualmente se utiliza para invocar programas de cliente"
@ -9177,12 +9228,12 @@ msgstr "Solo se admite plataforma personalizada"
msgid "Missing type in platform.yml" msgid "Missing type in platform.yml"
msgstr "Falta tipo en el platform.yml" msgstr "Falta tipo en el platform.yml"
#: terminal/models/applet/applet.py:373 terminal/models/applet/host.py:36 #: terminal/models/applet/applet.py:381 terminal/models/applet/host.py:36
#: terminal/models/applet/host.py:138 #: terminal/models/applet/host.py:138
msgid "Hosting" msgid "Hosting"
msgstr "Máquina anfitriona" msgstr "Máquina anfitriona"
#: terminal/models/applet/applet.py:379 #: terminal/models/applet/applet.py:387
msgid "Applet Publication" msgid "Applet Publication"
msgstr "Lanzamiento de la aplicación" msgstr "Lanzamiento de la aplicación"
@ -9345,7 +9396,7 @@ msgstr "Usuario de la aplicación"
msgid "Can view terminal config" msgid "Can view terminal config"
msgstr "Se puede ver la configuración del terminal" msgstr "Se puede ver la configuración del terminal"
#: terminal/models/session/command.py:76 #: terminal/models/session/command.py:77
msgid "Command record" msgid "Command record"
msgstr "Registro de comandos" msgstr "Registro de comandos"
@ -10306,11 +10357,11 @@ msgstr "Tienes una nueva orden de trabajo, solicitante - {}"
msgid "{}: New Ticket - {} ({})" msgid "{}: New Ticket - {} ({})"
msgstr "Nueva orden de trabajo - {} ({})" msgstr "Nueva orden de trabajo - {} ({})"
#: tickets/notifications.py:160 #: tickets/notifications.py:168
msgid "Your ticket has been processed, processor - {}" msgid "Your ticket has been processed, processor - {}"
msgstr "Tu orden de trabajo ha sido procesada, responsable - {}" msgstr "Tu orden de trabajo ha sido procesada, responsable - {}"
#: tickets/notifications.py:164 #: tickets/notifications.py:172
msgid "Ticket has processed - {} ({})" msgid "Ticket has processed - {} ({})"
msgstr "Tu orden de trabajo ha sido procesada, responsable - {} ({})" msgstr "Tu orden de trabajo ha sido procesada, responsable - {} ({})"
@ -10474,23 +10525,31 @@ msgstr "Ventana actual"
msgid "New window" msgid "New window"
msgstr "Nueva ventana" msgstr "Nueva ventana"
#: users/const.py:47 #: users/const.py:43
msgid "Dark gray"
msgstr "Gris oscuro"
#: users/const.py:44
msgid "Deep blue"
msgstr "Azul oscuro"
#: users/const.py:53
msgid "High32 bit" msgid "High32 bit"
msgstr "Alta (32 bits)" msgstr "Alta (32 bits)"
#: users/const.py:48 #: users/const.py:54
msgid "True Color24 bit" msgid "True Color24 bit"
msgstr "" msgstr "Color verdadero (24 bits)"
#: users/const.py:49 #: users/const.py:55
msgid "Medium16 bit" msgid "Medium16 bit"
msgstr "Media (16 bits)" msgstr "Media (16 bits)"
#: users/const.py:82 #: users/const.py:88
msgid "Replace" msgid "Replace"
msgstr "Reemplazar" msgstr "Reemplazar"
#: users/const.py:83 #: users/const.py:89
msgid "Suffix" msgid "Suffix"
msgstr "Agregar sufijo" msgstr "Agregar sufijo"
@ -10708,7 +10767,7 @@ msgstr "Restablecer clave SSH"
#: users/notifications.py:253 #: users/notifications.py:253
msgid "Update SSH Key url" msgid "Update SSH Key url"
msgstr "" msgstr "Actualizar dirección de clave SSH"
#: users/notifications.py:276 #: users/notifications.py:276
msgid "Reset MFA" msgid "Reset MFA"
@ -10719,12 +10778,12 @@ msgid "Reset MFA url"
msgstr "URL de reinicio de MFA" msgstr "URL de reinicio de MFA"
#: users/serializers/preference/koko.py:10 #: users/serializers/preference/koko.py:10
#: users/serializers/preference/luna.py:63 #: users/serializers/preference/luna.py:67
msgid "File name conflict resolution" msgid "File name conflict resolution"
msgstr "Solución para conflictos de nombres de archivos" msgstr "Solución para conflictos de nombres de archivos"
#: users/serializers/preference/koko.py:14 #: users/serializers/preference/koko.py:14
#: users/serializers/preference/luna.py:80 #: users/serializers/preference/luna.py:84
msgid "Terminal theme name" msgid "Terminal theme name"
msgstr "Nombre del tema del terminal" msgstr "Nombre del tema del terminal"
@ -10759,27 +10818,33 @@ msgstr "Carga asíncrona del árbol de activos"
msgid "Connect default open method" msgid "Connect default open method"
msgstr "Forma predeterminada de apertura de conexión" msgstr "Forma predeterminada de apertura de conexión"
#: users/serializers/preference/luna.py:37 #: users/serializers/preference/luna.py:34
#: xpack/plugins/interface/models.py:41
#: xpack/plugins/interface/serializers/interface.py:26
msgid "Theme"
msgstr "Tema"
#: users/serializers/preference/luna.py:41
msgid "RDP resolution" msgid "RDP resolution"
msgstr "Resolución RDP" msgstr "Resolución RDP"
#: users/serializers/preference/luna.py:41 #: users/serializers/preference/luna.py:45
msgid "Keyboard layout" msgid "Keyboard layout"
msgstr "Distribución del teclado" msgstr "Distribución del teclado"
#: users/serializers/preference/luna.py:45 #: users/serializers/preference/luna.py:49
msgid "RDP client option" msgid "RDP client option"
msgstr "Opciones del cliente RDP" msgstr "Opciones del cliente RDP"
#: users/serializers/preference/luna.py:49 #: users/serializers/preference/luna.py:53
msgid "RDP color quality" msgid "RDP color quality"
msgstr "Calidad de color RDP" msgstr "Calidad de color RDP"
#: users/serializers/preference/luna.py:53 #: users/serializers/preference/luna.py:57
msgid "RDP smart size" msgid "RDP smart size"
msgstr "Tamaño inteligente RDP" msgstr "Tamaño inteligente RDP"
#: users/serializers/preference/luna.py:54 #: users/serializers/preference/luna.py:58
msgid "" msgid ""
"Determines whether the client computer should scale the content on the " "Determines whether the client computer should scale the content on the "
"remote computer to fit the window size of the client computer when the " "remote computer to fit the window size of the client computer when the "
@ -10789,27 +10854,27 @@ msgstr ""
"para que se adapte al tamaño de la ventana de la computadora cliente al " "para que se adapte al tamaño de la ventana de la computadora cliente al "
"cambiar el tamaño de la ventana." "cambiar el tamaño de la ventana."
#: users/serializers/preference/luna.py:59 #: users/serializers/preference/luna.py:63
msgid "Remote app connect method" msgid "Remote app connect method"
msgstr "Conexión remota de aplicaciones" msgstr "Conexión remota de aplicaciones"
#: users/serializers/preference/luna.py:70 #: users/serializers/preference/luna.py:74
msgid "Terminal font size" msgid "Terminal font size"
msgstr "Tamaño de fuente del terminal de caracteres" msgstr "Tamaño de fuente del terminal de caracteres"
#: users/serializers/preference/luna.py:73 #: users/serializers/preference/luna.py:77
msgid "Backspace as Ctrl+H" msgid "Backspace as Ctrl+H"
msgstr "Retroceso de terminal de caracteres como Ctrl+H" msgstr "Retroceso de terminal de caracteres como Ctrl+H"
#: users/serializers/preference/luna.py:76 #: users/serializers/preference/luna.py:80
msgid "Right click quickly paste" msgid "Right click quickly paste"
msgstr "Pegar rápidamente con clic derecho" msgstr "Pegar rápidamente con clic derecho"
#: users/serializers/preference/luna.py:86 #: users/serializers/preference/luna.py:90
msgid "Graphics" msgid "Graphics"
msgstr "Gráfico" msgstr "Gráfico"
#: users/serializers/preference/luna.py:87 #: users/serializers/preference/luna.py:91
msgid "Command line" msgid "Command line"
msgstr "Línea de comandos" msgstr "Línea de comandos"
@ -11428,7 +11493,7 @@ msgstr "ZStack"
#: xpack/plugins/cloud/const.py:30 xpack/plugins/cloud/providers/smartx.py:9 #: xpack/plugins/cloud/const.py:30 xpack/plugins/cloud/providers/smartx.py:9
msgid "SmartX CloudTower" msgid "SmartX CloudTower"
msgstr "" msgstr "SmartX Nube Tower"
#: xpack/plugins/cloud/const.py:31 #: xpack/plugins/cloud/const.py:31
msgid "Fusion Compute" msgid "Fusion Compute"
@ -11531,17 +11596,17 @@ msgstr "Ejecución de tareas completada"
msgid "Synchronization regions" msgid "Synchronization regions"
msgstr "Sincronizar regiones" msgstr "Sincronizar regiones"
#: xpack/plugins/cloud/manager.py:141 #: xpack/plugins/cloud/manager.py:140
#, python-format #, python-format
msgid "Get instances of region \"%s\" error, error: %s" msgid "Get instances of region \"%s\" error, error: %s"
msgstr "Error al obtener la instancia de la región \"%s\", error: %s" msgstr "Error al obtener la instancia de la región \"%s\", error: %s"
#: xpack/plugins/cloud/manager.py:186 #: xpack/plugins/cloud/manager.py:185
#, python-format #, python-format
msgid "Failed to synchronize the instance \"%s\"" msgid "Failed to synchronize the instance \"%s\""
msgstr "No se puede sincronizar la instancia %s" msgstr "No se puede sincronizar la instancia %s"
#: xpack/plugins/cloud/manager.py:377 #: xpack/plugins/cloud/manager.py:376
#, python-format #, python-format
msgid "" msgid ""
"The updated platform of asset \"%s\" is inconsistent with the original " "The updated platform of asset \"%s\" is inconsistent with the original "
@ -11550,47 +11615,47 @@ msgstr ""
"La plataforma de actualización del activo \"%s\" no coincide con el tipo de " "La plataforma de actualización del activo \"%s\" no coincide con el tipo de "
"plataforma original. Se omiten las actualizaciones de plataforma y protocolo" "plataforma original. Se omiten las actualizaciones de plataforma y protocolo"
#: xpack/plugins/cloud/manager.py:434 #: xpack/plugins/cloud/manager.py:433
#, python-format #, python-format
msgid "The asset \"%s\" already exists" msgid "The asset \"%s\" already exists"
msgstr "El activo \"%s\" ya existe" msgstr "El activo \"%s\" ya existe"
#: xpack/plugins/cloud/manager.py:436 #: xpack/plugins/cloud/manager.py:435
#, python-format #, python-format
msgid "Update asset \"%s\"" msgid "Update asset \"%s\""
msgstr "Actualizando activo \"%s\"" msgstr "Actualizando activo \"%s\""
#: xpack/plugins/cloud/manager.py:439 #: xpack/plugins/cloud/manager.py:438
#, python-format #, python-format
msgid "Asset \"%s\" has been updated" msgid "Asset \"%s\" has been updated"
msgstr "El activo \"%s\" ha sido actualizado" msgstr "El activo \"%s\" ha sido actualizado"
#: xpack/plugins/cloud/manager.py:448 #: xpack/plugins/cloud/manager.py:447
#, python-format #, python-format
msgid "Prepare to create asset \"%s\"" msgid "Prepare to create asset \"%s\""
msgstr "Preparando la creación del activo %s" msgstr "Preparando la creación del activo %s"
#: xpack/plugins/cloud/manager.py:469 #: xpack/plugins/cloud/manager.py:468
#, python-format #, python-format
msgid "Set nodes \"%s\"" msgid "Set nodes \"%s\""
msgstr "Configurando nodo: \"%s\"" msgstr "Configurando nodo: \"%s\""
#: xpack/plugins/cloud/manager.py:495 #: xpack/plugins/cloud/manager.py:494
#, python-format #, python-format
msgid "Set accounts \"%s\"" msgid "Set accounts \"%s\""
msgstr "Configurando cuenta: %s" msgstr "Configurando cuenta: %s"
#: xpack/plugins/cloud/manager.py:511 #: xpack/plugins/cloud/manager.py:510
#, python-format #, python-format
msgid "Set protocols \"%s\"" msgid "Set protocols \"%s\""
msgstr "Configurando protocolo \"%s\"" msgstr "Configurando protocolo \"%s\""
#: xpack/plugins/cloud/manager.py:519 #: xpack/plugins/cloud/manager.py:518
#, python-format #, python-format
msgid "Set labels \"%s\"" msgid "Set labels \"%s\""
msgstr "Configurar etiqueta: \"%s\"" msgstr "Configurar etiqueta: \"%s\""
#: xpack/plugins/cloud/manager.py:533 xpack/plugins/cloud/tasks.py:31 #: xpack/plugins/cloud/manager.py:532 xpack/plugins/cloud/tasks.py:31
msgid "Run sync instance task" msgid "Run sync instance task"
msgstr "Ejecutando tarea de sincronización de instancias" msgstr "Ejecutando tarea de sincronización de instancias"
@ -12147,11 +12212,6 @@ msgstr "Logo de la página de gestión"
msgid "Logout logo" msgid "Logout logo"
msgstr "Cerrar sesión" msgstr "Cerrar sesión"
#: xpack/plugins/interface/models.py:41
#: xpack/plugins/interface/serializers/interface.py:26
msgid "Theme"
msgstr "Tema"
#: xpack/plugins/interface/models.py:42 #: xpack/plugins/interface/models.py:42
msgid "Footer content" msgid "Footer content"
msgstr "Contenido del pie de página" msgstr "Contenido del pie de página"
@ -12172,6 +12232,14 @@ msgstr "Importación de licencia exitosa"
msgid "Invalid license" msgid "Invalid license"
msgstr "Licencia no válida" msgstr "Licencia no válida"
#, fuzzy
#~ msgid "Themes"
#~ msgstr "Tema"
#, fuzzy
#~ msgid "domain_name"
#~ msgstr "Nombre de dominio"
#~ msgid "Task execution id" #~ msgid "Task execution id"
#~ msgstr "ID de ejecución de tareas" #~ msgstr "ID de ejecución de tareas"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-09-17 15:02+0800\n" "POT-Creation-Date: 2025-10-16 14:10+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
#: accounts/api/account/account.py:138 #: accounts/api/account/account.py:141
#: accounts/serializers/account/account.py:181 #: accounts/serializers/account/account.py:181
#: accounts/serializers/account/account.py:362 #: accounts/serializers/account/account.py:362
msgid "Account already exists" msgid "Account already exists"
@ -96,7 +96,7 @@ msgstr "計画実行終了"
#: accounts/automations/base/manager.py:119 #: accounts/automations/base/manager.py:119
msgid "Windows does not support SSH key authentication" msgid "Windows does not support SSH key authentication"
msgstr "" msgstr "WindowsはSSHキー認証をサポートしていません。"
#: accounts/automations/base/manager.py:123 #: accounts/automations/base/manager.py:123
msgid "Windows password cannot contain special characters like > ^" msgid "Windows password cannot contain special characters like > ^"
@ -210,7 +210,7 @@ msgstr "テンプレート"
msgid "Skip" msgid "Skip"
msgstr "スキップ" msgstr "スキップ"
#: accounts/const/account.py:33 audits/const.py:24 rbac/tree.py:291 #: accounts/const/account.py:33 audits/const.py:24 rbac/tree.py:292
#: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6 #: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6
msgid "Update" msgid "Update"
msgstr "更新" msgstr "更新"
@ -591,17 +591,18 @@ msgstr "アカウントの活動"
#: accounts/serializers/account/service.py:29 #: accounts/serializers/account/service.py:29
#: accounts/serializers/account/virtual.py:20 acls/models/base.py:35 #: accounts/serializers/account/virtual.py:20 acls/models/base.py:35
#: acls/models/base.py:96 acls/models/command_acl.py:21 #: acls/models/base.py:96 acls/models/command_acl.py:21
#: acls/notifications.py:69 acls/serializers/base.py:35 #: acls/models/data_masking.py:20 acls/notifications.py:69
#: assets/models/asset/common.py:100 assets/models/asset/common.py:166 #: acls/serializers/base.py:35 assets/models/asset/common.py:100
#: assets/models/cmd_filter.py:21 assets/models/label.py:18 #: assets/models/asset/common.py:166 assets/models/cmd_filter.py:21
#: assets/models/platform.py:15 assets/models/platform.py:94 #: assets/models/label.py:18 assets/models/platform.py:15
#: assets/models/zone.py:19 assets/serializers/asset/common.py:174 #: assets/models/platform.py:94 assets/models/zone.py:19
#: assets/serializers/platform.py:158 assets/serializers/platform.py:283 #: assets/serializers/asset/common.py:174 assets/serializers/platform.py:158
#: assets/serializers/platform.py:283
#: authentication/backends/passkey/models.py:10 #: authentication/backends/passkey/models.py:10
#: authentication/models/ssh_key.py:12 authentication/notifications.py:17 #: authentication/models/ssh_key.py:12 authentication/notifications.py:17
#: authentication/notifications.py:56 #: authentication/notifications.py:56
#: authentication/serializers/connect_token_secret.py:117 #: authentication/serializers/connect_token_secret.py:125
#: authentication/serializers/connect_token_secret.py:174 labels/models.py:11 #: authentication/serializers/connect_token_secret.py:183 labels/models.py:11
#: ops/mixin.py:32 ops/models/adhoc.py:19 ops/models/celery.py:15 #: ops/mixin.py:32 ops/models/adhoc.py:19 ops/models/celery.py:15
#: ops/models/celery.py:81 ops/models/job.py:147 ops/models/playbook.py:28 #: ops/models/celery.py:81 ops/models/job.py:147 ops/models/playbook.py:28
#: ops/models/variable.py:9 ops/serializers/job.py:20 #: ops/models/variable.py:9 ops/serializers/job.py:20
@ -795,7 +796,7 @@ msgstr "終了日"
#: assets/models/automations/base.py:137 #: assets/models/automations/base.py:137
#: assets/serializers/automations/base.py:47 audits/models.py:224 #: assets/serializers/automations/base.py:47 audits/models.py:224
#: audits/serializers.py:77 ops/models/base.py:49 ops/models/job.py:233 #: audits/serializers.py:77 ops/models/base.py:49 ops/models/job.py:233
#: terminal/models/applet/applet.py:374 terminal/models/applet/host.py:140 #: terminal/models/applet/applet.py:382 terminal/models/applet/host.py:140
#: terminal/models/component/status.py:30 #: terminal/models/component/status.py:30
#: terminal/models/virtualapp/virtualapp.py:99 #: terminal/models/virtualapp/virtualapp.py:99
#: terminal/serializers/applet.py:19 terminal/serializers/applet_host.py:163 #: terminal/serializers/applet.py:19 terminal/serializers/applet_host.py:163
@ -936,7 +937,7 @@ msgstr "アカウントリスク"
#: accounts/models/automations/check_account.py:119 #: accounts/models/automations/check_account.py:119
msgid "Slug" msgid "Slug"
msgstr "" msgstr "URL識別子"
#: accounts/models/automations/check_account.py:125 #: accounts/models/automations/check_account.py:125
msgid "Check engine" msgid "Check engine"
@ -1052,7 +1053,7 @@ msgstr "パスワードルール"
#: accounts/models/base.py:69 assets/models/automations/base.py:28 #: accounts/models/base.py:69 assets/models/automations/base.py:28
#: assets/models/cmd_filter.py:39 assets/models/label.py:22 #: assets/models/cmd_filter.py:39 assets/models/label.py:22
#: authentication/serializers/connect_token_secret.py:121 #: authentication/serializers/connect_token_secret.py:129
#: terminal/models/applet/applet.py:41 #: terminal/models/applet/applet.py:41
#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:257 #: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:257
msgid "Is active" msgid "Is active"
@ -1223,7 +1224,7 @@ msgstr "カテゴリ"
#: assets/serializers/platform.py:160 assets/serializers/platform.py:172 #: assets/serializers/platform.py:160 assets/serializers/platform.py:172
#: audits/serializers.py:76 audits/serializers.py:196 #: audits/serializers.py:76 audits/serializers.py:196
#: authentication/models/connection_token.py:67 #: authentication/models/connection_token.py:67
#: authentication/serializers/connect_token_secret.py:130 #: authentication/serializers/connect_token_secret.py:138
#: ops/models/job.py:155 perms/serializers/user_permission.py:28 #: ops/models/job.py:155 perms/serializers/user_permission.py:28
#: terminal/models/applet/applet.py:40 terminal/models/component/storage.py:58 #: terminal/models/applet/applet.py:40 terminal/models/component/storage.py:58
#: terminal/models/component/storage.py:152 terminal/serializers/applet.py:30 #: terminal/models/component/storage.py:152 terminal/serializers/applet.py:30
@ -1248,7 +1249,7 @@ msgstr "ディレクトリサービス"
#: accounts/serializers/account/account.py:278 #: accounts/serializers/account/account.py:278
#, python-brace-format #, python-brace-format
msgid "Account already exists. Field(s): {fields} must be unique." msgid "Account already exists. Field(s): {fields} must be unique."
msgstr "" msgstr "アカウントは既に存在します。フィールド:{fields}は一意でなければなりません。"
#: accounts/serializers/account/account.py:285 #: accounts/serializers/account/account.py:285
msgid "Has secret" msgid "Has secret"
@ -1295,7 +1296,7 @@ msgid "Spec info"
msgstr "特別情報" msgstr "特別情報"
#: accounts/serializers/account/account.py:493 #: accounts/serializers/account/account.py:493
#: authentication/serializers/connect_token_secret.py:164 #: authentication/serializers/connect_token_secret.py:173
#: authentication/templates/authentication/_access_key_modal.html:30 #: authentication/templates/authentication/_access_key_modal.html:30
#: perms/models/perm_node.py:21 users/serializers/group.py:33 #: perms/models/perm_node.py:21 users/serializers/group.py:33
msgid "ID" msgid "ID"
@ -1353,7 +1354,7 @@ msgstr "Access IP"
#: assets/models/cmd_filter.py:88 common/db/models.py:36 #: assets/models/cmd_filter.py:88 common/db/models.py:36
#: ops/models/adhoc.py:25 ops/models/job.py:165 ops/models/playbook.py:31 #: ops/models/adhoc.py:25 ops/models/job.py:165 ops/models/playbook.py:31
#: rbac/models/role.py:37 settings/models.py:44 #: rbac/models/role.py:37 settings/models.py:44
#: terminal/models/applet/applet.py:46 terminal/models/applet/applet.py:375 #: terminal/models/applet/applet.py:46 terminal/models/applet/applet.py:383
#: terminal/models/applet/host.py:143 terminal/models/component/endpoint.py:29 #: terminal/models/applet/host.py:143 terminal/models/component/endpoint.py:29
#: terminal/models/component/endpoint.py:117 #: terminal/models/component/endpoint.py:117
#: terminal/models/session/session.py:44 #: terminal/models/session/session.py:44
@ -1843,7 +1844,7 @@ msgstr "1-100、低い値は最初に一致します"
#: acls/models/base.py:41 acls/serializers/base.py:57 #: acls/models/base.py:41 acls/serializers/base.py:57
#: assets/models/cmd_filter.py:81 audits/models.py:99 #: assets/models/cmd_filter.py:81 audits/models.py:99
#: audits/serializers.py:107 #: audits/serializers.py:107
#: authentication/serializers/connect_token_secret.py:123 #: authentication/serializers/connect_token_secret.py:131
#: authentication/templates/authentication/_access_key_modal.html:34 #: authentication/templates/authentication/_access_key_modal.html:34
#: perms/serializers/permission.py:63 perms/serializers/permission.py:85 #: perms/serializers/permission.py:63 perms/serializers/permission.py:85
#: terminal/backends/command/models.py:24 #: terminal/backends/command/models.py:24
@ -1852,7 +1853,7 @@ msgid "Action"
msgstr "アクション" msgstr "アクション"
#: acls/models/base.py:42 assets/models/cmd_filter.py:86 #: acls/models/base.py:42 assets/models/cmd_filter.py:86
#: authentication/serializers/connect_token_secret.py:93 #: authentication/serializers/connect_token_secret.py:101
msgid "Reviewers" msgid "Reviewers"
msgstr "レビュー担当者" msgstr "レビュー担当者"
@ -1893,7 +1894,7 @@ msgstr "家を無視する"
#: acls/models/command_acl.py:33 acls/models/command_acl.py:97 #: acls/models/command_acl.py:33 acls/models/command_acl.py:97
#: acls/serializers/command_acl.py:29 #: acls/serializers/command_acl.py:29
#: authentication/serializers/connect_token_secret.py:90 #: authentication/serializers/connect_token_secret.py:98
#: terminal/templates/terminal/_msg_command_warning.html:23 #: terminal/templates/terminal/_msg_command_warning.html:23
msgid "Command group" msgid "Command group"
msgstr "コマンドグループ" msgstr "コマンドグループ"
@ -1919,6 +1920,38 @@ msgstr "接続方法"
msgid "Connect method acl" msgid "Connect method acl"
msgstr "接続方法acl" msgstr "接続方法acl"
#: acls/models/data_masking.py:13
msgid "Fixed Character Replacement"
msgstr "固定文字の置き換え"
#: acls/models/data_masking.py:14
msgid "Hide Middle Characters"
msgstr "中間文字の非表示"
#: acls/models/data_masking.py:15
msgid "Keep Prefix Only"
msgstr "プレフィックスを保持"
#: acls/models/data_masking.py:16
msgid "Keep Suffix Only"
msgstr "サフィックスを保持"
#: acls/models/data_masking.py:21
msgid "Fields pattern"
msgstr "列名をマスクする"
#: acls/models/data_masking.py:27 acls/serializers/data_masking.py:14
msgid "Masking Method"
msgstr "マスキング方法"
#: acls/models/data_masking.py:31
msgid "Mask Pattern"
msgstr "マスキング文字"
#: acls/models/data_masking.py:42
msgid "Data Masking Rule"
msgstr "データマスキングルール"
#: acls/models/login_acl.py:11 acls/models/login_asset_acl.py:9 #: acls/models/login_acl.py:11 acls/models/login_asset_acl.py:9
#: acls/serializers/login_acl.py:16 acls/serializers/login_asset_acl.py:13 #: acls/serializers/login_acl.py:16 acls/serializers/login_asset_acl.py:13
msgid "Rule" msgid "Rule"
@ -1953,6 +1986,14 @@ msgstr "ユーザーログインのリマインダ"
msgid "Login city" msgid "Login city"
msgstr "ログイン都市" msgstr "ログイン都市"
#: acls/notifications.py:20 acls/notifications.py:71
msgid "Recipient name"
msgstr "受取人名"
#: acls/notifications.py:21 acls/notifications.py:72
msgid "Recipient username"
msgstr "受取人ユーザー名"
#: acls/notifications.py:22 acls/templates/acls/user_login_reminder.html:12 #: acls/notifications.py:22 acls/templates/acls/user_login_reminder.html:12
#: audits/models.py:213 audits/models.py:291 audits/serializers.py:91 #: audits/models.py:213 audits/models.py:291 audits/serializers.py:91
msgid "User agent" msgid "User agent"
@ -2248,7 +2289,7 @@ msgstr "無効"
#: assets/const/base.py:33 settings/serializers/basic.py:8 #: assets/const/base.py:33 settings/serializers/basic.py:8
#: users/serializers/preference/koko.py:19 #: users/serializers/preference/koko.py:19
#: users/serializers/preference/lina.py:51 #: users/serializers/preference/lina.py:51
#: users/serializers/preference/luna.py:85 #: users/serializers/preference/luna.py:89
msgid "Basic" msgid "Basic"
msgstr "基本" msgstr "基本"
@ -2276,7 +2317,7 @@ msgstr "クラウド サービス"
#: assets/const/category.py:14 assets/models/asset/gpt.py:11 #: assets/const/category.py:14 assets/models/asset/gpt.py:11
#: assets/models/asset/web.py:16 audits/const.py:46 #: assets/models/asset/web.py:16 audits/const.py:46
#: terminal/models/applet/applet.py:28 users/const.py:77 #: terminal/models/applet/applet.py:28 users/const.py:83
msgid "Web" msgid "Web"
msgstr "Web" msgstr "Web"
@ -2306,15 +2347,15 @@ msgstr "ファーウェイ"
#: assets/const/device.py:9 #: assets/const/device.py:9
msgid "H3C" msgid "H3C"
msgstr "" msgstr "H3C"
#: assets/const/device.py:10 #: assets/const/device.py:10
msgid "Juniper" msgid "Juniper"
msgstr "" msgstr "Juniper"
#: assets/const/device.py:11 #: assets/const/device.py:11
msgid "TP-Link" msgid "TP-Link"
msgstr "" msgstr "TP-Link"
#: assets/const/device.py:12 assets/const/ds.py:7 #: assets/const/device.py:12 assets/const/ds.py:7
#: terminal/models/applet/applet.py:27 tickets/const.py:9 #: terminal/models/applet/applet.py:27 tickets/const.py:9
@ -2337,7 +2378,7 @@ msgstr "ファイアウォール"
msgid "Windows Active Directory" msgid "Windows Active Directory"
msgstr "Windows アクティブディレクトリ" msgstr "Windows アクティブディレクトリ"
#: assets/const/gpt.py:7 #: assets/const/gpt.py:8
msgid "ChatGPT" msgid "ChatGPT"
msgstr "ChatGPT" msgstr "ChatGPT"
@ -2456,7 +2497,7 @@ msgstr "暗号化された"
#: assets/const/protocol.py:202 #: assets/const/protocol.py:202
msgid "Whether to use TLS encryption." msgid "Whether to use TLS encryption."
msgstr "" msgstr "TLS暗号化を使用しますか。"
#: assets/const/protocol.py:232 #: assets/const/protocol.py:232
msgid "Auth source" msgid "Auth source"
@ -2548,7 +2589,7 @@ msgstr "アドレス"
#: assets/models/asset/common.py:169 assets/models/platform.py:155 #: assets/models/asset/common.py:169 assets/models/platform.py:155
#: assets/serializers/asset/common.py:151 #: assets/serializers/asset/common.py:151
#: authentication/backends/passkey/models.py:12 #: authentication/backends/passkey/models.py:12
#: authentication/serializers/connect_token_secret.py:122 #: authentication/serializers/connect_token_secret.py:130
#: perms/serializers/user_permission.py:26 xpack/plugins/cloud/models.py:399 #: perms/serializers/user_permission.py:26 xpack/plugins/cloud/models.py:399
msgid "Platform" msgid "Platform"
msgstr "プラットフォーム" msgstr "プラットフォーム"
@ -2741,7 +2782,7 @@ msgstr "システム"
#: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18 #: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18
#: assets/serializers/cagegory.py:24 #: assets/serializers/cagegory.py:24
#: authentication/models/connection_token.py:35 #: authentication/models/connection_token.py:35
#: authentication/serializers/connect_token_secret.py:129 #: authentication/serializers/connect_token_secret.py:137
#: common/serializers/common.py:86 labels/models.py:12 settings/models.py:40 #: common/serializers/common.py:86 labels/models.py:12 settings/models.py:40
#: users/models/preference.py:13 #: users/models/preference.py:13
msgid "Value" msgid "Value"
@ -2750,7 +2791,7 @@ msgstr "値"
#: assets/models/label.py:40 assets/serializers/cagegory.py:10 #: assets/models/label.py:40 assets/serializers/cagegory.py:10
#: assets/serializers/cagegory.py:17 assets/serializers/cagegory.py:23 #: assets/serializers/cagegory.py:17 assets/serializers/cagegory.py:23
#: assets/serializers/platform.py:159 #: assets/serializers/platform.py:159
#: authentication/serializers/connect_token_secret.py:128 #: authentication/serializers/connect_token_secret.py:136
#: common/serializers/common.py:85 labels/serializers.py:45 #: common/serializers/common.py:85 labels/serializers.py:45
#: settings/serializers/msg.py:91 xpack/plugins/cloud/models.py:404 #: settings/serializers/msg.py:91 xpack/plugins/cloud/models.py:404
msgid "Label" msgid "Label"
@ -2801,7 +2842,7 @@ msgid "Required"
msgstr "必要" msgstr "必要"
#: assets/models/platform.py:19 assets/serializers/platform.py:161 #: assets/models/platform.py:19 assets/serializers/platform.py:161
#: terminal/models/component/storage.py:28 #: terminal/models/component/storage.py:28 users/const.py:42
#: xpack/plugins/cloud/providers/nutanix.py:30 #: xpack/plugins/cloud/providers/nutanix.py:30
msgid "Default" msgid "Default"
msgstr "デフォルト" msgstr "デフォルト"
@ -3076,7 +3117,7 @@ msgid "Disk total"
msgstr "ディスクの合計" msgstr "ディスクの合計"
#: assets/serializers/asset/info/gathered.py:16 #: assets/serializers/asset/info/gathered.py:16
#: authentication/serializers/connect_token_secret.py:119 #: authentication/serializers/connect_token_secret.py:127
msgid "OS" msgid "OS"
msgstr "OS" msgstr "OS"
@ -3364,7 +3405,7 @@ msgstr "Rmdir"
#: audits/const.py:14 audits/const.py:25 #: audits/const.py:14 audits/const.py:25
#: authentication/templates/authentication/_access_key_modal.html:65 #: authentication/templates/authentication/_access_key_modal.html:65
#: rbac/tree.py:292 #: rbac/tree.py:293
msgid "Delete" msgid "Delete"
msgstr "削除" msgstr "削除"
@ -3390,7 +3431,7 @@ msgstr "ダウンロード"
msgid "Rename dir" msgid "Rename dir"
msgstr "マップディレクトリ" msgstr "マップディレクトリ"
#: audits/const.py:23 rbac/tree.py:290 terminal/api/session/session.py:285 #: audits/const.py:23 rbac/tree.py:291 terminal/api/session/session.py:285
#: terminal/templates/terminal/_msg_session_sharing.html:10 #: terminal/templates/terminal/_msg_session_sharing.html:10
#: xpack/plugins/cloud/manager.py:102 #: xpack/plugins/cloud/manager.py:102
msgid "View" msgid "View"
@ -3398,7 +3439,7 @@ msgstr "表示"
#: audits/const.py:26 #: audits/const.py:26
#: authentication/templates/authentication/_access_key_modal.html:22 #: authentication/templates/authentication/_access_key_modal.html:22
#: rbac/tree.py:289 #: rbac/tree.py:290
msgid "Create" msgid "Create"
msgstr "作成" msgstr "作成"
@ -3551,7 +3592,7 @@ msgid "MFA"
msgstr "MFA" msgstr "MFA"
#: audits/models.py:219 terminal/models/session/sharing.py:123 #: audits/models.py:219 terminal/models/session/sharing.py:123
#: xpack/plugins/cloud/manager.py:187 xpack/plugins/cloud/models.py:237 #: xpack/plugins/cloud/manager.py:186 xpack/plugins/cloud/models.py:237
msgid "Reason" msgid "Reason"
msgstr "理由" msgstr "理由"
@ -3803,6 +3844,10 @@ msgstr "ユーザーは {}からです。対応するシステムにアクセス
msgid "Forgot password" msgid "Forgot password"
msgstr "パスワードを忘れた" msgstr "パスワードを忘れた"
#: authentication/api/password.py:70 authentication/mfa/email.py:42
msgid "The validity period of the verification code is {} minute"
msgstr "認証コードの有効時間は {} 分"
#: authentication/apps.py:7 #: authentication/apps.py:7
msgid "App Authentication" msgid "App Authentication"
msgstr "認証" msgstr "認証"
@ -4210,7 +4255,7 @@ msgid "Input secret"
msgstr "カスタムパスワード" msgstr "カスタムパスワード"
#: authentication/models/connection_token.py:47 #: authentication/models/connection_token.py:47
#: authentication/serializers/connect_token_secret.py:118 #: authentication/serializers/connect_token_secret.py:126
#: terminal/models/applet/applet.py:43 #: terminal/models/applet/applet.py:43
#: terminal/models/virtualapp/virtualapp.py:24 #: terminal/models/virtualapp/virtualapp.py:24
#: terminal/serializers/session.py:31 terminal/serializers/session.py:58 #: terminal/serializers/session.py:31 terminal/serializers/session.py:58
@ -4273,15 +4318,15 @@ msgstr "ユーザーなしまたは期限切れのユーザー"
msgid "No asset or inactive asset" msgid "No asset or inactive asset"
msgstr "アセットがないか、有効化されていないアセット" msgstr "アセットがないか、有効化されていないアセット"
#: authentication/models/connection_token.py:348 #: authentication/models/connection_token.py:360
msgid "Can view super connection token secret" msgid "Can view super connection token secret"
msgstr "スーパー接続トークンのシークレットを表示できます" msgstr "スーパー接続トークンのシークレットを表示できます"
#: authentication/models/connection_token.py:350 #: authentication/models/connection_token.py:362
msgid "Super connection token" msgid "Super connection token"
msgstr "スーパー接続トークン" msgstr "スーパー接続トークン"
#: authentication/models/connection_token.py:367 #: authentication/models/connection_token.py:379
msgid "Admin connection token" msgid "Admin connection token"
msgstr "管理者接続トークン" msgstr "管理者接続トークン"
@ -4333,38 +4378,38 @@ msgstr "OAuth ID"
msgid "binding reminder" msgid "binding reminder"
msgstr "バインディングリマインダー" msgstr "バインディングリマインダー"
#: authentication/serializers/connect_token_secret.py:120 #: authentication/serializers/connect_token_secret.py:128
msgid "Is builtin" msgid "Is builtin"
msgstr "ビルトイン" msgstr "ビルトイン"
#: authentication/serializers/connect_token_secret.py:124 #: authentication/serializers/connect_token_secret.py:132
msgid "Options" msgid "Options"
msgstr "オプション" msgstr "オプション"
#: authentication/serializers/connect_token_secret.py:131 #: authentication/serializers/connect_token_secret.py:139
#: ops/notifications.py:19 rbac/tree.py:63 #: ops/notifications.py:19 rbac/tree.py:63
msgid "Component" msgid "Component"
msgstr "コンポーネント" msgstr "コンポーネント"
#: authentication/serializers/connect_token_secret.py:140 #: authentication/serializers/connect_token_secret.py:148
msgid "Domain" msgid "Domain"
msgstr "ドメイン" msgstr "ドメイン"
#: authentication/serializers/connect_token_secret.py:142 #: authentication/serializers/connect_token_secret.py:151
msgid "Expired now" msgid "Expired now"
msgstr "すぐに期限切れ" msgstr "すぐに期限切れ"
#: authentication/serializers/connect_token_secret.py:175 #: authentication/serializers/connect_token_secret.py:184
#: terminal/models/virtualapp/virtualapp.py:25 #: terminal/models/virtualapp/virtualapp.py:25
msgid "Image name" msgid "Image name"
msgstr "ミラー名" msgstr "ミラー名"
#: authentication/serializers/connect_token_secret.py:176 #: authentication/serializers/connect_token_secret.py:185
#: terminal/models/virtualapp/virtualapp.py:27 #: terminal/models/virtualapp/virtualapp.py:27
msgid "Image port" msgid "Image port"
msgstr "ミラーポート" msgstr "ミラーポート"
#: authentication/serializers/connect_token_secret.py:177 #: authentication/serializers/connect_token_secret.py:186
#: terminal/models/virtualapp/virtualapp.py:26 #: terminal/models/virtualapp/virtualapp.py:26
msgid "Image protocol" msgid "Image protocol"
msgstr "ミラープロトコル" msgstr "ミラープロトコル"
@ -4472,13 +4517,13 @@ msgid "Show"
msgstr "表示" msgstr "表示"
#: authentication/templates/authentication/_access_key_modal.html:66 #: authentication/templates/authentication/_access_key_modal.html:66
#: settings/serializers/terminal.py:24 users/const.py:42 #: settings/serializers/terminal.py:24 users/const.py:48
#: users/templates/users/user_verify_mfa.html:36 #: users/templates/users/user_verify_mfa.html:36
msgid "Disable" msgid "Disable"
msgstr "無効化" msgstr "無効化"
#: authentication/templates/authentication/_access_key_modal.html:67 #: authentication/templates/authentication/_access_key_modal.html:67
#: settings/serializers/terminal.py:24 users/const.py:43 #: settings/serializers/terminal.py:24 users/const.py:49
#: users/templates/users/mfa_setting.html:120 #: users/templates/users/mfa_setting.html:120
#: users/templates/users/mfa_setting.html:158 #: users/templates/users/mfa_setting.html:158
#: users/templates/users/mfa_setting.html:177 #: users/templates/users/mfa_setting.html:177
@ -4537,16 +4582,11 @@ msgid ""
"account password in time." "account password in time."
msgstr "ログイン動作が異常であると疑われる場合は、時間内にアカウントのパスワードを変更してください。" msgstr "ログイン動作が異常であると疑われる場合は、時間内にアカウントのパスワードを変更してください。"
#: authentication/templates/authentication/_msg_mfa_email_code.html:15
#: authentication/templates/authentication/_msg_reset_password_code.html:18
msgid "The validity period of the verification code is one minute"
msgstr "認証コードの有効時間は 1 分"
#: authentication/templates/authentication/_msg_oauth_bind.html:6 #: authentication/templates/authentication/_msg_oauth_bind.html:6
msgid "Your account has just been bound to" msgid "Your account has just been bound to"
msgstr "アカウントはにバインドされています" msgstr "アカウントはにバインドされています"
#: authentication/templates/authentication/_msg_oauth_bind.html:17 #: authentication/templates/authentication/_msg_oauth_bind.html:15
msgid "If the operation is not your own, unbind and change the password." msgid "If the operation is not your own, unbind and change the password."
msgstr "操作が独自のものでない場合は、パスワードをバインド解除して変更します。" msgstr "操作が独自のものでない場合は、パスワードをバインド解除して変更します。"
@ -4887,7 +4927,7 @@ msgstr "エンタープライズプロフェッショナル版"
msgid "Ultimate edition" msgid "Ultimate edition"
msgstr "エンタープライズ・フラッグシップ・エディション" msgstr "エンタープライズ・フラッグシップ・エディション"
#: common/const/common.py:5 xpack/plugins/cloud/manager.py:452 #: common/const/common.py:5 xpack/plugins/cloud/manager.py:451
#, python-format #, python-format
msgid "%(name)s was created successfully" msgid "%(name)s was created successfully"
msgstr "%(name)s が正常に作成されました" msgstr "%(name)s が正常に作成されました"
@ -5255,11 +5295,11 @@ msgid ""
msgstr "" msgstr ""
"アカウントのパスワードを変更したり、アカウントのバックアップが添付ファイルを生成したりすると、メールと添付ファイルを送信するためのタスクを実行する必要があります" "アカウントのパスワードを変更したり、アカウントのバックアップが添付ファイルを生成したりすると、メールと添付ファイルを送信するためのタスクを実行する必要があります"
#: common/tasks.py:107 #: common/tasks.py:104
msgid "Upload account backup to external storage" msgid "Upload account backup to external storage"
msgstr " セッション映像を外部ストレージにアップロードする" msgstr " セッション映像を外部ストレージにアップロードする"
#: common/tasks.py:109 #: common/tasks.py:106
msgid "" msgid ""
"When performing an account backup, this task needs to be executed to " "When performing an account backup, this task needs to be executed to "
"external storage (SFTP)" "external storage (SFTP)"
@ -5668,7 +5708,7 @@ msgstr "* 有効なcrontab式を入力してください"
#: ops/mixin.py:194 #: ops/mixin.py:194
msgid "Crontab minute must not contain '*'" msgid "Crontab minute must not contain '*'"
msgstr "" msgstr "Crontabの分は「*」を含めることができません。"
#: ops/mixin.py:208 settings/serializers/auth/mixin.py:12 #: ops/mixin.py:208 settings/serializers/auth/mixin.py:12
msgid "Require interval or crontab setting" msgid "Require interval or crontab setting"
@ -6428,7 +6468,7 @@ msgid "Storage"
msgstr "ストレージ" msgstr "ストレージ"
#: rbac/tree.py:64 terminal/models/applet/applet.py:53 #: rbac/tree.py:64 terminal/models/applet/applet.py:53
#: terminal/models/applet/applet.py:371 terminal/models/applet/host.py:30 #: terminal/models/applet/applet.py:379 terminal/models/applet/host.py:30
#: terminal/serializers/applet.py:16 #: terminal/serializers/applet.py:16
msgid "Applet" msgid "Applet"
msgstr "リモートアプリケーション" msgstr "リモートアプリケーション"
@ -6450,24 +6490,24 @@ msgstr "作業監査"
msgid "Report" msgid "Report"
msgstr "レポート" msgstr "レポート"
#: rbac/tree.py:181 #: rbac/tree.py:182
msgid "App organizations" msgid "App organizations"
msgstr "アプリ組織" msgstr "アプリ組織"
#: rbac/tree.py:182 #: rbac/tree.py:183
msgid "Ticket comment" msgid "Ticket comment"
msgstr "チケットコメント" msgstr "チケットコメント"
#: rbac/tree.py:183 settings/serializers/feature.py:174 #: rbac/tree.py:184 settings/serializers/feature.py:174
#: settings/serializers/feature.py:176 tickets/models/ticket/general.py:310 #: settings/serializers/feature.py:176 tickets/models/ticket/general.py:310
msgid "Ticket" msgid "Ticket"
msgstr "チケット" msgstr "チケット"
#: rbac/tree.py:184 #: rbac/tree.py:185
msgid "Common setting" msgid "Common setting"
msgstr "共通設定" msgstr "共通設定"
#: rbac/tree.py:185 #: rbac/tree.py:186
msgid "View permission tree" msgid "View permission tree"
msgstr "権限ツリーの表示" msgstr "権限ツリーの表示"
@ -6511,6 +6551,14 @@ msgstr "PAMダッシュボード"
msgid "ChangeSecretDashboard" msgid "ChangeSecretDashboard"
msgstr "アカウントパスワード変更ダッシュボード" msgstr "アカウントパスワード変更ダッシュボード"
#: reports/views.py:181
msgid "Failed to send email: "
msgstr "メール送信失敗"
#: reports/views.py:182
msgid "Email sent successfully to "
msgstr "メール送信成功"
#: settings/api/chat.py:41 #: settings/api/chat.py:41
msgid "Chat AI is not enabled" msgid "Chat AI is not enabled"
msgstr "チャットAIがオンになっていない" msgstr "チャットAIがオンになっていない"
@ -6548,7 +6596,7 @@ msgstr "設定"
#: settings/const.py:13 #: settings/const.py:13
msgid "Embed" msgid "Embed"
msgstr "" msgstr "埋め込み"
#: settings/models.py:42 users/models/preference.py:14 #: settings/models.py:42 users/models/preference.py:14
msgid "Encrypted" msgid "Encrypted"
@ -6800,7 +6848,7 @@ msgstr ""
#: settings/serializers/auth/lark.py:13 users/models/user/_source.py:24 #: settings/serializers/auth/lark.py:13 users/models/user/_source.py:24
msgid "Lark" msgid "Lark"
msgstr "" msgstr "Lark"
#: settings/serializers/auth/lark.py:19 #: settings/serializers/auth/lark.py:19
msgid "" msgid ""
@ -6980,7 +7028,7 @@ msgstr "常にユーザーを更新"
#: settings/serializers/auth/oidc.py:13 settings/serializers/auth/oidc.py:71 #: settings/serializers/auth/oidc.py:13 settings/serializers/auth/oidc.py:71
msgid "OIDC" msgid "OIDC"
msgstr "" msgstr "OIDC"
#: settings/serializers/auth/oidc.py:17 #: settings/serializers/auth/oidc.py:17
msgid "Base site URL" msgid "Base site URL"
@ -7044,6 +7092,8 @@ msgid ""
"The issuer URL of the OpenID Provider, used to discover its configuration " "The issuer URL of the OpenID Provider, used to discover its configuration "
"via the `$PROVIDER_ENDPOINT/.well-known/openid-configuration` endpoint." "via the `$PROVIDER_ENDPOINT/.well-known/openid-configuration` endpoint."
msgstr "" msgstr ""
"OpenIDプロバイダーの発行者URLは、\"$PROVIDER_ENDPOINT/.well-known/openid-"
"configuration\"エンドポイントを介してその構成を発見するために使用されます。"
#: settings/serializers/auth/oidc.py:87 #: settings/serializers/auth/oidc.py:87
msgid "JWKS endpoint" msgid "JWKS endpoint"
@ -7397,7 +7447,7 @@ msgid "Tenant ID"
msgstr "テナントID" msgstr "テナントID"
#: settings/serializers/feature.py:112 terminal/serializers/storage.py:68 #: settings/serializers/feature.py:112 terminal/serializers/storage.py:68
#: xpack/plugins/cloud/manager.py:119 xpack/plugins/cloud/manager.py:124 #: xpack/plugins/cloud/manager.py:119 xpack/plugins/cloud/manager.py:123
#: xpack/plugins/cloud/models.py:293 #: xpack/plugins/cloud/models.py:293
msgid "Region" msgid "Region"
msgstr "リージョン" msgstr "リージョン"
@ -8188,7 +8238,7 @@ msgstr "更新テンプレートのダウンロード"
#: templates/_foot_js.html:30 #: templates/_foot_js.html:30
msgid "Page footer" msgid "Page footer"
msgstr "" msgstr "フッター"
#: templates/_header_bar.html:12 #: templates/_header_bar.html:12
msgid "Help" msgid "Help"
@ -8296,7 +8346,7 @@ msgid ""
msgstr "外部サイトに転送されますので、そのリンクを信頼できることを確認してください。" msgstr "外部サイトに転送されますので、そのリンクを信頼できることを確認してください。"
#: templates/resource_download.html:20 templates/resource_download.html:35 #: templates/resource_download.html:20 templates/resource_download.html:35
#: users/const.py:78 #: users/const.py:84
msgid "Client" msgid "Client"
msgstr "クライアント" msgstr "クライアント"
@ -8580,12 +8630,12 @@ msgstr "カスタムプラットフォームのみをサポート"
msgid "Missing type in platform.yml" msgid "Missing type in platform.yml"
msgstr "platform.ymlにタイプがありません" msgstr "platform.ymlにタイプがありません"
#: terminal/models/applet/applet.py:373 terminal/models/applet/host.py:36 #: terminal/models/applet/applet.py:381 terminal/models/applet/host.py:36
#: terminal/models/applet/host.py:138 #: terminal/models/applet/host.py:138
msgid "Hosting" msgid "Hosting"
msgstr "ホスト マシン" msgstr "ホスト マシン"
#: terminal/models/applet/applet.py:379 #: terminal/models/applet/applet.py:387
msgid "Applet Publication" msgid "Applet Publication"
msgstr "アプリケーションのリリース" msgstr "アプリケーションのリリース"
@ -8735,7 +8785,7 @@ msgstr "ユーザーの適用"
msgid "Can view terminal config" msgid "Can view terminal config"
msgstr "ターミナル構成を表示できます" msgstr "ターミナル構成を表示できます"
#: terminal/models/session/command.py:76 #: terminal/models/session/command.py:77
msgid "Command record" msgid "Command record"
msgstr "コマンドレコード" msgstr "コマンドレコード"
@ -9643,11 +9693,11 @@ msgstr "新しいチケットがあります- {}"
msgid "{}: New Ticket - {} ({})" msgid "{}: New Ticket - {} ({})"
msgstr "新しいチケット- {} ({})" msgstr "新しいチケット- {} ({})"
#: tickets/notifications.py:160 #: tickets/notifications.py:168
msgid "Your ticket has been processed, processor - {}" msgid "Your ticket has been processed, processor - {}"
msgstr "チケットが処理されました。プロセッサー- {}" msgstr "チケットが処理されました。プロセッサー- {}"
#: tickets/notifications.py:164 #: tickets/notifications.py:172
msgid "Ticket has processed - {} ({})" msgid "Ticket has processed - {} ({})"
msgstr "チケットが処理済み- {} ({})" msgstr "チケットが処理済み- {} ({})"
@ -9802,23 +9852,31 @@ msgstr "現在のウィンドウ"
msgid "New window" msgid "New window"
msgstr "新しいウィンドウ" msgstr "新しいウィンドウ"
#: users/const.py:47 #: users/const.py:43
msgid "Dark gray"
msgstr "ダークグレー"
#: users/const.py:44
msgid "Deep blue"
msgstr "ダークブルー"
#: users/const.py:53
msgid "High32 bit" msgid "High32 bit"
msgstr "高い32 bit" msgstr "高い32 bit"
#: users/const.py:48 #: users/const.py:54
msgid "True Color24 bit" msgid "True Color24 bit"
msgstr "" msgstr "フルカラー24ビット"
#: users/const.py:49 #: users/const.py:55
msgid "Medium16 bit" msgid "Medium16 bit"
msgstr "真ん中16 bit" msgstr "真ん中16 bit"
#: users/const.py:82 #: users/const.py:88
msgid "Replace" msgid "Replace"
msgstr "置換" msgstr "置換"
#: users/const.py:83 #: users/const.py:89
msgid "Suffix" msgid "Suffix"
msgstr "接尾辞を付ける" msgstr "接尾辞を付ける"
@ -10031,7 +10089,7 @@ msgstr "SSHキーのリセット"
#: users/notifications.py:253 #: users/notifications.py:253
msgid "Update SSH Key url" msgid "Update SSH Key url"
msgstr "" msgstr "SSHキーの更新アドレス"
#: users/notifications.py:276 #: users/notifications.py:276
msgid "Reset MFA" msgid "Reset MFA"
@ -10042,12 +10100,12 @@ msgid "Reset MFA url"
msgstr "MFAリセットのURL" msgstr "MFAリセットのURL"
#: users/serializers/preference/koko.py:10 #: users/serializers/preference/koko.py:10
#: users/serializers/preference/luna.py:63 #: users/serializers/preference/luna.py:67
msgid "File name conflict resolution" msgid "File name conflict resolution"
msgstr "ファイル名競合ソリューション" msgstr "ファイル名競合ソリューション"
#: users/serializers/preference/koko.py:14 #: users/serializers/preference/koko.py:14
#: users/serializers/preference/luna.py:80 #: users/serializers/preference/luna.py:84
msgid "Terminal theme name" msgid "Terminal theme name"
msgstr "ターミナルテーマ名" msgstr "ターミナルテーマ名"
@ -10079,27 +10137,33 @@ msgstr "非同期ロード資産ツリー"
msgid "Connect default open method" msgid "Connect default open method"
msgstr "デフォルトの接続オープン方法" msgstr "デフォルトの接続オープン方法"
#: users/serializers/preference/luna.py:37 #: users/serializers/preference/luna.py:34
#: xpack/plugins/interface/models.py:41
#: xpack/plugins/interface/serializers/interface.py:26
msgid "Theme"
msgstr "テーマ"
#: users/serializers/preference/luna.py:41
msgid "RDP resolution" msgid "RDP resolution"
msgstr "RDP 解像度" msgstr "RDP 解像度"
#: users/serializers/preference/luna.py:41 #: users/serializers/preference/luna.py:45
msgid "Keyboard layout" msgid "Keyboard layout"
msgstr "キーボードレイアウト" msgstr "キーボードレイアウト"
#: users/serializers/preference/luna.py:45 #: users/serializers/preference/luna.py:49
msgid "RDP client option" msgid "RDP client option"
msgstr "RDPクライアントオプション" msgstr "RDPクライアントオプション"
#: users/serializers/preference/luna.py:49 #: users/serializers/preference/luna.py:53
msgid "RDP color quality" msgid "RDP color quality"
msgstr "RDP の色品質" msgstr "RDP の色品質"
#: users/serializers/preference/luna.py:53 #: users/serializers/preference/luna.py:57
msgid "RDP smart size" msgid "RDP smart size"
msgstr "RDP スマート サイズ" msgstr "RDP スマート サイズ"
#: users/serializers/preference/luna.py:54 #: users/serializers/preference/luna.py:58
msgid "" msgid ""
"Determines whether the client computer should scale the content on the " "Determines whether the client computer should scale the content on the "
"remote computer to fit the window size of the client computer when the " "remote computer to fit the window size of the client computer when the "
@ -10115,27 +10179,27 @@ msgstr ""
# "ウィンドウサイズを変更するときにクライアントコンピュータがクライアントコン" # "ウィンドウサイズを変更するときにクライアントコンピュータがクライアントコン"
# "ピュータのウィンドウサイズに合わせるためにリモートコンピュータ上のコンテンツ" # "ピュータのウィンドウサイズに合わせるためにリモートコンピュータ上のコンテンツ"
# "をスケーリングすべきかどうかを判断する" # "をスケーリングすべきかどうかを判断する"
#: users/serializers/preference/luna.py:59 #: users/serializers/preference/luna.py:63
msgid "Remote app connect method" msgid "Remote app connect method"
msgstr "リモートアプリケーション接続方式" msgstr "リモートアプリケーション接続方式"
#: users/serializers/preference/luna.py:70 #: users/serializers/preference/luna.py:74
msgid "Terminal font size" msgid "Terminal font size"
msgstr "文字終端フォントサイズ" msgstr "文字終端フォントサイズ"
#: users/serializers/preference/luna.py:73 #: users/serializers/preference/luna.py:77
msgid "Backspace as Ctrl+H" msgid "Backspace as Ctrl+H"
msgstr "文字終端Backspace As Ctrl+H" msgstr "文字終端Backspace As Ctrl+H"
#: users/serializers/preference/luna.py:76 #: users/serializers/preference/luna.py:80
msgid "Right click quickly paste" msgid "Right click quickly paste"
msgstr "右クリックでクイック貼り付け" msgstr "右クリックでクイック貼り付け"
#: users/serializers/preference/luna.py:86 #: users/serializers/preference/luna.py:90
msgid "Graphics" msgid "Graphics"
msgstr "図形化" msgstr "図形化"
#: users/serializers/preference/luna.py:87 #: users/serializers/preference/luna.py:91
msgid "Command line" msgid "Command line"
msgstr "コマンドライン" msgstr "コマンドライン"
@ -10695,7 +10759,7 @@ msgstr "ZStack"
#: xpack/plugins/cloud/const.py:30 xpack/plugins/cloud/providers/smartx.py:9 #: xpack/plugins/cloud/const.py:30 xpack/plugins/cloud/providers/smartx.py:9
msgid "SmartX CloudTower" msgid "SmartX CloudTower"
msgstr "" msgstr "SmartXクラウドタワー"
#: xpack/plugins/cloud/const.py:31 #: xpack/plugins/cloud/const.py:31
msgid "Fusion Compute" msgid "Fusion Compute"
@ -10798,64 +10862,64 @@ msgstr "タスク実行完了"
msgid "Synchronization regions" msgid "Synchronization regions"
msgstr "地域を同期する" msgstr "地域を同期する"
#: xpack/plugins/cloud/manager.py:141 #: xpack/plugins/cloud/manager.py:140
#, python-format #, python-format
msgid "Get instances of region \"%s\" error, error: %s" msgid "Get instances of region \"%s\" error, error: %s"
msgstr "地域 \"%s\" のインスタンスを取得できませんでした、エラー:%s" msgstr "地域 \"%s\" のインスタンスを取得できませんでした、エラー:%s"
#: xpack/plugins/cloud/manager.py:186 #: xpack/plugins/cloud/manager.py:185
#, python-format #, python-format
msgid "Failed to synchronize the instance \"%s\"" msgid "Failed to synchronize the instance \"%s\""
msgstr "インスタンス \"%s\" の同期に失敗しました" msgstr "インスタンス \"%s\" の同期に失敗しました"
#: xpack/plugins/cloud/manager.py:377 #: xpack/plugins/cloud/manager.py:376
#, python-format #, python-format
msgid "" msgid ""
"The updated platform of asset \"%s\" is inconsistent with the original " "The updated platform of asset \"%s\" is inconsistent with the original "
"platform type. Skip platform and protocol updates" "platform type. Skip platform and protocol updates"
msgstr "更新された資産 \"%s\" のプラットフォームタイプと元のタイプは一致しません。プラットフォームとプロトコルの更新をスキップ" msgstr "更新された資産 \"%s\" のプラットフォームタイプと元のタイプは一致しません。プラットフォームとプロトコルの更新をスキップ"
#: xpack/plugins/cloud/manager.py:434 #: xpack/plugins/cloud/manager.py:433
#, python-format #, python-format
msgid "The asset \"%s\" already exists" msgid "The asset \"%s\" already exists"
msgstr "資産 \"%s\" はすでに存在します" msgstr "資産 \"%s\" はすでに存在します"
#: xpack/plugins/cloud/manager.py:436 #: xpack/plugins/cloud/manager.py:435
#, python-format #, python-format
msgid "Update asset \"%s\"" msgid "Update asset \"%s\""
msgstr "資産の更新 \"%s\"" msgstr "資産の更新 \"%s\""
#: xpack/plugins/cloud/manager.py:439 #: xpack/plugins/cloud/manager.py:438
#, python-format #, python-format
msgid "Asset \"%s\" has been updated" msgid "Asset \"%s\" has been updated"
msgstr "資産 \"%s\" が更新されました" msgstr "資産 \"%s\" が更新されました"
#: xpack/plugins/cloud/manager.py:448 #: xpack/plugins/cloud/manager.py:447
#, python-format #, python-format
msgid "Prepare to create asset \"%s\"" msgid "Prepare to create asset \"%s\""
msgstr "資産 \"%s\" の作成準備" msgstr "資産 \"%s\" の作成準備"
#: xpack/plugins/cloud/manager.py:469 #: xpack/plugins/cloud/manager.py:468
#, python-format #, python-format
msgid "Set nodes \"%s\"" msgid "Set nodes \"%s\""
msgstr "ノードを設定する \"%s\"" msgstr "ノードを設定する \"%s\""
#: xpack/plugins/cloud/manager.py:495 #: xpack/plugins/cloud/manager.py:494
#, python-format #, python-format
msgid "Set accounts \"%s\"" msgid "Set accounts \"%s\""
msgstr "アカウントを設定する \"%s\"" msgstr "アカウントを設定する \"%s\""
#: xpack/plugins/cloud/manager.py:511 #: xpack/plugins/cloud/manager.py:510
#, python-format #, python-format
msgid "Set protocols \"%s\"" msgid "Set protocols \"%s\""
msgstr "プロトコル \"%s\" の設定" msgstr "プロトコル \"%s\" の設定"
#: xpack/plugins/cloud/manager.py:519 #: xpack/plugins/cloud/manager.py:518
#, python-format #, python-format
msgid "Set labels \"%s\"" msgid "Set labels \"%s\""
msgstr "ラベル設定: \"%s\"" msgstr "ラベル設定: \"%s\""
#: xpack/plugins/cloud/manager.py:533 xpack/plugins/cloud/tasks.py:31 #: xpack/plugins/cloud/manager.py:532 xpack/plugins/cloud/tasks.py:31
msgid "Run sync instance task" msgid "Run sync instance task"
msgstr "同期インスタンス タスクを実行する" msgstr "同期インスタンス タスクを実行する"
@ -11388,11 +11452,6 @@ msgstr "管理ページのロゴ"
msgid "Logout logo" msgid "Logout logo"
msgstr "ログアウト" msgstr "ログアウト"
#: xpack/plugins/interface/models.py:41
#: xpack/plugins/interface/serializers/interface.py:26
msgid "Theme"
msgstr "テーマ"
#: xpack/plugins/interface/models.py:42 #: xpack/plugins/interface/models.py:42
msgid "Footer content" msgid "Footer content"
msgstr "フッターの内容" msgstr "フッターの内容"
@ -11412,17 +11471,3 @@ msgstr "ライセンスのインポートに成功"
#: xpack/plugins/license/api.py:53 #: xpack/plugins/license/api.py:53
msgid "Invalid license" msgid "Invalid license"
msgstr "ライセンスが無効です" msgstr "ライセンスが無効です"
#~ msgid "Task execution id"
#~ msgstr "タスク実行ID"
#~ msgid "Respectful"
#~ msgstr "尊敬する"
#~ msgid ""
#~ "Hello! The following is the failure of changing the password of your assets "
#~ "or pushing the account. Please check and handle it in time."
#~ msgstr "こんにちは! アセットの変更またはアカウントのプッシュが失敗する状況は次のとおりです。 時間内に確認して対処してください。"
#~ msgid "EXCHANGE"
#~ msgstr "EXCHANGE"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-09-17 15:02+0800\n" "POT-Creation-Date: 2025-10-16 14:10+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
#: accounts/api/account/account.py:138 #: accounts/api/account/account.py:141
#: accounts/serializers/account/account.py:181 #: accounts/serializers/account/account.py:181
#: accounts/serializers/account/account.py:362 #: accounts/serializers/account/account.py:362
msgid "Account already exists" msgid "Account already exists"
@ -96,7 +96,7 @@ msgstr "계획 실행 종료"
#: accounts/automations/base/manager.py:119 #: accounts/automations/base/manager.py:119
msgid "Windows does not support SSH key authentication" msgid "Windows does not support SSH key authentication"
msgstr "" msgstr "Windows는 SSH 키 인증을 지원하지 않습니다."
#: accounts/automations/base/manager.py:123 #: accounts/automations/base/manager.py:123
msgid "Windows password cannot contain special characters like > ^" msgid "Windows password cannot contain special characters like > ^"
@ -210,7 +210,7 @@ msgstr "템플릿"
msgid "Skip" msgid "Skip"
msgstr "건너뛰기" msgstr "건너뛰기"
#: accounts/const/account.py:33 audits/const.py:24 rbac/tree.py:291 #: accounts/const/account.py:33 audits/const.py:24 rbac/tree.py:292
#: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6 #: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6
msgid "Update" msgid "Update"
msgstr "업데이트" msgstr "업데이트"
@ -576,17 +576,18 @@ msgstr "계정 활동"
#: accounts/serializers/account/service.py:29 #: accounts/serializers/account/service.py:29
#: accounts/serializers/account/virtual.py:20 acls/models/base.py:35 #: accounts/serializers/account/virtual.py:20 acls/models/base.py:35
#: acls/models/base.py:96 acls/models/command_acl.py:21 #: acls/models/base.py:96 acls/models/command_acl.py:21
#: acls/notifications.py:69 acls/serializers/base.py:35 #: acls/models/data_masking.py:20 acls/notifications.py:69
#: assets/models/asset/common.py:100 assets/models/asset/common.py:166 #: acls/serializers/base.py:35 assets/models/asset/common.py:100
#: assets/models/cmd_filter.py:21 assets/models/label.py:18 #: assets/models/asset/common.py:166 assets/models/cmd_filter.py:21
#: assets/models/platform.py:15 assets/models/platform.py:94 #: assets/models/label.py:18 assets/models/platform.py:15
#: assets/models/zone.py:19 assets/serializers/asset/common.py:174 #: assets/models/platform.py:94 assets/models/zone.py:19
#: assets/serializers/platform.py:158 assets/serializers/platform.py:283 #: assets/serializers/asset/common.py:174 assets/serializers/platform.py:158
#: assets/serializers/platform.py:283
#: authentication/backends/passkey/models.py:10 #: authentication/backends/passkey/models.py:10
#: authentication/models/ssh_key.py:12 authentication/notifications.py:17 #: authentication/models/ssh_key.py:12 authentication/notifications.py:17
#: authentication/notifications.py:56 #: authentication/notifications.py:56
#: authentication/serializers/connect_token_secret.py:117 #: authentication/serializers/connect_token_secret.py:125
#: authentication/serializers/connect_token_secret.py:174 labels/models.py:11 #: authentication/serializers/connect_token_secret.py:183 labels/models.py:11
#: ops/mixin.py:32 ops/models/adhoc.py:19 ops/models/celery.py:15 #: ops/mixin.py:32 ops/models/adhoc.py:19 ops/models/celery.py:15
#: ops/models/celery.py:81 ops/models/job.py:147 ops/models/playbook.py:28 #: ops/models/celery.py:81 ops/models/job.py:147 ops/models/playbook.py:28
#: ops/models/variable.py:9 ops/serializers/job.py:20 #: ops/models/variable.py:9 ops/serializers/job.py:20
@ -780,7 +781,7 @@ msgstr "종료 날짜"
#: assets/models/automations/base.py:137 #: assets/models/automations/base.py:137
#: assets/serializers/automations/base.py:47 audits/models.py:224 #: assets/serializers/automations/base.py:47 audits/models.py:224
#: audits/serializers.py:77 ops/models/base.py:49 ops/models/job.py:233 #: audits/serializers.py:77 ops/models/base.py:49 ops/models/job.py:233
#: terminal/models/applet/applet.py:374 terminal/models/applet/host.py:140 #: terminal/models/applet/applet.py:382 terminal/models/applet/host.py:140
#: terminal/models/component/status.py:30 #: terminal/models/component/status.py:30
#: terminal/models/virtualapp/virtualapp.py:99 #: terminal/models/virtualapp/virtualapp.py:99
#: terminal/serializers/applet.py:19 terminal/serializers/applet_host.py:163 #: terminal/serializers/applet.py:19 terminal/serializers/applet_host.py:163
@ -921,7 +922,7 @@ msgstr "계정 위험"
#: accounts/models/automations/check_account.py:119 #: accounts/models/automations/check_account.py:119
msgid "Slug" msgid "Slug"
msgstr "" msgstr "URL 식별자"
#: accounts/models/automations/check_account.py:125 #: accounts/models/automations/check_account.py:125
msgid "Check engine" msgid "Check engine"
@ -1037,7 +1038,7 @@ msgstr "암호 규칙"
#: accounts/models/base.py:69 assets/models/automations/base.py:28 #: accounts/models/base.py:69 assets/models/automations/base.py:28
#: assets/models/cmd_filter.py:39 assets/models/label.py:22 #: assets/models/cmd_filter.py:39 assets/models/label.py:22
#: authentication/serializers/connect_token_secret.py:121 #: authentication/serializers/connect_token_secret.py:129
#: terminal/models/applet/applet.py:41 #: terminal/models/applet/applet.py:41
#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:257 #: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:257
msgid "Is active" msgid "Is active"
@ -1209,7 +1210,7 @@ msgstr "카테고리"
#: assets/serializers/platform.py:160 assets/serializers/platform.py:172 #: assets/serializers/platform.py:160 assets/serializers/platform.py:172
#: audits/serializers.py:76 audits/serializers.py:196 #: audits/serializers.py:76 audits/serializers.py:196
#: authentication/models/connection_token.py:67 #: authentication/models/connection_token.py:67
#: authentication/serializers/connect_token_secret.py:130 #: authentication/serializers/connect_token_secret.py:138
#: ops/models/job.py:155 perms/serializers/user_permission.py:28 #: ops/models/job.py:155 perms/serializers/user_permission.py:28
#: terminal/models/applet/applet.py:40 terminal/models/component/storage.py:58 #: terminal/models/applet/applet.py:40 terminal/models/component/storage.py:58
#: terminal/models/component/storage.py:152 terminal/serializers/applet.py:30 #: terminal/models/component/storage.py:152 terminal/serializers/applet.py:30
@ -1234,7 +1235,7 @@ msgstr "디렉토리 서비스"
#: accounts/serializers/account/account.py:278 #: accounts/serializers/account/account.py:278
#, python-brace-format #, python-brace-format
msgid "Account already exists. Field(s): {fields} must be unique." msgid "Account already exists. Field(s): {fields} must be unique."
msgstr "" msgstr "계정이 이미 존재합니다. 필드: {fields}는 고유해야 합니다."
#: accounts/serializers/account/account.py:285 #: accounts/serializers/account/account.py:285
msgid "Has secret" msgid "Has secret"
@ -1281,7 +1282,7 @@ msgid "Spec info"
msgstr "특별 정보" msgstr "특별 정보"
#: accounts/serializers/account/account.py:493 #: accounts/serializers/account/account.py:493
#: authentication/serializers/connect_token_secret.py:164 #: authentication/serializers/connect_token_secret.py:173
#: authentication/templates/authentication/_access_key_modal.html:30 #: authentication/templates/authentication/_access_key_modal.html:30
#: perms/models/perm_node.py:21 users/serializers/group.py:33 #: perms/models/perm_node.py:21 users/serializers/group.py:33
msgid "ID" msgid "ID"
@ -1339,7 +1340,7 @@ msgstr "IP 화이트리스트"
#: assets/models/cmd_filter.py:88 common/db/models.py:36 #: assets/models/cmd_filter.py:88 common/db/models.py:36
#: ops/models/adhoc.py:25 ops/models/job.py:165 ops/models/playbook.py:31 #: ops/models/adhoc.py:25 ops/models/job.py:165 ops/models/playbook.py:31
#: rbac/models/role.py:37 settings/models.py:44 #: rbac/models/role.py:37 settings/models.py:44
#: terminal/models/applet/applet.py:46 terminal/models/applet/applet.py:375 #: terminal/models/applet/applet.py:46 terminal/models/applet/applet.py:383
#: terminal/models/applet/host.py:143 terminal/models/component/endpoint.py:29 #: terminal/models/applet/host.py:143 terminal/models/component/endpoint.py:29
#: terminal/models/component/endpoint.py:117 #: terminal/models/component/endpoint.py:117
#: terminal/models/session/session.py:44 #: terminal/models/session/session.py:44
@ -1833,7 +1834,7 @@ msgstr "우선순위 선택 범위는 1-100 (숫자가 작을수록 더 우선)"
#: acls/models/base.py:41 acls/serializers/base.py:57 #: acls/models/base.py:41 acls/serializers/base.py:57
#: assets/models/cmd_filter.py:81 audits/models.py:99 #: assets/models/cmd_filter.py:81 audits/models.py:99
#: audits/serializers.py:107 #: audits/serializers.py:107
#: authentication/serializers/connect_token_secret.py:123 #: authentication/serializers/connect_token_secret.py:131
#: authentication/templates/authentication/_access_key_modal.html:34 #: authentication/templates/authentication/_access_key_modal.html:34
#: perms/serializers/permission.py:63 perms/serializers/permission.py:85 #: perms/serializers/permission.py:63 perms/serializers/permission.py:85
#: terminal/backends/command/models.py:24 #: terminal/backends/command/models.py:24
@ -1842,7 +1843,7 @@ msgid "Action"
msgstr "행동" msgstr "행동"
#: acls/models/base.py:42 assets/models/cmd_filter.py:86 #: acls/models/base.py:42 assets/models/cmd_filter.py:86
#: authentication/serializers/connect_token_secret.py:93 #: authentication/serializers/connect_token_secret.py:101
msgid "Reviewers" msgid "Reviewers"
msgstr "승인자" msgstr "승인자"
@ -1883,7 +1884,7 @@ msgstr "대소문자 무시"
#: acls/models/command_acl.py:33 acls/models/command_acl.py:97 #: acls/models/command_acl.py:33 acls/models/command_acl.py:97
#: acls/serializers/command_acl.py:29 #: acls/serializers/command_acl.py:29
#: authentication/serializers/connect_token_secret.py:90 #: authentication/serializers/connect_token_secret.py:98
#: terminal/templates/terminal/_msg_command_warning.html:23 #: terminal/templates/terminal/_msg_command_warning.html:23
msgid "Command group" msgid "Command group"
msgstr "명령 그룹" msgstr "명령 그룹"
@ -1909,6 +1910,38 @@ msgstr "연결 방식"
msgid "Connect method acl" msgid "Connect method acl"
msgstr "연결 방식 제어" msgstr "연결 방식 제어"
#: acls/models/data_masking.py:13
msgid "Fixed Character Replacement"
msgstr "고정 문자 교체"
#: acls/models/data_masking.py:14
msgid "Hide Middle Characters"
msgstr "중간 문자 숨기기"
#: acls/models/data_masking.py:15
msgid "Keep Prefix Only"
msgstr "접두사 유지"
#: acls/models/data_masking.py:16
msgid "Keep Suffix Only"
msgstr "접미사 유지"
#: acls/models/data_masking.py:21
msgid "Fields pattern"
msgstr "열 이름 가리기"
#: acls/models/data_masking.py:27 acls/serializers/data_masking.py:14
msgid "Masking Method"
msgstr "가리기 방법"
#: acls/models/data_masking.py:31
msgid "Mask Pattern"
msgstr "가리기 문자"
#: acls/models/data_masking.py:42
msgid "Data Masking Rule"
msgstr "데이터 마스킹 규칙"
#: acls/models/login_acl.py:11 acls/models/login_asset_acl.py:9 #: acls/models/login_acl.py:11 acls/models/login_asset_acl.py:9
#: acls/serializers/login_acl.py:16 acls/serializers/login_asset_acl.py:13 #: acls/serializers/login_acl.py:16 acls/serializers/login_asset_acl.py:13
msgid "Rule" msgid "Rule"
@ -1943,6 +1976,14 @@ msgstr "사용자 로그인 알림"
msgid "Login city" msgid "Login city"
msgstr "로그인 도시" msgstr "로그인 도시"
#: acls/notifications.py:20 acls/notifications.py:71
msgid "Recipient name"
msgstr "수령인명"
#: acls/notifications.py:21 acls/notifications.py:72
msgid "Recipient username"
msgstr "수령인 사용자 이름"
#: acls/notifications.py:22 acls/templates/acls/user_login_reminder.html:12 #: acls/notifications.py:22 acls/templates/acls/user_login_reminder.html:12
#: audits/models.py:213 audits/models.py:291 audits/serializers.py:91 #: audits/models.py:213 audits/models.py:291 audits/serializers.py:91
msgid "User agent" msgid "User agent"
@ -2238,7 +2279,7 @@ msgstr "비활성화"
#: assets/const/base.py:33 settings/serializers/basic.py:8 #: assets/const/base.py:33 settings/serializers/basic.py:8
#: users/serializers/preference/koko.py:19 #: users/serializers/preference/koko.py:19
#: users/serializers/preference/lina.py:51 #: users/serializers/preference/lina.py:51
#: users/serializers/preference/luna.py:85 #: users/serializers/preference/luna.py:89
msgid "Basic" msgid "Basic"
msgstr "기본" msgstr "기본"
@ -2266,7 +2307,7 @@ msgstr "클라우드 서비스"
#: assets/const/category.py:14 assets/models/asset/gpt.py:11 #: assets/const/category.py:14 assets/models/asset/gpt.py:11
#: assets/models/asset/web.py:16 audits/const.py:46 #: assets/models/asset/web.py:16 audits/const.py:46
#: terminal/models/applet/applet.py:28 users/const.py:77 #: terminal/models/applet/applet.py:28 users/const.py:83
msgid "Web" msgid "Web"
msgstr "웹" msgstr "웹"
@ -2296,15 +2337,15 @@ msgstr "화웨이"
#: assets/const/device.py:9 #: assets/const/device.py:9
msgid "H3C" msgid "H3C"
msgstr "" msgstr "H3C"
#: assets/const/device.py:10 #: assets/const/device.py:10
msgid "Juniper" msgid "Juniper"
msgstr "" msgstr "주니퍼"
#: assets/const/device.py:11 #: assets/const/device.py:11
msgid "TP-Link" msgid "TP-Link"
msgstr "" msgstr "TP-Link"
#: assets/const/device.py:12 assets/const/ds.py:7 #: assets/const/device.py:12 assets/const/ds.py:7
#: terminal/models/applet/applet.py:27 tickets/const.py:9 #: terminal/models/applet/applet.py:27 tickets/const.py:9
@ -2327,7 +2368,7 @@ msgstr "방화벽"
msgid "Windows Active Directory" msgid "Windows Active Directory"
msgstr "Windows 활동 디렉토리" msgstr "Windows 활동 디렉토리"
#: assets/const/gpt.py:7 #: assets/const/gpt.py:8
msgid "ChatGPT" msgid "ChatGPT"
msgstr "ChatGPT" msgstr "ChatGPT"
@ -2448,7 +2489,7 @@ msgstr "암호화된"
#: assets/const/protocol.py:202 #: assets/const/protocol.py:202
msgid "Whether to use TLS encryption." msgid "Whether to use TLS encryption."
msgstr "" msgstr "TLS 암호화를 사용할 것인지 여부."
#: assets/const/protocol.py:232 #: assets/const/protocol.py:232
msgid "Auth source" msgid "Auth source"
@ -2540,7 +2581,7 @@ msgstr "주소"
#: assets/models/asset/common.py:169 assets/models/platform.py:155 #: assets/models/asset/common.py:169 assets/models/platform.py:155
#: assets/serializers/asset/common.py:151 #: assets/serializers/asset/common.py:151
#: authentication/backends/passkey/models.py:12 #: authentication/backends/passkey/models.py:12
#: authentication/serializers/connect_token_secret.py:122 #: authentication/serializers/connect_token_secret.py:130
#: perms/serializers/user_permission.py:26 xpack/plugins/cloud/models.py:399 #: perms/serializers/user_permission.py:26 xpack/plugins/cloud/models.py:399
msgid "Platform" msgid "Platform"
msgstr "플랫폼" msgstr "플랫폼"
@ -2733,7 +2774,7 @@ msgstr "시스템"
#: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18 #: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18
#: assets/serializers/cagegory.py:24 #: assets/serializers/cagegory.py:24
#: authentication/models/connection_token.py:35 #: authentication/models/connection_token.py:35
#: authentication/serializers/connect_token_secret.py:129 #: authentication/serializers/connect_token_secret.py:137
#: common/serializers/common.py:86 labels/models.py:12 settings/models.py:40 #: common/serializers/common.py:86 labels/models.py:12 settings/models.py:40
#: users/models/preference.py:13 #: users/models/preference.py:13
msgid "Value" msgid "Value"
@ -2742,7 +2783,7 @@ msgstr "값"
#: assets/models/label.py:40 assets/serializers/cagegory.py:10 #: assets/models/label.py:40 assets/serializers/cagegory.py:10
#: assets/serializers/cagegory.py:17 assets/serializers/cagegory.py:23 #: assets/serializers/cagegory.py:17 assets/serializers/cagegory.py:23
#: assets/serializers/platform.py:159 #: assets/serializers/platform.py:159
#: authentication/serializers/connect_token_secret.py:128 #: authentication/serializers/connect_token_secret.py:136
#: common/serializers/common.py:85 labels/serializers.py:45 #: common/serializers/common.py:85 labels/serializers.py:45
#: settings/serializers/msg.py:91 xpack/plugins/cloud/models.py:404 #: settings/serializers/msg.py:91 xpack/plugins/cloud/models.py:404
msgid "Label" msgid "Label"
@ -2793,7 +2834,7 @@ msgid "Required"
msgstr "필수" msgstr "필수"
#: assets/models/platform.py:19 assets/serializers/platform.py:161 #: assets/models/platform.py:19 assets/serializers/platform.py:161
#: terminal/models/component/storage.py:28 #: terminal/models/component/storage.py:28 users/const.py:42
#: xpack/plugins/cloud/providers/nutanix.py:30 #: xpack/plugins/cloud/providers/nutanix.py:30
msgid "Default" msgid "Default"
msgstr "기본" msgstr "기본"
@ -3065,7 +3106,7 @@ msgid "Disk total"
msgstr "하드디스크 크기" msgstr "하드디스크 크기"
#: assets/serializers/asset/info/gathered.py:16 #: assets/serializers/asset/info/gathered.py:16
#: authentication/serializers/connect_token_secret.py:119 #: authentication/serializers/connect_token_secret.py:127
msgid "OS" msgid "OS"
msgstr "운영 체제" msgstr "운영 체제"
@ -3355,7 +3396,7 @@ msgstr "디렉터리 삭제"
#: audits/const.py:14 audits/const.py:25 #: audits/const.py:14 audits/const.py:25
#: authentication/templates/authentication/_access_key_modal.html:65 #: authentication/templates/authentication/_access_key_modal.html:65
#: rbac/tree.py:292 #: rbac/tree.py:293
msgid "Delete" msgid "Delete"
msgstr "삭제" msgstr "삭제"
@ -3381,7 +3422,7 @@ msgstr "다운로드"
msgid "Rename dir" msgid "Rename dir"
msgstr "디렉터리 매핑" msgstr "디렉터리 매핑"
#: audits/const.py:23 rbac/tree.py:290 terminal/api/session/session.py:285 #: audits/const.py:23 rbac/tree.py:291 terminal/api/session/session.py:285
#: terminal/templates/terminal/_msg_session_sharing.html:10 #: terminal/templates/terminal/_msg_session_sharing.html:10
#: xpack/plugins/cloud/manager.py:102 #: xpack/plugins/cloud/manager.py:102
msgid "View" msgid "View"
@ -3389,7 +3430,7 @@ msgstr "조회"
#: audits/const.py:26 #: audits/const.py:26
#: authentication/templates/authentication/_access_key_modal.html:22 #: authentication/templates/authentication/_access_key_modal.html:22
#: rbac/tree.py:289 #: rbac/tree.py:290
msgid "Create" msgid "Create"
msgstr "생성" msgstr "생성"
@ -3542,7 +3583,7 @@ msgid "MFA"
msgstr "MFA" msgstr "MFA"
#: audits/models.py:219 terminal/models/session/sharing.py:123 #: audits/models.py:219 terminal/models/session/sharing.py:123
#: xpack/plugins/cloud/manager.py:187 xpack/plugins/cloud/models.py:237 #: xpack/plugins/cloud/manager.py:186 xpack/plugins/cloud/models.py:237
msgid "Reason" msgid "Reason"
msgstr "원인" msgstr "원인"
@ -3793,6 +3834,10 @@ msgstr "사용자가 {}에서 옵니다. 해당 시스템에서 비밀번호를
msgid "Forgot password" msgid "Forgot password"
msgstr "비밀번호를 잊으셨나요" msgstr "비밀번호를 잊으셨나요"
#: authentication/api/password.py:70 authentication/mfa/email.py:42
msgid "The validity period of the verification code is {} minute"
msgstr "인증 코드의 유효 기간은 {} 분입니다."
#: authentication/apps.py:7 #: authentication/apps.py:7
msgid "App Authentication" msgid "App Authentication"
msgstr "인증 관리" msgstr "인증 관리"
@ -4209,7 +4254,7 @@ msgid "Input secret"
msgstr "비밀번호 사용자 정의" msgstr "비밀번호 사용자 정의"
#: authentication/models/connection_token.py:47 #: authentication/models/connection_token.py:47
#: authentication/serializers/connect_token_secret.py:118 #: authentication/serializers/connect_token_secret.py:126
#: terminal/models/applet/applet.py:43 #: terminal/models/applet/applet.py:43
#: terminal/models/virtualapp/virtualapp.py:24 #: terminal/models/virtualapp/virtualapp.py:24
#: terminal/serializers/session.py:31 terminal/serializers/session.py:58 #: terminal/serializers/session.py:31 terminal/serializers/session.py:58
@ -4272,15 +4317,15 @@ msgstr "사용자가 없거나 사용자가 비활성화됨"
msgid "No asset or inactive asset" msgid "No asset or inactive asset"
msgstr "자산이 없거나 자산이 활성화되지 않음" msgstr "자산이 없거나 자산이 활성화되지 않음"
#: authentication/models/connection_token.py:348 #: authentication/models/connection_token.py:360
msgid "Can view super connection token secret" msgid "Can view super connection token secret"
msgstr "슈퍼 연결 토큰 암호를 볼 수 있음" msgstr "슈퍼 연결 토큰 암호를 볼 수 있음"
#: authentication/models/connection_token.py:350 #: authentication/models/connection_token.py:362
msgid "Super connection token" msgid "Super connection token"
msgstr "슈퍼 연결 토큰" msgstr "슈퍼 연결 토큰"
#: authentication/models/connection_token.py:367 #: authentication/models/connection_token.py:379
msgid "Admin connection token" msgid "Admin connection token"
msgstr "관리자 연결 토큰" msgstr "관리자 연결 토큰"
@ -4332,38 +4377,38 @@ msgstr "OAuth ID"
msgid "binding reminder" msgid "binding reminder"
msgstr "바인딩 알림" msgstr "바인딩 알림"
#: authentication/serializers/connect_token_secret.py:120 #: authentication/serializers/connect_token_secret.py:128
msgid "Is builtin" msgid "Is builtin"
msgstr "내장된" msgstr "내장된"
#: authentication/serializers/connect_token_secret.py:124 #: authentication/serializers/connect_token_secret.py:132
msgid "Options" msgid "Options"
msgstr "옵션" msgstr "옵션"
#: authentication/serializers/connect_token_secret.py:131 #: authentication/serializers/connect_token_secret.py:139
#: ops/notifications.py:19 rbac/tree.py:63 #: ops/notifications.py:19 rbac/tree.py:63
msgid "Component" msgid "Component"
msgstr "구성 요소" msgstr "구성 요소"
#: authentication/serializers/connect_token_secret.py:140 #: authentication/serializers/connect_token_secret.py:148
msgid "Domain" msgid "Domain"
msgstr "도메인" msgstr "도메인"
#: authentication/serializers/connect_token_secret.py:142 #: authentication/serializers/connect_token_secret.py:151
msgid "Expired now" msgid "Expired now"
msgstr "즉시 만료" msgstr "즉시 만료"
#: authentication/serializers/connect_token_secret.py:175 #: authentication/serializers/connect_token_secret.py:184
#: terminal/models/virtualapp/virtualapp.py:25 #: terminal/models/virtualapp/virtualapp.py:25
msgid "Image name" msgid "Image name"
msgstr "이미지 이름" msgstr "이미지 이름"
#: authentication/serializers/connect_token_secret.py:176 #: authentication/serializers/connect_token_secret.py:185
#: terminal/models/virtualapp/virtualapp.py:27 #: terminal/models/virtualapp/virtualapp.py:27
msgid "Image port" msgid "Image port"
msgstr "이미지 포트" msgstr "이미지 포트"
#: authentication/serializers/connect_token_secret.py:177 #: authentication/serializers/connect_token_secret.py:186
#: terminal/models/virtualapp/virtualapp.py:26 #: terminal/models/virtualapp/virtualapp.py:26
msgid "Image protocol" msgid "Image protocol"
msgstr "이미지 프로토콜" msgstr "이미지 프로토콜"
@ -4472,13 +4517,13 @@ msgid "Show"
msgstr "표시" msgstr "표시"
#: authentication/templates/authentication/_access_key_modal.html:66 #: authentication/templates/authentication/_access_key_modal.html:66
#: settings/serializers/terminal.py:24 users/const.py:42 #: settings/serializers/terminal.py:24 users/const.py:48
#: users/templates/users/user_verify_mfa.html:36 #: users/templates/users/user_verify_mfa.html:36
msgid "Disable" msgid "Disable"
msgstr "비활성화" msgstr "비활성화"
#: authentication/templates/authentication/_access_key_modal.html:67 #: authentication/templates/authentication/_access_key_modal.html:67
#: settings/serializers/terminal.py:24 users/const.py:43 #: settings/serializers/terminal.py:24 users/const.py:49
#: users/templates/users/mfa_setting.html:120 #: users/templates/users/mfa_setting.html:120
#: users/templates/users/mfa_setting.html:158 #: users/templates/users/mfa_setting.html:158
#: users/templates/users/mfa_setting.html:177 #: users/templates/users/mfa_setting.html:177
@ -4537,16 +4582,11 @@ msgid ""
"account password in time." "account password in time."
msgstr "이번 로그인 행위가 이상하다고 생각되시면, 즉시 계정 비밀번호를 수정하시기 바랍니다." msgstr "이번 로그인 행위가 이상하다고 생각되시면, 즉시 계정 비밀번호를 수정하시기 바랍니다."
#: authentication/templates/authentication/_msg_mfa_email_code.html:15
#: authentication/templates/authentication/_msg_reset_password_code.html:18
msgid "The validity period of the verification code is one minute"
msgstr "인증 코드의 유효 기간은 1분입니다."
#: authentication/templates/authentication/_msg_oauth_bind.html:6 #: authentication/templates/authentication/_msg_oauth_bind.html:6
msgid "Your account has just been bound to" msgid "Your account has just been bound to"
msgstr "귀하의 계정이 방금" msgstr "귀하의 계정이 방금"
#: authentication/templates/authentication/_msg_oauth_bind.html:17 #: authentication/templates/authentication/_msg_oauth_bind.html:15
msgid "If the operation is not your own, unbind and change the password." msgid "If the operation is not your own, unbind and change the password."
msgstr "바로 본인이 한 조작이 아니라면, 연결을 해제하고 비밀번호를 수정해 주시기 바랍니다." msgstr "바로 본인이 한 조작이 아니라면, 연결을 해제하고 비밀번호를 수정해 주시기 바랍니다."
@ -4888,7 +4928,7 @@ msgstr "기업 전문 버전"
msgid "Ultimate edition" msgid "Ultimate edition"
msgstr "기업 플래그십 버전" msgstr "기업 플래그십 버전"
#: common/const/common.py:5 xpack/plugins/cloud/manager.py:452 #: common/const/common.py:5 xpack/plugins/cloud/manager.py:451
#, python-format #, python-format
msgid "%(name)s was created successfully" msgid "%(name)s was created successfully"
msgstr "%(name)s가 생성되었습니다." msgstr "%(name)s가 생성되었습니다."
@ -5257,11 +5297,11 @@ msgid ""
" this task needs to be executed for sending emails and handling attachments" " this task needs to be executed for sending emails and handling attachments"
msgstr "계정 비밀번호 변경 시 계정 백업으로 생성된 첨부 파일에 대해 이메일 및 첨부 파일 전송 이 작업을 수행해야 합니다" msgstr "계정 비밀번호 변경 시 계정 백업으로 생성된 첨부 파일에 대해 이메일 및 첨부 파일 전송 이 작업을 수행해야 합니다"
#: common/tasks.py:107 #: common/tasks.py:104
msgid "Upload account backup to external storage" msgid "Upload account backup to external storage"
msgstr "외부 저장소에 세션 녹화 업로드" msgstr "외부 저장소에 세션 녹화 업로드"
#: common/tasks.py:109 #: common/tasks.py:106
msgid "" msgid ""
"When performing an account backup, this task needs to be executed to " "When performing an account backup, this task needs to be executed to "
"external storage (SFTP)" "external storage (SFTP)"
@ -5685,7 +5725,7 @@ msgstr "* 유효한 크론탭 표현식을 입력하세요"
#: ops/mixin.py:194 #: ops/mixin.py:194
msgid "Crontab minute must not contain '*'" msgid "Crontab minute must not contain '*'"
msgstr "" msgstr "Crontab 분에는 \"*\"를 포함할 수 없습니다."
#: ops/mixin.py:208 settings/serializers/auth/mixin.py:12 #: ops/mixin.py:208 settings/serializers/auth/mixin.py:12
msgid "Require interval or crontab setting" msgid "Require interval or crontab setting"
@ -6464,7 +6504,7 @@ msgid "Storage"
msgstr "저장소" msgstr "저장소"
#: rbac/tree.py:64 terminal/models/applet/applet.py:53 #: rbac/tree.py:64 terminal/models/applet/applet.py:53
#: terminal/models/applet/applet.py:371 terminal/models/applet/host.py:30 #: terminal/models/applet/applet.py:379 terminal/models/applet/host.py:30
#: terminal/serializers/applet.py:16 #: terminal/serializers/applet.py:16
msgid "Applet" msgid "Applet"
msgstr "원격 애플리케이션" msgstr "원격 애플리케이션"
@ -6486,24 +6526,24 @@ msgstr "작업 감사"
msgid "Report" msgid "Report"
msgstr "보고서" msgstr "보고서"
#: rbac/tree.py:181 #: rbac/tree.py:182
msgid "App organizations" msgid "App organizations"
msgstr "조직 관리" msgstr "조직 관리"
#: rbac/tree.py:182 #: rbac/tree.py:183
msgid "Ticket comment" msgid "Ticket comment"
msgstr "작업 댓글" msgstr "작업 댓글"
#: rbac/tree.py:183 settings/serializers/feature.py:174 #: rbac/tree.py:184 settings/serializers/feature.py:174
#: settings/serializers/feature.py:176 tickets/models/ticket/general.py:310 #: settings/serializers/feature.py:176 tickets/models/ticket/general.py:310
msgid "Ticket" msgid "Ticket"
msgstr "작업" msgstr "작업"
#: rbac/tree.py:184 #: rbac/tree.py:185
msgid "Common setting" msgid "Common setting"
msgstr "일반 설정" msgstr "일반 설정"
#: rbac/tree.py:185 #: rbac/tree.py:186
msgid "View permission tree" msgid "View permission tree"
msgstr "권한 트리 보기" msgstr "권한 트리 보기"
@ -6547,6 +6587,14 @@ msgstr "PAM 대시보드"
msgid "ChangeSecretDashboard" msgid "ChangeSecretDashboard"
msgstr "계정 비밀번호 변경 대시보드" msgstr "계정 비밀번호 변경 대시보드"
#: reports/views.py:181
msgid "Failed to send email: "
msgstr "메일 전송 실패"
#: reports/views.py:182
msgid "Email sent successfully to "
msgstr "메일 전송 성공"
#: settings/api/chat.py:41 #: settings/api/chat.py:41
msgid "Chat AI is not enabled" msgid "Chat AI is not enabled"
msgstr "채팅 AI가 활성화되어 있지 않습니다" msgstr "채팅 AI가 활성화되어 있지 않습니다"
@ -6584,7 +6632,7 @@ msgstr "시스템 설정"
#: settings/const.py:13 #: settings/const.py:13
msgid "Embed" msgid "Embed"
msgstr "" msgstr "임베드"
#: settings/models.py:42 users/models/preference.py:14 #: settings/models.py:42 users/models/preference.py:14
msgid "Encrypted" msgid "Encrypted"
@ -6837,7 +6885,7 @@ msgstr ""
#: settings/serializers/auth/lark.py:13 users/models/user/_source.py:24 #: settings/serializers/auth/lark.py:13 users/models/user/_source.py:24
msgid "Lark" msgid "Lark"
msgstr "" msgstr "Lark"
#: settings/serializers/auth/lark.py:19 #: settings/serializers/auth/lark.py:19
msgid "" msgid ""
@ -7017,7 +7065,7 @@ msgstr "항상 사용자 정보를 업데이트합니다"
#: settings/serializers/auth/oidc.py:13 settings/serializers/auth/oidc.py:71 #: settings/serializers/auth/oidc.py:13 settings/serializers/auth/oidc.py:71
msgid "OIDC" msgid "OIDC"
msgstr "" msgstr "OIDC"
#: settings/serializers/auth/oidc.py:17 #: settings/serializers/auth/oidc.py:17
msgid "Base site URL" msgid "Base site URL"
@ -7081,6 +7129,8 @@ msgid ""
"The issuer URL of the OpenID Provider, used to discover its configuration " "The issuer URL of the OpenID Provider, used to discover its configuration "
"via the `$PROVIDER_ENDPOINT/.well-known/openid-configuration` endpoint." "via the `$PROVIDER_ENDPOINT/.well-known/openid-configuration` endpoint."
msgstr "" msgstr ""
"OpenID 공급자의 발행자 URL로, \"$PROVIDER_ENDPOINT/.well-known/openid-"
"configuration\" 엔드포인트를 통해 그 구성을 발견하는 데 사용됩니다."
#: settings/serializers/auth/oidc.py:87 #: settings/serializers/auth/oidc.py:87
msgid "JWKS endpoint" msgid "JWKS endpoint"
@ -7439,7 +7489,7 @@ msgid "Tenant ID"
msgstr "임대인 ID" msgstr "임대인 ID"
#: settings/serializers/feature.py:112 terminal/serializers/storage.py:68 #: settings/serializers/feature.py:112 terminal/serializers/storage.py:68
#: xpack/plugins/cloud/manager.py:119 xpack/plugins/cloud/manager.py:124 #: xpack/plugins/cloud/manager.py:119 xpack/plugins/cloud/manager.py:123
#: xpack/plugins/cloud/models.py:293 #: xpack/plugins/cloud/models.py:293
msgid "Region" msgid "Region"
msgstr "지역" msgstr "지역"
@ -8252,7 +8302,7 @@ msgstr "업데이트 템플릿 다운로드"
#: templates/_foot_js.html:30 #: templates/_foot_js.html:30
msgid "Page footer" msgid "Page footer"
msgstr "" msgstr "페이지 하단"
#: templates/_header_bar.html:12 #: templates/_header_bar.html:12
msgid "Help" msgid "Help"
@ -8356,7 +8406,7 @@ msgid ""
msgstr "외부 웹사이트로 이동하고자 합니다. 해당 링크를 신뢰하는지 확인해 주시기 바랍니다." msgstr "외부 웹사이트로 이동하고자 합니다. 해당 링크를 신뢰하는지 확인해 주시기 바랍니다."
#: templates/resource_download.html:20 templates/resource_download.html:35 #: templates/resource_download.html:20 templates/resource_download.html:35
#: users/const.py:78 #: users/const.py:84
msgid "Client" msgid "Client"
msgstr "클라이언트" msgstr "클라이언트"
@ -8642,12 +8692,12 @@ msgstr "사용자 정의 플랫폼만 지원합니다"
msgid "Missing type in platform.yml" msgid "Missing type in platform.yml"
msgstr "platform.yml에 유형이 누락되었습니다" msgstr "platform.yml에 유형이 누락되었습니다"
#: terminal/models/applet/applet.py:373 terminal/models/applet/host.py:36 #: terminal/models/applet/applet.py:381 terminal/models/applet/host.py:36
#: terminal/models/applet/host.py:138 #: terminal/models/applet/host.py:138
msgid "Hosting" msgid "Hosting"
msgstr "호스트 머신" msgstr "호스트 머신"
#: terminal/models/applet/applet.py:379 #: terminal/models/applet/applet.py:387
msgid "Applet Publication" msgid "Applet Publication"
msgstr "애플리케이션 배포" msgstr "애플리케이션 배포"
@ -8797,7 +8847,7 @@ msgstr "응용 사용자"
msgid "Can view terminal config" msgid "Can view terminal config"
msgstr "터미널 구성 조회 가능" msgstr "터미널 구성 조회 가능"
#: terminal/models/session/command.py:76 #: terminal/models/session/command.py:77
msgid "Command record" msgid "Command record"
msgstr "명령 기록" msgstr "명령 기록"
@ -9709,11 +9759,11 @@ msgstr "새 작업 티켓이 있습니다, 신청인 - {}"
msgid "{}: New Ticket - {} ({})" msgid "{}: New Ticket - {} ({})"
msgstr "새 작업 티켓 - {} ({})" msgstr "새 작업 티켓 - {} ({})"
#: tickets/notifications.py:160 #: tickets/notifications.py:168
msgid "Your ticket has been processed, processor - {}" msgid "Your ticket has been processed, processor - {}"
msgstr "귀하의 작업 티켓이 처리되었습니다, 처리자 - {}" msgstr "귀하의 작업 티켓이 처리되었습니다, 처리자 - {}"
#: tickets/notifications.py:164 #: tickets/notifications.py:172
msgid "Ticket has processed - {} ({})" msgid "Ticket has processed - {} ({})"
msgstr "귀하의 작업 티켓이 처리되었습니다, 처리자 - {} ({})" msgstr "귀하의 작업 티켓이 처리되었습니다, 처리자 - {} ({})"
@ -9883,23 +9933,31 @@ msgstr "현재 창"
msgid "New window" msgid "New window"
msgstr "새 창" msgstr "새 창"
#: users/const.py:47 #: users/const.py:43
msgid "Dark gray"
msgstr "짙은 회색"
#: users/const.py:44
msgid "Deep blue"
msgstr "짙은 파랑"
#: users/const.py:53
msgid "High32 bit" msgid "High32 bit"
msgstr "높음 (32 비트)" msgstr "높음 (32 비트)"
#: users/const.py:48 #: users/const.py:54
msgid "True Color24 bit" msgid "True Color24 bit"
msgstr "" msgstr "진짜 색상(24비트)"
#: users/const.py:49 #: users/const.py:55
msgid "Medium16 bit" msgid "Medium16 bit"
msgstr "중간 (16 비트)" msgstr "중간 (16 비트)"
#: users/const.py:82 #: users/const.py:88
msgid "Replace" msgid "Replace"
msgstr "교체" msgstr "교체"
#: users/const.py:83 #: users/const.py:89
msgid "Suffix" msgid "Suffix"
msgstr "접미사 추가" msgstr "접미사 추가"
@ -10112,7 +10170,7 @@ msgstr "SSH 키 재설정"
#: users/notifications.py:253 #: users/notifications.py:253
msgid "Update SSH Key url" msgid "Update SSH Key url"
msgstr "" msgstr "SSH 키 주소 업데이트"
#: users/notifications.py:276 #: users/notifications.py:276
msgid "Reset MFA" msgid "Reset MFA"
@ -10123,12 +10181,12 @@ msgid "Reset MFA url"
msgstr "MFA 재설정 웹사이트" msgstr "MFA 재설정 웹사이트"
#: users/serializers/preference/koko.py:10 #: users/serializers/preference/koko.py:10
#: users/serializers/preference/luna.py:63 #: users/serializers/preference/luna.py:67
msgid "File name conflict resolution" msgid "File name conflict resolution"
msgstr "파일 이름 충돌 해결 방법" msgstr "파일 이름 충돌 해결 방법"
#: users/serializers/preference/koko.py:14 #: users/serializers/preference/koko.py:14
#: users/serializers/preference/luna.py:80 #: users/serializers/preference/luna.py:84
msgid "Terminal theme name" msgid "Terminal theme name"
msgstr "터미널 테마 이름" msgstr "터미널 테마 이름"
@ -10161,54 +10219,60 @@ msgstr "비동기식 자산 트리 로드"
msgid "Connect default open method" msgid "Connect default open method"
msgstr "연결 기본 열기 방식" msgstr "연결 기본 열기 방식"
#: users/serializers/preference/luna.py:37 #: users/serializers/preference/luna.py:34
#: xpack/plugins/interface/models.py:41
#: xpack/plugins/interface/serializers/interface.py:26
msgid "Theme"
msgstr "테마"
#: users/serializers/preference/luna.py:41
msgid "RDP resolution" msgid "RDP resolution"
msgstr "RDP 해상도" msgstr "RDP 해상도"
#: users/serializers/preference/luna.py:41 #: users/serializers/preference/luna.py:45
msgid "Keyboard layout" msgid "Keyboard layout"
msgstr "키보드 레이아웃" msgstr "키보드 레이아웃"
#: users/serializers/preference/luna.py:45 #: users/serializers/preference/luna.py:49
msgid "RDP client option" msgid "RDP client option"
msgstr "RDP 클라이언트 옵션" msgstr "RDP 클라이언트 옵션"
#: users/serializers/preference/luna.py:49 #: users/serializers/preference/luna.py:53
msgid "RDP color quality" msgid "RDP color quality"
msgstr "RDP 색상 품질" msgstr "RDP 색상 품질"
#: users/serializers/preference/luna.py:53 #: users/serializers/preference/luna.py:57
msgid "RDP smart size" msgid "RDP smart size"
msgstr "RDP 스마트 크기" msgstr "RDP 스마트 크기"
#: users/serializers/preference/luna.py:54 #: users/serializers/preference/luna.py:58
msgid "" msgid ""
"Determines whether the client computer should scale the content on the " "Determines whether the client computer should scale the content on the "
"remote computer to fit the window size of the client computer when the " "remote computer to fit the window size of the client computer when the "
"window is resized." "window is resized."
msgstr "확인: 클라이언트 컴퓨터가 창 크기에 맞게 원격 컴퓨터의 내용을 축소해야 하는지 여부" msgstr "확인: 클라이언트 컴퓨터가 창 크기에 맞게 원격 컴퓨터의 내용을 축소해야 하는지 여부"
#: users/serializers/preference/luna.py:59 #: users/serializers/preference/luna.py:63
msgid "Remote app connect method" msgid "Remote app connect method"
msgstr "원격 애플리케이션 연결 방식" msgstr "원격 애플리케이션 연결 방식"
#: users/serializers/preference/luna.py:70 #: users/serializers/preference/luna.py:74
msgid "Terminal font size" msgid "Terminal font size"
msgstr "문자 터미널 글꼴 크기" msgstr "문자 터미널 글꼴 크기"
#: users/serializers/preference/luna.py:73 #: users/serializers/preference/luna.py:77
msgid "Backspace as Ctrl+H" msgid "Backspace as Ctrl+H"
msgstr "문자 터미널 백스페이스를 Ctrl+H로" msgstr "문자 터미널 백스페이스를 Ctrl+H로"
#: users/serializers/preference/luna.py:76 #: users/serializers/preference/luna.py:80
msgid "Right click quickly paste" msgid "Right click quickly paste"
msgstr "우클릭 빠른 붙여넣기" msgstr "우클릭 빠른 붙여넣기"
#: users/serializers/preference/luna.py:86 #: users/serializers/preference/luna.py:90
msgid "Graphics" msgid "Graphics"
msgstr "그래픽화" msgstr "그래픽화"
#: users/serializers/preference/luna.py:87 #: users/serializers/preference/luna.py:91
msgid "Command line" msgid "Command line"
msgstr "명령행" msgstr "명령행"
@ -10786,7 +10850,7 @@ msgstr "ZStack"
#: xpack/plugins/cloud/const.py:30 xpack/plugins/cloud/providers/smartx.py:9 #: xpack/plugins/cloud/const.py:30 xpack/plugins/cloud/providers/smartx.py:9
msgid "SmartX CloudTower" msgid "SmartX CloudTower"
msgstr "" msgstr "SmartX 클라우드 타워"
#: xpack/plugins/cloud/const.py:31 #: xpack/plugins/cloud/const.py:31
msgid "Fusion Compute" msgid "Fusion Compute"
@ -10889,64 +10953,64 @@ msgstr "작업 실행 완료"
msgid "Synchronization regions" msgid "Synchronization regions"
msgstr "동기화 지역" msgstr "동기화 지역"
#: xpack/plugins/cloud/manager.py:141 #: xpack/plugins/cloud/manager.py:140
#, python-format #, python-format
msgid "Get instances of region \"%s\" error, error: %s" msgid "Get instances of region \"%s\" error, error: %s"
msgstr "영역 \"%s\"의 인스턴스 오류를 가져오는 중, 오류: %s" msgstr "영역 \"%s\"의 인스턴스 오류를 가져오는 중, 오류: %s"
#: xpack/plugins/cloud/manager.py:186 #: xpack/plugins/cloud/manager.py:185
#, python-format #, python-format
msgid "Failed to synchronize the instance \"%s\"" msgid "Failed to synchronize the instance \"%s\""
msgstr "인스턴스 %s을(를) 동기화할 수 없습니다" msgstr "인스턴스 %s을(를) 동기화할 수 없습니다"
#: xpack/plugins/cloud/manager.py:377 #: xpack/plugins/cloud/manager.py:376
#, python-format #, python-format
msgid "" msgid ""
"The updated platform of asset \"%s\" is inconsistent with the original " "The updated platform of asset \"%s\" is inconsistent with the original "
"platform type. Skip platform and protocol updates" "platform type. Skip platform and protocol updates"
msgstr "자산 \"%s\"의 업데이트 플랫폼과 원래 플랫폼 유형이 일치하지 않습니다. 플랫폼 및 프로토콜 업데이트를 건너뜁니다" msgstr "자산 \"%s\"의 업데이트 플랫폼과 원래 플랫폼 유형이 일치하지 않습니다. 플랫폼 및 프로토콜 업데이트를 건너뜁니다"
#: xpack/plugins/cloud/manager.py:434 #: xpack/plugins/cloud/manager.py:433
#, python-format #, python-format
msgid "The asset \"%s\" already exists" msgid "The asset \"%s\" already exists"
msgstr "자산 \"%s\"가 이미 존재합니다" msgstr "자산 \"%s\"가 이미 존재합니다"
#: xpack/plugins/cloud/manager.py:436 #: xpack/plugins/cloud/manager.py:435
#, python-format #, python-format
msgid "Update asset \"%s\"" msgid "Update asset \"%s\""
msgstr "자산 \"%s\" 업데이트됨" msgstr "자산 \"%s\" 업데이트됨"
#: xpack/plugins/cloud/manager.py:439 #: xpack/plugins/cloud/manager.py:438
#, python-format #, python-format
msgid "Asset \"%s\" has been updated" msgid "Asset \"%s\" has been updated"
msgstr "자산 \"%s\"이 업데이트되었습니다" msgstr "자산 \"%s\"이 업데이트되었습니다"
#: xpack/plugins/cloud/manager.py:448 #: xpack/plugins/cloud/manager.py:447
#, python-format #, python-format
msgid "Prepare to create asset \"%s\"" msgid "Prepare to create asset \"%s\""
msgstr "자산 %s 생성 준비 중" msgstr "자산 %s 생성 준비 중"
#: xpack/plugins/cloud/manager.py:469 #: xpack/plugins/cloud/manager.py:468
#, python-format #, python-format
msgid "Set nodes \"%s\"" msgid "Set nodes \"%s\""
msgstr "노드 설정: \"%s\"" msgstr "노드 설정: \"%s\""
#: xpack/plugins/cloud/manager.py:495 #: xpack/plugins/cloud/manager.py:494
#, python-format #, python-format
msgid "Set accounts \"%s\"" msgid "Set accounts \"%s\""
msgstr "계정 설정: %s" msgstr "계정 설정: %s"
#: xpack/plugins/cloud/manager.py:511 #: xpack/plugins/cloud/manager.py:510
#, python-format #, python-format
msgid "Set protocols \"%s\"" msgid "Set protocols \"%s\""
msgstr "프로토콜 설정: \"%s\"" msgstr "프로토콜 설정: \"%s\""
#: xpack/plugins/cloud/manager.py:519 #: xpack/plugins/cloud/manager.py:518
#, python-format #, python-format
msgid "Set labels \"%s\"" msgid "Set labels \"%s\""
msgstr "태그 설정: \"%s\"" msgstr "태그 설정: \"%s\""
#: xpack/plugins/cloud/manager.py:533 xpack/plugins/cloud/tasks.py:31 #: xpack/plugins/cloud/manager.py:532 xpack/plugins/cloud/tasks.py:31
msgid "Run sync instance task" msgid "Run sync instance task"
msgstr "동기화 인스턴스 작업 실행" msgstr "동기화 인스턴스 작업 실행"
@ -11480,11 +11544,6 @@ msgstr "관리 페이지 로고"
msgid "Logout logo" msgid "Logout logo"
msgstr "로그아웃" msgstr "로그아웃"
#: xpack/plugins/interface/models.py:41
#: xpack/plugins/interface/serializers/interface.py:26
msgid "Theme"
msgstr "테마"
#: xpack/plugins/interface/models.py:42 #: xpack/plugins/interface/models.py:42
msgid "Footer content" msgid "Footer content"
msgstr "바닥글 내용" msgstr "바닥글 내용"
@ -11505,6 +11564,14 @@ msgstr "라이센스 가져오기 성공"
msgid "Invalid license" msgid "Invalid license"
msgstr "라이센스가 유효하지 않습니다." msgstr "라이센스가 유효하지 않습니다."
#, fuzzy
#~ msgid "Themes"
#~ msgstr "테마"
#, fuzzy
#~ msgid "domain_name"
#~ msgstr "도메인 이름."
#~ msgid "Task execution id" #~ msgid "Task execution id"
#~ msgstr "작업 실행 ID" #~ msgstr "작업 실행 ID"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-09-17 15:02+0800\n" "POT-Creation-Date: 2025-10-16 14:10+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: accounts/api/account/account.py:138 #: accounts/api/account/account.py:141
#: accounts/serializers/account/account.py:181 #: accounts/serializers/account/account.py:181
#: accounts/serializers/account/account.py:362 #: accounts/serializers/account/account.py:362
msgid "Account already exists" msgid "Account already exists"
@ -96,7 +96,7 @@ msgstr "Execução do plano concluída"
#: accounts/automations/base/manager.py:119 #: accounts/automations/base/manager.py:119
msgid "Windows does not support SSH key authentication" msgid "Windows does not support SSH key authentication"
msgstr "" msgstr "Windows não suporta autenticação por chave SSH"
#: accounts/automations/base/manager.py:123 #: accounts/automations/base/manager.py:123
msgid "Windows password cannot contain special characters like > ^" msgid "Windows password cannot contain special characters like > ^"
@ -210,7 +210,7 @@ msgstr "Modelo"
msgid "Skip" msgid "Skip"
msgstr "Pular" msgstr "Pular"
#: accounts/const/account.py:33 audits/const.py:24 rbac/tree.py:291 #: accounts/const/account.py:33 audits/const.py:24 rbac/tree.py:292
#: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6 #: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6
msgid "Update" msgid "Update"
msgstr "Atualizar" msgstr "Atualizar"
@ -579,17 +579,18 @@ msgstr "Atividade da conta"
#: accounts/serializers/account/service.py:29 #: accounts/serializers/account/service.py:29
#: accounts/serializers/account/virtual.py:20 acls/models/base.py:35 #: accounts/serializers/account/virtual.py:20 acls/models/base.py:35
#: acls/models/base.py:96 acls/models/command_acl.py:21 #: acls/models/base.py:96 acls/models/command_acl.py:21
#: acls/notifications.py:69 acls/serializers/base.py:35 #: acls/models/data_masking.py:20 acls/notifications.py:69
#: assets/models/asset/common.py:100 assets/models/asset/common.py:166 #: acls/serializers/base.py:35 assets/models/asset/common.py:100
#: assets/models/cmd_filter.py:21 assets/models/label.py:18 #: assets/models/asset/common.py:166 assets/models/cmd_filter.py:21
#: assets/models/platform.py:15 assets/models/platform.py:94 #: assets/models/label.py:18 assets/models/platform.py:15
#: assets/models/zone.py:19 assets/serializers/asset/common.py:174 #: assets/models/platform.py:94 assets/models/zone.py:19
#: assets/serializers/platform.py:158 assets/serializers/platform.py:283 #: assets/serializers/asset/common.py:174 assets/serializers/platform.py:158
#: assets/serializers/platform.py:283
#: authentication/backends/passkey/models.py:10 #: authentication/backends/passkey/models.py:10
#: authentication/models/ssh_key.py:12 authentication/notifications.py:17 #: authentication/models/ssh_key.py:12 authentication/notifications.py:17
#: authentication/notifications.py:56 #: authentication/notifications.py:56
#: authentication/serializers/connect_token_secret.py:117 #: authentication/serializers/connect_token_secret.py:125
#: authentication/serializers/connect_token_secret.py:174 labels/models.py:11 #: authentication/serializers/connect_token_secret.py:183 labels/models.py:11
#: ops/mixin.py:32 ops/models/adhoc.py:19 ops/models/celery.py:15 #: ops/mixin.py:32 ops/models/adhoc.py:19 ops/models/celery.py:15
#: ops/models/celery.py:81 ops/models/job.py:147 ops/models/playbook.py:28 #: ops/models/celery.py:81 ops/models/job.py:147 ops/models/playbook.py:28
#: ops/models/variable.py:9 ops/serializers/job.py:20 #: ops/models/variable.py:9 ops/serializers/job.py:20
@ -783,7 +784,7 @@ msgstr "Data de fim"
#: assets/models/automations/base.py:137 #: assets/models/automations/base.py:137
#: assets/serializers/automations/base.py:47 audits/models.py:224 #: assets/serializers/automations/base.py:47 audits/models.py:224
#: audits/serializers.py:77 ops/models/base.py:49 ops/models/job.py:233 #: audits/serializers.py:77 ops/models/base.py:49 ops/models/job.py:233
#: terminal/models/applet/applet.py:374 terminal/models/applet/host.py:140 #: terminal/models/applet/applet.py:382 terminal/models/applet/host.py:140
#: terminal/models/component/status.py:30 #: terminal/models/component/status.py:30
#: terminal/models/virtualapp/virtualapp.py:99 #: terminal/models/virtualapp/virtualapp.py:99
#: terminal/serializers/applet.py:19 terminal/serializers/applet_host.py:163 #: terminal/serializers/applet.py:19 terminal/serializers/applet_host.py:163
@ -939,7 +940,7 @@ msgstr "Risco de conta"
#: accounts/models/automations/check_account.py:119 #: accounts/models/automations/check_account.py:119
msgid "Slug" msgid "Slug"
msgstr "" msgstr "Identificador de URL"
#: accounts/models/automations/check_account.py:125 #: accounts/models/automations/check_account.py:125
msgid "Check engine" msgid "Check engine"
@ -1060,7 +1061,7 @@ msgstr "Regras de senha"
#: accounts/models/base.py:69 assets/models/automations/base.py:28 #: accounts/models/base.py:69 assets/models/automations/base.py:28
#: assets/models/cmd_filter.py:39 assets/models/label.py:22 #: assets/models/cmd_filter.py:39 assets/models/label.py:22
#: authentication/serializers/connect_token_secret.py:121 #: authentication/serializers/connect_token_secret.py:129
#: terminal/models/applet/applet.py:41 #: terminal/models/applet/applet.py:41
#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:257 #: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:257
msgid "Is active" msgid "Is active"
@ -1242,7 +1243,7 @@ msgstr "Categoria"
#: assets/serializers/platform.py:160 assets/serializers/platform.py:172 #: assets/serializers/platform.py:160 assets/serializers/platform.py:172
#: audits/serializers.py:76 audits/serializers.py:196 #: audits/serializers.py:76 audits/serializers.py:196
#: authentication/models/connection_token.py:67 #: authentication/models/connection_token.py:67
#: authentication/serializers/connect_token_secret.py:130 #: authentication/serializers/connect_token_secret.py:138
#: ops/models/job.py:155 perms/serializers/user_permission.py:28 #: ops/models/job.py:155 perms/serializers/user_permission.py:28
#: terminal/models/applet/applet.py:40 terminal/models/component/storage.py:58 #: terminal/models/applet/applet.py:40 terminal/models/component/storage.py:58
#: terminal/models/component/storage.py:152 terminal/serializers/applet.py:30 #: terminal/models/component/storage.py:152 terminal/serializers/applet.py:30
@ -1267,7 +1268,7 @@ msgstr "Serviço de diretório"
#: accounts/serializers/account/account.py:278 #: accounts/serializers/account/account.py:278
#, python-brace-format #, python-brace-format
msgid "Account already exists. Field(s): {fields} must be unique." msgid "Account already exists. Field(s): {fields} must be unique."
msgstr "" msgstr "Conta já existe. O campo: {fields} deve ser único."
#: accounts/serializers/account/account.py:285 #: accounts/serializers/account/account.py:285
msgid "Has secret" msgid "Has secret"
@ -1314,7 +1315,7 @@ msgid "Spec info"
msgstr "Informações especiais" msgstr "Informações especiais"
#: accounts/serializers/account/account.py:493 #: accounts/serializers/account/account.py:493
#: authentication/serializers/connect_token_secret.py:164 #: authentication/serializers/connect_token_secret.py:173
#: authentication/templates/authentication/_access_key_modal.html:30 #: authentication/templates/authentication/_access_key_modal.html:30
#: perms/models/perm_node.py:21 users/serializers/group.py:33 #: perms/models/perm_node.py:21 users/serializers/group.py:33
msgid "ID" msgid "ID"
@ -1373,7 +1374,7 @@ msgstr "Lista branca de IP"
#: assets/models/cmd_filter.py:88 common/db/models.py:36 #: assets/models/cmd_filter.py:88 common/db/models.py:36
#: ops/models/adhoc.py:25 ops/models/job.py:165 ops/models/playbook.py:31 #: ops/models/adhoc.py:25 ops/models/job.py:165 ops/models/playbook.py:31
#: rbac/models/role.py:37 settings/models.py:44 #: rbac/models/role.py:37 settings/models.py:44
#: terminal/models/applet/applet.py:46 terminal/models/applet/applet.py:375 #: terminal/models/applet/applet.py:46 terminal/models/applet/applet.py:383
#: terminal/models/applet/host.py:143 terminal/models/component/endpoint.py:29 #: terminal/models/applet/host.py:143 terminal/models/component/endpoint.py:29
#: terminal/models/component/endpoint.py:117 #: terminal/models/component/endpoint.py:117
#: terminal/models/session/session.py:44 #: terminal/models/session/session.py:44
@ -1906,7 +1907,7 @@ msgstr ""
#: acls/models/base.py:41 acls/serializers/base.py:57 #: acls/models/base.py:41 acls/serializers/base.py:57
#: assets/models/cmd_filter.py:81 audits/models.py:99 #: assets/models/cmd_filter.py:81 audits/models.py:99
#: audits/serializers.py:107 #: audits/serializers.py:107
#: authentication/serializers/connect_token_secret.py:123 #: authentication/serializers/connect_token_secret.py:131
#: authentication/templates/authentication/_access_key_modal.html:34 #: authentication/templates/authentication/_access_key_modal.html:34
#: perms/serializers/permission.py:63 perms/serializers/permission.py:85 #: perms/serializers/permission.py:63 perms/serializers/permission.py:85
#: terminal/backends/command/models.py:24 #: terminal/backends/command/models.py:24
@ -1915,7 +1916,7 @@ msgid "Action"
msgstr "Action" msgstr "Action"
#: acls/models/base.py:42 assets/models/cmd_filter.py:86 #: acls/models/base.py:42 assets/models/cmd_filter.py:86
#: authentication/serializers/connect_token_secret.py:93 #: authentication/serializers/connect_token_secret.py:101
msgid "Reviewers" msgid "Reviewers"
msgstr "Aprovador" msgstr "Aprovador"
@ -1956,7 +1957,7 @@ msgstr "Ignorar Maiúsculas e Minúsculas"
#: acls/models/command_acl.py:33 acls/models/command_acl.py:97 #: acls/models/command_acl.py:33 acls/models/command_acl.py:97
#: acls/serializers/command_acl.py:29 #: acls/serializers/command_acl.py:29
#: authentication/serializers/connect_token_secret.py:90 #: authentication/serializers/connect_token_secret.py:98
#: terminal/templates/terminal/_msg_command_warning.html:23 #: terminal/templates/terminal/_msg_command_warning.html:23
msgid "Command group" msgid "Command group"
msgstr "Grupo de Comandos" msgstr "Grupo de Comandos"
@ -1982,6 +1983,38 @@ msgstr "Modo de conexão"
msgid "Connect method acl" msgid "Connect method acl"
msgstr "Controle de modo de conexão" msgstr "Controle de modo de conexão"
#: acls/models/data_masking.py:13
msgid "Fixed Character Replacement"
msgstr "Substituição de caracteres fixos"
#: acls/models/data_masking.py:14
msgid "Hide Middle Characters"
msgstr "Ocultar caracteres intermediários"
#: acls/models/data_masking.py:15
msgid "Keep Prefix Only"
msgstr "Manter prefixo"
#: acls/models/data_masking.py:16
msgid "Keep Suffix Only"
msgstr "Manter sufixo"
#: acls/models/data_masking.py:21
msgid "Fields pattern"
msgstr "Ocultar nome da coluna"
#: acls/models/data_masking.py:27 acls/serializers/data_masking.py:14
msgid "Masking Method"
msgstr "Método de ocultação"
#: acls/models/data_masking.py:31
msgid "Mask Pattern"
msgstr "Caracteres de ocultação"
#: acls/models/data_masking.py:42
msgid "Data Masking Rule"
msgstr "Regras de mascaramento de dados"
#: acls/models/login_acl.py:11 acls/models/login_asset_acl.py:9 #: acls/models/login_acl.py:11 acls/models/login_asset_acl.py:9
#: acls/serializers/login_acl.py:16 acls/serializers/login_asset_acl.py:13 #: acls/serializers/login_acl.py:16 acls/serializers/login_asset_acl.py:13
msgid "Rule" msgid "Rule"
@ -2016,6 +2049,14 @@ msgstr "Alerta de login do usuário"
msgid "Login city" msgid "Login city"
msgstr "Cidade do login" msgstr "Cidade do login"
#: acls/notifications.py:20 acls/notifications.py:71
msgid "Recipient name"
msgstr "Nome do destinatário"
#: acls/notifications.py:21 acls/notifications.py:72
msgid "Recipient username"
msgstr "Nome de usuário do destinatário"
#: acls/notifications.py:22 acls/templates/acls/user_login_reminder.html:12 #: acls/notifications.py:22 acls/templates/acls/user_login_reminder.html:12
#: audits/models.py:213 audits/models.py:291 audits/serializers.py:91 #: audits/models.py:213 audits/models.py:291 audits/serializers.py:91
msgid "User agent" msgid "User agent"
@ -2318,7 +2359,7 @@ msgstr "Desativado"
#: assets/const/base.py:33 settings/serializers/basic.py:8 #: assets/const/base.py:33 settings/serializers/basic.py:8
#: users/serializers/preference/koko.py:19 #: users/serializers/preference/koko.py:19
#: users/serializers/preference/lina.py:51 #: users/serializers/preference/lina.py:51
#: users/serializers/preference/luna.py:85 #: users/serializers/preference/luna.py:89
msgid "Basic" msgid "Basic"
msgstr "Básico" msgstr "Básico"
@ -2346,7 +2387,7 @@ msgstr "Serviço de nuvem"
#: assets/const/category.py:14 assets/models/asset/gpt.py:11 #: assets/const/category.py:14 assets/models/asset/gpt.py:11
#: assets/models/asset/web.py:16 audits/const.py:46 #: assets/models/asset/web.py:16 audits/const.py:46
#: terminal/models/applet/applet.py:28 users/const.py:77 #: terminal/models/applet/applet.py:28 users/const.py:83
msgid "Web" msgid "Web"
msgstr "Web" msgstr "Web"
@ -2376,15 +2417,15 @@ msgstr "Huawei."
#: assets/const/device.py:9 #: assets/const/device.py:9
msgid "H3C" msgid "H3C"
msgstr "" msgstr "H3C"
#: assets/const/device.py:10 #: assets/const/device.py:10
msgid "Juniper" msgid "Juniper"
msgstr "" msgstr "Juniper"
#: assets/const/device.py:11 #: assets/const/device.py:11
msgid "TP-Link" msgid "TP-Link"
msgstr "" msgstr "TP-Link"
#: assets/const/device.py:12 assets/const/ds.py:7 #: assets/const/device.py:12 assets/const/ds.py:7
#: terminal/models/applet/applet.py:27 tickets/const.py:9 #: terminal/models/applet/applet.py:27 tickets/const.py:9
@ -2407,7 +2448,7 @@ msgstr "Firewall"
msgid "Windows Active Directory" msgid "Windows Active Directory"
msgstr "Diretório Ativo do Windows" msgstr "Diretório Ativo do Windows"
#: assets/const/gpt.py:7 #: assets/const/gpt.py:8
msgid "ChatGPT" msgid "ChatGPT"
msgstr "ChatGPT" msgstr "ChatGPT"
@ -2535,7 +2576,7 @@ msgstr "Métodos de login de terceiros criptografados incluem:"
#: assets/const/protocol.py:202 #: assets/const/protocol.py:202
msgid "Whether to use TLS encryption." msgid "Whether to use TLS encryption."
msgstr "" msgstr "É utilizado criptografia TLS?"
#: assets/const/protocol.py:232 #: assets/const/protocol.py:232
msgid "Auth source" msgid "Auth source"
@ -2633,7 +2674,7 @@ msgstr "Endereço"
#: assets/models/asset/common.py:169 assets/models/platform.py:155 #: assets/models/asset/common.py:169 assets/models/platform.py:155
#: assets/serializers/asset/common.py:151 #: assets/serializers/asset/common.py:151
#: authentication/backends/passkey/models.py:12 #: authentication/backends/passkey/models.py:12
#: authentication/serializers/connect_token_secret.py:122 #: authentication/serializers/connect_token_secret.py:130
#: perms/serializers/user_permission.py:26 xpack/plugins/cloud/models.py:399 #: perms/serializers/user_permission.py:26 xpack/plugins/cloud/models.py:399
msgid "Platform" msgid "Platform"
msgstr "Plataforma" msgstr "Plataforma"
@ -2826,7 +2867,7 @@ msgstr "Sistema"
#: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18 #: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18
#: assets/serializers/cagegory.py:24 #: assets/serializers/cagegory.py:24
#: authentication/models/connection_token.py:35 #: authentication/models/connection_token.py:35
#: authentication/serializers/connect_token_secret.py:129 #: authentication/serializers/connect_token_secret.py:137
#: common/serializers/common.py:86 labels/models.py:12 settings/models.py:40 #: common/serializers/common.py:86 labels/models.py:12 settings/models.py:40
#: users/models/preference.py:13 #: users/models/preference.py:13
msgid "Value" msgid "Value"
@ -2835,7 +2876,7 @@ msgstr "Valor"
#: assets/models/label.py:40 assets/serializers/cagegory.py:10 #: assets/models/label.py:40 assets/serializers/cagegory.py:10
#: assets/serializers/cagegory.py:17 assets/serializers/cagegory.py:23 #: assets/serializers/cagegory.py:17 assets/serializers/cagegory.py:23
#: assets/serializers/platform.py:159 #: assets/serializers/platform.py:159
#: authentication/serializers/connect_token_secret.py:128 #: authentication/serializers/connect_token_secret.py:136
#: common/serializers/common.py:85 labels/serializers.py:45 #: common/serializers/common.py:85 labels/serializers.py:45
#: settings/serializers/msg.py:91 xpack/plugins/cloud/models.py:404 #: settings/serializers/msg.py:91 xpack/plugins/cloud/models.py:404
msgid "Label" msgid "Label"
@ -2886,7 +2927,7 @@ msgid "Required"
msgstr "Obrigatório" msgstr "Obrigatório"
#: assets/models/platform.py:19 assets/serializers/platform.py:161 #: assets/models/platform.py:19 assets/serializers/platform.py:161
#: terminal/models/component/storage.py:28 #: terminal/models/component/storage.py:28 users/const.py:42
#: xpack/plugins/cloud/providers/nutanix.py:30 #: xpack/plugins/cloud/providers/nutanix.py:30
msgid "Default" msgid "Default"
msgstr "Padrão" msgstr "Padrão"
@ -3168,7 +3209,7 @@ msgid "Disk total"
msgstr "Tamanho do disco rígido" msgstr "Tamanho do disco rígido"
#: assets/serializers/asset/info/gathered.py:16 #: assets/serializers/asset/info/gathered.py:16
#: authentication/serializers/connect_token_secret.py:119 #: authentication/serializers/connect_token_secret.py:127
msgid "OS" msgid "OS"
msgstr "Sistema operacional" msgstr "Sistema operacional"
@ -3478,7 +3519,7 @@ msgstr "Excluir diretório"
#: audits/const.py:14 audits/const.py:25 #: audits/const.py:14 audits/const.py:25
#: authentication/templates/authentication/_access_key_modal.html:65 #: authentication/templates/authentication/_access_key_modal.html:65
#: rbac/tree.py:292 #: rbac/tree.py:293
msgid "Delete" msgid "Delete"
msgstr "Excluir" msgstr "Excluir"
@ -3504,7 +3545,7 @@ msgstr "Baixar"
msgid "Rename dir" msgid "Rename dir"
msgstr "Mapeamento de Diretórios" msgstr "Mapeamento de Diretórios"
#: audits/const.py:23 rbac/tree.py:290 terminal/api/session/session.py:285 #: audits/const.py:23 rbac/tree.py:291 terminal/api/session/session.py:285
#: terminal/templates/terminal/_msg_session_sharing.html:10 #: terminal/templates/terminal/_msg_session_sharing.html:10
#: xpack/plugins/cloud/manager.py:102 #: xpack/plugins/cloud/manager.py:102
msgid "View" msgid "View"
@ -3512,7 +3553,7 @@ msgstr "Visualizar"
#: audits/const.py:26 #: audits/const.py:26
#: authentication/templates/authentication/_access_key_modal.html:22 #: authentication/templates/authentication/_access_key_modal.html:22
#: rbac/tree.py:289 #: rbac/tree.py:290
msgid "Create" msgid "Create"
msgstr "Criar" msgstr "Criar"
@ -3665,7 +3706,7 @@ msgid "MFA"
msgstr "MFA" msgstr "MFA"
#: audits/models.py:219 terminal/models/session/sharing.py:123 #: audits/models.py:219 terminal/models/session/sharing.py:123
#: xpack/plugins/cloud/manager.py:187 xpack/plugins/cloud/models.py:237 #: xpack/plugins/cloud/manager.py:186 xpack/plugins/cloud/models.py:237
msgid "Reason" msgid "Reason"
msgstr "Motivo" msgstr "Motivo"
@ -3928,6 +3969,10 @@ msgstr ""
msgid "Forgot password" msgid "Forgot password"
msgstr "Esqueceu a senha" msgstr "Esqueceu a senha"
#: authentication/api/password.py:70 authentication/mfa/email.py:42
msgid "The validity period of the verification code is {} minute"
msgstr "O código de verificação é válido por {} minuto"
#: authentication/apps.py:7 #: authentication/apps.py:7
msgid "App Authentication" msgid "App Authentication"
msgstr "gerenciamento de autenticação" msgstr "gerenciamento de autenticação"
@ -4355,7 +4400,7 @@ msgid "Input secret"
msgstr "Senha personalizada" msgstr "Senha personalizada"
#: authentication/models/connection_token.py:47 #: authentication/models/connection_token.py:47
#: authentication/serializers/connect_token_secret.py:118 #: authentication/serializers/connect_token_secret.py:126
#: terminal/models/applet/applet.py:43 #: terminal/models/applet/applet.py:43
#: terminal/models/virtualapp/virtualapp.py:24 #: terminal/models/virtualapp/virtualapp.py:24
#: terminal/serializers/session.py:31 terminal/serializers/session.py:58 #: terminal/serializers/session.py:31 terminal/serializers/session.py:58
@ -4418,15 +4463,15 @@ msgstr "Sem usuário ou usuário inválido"
msgid "No asset or inactive asset" msgid "No asset or inactive asset"
msgstr "Sem ativos ou ativos não ativados" msgstr "Sem ativos ou ativos não ativados"
#: authentication/models/connection_token.py:348 #: authentication/models/connection_token.py:360
msgid "Can view super connection token secret" msgid "Can view super connection token secret"
msgstr "Pode ver o texto cifrado do token de link super" msgstr "Pode ver o texto cifrado do token de link super"
#: authentication/models/connection_token.py:350 #: authentication/models/connection_token.py:362
msgid "Super connection token" msgid "Super connection token"
msgstr "Token de link super" msgstr "Token de link super"
#: authentication/models/connection_token.py:367 #: authentication/models/connection_token.py:379
msgid "Admin connection token" msgid "Admin connection token"
msgstr "TokenDeConexãoAdmin" msgstr "TokenDeConexãoAdmin"
@ -4478,38 +4523,38 @@ msgstr "ID OAuth"
msgid "binding reminder" msgid "binding reminder"
msgstr "Alerta de vinculação" msgstr "Alerta de vinculação"
#: authentication/serializers/connect_token_secret.py:120 #: authentication/serializers/connect_token_secret.py:128
msgid "Is builtin" msgid "Is builtin"
msgstr "Incorporado" msgstr "Incorporado"
#: authentication/serializers/connect_token_secret.py:124 #: authentication/serializers/connect_token_secret.py:132
msgid "Options" msgid "Options"
msgstr "Opções" msgstr "Opções"
#: authentication/serializers/connect_token_secret.py:131 #: authentication/serializers/connect_token_secret.py:139
#: ops/notifications.py:19 rbac/tree.py:63 #: ops/notifications.py:19 rbac/tree.py:63
msgid "Component" msgid "Component"
msgstr "Componentes" msgstr "Componentes"
#: authentication/serializers/connect_token_secret.py:140 #: authentication/serializers/connect_token_secret.py:148
msgid "Domain" msgid "Domain"
msgstr "Domínio da Web" msgstr "Domínio da Web"
#: authentication/serializers/connect_token_secret.py:142 #: authentication/serializers/connect_token_secret.py:151
msgid "Expired now" msgid "Expired now"
msgstr "Expiração Imediata" msgstr "Expiração Imediata"
#: authentication/serializers/connect_token_secret.py:175 #: authentication/serializers/connect_token_secret.py:184
#: terminal/models/virtualapp/virtualapp.py:25 #: terminal/models/virtualapp/virtualapp.py:25
msgid "Image name" msgid "Image name"
msgstr "Nome da Imagem" msgstr "Nome da Imagem"
#: authentication/serializers/connect_token_secret.py:176 #: authentication/serializers/connect_token_secret.py:185
#: terminal/models/virtualapp/virtualapp.py:27 #: terminal/models/virtualapp/virtualapp.py:27
msgid "Image port" msgid "Image port"
msgstr "Porta da Imagem" msgstr "Porta da Imagem"
#: authentication/serializers/connect_token_secret.py:177 #: authentication/serializers/connect_token_secret.py:186
#: terminal/models/virtualapp/virtualapp.py:26 #: terminal/models/virtualapp/virtualapp.py:26
msgid "Image protocol" msgid "Image protocol"
msgstr "Protocolo da Imagem" msgstr "Protocolo da Imagem"
@ -4628,13 +4673,13 @@ msgid "Show"
msgstr "Mostrar" msgstr "Mostrar"
#: authentication/templates/authentication/_access_key_modal.html:66 #: authentication/templates/authentication/_access_key_modal.html:66
#: settings/serializers/terminal.py:24 users/const.py:42 #: settings/serializers/terminal.py:24 users/const.py:48
#: users/templates/users/user_verify_mfa.html:36 #: users/templates/users/user_verify_mfa.html:36
msgid "Disable" msgid "Disable"
msgstr "Desativar" msgstr "Desativar"
#: authentication/templates/authentication/_access_key_modal.html:67 #: authentication/templates/authentication/_access_key_modal.html:67
#: settings/serializers/terminal.py:24 users/const.py:43 #: settings/serializers/terminal.py:24 users/const.py:49
#: users/templates/users/mfa_setting.html:120 #: users/templates/users/mfa_setting.html:120
#: users/templates/users/mfa_setting.html:158 #: users/templates/users/mfa_setting.html:158
#: users/templates/users/mfa_setting.html:177 #: users/templates/users/mfa_setting.html:177
@ -4695,16 +4740,11 @@ msgstr ""
"Se você suspeita de atividades incomuns, por favor, altere sua senha " "Se você suspeita de atividades incomuns, por favor, altere sua senha "
"imediatamente" "imediatamente"
#: authentication/templates/authentication/_msg_mfa_email_code.html:15
#: authentication/templates/authentication/_msg_reset_password_code.html:18
msgid "The validity period of the verification code is one minute"
msgstr "O código de verificação é válido por 1 minuto"
#: authentication/templates/authentication/_msg_oauth_bind.html:6 #: authentication/templates/authentication/_msg_oauth_bind.html:6
msgid "Your account has just been bound to" msgid "Your account has just been bound to"
msgstr "Sua conta acaba de ser conectada a" msgstr "Sua conta acaba de ser conectada a"
#: authentication/templates/authentication/_msg_oauth_bind.html:17 #: authentication/templates/authentication/_msg_oauth_bind.html:15
msgid "If the operation is not your own, unbind and change the password." msgid "If the operation is not your own, unbind and change the password."
msgstr "" msgstr ""
"Se essa ação não foi feita por você, por favor, desvincule sua conta e " "Se essa ação não foi feita por você, por favor, desvincule sua conta e "
@ -5071,7 +5111,7 @@ msgstr "Versão Profissional Empresarial"
msgid "Ultimate edition" msgid "Ultimate edition"
msgstr "Versão Premium Empresarial" msgstr "Versão Premium Empresarial"
#: common/const/common.py:5 xpack/plugins/cloud/manager.py:452 #: common/const/common.py:5 xpack/plugins/cloud/manager.py:451
#, python-format #, python-format
msgid "%(name)s was created successfully" msgid "%(name)s was created successfully"
msgstr "%(name)s criado com sucesso" msgstr "%(name)s criado com sucesso"
@ -5454,11 +5494,11 @@ msgstr ""
"Ação a ser realizada ao enviar email e anexos, quando a senha é alterada e o" "Ação a ser realizada ao enviar email e anexos, quando a senha é alterada e o"
" backup de conta gera anexos" " backup de conta gera anexos"
#: common/tasks.py:107 #: common/tasks.py:104
msgid "Upload account backup to external storage" msgid "Upload account backup to external storage"
msgstr "Upload de gravação de sessão para armazenamento externo" msgstr "Upload de gravação de sessão para armazenamento externo"
#: common/tasks.py:109 #: common/tasks.py:106
msgid "" msgid ""
"When performing an account backup, this task needs to be executed to " "When performing an account backup, this task needs to be executed to "
"external storage (SFTP)" "external storage (SFTP)"
@ -5885,7 +5925,7 @@ msgstr "* Por favor, insira uma expressão crontab válida"
#: ops/mixin.py:194 #: ops/mixin.py:194
msgid "Crontab minute must not contain '*'" msgid "Crontab minute must not contain '*'"
msgstr "" msgstr "O minuto do Crontab não pode conter “*”"
#: ops/mixin.py:208 settings/serializers/auth/mixin.py:12 #: ops/mixin.py:208 settings/serializers/auth/mixin.py:12
msgid "Require interval or crontab setting" msgid "Require interval or crontab setting"
@ -6674,7 +6714,7 @@ msgid "Storage"
msgstr "Armazenamento" msgstr "Armazenamento"
#: rbac/tree.py:64 terminal/models/applet/applet.py:53 #: rbac/tree.py:64 terminal/models/applet/applet.py:53
#: terminal/models/applet/applet.py:371 terminal/models/applet/host.py:30 #: terminal/models/applet/applet.py:379 terminal/models/applet/host.py:30
#: terminal/serializers/applet.py:16 #: terminal/serializers/applet.py:16
msgid "Applet" msgid "Applet"
msgstr "Aplicativo Remoto" msgstr "Aplicativo Remoto"
@ -6696,24 +6736,24 @@ msgstr "Auditoria de Tarefas"
msgid "Report" msgid "Report"
msgstr "Relatório" msgstr "Relatório"
#: rbac/tree.py:181 #: rbac/tree.py:182
msgid "App organizations" msgid "App organizations"
msgstr "Gerenciamento de Organização" msgstr "Gerenciamento de Organização"
#: rbac/tree.py:182 #: rbac/tree.py:183
msgid "Ticket comment" msgid "Ticket comment"
msgstr "Comentários de Ordem de Serviço" msgstr "Comentários de Ordem de Serviço"
#: rbac/tree.py:183 settings/serializers/feature.py:174 #: rbac/tree.py:184 settings/serializers/feature.py:174
#: settings/serializers/feature.py:176 tickets/models/ticket/general.py:310 #: settings/serializers/feature.py:176 tickets/models/ticket/general.py:310
msgid "Ticket" msgid "Ticket"
msgstr "Ordem de Serviço" msgstr "Ordem de Serviço"
#: rbac/tree.py:184 #: rbac/tree.py:185
msgid "Common setting" msgid "Common setting"
msgstr "Configurações Gerais" msgstr "Configurações Gerais"
#: rbac/tree.py:185 #: rbac/tree.py:186
msgid "View permission tree" msgid "View permission tree"
msgstr "Visualizar Árvore de Autorização" msgstr "Visualizar Árvore de Autorização"
@ -6757,6 +6797,14 @@ msgstr "Painel PAM"
msgid "ChangeSecretDashboard" msgid "ChangeSecretDashboard"
msgstr "Painel de Alteração de Senha da Conta" msgstr "Painel de Alteração de Senha da Conta"
#: reports/views.py:181
msgid "Failed to send email: "
msgstr "Envio de e-mail falhou"
#: reports/views.py:182
msgid "Email sent successfully to "
msgstr "Envio de e-mail bem-sucedido"
#: settings/api/chat.py:41 #: settings/api/chat.py:41
msgid "Chat AI is not enabled" msgid "Chat AI is not enabled"
msgstr "Chat AI Não Ativado" msgstr "Chat AI Não Ativado"
@ -6794,7 +6842,7 @@ msgstr "Configurações do Sistema"
#: settings/const.py:13 #: settings/const.py:13
msgid "Embed" msgid "Embed"
msgstr "" msgstr "Embutido"
#: settings/models.py:42 users/models/preference.py:14 #: settings/models.py:42 users/models/preference.py:14
msgid "Encrypted" msgid "Encrypted"
@ -7061,7 +7109,7 @@ msgstr ""
#: settings/serializers/auth/lark.py:13 users/models/user/_source.py:24 #: settings/serializers/auth/lark.py:13 users/models/user/_source.py:24
msgid "Lark" msgid "Lark"
msgstr "" msgstr "Lark"
#: settings/serializers/auth/lark.py:19 #: settings/serializers/auth/lark.py:19
msgid "" msgid ""
@ -7252,7 +7300,7 @@ msgstr "Sempre atualizar informações do usuário"
#: settings/serializers/auth/oidc.py:13 settings/serializers/auth/oidc.py:71 #: settings/serializers/auth/oidc.py:13 settings/serializers/auth/oidc.py:71
msgid "OIDC" msgid "OIDC"
msgstr "" msgstr "OIDC"
#: settings/serializers/auth/oidc.py:17 #: settings/serializers/auth/oidc.py:17
msgid "Base site URL" msgid "Base site URL"
@ -7319,6 +7367,8 @@ msgid ""
"The issuer URL of the OpenID Provider, used to discover its configuration " "The issuer URL of the OpenID Provider, used to discover its configuration "
"via the `$PROVIDER_ENDPOINT/.well-known/openid-configuration` endpoint." "via the `$PROVIDER_ENDPOINT/.well-known/openid-configuration` endpoint."
msgstr "" msgstr ""
"URL do emissor do provedor OpenID, usado para descobrir sua configuração "
"através do endpoint “$PROVIDER_ENDPOINT/.well-known/openid-configuration”."
#: settings/serializers/auth/oidc.py:87 #: settings/serializers/auth/oidc.py:87
msgid "JWKS endpoint" msgid "JWKS endpoint"
@ -7701,7 +7751,7 @@ msgid "Tenant ID"
msgstr "ID do inquilino" msgstr "ID do inquilino"
#: settings/serializers/feature.py:112 terminal/serializers/storage.py:68 #: settings/serializers/feature.py:112 terminal/serializers/storage.py:68
#: xpack/plugins/cloud/manager.py:119 xpack/plugins/cloud/manager.py:124 #: xpack/plugins/cloud/manager.py:119 xpack/plugins/cloud/manager.py:123
#: xpack/plugins/cloud/models.py:293 #: xpack/plugins/cloud/models.py:293
msgid "Region" msgid "Region"
msgstr "Região" msgstr "Região"
@ -8574,7 +8624,7 @@ msgstr "Baixar modelo atualizado"
#: templates/_foot_js.html:30 #: templates/_foot_js.html:30
msgid "Page footer" msgid "Page footer"
msgstr "" msgstr "Rodapé"
#: templates/_header_bar.html:12 #: templates/_header_bar.html:12
msgid "Help" msgid "Help"
@ -8686,7 +8736,7 @@ msgstr ""
"confirme que confia neste link." "confirme que confia neste link."
#: templates/resource_download.html:20 templates/resource_download.html:35 #: templates/resource_download.html:20 templates/resource_download.html:35
#: users/const.py:78 #: users/const.py:84
msgid "Client" msgid "Client"
msgstr "Cliente" msgstr "Cliente"
@ -8978,12 +9028,12 @@ msgstr "Somente suporte para plataformas personalizadas"
msgid "Missing type in platform.yml" msgid "Missing type in platform.yml"
msgstr "Tipo ausente em platform.yml" msgstr "Tipo ausente em platform.yml"
#: terminal/models/applet/applet.py:373 terminal/models/applet/host.py:36 #: terminal/models/applet/applet.py:381 terminal/models/applet/host.py:36
#: terminal/models/applet/host.py:138 #: terminal/models/applet/host.py:138
msgid "Hosting" msgid "Hosting"
msgstr "Máquina Hospedeira" msgstr "Máquina Hospedeira"
#: terminal/models/applet/applet.py:379 #: terminal/models/applet/applet.py:387
msgid "Applet Publication" msgid "Applet Publication"
msgstr "Publicação de Aplicativo" msgstr "Publicação de Aplicativo"
@ -9133,7 +9183,7 @@ msgstr "Usuário de aplicativo"
msgid "Can view terminal config" msgid "Can view terminal config"
msgstr "Pode-se visualizar a configuração do terminal" msgstr "Pode-se visualizar a configuração do terminal"
#: terminal/models/session/command.py:76 #: terminal/models/session/command.py:77
msgid "Command record" msgid "Command record"
msgstr "Registro de comandos" msgstr "Registro de comandos"
@ -10083,11 +10133,11 @@ msgstr "Você tem uma nova ordem de serviço, requerente - {}"
msgid "{}: New Ticket - {} ({})" msgid "{}: New Ticket - {} ({})"
msgstr "Nova Ordem de Serviço - {} ({})" msgstr "Nova Ordem de Serviço - {} ({})"
#: tickets/notifications.py:160 #: tickets/notifications.py:168
msgid "Your ticket has been processed, processor - {}" msgid "Your ticket has been processed, processor - {}"
msgstr "Sua ordem de serviço foi processada, operador - {}" msgstr "Sua ordem de serviço foi processada, operador - {}"
#: tickets/notifications.py:164 #: tickets/notifications.py:172
msgid "Ticket has processed - {} ({})" msgid "Ticket has processed - {} ({})"
msgstr "Sua ordem de serviço foi processada, operador - {} ( {} )" msgstr "Sua ordem de serviço foi processada, operador - {} ( {} )"
@ -10249,23 +10299,31 @@ msgstr "Janela atual"
msgid "New window" msgid "New window"
msgstr "Nova janela" msgstr "Nova janela"
#: users/const.py:47 #: users/const.py:43
msgid "Dark gray"
msgstr "Cinza escuro"
#: users/const.py:44
msgid "Deep blue"
msgstr "Azul escuro"
#: users/const.py:53
msgid "High32 bit" msgid "High32 bit"
msgstr "Alto (32 bit)" msgstr "Alto (32 bit)"
#: users/const.py:48 #: users/const.py:54
msgid "True Color24 bit" msgid "True Color24 bit"
msgstr "" msgstr "Cores verdadeiras (24 bits)"
#: users/const.py:49 #: users/const.py:55
msgid "Medium16 bit" msgid "Medium16 bit"
msgstr "Médio (16 bit)" msgstr "Médio (16 bit)"
#: users/const.py:82 #: users/const.py:88
msgid "Replace" msgid "Replace"
msgstr "Substituir" msgstr "Substituir"
#: users/const.py:83 #: users/const.py:89
msgid "Suffix" msgid "Suffix"
msgstr "Adicionar sufixo" msgstr "Adicionar sufixo"
@ -10483,7 +10541,7 @@ msgstr "Reiniciar chave SSH"
#: users/notifications.py:253 #: users/notifications.py:253
msgid "Update SSH Key url" msgid "Update SSH Key url"
msgstr "" msgstr "Atualizar endereço da chave SSH"
#: users/notifications.py:276 #: users/notifications.py:276
msgid "Reset MFA" msgid "Reset MFA"
@ -10494,12 +10552,12 @@ msgid "Reset MFA url"
msgstr "URL para redefinir MFA" msgstr "URL para redefinir MFA"
#: users/serializers/preference/koko.py:10 #: users/serializers/preference/koko.py:10
#: users/serializers/preference/luna.py:63 #: users/serializers/preference/luna.py:67
msgid "File name conflict resolution" msgid "File name conflict resolution"
msgstr "Solução de conflito de nomes de arquivos" msgstr "Solução de conflito de nomes de arquivos"
#: users/serializers/preference/koko.py:14 #: users/serializers/preference/koko.py:14
#: users/serializers/preference/luna.py:80 #: users/serializers/preference/luna.py:84
msgid "Terminal theme name" msgid "Terminal theme name"
msgstr "Nome do tema do terminal" msgstr "Nome do tema do terminal"
@ -10534,27 +10592,33 @@ msgstr "Carregamento assíncrono da árvore de ativos"
msgid "Connect default open method" msgid "Connect default open method"
msgstr "Forma padrão de abertura de conexão" msgstr "Forma padrão de abertura de conexão"
#: users/serializers/preference/luna.py:37 #: users/serializers/preference/luna.py:34
#: xpack/plugins/interface/models.py:41
#: xpack/plugins/interface/serializers/interface.py:26
msgid "Theme"
msgstr "Tema"
#: users/serializers/preference/luna.py:41
msgid "RDP resolution" msgid "RDP resolution"
msgstr "Resolução RDP" msgstr "Resolução RDP"
#: users/serializers/preference/luna.py:41 #: users/serializers/preference/luna.py:45
msgid "Keyboard layout" msgid "Keyboard layout"
msgstr "Layout do teclado" msgstr "Layout do teclado"
#: users/serializers/preference/luna.py:45 #: users/serializers/preference/luna.py:49
msgid "RDP client option" msgid "RDP client option"
msgstr "Opções do cliente RDP" msgstr "Opções do cliente RDP"
#: users/serializers/preference/luna.py:49 #: users/serializers/preference/luna.py:53
msgid "RDP color quality" msgid "RDP color quality"
msgstr "Qualidade de cor RDP" msgstr "Qualidade de cor RDP"
#: users/serializers/preference/luna.py:53 #: users/serializers/preference/luna.py:57
msgid "RDP smart size" msgid "RDP smart size"
msgstr "Tamanho inteligente RDP" msgstr "Tamanho inteligente RDP"
#: users/serializers/preference/luna.py:54 #: users/serializers/preference/luna.py:58
msgid "" msgid ""
"Determines whether the client computer should scale the content on the " "Determines whether the client computer should scale the content on the "
"remote computer to fit the window size of the client computer when the " "remote computer to fit the window size of the client computer when the "
@ -10564,27 +10628,27 @@ msgstr ""
"computador remoto para se ajustar ao tamanho da janela do computador cliente" "computador remoto para se ajustar ao tamanho da janela do computador cliente"
" quando o tamanho da janela é alterado" " quando o tamanho da janela é alterado"
#: users/serializers/preference/luna.py:59 #: users/serializers/preference/luna.py:63
msgid "Remote app connect method" msgid "Remote app connect method"
msgstr "Método de conexão do aplicativo remoto" msgstr "Método de conexão do aplicativo remoto"
#: users/serializers/preference/luna.py:70 #: users/serializers/preference/luna.py:74
msgid "Terminal font size" msgid "Terminal font size"
msgstr "Tamanho da fonte do terminal de caracteres" msgstr "Tamanho da fonte do terminal de caracteres"
#: users/serializers/preference/luna.py:73 #: users/serializers/preference/luna.py:77
msgid "Backspace as Ctrl+H" msgid "Backspace as Ctrl+H"
msgstr "Terminal de caracteres Backspace As Ctrl+H" msgstr "Terminal de caracteres Backspace As Ctrl+H"
#: users/serializers/preference/luna.py:76 #: users/serializers/preference/luna.py:80
msgid "Right click quickly paste" msgid "Right click quickly paste"
msgstr "Clique direito para colar rapidamente" msgstr "Clique direito para colar rapidamente"
#: users/serializers/preference/luna.py:86 #: users/serializers/preference/luna.py:90
msgid "Graphics" msgid "Graphics"
msgstr "Gráfico" msgstr "Gráfico"
#: users/serializers/preference/luna.py:87 #: users/serializers/preference/luna.py:91
msgid "Command line" msgid "Command line"
msgstr "Linha de comando" msgstr "Linha de comando"
@ -11195,7 +11259,7 @@ msgstr "ZStack"
#: xpack/plugins/cloud/const.py:30 xpack/plugins/cloud/providers/smartx.py:9 #: xpack/plugins/cloud/const.py:30 xpack/plugins/cloud/providers/smartx.py:9
msgid "SmartX CloudTower" msgid "SmartX CloudTower"
msgstr "" msgstr "SmartX Cloud Tower"
#: xpack/plugins/cloud/const.py:31 #: xpack/plugins/cloud/const.py:31
msgid "Fusion Compute" msgid "Fusion Compute"
@ -11298,17 +11362,17 @@ msgstr "Conclusão de execução da tarefa"
msgid "Synchronization regions" msgid "Synchronization regions"
msgstr "Sincronizar região" msgstr "Sincronizar região"
#: xpack/plugins/cloud/manager.py:141 #: xpack/plugins/cloud/manager.py:140
#, python-format #, python-format
msgid "Get instances of region \"%s\" error, error: %s" msgid "Get instances of region \"%s\" error, error: %s"
msgstr "Obter erro de instância na região \"%s\", erro: %s" msgstr "Obter erro de instância na região \"%s\", erro: %s"
#: xpack/plugins/cloud/manager.py:186 #: xpack/plugins/cloud/manager.py:185
#, python-format #, python-format
msgid "Failed to synchronize the instance \"%s\"" msgid "Failed to synchronize the instance \"%s\""
msgstr "Impossível sincronizar instância %s" msgstr "Impossível sincronizar instância %s"
#: xpack/plugins/cloud/manager.py:377 #: xpack/plugins/cloud/manager.py:376
#, python-format #, python-format
msgid "" msgid ""
"The updated platform of asset \"%s\" is inconsistent with the original " "The updated platform of asset \"%s\" is inconsistent with the original "
@ -11317,47 +11381,47 @@ msgstr ""
"A atualização da plataforma do ativo “%s” não é consistente com o tipo de " "A atualização da plataforma do ativo “%s” não é consistente com o tipo de "
"plataforma original. Ignorar atualização de plataforma e protocolo" "plataforma original. Ignorar atualização de plataforma e protocolo"
#: xpack/plugins/cloud/manager.py:434 #: xpack/plugins/cloud/manager.py:433
#, python-format #, python-format
msgid "The asset \"%s\" already exists" msgid "The asset \"%s\" already exists"
msgstr "Ativo \"%s\" já existe" msgstr "Ativo \"%s\" já existe"
#: xpack/plugins/cloud/manager.py:436 #: xpack/plugins/cloud/manager.py:435
#, python-format #, python-format
msgid "Update asset \"%s\"" msgid "Update asset \"%s\""
msgstr "Atualizando ativo \"%s\"" msgstr "Atualizando ativo \"%s\""
#: xpack/plugins/cloud/manager.py:439 #: xpack/plugins/cloud/manager.py:438
#, python-format #, python-format
msgid "Asset \"%s\" has been updated" msgid "Asset \"%s\" has been updated"
msgstr "Ativo \"%s\" foi atualizado" msgstr "Ativo \"%s\" foi atualizado"
#: xpack/plugins/cloud/manager.py:448 #: xpack/plugins/cloud/manager.py:447
#, python-format #, python-format
msgid "Prepare to create asset \"%s\"" msgid "Prepare to create asset \"%s\""
msgstr "Preparar para criar ativo %s" msgstr "Preparar para criar ativo %s"
#: xpack/plugins/cloud/manager.py:469 #: xpack/plugins/cloud/manager.py:468
#, python-format #, python-format
msgid "Set nodes \"%s\"" msgid "Set nodes \"%s\""
msgstr "Configurar os nós: \"%s\"" msgstr "Configurar os nós: \"%s\""
#: xpack/plugins/cloud/manager.py:495 #: xpack/plugins/cloud/manager.py:494
#, python-format #, python-format
msgid "Set accounts \"%s\"" msgid "Set accounts \"%s\""
msgstr "Configurar a conta: %s" msgstr "Configurar a conta: %s"
#: xpack/plugins/cloud/manager.py:511 #: xpack/plugins/cloud/manager.py:510
#, python-format #, python-format
msgid "Set protocols \"%s\"" msgid "Set protocols \"%s\""
msgstr "Configurar protocolo \"%s\"" msgstr "Configurar protocolo \"%s\""
#: xpack/plugins/cloud/manager.py:519 #: xpack/plugins/cloud/manager.py:518
#, python-format #, python-format
msgid "Set labels \"%s\"" msgid "Set labels \"%s\""
msgstr "Definir etiqueta: \"%s\"" msgstr "Definir etiqueta: \"%s\""
#: xpack/plugins/cloud/manager.py:533 xpack/plugins/cloud/tasks.py:31 #: xpack/plugins/cloud/manager.py:532 xpack/plugins/cloud/tasks.py:31
msgid "Run sync instance task" msgid "Run sync instance task"
msgstr "Executar tarefa de sincronização de instância" msgstr "Executar tarefa de sincronização de instância"
@ -11899,11 +11963,6 @@ msgstr "Gerenciar página de logo"
msgid "Logout logo" msgid "Logout logo"
msgstr "Fazer Logout" msgstr "Fazer Logout"
#: xpack/plugins/interface/models.py:41
#: xpack/plugins/interface/serializers/interface.py:26
msgid "Theme"
msgstr "Tema"
#: xpack/plugins/interface/models.py:42 #: xpack/plugins/interface/models.py:42
msgid "Footer content" msgid "Footer content"
msgstr "Conteúdo do rodapé" msgstr "Conteúdo do rodapé"
@ -11924,6 +11983,14 @@ msgstr "Importação de licença bem-sucedida"
msgid "Invalid license" msgid "Invalid license"
msgstr "Licença inválida" msgstr "Licença inválida"
#, fuzzy
#~ msgid "Themes"
#~ msgstr "Tema"
#, fuzzy
#~ msgid "domain_name"
#~ msgstr "Nome do domínio"
#~ msgid "Task execution id" #~ msgid "Task execution id"
#~ msgstr "ID de execução da tarefa" #~ msgstr "ID de execução da tarefa"

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-09-17 15:02+0800\n" "POT-Creation-Date: 2025-10-16 14:10+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: accounts/api/account/account.py:138 #: accounts/api/account/account.py:141
#: accounts/serializers/account/account.py:181 #: accounts/serializers/account/account.py:181
#: accounts/serializers/account/account.py:362 #: accounts/serializers/account/account.py:362
msgid "Account already exists" msgid "Account already exists"
@ -96,7 +96,7 @@ msgstr "Kế hoạch thực hiện đã kết thúc"
#: accounts/automations/base/manager.py:119 #: accounts/automations/base/manager.py:119
msgid "Windows does not support SSH key authentication" msgid "Windows does not support SSH key authentication"
msgstr "" msgstr "Windows không hỗ trợ xác thực bằng khóa SSH"
#: accounts/automations/base/manager.py:123 #: accounts/automations/base/manager.py:123
msgid "Windows password cannot contain special characters like > ^" msgid "Windows password cannot contain special characters like > ^"
@ -212,7 +212,7 @@ msgstr "Mẫu"
msgid "Skip" msgid "Skip"
msgstr "Bỏ qua" msgstr "Bỏ qua"
#: accounts/const/account.py:33 audits/const.py:24 rbac/tree.py:291 #: accounts/const/account.py:33 audits/const.py:24 rbac/tree.py:292
#: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6 #: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6
msgid "Update" msgid "Update"
msgstr "Cập nhật" msgstr "Cập nhật"
@ -580,17 +580,18 @@ msgstr "Hoạt động tài khoản"
#: accounts/serializers/account/service.py:29 #: accounts/serializers/account/service.py:29
#: accounts/serializers/account/virtual.py:20 acls/models/base.py:35 #: accounts/serializers/account/virtual.py:20 acls/models/base.py:35
#: acls/models/base.py:96 acls/models/command_acl.py:21 #: acls/models/base.py:96 acls/models/command_acl.py:21
#: acls/notifications.py:69 acls/serializers/base.py:35 #: acls/models/data_masking.py:20 acls/notifications.py:69
#: assets/models/asset/common.py:100 assets/models/asset/common.py:166 #: acls/serializers/base.py:35 assets/models/asset/common.py:100
#: assets/models/cmd_filter.py:21 assets/models/label.py:18 #: assets/models/asset/common.py:166 assets/models/cmd_filter.py:21
#: assets/models/platform.py:15 assets/models/platform.py:94 #: assets/models/label.py:18 assets/models/platform.py:15
#: assets/models/zone.py:19 assets/serializers/asset/common.py:174 #: assets/models/platform.py:94 assets/models/zone.py:19
#: assets/serializers/platform.py:158 assets/serializers/platform.py:283 #: assets/serializers/asset/common.py:174 assets/serializers/platform.py:158
#: assets/serializers/platform.py:283
#: authentication/backends/passkey/models.py:10 #: authentication/backends/passkey/models.py:10
#: authentication/models/ssh_key.py:12 authentication/notifications.py:17 #: authentication/models/ssh_key.py:12 authentication/notifications.py:17
#: authentication/notifications.py:56 #: authentication/notifications.py:56
#: authentication/serializers/connect_token_secret.py:117 #: authentication/serializers/connect_token_secret.py:125
#: authentication/serializers/connect_token_secret.py:174 labels/models.py:11 #: authentication/serializers/connect_token_secret.py:183 labels/models.py:11
#: ops/mixin.py:32 ops/models/adhoc.py:19 ops/models/celery.py:15 #: ops/mixin.py:32 ops/models/adhoc.py:19 ops/models/celery.py:15
#: ops/models/celery.py:81 ops/models/job.py:147 ops/models/playbook.py:28 #: ops/models/celery.py:81 ops/models/job.py:147 ops/models/playbook.py:28
#: ops/models/variable.py:9 ops/serializers/job.py:20 #: ops/models/variable.py:9 ops/serializers/job.py:20
@ -784,7 +785,7 @@ msgstr "Ngày kết thúc"
#: assets/models/automations/base.py:137 #: assets/models/automations/base.py:137
#: assets/serializers/automations/base.py:47 audits/models.py:224 #: assets/serializers/automations/base.py:47 audits/models.py:224
#: audits/serializers.py:77 ops/models/base.py:49 ops/models/job.py:233 #: audits/serializers.py:77 ops/models/base.py:49 ops/models/job.py:233
#: terminal/models/applet/applet.py:374 terminal/models/applet/host.py:140 #: terminal/models/applet/applet.py:382 terminal/models/applet/host.py:140
#: terminal/models/component/status.py:30 #: terminal/models/component/status.py:30
#: terminal/models/virtualapp/virtualapp.py:99 #: terminal/models/virtualapp/virtualapp.py:99
#: terminal/serializers/applet.py:19 terminal/serializers/applet_host.py:163 #: terminal/serializers/applet.py:19 terminal/serializers/applet_host.py:163
@ -925,7 +926,7 @@ msgstr "Rủi ro tài khoản"
#: accounts/models/automations/check_account.py:119 #: accounts/models/automations/check_account.py:119
msgid "Slug" msgid "Slug"
msgstr "" msgstr "URL nhận diện"
#: accounts/models/automations/check_account.py:125 #: accounts/models/automations/check_account.py:125
msgid "Check engine" msgid "Check engine"
@ -1059,7 +1060,7 @@ msgstr "Quy tắc mật khẩu"
#: accounts/models/base.py:69 assets/models/automations/base.py:28 #: accounts/models/base.py:69 assets/models/automations/base.py:28
#: assets/models/cmd_filter.py:39 assets/models/label.py:22 #: assets/models/cmd_filter.py:39 assets/models/label.py:22
#: authentication/serializers/connect_token_secret.py:121 #: authentication/serializers/connect_token_secret.py:129
#: terminal/models/applet/applet.py:41 #: terminal/models/applet/applet.py:41
#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:257 #: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:257
msgid "Is active" msgid "Is active"
@ -1242,7 +1243,7 @@ msgstr "Thể loại"
#: assets/serializers/platform.py:160 assets/serializers/platform.py:172 #: assets/serializers/platform.py:160 assets/serializers/platform.py:172
#: audits/serializers.py:76 audits/serializers.py:196 #: audits/serializers.py:76 audits/serializers.py:196
#: authentication/models/connection_token.py:67 #: authentication/models/connection_token.py:67
#: authentication/serializers/connect_token_secret.py:130 #: authentication/serializers/connect_token_secret.py:138
#: ops/models/job.py:155 perms/serializers/user_permission.py:28 #: ops/models/job.py:155 perms/serializers/user_permission.py:28
#: terminal/models/applet/applet.py:40 terminal/models/component/storage.py:58 #: terminal/models/applet/applet.py:40 terminal/models/component/storage.py:58
#: terminal/models/component/storage.py:152 terminal/serializers/applet.py:30 #: terminal/models/component/storage.py:152 terminal/serializers/applet.py:30
@ -1267,7 +1268,7 @@ msgstr "Dịch vụ thư mục"
#: accounts/serializers/account/account.py:278 #: accounts/serializers/account/account.py:278
#, python-brace-format #, python-brace-format
msgid "Account already exists. Field(s): {fields} must be unique." msgid "Account already exists. Field(s): {fields} must be unique."
msgstr "" msgstr "Tài khoản đã tồn tại. Trường :{fields} phải là duy nhất."
#: accounts/serializers/account/account.py:285 #: accounts/serializers/account/account.py:285
msgid "Has secret" msgid "Has secret"
@ -1314,7 +1315,7 @@ msgid "Spec info"
msgstr "Thông tin đặc biệt" msgstr "Thông tin đặc biệt"
#: accounts/serializers/account/account.py:493 #: accounts/serializers/account/account.py:493
#: authentication/serializers/connect_token_secret.py:164 #: authentication/serializers/connect_token_secret.py:173
#: authentication/templates/authentication/_access_key_modal.html:30 #: authentication/templates/authentication/_access_key_modal.html:30
#: perms/models/perm_node.py:21 users/serializers/group.py:33 #: perms/models/perm_node.py:21 users/serializers/group.py:33
msgid "ID" msgid "ID"
@ -1373,7 +1374,7 @@ msgstr "Danh sách trắng IP"
#: assets/models/cmd_filter.py:88 common/db/models.py:36 #: assets/models/cmd_filter.py:88 common/db/models.py:36
#: ops/models/adhoc.py:25 ops/models/job.py:165 ops/models/playbook.py:31 #: ops/models/adhoc.py:25 ops/models/job.py:165 ops/models/playbook.py:31
#: rbac/models/role.py:37 settings/models.py:44 #: rbac/models/role.py:37 settings/models.py:44
#: terminal/models/applet/applet.py:46 terminal/models/applet/applet.py:375 #: terminal/models/applet/applet.py:46 terminal/models/applet/applet.py:383
#: terminal/models/applet/host.py:143 terminal/models/component/endpoint.py:29 #: terminal/models/applet/host.py:143 terminal/models/component/endpoint.py:29
#: terminal/models/component/endpoint.py:117 #: terminal/models/component/endpoint.py:117
#: terminal/models/session/session.py:44 #: terminal/models/session/session.py:44
@ -1902,7 +1903,7 @@ msgstr ""
#: acls/models/base.py:41 acls/serializers/base.py:57 #: acls/models/base.py:41 acls/serializers/base.py:57
#: assets/models/cmd_filter.py:81 audits/models.py:99 #: assets/models/cmd_filter.py:81 audits/models.py:99
#: audits/serializers.py:107 #: audits/serializers.py:107
#: authentication/serializers/connect_token_secret.py:123 #: authentication/serializers/connect_token_secret.py:131
#: authentication/templates/authentication/_access_key_modal.html:34 #: authentication/templates/authentication/_access_key_modal.html:34
#: perms/serializers/permission.py:63 perms/serializers/permission.py:85 #: perms/serializers/permission.py:63 perms/serializers/permission.py:85
#: terminal/backends/command/models.py:24 #: terminal/backends/command/models.py:24
@ -1911,7 +1912,7 @@ msgid "Action"
msgstr "Action" msgstr "Action"
#: acls/models/base.py:42 assets/models/cmd_filter.py:86 #: acls/models/base.py:42 assets/models/cmd_filter.py:86
#: authentication/serializers/connect_token_secret.py:93 #: authentication/serializers/connect_token_secret.py:101
msgid "Reviewers" msgid "Reviewers"
msgstr "Người phê duyệt" msgstr "Người phê duyệt"
@ -1952,7 +1953,7 @@ msgstr "Bỏ qua chữ hoa chữ thường"
#: acls/models/command_acl.py:33 acls/models/command_acl.py:97 #: acls/models/command_acl.py:33 acls/models/command_acl.py:97
#: acls/serializers/command_acl.py:29 #: acls/serializers/command_acl.py:29
#: authentication/serializers/connect_token_secret.py:90 #: authentication/serializers/connect_token_secret.py:98
#: terminal/templates/terminal/_msg_command_warning.html:23 #: terminal/templates/terminal/_msg_command_warning.html:23
msgid "Command group" msgid "Command group"
msgstr "Nhóm lệnh" msgstr "Nhóm lệnh"
@ -1978,6 +1979,38 @@ msgstr "Phương thức kết nối"
msgid "Connect method acl" msgid "Connect method acl"
msgstr "Kiểm soát phương thức kết nối" msgstr "Kiểm soát phương thức kết nối"
#: acls/models/data_masking.py:13
msgid "Fixed Character Replacement"
msgstr "Thay thế ký tự cố định"
#: acls/models/data_masking.py:14
msgid "Hide Middle Characters"
msgstr "Ẩn ký tự ở giữa"
#: acls/models/data_masking.py:15
msgid "Keep Prefix Only"
msgstr "Giữ tiền tố"
#: acls/models/data_masking.py:16
msgid "Keep Suffix Only"
msgstr "Giữ hậu tố"
#: acls/models/data_masking.py:21
msgid "Fields pattern"
msgstr "Che giấu tên cột"
#: acls/models/data_masking.py:27 acls/serializers/data_masking.py:14
msgid "Masking Method"
msgstr "Phương pháp che phủ"
#: acls/models/data_masking.py:31
msgid "Mask Pattern"
msgstr "Ký tự che phủ"
#: acls/models/data_masking.py:42
msgid "Data Masking Rule"
msgstr "Quy tắc bảo vệ dữ liệu"
#: acls/models/login_acl.py:11 acls/models/login_asset_acl.py:9 #: acls/models/login_acl.py:11 acls/models/login_asset_acl.py:9
#: acls/serializers/login_acl.py:16 acls/serializers/login_asset_acl.py:13 #: acls/serializers/login_acl.py:16 acls/serializers/login_asset_acl.py:13
msgid "Rule" msgid "Rule"
@ -2012,6 +2045,14 @@ msgstr "Nhắc nhở người dùng đăng nhập"
msgid "Login city" msgid "Login city"
msgstr "Thành phố đăng nhập" msgstr "Thành phố đăng nhập"
#: acls/notifications.py:20 acls/notifications.py:71
msgid "Recipient name"
msgstr "Tên người nhận"
#: acls/notifications.py:21 acls/notifications.py:72
msgid "Recipient username"
msgstr "Tên người dùng người nhận"
#: acls/notifications.py:22 acls/templates/acls/user_login_reminder.html:12 #: acls/notifications.py:22 acls/templates/acls/user_login_reminder.html:12
#: audits/models.py:213 audits/models.py:291 audits/serializers.py:91 #: audits/models.py:213 audits/models.py:291 audits/serializers.py:91
msgid "User agent" msgid "User agent"
@ -2321,7 +2362,7 @@ msgstr "Vô hiệu hóa"
#: assets/const/base.py:33 settings/serializers/basic.py:8 #: assets/const/base.py:33 settings/serializers/basic.py:8
#: users/serializers/preference/koko.py:19 #: users/serializers/preference/koko.py:19
#: users/serializers/preference/lina.py:51 #: users/serializers/preference/lina.py:51
#: users/serializers/preference/luna.py:85 #: users/serializers/preference/luna.py:89
msgid "Basic" msgid "Basic"
msgstr "Cơ bản" msgstr "Cơ bản"
@ -2349,7 +2390,7 @@ msgstr "Cloud"
#: assets/const/category.py:14 assets/models/asset/gpt.py:11 #: assets/const/category.py:14 assets/models/asset/gpt.py:11
#: assets/models/asset/web.py:16 audits/const.py:46 #: assets/models/asset/web.py:16 audits/const.py:46
#: terminal/models/applet/applet.py:28 users/const.py:77 #: terminal/models/applet/applet.py:28 users/const.py:83
msgid "Web" msgid "Web"
msgstr "Web" msgstr "Web"
@ -2379,15 +2420,15 @@ msgstr "Huawei"
#: assets/const/device.py:9 #: assets/const/device.py:9
msgid "H3C" msgid "H3C"
msgstr "" msgstr "H3C"
#: assets/const/device.py:10 #: assets/const/device.py:10
msgid "Juniper" msgid "Juniper"
msgstr "" msgstr "Juniper"
#: assets/const/device.py:11 #: assets/const/device.py:11
msgid "TP-Link" msgid "TP-Link"
msgstr "" msgstr "TP-Link"
#: assets/const/device.py:12 assets/const/ds.py:7 #: assets/const/device.py:12 assets/const/ds.py:7
#: terminal/models/applet/applet.py:27 tickets/const.py:9 #: terminal/models/applet/applet.py:27 tickets/const.py:9
@ -2410,7 +2451,7 @@ msgstr "Tường lửa"
msgid "Windows Active Directory" msgid "Windows Active Directory"
msgstr "Active Directory Windows" msgstr "Active Directory Windows"
#: assets/const/gpt.py:7 #: assets/const/gpt.py:8
msgid "ChatGPT" msgid "ChatGPT"
msgstr "ChatGPT" msgstr "ChatGPT"
@ -2538,7 +2579,7 @@ msgstr "Mã hóa"
#: assets/const/protocol.py:202 #: assets/const/protocol.py:202
msgid "Whether to use TLS encryption." msgid "Whether to use TLS encryption."
msgstr "" msgstr "Có sử dụng mã hóa TLS không?."
#: assets/const/protocol.py:232 #: assets/const/protocol.py:232
msgid "Auth source" msgid "Auth source"
@ -2635,7 +2676,7 @@ msgstr "Địa chỉ"
#: assets/models/asset/common.py:169 assets/models/platform.py:155 #: assets/models/asset/common.py:169 assets/models/platform.py:155
#: assets/serializers/asset/common.py:151 #: assets/serializers/asset/common.py:151
#: authentication/backends/passkey/models.py:12 #: authentication/backends/passkey/models.py:12
#: authentication/serializers/connect_token_secret.py:122 #: authentication/serializers/connect_token_secret.py:130
#: perms/serializers/user_permission.py:26 xpack/plugins/cloud/models.py:399 #: perms/serializers/user_permission.py:26 xpack/plugins/cloud/models.py:399
msgid "Platform" msgid "Platform"
msgstr "Nền tảng" msgstr "Nền tảng"
@ -2828,7 +2869,7 @@ msgstr "Hệ thống"
#: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18 #: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18
#: assets/serializers/cagegory.py:24 #: assets/serializers/cagegory.py:24
#: authentication/models/connection_token.py:35 #: authentication/models/connection_token.py:35
#: authentication/serializers/connect_token_secret.py:129 #: authentication/serializers/connect_token_secret.py:137
#: common/serializers/common.py:86 labels/models.py:12 settings/models.py:40 #: common/serializers/common.py:86 labels/models.py:12 settings/models.py:40
#: users/models/preference.py:13 #: users/models/preference.py:13
msgid "Value" msgid "Value"
@ -2837,7 +2878,7 @@ msgstr "Giá trị"
#: assets/models/label.py:40 assets/serializers/cagegory.py:10 #: assets/models/label.py:40 assets/serializers/cagegory.py:10
#: assets/serializers/cagegory.py:17 assets/serializers/cagegory.py:23 #: assets/serializers/cagegory.py:17 assets/serializers/cagegory.py:23
#: assets/serializers/platform.py:159 #: assets/serializers/platform.py:159
#: authentication/serializers/connect_token_secret.py:128 #: authentication/serializers/connect_token_secret.py:136
#: common/serializers/common.py:85 labels/serializers.py:45 #: common/serializers/common.py:85 labels/serializers.py:45
#: settings/serializers/msg.py:91 xpack/plugins/cloud/models.py:404 #: settings/serializers/msg.py:91 xpack/plugins/cloud/models.py:404
msgid "Label" msgid "Label"
@ -2888,7 +2929,7 @@ msgid "Required"
msgstr "Thiết yếu" msgstr "Thiết yếu"
#: assets/models/platform.py:19 assets/serializers/platform.py:161 #: assets/models/platform.py:19 assets/serializers/platform.py:161
#: terminal/models/component/storage.py:28 #: terminal/models/component/storage.py:28 users/const.py:42
#: xpack/plugins/cloud/providers/nutanix.py:30 #: xpack/plugins/cloud/providers/nutanix.py:30
msgid "Default" msgid "Default"
msgstr "Mặc định" msgstr "Mặc định"
@ -3169,7 +3210,7 @@ msgid "Disk total"
msgstr "Dung lượng ổ cứng" msgstr "Dung lượng ổ cứng"
#: assets/serializers/asset/info/gathered.py:16 #: assets/serializers/asset/info/gathered.py:16
#: authentication/serializers/connect_token_secret.py:119 #: authentication/serializers/connect_token_secret.py:127
msgid "OS" msgid "OS"
msgstr "Hệ điều hành" msgstr "Hệ điều hành"
@ -3507,7 +3548,7 @@ msgstr "Xóa thư mục"
#: audits/const.py:14 audits/const.py:25 #: audits/const.py:14 audits/const.py:25
#: authentication/templates/authentication/_access_key_modal.html:65 #: authentication/templates/authentication/_access_key_modal.html:65
#: rbac/tree.py:292 #: rbac/tree.py:293
msgid "Delete" msgid "Delete"
msgstr "Xóa" msgstr "Xóa"
@ -3533,7 +3574,7 @@ msgstr "Tải xuống"
msgid "Rename dir" msgid "Rename dir"
msgstr "Liên kết thư mục" msgstr "Liên kết thư mục"
#: audits/const.py:23 rbac/tree.py:290 terminal/api/session/session.py:285 #: audits/const.py:23 rbac/tree.py:291 terminal/api/session/session.py:285
#: terminal/templates/terminal/_msg_session_sharing.html:10 #: terminal/templates/terminal/_msg_session_sharing.html:10
#: xpack/plugins/cloud/manager.py:102 #: xpack/plugins/cloud/manager.py:102
msgid "View" msgid "View"
@ -3541,7 +3582,7 @@ msgstr "Xem"
#: audits/const.py:26 #: audits/const.py:26
#: authentication/templates/authentication/_access_key_modal.html:22 #: authentication/templates/authentication/_access_key_modal.html:22
#: rbac/tree.py:289 #: rbac/tree.py:290
msgid "Create" msgid "Create"
msgstr "Tạo" msgstr "Tạo"
@ -3694,7 +3735,7 @@ msgid "MFA"
msgstr "MFA" msgstr "MFA"
#: audits/models.py:219 terminal/models/session/sharing.py:123 #: audits/models.py:219 terminal/models/session/sharing.py:123
#: xpack/plugins/cloud/manager.py:187 xpack/plugins/cloud/models.py:237 #: xpack/plugins/cloud/manager.py:186 xpack/plugins/cloud/models.py:237
msgid "Reason" msgid "Reason"
msgstr "Nguyên nhân" msgstr "Nguyên nhân"
@ -3954,6 +3995,10 @@ msgstr ""
msgid "Forgot password" msgid "Forgot password"
msgstr "Quên mật khẩu" msgstr "Quên mật khẩu"
#: authentication/api/password.py:70 authentication/mfa/email.py:42
msgid "The validity period of the verification code is {} minute"
msgstr "Mã xác minh có hiệu lực trong {} phút"
#: authentication/apps.py:7 #: authentication/apps.py:7
msgid "App Authentication" msgid "App Authentication"
msgstr "Authentication" msgstr "Authentication"
@ -4380,7 +4425,7 @@ msgid "Input secret"
msgstr "Mật khẩu tùy chỉnh" msgstr "Mật khẩu tùy chỉnh"
#: authentication/models/connection_token.py:47 #: authentication/models/connection_token.py:47
#: authentication/serializers/connect_token_secret.py:118 #: authentication/serializers/connect_token_secret.py:126
#: terminal/models/applet/applet.py:43 #: terminal/models/applet/applet.py:43
#: terminal/models/virtualapp/virtualapp.py:24 #: terminal/models/virtualapp/virtualapp.py:24
#: terminal/serializers/session.py:31 terminal/serializers/session.py:58 #: terminal/serializers/session.py:31 terminal/serializers/session.py:58
@ -4443,15 +4488,15 @@ msgstr "Không có người dùng hoặc người dùng đã hết hiệu lực"
msgid "No asset or inactive asset" msgid "No asset or inactive asset"
msgstr "Không có tài sản hoặc tài sản chưa được kích hoạt" msgstr "Không có tài sản hoặc tài sản chưa được kích hoạt"
#: authentication/models/connection_token.py:348 #: authentication/models/connection_token.py:360
msgid "Can view super connection token secret" msgid "Can view super connection token secret"
msgstr "Có thể xem mã hóa của siêu mã thông báo kết nối" msgstr "Có thể xem mã hóa của siêu mã thông báo kết nối"
#: authentication/models/connection_token.py:350 #: authentication/models/connection_token.py:362
msgid "Super connection token" msgid "Super connection token"
msgstr "Siêu mã thông báo kết nối" msgstr "Siêu mã thông báo kết nối"
#: authentication/models/connection_token.py:367 #: authentication/models/connection_token.py:379
msgid "Admin connection token" msgid "Admin connection token"
msgstr "Mã thông báo kết nối quản trị" msgstr "Mã thông báo kết nối quản trị"
@ -4505,38 +4550,38 @@ msgstr ""
msgid "binding reminder" msgid "binding reminder"
msgstr "Nhắc nhở liên kết" msgstr "Nhắc nhở liên kết"
#: authentication/serializers/connect_token_secret.py:120 #: authentication/serializers/connect_token_secret.py:128
msgid "Is builtin" msgid "Is builtin"
msgstr "Builtin" msgstr "Builtin"
#: authentication/serializers/connect_token_secret.py:124 #: authentication/serializers/connect_token_secret.py:132
msgid "Options" msgid "Options"
msgstr "Tùy chọn" msgstr "Tùy chọn"
#: authentication/serializers/connect_token_secret.py:131 #: authentication/serializers/connect_token_secret.py:139
#: ops/notifications.py:19 rbac/tree.py:63 #: ops/notifications.py:19 rbac/tree.py:63
msgid "Component" msgid "Component"
msgstr "Thành phần" msgstr "Thành phần"
#: authentication/serializers/connect_token_secret.py:140 #: authentication/serializers/connect_token_secret.py:148
msgid "Domain" msgid "Domain"
msgstr "Tên miền" msgstr "Tên miền"
#: authentication/serializers/connect_token_secret.py:142 #: authentication/serializers/connect_token_secret.py:151
msgid "Expired now" msgid "Expired now"
msgstr "Ngừng hiệu lực ngay lập tức" msgstr "Ngừng hiệu lực ngay lập tức"
#: authentication/serializers/connect_token_secret.py:175 #: authentication/serializers/connect_token_secret.py:184
#: terminal/models/virtualapp/virtualapp.py:25 #: terminal/models/virtualapp/virtualapp.py:25
msgid "Image name" msgid "Image name"
msgstr "Tên hình ảnh" msgstr "Tên hình ảnh"
#: authentication/serializers/connect_token_secret.py:176 #: authentication/serializers/connect_token_secret.py:185
#: terminal/models/virtualapp/virtualapp.py:27 #: terminal/models/virtualapp/virtualapp.py:27
msgid "Image port" msgid "Image port"
msgstr "Cổng hình ảnh" msgstr "Cổng hình ảnh"
#: authentication/serializers/connect_token_secret.py:177 #: authentication/serializers/connect_token_secret.py:186
#: terminal/models/virtualapp/virtualapp.py:26 #: terminal/models/virtualapp/virtualapp.py:26
msgid "Image protocol" msgid "Image protocol"
msgstr "Giao thức hình ảnh" msgstr "Giao thức hình ảnh"
@ -4654,13 +4699,13 @@ msgid "Show"
msgstr "Hiển thị" msgstr "Hiển thị"
#: authentication/templates/authentication/_access_key_modal.html:66 #: authentication/templates/authentication/_access_key_modal.html:66
#: settings/serializers/terminal.py:24 users/const.py:42 #: settings/serializers/terminal.py:24 users/const.py:48
#: users/templates/users/user_verify_mfa.html:36 #: users/templates/users/user_verify_mfa.html:36
msgid "Disable" msgid "Disable"
msgstr "Vô hiệu hóa" msgstr "Vô hiệu hóa"
#: authentication/templates/authentication/_access_key_modal.html:67 #: authentication/templates/authentication/_access_key_modal.html:67
#: settings/serializers/terminal.py:24 users/const.py:43 #: settings/serializers/terminal.py:24 users/const.py:49
#: users/templates/users/mfa_setting.html:120 #: users/templates/users/mfa_setting.html:120
#: users/templates/users/mfa_setting.html:158 #: users/templates/users/mfa_setting.html:158
#: users/templates/users/mfa_setting.html:177 #: users/templates/users/mfa_setting.html:177
@ -4721,16 +4766,11 @@ msgstr ""
"Nếu nghi ngờ hành vi đăng nhập này là bất thường, hãy kịp thời thay đổi mật " "Nếu nghi ngờ hành vi đăng nhập này là bất thường, hãy kịp thời thay đổi mật "
"khẩu tài khoản" "khẩu tài khoản"
#: authentication/templates/authentication/_msg_mfa_email_code.html:15
#: authentication/templates/authentication/_msg_reset_password_code.html:18
msgid "The validity period of the verification code is one minute"
msgstr "Mã xác thực có hiệu lực trong 1 phút"
#: authentication/templates/authentication/_msg_oauth_bind.html:6 #: authentication/templates/authentication/_msg_oauth_bind.html:6
msgid "Your account has just been bound to" msgid "Your account has just been bound to"
msgstr "Tài khoản của bạn vừa được liên kết đến" msgstr "Tài khoản của bạn vừa được liên kết đến"
#: authentication/templates/authentication/_msg_oauth_bind.html:17 #: authentication/templates/authentication/_msg_oauth_bind.html:15
msgid "If the operation is not your own, unbind and change the password." msgid "If the operation is not your own, unbind and change the password."
msgstr "" msgstr ""
"Nếu thao tác không phải do bạn thực hiện, vui lòng hủy liên kết và thay đổi " "Nếu thao tác không phải do bạn thực hiện, vui lòng hủy liên kết và thay đổi "
@ -5093,7 +5133,7 @@ msgstr "Phiên bản chuyên nghiệp doanh nghiệp"
msgid "Ultimate edition" msgid "Ultimate edition"
msgstr "Phiên bản cao cấp doanh nghiệp" msgstr "Phiên bản cao cấp doanh nghiệp"
#: common/const/common.py:5 xpack/plugins/cloud/manager.py:452 #: common/const/common.py:5 xpack/plugins/cloud/manager.py:451
#, python-format #, python-format
msgid "%(name)s was created successfully" msgid "%(name)s was created successfully"
msgstr "%(name)s đã tạo thành công" msgstr "%(name)s đã tạo thành công"
@ -5484,11 +5524,11 @@ msgstr ""
"Khi đổi mật khẩu tài khoản, tệp đính kèm từ việc sao lưu tài khoản cần được " "Khi đổi mật khẩu tài khoản, tệp đính kèm từ việc sao lưu tài khoản cần được "
"gửi qua email, thực hiện nhiệm vụ này" "gửi qua email, thực hiện nhiệm vụ này"
#: common/tasks.py:107 #: common/tasks.py:104
msgid "Upload account backup to external storage" msgid "Upload account backup to external storage"
msgstr "Tải lên video cuộc họp vào lưu trữ bên ngoài" msgstr "Tải lên video cuộc họp vào lưu trữ bên ngoài"
#: common/tasks.py:109 #: common/tasks.py:106
msgid "" msgid ""
"When performing an account backup, this task needs to be executed to " "When performing an account backup, this task needs to be executed to "
"external storage (SFTP)" "external storage (SFTP)"
@ -5911,7 +5951,7 @@ msgstr "* Vui lòng nhập biểu thức crontab hợp lệ"
#: ops/mixin.py:194 #: ops/mixin.py:194
msgid "Crontab minute must not contain '*'" msgid "Crontab minute must not contain '*'"
msgstr "" msgstr "Phút trong Crontab không thể chứa “*”"
#: ops/mixin.py:208 settings/serializers/auth/mixin.py:12 #: ops/mixin.py:208 settings/serializers/auth/mixin.py:12
msgid "Require interval or crontab setting" msgid "Require interval or crontab setting"
@ -6695,7 +6735,7 @@ msgid "Storage"
msgstr "Lưu trữ" msgstr "Lưu trữ"
#: rbac/tree.py:64 terminal/models/applet/applet.py:53 #: rbac/tree.py:64 terminal/models/applet/applet.py:53
#: terminal/models/applet/applet.py:371 terminal/models/applet/host.py:30 #: terminal/models/applet/applet.py:379 terminal/models/applet/host.py:30
#: terminal/serializers/applet.py:16 #: terminal/serializers/applet.py:16
msgid "Applet" msgid "Applet"
msgstr "Ứng dụng từ xa" msgstr "Ứng dụng từ xa"
@ -6717,24 +6757,24 @@ msgstr "Kiểm tra công việc"
msgid "Report" msgid "Report"
msgstr "Báo cáo" msgstr "Báo cáo"
#: rbac/tree.py:181 #: rbac/tree.py:182
msgid "App organizations" msgid "App organizations"
msgstr "Organizations" msgstr "Organizations"
#: rbac/tree.py:182 #: rbac/tree.py:183
msgid "Ticket comment" msgid "Ticket comment"
msgstr "Nhận xét nhiệm vụ" msgstr "Nhận xét nhiệm vụ"
#: rbac/tree.py:183 settings/serializers/feature.py:174 #: rbac/tree.py:184 settings/serializers/feature.py:174
#: settings/serializers/feature.py:176 tickets/models/ticket/general.py:310 #: settings/serializers/feature.py:176 tickets/models/ticket/general.py:310
msgid "Ticket" msgid "Ticket"
msgstr "Nhiệm vụ" msgstr "Nhiệm vụ"
#: rbac/tree.py:184 #: rbac/tree.py:185
msgid "Common setting" msgid "Common setting"
msgstr "Cài đặt chung" msgstr "Cài đặt chung"
#: rbac/tree.py:185 #: rbac/tree.py:186
msgid "View permission tree" msgid "View permission tree"
msgstr "Xem cây ủy quyền" msgstr "Xem cây ủy quyền"
@ -6778,6 +6818,14 @@ msgstr "Bảng điều khiển PAM"
msgid "ChangeSecretDashboard" msgid "ChangeSecretDashboard"
msgstr "Bảng điều khiển thay đổi mật khẩu tài khoản" msgstr "Bảng điều khiển thay đổi mật khẩu tài khoản"
#: reports/views.py:181
msgid "Failed to send email: "
msgstr "Gửi thư không thành công"
#: reports/views.py:182
msgid "Email sent successfully to "
msgstr "Gửi thư thành công"
#: settings/api/chat.py:41 #: settings/api/chat.py:41
msgid "Chat AI is not enabled" msgid "Chat AI is not enabled"
msgstr "AI trò chuyện chưa được bật" msgstr "AI trò chuyện chưa được bật"
@ -6815,7 +6863,7 @@ msgstr "Settings"
#: settings/const.py:13 #: settings/const.py:13
msgid "Embed" msgid "Embed"
msgstr "" msgstr "Nhúng"
#: settings/models.py:42 users/models/preference.py:14 #: settings/models.py:42 users/models/preference.py:14
msgid "Encrypted" msgid "Encrypted"
@ -7078,7 +7126,7 @@ msgstr ""
#: settings/serializers/auth/lark.py:13 users/models/user/_source.py:24 #: settings/serializers/auth/lark.py:13 users/models/user/_source.py:24
msgid "Lark" msgid "Lark"
msgstr "" msgstr "Lark"
#: settings/serializers/auth/lark.py:19 #: settings/serializers/auth/lark.py:19
msgid "" msgid ""
@ -7284,7 +7332,7 @@ msgstr "Luôn cập nhật thông tin người dùng"
#: settings/serializers/auth/oidc.py:13 settings/serializers/auth/oidc.py:71 #: settings/serializers/auth/oidc.py:13 settings/serializers/auth/oidc.py:71
msgid "OIDC" msgid "OIDC"
msgstr "" msgstr "OIDC"
#: settings/serializers/auth/oidc.py:17 #: settings/serializers/auth/oidc.py:17
msgid "Base site URL" msgid "Base site URL"
@ -7351,6 +7399,9 @@ msgid ""
"The issuer URL of the OpenID Provider, used to discover its configuration " "The issuer URL of the OpenID Provider, used to discover its configuration "
"via the `$PROVIDER_ENDPOINT/.well-known/openid-configuration` endpoint." "via the `$PROVIDER_ENDPOINT/.well-known/openid-configuration` endpoint."
msgstr "" msgstr ""
"URL phát hành của nhà cung cấp OpenID, được sử dụng để khám phá cấu hình của"
" nó thông qua đầu cuối “$PROVIDER_ENDPOINT/.well-known/openid-"
"configuration”."
#: settings/serializers/auth/oidc.py:87 #: settings/serializers/auth/oidc.py:87
msgid "JWKS endpoint" msgid "JWKS endpoint"
@ -7728,7 +7779,7 @@ msgid "Tenant ID"
msgstr "ID thuê bao" msgstr "ID thuê bao"
#: settings/serializers/feature.py:112 terminal/serializers/storage.py:68 #: settings/serializers/feature.py:112 terminal/serializers/storage.py:68
#: xpack/plugins/cloud/manager.py:119 xpack/plugins/cloud/manager.py:124 #: xpack/plugins/cloud/manager.py:119 xpack/plugins/cloud/manager.py:123
#: xpack/plugins/cloud/models.py:293 #: xpack/plugins/cloud/models.py:293
msgid "Region" msgid "Region"
msgstr "Khu vực" msgstr "Khu vực"
@ -8583,7 +8634,7 @@ msgstr "Tải xuống mẫu cập nhật"
#: templates/_foot_js.html:30 #: templates/_foot_js.html:30
msgid "Page footer" msgid "Page footer"
msgstr "" msgstr "Chân trang"
#: templates/_header_bar.html:12 #: templates/_header_bar.html:12
msgid "Help" msgid "Help"
@ -8693,7 +8744,7 @@ msgstr ""
"tưởng liên kết này" "tưởng liên kết này"
#: templates/resource_download.html:20 templates/resource_download.html:35 #: templates/resource_download.html:20 templates/resource_download.html:35
#: users/const.py:78 #: users/const.py:84
msgid "Client" msgid "Client"
msgstr "Khách hàng" msgstr "Khách hàng"
@ -8985,12 +9036,12 @@ msgstr "Chỉ hỗ trợ nền tảng tùy chỉnh"
msgid "Missing type in platform.yml" msgid "Missing type in platform.yml"
msgstr "Thiếu loại trong platform.yml" msgstr "Thiếu loại trong platform.yml"
#: terminal/models/applet/applet.py:373 terminal/models/applet/host.py:36 #: terminal/models/applet/applet.py:381 terminal/models/applet/host.py:36
#: terminal/models/applet/host.py:138 #: terminal/models/applet/host.py:138
msgid "Hosting" msgid "Hosting"
msgstr "Máy chủ chủ" msgstr "Máy chủ chủ"
#: terminal/models/applet/applet.py:379 #: terminal/models/applet/applet.py:387
msgid "Applet Publication" msgid "Applet Publication"
msgstr "Phát hành ứng dụng" msgstr "Phát hành ứng dụng"
@ -9140,7 +9191,7 @@ msgstr "Người dùng ứng dụng"
msgid "Can view terminal config" msgid "Can view terminal config"
msgstr "Có thể xem cấu hình thiết bị đầu cuối" msgstr "Có thể xem cấu hình thiết bị đầu cuối"
#: terminal/models/session/command.py:76 #: terminal/models/session/command.py:77
msgid "Command record" msgid "Command record"
msgstr "Bản ghi lệnh" msgstr "Bản ghi lệnh"
@ -9848,10 +9899,8 @@ msgid ""
msgstr "Thông tin chi tiết về cảnh báo" msgstr "Thông tin chi tiết về cảnh báo"
#: terminal/templates/terminal/_msg_command_warning.html:7 #: terminal/templates/terminal/_msg_command_warning.html:7
#, fuzzy
#| msgid "Asset details"
msgid "Alert details" msgid "Alert details"
msgstr "Thông tin tài sản" msgstr "Chi tiết cảnh báo"
#: terminal/templates/terminal/_msg_command_warning.html:25 #: terminal/templates/terminal/_msg_command_warning.html:25
msgid "View session" msgid "View session"
@ -10087,11 +10136,11 @@ msgstr "Bạn có một công việc mới, người xin - {}"
msgid "{}: New Ticket - {} ({})" msgid "{}: New Ticket - {} ({})"
msgstr "Công việc mới - {} ({})" msgstr "Công việc mới - {} ({})"
#: tickets/notifications.py:160 #: tickets/notifications.py:168
msgid "Your ticket has been processed, processor - {}" msgid "Your ticket has been processed, processor - {}"
msgstr "Công việc của bạn đã được xử lý, người xử lý - {}" msgstr "Công việc của bạn đã được xử lý, người xử lý - {}"
#: tickets/notifications.py:164 #: tickets/notifications.py:172
msgid "Ticket has processed - {} ({})" msgid "Ticket has processed - {} ({})"
msgstr "Công việc của bạn đã được xử lý, người xử lý - {} ({})" msgstr "Công việc của bạn đã được xử lý, người xử lý - {} ({})"
@ -10250,23 +10299,31 @@ msgstr "Cửa sổ hiện tại"
msgid "New window" msgid "New window"
msgstr "Cửa sổ mới" msgstr "Cửa sổ mới"
#: users/const.py:47 #: users/const.py:43
msgid "Dark gray"
msgstr "Màu xám đậm"
#: users/const.py:44
msgid "Deep blue"
msgstr "Màu xanh đậm"
#: users/const.py:53
msgid "High32 bit" msgid "High32 bit"
msgstr "Cao (32 bit)" msgstr "Cao (32 bit)"
#: users/const.py:48 #: users/const.py:54
msgid "True Color24 bit" msgid "True Color24 bit"
msgstr "" msgstr "Màu thật (24 bit)"
#: users/const.py:49 #: users/const.py:55
msgid "Medium16 bit" msgid "Medium16 bit"
msgstr "Trung bình (16 bit)" msgstr "Trung bình (16 bit)"
#: users/const.py:82 #: users/const.py:88
msgid "Replace" msgid "Replace"
msgstr "Thay thế" msgstr "Thay thế"
#: users/const.py:83 #: users/const.py:89
msgid "Suffix" msgid "Suffix"
msgstr "Thêm hậu tố" msgstr "Thêm hậu tố"
@ -10482,7 +10539,7 @@ msgstr "Đặt lại khóa SSH"
#: users/notifications.py:253 #: users/notifications.py:253
msgid "Update SSH Key url" msgid "Update SSH Key url"
msgstr "" msgstr "Cập nhật địa chỉ SSH khóa"
#: users/notifications.py:276 #: users/notifications.py:276
msgid "Reset MFA" msgid "Reset MFA"
@ -10493,12 +10550,12 @@ msgid "Reset MFA url"
msgstr "Địa chỉ trang web đặt lại MFA" msgstr "Địa chỉ trang web đặt lại MFA"
#: users/serializers/preference/koko.py:10 #: users/serializers/preference/koko.py:10
#: users/serializers/preference/luna.py:63 #: users/serializers/preference/luna.py:67
msgid "File name conflict resolution" msgid "File name conflict resolution"
msgstr "Giải pháp xung đột tên tệp" msgstr "Giải pháp xung đột tên tệp"
#: users/serializers/preference/koko.py:14 #: users/serializers/preference/koko.py:14
#: users/serializers/preference/luna.py:80 #: users/serializers/preference/luna.py:84
msgid "Terminal theme name" msgid "Terminal theme name"
msgstr "Tên chủ đề terminal" msgstr "Tên chủ đề terminal"
@ -10532,27 +10589,33 @@ msgstr "Tải tài sản cây không đồng bộ"
msgid "Connect default open method" msgid "Connect default open method"
msgstr "Kết nối với cách mở mặc định" msgstr "Kết nối với cách mở mặc định"
#: users/serializers/preference/luna.py:37 #: users/serializers/preference/luna.py:34
#: xpack/plugins/interface/models.py:41
#: xpack/plugins/interface/serializers/interface.py:26
msgid "Theme"
msgstr "Chủ đề"
#: users/serializers/preference/luna.py:41
msgid "RDP resolution" msgid "RDP resolution"
msgstr "Độ phân giải RDP" msgstr "Độ phân giải RDP"
#: users/serializers/preference/luna.py:41 #: users/serializers/preference/luna.py:45
msgid "Keyboard layout" msgid "Keyboard layout"
msgstr "Bố cục bàn phím" msgstr "Bố cục bàn phím"
#: users/serializers/preference/luna.py:45 #: users/serializers/preference/luna.py:49
msgid "RDP client option" msgid "RDP client option"
msgstr "Tùy chọn khách hàng RDP" msgstr "Tùy chọn khách hàng RDP"
#: users/serializers/preference/luna.py:49 #: users/serializers/preference/luna.py:53
msgid "RDP color quality" msgid "RDP color quality"
msgstr "Chất lượng màu RDP" msgstr "Chất lượng màu RDP"
#: users/serializers/preference/luna.py:53 #: users/serializers/preference/luna.py:57
msgid "RDP smart size" msgid "RDP smart size"
msgstr "Kích thước thông minh RDP" msgstr "Kích thước thông minh RDP"
#: users/serializers/preference/luna.py:54 #: users/serializers/preference/luna.py:58
msgid "" msgid ""
"Determines whether the client computer should scale the content on the " "Determines whether the client computer should scale the content on the "
"remote computer to fit the window size of the client computer when the " "remote computer to fit the window size of the client computer when the "
@ -10561,27 +10624,27 @@ msgstr ""
"Xác nhận liệu máy tính khách có nên thu phóng nội dung trên máy tính từ xa " "Xác nhận liệu máy tính khách có nên thu phóng nội dung trên máy tính từ xa "
"để phù hợp với kích thước cửa sổ của máy tính khách hay không" "để phù hợp với kích thước cửa sổ của máy tính khách hay không"
#: users/serializers/preference/luna.py:59 #: users/serializers/preference/luna.py:63
msgid "Remote app connect method" msgid "Remote app connect method"
msgstr "Cách kết nối ứng dụng từ xa" msgstr "Cách kết nối ứng dụng từ xa"
#: users/serializers/preference/luna.py:70 #: users/serializers/preference/luna.py:74
msgid "Terminal font size" msgid "Terminal font size"
msgstr "Kích thước phông chữ trong terminal ký tự" msgstr "Kích thước phông chữ trong terminal ký tự"
#: users/serializers/preference/luna.py:73 #: users/serializers/preference/luna.py:77
msgid "Backspace as Ctrl+H" msgid "Backspace as Ctrl+H"
msgstr "Terminal ký tự Backspace như Ctrl+H" msgstr "Terminal ký tự Backspace như Ctrl+H"
#: users/serializers/preference/luna.py:76 #: users/serializers/preference/luna.py:80
msgid "Right click quickly paste" msgid "Right click quickly paste"
msgstr "Dán nhanh bằng chuột phải" msgstr "Dán nhanh bằng chuột phải"
#: users/serializers/preference/luna.py:86 #: users/serializers/preference/luna.py:90
msgid "Graphics" msgid "Graphics"
msgstr "Đồ họa hóa" msgstr "Đồ họa hóa"
#: users/serializers/preference/luna.py:87 #: users/serializers/preference/luna.py:91
msgid "Command line" msgid "Command line"
msgstr "Dòng lệnh" msgstr "Dòng lệnh"
@ -11215,7 +11278,7 @@ msgstr "ZStack"
#: xpack/plugins/cloud/const.py:30 xpack/plugins/cloud/providers/smartx.py:9 #: xpack/plugins/cloud/const.py:30 xpack/plugins/cloud/providers/smartx.py:9
msgid "SmartX CloudTower" msgid "SmartX CloudTower"
msgstr "" msgstr "Cloud SmartX"
#: xpack/plugins/cloud/const.py:31 #: xpack/plugins/cloud/const.py:31
msgid "Fusion Compute" msgid "Fusion Compute"
@ -11318,17 +11381,17 @@ msgstr "Nhiệm vụ đã hoàn thành"
msgid "Synchronization regions" msgid "Synchronization regions"
msgstr "Đồng bộ khu vực" msgstr "Đồng bộ khu vực"
#: xpack/plugins/cloud/manager.py:141 #: xpack/plugins/cloud/manager.py:140
#, python-format #, python-format
msgid "Get instances of region \"%s\" error, error: %s" msgid "Get instances of region \"%s\" error, error: %s"
msgstr "Gặp lỗi khi lấy实例 của khu vực \"%s\", lỗi: %s" msgstr "Gặp lỗi khi lấy实例 của khu vực \"%s\", lỗi: %s"
#: xpack/plugins/cloud/manager.py:186 #: xpack/plugins/cloud/manager.py:185
#, python-format #, python-format
msgid "Failed to synchronize the instance \"%s\"" msgid "Failed to synchronize the instance \"%s\""
msgstr "Không thể đồng bộ实例 %s" msgstr "Không thể đồng bộ实例 %s"
#: xpack/plugins/cloud/manager.py:377 #: xpack/plugins/cloud/manager.py:376
#, python-format #, python-format
msgid "" msgid ""
"The updated platform of asset \"%s\" is inconsistent with the original " "The updated platform of asset \"%s\" is inconsistent with the original "
@ -11337,47 +11400,47 @@ msgstr ""
"Cập nhật nền tảng của tài sản \"%s\" không đồng nhất với loại nền tảng ban " "Cập nhật nền tảng của tài sản \"%s\" không đồng nhất với loại nền tảng ban "
"đầu. Bỏ qua cập nhật nền tảng và giao thức" "đầu. Bỏ qua cập nhật nền tảng và giao thức"
#: xpack/plugins/cloud/manager.py:434 #: xpack/plugins/cloud/manager.py:433
#, python-format #, python-format
msgid "The asset \"%s\" already exists" msgid "The asset \"%s\" already exists"
msgstr "Tài sản \"%s\" đã tồn tại" msgstr "Tài sản \"%s\" đã tồn tại"
#: xpack/plugins/cloud/manager.py:436 #: xpack/plugins/cloud/manager.py:435
#, python-format #, python-format
msgid "Update asset \"%s\"" msgid "Update asset \"%s\""
msgstr "Cập nhật tài sản \"%s\"" msgstr "Cập nhật tài sản \"%s\""
#: xpack/plugins/cloud/manager.py:439 #: xpack/plugins/cloud/manager.py:438
#, python-format #, python-format
msgid "Asset \"%s\" has been updated" msgid "Asset \"%s\" has been updated"
msgstr "Tài sản \"%s\" đã được cập nhật." msgstr "Tài sản \"%s\" đã được cập nhật."
#: xpack/plugins/cloud/manager.py:448 #: xpack/plugins/cloud/manager.py:447
#, python-format #, python-format
msgid "Prepare to create asset \"%s\"" msgid "Prepare to create asset \"%s\""
msgstr "Chuẩn bị tạo tài sản %s" msgstr "Chuẩn bị tạo tài sản %s"
#: xpack/plugins/cloud/manager.py:469 #: xpack/plugins/cloud/manager.py:468
#, python-format #, python-format
msgid "Set nodes \"%s\"" msgid "Set nodes \"%s\""
msgstr "Thiết lập nút: \"%s\"" msgstr "Thiết lập nút: \"%s\""
#: xpack/plugins/cloud/manager.py:495 #: xpack/plugins/cloud/manager.py:494
#, python-format #, python-format
msgid "Set accounts \"%s\"" msgid "Set accounts \"%s\""
msgstr "Thiết lập tài khoản: %s" msgstr "Thiết lập tài khoản: %s"
#: xpack/plugins/cloud/manager.py:511 #: xpack/plugins/cloud/manager.py:510
#, python-format #, python-format
msgid "Set protocols \"%s\"" msgid "Set protocols \"%s\""
msgstr "Thiết lập giao thức \"%s\"" msgstr "Thiết lập giao thức \"%s\""
#: xpack/plugins/cloud/manager.py:519 #: xpack/plugins/cloud/manager.py:518
#, python-format #, python-format
msgid "Set labels \"%s\"" msgid "Set labels \"%s\""
msgstr "Thiết lập nhãn: \"%s\"" msgstr "Thiết lập nhãn: \"%s\""
#: xpack/plugins/cloud/manager.py:533 xpack/plugins/cloud/tasks.py:31 #: xpack/plugins/cloud/manager.py:532 xpack/plugins/cloud/tasks.py:31
msgid "Run sync instance task" msgid "Run sync instance task"
msgstr "Thực hiện nhiệm vụ đồng bộ hóa phiên bản" msgstr "Thực hiện nhiệm vụ đồng bộ hóa phiên bản"
@ -11939,11 +12002,6 @@ msgstr "Trang quản lý Logo"
msgid "Logout logo" msgid "Logout logo"
msgstr "Đăng xuất" msgstr "Đăng xuất"
#: xpack/plugins/interface/models.py:41
#: xpack/plugins/interface/serializers/interface.py:26
msgid "Theme"
msgstr "Chủ đề"
#: xpack/plugins/interface/models.py:42 #: xpack/plugins/interface/models.py:42
msgid "Footer content" msgid "Footer content"
msgstr "Nội dung chân trang" msgstr "Nội dung chân trang"
@ -11964,6 +12022,14 @@ msgstr "Nhập giấy phép thành công"
msgid "Invalid license" msgid "Invalid license"
msgstr "Giấy phép không hợp lệ" msgstr "Giấy phép không hợp lệ"
#, fuzzy
#~ msgid "Themes"
#~ msgstr "Chủ đề"
#, fuzzy
#~ msgid "domain_name"
#~ msgstr "Tên miền"
#~ msgid "Task execution id" #~ msgid "Task execution id"
#~ msgstr "ID thực hiện nhiệm vụ" #~ msgstr "ID thực hiện nhiệm vụ"

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: JumpServer 0.3.3\n" "Project-Id-Version: JumpServer 0.3.3\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-09-17 15:02+0800\n" "POT-Creation-Date: 2025-10-16 14:10+0800\n"
"PO-Revision-Date: 2021-05-20 10:54+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n"
"Last-Translator: ibuler <ibuler@qq.com>\n" "Last-Translator: ibuler <ibuler@qq.com>\n"
"Language-Team: JumpServer team<ibuler@qq.com>\n" "Language-Team: JumpServer team<ibuler@qq.com>\n"
@ -18,7 +18,7 @@ msgstr ""
"X-Generator: Poedit 2.4.3\n" "X-Generator: Poedit 2.4.3\n"
"X-ZhConverter: 繁化姬 dict-74c8d060-r1048 @ 2024/04/07 18:19:20 | https://zhconvert.org\n" "X-ZhConverter: 繁化姬 dict-74c8d060-r1048 @ 2024/04/07 18:19:20 | https://zhconvert.org\n"
#: accounts/api/account/account.py:138 #: accounts/api/account/account.py:141
#: accounts/serializers/account/account.py:181 #: accounts/serializers/account/account.py:181
#: accounts/serializers/account/account.py:362 #: accounts/serializers/account/account.py:362
msgid "Account already exists" msgid "Account already exists"
@ -96,7 +96,7 @@ msgstr "計劃執行結束"
#: accounts/automations/base/manager.py:119 #: accounts/automations/base/manager.py:119
msgid "Windows does not support SSH key authentication" msgid "Windows does not support SSH key authentication"
msgstr "" msgstr "Windows 不支持 SSH 金鑰認證"
#: accounts/automations/base/manager.py:123 #: accounts/automations/base/manager.py:123
msgid "Windows password cannot contain special characters like > ^" msgid "Windows password cannot contain special characters like > ^"
@ -210,7 +210,7 @@ msgstr "模板"
msgid "Skip" msgid "Skip"
msgstr "跳過" msgstr "跳過"
#: accounts/const/account.py:33 audits/const.py:24 rbac/tree.py:291 #: accounts/const/account.py:33 audits/const.py:24 rbac/tree.py:292
#: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6 #: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6
msgid "Update" msgid "Update"
msgstr "更新" msgstr "更新"
@ -576,17 +576,18 @@ msgstr "帳號活動"
#: accounts/serializers/account/service.py:29 #: accounts/serializers/account/service.py:29
#: accounts/serializers/account/virtual.py:20 acls/models/base.py:35 #: accounts/serializers/account/virtual.py:20 acls/models/base.py:35
#: acls/models/base.py:96 acls/models/command_acl.py:21 #: acls/models/base.py:96 acls/models/command_acl.py:21
#: acls/notifications.py:69 acls/serializers/base.py:35 #: acls/models/data_masking.py:20 acls/notifications.py:69
#: assets/models/asset/common.py:100 assets/models/asset/common.py:166 #: acls/serializers/base.py:35 assets/models/asset/common.py:100
#: assets/models/cmd_filter.py:21 assets/models/label.py:18 #: assets/models/asset/common.py:166 assets/models/cmd_filter.py:21
#: assets/models/platform.py:15 assets/models/platform.py:94 #: assets/models/label.py:18 assets/models/platform.py:15
#: assets/models/zone.py:19 assets/serializers/asset/common.py:174 #: assets/models/platform.py:94 assets/models/zone.py:19
#: assets/serializers/platform.py:158 assets/serializers/platform.py:283 #: assets/serializers/asset/common.py:174 assets/serializers/platform.py:158
#: assets/serializers/platform.py:283
#: authentication/backends/passkey/models.py:10 #: authentication/backends/passkey/models.py:10
#: authentication/models/ssh_key.py:12 authentication/notifications.py:17 #: authentication/models/ssh_key.py:12 authentication/notifications.py:17
#: authentication/notifications.py:56 #: authentication/notifications.py:56
#: authentication/serializers/connect_token_secret.py:117 #: authentication/serializers/connect_token_secret.py:125
#: authentication/serializers/connect_token_secret.py:174 labels/models.py:11 #: authentication/serializers/connect_token_secret.py:183 labels/models.py:11
#: ops/mixin.py:32 ops/models/adhoc.py:19 ops/models/celery.py:15 #: ops/mixin.py:32 ops/models/adhoc.py:19 ops/models/celery.py:15
#: ops/models/celery.py:81 ops/models/job.py:147 ops/models/playbook.py:28 #: ops/models/celery.py:81 ops/models/job.py:147 ops/models/playbook.py:28
#: ops/models/variable.py:9 ops/serializers/job.py:20 #: ops/models/variable.py:9 ops/serializers/job.py:20
@ -780,7 +781,7 @@ msgstr "結束日期"
#: assets/models/automations/base.py:137 #: assets/models/automations/base.py:137
#: assets/serializers/automations/base.py:47 audits/models.py:224 #: assets/serializers/automations/base.py:47 audits/models.py:224
#: audits/serializers.py:77 ops/models/base.py:49 ops/models/job.py:233 #: audits/serializers.py:77 ops/models/base.py:49 ops/models/job.py:233
#: terminal/models/applet/applet.py:374 terminal/models/applet/host.py:140 #: terminal/models/applet/applet.py:382 terminal/models/applet/host.py:140
#: terminal/models/component/status.py:30 #: terminal/models/component/status.py:30
#: terminal/models/virtualapp/virtualapp.py:99 #: terminal/models/virtualapp/virtualapp.py:99
#: terminal/serializers/applet.py:19 terminal/serializers/applet_host.py:163 #: terminal/serializers/applet.py:19 terminal/serializers/applet_host.py:163
@ -921,7 +922,7 @@ msgstr "帳號風險"
#: accounts/models/automations/check_account.py:119 #: accounts/models/automations/check_account.py:119
msgid "Slug" msgid "Slug"
msgstr "" msgstr "URL 標識符"
#: accounts/models/automations/check_account.py:125 #: accounts/models/automations/check_account.py:125
msgid "Check engine" msgid "Check engine"
@ -1037,7 +1038,7 @@ msgstr "密碼規則"
#: accounts/models/base.py:69 assets/models/automations/base.py:28 #: accounts/models/base.py:69 assets/models/automations/base.py:28
#: assets/models/cmd_filter.py:39 assets/models/label.py:22 #: assets/models/cmd_filter.py:39 assets/models/label.py:22
#: authentication/serializers/connect_token_secret.py:121 #: authentication/serializers/connect_token_secret.py:129
#: terminal/models/applet/applet.py:41 #: terminal/models/applet/applet.py:41
#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:257 #: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:257
msgid "Is active" msgid "Is active"
@ -1209,7 +1210,7 @@ msgstr "類別"
#: assets/serializers/platform.py:160 assets/serializers/platform.py:172 #: assets/serializers/platform.py:160 assets/serializers/platform.py:172
#: audits/serializers.py:76 audits/serializers.py:196 #: audits/serializers.py:76 audits/serializers.py:196
#: authentication/models/connection_token.py:67 #: authentication/models/connection_token.py:67
#: authentication/serializers/connect_token_secret.py:130 #: authentication/serializers/connect_token_secret.py:138
#: ops/models/job.py:155 perms/serializers/user_permission.py:28 #: ops/models/job.py:155 perms/serializers/user_permission.py:28
#: terminal/models/applet/applet.py:40 terminal/models/component/storage.py:58 #: terminal/models/applet/applet.py:40 terminal/models/component/storage.py:58
#: terminal/models/component/storage.py:152 terminal/serializers/applet.py:30 #: terminal/models/component/storage.py:152 terminal/serializers/applet.py:30
@ -1234,7 +1235,7 @@ msgstr "目錄服務"
#: accounts/serializers/account/account.py:278 #: accounts/serializers/account/account.py:278
#, python-brace-format #, python-brace-format
msgid "Account already exists. Field(s): {fields} must be unique." msgid "Account already exists. Field(s): {fields} must be unique."
msgstr "" msgstr "帳號已存在。字段:{fields} 必須是唯一的。"
#: accounts/serializers/account/account.py:285 #: accounts/serializers/account/account.py:285
msgid "Has secret" msgid "Has secret"
@ -1281,7 +1282,7 @@ msgid "Spec info"
msgstr "特殊資訊" msgstr "特殊資訊"
#: accounts/serializers/account/account.py:493 #: accounts/serializers/account/account.py:493
#: authentication/serializers/connect_token_secret.py:164 #: authentication/serializers/connect_token_secret.py:173
#: authentication/templates/authentication/_access_key_modal.html:30 #: authentication/templates/authentication/_access_key_modal.html:30
#: perms/models/perm_node.py:21 users/serializers/group.py:33 #: perms/models/perm_node.py:21 users/serializers/group.py:33
msgid "ID" msgid "ID"
@ -1338,7 +1339,7 @@ msgstr "IP 白名單"
#: assets/models/cmd_filter.py:88 common/db/models.py:36 #: assets/models/cmd_filter.py:88 common/db/models.py:36
#: ops/models/adhoc.py:25 ops/models/job.py:165 ops/models/playbook.py:31 #: ops/models/adhoc.py:25 ops/models/job.py:165 ops/models/playbook.py:31
#: rbac/models/role.py:37 settings/models.py:44 #: rbac/models/role.py:37 settings/models.py:44
#: terminal/models/applet/applet.py:46 terminal/models/applet/applet.py:375 #: terminal/models/applet/applet.py:46 terminal/models/applet/applet.py:383
#: terminal/models/applet/host.py:143 terminal/models/component/endpoint.py:29 #: terminal/models/applet/host.py:143 terminal/models/component/endpoint.py:29
#: terminal/models/component/endpoint.py:117 #: terminal/models/component/endpoint.py:117
#: terminal/models/session/session.py:44 #: terminal/models/session/session.py:44
@ -1825,7 +1826,7 @@ msgstr "優先度可選範圍為 1-100 (數值越小越優先)"
#: acls/models/base.py:41 acls/serializers/base.py:57 #: acls/models/base.py:41 acls/serializers/base.py:57
#: assets/models/cmd_filter.py:81 audits/models.py:99 #: assets/models/cmd_filter.py:81 audits/models.py:99
#: audits/serializers.py:107 #: audits/serializers.py:107
#: authentication/serializers/connect_token_secret.py:123 #: authentication/serializers/connect_token_secret.py:131
#: authentication/templates/authentication/_access_key_modal.html:34 #: authentication/templates/authentication/_access_key_modal.html:34
#: perms/serializers/permission.py:63 perms/serializers/permission.py:85 #: perms/serializers/permission.py:63 perms/serializers/permission.py:85
#: terminal/backends/command/models.py:24 #: terminal/backends/command/models.py:24
@ -1834,7 +1835,7 @@ msgid "Action"
msgstr "動作" msgstr "動作"
#: acls/models/base.py:42 assets/models/cmd_filter.py:86 #: acls/models/base.py:42 assets/models/cmd_filter.py:86
#: authentication/serializers/connect_token_secret.py:93 #: authentication/serializers/connect_token_secret.py:101
msgid "Reviewers" msgid "Reviewers"
msgstr "審批人" msgstr "審批人"
@ -1875,7 +1876,7 @@ msgstr "忽略大小寫"
#: acls/models/command_acl.py:33 acls/models/command_acl.py:97 #: acls/models/command_acl.py:33 acls/models/command_acl.py:97
#: acls/serializers/command_acl.py:29 #: acls/serializers/command_acl.py:29
#: authentication/serializers/connect_token_secret.py:90 #: authentication/serializers/connect_token_secret.py:98
#: terminal/templates/terminal/_msg_command_warning.html:23 #: terminal/templates/terminal/_msg_command_warning.html:23
msgid "Command group" msgid "Command group"
msgstr "命令組" msgstr "命令組"
@ -1901,6 +1902,38 @@ msgstr "連接方式"
msgid "Connect method acl" msgid "Connect method acl"
msgstr "連接方式控制" msgstr "連接方式控制"
#: acls/models/data_masking.py:13
msgid "Fixed Character Replacement"
msgstr "固定字符替換"
#: acls/models/data_masking.py:14
msgid "Hide Middle Characters"
msgstr "隱藏中間字符"
#: acls/models/data_masking.py:15
msgid "Keep Prefix Only"
msgstr "保留前綴"
#: acls/models/data_masking.py:16
msgid "Keep Suffix Only"
msgstr "保留後綴"
#: acls/models/data_masking.py:21
msgid "Fields pattern"
msgstr "遮蓋列名"
#: acls/models/data_masking.py:27 acls/serializers/data_masking.py:14
msgid "Masking Method"
msgstr "遮蓋方法"
#: acls/models/data_masking.py:31
msgid "Mask Pattern"
msgstr "遮蓋字符"
#: acls/models/data_masking.py:42
msgid "Data Masking Rule"
msgstr "數據屏蔽規則"
#: acls/models/login_acl.py:11 acls/models/login_asset_acl.py:9 #: acls/models/login_acl.py:11 acls/models/login_asset_acl.py:9
#: acls/serializers/login_acl.py:16 acls/serializers/login_asset_acl.py:13 #: acls/serializers/login_acl.py:16 acls/serializers/login_asset_acl.py:13
msgid "Rule" msgid "Rule"
@ -1935,6 +1968,14 @@ msgstr "用戶登錄提醒"
msgid "Login city" msgid "Login city"
msgstr "登錄城市" msgstr "登錄城市"
#: acls/notifications.py:20 acls/notifications.py:71
msgid "Recipient name"
msgstr "收件人名稱"
#: acls/notifications.py:21 acls/notifications.py:72
msgid "Recipient username"
msgstr "收件人用戶名"
#: acls/notifications.py:22 acls/templates/acls/user_login_reminder.html:12 #: acls/notifications.py:22 acls/templates/acls/user_login_reminder.html:12
#: audits/models.py:213 audits/models.py:291 audits/serializers.py:91 #: audits/models.py:213 audits/models.py:291 audits/serializers.py:91
msgid "User agent" msgid "User agent"
@ -2228,7 +2269,7 @@ msgstr "禁用"
#: assets/const/base.py:33 settings/serializers/basic.py:8 #: assets/const/base.py:33 settings/serializers/basic.py:8
#: users/serializers/preference/koko.py:19 #: users/serializers/preference/koko.py:19
#: users/serializers/preference/lina.py:51 #: users/serializers/preference/lina.py:51
#: users/serializers/preference/luna.py:85 #: users/serializers/preference/luna.py:89
msgid "Basic" msgid "Basic"
msgstr "基本" msgstr "基本"
@ -2256,7 +2297,7 @@ msgstr "雲服務"
#: assets/const/category.py:14 assets/models/asset/gpt.py:11 #: assets/const/category.py:14 assets/models/asset/gpt.py:11
#: assets/models/asset/web.py:16 audits/const.py:46 #: assets/models/asset/web.py:16 audits/const.py:46
#: terminal/models/applet/applet.py:28 users/const.py:77 #: terminal/models/applet/applet.py:28 users/const.py:83
msgid "Web" msgid "Web"
msgstr "Web" msgstr "Web"
@ -2286,15 +2327,15 @@ msgstr "華為"
#: assets/const/device.py:9 #: assets/const/device.py:9
msgid "H3C" msgid "H3C"
msgstr "" msgstr "H3C"
#: assets/const/device.py:10 #: assets/const/device.py:10
msgid "Juniper" msgid "Juniper"
msgstr "" msgstr "Juniper"
#: assets/const/device.py:11 #: assets/const/device.py:11
msgid "TP-Link" msgid "TP-Link"
msgstr "" msgstr "TP-Link"
#: assets/const/device.py:12 assets/const/ds.py:7 #: assets/const/device.py:12 assets/const/ds.py:7
#: terminal/models/applet/applet.py:27 tickets/const.py:9 #: terminal/models/applet/applet.py:27 tickets/const.py:9
@ -2317,7 +2358,7 @@ msgstr "防火牆"
msgid "Windows Active Directory" msgid "Windows Active Directory"
msgstr "Windows 活動目錄" msgstr "Windows 活動目錄"
#: assets/const/gpt.py:7 #: assets/const/gpt.py:8
msgid "ChatGPT" msgid "ChatGPT"
msgstr "ChatGPT" msgstr "ChatGPT"
@ -2436,7 +2477,7 @@ msgstr "加密的<SEP->第三方登入方式包括:"
#: assets/const/protocol.py:202 #: assets/const/protocol.py:202
msgid "Whether to use TLS encryption." msgid "Whether to use TLS encryption."
msgstr "" msgstr "是否使用 TLS 加密。"
#: assets/const/protocol.py:232 #: assets/const/protocol.py:232
msgid "Auth source" msgid "Auth source"
@ -2528,7 +2569,7 @@ msgstr "地址"
#: assets/models/asset/common.py:169 assets/models/platform.py:155 #: assets/models/asset/common.py:169 assets/models/platform.py:155
#: assets/serializers/asset/common.py:151 #: assets/serializers/asset/common.py:151
#: authentication/backends/passkey/models.py:12 #: authentication/backends/passkey/models.py:12
#: authentication/serializers/connect_token_secret.py:122 #: authentication/serializers/connect_token_secret.py:130
#: perms/serializers/user_permission.py:26 xpack/plugins/cloud/models.py:399 #: perms/serializers/user_permission.py:26 xpack/plugins/cloud/models.py:399
msgid "Platform" msgid "Platform"
msgstr "系統平台" msgstr "系統平台"
@ -2723,7 +2764,7 @@ msgstr "系統"
#: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18 #: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18
#: assets/serializers/cagegory.py:24 #: assets/serializers/cagegory.py:24
#: authentication/models/connection_token.py:35 #: authentication/models/connection_token.py:35
#: authentication/serializers/connect_token_secret.py:129 #: authentication/serializers/connect_token_secret.py:137
#: common/serializers/common.py:86 labels/models.py:12 settings/models.py:40 #: common/serializers/common.py:86 labels/models.py:12 settings/models.py:40
#: users/models/preference.py:13 #: users/models/preference.py:13
msgid "Value" msgid "Value"
@ -2732,7 +2773,7 @@ msgstr "值"
#: assets/models/label.py:40 assets/serializers/cagegory.py:10 #: assets/models/label.py:40 assets/serializers/cagegory.py:10
#: assets/serializers/cagegory.py:17 assets/serializers/cagegory.py:23 #: assets/serializers/cagegory.py:17 assets/serializers/cagegory.py:23
#: assets/serializers/platform.py:159 #: assets/serializers/platform.py:159
#: authentication/serializers/connect_token_secret.py:128 #: authentication/serializers/connect_token_secret.py:136
#: common/serializers/common.py:85 labels/serializers.py:45 #: common/serializers/common.py:85 labels/serializers.py:45
#: settings/serializers/msg.py:91 xpack/plugins/cloud/models.py:404 #: settings/serializers/msg.py:91 xpack/plugins/cloud/models.py:404
msgid "Label" msgid "Label"
@ -2783,7 +2824,7 @@ msgid "Required"
msgstr "必須的" msgstr "必須的"
#: assets/models/platform.py:19 assets/serializers/platform.py:161 #: assets/models/platform.py:19 assets/serializers/platform.py:161
#: terminal/models/component/storage.py:28 #: terminal/models/component/storage.py:28 users/const.py:42
#: xpack/plugins/cloud/providers/nutanix.py:30 #: xpack/plugins/cloud/providers/nutanix.py:30
msgid "Default" msgid "Default"
msgstr "默認" msgstr "默認"
@ -3057,7 +3098,7 @@ msgid "Disk total"
msgstr "硬碟大小" msgstr "硬碟大小"
#: assets/serializers/asset/info/gathered.py:16 #: assets/serializers/asset/info/gathered.py:16
#: authentication/serializers/connect_token_secret.py:119 #: authentication/serializers/connect_token_secret.py:127
msgid "OS" msgid "OS"
msgstr "操作系統" msgstr "操作系統"
@ -3343,7 +3384,7 @@ msgstr "刪除目錄"
#: audits/const.py:14 audits/const.py:25 #: audits/const.py:14 audits/const.py:25
#: authentication/templates/authentication/_access_key_modal.html:65 #: authentication/templates/authentication/_access_key_modal.html:65
#: rbac/tree.py:292 #: rbac/tree.py:293
msgid "Delete" msgid "Delete"
msgstr "刪除" msgstr "刪除"
@ -3369,7 +3410,7 @@ msgstr "下載"
msgid "Rename dir" msgid "Rename dir"
msgstr "映射目錄" msgstr "映射目錄"
#: audits/const.py:23 rbac/tree.py:290 terminal/api/session/session.py:285 #: audits/const.py:23 rbac/tree.py:291 terminal/api/session/session.py:285
#: terminal/templates/terminal/_msg_session_sharing.html:10 #: terminal/templates/terminal/_msg_session_sharing.html:10
#: xpack/plugins/cloud/manager.py:102 #: xpack/plugins/cloud/manager.py:102
msgid "View" msgid "View"
@ -3377,7 +3418,7 @@ msgstr "查看"
#: audits/const.py:26 #: audits/const.py:26
#: authentication/templates/authentication/_access_key_modal.html:22 #: authentication/templates/authentication/_access_key_modal.html:22
#: rbac/tree.py:289 #: rbac/tree.py:290
msgid "Create" msgid "Create"
msgstr "創建" msgstr "創建"
@ -3530,7 +3571,7 @@ msgid "MFA"
msgstr "MFA" msgstr "MFA"
#: audits/models.py:219 terminal/models/session/sharing.py:123 #: audits/models.py:219 terminal/models/session/sharing.py:123
#: xpack/plugins/cloud/manager.py:187 xpack/plugins/cloud/models.py:237 #: xpack/plugins/cloud/manager.py:186 xpack/plugins/cloud/models.py:237
msgid "Reason" msgid "Reason"
msgstr "原因" msgstr "原因"
@ -3781,6 +3822,10 @@ msgstr "用戶來自 {} 請去相應系統修改密碼"
msgid "Forgot password" msgid "Forgot password"
msgstr "忘記密碼" msgstr "忘記密碼"
#: authentication/api/password.py:70 authentication/mfa/email.py:42
msgid "The validity period of the verification code is {} minute"
msgstr "驗證碼有效期為 {} 分鐘"
#: authentication/apps.py:7 #: authentication/apps.py:7
msgid "App Authentication" msgid "App Authentication"
msgstr "身份验证管理" msgstr "身份验证管理"
@ -4186,7 +4231,7 @@ msgid "Input secret"
msgstr "自訂密碼" msgstr "自訂密碼"
#: authentication/models/connection_token.py:47 #: authentication/models/connection_token.py:47
#: authentication/serializers/connect_token_secret.py:118 #: authentication/serializers/connect_token_secret.py:126
#: terminal/models/applet/applet.py:43 #: terminal/models/applet/applet.py:43
#: terminal/models/virtualapp/virtualapp.py:24 #: terminal/models/virtualapp/virtualapp.py:24
#: terminal/serializers/session.py:31 terminal/serializers/session.py:58 #: terminal/serializers/session.py:31 terminal/serializers/session.py:58
@ -4249,15 +4294,15 @@ msgstr "沒有用戶或用戶失效"
msgid "No asset or inactive asset" msgid "No asset or inactive asset"
msgstr "沒有資產或資產未啟用" msgstr "沒有資產或資產未啟用"
#: authentication/models/connection_token.py:348 #: authentication/models/connection_token.py:360
msgid "Can view super connection token secret" msgid "Can view super connection token secret"
msgstr "可以查看超級連接令牌密文" msgstr "可以查看超級連接令牌密文"
#: authentication/models/connection_token.py:350 #: authentication/models/connection_token.py:362
msgid "Super connection token" msgid "Super connection token"
msgstr "超級連接令牌" msgstr "超級連接令牌"
#: authentication/models/connection_token.py:367 #: authentication/models/connection_token.py:379
msgid "Admin connection token" msgid "Admin connection token"
msgstr "管理者連接令牌" msgstr "管理者連接令牌"
@ -4309,38 +4354,38 @@ msgstr "OAuth ID"
msgid "binding reminder" msgid "binding reminder"
msgstr "綁定提醒" msgstr "綁定提醒"
#: authentication/serializers/connect_token_secret.py:120 #: authentication/serializers/connect_token_secret.py:128
msgid "Is builtin" msgid "Is builtin"
msgstr "內建的" msgstr "內建的"
#: authentication/serializers/connect_token_secret.py:124 #: authentication/serializers/connect_token_secret.py:132
msgid "Options" msgid "Options"
msgstr "選項" msgstr "選項"
#: authentication/serializers/connect_token_secret.py:131 #: authentication/serializers/connect_token_secret.py:139
#: ops/notifications.py:19 rbac/tree.py:63 #: ops/notifications.py:19 rbac/tree.py:63
msgid "Component" msgid "Component"
msgstr "組件" msgstr "組件"
#: authentication/serializers/connect_token_secret.py:140 #: authentication/serializers/connect_token_secret.py:148
msgid "Domain" msgid "Domain"
msgstr "網域" msgstr "網域"
#: authentication/serializers/connect_token_secret.py:142 #: authentication/serializers/connect_token_secret.py:151
msgid "Expired now" msgid "Expired now"
msgstr "立刻過期" msgstr "立刻過期"
#: authentication/serializers/connect_token_secret.py:175 #: authentication/serializers/connect_token_secret.py:184
#: terminal/models/virtualapp/virtualapp.py:25 #: terminal/models/virtualapp/virtualapp.py:25
msgid "Image name" msgid "Image name"
msgstr "鏡像名稱" msgstr "鏡像名稱"
#: authentication/serializers/connect_token_secret.py:176 #: authentication/serializers/connect_token_secret.py:185
#: terminal/models/virtualapp/virtualapp.py:27 #: terminal/models/virtualapp/virtualapp.py:27
msgid "Image port" msgid "Image port"
msgstr "鏡像埠" msgstr "鏡像埠"
#: authentication/serializers/connect_token_secret.py:177 #: authentication/serializers/connect_token_secret.py:186
#: terminal/models/virtualapp/virtualapp.py:26 #: terminal/models/virtualapp/virtualapp.py:26
msgid "Image protocol" msgid "Image protocol"
msgstr "鏡像協議" msgstr "鏡像協議"
@ -4448,13 +4493,13 @@ msgid "Show"
msgstr "顯示" msgstr "顯示"
#: authentication/templates/authentication/_access_key_modal.html:66 #: authentication/templates/authentication/_access_key_modal.html:66
#: settings/serializers/terminal.py:24 users/const.py:42 #: settings/serializers/terminal.py:24 users/const.py:48
#: users/templates/users/user_verify_mfa.html:36 #: users/templates/users/user_verify_mfa.html:36
msgid "Disable" msgid "Disable"
msgstr "禁用" msgstr "禁用"
#: authentication/templates/authentication/_access_key_modal.html:67 #: authentication/templates/authentication/_access_key_modal.html:67
#: settings/serializers/terminal.py:24 users/const.py:43 #: settings/serializers/terminal.py:24 users/const.py:49
#: users/templates/users/mfa_setting.html:120 #: users/templates/users/mfa_setting.html:120
#: users/templates/users/mfa_setting.html:158 #: users/templates/users/mfa_setting.html:158
#: users/templates/users/mfa_setting.html:177 #: users/templates/users/mfa_setting.html:177
@ -4513,16 +4558,11 @@ msgid ""
"account password in time." "account password in time."
msgstr "若懷疑此次登錄行為異常,請及時修改帳號密碼" msgstr "若懷疑此次登錄行為異常,請及時修改帳號密碼"
#: authentication/templates/authentication/_msg_mfa_email_code.html:15
#: authentication/templates/authentication/_msg_reset_password_code.html:18
msgid "The validity period of the verification code is one minute"
msgstr "驗證碼有效期為 1 分鐘"
#: authentication/templates/authentication/_msg_oauth_bind.html:6 #: authentication/templates/authentication/_msg_oauth_bind.html:6
msgid "Your account has just been bound to" msgid "Your account has just been bound to"
msgstr "您的帳戶剛剛綁定到" msgstr "您的帳戶剛剛綁定到"
#: authentication/templates/authentication/_msg_oauth_bind.html:17 #: authentication/templates/authentication/_msg_oauth_bind.html:15
msgid "If the operation is not your own, unbind and change the password." msgid "If the operation is not your own, unbind and change the password."
msgstr "如果操作不是您本人,請解綁並且修改密碼" msgstr "如果操作不是您本人,請解綁並且修改密碼"
@ -4863,7 +4903,7 @@ msgstr "企業專業版"
msgid "Ultimate edition" msgid "Ultimate edition"
msgstr "企業旗艦版" msgstr "企業旗艦版"
#: common/const/common.py:5 xpack/plugins/cloud/manager.py:452 #: common/const/common.py:5 xpack/plugins/cloud/manager.py:451
#, python-format #, python-format
msgid "%(name)s was created successfully" msgid "%(name)s was created successfully"
msgstr "%(name)s 創建成功" msgstr "%(name)s 創建成功"
@ -5232,11 +5272,11 @@ msgid ""
" this task needs to be executed for sending emails and handling attachments" " this task needs to be executed for sending emails and handling attachments"
msgstr "當帳號改密,帳號備份產生附件時,需對發送郵件及附件執行該任務" msgstr "當帳號改密,帳號備份產生附件時,需對發送郵件及附件執行該任務"
#: common/tasks.py:107 #: common/tasks.py:104
msgid "Upload account backup to external storage" msgid "Upload account backup to external storage"
msgstr "上傳會話錄像到外部存儲" msgstr "上傳會話錄像到外部存儲"
#: common/tasks.py:109 #: common/tasks.py:106
msgid "" msgid ""
"When performing an account backup, this task needs to be executed to " "When performing an account backup, this task needs to be executed to "
"external storage (SFTP)" "external storage (SFTP)"
@ -5644,7 +5684,7 @@ msgstr "* 請輸入有效的 crontab 表達式"
#: ops/mixin.py:194 #: ops/mixin.py:194
msgid "Crontab minute must not contain '*'" msgid "Crontab minute must not contain '*'"
msgstr "" msgstr "Crontab 分鐘不能包含 “*”"
#: ops/mixin.py:208 settings/serializers/auth/mixin.py:12 #: ops/mixin.py:208 settings/serializers/auth/mixin.py:12
msgid "Require interval or crontab setting" msgid "Require interval or crontab setting"
@ -6402,7 +6442,7 @@ msgid "Storage"
msgstr "儲存" msgstr "儲存"
#: rbac/tree.py:64 terminal/models/applet/applet.py:53 #: rbac/tree.py:64 terminal/models/applet/applet.py:53
#: terminal/models/applet/applet.py:371 terminal/models/applet/host.py:30 #: terminal/models/applet/applet.py:379 terminal/models/applet/host.py:30
#: terminal/serializers/applet.py:16 #: terminal/serializers/applet.py:16
msgid "Applet" msgid "Applet"
msgstr "遠程應用" msgstr "遠程應用"
@ -6424,24 +6464,24 @@ msgstr "作業審核"
msgid "Report" msgid "Report"
msgstr "報表" msgstr "報表"
#: rbac/tree.py:181 #: rbac/tree.py:182
msgid "App organizations" msgid "App organizations"
msgstr "組織管理" msgstr "組織管理"
#: rbac/tree.py:182 #: rbac/tree.py:183
msgid "Ticket comment" msgid "Ticket comment"
msgstr "工單評論" msgstr "工單評論"
#: rbac/tree.py:183 settings/serializers/feature.py:174 #: rbac/tree.py:184 settings/serializers/feature.py:174
#: settings/serializers/feature.py:176 tickets/models/ticket/general.py:310 #: settings/serializers/feature.py:176 tickets/models/ticket/general.py:310
msgid "Ticket" msgid "Ticket"
msgstr "工單管理" msgstr "工單管理"
#: rbac/tree.py:184 #: rbac/tree.py:185
msgid "Common setting" msgid "Common setting"
msgstr "一般設定" msgstr "一般設定"
#: rbac/tree.py:185 #: rbac/tree.py:186
msgid "View permission tree" msgid "View permission tree"
msgstr "查看授權樹" msgstr "查看授權樹"
@ -6485,6 +6525,14 @@ msgstr "PAM 儀表板"
msgid "ChangeSecretDashboard" msgid "ChangeSecretDashboard"
msgstr "帳號改密儀表盤" msgstr "帳號改密儀表盤"
#: reports/views.py:181
msgid "Failed to send email: "
msgstr "發送郵件失敗"
#: reports/views.py:182
msgid "Email sent successfully to "
msgstr "發送郵件成功"
#: settings/api/chat.py:41 #: settings/api/chat.py:41
msgid "Chat AI is not enabled" msgid "Chat AI is not enabled"
msgstr "聊天 AI 沒有開啟" msgstr "聊天 AI 沒有開啟"
@ -6522,7 +6570,7 @@ msgstr "System Settings"
#: settings/const.py:13 #: settings/const.py:13
msgid "Embed" msgid "Embed"
msgstr "" msgstr "嵌入"
#: settings/models.py:42 users/models/preference.py:14 #: settings/models.py:42 users/models/preference.py:14
msgid "Encrypted" msgid "Encrypted"
@ -6769,7 +6817,7 @@ msgstr "使用者屬性對照,其中 `key` 是 JumpServer 使用者屬性名
#: settings/serializers/auth/lark.py:13 users/models/user/_source.py:24 #: settings/serializers/auth/lark.py:13 users/models/user/_source.py:24
msgid "Lark" msgid "Lark"
msgstr "" msgstr "Lark"
#: settings/serializers/auth/lark.py:19 #: settings/serializers/auth/lark.py:19
msgid "" msgid ""
@ -7006,6 +7054,8 @@ msgid ""
"The issuer URL of the OpenID Provider, used to discover its configuration " "The issuer URL of the OpenID Provider, used to discover its configuration "
"via the `$PROVIDER_ENDPOINT/.well-known/openid-configuration` endpoint." "via the `$PROVIDER_ENDPOINT/.well-known/openid-configuration` endpoint."
msgstr "" msgstr ""
"OpenID 提供商的發行者 URL用於通過“$PROVIDER_ENDPOINT/.well-known/openid-"
"configuration”端點發現其配置。"
#: settings/serializers/auth/oidc.py:87 #: settings/serializers/auth/oidc.py:87
msgid "JWKS endpoint" msgid "JWKS endpoint"
@ -7353,7 +7403,7 @@ msgid "Tenant ID"
msgstr "租戶 ID" msgstr "租戶 ID"
#: settings/serializers/feature.py:112 terminal/serializers/storage.py:68 #: settings/serializers/feature.py:112 terminal/serializers/storage.py:68
#: xpack/plugins/cloud/manager.py:119 xpack/plugins/cloud/manager.py:124 #: xpack/plugins/cloud/manager.py:119 xpack/plugins/cloud/manager.py:123
#: xpack/plugins/cloud/models.py:293 #: xpack/plugins/cloud/models.py:293
msgid "Region" msgid "Region"
msgstr "地域" msgstr "地域"
@ -8128,7 +8178,7 @@ msgstr "下載更新模板"
#: templates/_foot_js.html:30 #: templates/_foot_js.html:30
msgid "Page footer" msgid "Page footer"
msgstr "" msgstr "頁腳"
#: templates/_header_bar.html:12 #: templates/_header_bar.html:12
msgid "Help" msgid "Help"
@ -8228,7 +8278,7 @@ msgid ""
msgstr "您即將跳轉到一個外部網站,請確認您信任該連結" msgstr "您即將跳轉到一個外部網站,請確認您信任該連結"
#: templates/resource_download.html:20 templates/resource_download.html:35 #: templates/resource_download.html:20 templates/resource_download.html:35
#: users/const.py:78 #: users/const.py:84
msgid "Client" msgid "Client"
msgstr "用戶端" msgstr "用戶端"
@ -8512,12 +8562,12 @@ msgstr "只支持自訂平台"
msgid "Missing type in platform.yml" msgid "Missing type in platform.yml"
msgstr "在 platform.yml 中缺少類型" msgstr "在 platform.yml 中缺少類型"
#: terminal/models/applet/applet.py:373 terminal/models/applet/host.py:36 #: terminal/models/applet/applet.py:381 terminal/models/applet/host.py:36
#: terminal/models/applet/host.py:138 #: terminal/models/applet/host.py:138
msgid "Hosting" msgid "Hosting"
msgstr "宿主機" msgstr "宿主機"
#: terminal/models/applet/applet.py:379 #: terminal/models/applet/applet.py:387
msgid "Applet Publication" msgid "Applet Publication"
msgstr "應用發布" msgstr "應用發布"
@ -8667,7 +8717,7 @@ msgstr "應用用戶"
msgid "Can view terminal config" msgid "Can view terminal config"
msgstr "可以查看終端配置" msgstr "可以查看終端配置"
#: terminal/models/session/command.py:76 #: terminal/models/session/command.py:77
msgid "Command record" msgid "Command record"
msgstr "命令記錄" msgstr "命令記錄"
@ -9568,11 +9618,11 @@ msgstr "你有一個新的工單, 申請人 - {}"
msgid "{}: New Ticket - {} ({})" msgid "{}: New Ticket - {} ({})"
msgstr "新工單 - {} ({})" msgstr "新工單 - {} ({})"
#: tickets/notifications.py:160 #: tickets/notifications.py:168
msgid "Your ticket has been processed, processor - {}" msgid "Your ticket has been processed, processor - {}"
msgstr "你的工單已被處理, 處理人 - {}" msgstr "你的工單已被處理, 處理人 - {}"
#: tickets/notifications.py:164 #: tickets/notifications.py:172
msgid "Ticket has processed - {} ({})" msgid "Ticket has processed - {} ({})"
msgstr "你的工單已被處理, 處理人 - {} ({})" msgstr "你的工單已被處理, 處理人 - {} ({})"
@ -9727,23 +9777,31 @@ msgstr "當前窗口"
msgid "New window" msgid "New window"
msgstr "新窗口" msgstr "新窗口"
#: users/const.py:47 #: users/const.py:43
msgid "Dark gray"
msgstr "深灰色"
#: users/const.py:44
msgid "Deep blue"
msgstr "深藍色"
#: users/const.py:53
msgid "High32 bit" msgid "High32 bit"
msgstr "高32 bit" msgstr "高32 bit"
#: users/const.py:48 #: users/const.py:54
msgid "True Color24 bit" msgid "True Color24 bit"
msgstr "" msgstr "真彩色24位"
#: users/const.py:49 #: users/const.py:55
msgid "Medium16 bit" msgid "Medium16 bit"
msgstr "中16 bit" msgstr "中16 bit"
#: users/const.py:82 #: users/const.py:88
msgid "Replace" msgid "Replace"
msgstr "替換" msgstr "替換"
#: users/const.py:83 #: users/const.py:89
msgid "Suffix" msgid "Suffix"
msgstr "加後綴" msgstr "加後綴"
@ -9954,7 +10012,7 @@ msgstr "重設 SSH 金鑰"
#: users/notifications.py:253 #: users/notifications.py:253
msgid "Update SSH Key url" msgid "Update SSH Key url"
msgstr "" msgstr "更新 SSH 密鑰地址"
#: users/notifications.py:276 #: users/notifications.py:276
msgid "Reset MFA" msgid "Reset MFA"
@ -9965,12 +10023,12 @@ msgid "Reset MFA url"
msgstr "重置 MFA 網址" msgstr "重置 MFA 網址"
#: users/serializers/preference/koko.py:10 #: users/serializers/preference/koko.py:10
#: users/serializers/preference/luna.py:63 #: users/serializers/preference/luna.py:67
msgid "File name conflict resolution" msgid "File name conflict resolution"
msgstr "檔案名衝突解決方案" msgstr "檔案名衝突解決方案"
#: users/serializers/preference/koko.py:14 #: users/serializers/preference/koko.py:14
#: users/serializers/preference/luna.py:80 #: users/serializers/preference/luna.py:84
msgid "Terminal theme name" msgid "Terminal theme name"
msgstr "終端主題名稱" msgstr "終端主題名稱"
@ -10004,56 +10062,62 @@ msgstr "非同步載入資產樹"
msgid "Connect default open method" msgid "Connect default open method"
msgstr "連接默認打開方式" msgstr "連接默認打開方式"
#: users/serializers/preference/luna.py:37 #: users/serializers/preference/luna.py:34
#: xpack/plugins/interface/models.py:41
#: xpack/plugins/interface/serializers/interface.py:26
msgid "Theme"
msgstr "主題"
#: users/serializers/preference/luna.py:41
msgid "RDP resolution" msgid "RDP resolution"
msgstr "RDP 解析度" msgstr "RDP 解析度"
#: users/serializers/preference/luna.py:41 #: users/serializers/preference/luna.py:45
msgid "Keyboard layout" msgid "Keyboard layout"
msgstr "鍵盤布局" msgstr "鍵盤布局"
#: users/serializers/preference/luna.py:45 #: users/serializers/preference/luna.py:49
msgid "RDP client option" msgid "RDP client option"
msgstr "RDP 用戶端選項" msgstr "RDP 用戶端選項"
#: users/serializers/preference/luna.py:49 #: users/serializers/preference/luna.py:53
msgid "RDP color quality" msgid "RDP color quality"
msgstr "RDP 顏色質量" msgstr "RDP 顏色質量"
#: users/serializers/preference/luna.py:53 #: users/serializers/preference/luna.py:57
msgid "RDP smart size" msgid "RDP smart size"
msgstr "RDP 智慧尺寸" msgstr "RDP 智慧尺寸"
# msgid "Rdp smart size" # msgid "Rdp smart size"
# msgstr "RDP 智慧大小" # msgstr "RDP 智慧大小"
#: users/serializers/preference/luna.py:54 #: users/serializers/preference/luna.py:58
msgid "" msgid ""
"Determines whether the client computer should scale the content on the " "Determines whether the client computer should scale the content on the "
"remote computer to fit the window size of the client computer when the " "remote computer to fit the window size of the client computer when the "
"window is resized." "window is resized."
msgstr "確定調整窗口大小時用戶端計算機是否應縮放遠程計算機上的內容以適應用戶端計算機的窗口大小" msgstr "確定調整窗口大小時用戶端計算機是否應縮放遠程計算機上的內容以適應用戶端計算機的窗口大小"
#: users/serializers/preference/luna.py:59 #: users/serializers/preference/luna.py:63
msgid "Remote app connect method" msgid "Remote app connect method"
msgstr "遠程應用連線方式" msgstr "遠程應用連線方式"
#: users/serializers/preference/luna.py:70 #: users/serializers/preference/luna.py:74
msgid "Terminal font size" msgid "Terminal font size"
msgstr "字元終端機字體大小" msgstr "字元終端機字體大小"
#: users/serializers/preference/luna.py:73 #: users/serializers/preference/luna.py:77
msgid "Backspace as Ctrl+H" msgid "Backspace as Ctrl+H"
msgstr "字元終端Backspace As Ctrl+H" msgstr "字元終端Backspace As Ctrl+H"
#: users/serializers/preference/luna.py:76 #: users/serializers/preference/luna.py:80
msgid "Right click quickly paste" msgid "Right click quickly paste"
msgstr "右鍵快速黏貼" msgstr "右鍵快速黏貼"
#: users/serializers/preference/luna.py:86 #: users/serializers/preference/luna.py:90
msgid "Graphics" msgid "Graphics"
msgstr "圖形化" msgstr "圖形化"
#: users/serializers/preference/luna.py:87 #: users/serializers/preference/luna.py:91
msgid "Command line" msgid "Command line"
msgstr "命令行" msgstr "命令行"
@ -10622,7 +10686,7 @@ msgstr "ZStack"
#: xpack/plugins/cloud/const.py:30 xpack/plugins/cloud/providers/smartx.py:9 #: xpack/plugins/cloud/const.py:30 xpack/plugins/cloud/providers/smartx.py:9
msgid "SmartX CloudTower" msgid "SmartX CloudTower"
msgstr "" msgstr "SmartX 雲塔"
#: xpack/plugins/cloud/const.py:31 #: xpack/plugins/cloud/const.py:31
msgid "Fusion Compute" msgid "Fusion Compute"
@ -10725,17 +10789,17 @@ msgstr "任務執行完成"
msgid "Synchronization regions" msgid "Synchronization regions"
msgstr "同步地區" msgstr "同步地區"
#: xpack/plugins/cloud/manager.py:141 #: xpack/plugins/cloud/manager.py:140
#, python-format #, python-format
msgid "Get instances of region \"%s\" error, error: %s" msgid "Get instances of region \"%s\" error, error: %s"
msgstr "An error occurred while getting the instances of Region \"%s\", Error: %s" msgstr "An error occurred while getting the instances of Region \"%s\", Error: %s"
#: xpack/plugins/cloud/manager.py:186 #: xpack/plugins/cloud/manager.py:185
#, python-format #, python-format
msgid "Failed to synchronize the instance \"%s\"" msgid "Failed to synchronize the instance \"%s\""
msgstr "Unable to synchronize instance %s" msgstr "Unable to synchronize instance %s"
#: xpack/plugins/cloud/manager.py:377 #: xpack/plugins/cloud/manager.py:376
#, python-format #, python-format
msgid "" msgid ""
"The updated platform of asset \"%s\" is inconsistent with the original " "The updated platform of asset \"%s\" is inconsistent with the original "
@ -10744,47 +10808,47 @@ msgstr ""
"The update platform of asset \"%s\" is not consistent with the original " "The update platform of asset \"%s\" is not consistent with the original "
"platform type. Skip platform and protocol updates" "platform type. Skip platform and protocol updates"
#: xpack/plugins/cloud/manager.py:434 #: xpack/plugins/cloud/manager.py:433
#, python-format #, python-format
msgid "The asset \"%s\" already exists" msgid "The asset \"%s\" already exists"
msgstr "\"資產 \"%s\" 已存在" msgstr "\"資產 \"%s\" 已存在"
#: xpack/plugins/cloud/manager.py:436 #: xpack/plugins/cloud/manager.py:435
#, python-format #, python-format
msgid "Update asset \"%s\"" msgid "Update asset \"%s\""
msgstr "更新資產 \"%s\"" msgstr "更新資產 \"%s\""
#: xpack/plugins/cloud/manager.py:439 #: xpack/plugins/cloud/manager.py:438
#, python-format #, python-format
msgid "Asset \"%s\" has been updated" msgid "Asset \"%s\" has been updated"
msgstr "資產 \"%s\" 已更新" msgstr "資產 \"%s\" 已更新"
#: xpack/plugins/cloud/manager.py:448 #: xpack/plugins/cloud/manager.py:447
#, python-format #, python-format
msgid "Prepare to create asset \"%s\"" msgid "Prepare to create asset \"%s\""
msgstr "Preparing to create asset %s" msgstr "Preparing to create asset %s"
#: xpack/plugins/cloud/manager.py:469 #: xpack/plugins/cloud/manager.py:468
#, python-format #, python-format
msgid "Set nodes \"%s\"" msgid "Set nodes \"%s\""
msgstr "設定節點: \"%s\"" msgstr "設定節點: \"%s\""
#: xpack/plugins/cloud/manager.py:495 #: xpack/plugins/cloud/manager.py:494
#, python-format #, python-format
msgid "Set accounts \"%s\"" msgid "Set accounts \"%s\""
msgstr "設定帳號: %s" msgstr "設定帳號: %s"
#: xpack/plugins/cloud/manager.py:511 #: xpack/plugins/cloud/manager.py:510
#, python-format #, python-format
msgid "Set protocols \"%s\"" msgid "Set protocols \"%s\""
msgstr "設定協議 \"%s\"" msgstr "設定協議 \"%s\""
#: xpack/plugins/cloud/manager.py:519 #: xpack/plugins/cloud/manager.py:518
#, python-format #, python-format
msgid "Set labels \"%s\"" msgid "Set labels \"%s\""
msgstr "設定標籤: \"%s\"" msgstr "設定標籤: \"%s\""
#: xpack/plugins/cloud/manager.py:533 xpack/plugins/cloud/tasks.py:31 #: xpack/plugins/cloud/manager.py:532 xpack/plugins/cloud/tasks.py:31
msgid "Run sync instance task" msgid "Run sync instance task"
msgstr "執行同步實例任務" msgstr "執行同步實例任務"
@ -11314,11 +11378,6 @@ msgstr "頁面 Logo"
msgid "Logout logo" msgid "Logout logo"
msgstr "登出" msgstr "登出"
#: xpack/plugins/interface/models.py:41
#: xpack/plugins/interface/serializers/interface.py:26
msgid "Theme"
msgstr "主題"
#: xpack/plugins/interface/models.py:42 #: xpack/plugins/interface/models.py:42
msgid "Footer content" msgid "Footer content"
msgstr "頁尾內容" msgstr "頁尾內容"
@ -11339,6 +11398,14 @@ msgstr "許可證匯入成功"
msgid "Invalid license" msgid "Invalid license"
msgstr "許可證無效" msgstr "許可證無效"
#, fuzzy
#~ msgid "Themes"
#~ msgstr "主題"
#, fuzzy
#~ msgid "domain_name"
#~ msgstr "域名稱"
#~ msgid "Task execution id" #~ msgid "Task execution id"
#~ msgstr "任務執行 ID" #~ msgstr "任務執行 ID"

View File

@ -1,20 +1,46 @@
{ {
"\t%2d) Enter {{.GreenBoldColor}}%s{{.ColorEnd}} to %s.%s": "",
"%s approved": "",
"%s node has no assets": "",
"%s protocol client not installed.": "",
"%s rejected": "",
"/ + IP, Hostname, Comment": "",
"ACL reject": "",
"Account <%s> and asset <%s> protocol are inconsistent.": "",
"ActionPerm": "Action Permission", "ActionPerm": "Action Permission",
"Address": "",
"AlreadyExistsPleaseRename": "File already exists, please rename it", "AlreadyExistsPleaseRename": "File already exists, please rename it",
"Announcement: ": "",
"Authentication failed": "",
"AvailableShortcutKey": "Available Shortcut Key", "AvailableShortcutKey": "Available Shortcut Key",
"Back": "Back", "Back": "Back",
"Back: B/b": "",
"Cancel": "Cancel", "Cancel": "Cancel",
"Cancel confirm": "",
"Cancel to login asset or max 3 retry": "",
"CancelFileUpload": "Cancel file upload", "CancelFileUpload": "Cancel file upload",
"CaseSensitive": "Case sensitive", "CaseSensitive": "Case sensitive",
"Clone Connect": "Clone Connect", "Clone Connect": "Clone Connect",
"Close All Tabs": "Close All Tabs", "Close All Tabs": "Close All Tabs",
"Close Current Tab": "Close Current Tab", "Close Current Tab": "Close Current Tab",
"Command `%s` is forbidden": "",
"Comment": "",
"Confirm": "Confirm", "Confirm": "Confirm",
"ConfirmBtn": "Confirm", "ConfirmBtn": "Confirm",
"ConfirmDelete": "Are you sure you want to delete this file?", "ConfirmDelete": "Are you sure you want to delete this file?",
"Connect": "Connect", "Connect": "Connect",
"Connect idle more than %d minutes, disconnect": "",
"Connect with api server failed": "",
"Connecting to %s@%s": "",
"Connecting to Database %s": "",
"Connecting to Kubernetes %s": "",
"Connecting to Kubernetes %s container %s": "",
"Connection refused": "",
"CopyLink": "Copy Link Address and Code", "CopyLink": "Copy Link Address and Code",
"CopyShareURLSuccess": "Copy Share URL Success", "CopyShareURLSuccess": "Copy Share URL Success",
"Core API failed": "",
"Could copy website URL to notify reviewers: %s": "",
"Create k8s client err: %s": "",
"CreateFolder": "Create folder", "CreateFolder": "Create folder",
"CreateLink": "Create link", "CreateLink": "Create link",
"CreateSuccess": "Success", "CreateSuccess": "Success",
@ -27,10 +53,14 @@
"DownloadProgress": "Download progress", "DownloadProgress": "Download progress",
"DownloadSuccess": "Download success", "DownloadSuccess": "Download success",
"Downloading": "Downloading", "Downloading": "Downloading",
"Dynamic": "",
"EndFileTransfer": "File transfer end", "EndFileTransfer": "File transfer end",
"Enter ID number directly login, multiple search use // + field, such as: //16": "",
"ExceedTransferSize": "exceed max transfer size", "ExceedTransferSize": "exceed max transfer size",
"Expand": "Expand", "Expand": "Expand",
"ExpiredTime": "Expiration time", "ExpiredTime": "Expiration time",
"Face ACL is not supported yet. Please use the WebTerminal to connect the asset.": "",
"Face verification is not supported yet. Please use the WebTerminal to connect the asset.": "",
"FailedCreateConnection": "Failed to create connection", "FailedCreateConnection": "Failed to create connection",
"FileAlreadyExists": "File already exists", "FileAlreadyExists": "File already exists",
"FileListError": "Failed to get file list", "FileListError": "Failed to get file list",
@ -41,10 +71,15 @@
"FileUploadInterrupted": "File upload interrupted", "FileUploadInterrupted": "File upload interrupted",
"Format": "Format", "Format": "Format",
"General": "General", "General": "General",
"Get auth password failed": "",
"GetFileManagerTokenTimeOut": "Get file manager token timeout", "GetFileManagerTokenTimeOut": "Get file manager token timeout",
"GetShareUser": "Enter username", "GetShareUser": "Enter username",
"HandleTask does not support protocol %s, please use web terminal to access": "",
"Hostname": "",
"Hotkeys": "Hotkeys", "Hotkeys": "Hotkeys",
"ID": "",
"InputVerifyCode": "Input Verify Code", "InputVerifyCode": "Input Verify Code",
"Invalid ID": "",
"JoinShare": "Join Session", "JoinShare": "Join Session",
"JoinedWithSuccess": "Successfully joined", "JoinedWithSuccess": "Successfully joined",
"KubernetesManagement": "Kubernetes management", "KubernetesManagement": "Kubernetes management",
@ -53,41 +88,71 @@
"LeftArrow": "Left arrow", "LeftArrow": "Left arrow",
"LinkAddr": "Link Address", "LinkAddr": "Link Address",
"List": "List", "List": "List",
"Manual": "",
"MatchWholeWords": "Match whole words", "MatchWholeWords": "Match whole words",
"Minute": "Minute", "Minute": "Minute",
"Minutes": "Minutes", "Minutes": "Minutes",
"Must be auto login account for %s": "",
"Must be unique account for %s": "",
"Must be unique asset for %s": "",
"MustOneFile": "Only support to select one file", "MustOneFile": "Only support to select one file",
"MustSelectOneFile": "Must select one file", "MustSelectOneFile": "Must select one file",
"Name": "Name", "Name": "Name",
"Need ACL review, continue? (y/n): ": "",
"Need ticket confirm to execute command, already send email to the reviewers": "",
"Need ticket confirm to login, already send email to the reviewers": "",
"NewFolder": "New Folder", "NewFolder": "New Folder",
"No Account found.": "No Account found.",
"No Assets": "No Assets",
"No Databases": "No Databases",
"No account found.": "No account found.",
"No found asset": "No found asset",
"No kubernetes": "No kubernetes",
"No protocol found.": "No protocol found.",
"No route to host": "No route to host",
"NoActiveTerminalTabFound": "No active terminal tab found", "NoActiveTerminalTabFound": "No active terminal tab found",
"NoData": "No data", "NoData": "No data",
"NoLink": "No Link", "NoLink": "No Link",
"NoRunningTerminalFound": "No running terminal found", "NoRunningTerminalFound": "No running terminal found",
"Node: [ ID.Name(Asset amount) ]": "Node: [ ID.Name(Asset amount) ]",
"OnlineUser": "Online User", "OnlineUser": "Online User",
"OperationSuccessful": "Operation successful", "OperationSuccessful": "Operation successful",
"Organization": "Organization",
"Owner": "Owner", "Owner": "Owner",
"Page up: b\tPage down: n": "Page up: b\tPage down: n",
"Page: %d, Count: %d, Total Page: %d, Total Count: %d": "Page: %d, Count: %d, Total Page: %d, Total Count: %d",
"Paste": "Paste", "Paste": "Paste",
"PauseSession": "Pause Session", "PauseSession": "Pause Session",
"Permission has expired, disconnect": "Permission has expired, disconnect",
"PermissionDenied": "Permission denied", "PermissionDenied": "Permission denied",
"PermissionExpired": "Permission expired", "PermissionExpired": "Permission expired",
"PermissionValid": "Permission valid", "PermissionValid": "Permission valid",
"Platform": "Platform",
"Please waiting for the reviewers to confirm command `%s`, cancel by CTRL+C or CTRL+D.": "",
"Please waiting for the reviewers to confirm, enter q to exit. ": "Please waiting for the reviewers to confirm, enter q to exit. ",
"PleaseInput": "Please input", "PleaseInput": "Please input",
"PleaseInputVerifyCode": "Please input verify code", "PleaseInputVerifyCode": "Please input verify code",
"PrimaryUser": "Primary user", "PrimaryUser": "Primary user",
"Protocol": "Protocol",
"ReadOnly": "Read Only", "ReadOnly": "Read Only",
"Reconnect": "Reconnect", "Reconnect": "Reconnect",
"Refresh": "Refresh", "Refresh": "Refresh",
"Refresh done": "",
"Remove": "Remove", "Remove": "Remove",
"RemoveShareUser": "You have been removed from the shared session.", "RemoveShareUser": "You have been removed from the shared session.",
"RemoveUser": "Remove User", "RemoveUser": "Remove User",
"Rename": "Rename", "Rename": "Rename",
"ResumeSession": "Resume Session", "ResumeSession": "Resume Session",
"Reuse SSH connections (%s@%s) [Number of connections: %d]": "",
"RightArrow": "Right arrow", "RightArrow": "Right arrow",
"Search": "Search", "Search": "Search",
"Search: %s": "",
"Select account exceed max retry times.": "",
"Select protocol exceed max retry times.": "",
"SelectAction": "Select", "SelectAction": "Select",
"SelectTheme": "Select Theme", "SelectTheme": "Select Theme",
"Self": "Self", "Self": "Self",
"Session max time reached, disconnect": "",
"SessionDetail": "Session Detail", "SessionDetail": "Session Detail",
"SessionShare": "Session Share", "SessionShare": "Session Share",
"Settings": "Settings", "Settings": "Settings",
@ -96,18 +161,33 @@
"ShareUser": "Share User", "ShareUser": "Share User",
"ShareUserHelpText": "If left blank, everyone could join the session.", "ShareUserHelpText": "If left blank, everyone could join the session.",
"Size": "Size", "Size": "Size",
"Start domain gateway failed %s": "",
"Switch language successfully": "",
"Switched to %s": "",
"Sync": "Sync", "Sync": "Sync",
"SyncUserPreferenceFailed": "Sync user preference failed", "SyncUserPreferenceFailed": "Sync user preference failed",
"SyncUserPreferenceSuccess": "Sync user preference success", "SyncUserPreferenceSuccess": "Sync user preference success",
"Terminal does not support protocol %s, please use web terminal to access": "",
"TerminalInstanceNotFound": "Terminal instance not found for current tab", "TerminalInstanceNotFound": "Terminal instance not found for current tab",
"TerminalInstanceNotFoundForCurrentTab": "Terminal instance not found for current tab", "TerminalInstanceNotFoundForCurrentTab": "Terminal instance not found for current tab",
"Terminated by admin %s": "",
"The command '%s' requires review. Continue or not [Y/n]?": "",
"The command you executed is risky and an alert notification will be sent to the administrator. Do you want to continue?[Y/N]": "",
"TheCurrentTerminalInstanceWasNotFound": "The current terminal instance was not found", "TheCurrentTerminalInstanceWasNotFound": "The current terminal instance was not found",
"Theme": "Theme", "Theme": "Theme",
"ThemeColors": "Theme Colors", "ThemeColors": "Theme Colors",
"ThemeConfig": "Theme", "ThemeConfig": "Theme",
"Ticket Reviewers: %s": "",
"Tips: Enter asset[%s] account ID": "",
"Tips: Enter g+NodeID to display the host under the node, such as g1": "",
"Tips: Enter protocol ID": "",
"Tips: To set a default language, go to Personal Settings → Preferences on Web": "",
"Tips: switch language by ID (Current session only)": "",
"Transfer": "Transfer", "Transfer": "Transfer",
"Type": "Type", "Type": "Type",
"UnableToGenerateWebSocketURL": "Unable to generate WebSocket URL, missing parameters", "UnableToGenerateWebSocketURL": "Unable to generate WebSocket URL, missing parameters",
"Unknown error code: %s, detail: %s": "",
"Unknown status": "",
"UpArrow": "Up arrow", "UpArrow": "Up arrow",
"Upload": "Upload", "Upload": "Upload",
"UploadEnd": "Upload completed, please wait for further processing", "UploadEnd": "Upload completed, please wait for further processing",
@ -117,114 +197,34 @@
"UploadTips": "Drag file here or click to upload", "UploadTips": "Drag file here or click to upload",
"UploadTitle": "File upload", "UploadTitle": "File upload",
"User": "User", "User": "User",
"Username": "",
"UsingRegularExpressions": "Using regular expressions", "UsingRegularExpressions": "Using regular expressions",
"VerifyCode": "Verify Code", "VerifyCode": "Verify Code",
"WaitFileTransfer": "Wait file transfer to finish", "WaitFileTransfer": "Wait file transfer to finish",
"Warning": "Warning", "Warning": "Warning",
"WebSocketClosed": "WebSocket closed", "WebSocketClosed": "WebSocket closed",
"WebSocketConnectionIsClosedHelpText": "WebSocket connection is closed, please refresh the page or reconnect.", "WebSocketConnectionIsClosedHelpText": "WebSocket connection is closed, please refresh the page or reconnect.",
"Writable": "Writable",
"No Databases": "",
"No kubernetes": "",
"Page: %d, Count: %d, Total Page: %d, Total Count: %d": "",
"Enter ID number directly login, multiple search use // + field, such as: //16": "",
"Page up: b\tPage down: n": "",
"No Assets": "",
"ID": "",
"Address": "",
"Platform": "",
"Organization": "",
"Comment": "",
"%s protocol client not installed.": "",
"Terminal does not support protocol %s, please use web terminal to access": "",
"Core API failed": "",
"ACL reject": "",
"Face ACL is not supported yet. Please use the WebTerminal to connect the asset.": "",
"Unknown error code: %s, detail: %s": "",
"get connect token err": "",
"%s node has no assets": "",
"Welcome to use JumpServer open source fortress system": "", "Welcome to use JumpServer open source fortress system": "",
"part IP, Hostname, Comment": "", "Writable": "Writable",
"to search login if unique": "",
"/ + IP, Hostname, Comment": "",
"to search, such as: /192.168": "",
"display the assets you have permission": "",
"display the node that you have permission": "",
"display the hosts that you have permission": "",
"display the databases that you have permission": "",
"display the kubernetes that you have permission": "",
"refresh your assets and nodes": "",
"language switch": "",
"print help": "",
"exit": "",
"\t%2d) Enter {{.GreenBoldColor}}%s{{.ColorEnd}} to %s.%s": "",
"Announcement: ": "",
"No Account found.": "",
"Username": "",
"Tips: Enter asset[%s] account ID": "",
"Back: B/b": "",
"Hostname": "",
"select one asset to login": "",
"not found matched username %s": "",
"Face verification is not supported yet. Please use the WebTerminal to connect the asset.": "",
"Tips: switch language by ID (Current session only)": "",
"Tips: To set a default language, go to Personal Settings → Preferences on Web": "",
"Invalid ID": "",
"Switch language successfully": "",
"Node: [ ID.Name(Asset amount) ]": "",
"Tips: Enter g+NodeID to display the host under the node, such as g1": "",
"Connect idle more than %d minutes, disconnect": "",
"No account found.": "",
"Select account exceed max retry times.": "",
"No protocol found.": "",
"Protocol": "",
"Tips: Enter protocol ID": "",
"Select protocol exceed max retry times.": "",
"Refresh done": "",
"Need ACL review, continue? (y/n): ": "",
"Cancel to login asset or max 3 retry": "",
"Need ticket confirm to login, already send email to the reviewers": "",
"Ticket Reviewers: %s": "",
"Could copy website URL to notify reviewers: %s": "",
"Please waiting for the reviewers to confirm, enter q to exit. ": "",
"Unknown status": "",
"%s approved": "",
"%s rejected": "",
"Cancel confirm": "",
"Search: %s": "",
"Must be unique asset for %s": "",
"Must be unique account for %s": "",
"Must be auto login account for %s": "",
"No found asset": "",
"Create k8s client err: %s": "",
"have no permission to upload file": "",
"The command you executed is risky and an alert notification will be sent to the administrator. Do you want to continue?[Y/N]": "",
"The command '%s' requires review. Continue or not [Y/n]?": "",
"Command `%s` is forbidden": "",
"have no permission to download file": "",
"Please waiting for the reviewers to confirm command `%s`, cancel by CTRL+C or CTRL+D.": "",
"Need ticket confirm to execute command, already send email to the reviewers": "",
"HandleTask does not support protocol %s, please use web terminal to access": "",
"Account <%s> and asset <%s> protocol are inconsistent.": "",
"You don't have permission login %s": "", "You don't have permission login %s": "",
"You get auth token failed": "", "You get auth token failed": "",
"Get auth password failed": "", "display the assets you have permission": "",
"Reuse SSH connections (%s@%s) [Number of connections: %d]": "", "display the databases that you have permission": "",
"Switched to %s": "", "display the hosts that you have permission": "",
"Connect with api server failed": "", "display the kubernetes that you have permission": "",
"Start domain gateway failed %s": "", "display the node that you have permission": "",
"Manual": "", "exit": "",
"Dynamic": "", "get connect token err": "",
"Connecting to %s@%s": "", "have no permission to download file": "",
"Connecting to Database %s": "", "have no permission to upload file": "",
"Connecting to Kubernetes %s": "",
"Connecting to Kubernetes %s container %s": "",
"Session max time reached, disconnect": "",
"Permission has expired, disconnect": "",
"Terminated by admin %s": "",
"Authentication failed": "",
"Connection refused": "",
"i/o timeout": "", "i/o timeout": "",
"No route to host": "", "language switch": "",
"network is unreachable": "" "network is unreachable": "",
"not found matched username %s": "",
"part IP, Hostname, Comment": "",
"print help": "",
"refresh your assets and nodes": "",
"select one asset to login": "",
"to search login if unique": "",
"to search, such as: /192.168": ""
} }

View File

@ -1,47 +1,47 @@
{ {
"\t%2d) Enter {{.GreenBoldColor}}%s{{.ColorEnd}} to %s.%s": "%d) Введите {{.GreenBoldColor}}%s{{.ColorEnd}} для %s.%s", "\t%2d) Enter {{.GreenBoldColor}}%s{{.ColorEnd}} to %s.%s": "\t%d) Введите {{.GreenBoldColor}}%s{{.ColorEnd}} чтобы %s.%s",
"%s approved": "%s审核通过", "%s approved": "%s одобрено",
"%s node has no assets": "У узла %s нет активов", "%s node has no assets": "В папке %s нет активов",
"%s protocol client not installed.": "Клиент протокола %s не установлен", "%s protocol client not installed.": "Клиент протокола %s не установлен",
"%s rejected": "%s Проверка отклонена", "%s rejected": "%s отклонено",
"ACL reject": "Доступ для данного логина отклонен из-за ограничений политики доступа", "ACL reject": "Вход запрещен: ограничение политики контроля доступа",
"Account <%s> and asset <%s> protocol are inconsistent.": "Системный пользователь <%s> и актив < %s> не согласованы", "Account <%s> and asset <%s> protocol are inconsistent.": "Протокол системного пользователя <%s> и актива <%s> не совпадают",
"ActionPerm": "Права доступа", "ActionPerm": "Разрешения на действия",
"Address": "Адрес", "Address": "Адрес",
"AlreadyExistsPleaseRename": "Создать папку", "AlreadyExistsPleaseRename": "Файл уже существует, пожалуйста, переименуйте его",
"Announcement: ": "Объявление:", "Announcement: ": "Объявление:",
"Authentication failed": "Ошибка аутентификации (неправильное имя пользователя или пароль)", "Authentication failed": "Ошибка аутентификации: неверное имя пользователя или пароль",
"AvailableShortcutKey": "Доступные горячие клавиши", "AvailableShortcutKey": "Доступные горячие клавиши",
"Back": "Вернуться", "Back": "Назад",
"Back: B/b": "Возврат: B/b", "Back: B/b": "Назад: B/b",
"Cancel": "Отмена", "Cancel": "Отмена",
"Cancel confirm": "Отменить проверку входа", "Cancel confirm": "Отмена подтверждения входа",
"Cancel to login asset or max 3 retry": "Отмена входа в актив или достижение 3-х попыток", "Cancel to login asset or max 3 retry": "Вход на актив отменён или превышен лимит 3 попыток",
"CancelFileUpload": "Отменить передачу файла", "CancelFileUpload": "Отменить передачу файла",
"CaseSensitive": "Учитывать регистрар", "CaseSensitive": "Учитывать регистр",
"Clone Connect": "Клонировать окно", "Clone Connect": "Клонировать окно",
"Close All Tabs": "Закрыть все вкладки", "Close All Tabs": "Закрыть все вкладки",
"Close Current Tab": "Закрыть эту вкладку", "Close Current Tab": "Закрыть эту вкладку",
"Command `%s` is forbidden": "Команда `%s` запрещена ...", "Command `%s` is forbidden": "Команда %s запрещена",
"Comment": "Примечание", "Comment": "Примечание",
"Confirm": "Подтвердить", "Confirm": "Подтвердить",
"ConfirmBtn": "Подтвердить", "ConfirmBtn": "Подтвердить",
"ConfirmDelete": "Вы уверены, что хотите удалить этот файл?", "ConfirmDelete": "Вы действительно хотите удалить этот файл?",
"Connect": "Подключение", "Connect": "Подключение",
"Connect idle more than %d minutes, disconnect": "Время простоя превысило %d минут, соединение разорвано", "Connect idle more than %d minutes, disconnect": "Превышено время простоя (%d минут). Соединение разорвано",
"Connect with api server failed": "Не удалось подключиться к API сервису", "Connect with api server failed": "Не удалось подключиться к API-серверу",
"Connecting to %s@%s": "Начать подключение к %s@%s", "Connecting to %s@%s": "Подключение к %s@%s…",
"Connecting to Database %s": "Начинаю подключение к базе данных %s", "Connecting to Database %s": "Подключение к базе данных %s...",
"Connecting to Kubernetes %s": "Начало подключения к Kubernetes %s", "Connecting to Kubernetes %s": "Подключение к Kubernetes %s...",
"Connecting to Kubernetes %s container %s": "Начинаю подключение к Kubernetes %s контейнеру %s", "Connecting to Kubernetes %s container %s": "Подключение к Kubernetes %s, контейнер %s…",
"Connection refused": "Нет соединения (соединение отклонено)", "Connection refused": "Нет соединения (соединение отклонено)",
"CopyLink": "Скопировать ссылку и код подтверждения", "CopyLink": "Копировать ссылку и код",
"CopyShareURLSuccess": "URL общего доступа успешно скопирован", "CopyShareURLSuccess": "URL общего доступа успешно скопирован",
"Core API failed": "Произошла ошибка Core API", "Core API failed": "Ошибка Core API",
"Could copy website URL to notify reviewers: %s": "Копируемый адрес для аудита, уведомите аудитора: %s", "Could copy website URL to notify reviewers: %s": "Можно скопировать URL для проверки и уведомить проверяющего: %s",
"Create k8s client err: %s": "Ошибка создания клиента k8s: %s", "Create k8s client err: %s": "Ошибка создания клиента k8s: %s",
"CreateFolder": "Пользователи для分享", "CreateFolder": "Создать папку",
"CreateLink": "Создать ссылку", "CreateLink": "Создать ссылку для общего доступа",
"CreateSuccess": "Успешно создано", "CreateSuccess": "Успешно создано",
"CurrentUser": "Текущий пользователь", "CurrentUser": "Текущий пользователь",
"Custom Setting": "Пользовательские настройки", "Custom Setting": "Пользовательские настройки",
@ -49,92 +49,92 @@
"Delete": "Удалить", "Delete": "Удалить",
"DownArrow": "Стрелка вниз", "DownArrow": "Стрелка вниз",
"Download": "Скачать", "Download": "Скачать",
"DownloadProgress": "Прогресс загрузки", "DownloadProgress": "Прогресс скачивания",
"DownloadSuccess": "Успешное скачивание", "DownloadSuccess": "Успешное скачивание",
"Downloading": "Ведётся загрузка", "Downloading": "Скачивается",
"Dynamic": "Динамический аккаунт", "Dynamic": "Своя учетная запись",
"EndFileTransfer": "Передача файла завершена", "EndFileTransfer": "Передача файла завершена",
"Enter ID number directly login, multiple search use // + field, such as: //16": "Подсказка: вводите ID актива для прямого входа, для второго уровня поиска используйте // + поле, например: //192", "Enter ID number directly login, multiple search use // + field, such as: //16": "Подсказка: введите ID ресурса для прямого входа, для расширенного поиска используйте // + значение, например: //192",
"ExceedTransferSize": "Превышен максимальный размер передачи", "ExceedTransferSize": "Превышен максимальный размер передачи",
"Expand": "Развернуть", "Expand": "Развернуть",
"ExpiredTime": "Срок действия", "ExpiredTime": "Срок действия",
"Face ACL is not supported yet. Please use the WebTerminal to connect the asset.": "Данный терминал не поддерживает правила доступа по лицу, пожалуйста, войдите через веб-терминал", "Face ACL is not supported yet. Please use the WebTerminal to connect the asset.": "Этот терминал пока не поддерживает правила доступа по лицу, пожалуйста, войдите через веб-терминал",
"Face verification is not supported yet. Please use the WebTerminal to connect the asset.": "Этот терминал не поддерживает аутентификацию по распознаванию лиц, пожалуйста, выполните вход через веб-терминал.", "Face verification is not supported yet. Please use the WebTerminal to connect the asset.": "Этот терминал не поддерживает аутентификацию по лицу, пожалуйста, войдите через веб-терминал",
"FailedCreateConnection": "Ошибка создания соединения", "FailedCreateConnection": "Не удалось создать соединение",
"FileAlreadyExists": "Только для чтения", "FileAlreadyExists": "Файл уже существует",
"FileListError": "Не удалось получить информацию о списке файлов", "FileListError": "Не удалось получить список файлов",
"FileManagement": "Управление файлами", "FileManagement": "Управление файлами",
"FileManagementExpired": "Текущая сессия управления файлами истекла.", "FileManagementExpired": "Текущая сессия управления файлами истекла.",
"FileManagerTokenTimeout": "Получить токен файлового менеджера, время ожидания истекло", "FileManagerTokenTimeout": "Тайм-аут при получении токена файлового менеджера",
"FileTransferInterrupted": "Передача файлов прервана", "FileTransferInterrupted": "Передача файлов прервана",
"FileUploadInterrupted": "Передача файла прервана", "FileUploadInterrupted": "Загрузка файла прервана",
"Format": "Формат", "Format": "Формат",
"General": "Универсальный", "General": "Основной",
"Get auth password failed": "Вы не смогли получить токен аутентификации", "Get auth password failed": "Не удалось получить пароль аутентификации",
"GetFileManagerTokenTimeOut": "Таймаут получения токена для управления файлами", "GetFileManagerTokenTimeOut": "Тайм-аут при получении токена управления файлами",
"GetShareUser": "Введите имя пользователя", "GetShareUser": "Введите имя пользователя",
"HandleTask does not support protocol %s, please use web terminal to access": "Этот терминал не поддерживает %s протокол, пожалуйста, войдите через веб-терминал", "HandleTask does not support protocol %s, please use web terminal to access": "Протокол %s не поддерживается этим терминалом. Используйте веб-терминал",
"Hostname": "Имя хоста", "Hostname": "Имя хоста",
"Hotkeys": "Горячие клавиши", "Hotkeys": "Горячие клавиши",
"ID": "ID", "ID": "ID",
"InputVerifyCode": "Введите код подтверждения", "InputVerifyCode": "Введите код подтверждения",
"Invalid ID": "Недействительный ID", "Invalid ID": "Неверный ID",
"JoinShare": "Присоединиться к общей сессии", "JoinShare": "Присоединился к общей сессии",
"JoinedWithSuccess": "Успешно присоединился", "JoinedWithSuccess": "Успешно присоединился",
"KubernetesManagement": "Управление Kubernetes", "KubernetesManagement": "Управление Kubernetes",
"LastModified": "Последнее время изменения", "LastModified": "Последнее время изменения",
"LeaveShare": "Покинуть общую сессию", "LeaveShare": "Покинул общую сессию",
"LeftArrow": "Стрелка влево", "LeftArrow": "Стрелка влево",
"LinkAddr": "Адрес ссылки", "LinkAddr": "Адрес ссылки",
"List": "Список", "List": "Список",
"Manual": "Ручной аккаунт", "Manual": "Ручной ввод",
"MatchWholeWords": "Полное совпадение", "MatchWholeWords": "Точное совпадение",
"Minute": "Минуты", "Minute": "Минута",
"Minutes": "Файл уже существует, пожалуйста, переименуйте", "Minutes": "Минут",
"Must be auto login account for %s": "Должен быть аккаунт для автоматического входа %s", "Must be auto login account for %s": "УЗ %s должна быть учётной записью с автоматическим входом",
"Must be unique account for %s": "Должен быть уникальный аккаунт %s", "Must be unique account for %s": "УЗ %s должна быть уникальной",
"Must be unique asset for %s": "должен быть уникальным активом %s", "Must be unique asset for %s": "Актив %s должен быть уникальным",
"MustOneFile": "Можно выбрать только один файл", "MustOneFile": "Можно выбрать только один файл",
"MustSelectOneFile": "Необходимо выбрать файл", "MustSelectOneFile": "Необходимо выбрать файл",
"Name": "Название", "Name": "Имя",
"Need ACL review, continue? (y/n): ": "требует проверки, продолжить? (y/n):", "Need ACL review, continue? (y/n): ": "Требуется проверка правил доступа. Продолжить? (y/n):",
"Need ticket confirm to execute command, already send email to the reviewers": "Требуется команда рабочего задания для выполнения проверки, уведомление отправлено проверяющему", "Need ticket confirm to execute command, already send email to the reviewers": "Выполнение команды требует проверки по заявке. Проверяющему отправлено письмо",
"Need ticket confirm to login, already send email to the reviewers": "Требуется вход в систему через заявку, уведомление отправлено аудитору", "Need ticket confirm to login, already send email to the reviewers": "Требуется вход в систему через заявку, уведомление отправлено утверждающему",
"NewFolder": "Создать папку", "NewFolder": "Создать папку",
"No Account found.": "Учетная запись не найдена", "No Account found.": "Учетная запись не найдена",
"No Assets": "Активов нет", "No Assets": "Нет активов",
"No Databases": "Нет базы данных", "No Databases": "База данных отсутствует",
"No found asset": "Не найдено подходящего актива %s", "No found asset": "Совпадений для актива %s не найдено",
"No kubernetes": "Kubernetes отсутствует", "No kubernetes": "Kubernetes не найден",
"No protocol found.": "Нет протокола", "No protocol found.": "Нет протокола",
"No route to host": "Проблемы с сетью (маршрутизация недоступна)", "No route to host": "Нет соединения (маршрут недоступен)",
"NoActiveTerminalTabFound": "Активная вкладка терминала не найдена", "NoActiveTerminalTabFound": "Активная вкладка терминала не найдена",
"NoData": "Нет данных", "NoData": "Нет данных",
"NoLink": "Без адреса", "NoLink": "Без адреса",
"NoRunningTerminalFound": "Не найдено работающего терминала", "NoRunningTerminalFound": "Активный терминал не найден",
"Node: [ ID.Name(Asset amount) ]": "Узлы: [ ID.Имя(Количество активов) ]", "Node: [ ID.Name(Asset amount) ]": "Папка: [ID.Название(кол-во активов)]",
"OnlineUser": "Онлайн пользователи", "OnlineUser": "Пользователи онлайн",
"OperationSuccessful": "Операция выполнена успешно", "OperationSuccessful": "Операция выполнена успешно",
"Organization": "Организация", "Organization": "Организация",
"Owner": "Администратор", "Owner": "Владелец",
"Page up: b\tPage down: n": "Предыдущая страница: b Следующая страница: n", "Page up: b\tPage down: n": "Предыдущая страница: b Следующая страница: n",
"Page: %d, Count: %d, Total Page: %d, Total Count: %d": "Номер страницы: %d, количество строк на странице: %d, общее количество страниц: %d, общее количество: %d", "Page: %d, Count: %d, Total Page: %d, Total Count: %d": "Страница: %d, строк на странице: %d, всего страниц: %d, всего записей: %d",
"Paste": "Вставить", "Paste": "Вставить",
"PauseSession": "Приостановить сессию", "PauseSession": "Приостановить сессию",
"PermissionDenied": "Нет разрешения", "PermissionDenied": "Доступ запрещен",
"PermissionExpired": "Разрешение истекло", "PermissionExpired": "Разрешение истекло",
"PermissionValid": "Доступ разрешен", "PermissionValid": "Доступ разрешен",
"Platform": "Платформа", "Platform": "Платформа",
"Please waiting for the reviewers to confirm command `%s`, cancel by CTRL+C or CTRL+D.": "Пожалуйста, дождитесь проверки команды проверяющим `%s`, отмените, нажав CTRL+C или CTRL+D.", "Please waiting for the reviewers to confirm command `%s`, cancel by CTRL+C or CTRL+D.": "Пожалуйста, дождитесь проверки команды %s утверждающим. Для отмены нажмите CTRL+C или CTRL+D.",
"Please waiting for the reviewers to confirm, enter q to exit. ": "Ожидание подтверждения от проверяющего, нажмите q и Enter для отмены входа.", "Please waiting for the reviewers to confirm, enter q to exit. ": "Ждём подтверждения проверяющего. q + Enter — отмена входа.",
"PleaseInput": "Пожалуйста, введите", "PleaseInput": "Пожалуйста, введите",
"PleaseInputVerifyCode": "Введите код безопасности", "PleaseInputVerifyCode": "Пожалуйста, введите код подтверждения",
"PrimaryUser": "Главный пользователь", "PrimaryUser": "Основной пользователь",
"Protocol": "Протокол", "Protocol": "Протокол",
"ReadOnly": "Минуты", "ReadOnly": "Только просмотр",
"Reconnect": "Переподключение", "Reconnect": "Переподключение",
"Refresh": "Обновить", "Refresh": "Обновить",
"Refresh done": "Обновление завершено", "Refresh done": "Обновлено",
"Remove": "Удалить", "Remove": "Удалить",
"RemoveShareUser": "Вас удалили из общей сессии", "RemoveShareUser": "Вас удалили из общей сессии",
"RemoveUser": "Удалить пользователя", "RemoveUser": "Удалить пользователя",
@ -144,18 +144,18 @@
"RightArrow": "Стрелка вправо", "RightArrow": "Стрелка вправо",
"Search": "Поиск", "Search": "Поиск",
"Search: %s": "Поиск: %s", "Search: %s": "Поиск: %s",
"Select account exceed max retry times.": "Вы выбрали аккаунт, превышающий максимальное количество попыток", "Select account exceed max retry times.": "Превышено максимальное число попыток выбора УЗ",
"Select protocol exceed max retry times.": "Превышено максимальное количество попыток выбора протокола", "Select protocol exceed max retry times.": "Превышено максимальное количество попыток выбора протокола",
"SelectAction": "Выберите действие", "SelectAction": "Выберите действие",
"SelectTheme": "Выберите тему", "SelectTheme": "Выберите тему",
"Self": "Я", "Self": "Я",
"Session max time reached, disconnect": "Сессия превысила максимальное время соединения, отключение", "Session max time reached, disconnect": "Превышено максимальное время сессии. Соединение разорвано",
"SessionDetail": "Детали разговора", "SessionDetail": "Детали сессии",
"SessionShare": "Поделиться сессией", "SessionShare": "Поделиться сессией",
"Settings": "Настройки", "Settings": "Настройки",
"Share": "Поделиться", "Share": "Поделиться",
"ShareLink": "Поделиться ссылкой", "ShareLink": "Поделиться ссылкой",
"ShareUser": "Поделиться пользователем", "ShareUser": "Поделиться с",
"ShareUserHelpText": "Пустое поле означает, что присоединиться может каждый желающий.", "ShareUserHelpText": "Пустое поле означает, что присоединиться может каждый желающий.",
"Size": "Размер", "Size": "Размер",
"Start domain gateway failed %s": "Не удалось запустить шлюз базы данных %s", "Start domain gateway failed %s": "Не удалось запустить шлюз базы данных %s",
@ -164,30 +164,30 @@
"Sync": "Синхронизация", "Sync": "Синхронизация",
"SyncUserPreferenceFailed": "Ошибка синхронизации настроек", "SyncUserPreferenceFailed": "Ошибка синхронизации настроек",
"SyncUserPreferenceSuccess": "Настройки успешно синхронизированы", "SyncUserPreferenceSuccess": "Настройки успешно синхронизированы",
"Terminal does not support protocol %s, please use web terminal to access": "Данный терминал не поддерживает протокол %s, пожалуйста, войдите через веб-терминал", "Terminal does not support protocol %s, please use web terminal to access": "Этот терминал не поддерживает протокол %s, пожалуйста, войдите через веб-терминал",
"TerminalInstanceNotFound": "Не найден экземпляр терминала для текущей вкладки", "TerminalInstanceNotFound": "Экземпляр терминала не найден",
"TerminalInstanceNotFoundForCurrentTab": "Текущая вкладка не найдена экземпляр терминала", "TerminalInstanceNotFoundForCurrentTab": "Экземпляр терминала не найден в текущей вкладке",
"The command '%s' requires review. Continue or not [Y/n]?": "Команда %s требует проверки, продолжить? [Y/N]", "The command '%s' requires review. Continue or not [Y/n]?": "Команда %s требует проверки. Продолжить? [Y/N]",
"The command you executed is risky and an alert notification will be sent to the administrator. Do you want to continue?[Y/N]": "Ваша команда содержит риски, уведомление будет отправлено администратору. Продолжить? [Y/N]", "The command you executed is risky and an alert notification will be sent to the administrator. Do you want to continue?[Y/N]": "Выполняемая вами команда несёт риск, уведомление будет отправлено администратору. Продолжить? [Y/N]",
"TheCurrentTerminalInstanceWasNotFound": "Текущий экземпляр терминала не найден.", "TheCurrentTerminalInstanceWasNotFound": "Текущий экземпляр терминала не найден",
"Theme": "Тема", "Theme": "Тема",
"ThemeColors": "Цвета темы", "ThemeColors": "Цвета темы",
"ThemeConfig": "Настройки темы", "ThemeConfig": "Настройки темы",
"Ticket Reviewers: %s": "Проверяющий рабочей заявки: %s", "Ticket Reviewers: %s": "Утверждающий заявки: %s",
"Tips: Enter asset[%s] account ID": "Подсказка: Введите ID аккаунта актива [%s]", "Tips: Enter asset[%s] account ID": "Подсказка: Введите ID учетной записи актива [%s]",
"Tips: Enter g+NodeID to display the host under the node, such as g1": "Подсказка: введите g+ID узла для отображения хостов в узле, например: g1", "Tips: Enter g+NodeID to display the host under the node, such as g1": "Подсказка: введите g+ID папки, чтобы показать хосты внутри, например: g1",
"Tips: Enter protocol ID": "Подсказка: введите ID протокола", "Tips: Enter protocol ID": "Подсказка: введите ID протокола",
"Tips: To set a default language, go to Personal Settings → Preferences on Web": "Подсказка: если хотите установить язык по умолчанию, перейдите на веб-версию в «Личные настройки → Предпочтения»", "Tips: To set a default language, go to Personal Settings → Preferences on Web": "Подсказка: если хотите установить язык по умолчанию, перейдите в веб-версию в «Личные настройки → Предпочтения»",
"Tips: switch language by ID (Current session only)": "Подсказка: введите ID для смены языка", "Tips: switch language by ID (Current session only)": "Подсказка: введите ID, чтобы переключить язык (только для этой сессии)",
"Transfer": "Передача", "Transfer": "Передача",
"Type": "Тип", "Type": "Тип",
"UnableToGenerateWebSocketURL": "Не удалось сгенерировать WebSocket URL, отсутствуют параметры", "UnableToGenerateWebSocketURL": "Не удалось создать URL WebSocket — отсутствуют параметры",
"Unknown error code: %s, detail: %s": "Неизвестный код ошибки: %s, подробности: %s", "Unknown error code: %s, detail: %s": "Неизвестный код ошибки: %s, подробности: %s",
"Unknown status": "Неизвестное состояние", "Unknown status": "Неизвестное состояние",
"UpArrow": "Кнопка вверх", "UpArrow": "Кнопка вверх",
"Upload": "Загрузить", "Upload": "Загрузить",
"UploadEnd": "Загрузка завершена, пожалуйста, подождите дальнейшей обработки", "UploadEnd": "Загрузка завершена, пожалуйста, подождите дальнейшей обработки",
"UploadProgress": "Прогресс передачи", "UploadProgress": "Прогресс загрузки",
"UploadStart": "Загрузка началась", "UploadStart": "Загрузка началась",
"UploadSuccess": "Загрузка успешно завершена", "UploadSuccess": "Загрузка успешно завершена",
"UploadTips": "Перетащите файл сюда или нажмите для загрузки", "UploadTips": "Перетащите файл сюда или нажмите для загрузки",
@ -200,28 +200,28 @@
"Warning": "Предупреждение", "Warning": "Предупреждение",
"WebSocketClosed": "WebSocket закрыт", "WebSocketClosed": "WebSocket закрыт",
"WebSocketConnectionIsClosedHelpText": "WebSocket соединение закрыто, пожалуйста, обновите страницу или переподключитесь.", "WebSocketConnectionIsClosedHelpText": "WebSocket соединение закрыто, пожалуйста, обновите страницу или переподключитесь.",
"Welcome to use JumpServer open source fortress system": "Добро пожаловать в открытую систему JumpServer Bastion Host", "Welcome to use JumpServer open source fortress system": "Добро пожаловать в JumpServer",
"Writable": "Создать ссылку для分享", "Writable": "Просмотр и управление",
"You don't have permission login %s": "У вас нет полномочий для входа в %s", "You don't have permission login %s": "У вас нет прав на вход в %s",
"You get auth token failed": "Вы не смогли получить токен аутентификации", "You get auth token failed": "Не удалось получить токен аутентификации",
"display the assets you have permission": "Показать активы, к которым у вас есть доступ", "display the assets you have permission": "посмотреть активы, к которым у вас есть доступ",
"display the databases that you have permission": "Показать базы данных, к которым у вас есть доступ", "display the databases that you have permission": "посмотреть базы данных, к которым у вас есть доступ",
"display the hosts that you have permission": "Показать хосты, к которым у вас есть доступ", "display the hosts that you have permission": "посмотреть хосты, к которым у вас есть доступ",
"display the kubernetes that you have permission": "Показать доступные вам Kubernetes", "display the kubernetes that you have permission": "посмотреть доступные вам Kubernetes",
"display the node that you have permission": "Показать узлы, к которым у вас есть доступ", "display the node that you have permission": "посмотреть папки, к которым у вас есть доступ",
"exit": "Выход", "exit": "выйти",
"get connect token err": "Ошибка получения токена подключения", "get connect token err": "Ошибка получения токена подключения",
"have no permission to download file": "Нет прав для загрузки файла", "have no permission to download file": "Нет прав на скачивание файлов",
"have no permission to upload file": "Нет прав для загрузки файла", "have no permission to upload file": "Нет прав на загрузку файлов",
"i/o timeout": "Проблемы с сетью (время соединения истекло)", "i/o timeout": "Нет соединения (тайм-аут соединения)",
"language switch": "Переключение языка", "language switch": "сменить язык",
"network is unreachable": "Сеть недоступна (невозможно достичь сети)", "network is unreachable": "Нет соединения (сеть недоступна)",
"not found matched username %s": "Не найдено соответствующее имя пользователя %s", "not found matched username %s": "совпадений для УЗ %s не найдено",
"part IP, Hostname, Comment": "Частичные IP-адреса, имена хостов, заметки", "part IP, Hostname, Comment": "часть IP, имя хоста или примечание",
"part IP,, Hostname, Comment": "/ + IP, имя хоста, примечание", "part IP,, Hostname, Comment": "/ + IP, имя хоста или примечание",
"print help": "Показать помощь", "print help": "посмотреть помощь",
"refresh your assets and nodes": "Обновить актуальную информацию о машинах и узлах", "refresh your assets and nodes": "обновить информацию об активах и папках",
"select one asset to login": "Выберите один из активов для входа в систему", "select one asset to login": "выберите один из активов для входа",
"to search login if unique": "Поиск входа (если единственный)", "to search login if unique": "найти подключение (если результат уникальный)",
"to search, such as: /192.168": "Поиск, например: /192.168" "to search, such as: /192.168": "выполнить поиск, например: /192.168"
} }

View File

@ -1,20 +1,45 @@
{ {
"\t%2d) Enter {{.GreenBoldColor}}%s{{.ColorEnd}} to %s.%s": "\t%d) 输入 {{.GreenBoldColor}}%s{{.ColorEnd}} 进行%s.%s",
"%s approved": "%s 审核通过",
"%s node has no assets": "%s节点没有资产",
"%s protocol client not installed.": "%s 协议的客户端未安装",
"%s rejected": "%s 审核拒绝",
"ACL reject": "本次登录已拒绝,原因是访问控制策略的限制",
"Account <%s> and asset <%s> protocol are inconsistent.": "系统用户<%s>和资产<%s>协议不一致",
"ActionPerm": "操作权限", "ActionPerm": "操作权限",
"Address": "地址",
"AlreadyExistsPleaseRename": "文件已存在,请重命名", "AlreadyExistsPleaseRename": "文件已存在,请重命名",
"Announcement: ": "公告:",
"Authentication failed": "认证失败(用户名或密码错误)",
"AvailableShortcutKey": "可用快捷键", "AvailableShortcutKey": "可用快捷键",
"Back": "返回", "Back": "返回",
"Back: B/b": "返回B/b",
"Cancel": "取消", "Cancel": "取消",
"Cancel confirm": "取消登录复核",
"Cancel to login asset or max 3 retry": "取消登录资产或达到3次重试",
"CancelFileUpload": "取消文件上传", "CancelFileUpload": "取消文件上传",
"CaseSensitive": "区分大小写", "CaseSensitive": "区分大小写",
"Clone Connect": "复制窗口", "Clone Connect": "复制窗口",
"Close All Tabs": "关闭所有", "Close All Tabs": "关闭所有",
"Close Current Tab": "关闭当前", "Close Current Tab": "关闭当前",
"Command `%s` is forbidden": "命令 `%s` 是被禁止的 ...",
"Comment": "备注",
"Confirm": "确认", "Confirm": "确认",
"ConfirmBtn": "确定", "ConfirmBtn": "确定",
"ConfirmDelete": "您确定要删除该文件吗?", "ConfirmDelete": "您确定要删除该文件吗?",
"Connect": "连接", "Connect": "连接",
"Connect idle more than %d minutes, disconnect": "空闲时间超过%d分钟断开连接",
"Connect with api server failed": "连接API服务失败",
"Connecting to %s@%s": "开始连接到 %s@%s",
"Connecting to Database %s": "开始连接数据库 %s",
"Connecting to Kubernetes %s": "开始连接Kubernetes %s",
"Connecting to Kubernetes %s container %s": "开始连接Kubernetes %s 容器 %s",
"Connection refused": "网络不通(连接拒绝)",
"CopyLink": "复制链接及验证码", "CopyLink": "复制链接及验证码",
"CopyShareURLSuccess": "复制分享地址成功", "CopyShareURLSuccess": "复制分享地址成功",
"Core API failed": "Core API 发生错误",
"Could copy website URL to notify reviewers: %s": "可复制审核地址,通知审核人:%s",
"Create k8s client err: %s": "创建 k8s 客户端错误:%s",
"CreateFolder": "创建文件夹", "CreateFolder": "创建文件夹",
"CreateLink": "创建链接", "CreateLink": "创建链接",
"CreateSuccess": "创建成功", "CreateSuccess": "创建成功",
@ -27,10 +52,14 @@
"DownloadProgress": "下载进度", "DownloadProgress": "下载进度",
"DownloadSuccess": "下载成功", "DownloadSuccess": "下载成功",
"Downloading": "正在下载", "Downloading": "正在下载",
"Dynamic": "动态账号",
"EndFileTransfer": "文件传输结束", "EndFileTransfer": "文件传输结束",
"Enter ID number directly login, multiple search use // + field, such as: //16": "提示输入资产ID直接登录二级搜索使用 // + 字段,如://192",
"ExceedTransferSize": "超过最大传输大小", "ExceedTransferSize": "超过最大传输大小",
"Expand": "展开", "Expand": "展开",
"ExpiredTime": "有效期限", "ExpiredTime": "有效期限",
"Face ACL is not supported yet. Please use the WebTerminal to connect the asset.": "该终端不支持人脸访问规则请使用web终端登录",
"Face verification is not supported yet. Please use the WebTerminal to connect the asset.": "该终端不支持人脸识别认证请使用web终端登录",
"FailedCreateConnection": "创建连接失败", "FailedCreateConnection": "创建连接失败",
"FileAlreadyExists": "文件已存在", "FileAlreadyExists": "文件已存在",
"FileListError": "获取文件列表信息失败", "FileListError": "获取文件列表信息失败",
@ -41,10 +70,15 @@
"FileUploadInterrupted": "文件上传中断", "FileUploadInterrupted": "文件上传中断",
"Format": "格式", "Format": "格式",
"General": "通用", "General": "通用",
"Get auth password failed": "你获取认证令牌失败",
"GetFileManagerTokenTimeOut": "获取文件管理 Token 超时", "GetFileManagerTokenTimeOut": "获取文件管理 Token 超时",
"GetShareUser": "输入用户名", "GetShareUser": "输入用户名",
"HandleTask does not support protocol %s, please use web terminal to access": "该终端不支持 %s 协议请使用web终端登录",
"Hostname": "主机名",
"Hotkeys": "快捷键", "Hotkeys": "快捷键",
"ID": "ID",
"InputVerifyCode": "请输入验证码", "InputVerifyCode": "请输入验证码",
"Invalid ID": "无效 ID",
"JoinShare": "加入共享", "JoinShare": "加入共享",
"JoinedWithSuccess": "已成功加入", "JoinedWithSuccess": "已成功加入",
"KubernetesManagement": "Kubernetes 管理", "KubernetesManagement": "Kubernetes 管理",
@ -53,41 +87,69 @@
"LeftArrow": "后退箭头", "LeftArrow": "后退箭头",
"LinkAddr": "链接地址", "LinkAddr": "链接地址",
"List": "列表", "List": "列表",
"Manual": "手动账号",
"MatchWholeWords": "全字匹配", "MatchWholeWords": "全字匹配",
"Minute": "分钟", "Minute": "分钟",
"Minutes": "分", "Minutes": "分",
"Must be auto login account for %s": "必须是自动登录账号 %s",
"Must be unique account for %s": "必须是唯一的账号 %s",
"Must be unique asset for %s": "必须是唯一的资产 %s",
"MustOneFile": "只能选择一个文件", "MustOneFile": "只能选择一个文件",
"MustSelectOneFile": "必须选择一个文件", "MustSelectOneFile": "必须选择一个文件",
"Name": "名称", "Name": "名称",
"Need ACL review, continue? (y/n): ": "需要审核,继续?(y/n): ",
"Need ticket confirm to execute command, already send email to the reviewers": "需要工单命令执行复核,已发邮件通知审核人",
"Need ticket confirm to login, already send email to the reviewers": "需要工单登录复核,已发邮件通知审核人",
"NewFolder": "新建文件夹", "NewFolder": "新建文件夹",
"No Account found.": "未发现账号",
"No Assets": "没有资产",
"No Databases": "无数据库",
"No found asset": "未发现匹配的资产 %s",
"No kubernetes": "没有kubernetes",
"No protocol found.": "无协议",
"No route to host": "网络不通(路由不通)",
"NoActiveTerminalTabFound": "未找到活动终端标签页", "NoActiveTerminalTabFound": "未找到活动终端标签页",
"NoData": "无数据", "NoData": "无数据",
"NoLink": "无地址", "NoLink": "无地址",
"NoRunningTerminalFound": "未找到正在运行的终端", "NoRunningTerminalFound": "未找到正在运行的终端",
"Node: [ ID.Name(Asset amount) ]": "节点:[ ID.名称(资产数量) ]",
"OnlineUser": "在线用户", "OnlineUser": "在线用户",
"OperationSuccessful": "操作成功", "OperationSuccessful": "操作成功",
"Organization": "组织",
"Owner": "管理者", "Owner": "管理者",
"Page up: b\tPage down: n": "上一页b 下一页n",
"Page: %d, Count: %d, Total Page: %d, Total Count: %d": "页码:%d每页行数%d总页数%d总数量%d",
"Paste": "粘贴", "Paste": "粘贴",
"PauseSession": "暂停此会话", "PauseSession": "暂停此会话",
"PermissionDenied": "没有权限", "PermissionDenied": "没有权限",
"PermissionExpired": "权限已过期", "PermissionExpired": "权限已过期",
"PermissionValid": "权限有效", "PermissionValid": "权限有效",
"Platform": "平台",
"Please waiting for the reviewers to confirm command `%s`, cancel by CTRL+C or CTRL+D.": "请等待审核人复核命令 `%s`,取消按 CTRL+C 或 CTRL+D。",
"Please waiting for the reviewers to confirm, enter q to exit. ": "等待审核人复核确认,按 q 回车取消登录。",
"PleaseInput": "请输入", "PleaseInput": "请输入",
"PleaseInputVerifyCode": "请输入验证码", "PleaseInputVerifyCode": "请输入验证码",
"PrimaryUser": "主用户", "PrimaryUser": "主用户",
"Protocol": "协议",
"ReadOnly": "只读", "ReadOnly": "只读",
"Reconnect": "重新连接", "Reconnect": "重新连接",
"Refresh": "刷新", "Refresh": "刷新",
"Refresh done": "刷新完成",
"Remove": "移除", "Remove": "移除",
"RemoveShareUser": "你已经被移除共享会话", "RemoveShareUser": "你已经被移除共享会话",
"RemoveUser": "移除用户", "RemoveUser": "移除用户",
"Rename": "重命名", "Rename": "重命名",
"ResumeSession": "恢复此会话", "ResumeSession": "恢复此会话",
"Reuse SSH connections (%s@%s) [Number of connections: %d]": "复用SSH连接%s@%s[连接数量: %d]",
"RightArrow": "前进箭头", "RightArrow": "前进箭头",
"Search": "搜索", "Search": "搜索",
"Search: %s": "搜索:%s",
"Select account exceed max retry times.": "选择账号超过最大重试次数",
"Select protocol exceed max retry times.": "选择协议超过最大重试次数",
"SelectAction": "请选择", "SelectAction": "请选择",
"SelectTheme": "请选择主题", "SelectTheme": "请选择主题",
"Self": "我", "Self": "我",
"Session max time reached, disconnect": "会话超过最大连接时间,断开连接",
"SessionDetail": "会话详情", "SessionDetail": "会话详情",
"SessionShare": "会话分享", "SessionShare": "会话分享",
"Settings": "设置", "Settings": "设置",
@ -96,18 +158,32 @@
"ShareUser": "分享用户", "ShareUser": "分享用户",
"ShareUserHelpText": "未选择用户,即允许所有人加入", "ShareUserHelpText": "未选择用户,即允许所有人加入",
"Size": "大小", "Size": "大小",
"Start domain gateway failed %s": "启动数据库网关失败%s",
"Switch language successfully": "切换语言成功",
"Switched to %s": "已切换至%s",
"Sync": "同步", "Sync": "同步",
"SyncUserPreferenceFailed": "同步设置失败", "SyncUserPreferenceFailed": "同步设置失败",
"SyncUserPreferenceSuccess": "同步设置成功", "SyncUserPreferenceSuccess": "同步设置成功",
"Terminal does not support protocol %s, please use web terminal to access": "该终端不支持 %s 协议请使用web终端登录",
"TerminalInstanceNotFound": "未找到当前选项卡的终端实例", "TerminalInstanceNotFound": "未找到当前选项卡的终端实例",
"TerminalInstanceNotFoundForCurrentTab": "当前标签页未找到终端实例", "TerminalInstanceNotFoundForCurrentTab": "当前标签页未找到终端实例",
"The command '%s' requires review. Continue or not [Y/n]?": "命令 %s 需要复核,是否继续?[Y/N]",
"The command you executed is risky and an alert notification will be sent to the administrator. Do you want to continue?[Y/N]": "您执行的命令存在风险,告警通知将发送给管理员。是否继续?[Y/N]",
"TheCurrentTerminalInstanceWasNotFound": "当前终端实例未找到", "TheCurrentTerminalInstanceWasNotFound": "当前终端实例未找到",
"Theme": "主题", "Theme": "主题",
"ThemeColors": "主题颜色", "ThemeColors": "主题颜色",
"ThemeConfig": "主题", "ThemeConfig": "主题",
"Ticket Reviewers: %s": "工单审核人:%s ",
"Tips: Enter asset[%s] account ID": "提示:输入资产[%s]的账号ID",
"Tips: Enter g+NodeID to display the host under the node, such as g1": "提示:输入 g+节点ID 显示节点下主机,如: g1",
"Tips: Enter protocol ID": "提示输入协议ID",
"Tips: To set a default language, go to Personal Settings → Preferences on Web": "提示:如需设置默认语言,请前往 Web 端「个人设置 → 偏好设置」",
"Tips: switch language by ID (Current session only)": "提示输入ID切换语言",
"Transfer": "传输", "Transfer": "传输",
"Type": "类型", "Type": "类型",
"UnableToGenerateWebSocketURL": "无法生成 WebSocket URL, 缺少参数", "UnableToGenerateWebSocketURL": "无法生成 WebSocket URL, 缺少参数",
"Unknown error code: %s, detail: %s": "未知错误代码:%s详情%s",
"Unknown status": "未知状态",
"UpArrow": "向上箭头", "UpArrow": "向上箭头",
"Upload": "上传", "Upload": "上传",
"UploadEnd": "上传已完成,请等待后续处理", "UploadEnd": "上传已完成,请等待后续处理",
@ -117,111 +193,35 @@
"UploadTips": "将文件拖到此处,或点击上传", "UploadTips": "将文件拖到此处,或点击上传",
"UploadTitle": "上传文件", "UploadTitle": "上传文件",
"User": "用户", "User": "用户",
"Username": "用户名",
"UsingRegularExpressions": "使用正则表达式", "UsingRegularExpressions": "使用正则表达式",
"VerifyCode": "验证码", "VerifyCode": "验证码",
"WaitFileTransfer": "等待文件传输结束", "WaitFileTransfer": "等待文件传输结束",
"Warning": "警告", "Warning": "警告",
"WebSocketClosed": "WebSocket 已关闭", "WebSocketClosed": "WebSocket 已关闭",
"WebSocketConnectionIsClosedHelpText": "WebSocket 连接已关闭,请刷新页面或重新连接。", "WebSocketConnectionIsClosedHelpText": "WebSocket 连接已关闭,请刷新页面或重新连接。",
"Writable": "可写",
"No Databases": "无数据库",
"No kubernetes": "没有kubernetes",
"Page: %d, Count: %d, Total Page: %d, Total Count: %d": "页码:%d每页行数%d总页数%d总数量%d",
"Enter ID number directly login, multiple search use // + field, such as: //16": "提示输入资产ID直接登录二级搜索使用 // + 字段,如://192",
"Page up: b\tPage down: n": "上一页b 下一页n",
"No Assets": "没有资产",
"ID": "ID",
"Address": "地址",
"Platform": "平台",
"Organization": "组织",
"Comment": "备注",
"%s protocol client not installed.": "%s 协议的客户端未安装",
"Terminal does not support protocol %s, please use web terminal to access": "该终端不支持 %s 协议请使用web终端登录",
"Core API failed": "Core API 发生错误",
"ACL reject": "本次登录已拒绝,原因是访问控制策略的限制",
"Face ACL is not supported yet. Please use the WebTerminal to connect the asset.": "该终端不支持人脸访问规则请使用web终端登录",
"Unknown error code: %s, detail: %s": "未知错误代码:%s详情%s",
"get connect token err": "获取 connect token 错误",
"%s node has no assets": "%s节点没有资产",
"Welcome to use JumpServer open source fortress system": "欢迎使用JumpServer开源堡垒机系统", "Welcome to use JumpServer open source fortress system": "欢迎使用JumpServer开源堡垒机系统",
"part IP, Hostname, Comment": "部分IP主机名备注", "Writable": "可写",
"to search login if unique": "搜索登录(如果唯一)",
"part IP,, Hostname, Comment": "/ + IP主机名备注",
"to search, such as: /192.168": "搜索,如:/192.168",
"display the assets you have permission": "显示您有权限的资产",
"display the node that you have permission": "显示您有权限的节点",
"display the hosts that you have permission": "显示您有权限的主机",
"display the databases that you have permission": "显示您有权限的数据库",
"display the kubernetes that you have permission": "显示您有权限的Kubernetes",
"refresh your assets and nodes": "刷新最新的机器和节点信息",
"language switch": "语言切换",
"print help": "显示帮助",
"exit": "退出",
"\t%2d) Enter {{.GreenBoldColor}}%s{{.ColorEnd}} to %s.%s": "\t%d) 输入 {{.GreenBoldColor}}%s{{.ColorEnd}} 进行%s.%s",
"Announcement: ": "公告:",
"No Account found.": "未发现账号",
"Username": "用户名",
"Tips: Enter asset[%s] account ID": "提示:输入资产[%s]的账号ID",
"Back: B/b": "返回B/b",
"Hostname": "主机名",
"select one asset to login": "选择其中一个资产登录",
"not found matched username %s": "未发现匹配的用户名 %s",
"Face verification is not supported yet. Please use the WebTerminal to connect the asset.": "该终端不支持人脸识别认证请使用web终端登录",
"Tips: switch language by ID (Current session only)": "提示输入ID切换语言",
"Tips: To set a default language, go to Personal Settings → Preferences on Web": "提示:如需设置默认语言,请前往 Web 端「个人设置 → 偏好设置」",
"Invalid ID": "无效 ID",
"Switch language successfully": "切换语言成功",
"Node: [ ID.Name(Asset amount) ]": "节点:[ ID.名称(资产数量) ]",
"Tips: Enter g+NodeID to display the host under the node, such as g1": "提示:输入 g+节点ID 显示节点下主机,如: g1",
"Connect idle more than %d minutes, disconnect": "空闲时间超过%d分钟断开连接",
"Select account exceed max retry times.": "选择账号超过最大重试次数",
"No protocol found.": "无协议",
"Protocol": "协议",
"Tips: Enter protocol ID": "提示输入协议ID",
"Select protocol exceed max retry times.": "选择协议超过最大重试次数",
"Refresh done": "刷新完成",
"Need ACL review, continue? (y/n): ": "需要审核,继续?(y/n): ",
"Cancel to login asset or max 3 retry": "取消登录资产或达到3次重试",
"Need ticket confirm to login, already send email to the reviewers": "需要工单登录复核,已发邮件通知审核人",
"Ticket Reviewers: %s": "工单审核人:%s ",
"Could copy website URL to notify reviewers: %s": "可复制审核地址,通知审核人:%s",
"Please waiting for the reviewers to confirm, enter q to exit. ": "等待审核人复核确认,按 q 回车取消登录。",
"Unknown status": "未知状态",
"%s approved": "%s 审核通过",
"%s rejected": "%s 审核拒绝",
"Cancel confirm": "取消登录复核",
"Search: %s": "搜索:%s",
"Must be unique asset for %s": "必须是唯一的资产 %s",
"Must be unique account for %s": "必须是唯一的账号 %s",
"Must be auto login account for %s": "必须是自动登录账号 %s",
"No found asset": "未发现匹配的资产 %s",
"Create k8s client err: %s": "创建 k8s 客户端错误:%s",
"have no permission to upload file": "无权限上传文件",
"The command you executed is risky and an alert notification will be sent to the administrator. Do you want to continue?[Y/N]": "您执行的命令存在风险,告警通知将发送给管理员。是否继续?[Y/N]",
"The command '%s' requires review. Continue or not [Y/n]?": "命令 %s 需要复核,是否继续?[Y/N]",
"Command `%s` is forbidden": "命令 `%s` 是被禁止的 ...",
"have no permission to download file": "无权限下载文件",
"Please waiting for the reviewers to confirm command `%s`, cancel by CTRL+C or CTRL+D.": "请等待审核人复核命令 `%s`,取消按 CTRL+C 或 CTRL+D。",
"Need ticket confirm to execute command, already send email to the reviewers": "需要工单命令执行复核,已发邮件通知审核人",
"HandleTask does not support protocol %s, please use web terminal to access": "该终端不支持 %s 协议请使用web终端登录",
"Account <%s> and asset <%s> protocol are inconsistent.": "系统用户<%s>和资产<%s>协议不一致",
"You don't have permission login %s": "你无权限登陆%s", "You don't have permission login %s": "你无权限登陆%s",
"You get auth token failed": "你获取认证令牌失败", "You get auth token failed": "你获取认证令牌失败",
"Get auth password failed": "你获取认证令牌失败", "display the assets you have permission": "显示您有权限的资产",
"Reuse SSH connections (%s@%s) [Number of connections: %d]": "复用SSH连接%s@%s[连接数量: %d]", "display the databases that you have permission": "显示您有权限的数据库",
"Switched to %s": "已切换至%s", "display the hosts that you have permission": "显示您有权限的主机",
"Connect with api server failed": "连接API服务失败", "display the kubernetes that you have permission": "显示您有权限的Kubernetes",
"Start domain gateway failed %s": "启动数据库网关失败%s", "display the node that you have permission": "显示您有权限的节点",
"Manual": "手动账号", "exit": "退出",
"Dynamic": "动态账号", "get connect token err": "获取 connect token 错误",
"Connecting to %s@%s": "开始连接到 %s@%s", "have no permission to download file": "无权限下载文件",
"Connecting to Database %s": "开始连接数据库 %s", "have no permission to upload file": "无权限上传文件",
"Connecting to Kubernetes %s": "开始连接Kubernetes %s",
"Connecting to Kubernetes %s container %s": "开始连接Kubernetes %s 容器 %s",
"Session max time reached, disconnect": "会话超过最大连接时间,断开连接",
"Authentication failed": "认证失败(用户名或密码错误)",
"Connection refused": "网络不通(连接拒绝)",
"i/o timeout": "网络不通(连接超时)", "i/o timeout": "网络不通(连接超时)",
"No route to host": "网络不通(路由不通)", "language switch": "语言切换",
"network is unreachable": "网络不通(网络不可达)" "network is unreachable": "网络不通(网络不可达)",
"not found matched username %s": "未发现匹配的用户名 %s",
"part IP, Hostname, Comment": "部分IP主机名备注",
"part IP,, Hostname, Comment": "/ + IP主机名备注",
"print help": "显示帮助",
"refresh your assets and nodes": "刷新最新的机器和节点信息",
"select one asset to login": "选择其中一个资产登录",
"to search login if unique": "搜索登录(如果唯一)",
"to search, such as: /192.168": "搜索,如:/192.168"
} }

View File

@ -448,6 +448,10 @@
"DangerCommand": "Dangerous command", "DangerCommand": "Dangerous command",
"DangerousCommandNum": "Total dangerous commands", "DangerousCommandNum": "Total dangerous commands",
"Dashboard": "Dashboard", "Dashboard": "Dashboard",
"DataMasking": "DataMasking",
"DataMaskingFieldsPatternHelpTip": "Supports multiple field names separated by commas, and supports wildcard *\n For example:\nSingle field name: password — only masks the\"password\" field\nMultiple field names: password,secret — masks both\"password\" and\"secret\" fields\nWildcard : password — masks fields whose names start with\"password\"\nWildcard *: .*password — masks fields whose names end with\"password\"\n",
"DataMaskingRuleHelpHelpMsg": "When connecting to database assets, you can anonymize query results based on this rule.",
"DataMaskingRuleHelpHelpText": "When connecting to database assets, you can anonymize query results based on this rule.",
"Database": "Database", "Database": "Database",
"DatabaseCreate": "Create asset - database", "DatabaseCreate": "Create asset - database",
"DatabasePort": "Database protocol port", "DatabasePort": "Database protocol port",
@ -573,9 +577,9 @@
"EsUrl": "Cannot include special char `#`; eg: http://es_user:es_password@es_host:es_port", "EsUrl": "Cannot include special char `#`; eg: http://es_user:es_password@es_host:es_port",
"Every": "Every", "Every": "Every",
"Exclude": "Does not include", "Exclude": "Does not include",
"ExcludeAccount": "Exclude accounts",
"ExcludeAsset": "Skipped assets", "ExcludeAsset": "Skipped assets",
"ExcludeSymbol": "Exclude char", "ExcludeSymbol": "Exclude char",
"ExcludeAccount": "Exclude accounts",
"ExecCloudSyncErrorMsg": "The cloud account configuration is incomplete, please update and try again.", "ExecCloudSyncErrorMsg": "The cloud account configuration is incomplete, please update and try again.",
"Execute": "Execute", "Execute": "Execute",
"ExecuteAfterSaving": "Execute after saving", "ExecuteAfterSaving": "Execute after saving",
@ -865,6 +869,7 @@
"MoveAssetToNode": "Move assets to node", "MoveAssetToNode": "Move assets to node",
"MoveToAsset": "Move to asset", "MoveToAsset": "Move to asset",
"MsgSubscribe": "Subscription", "MsgSubscribe": "Subscription",
"MsgTemplate": "Msg Template",
"MyAssets": "My assets", "MyAssets": "My assets",
"MyTickets": "Submitted", "MyTickets": "Submitted",
"NUMBER_REQUIRED": "Must contain numbers", "NUMBER_REQUIRED": "Must contain numbers",
@ -1035,6 +1040,7 @@
"PrivilegedOnly": "Privileged only", "PrivilegedOnly": "Privileged only",
"PrivilegedTemplate": "Privileged", "PrivilegedTemplate": "Privileged",
"Processing": "Processing", "Processing": "Processing",
"ProcessingMessage": "Processing, please wait...",
"Product": "Product", "Product": "Product",
"ProfileSetting": "Profile info", "ProfileSetting": "Profile info",
"Project": "Project name", "Project": "Project name",
@ -1148,6 +1154,7 @@
"ResetSSHKeySuccessMsg": "Email task submitted, user will receive a url to reset shortly", "ResetSSHKeySuccessMsg": "Email task submitted, user will receive a url to reset shortly",
"ResetSSHKeyWarningMsg": "Are you sure you want to send a reset ssh key email to the user?", "ResetSSHKeyWarningMsg": "Are you sure you want to send a reset ssh key email to the user?",
"ResetSecret": "Secret can be changed", "ResetSecret": "Secret can be changed",
"ResetSuccessfully": "Reset successfully",
"ResolveSelected": "Resolve selected", "ResolveSelected": "Resolve selected",
"Resource": "Resources", "Resource": "Resources",
"ResourceType": "Resource type", "ResourceType": "Resource type",
@ -1406,6 +1413,7 @@
"TemplateCreate": "Create template", "TemplateCreate": "Create template",
"TemplateHelpText": "When selecting a template to add, accounts that do not exist under the asset will be automatically created and pushed", "TemplateHelpText": "When selecting a template to add, accounts that do not exist under the asset will be automatically created and pushed",
"TemplateManagement": "Templates", "TemplateManagement": "Templates",
"TemplateVariablesHelpText": "You can select a template and use {{ key }} within the template content to read built-in variables.Note: only the {{ }} syntax is supported; other syntaxes such as {% if title %} are not supported.",
"Templates": "Templates", "Templates": "Templates",
"TencentCloud": "Tencent cloud", "TencentCloud": "Tencent cloud",
"Terminal": "Components", "Terminal": "Components",
@ -1520,12 +1528,12 @@
"UserCreate": "Create user", "UserCreate": "Create user",
"UserData": "User data", "UserData": "User data",
"UserDetail": "User details", "UserDetail": "User details",
"UserGroup": "User group",
"UserGroupCreate": "Create user group", "UserGroupCreate": "Create user group",
"UserGroupDetail": "User group details", "UserGroupDetail": "User group details",
"UserGroupList": "Groups", "UserGroupList": "Groups",
"UserGroupUpdate": "Update the user group", "UserGroupUpdate": "Update the user group",
"UserGroups": "Groups", "UserGroups": "Groups",
"UserGroup": "User group",
"UserList": "Users", "UserList": "Users",
"UserLogin": "User login", "UserLogin": "User login",
"UserLoginACL": "User login ACL", "UserLoginACL": "User login ACL",
@ -1612,15 +1620,12 @@
"assetId": "Asset ID", "assetId": "Asset ID",
"assetName": "Asset name", "assetName": "Asset name",
"currentTime": "Current time", "currentTime": "Current time",
"description": "No data yet",
"disallowSelfUpdateFields": "Not allowed to modify the current fields yourself", "disallowSelfUpdateFields": "Not allowed to modify the current fields yourself",
"forceEnableMFAHelpText": "If force enable, user can not disable by themselves", "forceEnableMFAHelpText": "If force enable, user can not disable by themselves",
"isConsoleCanUse": "is Console page can use", "isConsoleCanUse": "is Console page can use",
"removeWarningMsg": "Are you sure you want to remove", "removeWarningMsg": "Are you sure you want to remove",
"setVariable": "Set variable", "setVariable": "Set variable",
"userId": "User ID", "userId": "User ID",
"userName": "User name", "userName": "User name"
"description": "No data yet",
"MsgTemplate": "Msg Template",
"TemplateVariablesHelpText": "You can select a template and use {{ key }} within the template content to read built-in variables.Note: only the {{ }} syntax is supported; other syntaxes such as {% if title %} are not supported.",
"ResetSuccessfully": "Reset successfully"
} }

View File

@ -447,6 +447,10 @@
"DangerCommand": "Orden de peligro", "DangerCommand": "Orden de peligro",
"DangerousCommandNum": "Número de comandos peligrosos", "DangerousCommandNum": "Número de comandos peligrosos",
"Dashboard": "panel de control", "Dashboard": "panel de control",
"DataMasking": "Desensibilización de datos",
"DataMaskingFieldsPatternHelpTip": "Soporte para múltiples nombres de campo, separados por comas, con soporte para comodines *\nPor ejemplo:\nNombre de campo único: password indica que solo se desensibiliza el campo password.\nMúltiples nombres de campo: password,secret indica que se desensibilizan los campos password y secret.\nComodín*: password* indica que se desensibilizan los campos que contienen el prefijo password.\nComodín*: .*password indica que se desensibilizan los campos que contienen el sufijo password.",
"DataMaskingRuleHelpHelpMsg": "Al conectar con la base de datos de activos, se puede aplicar esta regla para desensibilizar los resultados de la consulta.",
"DataMaskingRuleHelpHelpText": "Al conectar activos de la base de datos, se puede llevar a cabo la desensibilización de los resultados de la consulta según esta regla.",
"Database": "Base de datos", "Database": "Base de datos",
"DatabaseCreate": "crear activo - base de datos", "DatabaseCreate": "crear activo - base de datos",
"DatabasePort": "Puerto del protocolo de la base de datos", "DatabasePort": "Puerto del protocolo de la base de datos",
@ -571,6 +575,7 @@
"EsIndex": "es proporcionando el índice predeterminado: jumpserver. Si se habilita el índice por fecha, el valor ingresado se usará como prefijo del índice", "EsIndex": "es proporcionando el índice predeterminado: jumpserver. Si se habilita el índice por fecha, el valor ingresado se usará como prefijo del índice",
"EsUrl": "No puede incluir caracteres especiales `#`; ej: http://es_user:es_password@es_host:es_port", "EsUrl": "No puede incluir caracteres especiales `#`; ej: http://es_user:es_password@es_host:es_port",
"Every": "Cada", "Every": "Cada",
"Example": "Ejemplo de valor",
"Exclude": "No incluir", "Exclude": "No incluir",
"ExcludeAccount": "Excluir cuenta", "ExcludeAccount": "Excluir cuenta",
"ExcludeAsset": "Activos omitidos", "ExcludeAsset": "Activos omitidos",
@ -866,6 +871,7 @@
"MoveAssetToNode": "Mover activos al nodo", "MoveAssetToNode": "Mover activos al nodo",
"MoveToAsset": "Mover a activos", "MoveToAsset": "Mover a activos",
"MsgSubscribe": "Suscripción de mensajes", "MsgSubscribe": "Suscripción de mensajes",
"MsgTemplate": "Plantilla de mensajes",
"MyAssets": "Mis activos", "MyAssets": "Mis activos",
"MyTickets": "Iniciados por mí", "MyTickets": "Iniciados por mí",
"NUMBER_REQUIRED": "Debe incluir números", "NUMBER_REQUIRED": "Debe incluir números",
@ -1039,6 +1045,7 @@
"PrivilegedOnly": "Solo cuentas privilegiadas", "PrivilegedOnly": "Solo cuentas privilegiadas",
"PrivilegedTemplate": "Privilegiado", "PrivilegedTemplate": "Privilegiado",
"Processing": "En proceso", "Processing": "En proceso",
"ProcessingMessage": "Tarea en progreso, por favor, espere ⏳",
"Product": "Productos", "Product": "Productos",
"ProfileSetting": "Configuración de información personal", "ProfileSetting": "Configuración de información personal",
"Project": "Nombre del proyecto", "Project": "Nombre del proyecto",
@ -1153,6 +1160,7 @@
"ResetSSHKeySuccessMsg": "Tarea de envío de correo electrónico ha sido enviada, el usuario recibirá más tarde un correo electrónico con la clave de reinicio", "ResetSSHKeySuccessMsg": "Tarea de envío de correo electrónico ha sido enviada, el usuario recibirá más tarde un correo electrónico con la clave de reinicio",
"ResetSSHKeyWarningMsg": "¿Está seguro de que desea enviar el correo para restablecer la clave SSH del usuario?", "ResetSSHKeyWarningMsg": "¿Está seguro de que desea enviar el correo para restablecer la clave SSH del usuario?",
"ResetSecret": "Cambio de contraseña permitido", "ResetSecret": "Cambio de contraseña permitido",
"ResetSuccessfully": "Restablecimiento exitoso.",
"ResolveSelected": "Resolver lo establecido", "ResolveSelected": "Resolver lo establecido",
"Resource": "Recursos", "Resource": "Recursos",
"ResourceType": "Tipo de recurso", "ResourceType": "Tipo de recurso",
@ -1414,6 +1422,7 @@
"TemplateCreate": "Crear plantilla", "TemplateCreate": "Crear plantilla",
"TemplateHelpText": "Al seleccionar una plantilla para añadir, se crearán automáticamente cuentas que no existen en el activo y se enviarán", "TemplateHelpText": "Al seleccionar una plantilla para añadir, se crearán automáticamente cuentas que no existen en el activo y se enviarán",
"TemplateManagement": "Gestión de plantillas", "TemplateManagement": "Gestión de plantillas",
"TemplateVariablesHelpText": "Puede elegir una plantilla y utilizar {{ key }} en el contenido de la plantilla para leer variables incorporadas. Tenga en cuenta que solo se admite la sintaxis {{ }}, no se admite ninguna otra. Por ejemplo, {% if title %}",
"Templates": "Plantilla", "Templates": "Plantilla",
"TencentCloud": "Tencent Cloud", "TencentCloud": "Tencent Cloud",
"Terminal": "Configuración de componentes", "Terminal": "Configuración de componentes",

View File

@ -452,6 +452,10 @@
"DangerousCommandNum": "危険なコマンド数", "DangerousCommandNum": "危険なコマンド数",
"Dashboard": "ダッシュボード", "Dashboard": "ダッシュボード",
"DataLastUsed": "さいごしようび", "DataLastUsed": "さいごしようび",
"DataMasking": "データマスキング",
"DataMaskingFieldsPatternHelpTip": "複数のフィールド名をサポートし、カンマで区切ります。ワイルドカード*もサポートしています。\n例えば:\n単一フィールド名: password は password フィールドのみマスキングします。\n複数フィールド名: password, secret は password と secret フィールドの両方をマスキングします。\nワイルドカード*: password* は、password プレフィックスを含むフィールド名をマスキングします。\nワイルドカード*: .*password は、password サフィックスを含むフィールド名をマスキングします。",
"DataMaskingRuleHelpHelpMsg": "データベース資産に接続する際、これに基づいてクエリ結果をマスキングすることができます。",
"DataMaskingRuleHelpHelpText": "データベース資産に接続する際は、このルールに従ってクエリ結果をマスキングできます。",
"Database": "データベース", "Database": "データベース",
"DatabaseCreate": "資産-データベースの作成", "DatabaseCreate": "資産-データベースの作成",
"DatabasePort": "データベースプロトコルポート", "DatabasePort": "データベースプロトコルポート",
@ -576,6 +580,7 @@
"EsIndex": "es はデフォルト indexjumpserverを提供します。日付でインデックスを作成する設定が有効な場合、入力値はインデックスのプレフィックスとして使用されます", "EsIndex": "es はデフォルト indexjumpserverを提供します。日付でインデックスを作成する設定が有効な場合、入力値はインデックスのプレフィックスとして使用されます",
"EsUrl": "特殊文字 `#` は含むことができません;例: http://es_user:es_password@es_host:es_port", "EsUrl": "特殊文字 `#` は含むことができません;例: http://es_user:es_password@es_host:es_port",
"Every": "毎", "Every": "毎",
"Example": "例の値",
"Exclude": "除外", "Exclude": "除外",
"ExcludeAccount": "アカウント除外", "ExcludeAccount": "アカウント除外",
"ExcludeAsset": "スキップされた資産", "ExcludeAsset": "スキップされた資産",
@ -871,6 +876,7 @@
"MoveAssetToNode": "アセットをノードに移動", "MoveAssetToNode": "アセットをノードに移動",
"MoveToAsset": "資産へ移動", "MoveToAsset": "資産へ移動",
"MsgSubscribe": "メッセージの購読", "MsgSubscribe": "メッセージの購読",
"MsgTemplate": "メッセージテンプレート",
"MyAssets": "私の資産", "MyAssets": "私の資産",
"MyTickets": "私が始めた", "MyTickets": "私が始めた",
"NUMBER_REQUIRED": "数字を含める必要があります", "NUMBER_REQUIRED": "数字を含める必要があります",
@ -1044,6 +1050,7 @@
"PrivilegedOnly": "特権アカウントのみ", "PrivilegedOnly": "特権アカウントのみ",
"PrivilegedTemplate": "特別な権限の", "PrivilegedTemplate": "特別な権限の",
"Processing": "処理中", "Processing": "処理中",
"ProcessingMessage": "タスクを実行中です。しばらくお待ちください ⏳",
"Product": "商品", "Product": "商品",
"ProfileSetting": "個人情報設定", "ProfileSetting": "個人情報設定",
"Project": "プロジェクト名", "Project": "プロジェクト名",
@ -1158,6 +1165,7 @@
"ResetSSHKeySuccessMsg": "メール送信タスクが提出されました。ユーザーは後でリセットキーのメールを受け取ります", "ResetSSHKeySuccessMsg": "メール送信タスクが提出されました。ユーザーは後でリセットキーのメールを受け取ります",
"ResetSSHKeyWarningMsg": "ユーザーのSSH Keyをリセットするメールを送信してもよろしいですか?", "ResetSSHKeyWarningMsg": "ユーザーのSSH Keyをリセットするメールを送信してもよろしいですか?",
"ResetSecret": " パスワード変更可能 ", "ResetSecret": " パスワード変更可能 ",
"ResetSuccessfully": "リセット成功",
"ResolveSelected": "解決選択", "ResolveSelected": "解決選択",
"Resource": "リソース", "Resource": "リソース",
"ResourceType": "リソースタイプ", "ResourceType": "リソースタイプ",
@ -1419,6 +1427,7 @@
"TemplateCreate": "テンプレート作成", "TemplateCreate": "テンプレート作成",
"TemplateHelpText": "テンプレートを選択して追加すると、資産の下に存在しないアカウントが自動的に作成され、プッシュされます", "TemplateHelpText": "テンプレートを選択して追加すると、資産の下に存在しないアカウントが自動的に作成され、プッシュされます",
"TemplateManagement": "テンプレート一覧", "TemplateManagement": "テンプレート一覧",
"TemplateVariablesHelpText": "テンプレートの中で {{ key }} を使って組み込み変数を読み取るテンプレートを選択できます。注意:サポートされているのは {{ }} 構文のみで、他の構文はサポートされていません。例えば {% if title %}",
"Templates": "テンプレート", "Templates": "テンプレート",
"TencentCloud": "テンセントクラウド", "TencentCloud": "テンセントクラウド",
"Terminal": "コンポーネント設定", "Terminal": "コンポーネント設定",

View File

@ -447,6 +447,10 @@
"DangerCommand": "위험 명령", "DangerCommand": "위험 명령",
"DangerousCommandNum": "위험 명령 수", "DangerousCommandNum": "위험 명령 수",
"Dashboard": "대시보드", "Dashboard": "대시보드",
"DataMasking": "데이터 탈민",
"DataMaskingFieldsPatternHelpTip": "여러 개의 필드명을 지원하며, 쉼표로 구분됩니다. 또한 와일드카드*도 지원합니다. \n예를 들어: \n단일 필드명: password는 password 필드만 비식별화합니다. \n다수의 필드명: password,secret은 password와 secret 필드를 비식별화합니다. \n와일드카드*: password*는 password 접두사가 포함된 필드명을 비식별화합니다. \n와일드카드*: .*password는 password 접미사가 포함된 필드명을 비식별화합니다.",
"DataMaskingRuleHelpHelpMsg": "데이터베이스 자산에 연결할 때, 이 규칙에 따라 쿼리 결과를 비감시 처리할 수 있습니다.",
"DataMaskingRuleHelpHelpText": "데이터베이스 자산에 연결할 때, 이 규칙에 따라 조회 결과의 민감 정보를 비공개 처리할 수 있습니다.",
"Database": "데이터베이스", "Database": "데이터베이스",
"DatabaseCreate": "로그인 검토", "DatabaseCreate": "로그인 검토",
"DatabasePort": "라벨", "DatabasePort": "라벨",
@ -571,6 +575,7 @@
"EsIndex": "es 기본 인덱스 제공: jumpserver. 날짜별 인덱스 생성을 활성화하면 입력된 값이 인덱스 접두사로 사용됩니다", "EsIndex": "es 기본 인덱스 제공: jumpserver. 날짜별 인덱스 생성을 활성화하면 입력된 값이 인덱스 접두사로 사용됩니다",
"EsUrl": "특수 문자 `#`를 포함할 수 없습니다; 예: http://es_user:es_password@es_host:es_port", "EsUrl": "특수 문자 `#`를 포함할 수 없습니다; 예: http://es_user:es_password@es_host:es_port",
"Every": "매우", "Every": "매우",
"Example": "예시 값",
"Exclude": "포함되지 않음", "Exclude": "포함되지 않음",
"ExcludeAccount": "계정 제외", "ExcludeAccount": "계정 제외",
"ExcludeAsset": "건너뛴 자산", "ExcludeAsset": "건너뛴 자산",
@ -866,6 +871,7 @@
"MoveAssetToNode": "이동 자산을 노드로< -SEP-> 역사 기록< -SEP-> 생체 정보< -SEP-> 자산을 노드에 추가< -SEP-> 포함< -SEP-> 장시간 미로그인< -SEP-> 권한 있는 자산< -SEP-> 정기적으로< -SEP-> 변경 후< -SEP-> 연결 가능< -SEP-> 위험< -SEP-> 자산 업데이트 - 데이터베이스< -SEP-> 동기화< -SEP-> 녹화 다운로드< -SEP-> 실행 경로 입력", "MoveAssetToNode": "이동 자산을 노드로< -SEP-> 역사 기록< -SEP-> 생체 정보< -SEP-> 자산을 노드에 추가< -SEP-> 포함< -SEP-> 장시간 미로그인< -SEP-> 권한 있는 자산< -SEP-> 정기적으로< -SEP-> 변경 후< -SEP-> 연결 가능< -SEP-> 위험< -SEP-> 자산 업데이트 - 데이터베이스< -SEP-> 동기화< -SEP-> 녹화 다운로드< -SEP-> 실행 경로 입력",
"MoveToAsset": "자산으로 이동", "MoveToAsset": "자산으로 이동",
"MsgSubscribe": "메시지 구독", "MsgSubscribe": "메시지 구독",
"MsgTemplate": "메시지 템플릿",
"MyAssets": "템플릿", "MyAssets": "템플릿",
"MyTickets": "내가 시작한", "MyTickets": "내가 시작한",
"NUMBER_REQUIRED": "숫자를 포함해야 합니다", "NUMBER_REQUIRED": "숫자를 포함해야 합니다",
@ -1039,6 +1045,7 @@
"PrivilegedOnly": "특권 계정만", "PrivilegedOnly": "특권 계정만",
"PrivilegedTemplate": "특권의", "PrivilegedTemplate": "특권의",
"Processing": "처리 중", "Processing": "처리 중",
"ProcessingMessage": "작업 진행 중입니다. 잠시만 기다려 주십시오 ⏳",
"Product": "제품", "Product": "제품",
"ProfileSetting": "개인 정보 설정", "ProfileSetting": "개인 정보 설정",
"Project": "프로젝트 이름", "Project": "프로젝트 이름",
@ -1153,6 +1160,7 @@
"ResetSSHKeySuccessMsg": "메일 전송 작업이 제출되었습니다. 사용자는 나중에 재설정 키 메일을 받게 될 것입니다.", "ResetSSHKeySuccessMsg": "메일 전송 작업이 제출되었습니다. 사용자는 나중에 재설정 키 메일을 받게 될 것입니다.",
"ResetSSHKeyWarningMsg": "사용자의 SSH 키를 재설정하는 이메일을 전송하시겠습니까?", "ResetSSHKeyWarningMsg": "사용자의 SSH 키를 재설정하는 이메일을 전송하시겠습니까?",
"ResetSecret": "변경 가능 비밀번호", "ResetSecret": "변경 가능 비밀번호",
"ResetSuccessfully": "재설정 성공",
"ResolveSelected": "선택한 사항 해결", "ResolveSelected": "선택한 사항 해결",
"Resource": "리소스", "Resource": "리소스",
"ResourceType": "자원 유형", "ResourceType": "자원 유형",
@ -1414,6 +1422,7 @@
"TemplateCreate": "템플릿 생성", "TemplateCreate": "템플릿 생성",
"TemplateHelpText": "템플릿 선택 시, 자산에 존재하지 않는 계정을 자동으로 생성하고 전송", "TemplateHelpText": "템플릿 선택 시, 자산에 존재하지 않는 계정을 자동으로 생성하고 전송",
"TemplateManagement": "템플릿 관리", "TemplateManagement": "템플릿 관리",
"TemplateVariablesHelpText": "템플릿에서 {{ key }}를 사용하여 내장 변수를 읽어올 수 있는 템플릿을 선택할 수 있습니다. 주의: {{ }} 문법만 지원하며, 다른 문법은 지원하지 않습니다. 예를 들어 {% if title %}",
"Templates": "기업 버전", "Templates": "기업 버전",
"TencentCloud": "텐센트 클라우드", "TencentCloud": "텐센트 클라우드",
"Terminal": "컴포넌트 설정", "Terminal": "컴포넌트 설정",

View File

@ -448,6 +448,10 @@
"DangerCommand": "Comando perigoso", "DangerCommand": "Comando perigoso",
"DangerousCommandNum": "Número de Comandos Perigosos", "DangerousCommandNum": "Número de Comandos Perigosos",
"Dashboard": "Painel ", "Dashboard": "Painel ",
"DataMasking": "Desensibilização de dados",
"DataMaskingFieldsPatternHelpTip": "Suporta múltiplos nomes de campo, separados por vírgula, e aceita caracteres coringa *\nPor exemplo:\nNome de campo único: password indica que apenas o campo password será desensibilizado.\nMúltiplos nomes de campo: password, secret indica que os campos password e secret serão desensibilizados.\nCaractere coringa *: password* indica que todos os campos que contêm o prefixo password serão desensibilizados.\nCaractere coringa *: .*password indica que todos os campos que contêm o sufixo password serão desensibilizados.",
"DataMaskingRuleHelpHelpMsg": "Ao conectar ao banco de dados de ativos, é possível aplicar esta regra para desensibilizar os resultados da consulta.",
"DataMaskingRuleHelpHelpText": "Ao conectar-se ao ativo do banco de dados, é possível aplicar esta regra para mascarar os resultados da consulta.",
"Database": "Banco de dados", "Database": "Banco de dados",
"DatabaseCreate": "Criar ativo - Banco de dados", "DatabaseCreate": "Criar ativo - Banco de dados",
"DatabasePort": "Porta do protocolo do banco de dados", "DatabasePort": "Porta do protocolo do banco de dados",
@ -572,6 +576,7 @@
"EsIndex": "'es' fornece o índice padrão: 'jumpserver'. Se você ativar a criação de índices por data, o valor inserido será usado como prefixo do índice.", "EsIndex": "'es' fornece o índice padrão: 'jumpserver'. Se você ativar a criação de índices por data, o valor inserido será usado como prefixo do índice.",
"EsUrl": "Não pode conter o caractere especial `#`; ex: http://es_user:es_password@es_host:es_port", "EsUrl": "Não pode conter o caractere especial `#`; ex: http://es_user:es_password@es_host:es_port",
"Every": "Cada", "Every": "Cada",
"Example": "Exemplo de valor",
"Exclude": "Não inclui", "Exclude": "Não inclui",
"ExcludeAccount": "Excluir conta", "ExcludeAccount": "Excluir conta",
"ExcludeAsset": "Ativos ignorados", "ExcludeAsset": "Ativos ignorados",
@ -867,6 +872,7 @@
"MoveAssetToNode": "Mover ativos para o nó", "MoveAssetToNode": "Mover ativos para o nó",
"MoveToAsset": "Mover para ativos ", "MoveToAsset": "Mover para ativos ",
"MsgSubscribe": "Assinatura de mensagem", "MsgSubscribe": "Assinatura de mensagem",
"MsgTemplate": "Modelo de mensagem",
"MyAssets": "Meus ativos", "MyAssets": "Meus ativos",
"MyTickets": "Iniciados por Mim", "MyTickets": "Iniciados por Mim",
"NUMBER_REQUIRED": "Deve conter números", "NUMBER_REQUIRED": "Deve conter números",
@ -1040,6 +1046,7 @@
"PrivilegedOnly": "Apenas contas privilegiadas", "PrivilegedOnly": "Apenas contas privilegiadas",
"PrivilegedTemplate": "Privilégios", "PrivilegedTemplate": "Privilégios",
"Processing": "Em processamento", "Processing": "Em processamento",
"ProcessingMessage": "Tarefa em andamento, por favor, aguarde ⏳",
"Product": "Produto", "Product": "Produto",
"ProfileSetting": "Configurações de Informações Pessoais", "ProfileSetting": "Configurações de Informações Pessoais",
"Project": "Nome do Projeto", "Project": "Nome do Projeto",
@ -1154,6 +1161,7 @@
"ResetSSHKeySuccessMsg": "A tarefa de envio de e-mail foi enviada, o usuário receberá um e-mail de chave de redefinição mais tarde", "ResetSSHKeySuccessMsg": "A tarefa de envio de e-mail foi enviada, o usuário receberá um e-mail de chave de redefinição mais tarde",
"ResetSSHKeyWarningMsg": "Você tem certeza que deseja enviar o e-mail para resetar a chave SSH do usuário?", "ResetSSHKeyWarningMsg": "Você tem certeza que deseja enviar o e-mail para resetar a chave SSH do usuário?",
"ResetSecret": " Pode alterar a senha ", "ResetSecret": " Pode alterar a senha ",
"ResetSuccessfully": "Redefinição bem-sucedida.",
"ResolveSelected": "Resolver seleção", "ResolveSelected": "Resolver seleção",
"Resource": "Recursos", "Resource": "Recursos",
"ResourceType": "Tipo de recurso", "ResourceType": "Tipo de recurso",
@ -1415,6 +1423,7 @@
"TemplateCreate": "Criar modelo", "TemplateCreate": "Criar modelo",
"TemplateHelpText": "Ao selecionar para adicionar um modelo, uma conta que não existe no ativo será criativamente criada e impulsionada", "TemplateHelpText": "Ao selecionar para adicionar um modelo, uma conta que não existe no ativo será criativamente criada e impulsionada",
"TemplateManagement": "Lista de Modelos", "TemplateManagement": "Lista de Modelos",
"TemplateVariablesHelpText": "Você pode escolher um modelo e usar {{ key }} no conteúdo do modelo para ler variáveis incorporadas. Observe que apenas a sintaxe {{ }} é suportada; outras sintaxes não são. Por exemplo {% if title %}",
"Templates": "Modelo", "Templates": "Modelo",
"TencentCloud": "Nuvem Tencent", "TencentCloud": "Nuvem Tencent",
"Terminal": "Configuração do componente", "Terminal": "Configuração do componente",

View File

@ -5,14 +5,14 @@
"AWS_Int": "AWS (Международный)", "AWS_Int": "AWS (Международный)",
"About": "О программе", "About": "О программе",
"Accept": "Принять", "Accept": "Принять",
"AccessDistribution": "Распределение посещений", "AccessDistribution": "Распределение доступа",
"AccessIP": "Белый список IP", "AccessIP": "Белый список IP",
"AccessKey": "Ключ доступа", "AccessKey": "Ключ доступа",
"Account": "Информация об УЗ", "Account": "Информация об УЗ",
"AccountActivities": "Активность учетной записи", "AccountActivities": "Активность учетной записи",
"AccountAndPasswordChangeRank": "Изменение пароля аккаунта по рейтингу", "AccountAndPasswordChangeRank": "Рейтинг изменений паролей и учётных записей",
"AccountAutomationOverview": "Обзор автоматизации", "AccountAutomationOverview": "Обзор автоматизации УЗ",
"AccountAutomationReport": "Автоматизированный отчет по аккаунтам", "AccountAutomationReport": "Отчет об автоматизации учетных записей",
"AccountBackup": "Резервное копирование УЗ", "AccountBackup": "Резервное копирование УЗ",
"AccountBackupCreate": "Создать резервную копию УЗ", "AccountBackupCreate": "Создать резервную копию УЗ",
"AccountBackupDetail": "Подробности резервного копирования УЗ", "AccountBackupDetail": "Подробности резервного копирования УЗ",
@ -21,8 +21,8 @@
"AccountBackupUpdate": "Обновить резервную копию УЗ", "AccountBackupUpdate": "Обновить резервную копию УЗ",
"AccountChangeSecret": "Изменение пароля учетной записи", "AccountChangeSecret": "Изменение пароля учетной записи",
"AccountChangeSecretDetail": "Подробности изменения пароля учетной записи", "AccountChangeSecretDetail": "Подробности изменения пароля учетной записи",
"AccountConnectivityStatusDistribution": "Распределение состояния доступности аккаунтов", "AccountConnectivityStatusDistribution": "Распределение статусов подключаемости УЗ",
"AccountCreationSourceDistribution": "Распределение источников создания аккаунтов", "AccountCreationSourceDistribution": "Распределение источников создания УЗ",
"AccountData": "Данные учетной записи", "AccountData": "Данные учетной записи",
"AccountDeleteConfirmMsg": "Удаление учетной записи. Продолжить?", "AccountDeleteConfirmMsg": "Удаление учетной записи. Продолжить?",
"AccountDeleted": "Удаление учетной записи", "AccountDeleted": "Удаление учетной записи",
@ -33,7 +33,7 @@
"AccountDiscoverTaskUpdate": "Обновить задачу обнаружения учетной записи", "AccountDiscoverTaskUpdate": "Обновить задачу обнаружения учетной записи",
"AccountExportTips": "Экспортируемая информация содержит зашифрованные данные учетных записей, что относится к конфиденциальной информации. Формат экспорта — зашифрованный zip-файл (если не установлен пароль шифрования, пожалуйста, настройте его в Персональной информации).", "AccountExportTips": "Экспортируемая информация содержит зашифрованные данные учетных записей, что относится к конфиденциальной информации. Формат экспорта — зашифрованный zip-файл (если не установлен пароль шифрования, пожалуйста, настройте его в Персональной информации).",
"AccountList": "Учетные записи", "AccountList": "Учетные записи",
"AccountOverview": "Обзор аккаунтов", "AccountOverview": "Обзор учетных записей",
"AccountPasswordChangeTrends": "Тенденции изменения паролей аккаунтов", "AccountPasswordChangeTrends": "Тенденции изменения паролей аккаунтов",
"AccountPolicy": "Политика учетной записи", "AccountPolicy": "Политика учетной записи",
"AccountPolicyHelpText": "При создании учетных записей, не соответствующих требованиям, например: несоответствующий тип ключа, ограничение уникальности, можно выбрать одну из вышеуказанных стратегий.", "AccountPolicyHelpText": "При создании учетных записей, не соответствующих требованиям, например: несоответствующий тип ключа, ограничение уникальности, можно выбрать одну из вышеуказанных стратегий.",
@ -42,11 +42,11 @@
"AccountPushList": "Публикация УЗ", "AccountPushList": "Публикация УЗ",
"AccountPushTask": "Задача публикации учетной записи", "AccountPushTask": "Задача публикации учетной записи",
"AccountPushUpdate": "Обновление УЗ для публикации", "AccountPushUpdate": "Обновление УЗ для публикации",
"AccountReport": "Отчет по аккаунтам", "AccountReport": "Отчет по УЗ",
"AccountResult": "Успешное или неудачное изменение секрета УЗ", "AccountResult": "Успешное или неудачное изменение секрета УЗ",
"AccountSelectHelpText": "В список учетных записей добавляется имя пользователя", "AccountSelectHelpText": "В списке учетных записей отображается имя пользователя",
"AccountSessions": "Сессии учетной записи", "AccountSessions": "Сессии учетной записи",
"AccountStatisticsReport": "Отчет по учетным записяч", "AccountStatisticsReport": "Отчет по учетным записям",
"AccountStorage": "Хранилище учетных записей", "AccountStorage": "Хранилище учетных записей",
"AccountSummary": "Сводная информация об УЗ", "AccountSummary": "Сводная информация об УЗ",
"AccountTemplate": "Шаблон учетной записи", "AccountTemplate": "Шаблон учетной записи",
@ -129,7 +129,6 @@
"Applets": "RemoteApp", "Applets": "RemoteApp",
"Applicant": "Заявитель", "Applicant": "Заявитель",
"ApplicationDetail": "Информация о приложении", "ApplicationDetail": "Информация о приложении",
"Applicationes": "ApplicationHello",
"Applications": "Приложения", "Applications": "Приложения",
"ApplyAsset": "Запрос актива", "ApplyAsset": "Запрос актива",
"ApplyFromCMDFilterRule": "Правила фильтрации команд", "ApplyFromCMDFilterRule": "Правила фильтрации команд",
@ -153,10 +152,10 @@
"AssetACLCreate": "Создать правило подключения активов", "AssetACLCreate": "Создать правило подключения активов",
"AssetACLDetail": "Подробности правила подключения активов", "AssetACLDetail": "Подробности правила подключения активов",
"AssetACLUpdate": "Обновить правила подключения активов", "AssetACLUpdate": "Обновить правила подключения активов",
"AssetACLs": "Связь активов", "AssetACLs": "Правила подключения активов",
"AssetAccount": "Учетные записи", "AssetAccount": "Учетные записи",
"AssetAccountDetail": "Подробности учетной записи", "AssetAccountDetail": "Подробности учетной записи",
"AssetActivityReport": "Отчет о деятельности активов", "AssetActivityReport": "Отчет по использованию активов",
"AssetAddress": "Активы (IP/Имя хоста)", "AssetAddress": "Активы (IP/Имя хоста)",
"AssetAmount": "Количество активов", "AssetAmount": "Количество активов",
"AssetAndNode": "Активы/Папки", "AssetAndNode": "Активы/Папки",
@ -170,7 +169,7 @@
"AssetListHelpMessage": "Слева расположено дерево активов, правый клик позволяет создать, удалить или изменить папки дерева. Управление активами также организовано в виде папок, справа находятся активы, относящиеся к данной папке", "AssetListHelpMessage": "Слева расположено дерево активов, правый клик позволяет создать, удалить или изменить папки дерева. Управление активами также организовано в виде папок, справа находятся активы, относящиеся к данной папке",
"AssetLoginACLHelpMsg": "Подключение к активам можно контролировать, исходя из IP-адреса пользователя и временного интервала, чтобы определить возможность подключения к активу.", "AssetLoginACLHelpMsg": "Подключение к активам можно контролировать, исходя из IP-адреса пользователя и временного интервала, чтобы определить возможность подключения к активу.",
"AssetLoginACLHelpText": "Подключение к активам можно контролировать, исходя из IP-адреса пользователя и временного интервала, чтобы определить возможность подключения к активу.", "AssetLoginACLHelpText": "Подключение к активам можно контролировать, исходя из IP-адреса пользователя и временного интервала, чтобы определить возможность подключения к активу.",
"AssetLoginTrends": "Тенденция входа в активы", "AssetLoginTrends": "Тенденции входа в активы",
"AssetName": "Название актива", "AssetName": "Название актива",
"AssetOverview": "Обзор активов", "AssetOverview": "Обзор активов",
"AssetPermission": "Доступ к активам", "AssetPermission": "Доступ к активам",
@ -181,8 +180,8 @@
"AssetPermissionUpdate": "Обновить правила доступа к активам", "AssetPermissionUpdate": "Обновить правила доступа к активам",
"AssetPermsAmount": "Количество правил доступа", "AssetPermsAmount": "Количество правил доступа",
"AssetProtocolHelpText": "! Протоколы, поддерживаемые активами, ограничены платформой, нажмите кнопку настроек, чтобы просмотреть настройки протоколов. Если требуется обновление, пожалуйста, обновите платформу", "AssetProtocolHelpText": "! Протоколы, поддерживаемые активами, ограничены платформой, нажмите кнопку настроек, чтобы просмотреть настройки протоколов. Если требуется обновление, пожалуйста, обновите платформу",
"AssetReport": "Отчет об активах", "AssetReport": "Отчет по активам",
"AssetStatisticsReport": "Отчет по статистике активов", "AssetStatisticsReport": "Статистика активов",
"AssetTree": "Дерево активов", "AssetTree": "Дерево активов",
"AssetTypeDistribution": "Распределение типов активов", "AssetTypeDistribution": "Распределение типов активов",
"Assets": "Активы", "Assets": "Активы",
@ -191,7 +190,7 @@
"AssetsSelected": " Активов Выбрано", "AssetsSelected": " Активов Выбрано",
"AssetsTotal": "Всего активов", "AssetsTotal": "Всего активов",
"AssignedInfo": "Информация об одобрении", "AssignedInfo": "Информация об одобрении",
"Assignee": "Ответсвенный исполнитель", "Assignee": "Ответственный исполнитель",
"Assignees": "Ожидающие исполнители", "Assignees": "Ожидающие исполнители",
"AttrName": "Имя атрибута", "AttrName": "Имя атрибута",
"AttrValue": "Значение атрибута", "AttrValue": "Значение атрибута",
@ -300,10 +299,10 @@
"ChangePasswordOverview": "Обзор изменения паролей", "ChangePasswordOverview": "Обзор изменения паролей",
"ChangeSecret": "Изменить секрет", "ChangeSecret": "Изменить секрет",
"ChangeSecretAccountHelpText": "Для учетных записей в одном активе, если существует связь переключения su, смена пароля не должна выполняться в одной задаче, а должна быть разделена на две задачи для выполнения отдельно.", "ChangeSecretAccountHelpText": "Для учетных записей в одном активе, если существует связь переключения su, смена пароля не должна выполняться в одной задаче, а должна быть разделена на две задачи для выполнения отдельно.",
"ChangeSecretDashboard": "Панель смены пароля аккаунта", "ChangeSecretDashboard": "Панель смены секрета УЗ",
"ChangeSecretFailAccounts": "Неудачная смена секрета УЗ", "ChangeSecretFailAccounts": "Неудачная смена секрета УЗ",
"ChangeSecretParams": "Параметры изменения секрета", "ChangeSecretParams": "Параметры изменения секрета",
"ChangeSecretStatus": "Состояние смены пароля", "ChangeSecretStatus": "Состояние смены секрета",
"ChangeSecretTask": "Задача смены секрета УЗ", "ChangeSecretTask": "Задача смены секрета УЗ",
"ChangeViewHelpText": "Нажмите, чтобы переключиться на другой вид", "ChangeViewHelpText": "Нажмите, чтобы переключиться на другой вид",
"Chat": "Чат", "Chat": "Чат",
@ -352,7 +351,6 @@
"CommandFilterACLHelpMsg": "С помощью фильтрации команд вы можете контролировать возможность отправки команд активам. В зависимости от установленных вами правил некоторые команды могут быть разрешены, а другие запрещены.", "CommandFilterACLHelpMsg": "С помощью фильтрации команд вы можете контролировать возможность отправки команд активам. В зависимости от установленных вами правил некоторые команды могут быть разрешены, а другие запрещены.",
"CommandFilterACLHelpText": "С помощью фильтрации команд вы можете контролировать возможность отправки команд активам. В зависимости от установленных вами правил некоторые команды могут быть разрешены, а другие запрещены.", "CommandFilterACLHelpText": "С помощью фильтрации команд вы можете контролировать возможность отправки команд активам. В зависимости от установленных вами правил некоторые команды могут быть разрешены, а другие запрещены.",
"CommandFilterACLUpdate": "Обновление правила фильтрации команд", "CommandFilterACLUpdate": "Обновление правила фильтрации команд",
"CommandFilterACLs": "Правила фильтрации команд",
"CommandFilterRuleContentHelpText": "По одной команде в строке", "CommandFilterRuleContentHelpText": "По одной команде в строке",
"CommandFilterRules": "Правила фильтрации команд", "CommandFilterRules": "Правила фильтрации команд",
"CommandGroup": "Группа команд", "CommandGroup": "Группа команд",
@ -366,7 +364,7 @@
"CommandsTotal": "Всего команд", "CommandsTotal": "Всего команд",
"Comment": "Описание", "Comment": "Описание",
"CommentHelpText": "Описание будет отображаться при наведении курсора на дереве активов пользователя на странице Luna. Обычные пользователи могут просматривать эти комментарии, поэтому не указывайте конфиденциальную информацию.", "CommentHelpText": "Описание будет отображаться при наведении курсора на дереве активов пользователя на странице Luna. Обычные пользователи могут просматривать эти комментарии, поэтому не указывайте конфиденциальную информацию.",
"Common": "Универсальный", "Common": "Общий",
"CommunityEdition": "Редакция Community", "CommunityEdition": "Редакция Community",
"Component": "Компонент", "Component": "Компонент",
"ComponentMonitor": "Мониторинг", "ComponentMonitor": "Мониторинг",
@ -390,13 +388,13 @@
"ConnectMethodAclDetail": "Детали правила метода подключения", "ConnectMethodAclDetail": "Детали правила метода подключения",
"ConnectWebSocketError": "Соединение с веб-сокетом не удалось", "ConnectWebSocketError": "Соединение с веб-сокетом не удалось",
"Connectable": "Возможно подключение", "Connectable": "Возможно подключение",
"ConnectedDirectoryServices": "Связанная служба каталога", "ConnectedDirectoryServices": "Связанные службы каталога",
"ConnectionCount": "Количество соединений", "ConnectionCount": "Количество подключений",
"ConnectionDropped": "Соединение разорвано", "ConnectionDropped": "Соединение разорвано",
"ConnectionToken": "Токен подключения", "ConnectionToken": "Токен подключения",
"ConnectionTokenList": "Токен подключения - это информация для аутентификации, которая используется для совмещения аутентификации и подключения активов. Он поддерживает вход пользователя в активы одним щелчком мыши. В настоящее время поддерживаются следующие компоненты: koko, lion, magnus, razor и т.д.", "ConnectionTokenList": "Токен подключения - это информация для аутентификации, которая используется для совмещения аутентификации и подключения активов. Он поддерживает вход пользователя в активы одним щелчком мыши. В настоящее время поддерживаются следующие компоненты: koko, lion, magnus, razor и т.д.",
"Console": "Консоль", "Console": "Консоль",
"ConsoleDashboard": "Консольная панель управления", "ConsoleDashboard": "Панель управления",
"Consult": "Консультация", "Consult": "Консультация",
"ContainAttachment": "Содержит вложение", "ContainAttachment": "Содержит вложение",
"Containers": "Контейнер", "Containers": "Контейнер",
@ -449,6 +447,10 @@
"DangerCommand": "Опасная команда", "DangerCommand": "Опасная команда",
"DangerousCommandNum": "Всего опасных команд", "DangerousCommandNum": "Всего опасных команд",
"Dashboard": "Панель инструментов", "Dashboard": "Панель инструментов",
"DataMasking": "Демаскировка данных",
"DataMaskingFieldsPatternHelpTip": "Поддержка нескольких имен полей, разделенных запятой, поддержка подстановочных знаков *\nНапример:\nОдно имя поля: password означает, что будет проведено действие по хранению в тайне поля password.\nНесколько имен полей: password, secret означает сохранение в тайне полей password и secret.\nПодстановочный знак *: password* означает, что действие будет применено к полям, содержащим префикс password.\nПодстановочный знак *: .*password означает, что действие будет применено к полям, содержащим суффикс password.",
"DataMaskingRuleHelpHelpMsg": "При подключении к базе данных активов результаты запроса могут быть обработаны в соответствии с этим правилом для обеспечения безопасности данных.",
"DataMaskingRuleHelpHelpText": "При подключении к базе данных активов можно обезопасить результаты запроса в соответствии с данным правилом.",
"Database": "База данных", "Database": "База данных",
"DatabaseCreate": "Создать актив - база данных", "DatabaseCreate": "Создать актив - база данных",
"DatabasePort": "Порт протокола базы данных", "DatabasePort": "Порт протокола базы данных",
@ -539,10 +541,10 @@
"EditRecipient": "Изменить получателя", "EditRecipient": "Изменить получателя",
"EditSecret": "Изменить секрет", "EditSecret": "Изменить секрет",
"Edition": "Версия", "Edition": "Версия",
"Effective": "Вступить в силу", "Effective": "Активно",
"Email": "Электронная почта", "Email": "Электронная почта",
"EmailContent": "Настройка содержания", "EmailContent": "Настройка содержания",
"EmailHelpText": "Пожалуйста, нажмите кнопку 'Отправить', чтобы сохранить текущую конфигурацию, а затем нажмите 'Проверить соединение', чтобы убедиться, что информация вступила в силу", "EmailHelpText": "Пожалуйста, нажмите кнопку 'Отправить', чтобы сохранить текущую конфигурацию, а затем нажмите 'Тестовое соединение', чтобы убедиться, чтобы настройки вступили в силу",
"EmailTemplate": "Шаблон", "EmailTemplate": "Шаблон",
"EmailTemplateHelpTip": "Шаблон электронной почты используется для отправки электронных писем и включает префикс темы электронного письма и содержимое электронного письма.", "EmailTemplateHelpTip": "Шаблон электронной почты используется для отправки электронных писем и включает префикс темы электронного письма и содержимое электронного письма.",
"EmailTest": "Тестовое соединение", "EmailTest": "Тестовое соединение",
@ -573,8 +575,9 @@
"EsIndex": "es предоставляет индекс по умолчанию: jumpserver. Если включено создание индекса по дате, то введенное значение будет использоваться в качестве префикса индекса", "EsIndex": "es предоставляет индекс по умолчанию: jumpserver. Если включено создание индекса по дате, то введенное значение будет использоваться в качестве префикса индекса",
"EsUrl": "Не может содержать специальные символы `#`; например: http://es_user:es_password@es_host:es_port", "EsUrl": "Не может содержать специальные символы `#`; например: http://es_user:es_password@es_host:es_port",
"Every": "Каждый", "Every": "Каждый",
"Example": "Пример",
"Exclude": "Не содержит", "Exclude": "Не содержит",
"ExcludeAccount": "Исключенные аккаунты", "ExcludeAccount": "Исключить учетную запись",
"ExcludeAsset": "Пропущенные активы", "ExcludeAsset": "Пропущенные активы",
"ExcludeSymbol": "Исключить символ", "ExcludeSymbol": "Исключить символ",
"ExecCloudSyncErrorMsg": "Выполнить", "ExecCloudSyncErrorMsg": "Выполнить",
@ -673,7 +676,7 @@
"HistoryDate": "Дата", "HistoryDate": "Дата",
"HistoryPassword": "История паролей", "HistoryPassword": "История паролей",
"HistoryRecord": "История записей", "HistoryRecord": "История записей",
"Host": "Хост.", "Host": "Хост",
"HostCreate": "Создать актив - хост", "HostCreate": "Создать актив - хост",
"HostDeployment": "Развертывание машины публикации", "HostDeployment": "Развертывание машины публикации",
"HostUpdate": "Обновить актив - хост", "HostUpdate": "Обновить актив - хост",
@ -689,7 +692,7 @@
"IPNetworkSegment": "Диапазон IP", "IPNetworkSegment": "Диапазон IP",
"IPType": "Тип IP", "IPType": "Тип IP",
"Id": "ID", "Id": "ID",
"IdP": "Поставщик идентификации", "IdP": "Поставщик аутентификации",
"IdeaContent": "Я хочу, чтобы ты выступил в роли терминала Linux. Я буду вводить команды, а ты будешь отвечать тем, что должен отображать терминал. Я прошу отвечать только в одном уникальном блоке кода, без дополнительных комментариев. Когда мне нужно будет что-то тебе сказать, я помещу текст в фигурные скобки{замечание текста}.", "IdeaContent": "Я хочу, чтобы ты выступил в роли терминала Linux. Я буду вводить команды, а ты будешь отвечать тем, что должен отображать терминал. Я прошу отвечать только в одном уникальном блоке кода, без дополнительных комментариев. Когда мне нужно будет что-то тебе сказать, я помещу текст в фигурные скобки{замечание текста}.",
"IdeaTitle": "🌱 терминал Linux", "IdeaTitle": "🌱 терминал Linux",
"IdentityDomain": "Домен идентификации", "IdentityDomain": "Домен идентификации",
@ -782,7 +785,7 @@
"LicenseForTest": "Лицензия на тестирование, данная лицензия предназначена только для тестирования (poc) и демонстрации", "LicenseForTest": "Лицензия на тестирование, данная лицензия предназначена только для тестирования (poc) и демонстрации",
"LicenseReachedAssetAmountLimit": "Количество активов превышает лимит, установленный лицензией", "LicenseReachedAssetAmountLimit": "Количество активов превышает лимит, установленный лицензией",
"LicenseWillBe": "Лицензия истекает через", "LicenseWillBe": "Лицензия истекает через",
"LinkedDomains": "Связанный домен", "LinkedDomains": "Связанные домены",
"ListPreference": "Настройка списка", "ListPreference": "Настройка списка",
"LoadTemplate": "Загрузить из шаблона", "LoadTemplate": "Загрузить из шаблона",
"Loading": "Загрузка", "Loading": "Загрузка",
@ -798,7 +801,7 @@
"LoginConfirm": "Проверка входа", "LoginConfirm": "Проверка входа",
"LoginConfirmUser": "Подтверждает вход", "LoginConfirmUser": "Подтверждает вход",
"LoginCount": "Количество входов", "LoginCount": "Количество входов",
"LoginCtyDistribution": "Распределение городов входа", "LoginCtyDistribution": "Вход по городам",
"LoginDate": "Дата входа", "LoginDate": "Дата входа",
"LoginFailed": "Вход не удался", "LoginFailed": "Вход не удался",
"LoginFrom": "Источник входа", "LoginFrom": "Источник входа",
@ -858,7 +861,7 @@
"Min": "Мин.", "Min": "Мин.",
"MinNumber30": "Число должно быть больше или равно 30", "MinNumber30": "Число должно быть больше или равно 30",
"Modify": "Изменить", "Modify": "Изменить",
"ModifyTheTargetUserTopTank": "Изменение рейтинга целевых пользователей", "ModifyTheTargetUserTopTank": "Топ пользователей с измененными паролями",
"Module": "Модуль", "Module": "Модуль",
"Monday": "Понедельник", "Monday": "Понедельник",
"Monitor": "Мониторинг", "Monitor": "Мониторинг",
@ -868,6 +871,7 @@
"MoveAssetToNode": "Переместить актив в папку", "MoveAssetToNode": "Переместить актив в папку",
"MoveToAsset": "Переместить в активы", "MoveToAsset": "Переместить в активы",
"MsgSubscribe": "Подписка", "MsgSubscribe": "Подписка",
"MsgTemplate": "Шаблон сообщения",
"MyAssets": "Мои активы", "MyAssets": "Мои активы",
"MyTickets": "Мои запросы", "MyTickets": "Мои запросы",
"NUMBER_REQUIRED": "Должен содержать цифры", "NUMBER_REQUIRED": "Должен содержать цифры",
@ -875,7 +879,7 @@
"NavHelp": "Ссылки на навигационную панель", "NavHelp": "Ссылки на навигационную панель",
"Navigation": "Навигация", "Navigation": "Навигация",
"NeedReLogin": "Необходимо войти повторно", "NeedReLogin": "Необходимо войти повторно",
"NeedUpdatePassword": "Необходимость изменения пароля", "NeedUpdatePassword": "Требуется смена пароля",
"NeverLogin": "Никогда не входил", "NeverLogin": "Никогда не входил",
"New": "Создать", "New": "Создать",
"NewAccountsFound": "Найдены новые УЗ", "NewAccountsFound": "Найдены новые УЗ",
@ -912,7 +916,7 @@
"NonRunnableAssets": "Неработающие активы", "NonRunnableAssets": "Неработающие активы",
"None": "Нет", "None": "Нет",
"NormalLoad": "Нормальная", "NormalLoad": "Нормальная",
"NotEnableMfa": "MFA не активирована", "NotEnableMfa": "МФА не активирована",
"NotEqual": "Не равно", "NotEqual": "Не равно",
"NotSet": "Не установлено", "NotSet": "Не установлено",
"NotSpecialEmoji": "Ввод специальных эмодзи не допускается", "NotSpecialEmoji": "Ввод специальных эмодзи не допускается",
@ -950,10 +954,10 @@
"OpenStatus": "На одобрении", "OpenStatus": "На одобрении",
"OpenTicket": "Создать заявку", "OpenTicket": "Создать заявку",
"OperateLog": "Журналы операций", "OperateLog": "Журналы операций",
"OperatingSystemDistributionOfLoginAssets": "Распределение операционных систем для входа в активы", "OperatingSystemDistributionOfLoginAssets": "Распределение ОС для входа в активы",
"OperationLogNum": "Журналы операций", "OperationLogNum": "Журналы операций",
"Operator": "Операционный пользователь", "Operator": "Пользователь‑исполнитель",
"OperatorGeographicDistribution": "Географическое распределение активных пользователей", "OperatorGeographicDistribution": "Распределение по регионам пользователей‑исполнителей",
"Options": "Параметры", "Options": "Параметры",
"OracleDBNameHelpText": "Введите SID или имя службы (Service Name) базы данных Oracle", "OracleDBNameHelpText": "Введите SID или имя службы (Service Name) базы данных Oracle",
"OrgAdmin": "Администратор организации", "OrgAdmin": "Администратор организации",
@ -976,13 +980,13 @@
"Overview": "Обзор", "Overview": "Обзор",
"PageNext": "Дальше", "PageNext": "Дальше",
"PagePrev": "Назад", "PagePrev": "Назад",
"PamDashboard": "Панель привилегированных аккаунтов", "PamDashboard": "Панель PAM",
"Params": "Параметры", "Params": "Параметры",
"ParamsHelpText": "Настройки параметров пароля в настоящее время действуют только для активов типа хост.", "ParamsHelpText": "Настройки параметров пароля в настоящее время действуют только для активов типа хост.",
"PassKey": "Ключ доступа", "PassKey": "Ключ доступа",
"Passkey": "Passkey", "Passkey": "Passkey",
"PasskeyAddDisableInfo": "Ваш источник аутентификации - {source}, добавление Passkey не поддерживается", "PasskeyAddDisableInfo": "Ваш источник аутентификации - {source}, добавление Passkey не поддерживается",
"PasskeySummary": "Безпарольная биометрическая аутентификация", "PasskeySummary": "Аутентификация с биометрией без пароля",
"Passphrase": "Пароль ключа", "Passphrase": "Пароль ключа",
"Password": "Пароль", "Password": "Пароль",
"PasswordAndSSHKey": "Пароль и SSH-ключ", "PasswordAndSSHKey": "Пароль и SSH-ключ",
@ -1024,7 +1028,7 @@
"PleaseAgreeToTheTerms": "Пожалуйста, согласитесь с условиями", "PleaseAgreeToTheTerms": "Пожалуйста, согласитесь с условиями",
"PleaseEnterReason": "Введите причину", "PleaseEnterReason": "Введите причину",
"PleaseSelect": "Пожалуйста, выберите ", "PleaseSelect": "Пожалуйста, выберите ",
"PleaseSelectTheDataYouWantToCheck": "Пожалуйста, выберите данные для отметки", "PleaseSelectTheDataYouWantToCheck": "Пожалуйста, выберите данные, которые нужно отметить",
"PolicyName": "Название политики", "PolicyName": "Название политики",
"Port": "Порт", "Port": "Порт",
"Ports": "Портов", "Ports": "Портов",
@ -1041,6 +1045,7 @@
"PrivilegedOnly": "Только привилегированные", "PrivilegedOnly": "Только привилегированные",
"PrivilegedTemplate": "Привилегированные", "PrivilegedTemplate": "Привилегированные",
"Processing": "В процессе", "Processing": "В процессе",
"ProcessingMessage": "Задача в процессе, пожалуйста, подождите ⏳",
"Product": "Продукт", "Product": "Продукт",
"ProfileSetting": "Данные профиля", "ProfileSetting": "Данные профиля",
"Project": "Название проекта", "Project": "Название проекта",
@ -1073,7 +1078,7 @@
"QuickJob": "Быстрые задания", "QuickJob": "Быстрые задания",
"QuickUpdate": "Быстрое обновление", "QuickUpdate": "Быстрое обновление",
"Radius": "Radius", "Radius": "Radius",
"RankByNumberOfAssetAccounts": "Рейтинг количества аккаунтов активов", "RankByNumberOfAssetAccounts": "Рейтинг активов по количеству УЗ",
"Ranking": "Рейтинг", "Ranking": "Рейтинг",
"RazorNotSupport": "Сессия RDP-клиента, мониторинг пока не поддерживается", "RazorNotSupport": "Сессия RDP-клиента, мониторинг пока не поддерживается",
"ReLogin": "Войти снова", "ReLogin": "Войти снова",
@ -1113,7 +1118,7 @@
"RelevantSystemUser": "Системный пользователь", "RelevantSystemUser": "Системный пользователь",
"RemoteAddr": "Удалённый адрес", "RemoteAddr": "Удалённый адрес",
"RemoteAssetFoundAccountDeleteMsg": "Удалить аккаунты, обнаруженные с удалённых активов", "RemoteAssetFoundAccountDeleteMsg": "Удалить аккаунты, обнаруженные с удалённых активов",
"RemoteLoginProtocolUsageDistribution": "Распределение использования протоколов удаленного входа", "RemoteLoginProtocolUsageDistribution": "Распределение протоколов входа в активы",
"Remove": "Удалить", "Remove": "Удалить",
"RemoveAssetFromNode": "Удалить активы из папки", "RemoveAssetFromNode": "Удалить активы из папки",
"RemoveSelected": "Удалить выбранное", "RemoveSelected": "Удалить выбранное",
@ -1132,7 +1137,7 @@
"Reply": "Ответ", "Reply": "Ответ",
"Report": "Отчет", "Report": "Отчет",
"ReportType": "Тип отчета", "ReportType": "Тип отчета",
"RequestAssetPerm": "Запросить доступ к автивам", "RequestAssetPerm": "Запросить доступ к активам",
"RequestPerm": "Запрос доступа", "RequestPerm": "Запрос доступа",
"RequestTickets": "Новая заявка", "RequestTickets": "Новая заявка",
"RequiredAssetOrNode": "Пожалуйста, выберите хотя бы один актив или папку", "RequiredAssetOrNode": "Пожалуйста, выберите хотя бы один актив или папку",
@ -1155,6 +1160,7 @@
"ResetSSHKeySuccessMsg": "Задача отправки электронных писем принята, пользователи вскоре получат письма со ссылкой для сброса", "ResetSSHKeySuccessMsg": "Задача отправки электронных писем принята, пользователи вскоре получат письма со ссылкой для сброса",
"ResetSSHKeyWarningMsg": "Вы уверены, что хотите отправить письмо для сброса SSH-ключа пользователю?", "ResetSSHKeyWarningMsg": "Вы уверены, что хотите отправить письмо для сброса SSH-ключа пользователю?",
"ResetSecret": "Секрет можно изменить", "ResetSecret": "Секрет можно изменить",
"ResetSuccessfully": "Сброс выполнен успешно",
"ResolveSelected": "Решение установлено", "ResolveSelected": "Решение установлено",
"Resource": "Ресурсы", "Resource": "Ресурсы",
"ResourceType": "Тип ресурса", "ResourceType": "Тип ресурса",
@ -1213,7 +1219,7 @@
"SSHKeyOfProfileSSHUpdatePage": "Вы можете нажать кнопку ниже для сброса и загрузки ключа, или скопировать свой SSH-ключ и отправить его.", "SSHKeyOfProfileSSHUpdatePage": "Вы можете нажать кнопку ниже для сброса и загрузки ключа, или скопировать свой SSH-ключ и отправить его.",
"SSHPort": "SSH-порт", "SSHPort": "SSH-порт",
"SSHSecretKey": "SSH ключ", "SSHSecretKey": "SSH ключ",
"SSO": "Единственный вход", "SSO": "Единый вход (SSO)",
"SafeCommand": "Безопасная команда", "SafeCommand": "Безопасная команда",
"SameAccount": "Своя учетная запись", "SameAccount": "Своя учетная запись",
"SameAccountTip": "Учетная запись с тем же именем пользователя, что и у авторизованных пользователей", "SameAccountTip": "Учетная запись с тем же именем пользователя, что и у авторизованных пользователей",
@ -1235,7 +1241,7 @@
"SecretKey": "Ключ", "SecretKey": "Ключ",
"SecretKeyStrategy": "Парольная политика", "SecretKeyStrategy": "Парольная политика",
"SecretReset": "Сброс секрета", "SecretReset": "Сброс секрета",
"SecretType": "Тип пароля", "SecretType": "Тип секрета",
"Secure": "Безопасность", "Secure": "Безопасность",
"Security": "Настройки безопасности", "Security": "Настройки безопасности",
"Select": "Выберите", "Select": "Выберите",
@ -1402,7 +1408,7 @@
"Task": "Задача", "Task": "Задача",
"TaskDetail": "Сведения о задаче", "TaskDetail": "Сведения о задаче",
"TaskDone": "Задача завершена", "TaskDone": "Задача завершена",
"TaskExecutionTrends": "Тренд выполнения задач", "TaskExecutionTrends": "Тенденции выполнения задач",
"TaskID": "ID задачи", "TaskID": "ID задачи",
"TaskList": "Задачи", "TaskList": "Задачи",
"TaskMonitor": "Мониторинг", "TaskMonitor": "Мониторинг",
@ -1416,6 +1422,7 @@
"TemplateCreate": "Создать шаблон", "TemplateCreate": "Создать шаблон",
"TemplateHelpText": "При выборе шаблона для добавления учетные записи, которые не существуют в активе, будут автоматически созданы и опубликованы", "TemplateHelpText": "При выборе шаблона для добавления учетные записи, которые не существуют в активе, будут автоматически созданы и опубликованы",
"TemplateManagement": "Шаблоны", "TemplateManagement": "Шаблоны",
"TemplateVariablesHelpText": "Вы можете выбрать шаблон и использовать {{ key }} в его содержимом для обращения ко встроенным переменным. Поддерживается только синтаксис {{ }}, другие виды синтаксиса не поддерживаются. Например, {% if title %} — не поддерживается",
"Templates": "Шаблоны", "Templates": "Шаблоны",
"TencentCloud": "Tencent Cloud", "TencentCloud": "Tencent Cloud",
"Terminal": "Компоненты", "Terminal": "Компоненты",
@ -1436,7 +1443,7 @@
"TestPortErrorMsg": "Ошибка порта, пожалуйста, введите заново", "TestPortErrorMsg": "Ошибка порта, пожалуйста, введите заново",
"TestSelected": "Проверить выбранное", "TestSelected": "Проверить выбранное",
"TestSuccessMsg": "Тест пройден успешно", "TestSuccessMsg": "Тест пройден успешно",
"ThirdPartyMfaHelpText": "Способы входа через третьих лиц включают: OpenID, CAS, SAML2, OAuth2, Корпоративный WeChat, Feishu, Lark, Slack, DingTalk.", "ThirdPartyMfaHelpText": "Поддерживаются сторонние сервисы: OpenID, CAS, SAML2, OAuth2, WeCom, Feishu, Lark, Slack, DingTalk",
"Thursday": "Четверг", "Thursday": "Четверг",
"Ticket": "Система заявок", "Ticket": "Система заявок",
"TicketDetail": "Сведения о заяве", "TicketDetail": "Сведения о заяве",
@ -1450,7 +1457,7 @@
"TimeDelta": "Продолжительность", "TimeDelta": "Продолжительность",
"TimeExpression": "Выражение времени", "TimeExpression": "Выражение времени",
"Timeout": "Таймаут", "Timeout": "Таймаут",
"Timeout(s)": "Превышение времени (сек)", "Timeout(s)": "Время ожидания (сек)",
"TimeoutHelpText": "Если это значение равно -1, таймаут не указан.", "TimeoutHelpText": "Если это значение равно -1, таймаут не указан.",
"Timer": "Таймер", "Timer": "Таймер",
"TimerExecution": "Таймер выполнения", "TimerExecution": "Таймер выполнения",
@ -1459,7 +1466,7 @@
"Today": "Сегодня", "Today": "Сегодня",
"TodayFailedConnections": "Сбой подключений сегодня", "TodayFailedConnections": "Сбой подключений сегодня",
"Token": "Токен", "Token": "Токен",
"TopRankOfOperateUsers": "Рейтинг операционных пользователей", "TopRankOfOperateUsers": "Топ пользователей выполнявших смену пароля",
"Total": "Всего", "Total": "Всего",
"TotalAccounts": "Всего учетных записей", "TotalAccounts": "Всего учетных записей",
"TotalJobFailed": "Неудачное выполнение", "TotalJobFailed": "Неудачное выполнение",
@ -1505,7 +1512,7 @@
"UpdateNodeAssetHardwareInfo": "Обновление информации об оборудовании активов в папке", "UpdateNodeAssetHardwareInfo": "Обновление информации об оборудовании активов в папке",
"UpdatePlatformHelpText": "Актив будет обновлен только в том случае, если исходный тип платформы совпадает с выбранным типом платформы. Если типы платформы до и после обновления различаются, он не будет обновлен.", "UpdatePlatformHelpText": "Актив будет обновлен только в том случае, если исходный тип платформы совпадает с выбранным типом платформы. Если типы платформы до и после обновления различаются, он не будет обновлен.",
"UpdateSSHKey": "Изменить открытый ключ ssh", "UpdateSSHKey": "Изменить открытый ключ ssh",
"UpdateSelected": "Редактировать выбранное", "UpdateSelected": "Обновить выбранные",
"UpdateSuccessMsg": "Успешно обновлено!", "UpdateSuccessMsg": "Успешно обновлено!",
"Updated": "Обновлено", "Updated": "Обновлено",
"UpgradeEnterpriseEdition": "Обновить до корпоративной версии", "UpgradeEnterpriseEdition": "Обновить до корпоративной версии",
@ -1525,7 +1532,7 @@
"User": "Пользователь", "User": "Пользователь",
"UserACLss": "Правила входа пользователей", "UserACLss": "Правила входа пользователей",
"UserAssetActivity": "Активность пользователя/актива", "UserAssetActivity": "Активность пользователя/актива",
"UserChangePasswordReport": "Отчет о смене пароля пользователя", "UserChangePasswordReport": "Отчет о смене пароля пользователями",
"UserCreate": "Создать пользователя", "UserCreate": "Создать пользователя",
"UserData": "Данные пользователя", "UserData": "Данные пользователя",
"UserDetail": "Информация о пользователе", "UserDetail": "Информация о пользователе",
@ -1546,12 +1553,12 @@
"UserLoginACLs": "Управление входом пользователей", "UserLoginACLs": "Управление входом пользователей",
"UserLoginLimit": "Ограничение для пользователей", "UserLoginLimit": "Ограничение для пользователей",
"UserLoginReport": "Отчет о входах пользователей", "UserLoginReport": "Отчет о входах пользователей",
"UserLoginTrend": "Тренд входа пользователей", "UserLoginTrend": "Тенденции входа по учётным записям",
"UserLoginTrends": "Тренды входа пользователей", "UserLoginTrends": "Тенденции входа пользователей",
"UserModificationTrends": "Тенденции изменений пользователями", "UserModificationTrends": "Тенденции смены пароля пользователями",
"UserOverview": "Обзор пользователей", "UserOverview": "Обзор пользователей",
"UserPasswordChangeLog": "Журнал смены пароля пользователя", "UserPasswordChangeLog": "Журнал смены пароля пользователя",
"UserReport": "Отчет о пользователях", "UserReport": "Отчет по пользователям",
"UserSession": "Сессии к активам", "UserSession": "Сессии к активам",
"UserSwitchFrom": "Переключение su с", "UserSwitchFrom": "Переключение su с",
"UserUpdate": "Обновить пользователя", "UserUpdate": "Обновить пользователя",
@ -1583,7 +1590,7 @@
"VirtualApp": "Виртуальное приложение", "VirtualApp": "Виртуальное приложение",
"VirtualAppDetail": "Сведения о виртуальном приложении", "VirtualAppDetail": "Сведения о виртуальном приложении",
"VirtualApps": "Виртуальные приложения", "VirtualApps": "Виртуальные приложения",
"VisitTimeDistribution": "Посещение во временные интервалы", "VisitTimeDistribution": "Распределение доступа по периодам",
"Visits": "Посещения", "Visits": "Посещения",
"Volcengine": "Volcengine", "Volcengine": "Volcengine",
"Warning": "Предупреждение", "Warning": "Предупреждение",
@ -1603,7 +1610,7 @@
"Week": "Неделя", "Week": "Неделя",
"WeekAdd": "Новое за неделю", "WeekAdd": "Новое за неделю",
"WeekOrTime": "День/Время", "WeekOrTime": "День/Время",
"WeeklyGrowthTrend": "Тренды нового на этой неделе", "WeeklyGrowthTrend": "Тенденция новых объектов за эту неделю",
"WildcardsAllowed": "Допустимые подстановочные знаки", "WildcardsAllowed": "Допустимые подстановочные знаки",
"WindowsPushHelpText": "Отправка ключа для активов Windows пока не поддерживается", "WindowsPushHelpText": "Отправка ключа для активов Windows пока не поддерживается",
"WordSep": " ", "WordSep": " ",
@ -1630,5 +1637,5 @@
"removeWarningMsg": "Вы уверены, что хотите удалить", "removeWarningMsg": "Вы уверены, что хотите удалить",
"setVariable": "Задать переменную", "setVariable": "Задать переменную",
"userId": "ID пользователя", "userId": "ID пользователя",
"userName": "Имя пользовател" "userName": "Имя пользователя"
} }

View File

@ -447,6 +447,10 @@
"DangerCommand": "Lệnh nguy hiểm", "DangerCommand": "Lệnh nguy hiểm",
"DangerousCommandNum": "Số lệnh nguy hiểm", "DangerousCommandNum": "Số lệnh nguy hiểm",
"Dashboard": "Bảng điều khiển", "Dashboard": "Bảng điều khiển",
"DataMasking": "Dữ liệu ẩn danh",
"DataMaskingFieldsPatternHelpTip": "Hỗ trợ nhiều tên trường, phân tách bằng dấu phẩy, hỗ trợ ký tự đại diện *\nVí dụ:\nTên trường đơn: password biểu thị chỉ làm mờ trường password\nNhiều tên trường: password,secret biểu thị làm mờ cả trường password và secret\nKý tự đại diện *: password* biểu thị làm mờ các trường có tiền tố là password\nKý tự đại diện *: .*password biểu thị làm mờ các trường có hậu tố là password",
"DataMaskingRuleHelpHelpMsg": "Khi kết nối với cơ sở dữ liệu tài sản, có thể áp dụng quy tắc này để làm mờ kết quả truy vấn.",
"DataMaskingRuleHelpHelpText": "Khi kết nối tài sản cơ sở dữ liệu, có thể tiến hành làm mờ kết quả truy vấn theo quy tắc này.",
"Database": "Cơ sở dữ liệu", "Database": "Cơ sở dữ liệu",
"DatabaseCreate": "Tạo tài sản-Cơ sở dữ liệu", "DatabaseCreate": "Tạo tài sản-Cơ sở dữ liệu",
"DatabasePort": "cổng giao thức cơ sở dữ liệu", "DatabasePort": "cổng giao thức cơ sở dữ liệu",
@ -571,6 +575,7 @@
"EsIndex": "Cung cấp chỉ mục mặc định: jumpserver. Nếu kích hoạt tạo chỉ mục theo ngày, thì giá trị nhập vào sẽ được sử dụng như tiền tố chỉ mục", "EsIndex": "Cung cấp chỉ mục mặc định: jumpserver. Nếu kích hoạt tạo chỉ mục theo ngày, thì giá trị nhập vào sẽ được sử dụng như tiền tố chỉ mục",
"EsUrl": "Không được chứa ký tự đặc biệt `#`; ví dụ: http://es_user:es_password@es_host:es_port", "EsUrl": "Không được chứa ký tự đặc biệt `#`; ví dụ: http://es_user:es_password@es_host:es_port",
"Every": "Mỗi", "Every": "Mỗi",
"Example": "Giá trị mẫu",
"Exclude": "Không chứa", "Exclude": "Không chứa",
"ExcludeAccount": "Loại trừ tài khoản", "ExcludeAccount": "Loại trừ tài khoản",
"ExcludeAsset": "Tài sản đã bỏ qua", "ExcludeAsset": "Tài sản đã bỏ qua",
@ -866,6 +871,7 @@
"MoveAssetToNode": "Di chuyển tài sản đến nút", "MoveAssetToNode": "Di chuyển tài sản đến nút",
"MoveToAsset": "Di chuyển đến tài sản", "MoveToAsset": "Di chuyển đến tài sản",
"MsgSubscribe": "Đăng ký tin nhắn", "MsgSubscribe": "Đăng ký tin nhắn",
"MsgTemplate": "Mẫu tin nhắn",
"MyAssets": "Tài sản của tôi", "MyAssets": "Tài sản của tôi",
"MyTickets": "Những gì tôi đã khởi xướng", "MyTickets": "Những gì tôi đã khởi xướng",
"NUMBER_REQUIRED": "Phải chứa chữ số", "NUMBER_REQUIRED": "Phải chứa chữ số",
@ -1039,6 +1045,7 @@
"PrivilegedOnly": "Chỉ tài khoản đặc quyền", "PrivilegedOnly": "Chỉ tài khoản đặc quyền",
"PrivilegedTemplate": "Đặc quyền", "PrivilegedTemplate": "Đặc quyền",
"Processing": "Đang xử lý", "Processing": "Đang xử lý",
"ProcessingMessage": "Nhiệm vụ đang tiến hành, xin vui lòng chờ 🍃.",
"Product": "Sản phẩm", "Product": "Sản phẩm",
"ProfileSetting": "Cài đặt thông tin cá nhân", "ProfileSetting": "Cài đặt thông tin cá nhân",
"Project": "Tên dự án", "Project": "Tên dự án",
@ -1153,6 +1160,7 @@
"ResetSSHKeySuccessMsg": "Gửi email nhiệm vụ đã được gửi, người dùng sẽ nhận được email reset khóa sau.", "ResetSSHKeySuccessMsg": "Gửi email nhiệm vụ đã được gửi, người dùng sẽ nhận được email reset khóa sau.",
"ResetSSHKeyWarningMsg": "Bạn có chắc chắn muốn gửi email đặt lại SSH Key cho người dùng không?", "ResetSSHKeyWarningMsg": "Bạn có chắc chắn muốn gửi email đặt lại SSH Key cho người dùng không?",
"ResetSecret": "Có thể chỉnh sửa mật khẩu", "ResetSecret": "Có thể chỉnh sửa mật khẩu",
"ResetSuccessfully": "Đặt lại thành công",
"ResolveSelected": "Giải quyết đã chọn", "ResolveSelected": "Giải quyết đã chọn",
"Resource": "Tài nguyên", "Resource": "Tài nguyên",
"ResourceType": "Loại tài nguyên", "ResourceType": "Loại tài nguyên",
@ -1414,6 +1422,7 @@
"TemplateCreate": "Tạo mẫu", "TemplateCreate": "Tạo mẫu",
"TemplateHelpText": "Khi chọn mẫu thêm, tài khoản không tồn tại dưới tài sản sẽ tự động được tạo và gửi thông báo", "TemplateHelpText": "Khi chọn mẫu thêm, tài khoản không tồn tại dưới tài sản sẽ tự động được tạo và gửi thông báo",
"TemplateManagement": "Quản lý mẫu", "TemplateManagement": "Quản lý mẫu",
"TemplateVariablesHelpText": "Bạn có thể chọn một mẫu để sử dụng {{ key }} đọc các biến tích hợp sẵn, lưu ý: chỉ hỗ trợ cú pháp {{ }}, các cú pháp khác không được hỗ trợ. Ví dụ {% if title %}",
"Templates": "Mẫu", "Templates": "Mẫu",
"TencentCloud": "Tencent Cloud", "TencentCloud": "Tencent Cloud",
"Terminal": "Cài đặt thành phần", "Terminal": "Cài đặt thành phần",

View File

@ -447,6 +447,10 @@
"DangerCommand": "危险命令", "DangerCommand": "危险命令",
"DangerousCommandNum": "危险命令数", "DangerousCommandNum": "危险命令数",
"Dashboard": "仪表盘", "Dashboard": "仪表盘",
"DataMasking": "数据脱敏",
"DataMaskingFieldsPatternHelpTip": "支持多个字段名,逗号分隔,支持通配符*\n 例如: \n单字段名: password 表示只脱敏 password 字段\n多个字段名: password,secret 表示脱敏 password 和 secret 字段\n通配符*: password* 表示脱敏字段名中包含 password 前缀的字段\n通配符*: .*password 表示脱敏字段名中包含 password 后缀的字段\n",
"DataMaskingRuleHelpHelpMsg": "连接数据库资产时,可以根据此规则对查询结果进行脱敏",
"DataMaskingRuleHelpHelpText": "连接数据库资产时,可以根据此规则对查询结果进行脱敏",
"Database": "数据库", "Database": "数据库",
"DatabaseCreate": "创建资产-数据库", "DatabaseCreate": "创建资产-数据库",
"DatabasePort": "数据库协议端口", "DatabasePort": "数据库协议端口",
@ -571,10 +575,11 @@
"EsIndex": "es 提供默认 indexjumpserver。如果开启按日期建立索引那么输入的值会作为索引前缀", "EsIndex": "es 提供默认 indexjumpserver。如果开启按日期建立索引那么输入的值会作为索引前缀",
"EsUrl": "不能包含特殊字符 `#`eg: http://es_user:es_password@es_host:es_port", "EsUrl": "不能包含特殊字符 `#`eg: http://es_user:es_password@es_host:es_port",
"Every": "每", "Every": "每",
"Example": "示例值",
"Exclude": "不包含", "Exclude": "不包含",
"ExcludeAccount": "排除账号",
"ExcludeAsset": "跳过的资产", "ExcludeAsset": "跳过的资产",
"ExcludeSymbol": "排除字符", "ExcludeSymbol": "排除字符",
"ExcludeAccount": "排除账号",
"ExecCloudSyncErrorMsg": "云账号配置不完整,请更新后重试", "ExecCloudSyncErrorMsg": "云账号配置不完整,请更新后重试",
"Execute": "执行", "Execute": "执行",
"ExecuteAfterSaving": "保存后执行", "ExecuteAfterSaving": "保存后执行",
@ -866,6 +871,7 @@
"MoveAssetToNode": "移动资产到节点", "MoveAssetToNode": "移动资产到节点",
"MoveToAsset": "移动到资产", "MoveToAsset": "移动到资产",
"MsgSubscribe": "消息订阅", "MsgSubscribe": "消息订阅",
"MsgTemplate": "消息模板",
"MyAssets": "我的资产", "MyAssets": "我的资产",
"MyTickets": "我发起的", "MyTickets": "我发起的",
"NUMBER_REQUIRED": "必须包含数字", "NUMBER_REQUIRED": "必须包含数字",
@ -1039,6 +1045,7 @@
"PrivilegedOnly": "仅特权账号", "PrivilegedOnly": "仅特权账号",
"PrivilegedTemplate": "特权的", "PrivilegedTemplate": "特权的",
"Processing": "处理中", "Processing": "处理中",
"ProcessingMessage": "任务进行中,请稍候 ⏳",
"Product": "产品", "Product": "产品",
"ProfileSetting": "个人信息设置", "ProfileSetting": "个人信息设置",
"Project": "项目名", "Project": "项目名",
@ -1153,6 +1160,7 @@
"ResetSSHKeySuccessMsg": "发送邮件任务已提交, 用户稍后会收到重置密钥邮件", "ResetSSHKeySuccessMsg": "发送邮件任务已提交, 用户稍后会收到重置密钥邮件",
"ResetSSHKeyWarningMsg": "你确定要发送重置用户的SSH Key的邮件吗?", "ResetSSHKeyWarningMsg": "你确定要发送重置用户的SSH Key的邮件吗?",
"ResetSecret": "可改密", "ResetSecret": "可改密",
"ResetSuccessfully": "重置成功",
"ResolveSelected": "解决所选", "ResolveSelected": "解决所选",
"Resource": "资源", "Resource": "资源",
"ResourceType": "资源类型", "ResourceType": "资源类型",
@ -1351,9 +1359,9 @@
"SuperAdmin": "超级管理员", "SuperAdmin": "超级管理员",
"SuperOrgAdmin": "超级管理员+组织管理员", "SuperOrgAdmin": "超级管理员+组织管理员",
"Support": "支持", "Support": "支持",
"SupportedTypes": "支持的类型",
"SupportedProtocol": "支持的协议", "SupportedProtocol": "支持的协议",
"SupportedProtocolHelpText": "设置资产支持的协议,点击设置按钮可以为协议修改自定义配置,如 SFTP 目录RDP AD 域等", "SupportedProtocolHelpText": "设置资产支持的协议,点击设置按钮可以为协议修改自定义配置,如 SFTP 目录RDP AD 域等",
"SupportedTypes": "支持的类型",
"Sync": "同步", "Sync": "同步",
"SyncAction": "同步动作", "SyncAction": "同步动作",
"SyncDelete": "同步删除", "SyncDelete": "同步删除",
@ -1414,6 +1422,7 @@
"TemplateCreate": "创建模版", "TemplateCreate": "创建模版",
"TemplateHelpText": "选择模版添加时,会自动创建资产下不存在的账号并推送", "TemplateHelpText": "选择模版添加时,会自动创建资产下不存在的账号并推送",
"TemplateManagement": "模版管理", "TemplateManagement": "模版管理",
"TemplateVariablesHelpText": "您可以选择一个模板在模板内容中使用 {{ key }} 读取内置变量,注意:只支持 {{ }} 语法,其他语法不支持。例如 {% if title %}",
"Templates": "模板", "Templates": "模板",
"TencentCloud": "腾讯云", "TencentCloud": "腾讯云",
"Terminal": "组件设置", "Terminal": "组件设置",
@ -1527,12 +1536,12 @@
"UserCreate": "创建用户", "UserCreate": "创建用户",
"UserData": "用户数据", "UserData": "用户数据",
"UserDetail": "用户详情", "UserDetail": "用户详情",
"UserGroup": "用户组",
"UserGroupCreate": "创建用户组", "UserGroupCreate": "创建用户组",
"UserGroupDetail": "用户组详情", "UserGroupDetail": "用户组详情",
"UserGroupList": "用户组", "UserGroupList": "用户组",
"UserGroupUpdate": "更新用户组", "UserGroupUpdate": "更新用户组",
"UserGroups": "用户组", "UserGroups": "用户组",
"UserGroup": "用户组",
"UserList": "用户列表", "UserList": "用户列表",
"UserLogin": "用户登录", "UserLogin": "用户登录",
"UserLoginACL": "用户登录控制", "UserLoginACL": "用户登录控制",
@ -1620,6 +1629,7 @@
"assetId": "资产 ID", "assetId": "资产 ID",
"assetName": "资产名称", "assetName": "资产名称",
"currentTime": "当前时间", "currentTime": "当前时间",
"description": "暂无数据",
"disallowSelfUpdateFields": "不允许自己修改当前字段", "disallowSelfUpdateFields": "不允许自己修改当前字段",
"forceEnableMFAHelpText": "如果强制启用,用户无法自行禁用", "forceEnableMFAHelpText": "如果强制启用,用户无法自行禁用",
"isConsoleCanUse": "管理页面是否可用", "isConsoleCanUse": "管理页面是否可用",
@ -1627,10 +1637,5 @@
"removeWarningMsg": "你确定要移除", "removeWarningMsg": "你确定要移除",
"setVariable": "设置参数", "setVariable": "设置参数",
"userId": "用户ID", "userId": "用户ID",
"userName": "用户名", "userName": "用户名"
"description": "暂无数据",
"MsgTemplate": "消息模板",
"Example": "示例值",
"TemplateVariablesHelpText": "您可以选择一个模板在模板内容中使用 {{ key }} 读取内置变量,注意:只支持 {{ }} 语法,其他语法不支持。例如 {% if title %}",
"ResetSuccessfully": "重置成功"
} }

View File

@ -452,6 +452,10 @@
"DangerousCommandNum": "危險命令數", "DangerousCommandNum": "危險命令數",
"Dashboard": "儀錶盤", "Dashboard": "儀錶盤",
"DataLastUsed": "最後使用日期", "DataLastUsed": "最後使用日期",
"DataMasking": "數據脫敏",
"DataMaskingFieldsPatternHelpTip": "支持多個欄位名稱,以逗號分隔,並支持通配符*\n例如\n單欄位名稱password 表示僅脫敏 password 欄位\n多個欄位名稱password,secret 表示脫敏 password 和 secret 欄位\n通配符*password* 表示脫敏欄位名稱中包含 password 前綴的欄位\n通配符*.*password 表示脫敏欄位名稱中包含 password 後綴的欄位",
"DataMaskingRuleHelpHelpMsg": "連接資料庫資產時,可以根據此規則對查詢結果進行脫敏<SEP>任務進行中,請稍候 ⏳",
"DataMaskingRuleHelpHelpText": "連接資料庫資產時,可以根據此規則對查詢結果進行脫敏。",
"Database": "資料庫", "Database": "資料庫",
"DatabaseCreate": "創建資產-資料庫", "DatabaseCreate": "創建資產-資料庫",
"DatabasePort": "資料庫協議埠", "DatabasePort": "資料庫協議埠",
@ -576,6 +580,7 @@
"EsIndex": "es 提供預設 indexjumpserver。如果開啟按日期建立索引那麼輸入的值會作為索引前綴", "EsIndex": "es 提供預設 indexjumpserver。如果開啟按日期建立索引那麼輸入的值會作為索引前綴",
"EsUrl": "不能包含特殊字符 `#`eg: http://es_user:es_password@es_host:es_port", "EsUrl": "不能包含特殊字符 `#`eg: http://es_user:es_password@es_host:es_port",
"Every": "每", "Every": "每",
"Example": "示例值",
"Exclude": "不包含", "Exclude": "不包含",
"ExcludeAccount": "排除帳號", "ExcludeAccount": "排除帳號",
"ExcludeAsset": "跳過的資產", "ExcludeAsset": "跳過的資產",
@ -871,6 +876,7 @@
"MoveAssetToNode": "移動資產到節點", "MoveAssetToNode": "移動資產到節點",
"MoveToAsset": "移動到資產", "MoveToAsset": "移動到資產",
"MsgSubscribe": "消息訂閱", "MsgSubscribe": "消息訂閱",
"MsgTemplate": "消息模板",
"MyAssets": "我的資產", "MyAssets": "我的資產",
"MyTickets": "我發起的", "MyTickets": "我發起的",
"NUMBER_REQUIRED": "須包含數字", "NUMBER_REQUIRED": "須包含數字",
@ -1044,6 +1050,7 @@
"PrivilegedOnly": "僅特權帳號", "PrivilegedOnly": "僅特權帳號",
"PrivilegedTemplate": "特權的", "PrivilegedTemplate": "特權的",
"Processing": "處理中", "Processing": "處理中",
"ProcessingMessage": "任務進行中,請稍候 ⏳\n\n支持多個字段名逗號分隔支持通配符*\n例如 \n單字段名 password 表示僅脫敏 password 字段 \n多個字段名 password,secret 表示脫敏 password 與 secret 字段 \n通配符* password* 表示脫敏字段名中包含 password 前綴的字段 \n通配符* .*password 表示脫敏字段名中包含 password 後綴的字段",
"Product": "產品", "Product": "產品",
"ProfileSetting": "個人資訊設置", "ProfileSetting": "個人資訊設置",
"Project": "項目名", "Project": "項目名",
@ -1158,6 +1165,7 @@
"ResetSSHKeySuccessMsg": "發送郵件任務已提交,用戶稍後會收到重置密鑰郵件", "ResetSSHKeySuccessMsg": "發送郵件任務已提交,用戶稍後會收到重置密鑰郵件",
"ResetSSHKeyWarningMsg": "你確定要傳送重置用戶的SSH Key的郵件嗎?", "ResetSSHKeyWarningMsg": "你確定要傳送重置用戶的SSH Key的郵件嗎?",
"ResetSecret": "可更改密碼", "ResetSecret": "可更改密碼",
"ResetSuccessfully": "重置成功",
"ResolveSelected": "解決選定", "ResolveSelected": "解決選定",
"Resource": "資源", "Resource": "資源",
"ResourceType": "資源類型", "ResourceType": "資源類型",
@ -1419,6 +1427,7 @@
"TemplateCreate": "創建模板", "TemplateCreate": "創建模板",
"TemplateHelpText": "選擇模板添加時,會自動創建資產下不存在的帳號並推送", "TemplateHelpText": "選擇模板添加時,會自動創建資產下不存在的帳號並推送",
"TemplateManagement": "模版列表", "TemplateManagement": "模版列表",
"TemplateVariablesHelpText": "您可以選擇一個模板,在模板內容中使用 {{ key }} 來讀取內置變數,注意:只支持 {{ }} 語法,其他語法不支持。例如 {% if title %}",
"Templates": "模板列表", "Templates": "模板列表",
"TencentCloud": "騰訊雲", "TencentCloud": "騰訊雲",
"Terminal": "組件設置", "Terminal": "組件設置",

View File

@ -2,7 +2,7 @@
"ActionPerm": "Разрешения на действия", "ActionPerm": "Разрешения на действия",
"Admin": "Администратор", "Admin": "Администратор",
"AutoFit": "Автоподбор", "AutoFit": "Автоподбор",
"AutoPasteOnClick": "Нажмите на поле ввода, чтобы автоматически вставить содержимое буфера обмена (необходимо включить HTTPS и разрешения браузера).", "AutoPasteOnClick": "Щёлкните по полю ввода для вставки из буфера обмена (требуется HTTPS и разрешение браузера)",
"AvailableShortcutKey": "Доступные горячие клавиши", "AvailableShortcutKey": "Доступные горячие клавиши",
"Back": "Назад", "Back": "Назад",
"Cancel": "Отмена", "Cancel": "Отмена",
@ -11,21 +11,21 @@
"Close": "Закрыть", "Close": "Закрыть",
"ConfirmBtn": "Подтвердить", "ConfirmBtn": "Подтвердить",
"Connecting": "Подключение", "Connecting": "Подключение",
"CopyLink": "Скопировать ссылку и код подтверждения", "CopyLink": "Копировать ссылку и код",
"CopyShareURLSuccess": "URL общего доступа успешно скопирован", "CopyShareURLSuccess": "URL общего доступа успешно скопирован",
"CreateLink": "Создать ссылку", "CreateLink": "Создать ссылку для общего доступа",
"CreateSuccess": "Успешно создано", "CreateSuccess": "Успешно создано",
"Display": "Показать", "Display": "Показать",
"Enable": "Активировать", "Enable": "Включить",
"ErrTitle": "Ошибка подключения", "ErrTitle": "Ошибка подключения",
"ExpiredTime": "Срок действия", "ExpiredTime": "Срок действия",
"FileAddUploadingList": "Добавить файл в список загрузки", "FileAddUploadingList": "Файл добавлен в список загрузки",
"FileDownloadDenied": "Нет прав для загрузки файлов", "FileDownloadDenied": "Нет прав для загрузки файлов",
"FileManagement": "Управление файлами", "FileManagement": "Управление файлами",
"FileUploadStart": "Начало загрузки файла", "FileUploadStart": "Загрузка файла началась",
"FileUploadingWarning": "Файлы загружаются, операции запрещены", "FileUploadingWarning": "Идет загрузка файла, операции недоступны",
"Files": "Управление файлами", "Files": "Управление файлами",
"General": "Универсальный", "General": "Основной",
"GetShareUser": "Введите имя пользователя", "GetShareUser": "Введите имя пользователя",
"GuaErrClientUnauthorized": "Ошибка авторизации: неверное имя пользователя или пароль, вход не выполнен", "GuaErrClientUnauthorized": "Ошибка авторизации: неверное имя пользователя или пароль, вход не выполнен",
"GuaErrSessionConflict": "Конфликт сессий: подключение закрыто удаленным сервером из-за конфликта с другим подключением. Попробуйте позже.", "GuaErrSessionConflict": "Конфликт сессий: подключение закрыто удаленным сервером из-за конфликта с другим подключением. Попробуйте позже.",
@ -53,7 +53,7 @@
"GuacamoleErrUnableToConnectToVNCServer": "Не удается подключиться к VNC серверу", "GuacamoleErrUnableToConnectToVNCServer": "Не удается подключиться к VNC серверу",
"GuacamoleErrUnsupportedCredentialTypeRequested": "Запрашиваемый тип учетных данных не поддерживается", "GuacamoleErrUnsupportedCredentialTypeRequested": "Запрашиваемый тип учетных данных не поддерживается",
"GuacamoleErrUpstreamError": "Ошибка на стороне удаленного сервера", "GuacamoleErrUpstreamError": "Ошибка на стороне удаленного сервера",
"InputVerifyCode": "Пожалуйста, введите код проверки.", "InputVerifyCode": "Введите код подтверждения",
"JMSErrAPIFailed": "Ошибка API Core", "JMSErrAPIFailed": "Ошибка API Core",
"JMSErrAuthUser": "Пользователь не аутентифицирован", "JMSErrAuthUser": "Пользователь не аутентифицирован",
"JMSErrBadParams": "Ошибка параметров запроса", "JMSErrBadParams": "Ошибка параметров запроса",
@ -68,7 +68,7 @@
"JMSErrRemoveShareUser": "Вы были удалены из общей сессии", "JMSErrRemoveShareUser": "Вы были удалены из общей сессии",
"JMSErrTerminatedByAdmin": "Сессия прервана администратором", "JMSErrTerminatedByAdmin": "Сессия прервана администратором",
"JoinShare": "Присоединиться к общей сессии", "JoinShare": "Присоединиться к общей сессии",
"KeyboardLayout": "Макет", "KeyboardLayout": "Раскладка клавиатуры",
"LeaveShare": "Покинуть общую сессию", "LeaveShare": "Покинуть общую сессию",
"LinkAddr": "Адрес ссылки", "LinkAddr": "Адрес ссылки",
"Minute": "Минуты", "Minute": "Минуты",
@ -76,12 +76,12 @@
"Name": "Имя", "Name": "Имя",
"NoData": "Нет данных", "NoData": "Нет данных",
"OK": "ОК", "OK": "ОК",
"OnlineUser": "Онлайн пользователи", "OnlineUser": "Пользователи онлайн",
"Other": "Другие", "Other": "Прочее",
"Password": "Пароль", "Password": "Пароль",
"PauseSession": "Приостановить сессию", "PauseSession": "Приостановить сессию",
"PleaseInput": "Пожалуйста, введите", "PleaseInput": "Пожалуйста, введите",
"PrimaryUser": "Главный пользователь", "PrimaryUser": "Основной пользователь",
"ReadOnly": "Только для чтения", "ReadOnly": "Только для чтения",
"Refresh": "Обновить", "Refresh": "Обновить",
"RemoveShareUserConfirm": "Вы действительно хотите удалить этого пользователя из сессии?", "RemoveShareUserConfirm": "Вы действительно хотите удалить этого пользователя из сессии?",
@ -89,7 +89,7 @@
"RequireParams": "Обязательные параметры", "RequireParams": "Обязательные параметры",
"ResumeSession": "Возобновить сессию", "ResumeSession": "Возобновить сессию",
"SelectAction": "Выберите действие", "SelectAction": "Выберите действие",
"SessionShare": "Поделиться сеансом", "SessionShare": "Поделиться сессией",
"Settings": "Настройки", "Settings": "Настройки",
"Share": "Поделиться", "Share": "Поделиться",
"ShareLink": "Поделиться ссылкой", "ShareLink": "Поделиться ссылкой",
@ -97,7 +97,7 @@
"ShareUserHelpText": "Пустое поле означает, что присоединиться может каждый желающий", "ShareUserHelpText": "Пустое поле означает, что присоединиться может каждый желающий",
"Shared Drive": "Общий диск", "Shared Drive": "Общий диск",
"Shortcuts": "Горячие клавиши", "Shortcuts": "Горячие клавиши",
"ShowRemoteClip": "Показать удалённый буфер обмена", "ShowRemoteClip": "Показать удаленный буфер обмена",
"Skip": "Пропустить", "Skip": "Пропустить",
"Submit": "Отправить", "Submit": "Отправить",
"UploadFile": "Загрузить файл", "UploadFile": "Загрузить файл",

View File

@ -20,6 +20,7 @@
"AvailableHotkeys": "Available hotkeys", "AvailableHotkeys": "Available hotkeys",
"Backspace as Ctrl+H": "Backspace as Ctrl+H", "Backspace as Ctrl+H": "Backspace as Ctrl+H",
"Batch actions": "Batch actions", "Batch actions": "Batch actions",
"Batch actions(select and right click)": "Batch actions(select and right click)",
"Batch connect": "Batch connect", "Batch connect": "Batch connect",
"BatchCommands": "Batch commands", "BatchCommands": "Batch commands",
"Belgian French keyboard layout": "Belgian French (Azerty)", "Belgian French keyboard layout": "Belgian French (Azerty)",
@ -87,6 +88,7 @@
"Expand all asset": "Expand all assets under the current node", "Expand all asset": "Expand all assets under the current node",
"Expire time": "Expire time", "Expire time": "Expire time",
"ExpiredTime": "Expire time", "ExpiredTime": "Expire time",
"Face Verify": "Face verify",
"Face online required": "This login requires face verification and monitoring. Do you want to continue?", "Face online required": "This login requires face verification and monitoring. Do you want to continue?",
"Face verify": "Face verify", "Face verify": "Face verify",
"Face verify required": "This login requires face verification. Do you want to continue?", "Face verify required": "This login requires face verification. Do you want to continue?",
@ -106,6 +108,7 @@
"GUI": "GUI", "GUI": "GUI",
"General": "General", "General": "General",
"Go to Settings": "Go to Settings", "Go to Settings": "Go to Settings",
"Go to profile": "Go to profile",
"Help": "Help", "Help": "Help",
"Help or download": "Help → Download", "Help or download": "Help → Download",
"Help text": "Help text", "Help text": "Help text",
@ -285,6 +288,5 @@
"start time": "Start time", "start time": "Start time",
"success": "Success", "success": "Success",
"system user": "System user", "system user": "System user",
"user": "User", "user": "User"
"Batch actions(select and right click)": "Batch actions(select and right click)"
} }

View File

@ -86,6 +86,7 @@
"Expand all asset": "Expandir todos los activos bajo el nodo", "Expand all asset": "Expandir todos los activos bajo el nodo",
"Expire time": "Tiempo de caducidad", "Expire time": "Tiempo de caducidad",
"ExpiredTime": "Fecha de validez", "ExpiredTime": "Fecha de validez",
"Face Verify": "Verificación facial",
"Face online required": "Este inicio de sesión requiere verificación facial y monitoreo, ¿desea continuar?", "Face online required": "Este inicio de sesión requiere verificación facial y monitoreo, ¿desea continuar?",
"Face verify": "Verificación facial", "Face verify": "Verificación facial",
"Face verify required": "Este inicio de sesión requiere verificación facial, ¿desea continuar?", "Face verify required": "Este inicio de sesión requiere verificación facial, ¿desea continuar?",
@ -106,6 +107,7 @@
"GUI": "Gráfico", "GUI": "Gráfico",
"General": "Configuración básica", "General": "Configuración básica",
"Go to Settings": "Ir a configuración", "Go to Settings": "Ir a configuración",
"Go to profile": "Ir a Información personal",
"Help": "Ayuda", "Help": "Ayuda",
"Help or download": "Menú de ayuda → Descargar", "Help or download": "Menú de ayuda → Descargar",
"Help text": "Descripción", "Help text": "Descripción",

View File

@ -86,6 +86,7 @@
"Expand all asset": "現在のノードの下にあるすべてのアセットを展開", "Expand all asset": "現在のノードの下にあるすべてのアセットを展開",
"Expire time": "期限切れ", "Expire time": "期限切れ",
"ExpiredTime": "有効期限", "ExpiredTime": "有効期限",
"Face Verify": "顔認証",
"Face online required": "今回のログインには顔認証と監視が必要です。続けますか?", "Face online required": "今回のログインには顔認証と監視が必要です。続けますか?",
"Face verify": "顔認証", "Face verify": "顔認証",
"Face verify required": "今回のログインには顔認証が必要です。続けますか?", "Face verify required": "今回のログインには顔認証が必要です。続けますか?",
@ -106,6 +107,7 @@
"GUI": "グラフィカル", "GUI": "グラフィカル",
"General": "基本構成", "General": "基本構成",
"Go to Settings": "設定に行く", "Go to Settings": "設定に行く",
"Go to profile": "個人情報へ行く",
"Help": "ヘルプ", "Help": "ヘルプ",
"Help or download": "ヘルプ → ダウンロード", "Help or download": "ヘルプ → ダウンロード",
"Help text": "します", "Help text": "します",

View File

@ -86,6 +86,7 @@
"Expand all asset": "노드 아래의 모든 자산 확장", "Expand all asset": "노드 아래의 모든 자산 확장",
"Expire time": "만료 시간", "Expire time": "만료 시간",
"ExpiredTime": "유효 기간", "ExpiredTime": "유효 기간",
"Face Verify": "얼굴 인증",
"Face online required": "이번 로그인에서는 얼굴 인증 및 모니터링이 필요합니다. 계속하시겠습니까?", "Face online required": "이번 로그인에서는 얼굴 인증 및 모니터링이 필요합니다. 계속하시겠습니까?",
"Face verify": "얼굴 인증", "Face verify": "얼굴 인증",
"Face verify required": "이번 로그인에는 얼굴 인식이 필요합니다. 계속하시겠습니까?", "Face verify required": "이번 로그인에는 얼굴 인식이 필요합니다. 계속하시겠습니까?",
@ -106,6 +107,7 @@
"GUI": "그래픽화", "GUI": "그래픽화",
"General": "기본 설정", "General": "기본 설정",
"Go to Settings": "설정으로 가기", "Go to Settings": "설정으로 가기",
"Go to profile": "개인 정보로 가기",
"Help": "도움", "Help": "도움",
"Help or download": "메뉴 도움 → 다운로드", "Help or download": "메뉴 도움 → 다운로드",
"Help text": "설명", "Help text": "설명",

View File

@ -86,6 +86,7 @@
"Expand all asset": "Expanda todos os ativos abaixo do nó", "Expand all asset": "Expanda todos os ativos abaixo do nó",
"Expire time": "Tempo de Expiração", "Expire time": "Tempo de Expiração",
"ExpiredTime": "Prazo de validade", "ExpiredTime": "Prazo de validade",
"Face Verify": "Verificação facial",
"Face online required": "Este login precisa de verificação facial e monitoramento, deseja continuar?", "Face online required": "Este login precisa de verificação facial e monitoramento, deseja continuar?",
"Face verify": "Verificação facial", "Face verify": "Verificação facial",
"Face verify required": "Este login requer verificação facial, deseja continuar? ", "Face verify required": "Este login requer verificação facial, deseja continuar? ",
@ -106,6 +107,7 @@
"GUI": "Gráfico", "GUI": "Gráfico",
"General": "Configurações Básicas", "General": "Configurações Básicas",
"Go to Settings": "Vá para as configurações. Esta login requer verificação facial, deseja continuar? Não há características faciais disponíveis, por favor, acesse a página de informações pessoais para vincular. Esta login requer verificação facial e monitoramento, deseja continuar? Verificação facial bem-sucedida.", "Go to Settings": "Vá para as configurações. Esta login requer verificação facial, deseja continuar? Não há características faciais disponíveis, por favor, acesse a página de informações pessoais para vincular. Esta login requer verificação facial e monitoramento, deseja continuar? Verificação facial bem-sucedida.",
"Go to profile": "Ir para informações pessoais",
"Help": "Ajuda", "Help": "Ajuda",
"Help or download": "Menu de Ajuda → Download", "Help or download": "Menu de Ajuda → Download",
"Help text": " Descrição ", "Help text": " Descrição ",

View File

@ -4,7 +4,7 @@
"Account not found": "Учетная запись не найдена", "Account not found": "Учетная запись не найдена",
"Account: ": "Учетная запись: {{value}}", "Account: ": "Учетная запись: {{value}}",
"Action: ": "Действие:", "Action: ": "Действие:",
"ActionPerm": "Права доступа", "ActionPerm": "Разрешения на действия",
"Advanced option": "Расширенные настройки", "Advanced option": "Расширенные настройки",
"All sessions": "Все сессии", "All sessions": "Все сессии",
"Applet": "Remote App", "Applet": "Remote App",
@ -17,10 +17,10 @@
"Assignees": "Ответственное лицо", "Assignees": "Ответственное лицо",
"Auto": "Автоматически", "Auto": "Автоматически",
"Automatic login next": "Автологин при следующем входе (ПКМ на активе для выбора способа заново)", "Automatic login next": "Автологин при следующем входе (ПКМ на активе для выбора способа заново)",
"AvailableHotkeys": "Доступные сочетания клавиш", "AvailableHotkeys": "Доступные горячие клавиши",
"Backspace as Ctrl+H": "Backspace как Ctrl+H", "Backspace as Ctrl+H": "Backspace как Ctrl+H",
"Batch actions": "Пакетные операции", "Batch actions": "Пакетные операции",
"Batch actions(select and right click)": "Пакетное действие (выбор и щелчок правой кнопкой мыши)", "Batch actions(select and right click)": "Пакетные действия (выберите и щёлкните ПКМ)",
"Batch connect": "Пакетное подключение", "Batch connect": "Пакетное подключение",
"BatchCommands": "Пакетные команды", "BatchCommands": "Пакетные команды",
"Belgian French keyboard layout": "Бельгийская французская раскладка (Azerty)", "Belgian French keyboard layout": "Бельгийская французская раскладка (Azerty)",
@ -31,7 +31,7 @@
"Checkbox": "Чекбокс", "Checkbox": "Чекбокс",
"Choose a User": "Выберите пользователя", "Choose a User": "Выберите пользователя",
"Click to copy": "Нажмите, чтобы скопировать", "Click to copy": "Нажмите, чтобы скопировать",
"Click to download rdp file": "Нажмите, чтобы скачать RDP файл", "Click to download rdp file": "Нажмите, чтобы скачать файл RDP",
"Client": "Клиент", "Client": "Клиент",
"Clone Connect": "Клонировать окно", "Clone Connect": "Клонировать окно",
"Close": "Закрыть", "Close": "Закрыть",
@ -43,20 +43,19 @@
"Close split connect": "Закрыть разделенный экран", "Close split connect": "Закрыть разделенный экран",
"Command": "Команда", "Command": "Команда",
"Command Line": "Командная строка", "Command Line": "Командная строка",
"Command line": "Подключить командную строку",
"CommandBar": "Панель команд", "CommandBar": "Панель команд",
"Confirm": "Подтвердить", "Confirm": "Подтвердить",
"ConfirmCreation": "Подтверждение создания", "ConfirmCreation": "Подтвердить создание",
"Connect": "Подключение", "Connect": "Подключение",
"Connect checked": "Подключить выбранное", "Connect checked": "Подключить выбранное",
"Connect command line": "Подключение из командной строки", "Connect command line": "Подключение из командной строки",
"Connect method": "Способ подключения", "Connect method": "Способ подключения",
"ConnectSessionCount": "Подключено {{ count }} сессий", "ConnectSessionCount": "Подключено сессий: {{ count }}",
"ConnectionTime": "Время подключения", "ConnectionTime": "Время подключения",
"Copied": "Скопировано", "Copied": "Скопировано",
"Copy": "Копировать", "Copy": "Копировать",
"Copy link": "Копировать ссылку", "Copy link": "Копировать ссылку",
"CreateLink": "Создать ссылку", "CreateLink": "Создать ссылку для общего доступа",
"Current online": "Сейчас онлайн", "Current online": "Сейчас онлайн",
"Current session": "Текущая сессия", "Current session": "Текущая сессия",
"DarkBlue": "Темно-синий", "DarkBlue": "Темно-синий",
@ -70,7 +69,7 @@
"Default": "По умолчанию", "Default": "По умолчанию",
"Directly": "Имя пользователя указывает на связанные активы и УЗ", "Directly": "Имя пользователя указывает на связанные активы и УЗ",
"Disable auto completion": "Отключить автодополнение", "Disable auto completion": "Отключить автодополнение",
"DisabledAsset": "Активы были отключены.", "DisabledAsset": "Актив был отключен",
"Disconnect": "Отключить", "Disconnect": "Отключить",
"Disfavor": "Удалить из избранного", "Disfavor": "Удалить из избранного",
"Do not close this page": "Не закрывайте эту страницу", "Do not close this page": "Не закрывайте эту страницу",
@ -78,26 +77,26 @@
"Don't prompt again": "Больше не показывать", "Don't prompt again": "Больше не показывать",
"DownArrow": "Стрелка вниз", "DownArrow": "Стрелка вниз",
"Download": "Скачать", "Download": "Скачать",
"Download the client": "Пожалуйста, скачайте",
"Download the latest client": "Скачать последнюю версию клиента", "Download the latest client": "Скачать последнюю версию клиента",
"DownloadClient": "Скачать клиент.", "DownloadClient": "Скачать клиент",
"DownloadClientMsg": "Клиент JumpServer не установлен, сейчас нужно скачать и установить.", "DownloadClientMsg": "Клиент JumpServer не найден, необходимо скачать и установить его. Перейти на страницу загрузки?",
"Driver redirect": "Перенаправление диска", "Driver redirect": "Перенаправление диска",
"Expand": "Развернуть", "Expand": "Развернуть",
"Expand all": "Развернуть все", "Expand all": "Развернуть все",
"Expand all asset": "Развернуть все активы в папке", "Expand all asset": "Развернуть все активы в папке",
"Expire time": "Срок действия", "Expire time": "Срок действия",
"ExpiredTime": "Срок действия", "ExpiredTime": "Срок действия",
"Face Verify": "Проверка лица",
"Face online required": "Для входа требуется верификация по лицу и мониторинг. Продолжить?", "Face online required": "Для входа требуется верификация по лицу и мониторинг. Продолжить?",
"Face verify": "Лицевое подтверждение", "Face verify": "Распознавание лица",
"Face verify required": "Для входа требуется верификация по лицу. Продолжить?", "Face verify required": "Для входа требуется верификация по лицу. Продолжить?",
"Face verify success": "Успешная верификация по лицу", "Face verify success": "Успешная верификация по лицу",
"FaceOnlineNotSupported": "Не поддерживается онлайн-верификация по лицу", "FaceOnlineNotSupported": "Распознавание лица онлайн не поддерживается",
"Failed to open address": "Не удалось открыть адрес", "Failed to open address": "Не удалось открыть адрес",
"Favorite": "Избранное", "Favorite": "Избранное",
"File Manager": "Файловый менеджер", "File Manager": "Файловый менеджер",
"FileManagement": "Файловый менедж :=", "FileManagement": "Управление файлами",
"FileManagerConnectionFailed": "Ошибка соединения с файловым управлением.", "FileManagerConnectionFailed": "Ошибка подключения к файловому менеджеру",
"Fold": "Свернуть", "Fold": "Свернуть",
"Fold all": "Свернуть все", "Fold all": "Свернуть все",
"Force refresh": "Принудительное обновление", "Force refresh": "Принудительное обновление",
@ -108,14 +107,15 @@
"GUI": "Графический интерфейс", "GUI": "Графический интерфейс",
"General": "Основные настройки", "General": "Основные настройки",
"Go to Settings": "Перейти в настройки", "Go to Settings": "Перейти в настройки",
"Go to profile": "Перейти к личной информации",
"Help": "Помощь", "Help": "Помощь",
"Help or download": "Помощь → Скачать", "Help or download": "Помощь → Скачать",
"Help text": "Описание", "Help text": "Описание",
"Hide left manager": "Скрыть левую панель", "Hide left manager": "Скрыть левую панель",
"High-speed broadband (2 Mbps 10 Mbps )": "Высокоскоростной интернет (2 Мбит/с 10 Мбит/с)", "High-speed broadband (2 Mbps 10 Mbps )": "Высокоскоростной интернет (2 Мбит/с 10 Мбит/с)",
"HistoryCommands": "Исторические команды", "HistoryCommands": "История команд",
"Host": "Хост", "Host": "Хост",
"Hotkeys": "Сочетание клавиш", "Hotkeys": "Горячие клавиши",
"Info": "Подсказка", "Info": "Подсказка",
"InstallClientMsg": "Клиент JumpServer не установлен, хотите скачать и установить?", "InstallClientMsg": "Клиент JumpServer не установлен, хотите скачать и установить?",
"Japanese keyboard layout": "Японский (Qwerty)", "Japanese keyboard layout": "Японский (Qwerty)",
@ -128,18 +128,18 @@
"Launch Program": "Запуск программы", "Launch Program": "Запуск программы",
"LeftArrow": "Стрелка влево", "LeftArrow": "Стрелка влево",
"LeftInfo": "Нажмите на запись команды, чтобы быстро найти видео", "LeftInfo": "Нажмите на запись команды, чтобы быстро найти видео",
"LinkAddr": "Ссылка на адрес", "LinkAddr": "Адрес ссылки",
"Load tree async": "Асинхронная загрузка дерева активов", "Load tree async": "Асинхронная загрузка дерева активов",
"Loading": "Загрузка", "Loading": "Загрузка",
"LoadingFileManager": "Загрузка файлового менеджера...", "LoadingFileManager": "Загрузка файлового менеджера",
"Log out": "Выйти", "Log out": "Выйти",
"Login reminder": "Уведомление о входе", "Login reminder": "Уведомление о входе",
"Login review approved": "Вход одобрен, подключение к активам...", "Login review approved": "Вход одобрен, подключение к активам...",
"LoginExpireMsg": "Время сессии истекло, не закрывайте окно. После входа в новом окне страница будет восстановлена, если не восстановилась, обновите страницу.", "LoginExpireMsg": "Время сессии истекло, не закрывайте окно. После входа в новом окне страница будет восстановлена, если не восстановилась, обновите страницу.",
"Low Speed Broadband (256 Kbps - 2 Mbps)": "Медленный интернет (256 Кбит/с - 2 Мбит/с)", "Low Speed Broadband (256 Kbps - 2 Mbps)": "Медленный интернет (256 Кбит/с - 2 Мбит/с)",
"Manual accounts": "Ввод УЗ вручную", "Manual accounts": "Ввод УЗ вручную",
"Minute": "Минуты", "Minute": "Минута",
"Minutes": "Минуты", "Minutes": "Минут",
"Module": "Модуль", "Module": "Модуль",
"Multi Screen": "Многоэкранный режим", "Multi Screen": "Многоэкранный режим",
"My applications": "Мои приложения", "My applications": "Мои приложения",
@ -155,11 +155,11 @@
"No matching found": "Совпадений не найдено", "No matching found": "Совпадений не найдено",
"No permission": "Нет разрешений", "No permission": "Нет разрешений",
"No protocol available": "Нет доступных протоколов", "No protocol available": "Нет доступных протоколов",
"NoOnlineUser": "В данный момент нет онлайн пользователей.", "NoOnlineUser": "Сейчас нет пользователей онлайн",
"NoOnlineUsers": "В данный момент нет онлайн-пользователей", "NoOnlineUsers": "Сейчас нет пользователей онлайн",
"NoTabs": "Нет вкладок", "NoTabs": "Нет вкладок",
"Not quick command": "Нет быстрых команд", "Not quick command": "Нет быстрых команд",
"OnlineUser": "Онлайн пользователи", "OnlineUser": "Пользователи онлайн",
"Open in new window": "Открыть в новом окне", "Open in new window": "Открыть в новом окне",
"Operator": "Оператор", "Operator": "Оператор",
"Password": "Пароль", "Password": "Пароль",
@ -181,18 +181,18 @@
"RDP client options": "Опции клиента RDP", "RDP client options": "Опции клиента RDP",
"RDP color quality": "Качество цвета RDP", "RDP color quality": "Качество цвета RDP",
"RDP connection speed": "Скорость подключения RDP", "RDP connection speed": "Скорость подключения RDP",
"RDP file reusable": "RDP файл повторно используемый", "RDP file reusable": "Возможно повторное использование файла RDP",
"RDP resolution": "Разрешение RDP", "RDP resolution": "Разрешение RDP",
"RDP smart size": "Умный размер RDP", "RDP smart size": "Умный размер RDP",
"Re-use for a long time after opening": "После включения эта информация о подключении может использоваться длительное время и многократно", "Re-use for a long time after opening": "После включения эта информация о подключении может использоваться длительное время и многократно",
"ReadOnly": "Только для чтения", "ReadOnly": "Только просмотр",
"Reconnect": "Переподключение", "Reconnect": "Переподключение",
"Redirecting": "Перенаправление...", "Redirecting": "Перенаправление...",
"Refresh": "Обновить", "Refresh": "Обновить",
"Remember password": "Запомнить пароль", "Remember password": "Запомнить пароль",
"Remember select": "Запомнить выбор", "Remember select": "Запомнить выбор",
"RemoteApp": "Удаленное приложение", "RemoteApp": "Удаленное приложение",
"RemoveShareUserConfirm": "Вы уверены, что хотите удалить этого пользователя?", "RemoveShareUserConfirm": "Вы действительно хотите удалить этого пользователя?",
"Reselect connection method": "Можно повторно выбрать способ подключения", "Reselect connection method": "Можно повторно выбрать способ подключения",
"Resume": "Восстановить", "Resume": "Восстановить",
"Resume task has been send": "Задача на восстановление отправлена", "Resume task has been send": "Задача на восстановление отправлена",
@ -206,21 +206,21 @@
"Save success": "Сохранено успешно", "Save success": "Сохранено успешно",
"Search": "Поиск", "Search": "Поиск",
"Select account": "Выбрать УЗ", "Select account": "Выбрать УЗ",
"SelectCommand": "Пожалуйста, выберите команду для выполнения", "SelectCommand": "Выберите команду для выполнения",
"Send": "Отправить", "Send": "Отправить",
"Send command": "Отправить команду", "Send command": "Отправить команду",
"Send text to all ssh terminals": "Отправить текст на все ssh терминалы", "Send text to all ssh terminals": "Отправить текст на все ssh терминалы",
"SendCommandPlaceholder": "Введите команду, нажмите Enter для переноса строки, Ctrl+Enter для выполнения команды", "SendCommandPlaceholder": "Введите команду. Enter — новая строка, Ctrl+Enter — выполнение команды",
"Session": "Сессия", "Session": "Сессия",
"SessionIsBeingMonitored": "Сессия находится под наблюдением", "SessionIsBeingMonitored": "Сессия находится под наблюдением",
"SessionShare": "Обмен сеансами", "SessionShare": "Поделиться сессией",
"Set reusable": "Включить повторное использование", "Set reusable": "Включить повторное использование",
"Setting": "Настройки", "Setting": "Настройки",
"Settings or basic settings": "Настройки → Основные настройки", "Settings or basic settings": "Настройки → Основные настройки",
"ShareCode": "Код для обмена", "ShareCode": "Код доступа",
"ShareLink": "Поделиться ссылкой", "ShareLink": "Поделиться ссылкой",
"ShareSession": "Поделиться сессией", "ShareSession": "Поделиться сессией",
"ShareUser": "Поделиться пользователем", "ShareUser": "Поделиться с",
"Show left manager": "Показать левую панель", "Show left manager": "Показать левую панель",
"Skip": "Пропустить", "Skip": "Пропустить",
"Skip manual password": "Пропустить окно ручного ввода пароля", "Skip manual password": "Пропустить окно ручного ввода пароля",
@ -240,15 +240,15 @@
"Tabs": "Вкладки", "Tabs": "Вкладки",
"The connection method is invalid, please refresh the page": "Этот способ подключения больше недействителен, пожалуйста, обновите страницу", "The connection method is invalid, please refresh the page": "Этот способ подключения больше недействителен, пожалуйста, обновите страницу",
"Theme": "Тема", "Theme": "Тема",
"ThemeSyncFailed": "Тема синхронизации не удалась", "ThemeSyncFailed": "Тема не синхронизирована",
"ThemeSyncSuccessful": "Тема синхронизации успешна", "ThemeSyncSuccessful": "Тема синхронизирована",
"Ticket review approved for login asset": "Проверка входа пройдена, хотите подключиться к активу?", "Ticket review approved for login asset": "Проверка входа пройдена, хотите подключиться к активу?",
"Ticket review closed for login asset": "Проверка входа закрыта, подключение к активу невозможно", "Ticket review closed for login asset": "Проверка входа закрыта, подключение к активу невозможно",
"Ticket review pending for login asset": "Заявка на вход подана, ожидайте проверки исполнителем, вы также можете скопировать ссылку и отправить ему", "Ticket review pending for login asset": "Заявка на вход подана, ожидайте проверки исполнителем, вы также можете скопировать ссылку и отправить ему",
"Ticket review rejected for login asset": "Проверка входа отклонена, подключение к активу невозможно", "Ticket review rejected for login asset": "Проверка входа отклонена, подключение к активу невозможно",
"Tips": "Подсказки", "Tips": "Подсказки",
"Token expired": "Токен истек, пожалуйста, подключитесь снова", "Token expired": "Токен истек, пожалуйста, подключитесь снова",
"TokenVerificationFailedLeaseReconnect": "Ошибка проверки токена, пожалуйста, переподключитесь.", "TokenVerificationFailedLeaseReconnect": "Ошибка проверки токена, пожалуйста, переподключитесь",
"Tool download": "Скачать инструменты", "Tool download": "Скачать инструменты",
"Turkey keyboard layout": "Турецкий-Q (Qwerty)", "Turkey keyboard layout": "Турецкий-Q (Qwerty)",
"TurnOffReminders": "Вы уверены, что хотите закрыть текущее подключение?", "TurnOffReminders": "Вы уверены, что хотите закрыть текущее подключение?",
@ -271,7 +271,7 @@
"Website": "Официальный сайт", "Website": "Официальный сайт",
"With secret accounts": "УЗ с сохраненным секретом", "With secret accounts": "УЗ с сохраненным секретом",
"WordSep": " ", "WordSep": " ",
"Writable": "Запись разрешена", "Writable": "Просмотр и управление",
"Yes": "Да", "Yes": "Да",
"account": "Учетная запись", "account": "Учетная запись",
"asset": "актив", "asset": "актив",

View File

@ -86,6 +86,7 @@
"Expand all asset": "Mở rộng tất cả tài sản dưới nút", "Expand all asset": "Mở rộng tất cả tài sản dưới nút",
"Expire time": "Quản lý tệp", "Expire time": "Quản lý tệp",
"ExpiredTime": "Thời hạn hiệu lực", "ExpiredTime": "Thời hạn hiệu lực",
"Face Verify": "Xác thực khuôn mặt",
"Face online required": "Đăng nhập lần này cần thực hiện xác minh khuôn mặt và giám sát, có tiếp tục không?", "Face online required": "Đăng nhập lần này cần thực hiện xác minh khuôn mặt và giám sát, có tiếp tục không?",
"Face verify": "Xác thực khuôn mặt", "Face verify": "Xác thực khuôn mặt",
"Face verify required": "Không hiển thị lại lần sau", "Face verify required": "Không hiển thị lại lần sau",
@ -106,6 +107,7 @@
"GUI": "Đồ họa", "GUI": "Đồ họa",
"General": "Cấu hình cơ bản", "General": "Cấu hình cơ bản",
"Go to Settings": "Đi đến cài đặt", "Go to Settings": "Đi đến cài đặt",
"Go to profile": "Đi đến thông tin cá nhân",
"Help": "Trợ giúp", "Help": "Trợ giúp",
"Help or download": "Trợ giúp menu → Tải xuống", "Help or download": "Trợ giúp menu → Tải xuống",
"Help text": "Giới thiệu", "Help text": "Giới thiệu",

View File

@ -20,6 +20,7 @@
"AvailableHotkeys": "可用快捷键", "AvailableHotkeys": "可用快捷键",
"Backspace as Ctrl+H": "字符终端Backspace As Ctrl+H", "Backspace as Ctrl+H": "字符终端Backspace As Ctrl+H",
"Batch actions": "批量操作", "Batch actions": "批量操作",
"Batch actions(select and right click)": "批量操作(选择并右键单击)",
"Batch connect": "批量连接", "Batch connect": "批量连接",
"BatchCommands": "批量命令", "BatchCommands": "批量命令",
"Belgian French keyboard layout": "Belgian French (Azerty)", "Belgian French keyboard layout": "Belgian French (Azerty)",
@ -85,6 +86,7 @@
"Expand all asset": "展开节点下的所有资产", "Expand all asset": "展开节点下的所有资产",
"Expire time": "过期时间", "Expire time": "过期时间",
"ExpiredTime": "有效期限", "ExpiredTime": "有效期限",
"Face Verify": "人脸验证",
"Face online required": "本次登录需要进行人脸验证和监控,是否继续?", "Face online required": "本次登录需要进行人脸验证和监控,是否继续?",
"Face verify": "人脸验证", "Face verify": "人脸验证",
"Face verify required": "本次登录需要进行人脸验证,是否继续?", "Face verify required": "本次登录需要进行人脸验证,是否继续?",
@ -105,6 +107,7 @@
"GUI": "图形化", "GUI": "图形化",
"General": "基本配置", "General": "基本配置",
"Go to Settings": "去设置", "Go to Settings": "去设置",
"Go to profile": "前往个人信息",
"Help": "帮助", "Help": "帮助",
"Help or download": "菜单帮助 → 下载", "Help or download": "菜单帮助 → 下载",
"Help text": "说明", "Help text": "说明",
@ -285,6 +288,5 @@
"start time": "开始时间", "start time": "开始时间",
"success": "成功", "success": "成功",
"system user": "系统用户", "system user": "系统用户",
"user": "用户", "user": "用户"
"Batch actions(select and right click)": "批量操作(选择并右键单击)"
} }

View File

@ -87,6 +87,7 @@
"Expand all asset": "展開節點下的所有資產", "Expand all asset": "展開節點下的所有資產",
"Expire time": "過期時間", "Expire time": "過期時間",
"ExpiredTime": "有效期限", "ExpiredTime": "有效期限",
"Face Verify": "人臉驗證",
"Face online required": "這次登入需要進行臉部驗證及監控,是否繼續?", "Face online required": "這次登入需要進行臉部驗證及監控,是否繼續?",
"Face verify": "人臉驗證", "Face verify": "人臉驗證",
"Face verify required": "這次登入需要進行臉部驗證,是否繼續?", "Face verify required": "這次登入需要進行臉部驗證,是否繼續?",
@ -107,6 +108,7 @@
"GUI": "圖形化", "GUI": "圖形化",
"General": "基本配置", "General": "基本配置",
"Go to Settings": "前往設定", "Go to Settings": "前往設定",
"Go to profile": "前往個人資訊",
"Help": "幫助", "Help": "幫助",
"Help or download": "菜單幫助 → 下載", "Help or download": "菜單幫助 → 下載",
"Help text": "說明", "Help text": "說明",

View File

@ -20,7 +20,7 @@ from ops.const import JobStatus
from orgs.caches import OrgResourceStatisticsCache from orgs.caches import OrgResourceStatisticsCache
from orgs.utils import current_org from orgs.utils import current_org
from terminal.const import RiskLevelChoices from terminal.const import RiskLevelChoices
from terminal.models import Session, Command from terminal.models import Session, CommandStorage
__all__ = ['IndexApi'] __all__ = ['IndexApi']
@ -50,7 +50,7 @@ class DateTimeMixin:
@lazyproperty @lazyproperty
def date_start_end(self): def date_start_end(self):
return self.days_to_datetime.date(), local_now().date() + timezone.timedelta(days=1) return self.days_to_datetime, local_now()
@lazyproperty @lazyproperty
def dates_list(self): def dates_list(self):
@ -123,14 +123,16 @@ class DateTimeMixin:
return self.get_logs_queryset_filter(qs, 'date_start') return self.get_logs_queryset_filter(qs, 'date_start')
@lazyproperty @lazyproperty
def command_type_queryset_tuple(self): def command_queryset_list(self):
type_queryset_tuple = Command.get_all_type_queryset_tuple() qs_list = []
return ( for storage in CommandStorage.objects.all():
(tp, self.get_logs_queryset_filter( if not storage.is_valid():
continue
qs = storage.get_command_queryset()
qs_list.append(self.get_logs_queryset_filter(
qs, 'timestamp', is_timestamp=True qs, 'timestamp', is_timestamp=True
)) ))
for tp, qs in type_queryset_tuple return qs_list
)
@lazyproperty @lazyproperty
def job_logs_queryset(self): def job_logs_queryset(self):
@ -141,7 +143,7 @@ class DateTimeMixin:
class DatesLoginMetricMixin: class DatesLoginMetricMixin:
dates_list: list dates_list: list
date_start_end: tuple date_start_end: tuple
command_type_queryset_tuple: tuple command_queryset_list: list
sessions_queryset: Session.objects sessions_queryset: Session.objects
ftp_logs_queryset: FTPLog.objects ftp_logs_queryset: FTPLog.objects
job_logs_queryset: JobLog.objects job_logs_queryset: JobLog.objects
@ -259,16 +261,11 @@ class DatesLoginMetricMixin:
@lazyproperty @lazyproperty
def command_statistics(self): def command_statistics(self):
from terminal.const import CommandStorageType
total_amount = 0 total_amount = 0
danger_amount = 0 danger_amount = 0
for tp, qs in self.command_type_queryset_tuple: for qs in self.command_queryset_list:
if tp == CommandStorageType.es: total_amount += qs.count()
total_amount += qs.count(limit_to_max_result_window=False) danger_amount += qs.filter(risk_level=RiskLevelChoices.reject).count()
danger_amount += qs.filter(risk_level=RiskLevelChoices.reject).count(limit_to_max_result_window=False)
else:
total_amount += qs.count()
danger_amount += qs.filter(risk_level=RiskLevelChoices.reject).count()
return total_amount, danger_amount return total_amount, danger_amount
@lazyproperty @lazyproperty

View File

@ -113,7 +113,7 @@ def validate_identifier(name):
return False, "Identifier cannot be empty" return False, "Identifier cannot be empty"
if len(name) > 30: if len(name) > 30:
return False, "Identifier must be at most 30 characters" return False, "Identifier must be at most 30 characters"
if not re.match(r'^[A-Za-z][A-Za-z0-9_]*$', name): if not re.match(r'^(C##|c##)?[A-Za-z][A-Za-z0-9_]*$', name):
msg = ("Identifier can only contain letters, numbers, " msg = ("Identifier can only contain letters, numbers, "
"and underscores (must start with a letter)") "and underscores (must start with a letter)")
return False, msg return False, msg

View File

@ -44,6 +44,7 @@ class SystemMsgSubscriptionViewSet(
ListModelMixin, UpdateModelMixin, JMSGenericViewSet ListModelMixin, UpdateModelMixin, JMSGenericViewSet
): ):
lookup_field = 'message_type' lookup_field = 'message_type'
slug_field = lookup_field
queryset = SystemMsgSubscription.objects.all() queryset = SystemMsgSubscription.objects.all()
serializer_classes = { serializer_classes = {
'list': SystemMsgSubscriptionByCategorySerializer, 'list': SystemMsgSubscriptionByCategorySerializer,

View File

@ -90,7 +90,7 @@ class JMSPermedInventory(JMSInventory):
host['login_db'] = asset.spec_info.get('db_name', '') host['login_db'] = asset.spec_info.get('db_name', '')
host['ansible_python_interpreter'] = sys.executable host['ansible_python_interpreter'] = sys.executable
if gateway: if gateway:
host['gateway'] = { host['jms_gateway'] = {
'address': gateway.address, 'port': gateway.port, 'address': gateway.address, 'port': gateway.port,
'username': gateway.username, 'secret': gateway.password, 'username': gateway.username, 'secret': gateway.password,
'private_key_path': gateway.private_key_path 'private_key_path': gateway.private_key_path

View File

@ -222,13 +222,15 @@ class AssetPermissionFilter(PermissionBaseFilter):
have_asset_q = Q(assets__isnull=False) | Q(nodes__isnull=False) have_asset_q = Q(assets__isnull=False) | Q(nodes__isnull=False)
have_action_q = Q(actions__gt=0) have_action_q = Q(actions__gt=0)
valid_ids = AssetPermission.objects.valid().values_list('pk', flat=True)
queryset = queryset.filter(have_user_q & have_asset_q & have_action_q) queryset = queryset.filter(have_user_q & have_asset_q & have_action_q)
queryset &= AssetPermission.objects.valid() queryset = queryset.filter(pk__in=valid_ids)
else: else:
not_have_user_q = Q(users__isnull=True) & Q(user_groups__isnull=True) not_have_user_q = Q(users__isnull=True) & Q(user_groups__isnull=True)
not_have_asset_q = Q(assets__isnull=True) & Q(nodes__isnull=True) not_have_asset_q = Q(assets__isnull=True) & Q(nodes__isnull=True)
not_have_action_q = Q(actions=0) not_have_action_q = Q(actions=0)
queryset = queryset.filter(not_have_user_q | not_have_asset_q | not_have_action_q) invalid_ids = AssetPermission.objects.invalid().values_list('pk', flat=True)
queryset |= AssetPermission.objects.invalid() condition_q = not_have_user_q | not_have_asset_q | not_have_action_q | Q(pk__in=invalid_ids)
queryset = queryset.filter(condition_q)
return queryset return queryset

View File

@ -79,6 +79,7 @@ special_pid_mapper = {
'acls.loginacl': 'perms', 'acls.loginacl': 'perms',
'acls.loginassetacl': 'perms', 'acls.loginassetacl': 'perms',
'acls.connectmethodacl': 'perms', 'acls.connectmethodacl': 'perms',
'acls.datamaskingrule': 'perms',
'xpack.account': 'cloud_import', 'xpack.account': 'cloud_import',
'xpack.syncinstancedetail': 'cloud_import', 'xpack.syncinstancedetail': 'cloud_import',
'xpack.syncinstancetask': 'cloud_import', 'xpack.syncinstancetask': 'cloud_import',

View File

@ -175,6 +175,8 @@ class SendMailView(View):
msg.attach_alternative(html_content, "text/html") msg.attach_alternative(html_content, "text/html")
filename = f"{title}-{timezone.now().strftime('%Y%m%d%H%M%S')}.pdf" filename = f"{title}-{timezone.now().strftime('%Y%m%d%H%M%S')}.pdf"
msg.attach(filename, pdf_bytes, "application/pdf") msg.attach(filename, pdf_bytes, "application/pdf")
msg.send() try:
msg.send()
return JsonResponse({"message": "邮件发送成功"}) except Exception as e:
return JsonResponse({"error": _('Failed to send email: ') + str(e)})
return JsonResponse({"message": _('Email sent successfully to ') + email})

View File

@ -150,7 +150,7 @@ class LdapWebsocket(AsyncJsonWebsocketConsumer):
await self.send_msg(msg='Exception: %s' % error) await self.send_msg(msg='Exception: %s' % error)
def run_func(self, func_name, data): def run_func(self, func_name, data):
with translation.override(getattr(self.scope['user'], 'lang', settings.LANGUAGE_CODE)): with translation.override(getattr(self.scope['user'], 'lang') or settings.LANGUAGE_CODE):
return getattr(self, func_name)(data) return getattr(self, func_name)(data)
async def send_msg(self, ok=True, msg=''): async def send_msg(self, ok=True, msg=''):

View File

@ -189,11 +189,6 @@ class Applet(JMSBaseModel):
if settings.DEBUG_DEV: if settings.DEBUG_DEV:
return hosts return hosts
hosts = [host for host in hosts if host.load != 'offline']
if not hosts:
logger.info("No online host for applet: {}".format(self.name))
return None
hosts = self._filter_published_hosts(hosts) hosts = self._filter_published_hosts(hosts)
if not hosts: if not hosts:
logger.info("No published host for applet: {}".format(self.name)) logger.info("No published host for applet: {}".format(self.name))
@ -202,7 +197,20 @@ class Applet(JMSBaseModel):
def select_host(self, user, asset): def select_host(self, user, asset):
hosts = self.filter_available_hosts() hosts = self.filter_available_hosts()
only_label_values = asset.get_labels().filter(
name__in=['AppletHostOnly', '仅发布机']
).values_list('value', flat=True)
if only_label_values:
host_matched = [host for host in hosts if host.name in only_label_values]
if host_matched:
return host_matched[0]
else:
logger.info("No host for only applet: {}".format(self.name))
return None
hosts = hosts if settings.DEBUG_DEV else [host for host in hosts if host.load != 'offline']
if not hosts: if not hosts:
logger.info("No online host for applet: {}".format(self.name))
return None return None
spec_label_values = asset.get_labels().filter( spec_label_values = asset.get_labels().filter(

View File

@ -4,10 +4,11 @@ from django.db import models
from django.db.models.signals import post_save from django.db.models.signals import post_save
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from orgs.mixins.models import OrgManager
from terminal.backends.command.models import AbstractSessionCommand from terminal.backends.command.models import AbstractSessionCommand
class CommandManager(models.Manager): class CommandManager(OrgManager):
def bulk_create(self, objs, **kwargs): def bulk_create(self, objs, **kwargs):
resp = super().bulk_create(objs, **kwargs) resp = super().bulk_create(objs, **kwargs)
for i in objs: for i in objs:

View File

@ -45,8 +45,8 @@ class TicketViewSet(CommonApiMixin, viewsets.ModelViewSet):
} }
def retrieve(self, request, *args, **kwargs): def retrieve(self, request, *args, **kwargs):
instance = self.get_object()
with tmp_to_root_org(): with tmp_to_root_org():
instance = self.get_object()
serializer = self.get_serializer(instance) serializer = self.get_serializer(instance)
data = serializer.data data = serializer.data
return Response(data) return Response(data)

View File

@ -38,6 +38,12 @@ class ConnectDefaultOpenMethod(TextChoices):
NEW = 'new', _('New window') NEW = 'new', _('New window')
class Themes(TextChoices):
DEFAULT = 'default', _('Default')
DARKGARY = 'darkGary', _('Dark gray')
DEEKBLUE = 'deepBlue', _('Deep blue')
class RDPSmartSize(TextChoices): class RDPSmartSize(TextChoices):
DISABLE = '0', _('Disable') DISABLE = '0', _('Disable')
ENABLE = '1', _('Enable') ENABLE = '1', _('Enable')

View File

@ -8,6 +8,7 @@ from django.utils.translation import gettext_lazy as _
from common.utils import reverse, get_request_ip_or_data, get_request_user_agent from common.utils import reverse, get_request_ip_or_data, get_request_user_agent
from common.views.template import custom_render_to_string from common.views.template import custom_render_to_string
from notifications.notifications import UserMessage from notifications.notifications import UserMessage
from users.utils import activate_user_language
class UserCreatedMsg(UserMessage): class UserCreatedMsg(UserMessage):
@ -28,30 +29,30 @@ class UserCreatedMsg(UserMessage):
def get_html_msg(self) -> dict: def get_html_msg(self) -> dict:
user = self.user user = self.user
mail_context = { mail_context = {
'subject': str(settings.EMAIL_CUSTOM_USER_CREATED_SUBJECT), 'subject': settings.EMAIL_CUSTOM_USER_CREATED_SUBJECT,
'honorific': str(settings.EMAIL_CUSTOM_USER_CREATED_HONORIFIC), 'honorific': settings.EMAIL_CUSTOM_USER_CREATED_HONORIFIC,
'content': str(settings.EMAIL_CUSTOM_USER_CREATED_BODY) 'content': settings.EMAIL_CUSTOM_USER_CREATED_BODY
} }
user_info = {'username': user.username, 'name': user.name, 'email': user.email} user_info = {'username': user.username, 'name': user.name, 'email': user.email}
# 转换成 defaultdict否则 format 时会报 KeyError with activate_user_language(self.user):
user_info = defaultdict(str, **user_info) # 转换成 defaultdict否则 format 时会报 KeyError
mail_context = {k: v.format_map(user_info) for k, v in mail_context.items()} user_info = defaultdict(str, **user_info)
mail_context = {k: v.format_map(user_info) for k, v in mail_context.items()}
context = { context = {
**mail_context, **mail_context,
**user_info, **user_info,
'rest_password_url': reverse('authentication:reset-password', external=True), 'rest_password_url': reverse('authentication:reset-password', external=True),
'rest_password_token': user.generate_reset_token(), 'rest_password_token': user.generate_reset_token(),
'forget_password_url': reverse('authentication:forgot-password', external=True) 'forget_password_url': reverse('authentication:forgot-password', external=True)
} }
message = custom_render_to_string(self.template_name, context) message = custom_render_to_string(self.template_name, context)
return { return {
'subject': mail_context['subject'], 'subject': mail_context['subject'],
'message': message 'message': message
} }
@classmethod @classmethod
def gen_test_msg(cls): def gen_test_msg(cls):

View File

@ -4,7 +4,7 @@ from django.utils.translation import gettext_lazy as _
from rest_framework import serializers from rest_framework import serializers
from users.const import ( from users.const import (
RDPResolution, RDPSmartSize, KeyboardLayout, ConnectDefaultOpenMethod, RDPResolution, RDPSmartSize, KeyboardLayout, ConnectDefaultOpenMethod, Themes,
RDPClientOption, AppletConnectionMethod, RDPColorQuality, FileNameConflictResolution RDPClientOption, AppletConnectionMethod, RDPColorQuality, FileNameConflictResolution
) )
@ -29,6 +29,10 @@ class BasicSerializer(serializers.Serializer):
choices=ConnectDefaultOpenMethod.choices, default=ConnectDefaultOpenMethod.CURRENT, choices=ConnectDefaultOpenMethod.choices, default=ConnectDefaultOpenMethod.CURRENT,
label=_('Connect default open method'), required=False label=_('Connect default open method'), required=False
) )
themes = serializers.ChoiceField(
choices=Themes.choices, default=Themes.DEFAULT,
label=_('Theme'), required=False
)
class GraphicsSerializer(serializers.Serializer): class GraphicsSerializer(serializers.Serializer):

View File

@ -146,7 +146,7 @@ class UserProfileSerializer(UserSerializer):
return password return password
def get_lang(self, obj) -> str: def get_lang(self, obj) -> str:
return getattr(obj, 'lang', settings.LANGUAGE_CODE) return getattr(obj, 'lang') or settings.LANGUAGE_CODE
class UserPKUpdateSerializer(serializers.ModelSerializer): class UserPKUpdateSerializer(serializers.ModelSerializer):

View File

@ -320,6 +320,6 @@ def is_auth_confirm_time_valid(session):
@contextmanager @contextmanager
def activate_user_language(user): def activate_user_language(user):
language = getattr(user, 'lang', settings.LANGUAGE_CODE) language = getattr(user, 'lang') or settings.LANGUAGE_CODE
with translation.override(language): with translation.override(language):
yield yield

View File

@ -83,12 +83,12 @@ dependencies = [
'drf-writable-nested==0.7.0', 'drf-writable-nested==0.7.0',
'rest-condition==1.0.3', 'rest-condition==1.0.3',
'drf-spectacular==0.28.0', 'drf-spectacular==0.28.0',
'pillow==10.0.1', 'pillow==10.2.0',
'pytz==2023.3', 'pytz==2023.3',
'django-proxy==1.2.2', 'django-proxy==1.2.2',
'python-daemon==3.0.1', 'python-daemon==3.0.1',
'eventlet==0.33.3', 'eventlet==0.40.3',
'greenlet==3.1.1', 'greenlet==3.2.4',
'gunicorn==23.0.0', 'gunicorn==23.0.0',
'celery==5.3.1', 'celery==5.3.1',
'flower==2.0.1', 'flower==2.0.1',

2064
uv.lock

File diff suppressed because it is too large Load Diff